skip to main content
Release Notes Version 6.0
Release Notes Version 6.0
Special Attention Notes
Following are special attention notes, indicating that:
• Functionality has changed that requires you to update models, or
• Results may differ
If you have any questions, contact riverware-support@colorado.edu
Accounting - Water Rights Solver Does Not default Slot Inflows to Zero
The computational subbasin Prior Appropriation method (in the Water Rights Allocation category) was changed to no longer set Slot Inflows to zero at the beginning of run. The introduction of user specified execution times for Object Level Accounting Methods (OLAMs) makes this automatic setting unnecessary and undesired.
See “Prior Appropriation No Longer Sets Zeros For Unknown Slot Inflows” for more information on the model changes necessary.
Accounting - Instream Flow Reference Level Removed from OLAMs
The category Instream Flow Reference Level on the control point was incorrectly implemented as an Object Level Accounting Method. It has been converted to a normal method category. If you had user-defined methods in this category, they will be deleted when loading the model in 6.0. Please move them to another category or re-implement them as necessary in RiverWare 5.2.10 before moving to 6.0
Accounting
Object Level Accounting Methods
Execution Times Are User Selectable
You are now able to specify when Object Level Accounting Methods (OLAMs) execute. The choices are:
• Beg. of Run: Execute once at the beginning of the run.
• Beg. of Timestep Once: Execute once at the beginning of the timestep.
• Beg. of Timestep: Execute at the beginning of the timestep and as dependencies change.
• After Simulation: Execute after each timestep's simulation is complete and as dependencies change.
To facilitate the selection of the execution time, the Accounting Methods are now displayed in a separate “Accounting Methods” tab on the Open Object dialog.
Copy Slot to Slot Inflow Method Added
A new compiled OLAM has been added to Reaches, Control Points, and Reservoirs. The Copy Slot to Slot Inflows method copies the object’s local inflow to the target account’s Slot Inflow and sets the other accounts’ Slot Inflow to zero. The target account is specified in a list slot called Target Account. See “Copy Slot to Slot Inflows” in Accounting for more information.
Multi Object Method Selector Enhanced
The multi-object method selector was enhanced to allow you to better select OLAMs. Now the OLAM categories are shaded grey. From the multi-object method selector, you can also set the OLAM execution time and for the Copy Slot to Slot Inflow method, you can set the Target Account for many objects at once. See “Selecting Object Level Accounting Methods (OLAMs)” in User Interface for more information.
Category Name Changes
The default category/policy group names for the object level accounting methods were changed as shown in the following table. If you customized the name of any of these, they will be changed back to the default.
 
Old Category Name
New Category Name
Bifurcation PassThrough Slot Inflow
Bifurcation Account Slot Inflow
Agg Diversion Reconciliation
Agg Diversion Account Reconciliation
Confl PassThrough Slot Inflow
Confluence Account Slot Inflow
Pipe Junction Pass Through Slot Inflow
Pipe Junction Account Slot Inflow
Pipe PassThrough Slot Inflow
Pipeline Account Slot Inflow
Inline Pump Pass Through Slot Inflow
Inline Pump Account Slot Inflow
DistributionCanal PassThrough Slot Inflow
Distribution Canal Account Slot Inflow
Storage Account Slot Inflow
Reservoir Account Slot Inflow
Storage Account Gain Loss
Reservoir Account Gain Loss
Reservoir Reconciliation
Reservoir Account Reconciliation
Control Point Pass Through Slot Inflow
Control Point Account Slot Inflow
Water User Reconciliation
Water User Account Reconciliation
Gage PassThrough Slot Inflow
Stream Gage Account Slot Inflow
Reach PassThrough Slot Inflow
Reach Account Slot Inflow
Pass Through Acct Gain Loss
Reach Account Gain Loss
Diversion Object Account Slot Inflow
A new category on the diversion object and OLAM policy group was added: “Diversion Object Account Slot Inflow”. Two compiled methods are available from the Diversion Object’s Accounting Methods tab: No Method and Zero Slot Inflows. See “Compiled Accounting Methods” in Accounting for more information
Instream Flow Reference Level Removed
The category Instream Flow Reference Level on the control point was incorrectly implemented as an Object Level Accounting Method. It has been converted to a normal method category. If you had user-defined methods in this category, they will be deleted when loading the model in 6.0. Please move them to another category or re-implement them as necessary in RiverWare 5.2.10 before moving to 6.0
Supplies
Supplies Manager - Double-click on Supply Opens Supply Editor
In the Supplies Manager, double-clicking a supply opens the Edit Supply dialog where you can rename and configure that supply. Previously, this operation opened the Edit Account dialog for the destination account.
Supplies Manager - Copy List to Clipboard
In the Supplies Manager, the menu operation File Copy List to Clipboard copies a "tabular" string representation of the currently displayed supply list to the System Clipboard. Fields are delimited with tab characters and lines are delimited with new line characters -- suitable for importing into a spreadsheet, such as Microsoft Excel.
Supply Name Format
You can now specify the format for supply names in the Supply Name Format dialog. Once configured, the supply name format is used for all new supply names. Also, you can apply that format to one or more existing supply names in the Supplies Manager. See “Supply Name Format” in Accounting for more information.
Water Rights Accounting
Performance improvement
In the accounting system, the SolveWaterRights and SolveWaterRightsWithLags RPL predefined functions were copying more values than necessary. Now, the function copies values in the range: [current timestep, current timestep + maximum subbasin lag] This change can have a large impact on performance. For example, it led to a 30% decrease in total run time for the 5 year daily model used to test this change.
Prior Appropriation No Longer Sets Zeros For Unknown Slot Inflows
The computational subbasin Prior Appropriation method (in the Water Rights Allocation category) was changed to no longer set Slot Inflows to zero at the beginning of run. The introduction of user specified execution times for Object Level Accounting Methods (OLAMs) makes this automatic setting unnecessary and undesired.
To reproduce previous results you need to select the Zero Slot Inflows method on each object in the subbasin and ensure that it is set to execute at Beginning of Run (default for this method). You can use the Multi-Object Method Selector to perform this selection on many objects of the same type.
You may also wish to consider using the new Copy Slot to Slot Inflow method (Reservoirs, Reaches, Control Points) which can be used to automatically copy local inflows into the allocatable flow’s slot inflow at the beginning of run or beginning of timestep. This prevents having to input or set via rules these values on the Slot Inflows.
One note, currently, most OLAMs, (including Zero Slot Inflows and Copy Slot to Slot Inflows) will fail (and stop the run) if it attempts to overwrite an INPUT slot inflow. In this case, you will need to either remove the input and let the method set it or use a different method to set Slot Inflows.
Miscellaneous
Accounting Period Must Encompass Run
Accounting period can be changed so that it doesn't cover the run period for a single run, causing inconsistencies when the model is run more than once. A check was added and will issue an error if the accounting period does not encompass the run period.
Accounts Manager - Copy List to Clipboard
In the Accounts Manager, the menu operation File Copy List to Clipboard copies a "tabular" string representation of the currently displayed account list to the System Clipboard. Fields are delimited with tab characters and lines are delimited with new line characters -- suitable for importing into a spreadsheet, such as Microsoft Excel.
Categories Require an Accounting Controller to be Selected
The following categories are only applicable to accounting. Now, their visibility is dependent on having one of the accounting controllers selected in the Run Control dialog:
 
Object
Category
Computational Subbasin
Water Rights Allocation
Computational Subbasin
Account Initial Request Calculation
Control Point
Instream Flow Reference Level
No model changes are necessary.
Creating Multiple Supplies on the Workspace
It is now possible to create two or more supplies between the same two accounts directly from the workspace. Previously, you could only do this from the downstream account. Now, when you create a supply using the accounting view's right-click menus, if there is already a supply between the two accounts you are now presented with a confirmation dialog asking whether you wish to continue. A unique name will be generated for the new supply.
Lagged Return Flows At Beginning Of Run
At the beginning of the run, non-input values are cleared from accounts over the accounting period. Previously, if return flows are lagged from a Diversion Account, the timesteps prior to the accounting period are not then solved to populate the lagged return flow values that are at the beginning of the accounting period, effectively leaving a hole in the accounting data for return flows. Now, after the outputs have been cleared, the account resolves and fills in the missing lagged data at the start of the run.
Batch Mode and RCL
GetSlot and SetSlot Commands
The RiverWare Command Language (RCL) GetSlot and SetSlot commands were enhanced to support Scalar Slots. The commands have the following syntax:
• GetSlot {Object.Slot} [<date time>]
• SetSlot {Object.Slot} [<date time>] value
The <date time> is only required for Series Slots. Also, GetValue now returns the value in user units (it previously returned it in internal units). SetValue expects the value in user units (as before). For more information, see “GetSlot” in Automation Tools.
Setting Environment Variables in Batch Mode
RCL scripts can now set environment variables for use within the script and within the RiverWare run. See the Batch Mode section “Environment Variables” in Automation Tools for more details.
Data Management Interface
Excel DMIs Allow Environment Variable In Paths
In Excel Database DMI datasets, environment variables are now allowed in paths.
Excel Worksheet Label Length and Excel DMIs
Because Excel limits worksheet tab lengths to 31 characters, the interface for Excel Database DMI datasets was modified so that Excel worksheet tab names are limited to 31 characters. In addition, the Excel dataset execution was modified so that if slot names are in an orientation to be written to a tab, the name length is checked and if it exceeds 31 characters, the slot is not written and the user is given a message and advised to use a Name Map to map to a shorter name for writing the slot to Excel.
DMIs Executed from RPL
All input DMIs called from RPL can import values only to unlinked series slots on data objects.
Database DMIs set values and the output flag when executed from RPL. Note, input control file-executable DMIs executed from RPL still set the input flag on the imported values.
General RiverWare
64 bit version
A separate installation package is available for 64 bit operating systems. With this version of the executable, you are able to take advantage of the increased memory of the 64 bit system. For more information on performance and why you would need 64 bit, see “Consider Running on a 64-bit Architecture” in Debugging and Analysis.
About Dialog
Additional information was added to the Help About Show System Info dialog regarding your license including, Type, Node-locked or Floating, and days until expiration.
Licensing
New RiverWare licenses will be created by the Reprise licensing system. Old licenses (FlexLM) will continue to work but will be replaced by CADSWES when they expire.
Model File Icon
A new icon was added to describe model files. This icon is displayed where model files are listed such as the File Reopen menu. Further, files that end in the “.mdl” suffix will display this icon in windows explorer. Double-clicking the icon will open the latest installed version of RiverWare and load that model. Because of the general nature of the “.gz” extension, this file association has not been made. In windows, you can manually associate “.gz” files with RiverWare so that RiverWare will automatically open when you double-click a “.gz” file. Alternatively, you can right-click on the “.gz” file and use window’s “Open With” command and choose RiverWare.
RiverWare Home Environment Variable
On windows, the RiverWare installation setup file no longer sets the RIVERWARE_HOME_XXX environment variable. The relevant information is now automatically determined at run time. Other applications that explicitly access this variable should be modified.
Model Run Analysis
Pre-simulation Timestep Separator
On the Model Run Analysis grid, a separator was added to distinguish pre-simulation timesteps from simulation timesteps. A solid blue divider line separates the initial and start timestep. Also, timesteps before the start time are denoted with a blue dotted line in their timestep label cell. See the screenshot to the right for a sample.
Miscellaneous Changes
Following are miscellaneous changes to this dialog:
• A view menu was added to the Dispatch Detail dialog when detached. This was done in order to provide two new menu actions with accelerators: Show Methods Tab (Ctrl+M) and Show Slots Tab (Ctrl+S).
• Enable / Disable Dispatching is now supported on selections of multiple objects.
• Performance is improved for certain operations including re-ordering when rows or columns are selected.
• An hourglass cursor is shown during slow operations like ordering columns with a large number of objects or timesteps.
Multiple Run Management
Iterative MRM configuration
For iterative MRM runs, the rules executed before the first run were renamed “Pre-MRM Run Rules” while the rules executed after each run have were renamed “Post-Run Rules”. This was done to avoid confusion between these rules and the new Initialization Rules “Initialization Rules”.
MRM Controller - Removed Two Tier Editing
Editing of MRM configurations was modified to no longer have two tiered user confirmation. The apply (green check) and cancel (red x) buttons have been removed from the multiple run control dialog. When you click OK or Apply in the MRM configuration dialog, the edits are immediately applied.
Optimization
CPLEX version
RiverWare was upgraded to use CPLEX 12.2.
Optimization Diagnostics
The Diagnostics Manager dialog was modified to give you control over optimization diagnostics. The previously disabled Optimization button was removed while an Enable All Optimization Diagnostics toggle was added. When checked, this gives you all optimization diagnostics.
Optimization Parameters
Location of Non-default Parameters
All non-default settings of optimization parameters are now saved in the model file. As a result, the "Save non-default settings to parameter file" checkbox was removed from the "Set Optimization Solver Parameters" dialog. Further, RiverWare no longer makes use of the following files:
• cplex.par
• goals.par
• cplex.init.par
• goals.init.par
If you had been using one of the override files, cplex.init.par or goals.init.par in the optimization working directory, and want to continue to use these non-default values with a given model (we don't expect this to be the case), then you will need to load the model, interactively set parameters to non-default values as necessary, then save the model.
New Optimization Parameters
The following new Optimization “goal” parameters were added:
• SATISFACTION VAR OBJECTIVE COEFF: This value is used as the coefficient in objectives expressions for derived objectives (single minimax, repeated minimax, and summation). For minimax objectives, the objective expression is:
a * x
where a is the satisfaction variable coefficient and x is the satisfaction variable. For summation objectives, the objective expression is:
(a * x_1) + (a * x_2) + ... + (a * x_n)
where a is the satisfaction variable coefficient and x_i is the satisfaction variable associated with the i'th soft constraint.
• FRESH BASIS_FREQUENCY: This integer parameter controls how often the solver starts with a fresh basis when solving an optimization problem. If the number of variables frozen since the last fresh basis is greater than this parameter's value, then the solver discards the basis before solving the problem again. The default value is 100.
Miscellaneous
Following are miscellaneous changes to the optimization solution:
• For SUMMATION objectives, the solution's objective value is now reported in the diagnostics as average percent satisfied, e.g.:
"SUMMATION constraints are on average 99.9% satisfied."
• Similarly, the Run Status dialog display of the Objective Value is now the average percent satisfied, whereas previously it was the raw objective value.
• Raised the maximum value to which integer values may be set from 16777215 to 2147483647 and lowered the minimum from -16777215 to -2147483647.
• To improve numerical stability and performance, additional freezing is done when a minimax objective is fully satisfied.
Performance
Performance improvements to RPL are described “Performance”. Performance improvements to water right accounting are described “Performance improvement”. Following are general performance improvements:
Run Time Reduced with Dialogs Open
When you have many slot or account dialogs open, the run can slow down as these update. Now, the dialogs are only updated every 0.8 seconds while running and 0.1 seconds while not-running. This improves the performance of runs with slot dialogs open, especially accounting models. In one accounting model, having one Edit Account dialog open would run in 30 seconds while it ran in only 11 seconds when the dialog was closed. Now the run takes 12 seconds if you have the dialog open.
String Re-implementation Improvements
The representation of strings within RiverWare was re-implemented. In the course of this work, performance improvements were made. In one large test model that had a lot of list processing and lists of strings, there was a 24% decrease in run time. Another model showed about 10% reduction in run time.
Plotting and Output
Copy / Paste of Graphs
A Copy Graph and Paste Graph feature was added to allow you to move graphs (i.e. individual plots) amongst layouts. The Graph Copy Graph menu allows you to copy the selected graph to the plotting clipboard and then Graph Paste Graph menu allows you to paste that graph to a new location. These two menus allow you to quickly combine or separate multi-layout graphs. For example, you may have two great 1X1 plots configured as desired. Now you wish to combine those into a 2X1 graph so that you can see them on a linked x axis. Select a 1X1 graph and copy it. Then create a new 2X1 graph and paste the first graph onto one of the empty graphs. Repeat the copy for the second graph and then paste it into the empty graph in the 2X1 layout.
NaNs in Plots
NaNs within a data series were plotted misleadingly. NaNs are now represented as a gap in the plot curve.
Open Slot from a Plot
You can now open a slot directly from a plot. Select the curve legend and choose Open Slot(s)...
Plot Templates
A new “Plot Template” device was added to the output manager. This utility allows you to:
• Create and configure a plot
• Save as a template where you specify the pieces of data you wish to be editable in that template
• Apply the template by substituting new data to generate the plot
Plot Page now Allows Any Type of Slot
Any type of plot-able slot can now be added to the Slot List in the Plot Page accessible from the Output Manager. Previously, only series slots were listed. Further you can now open a slot directly from this slot list by double-clicking the slot name.
RDF Single Run Output
For the output manager's single run RDF and CDF output, the timesteps field name in the header was changed from "timesteps" to "time_steps" to match the name in MRM output as well as the documentation.
Snapshot Plots
In the plot page dialog, you can specify whether to include snapshot data in plots. Previously, this was an all or nothing operations, you either showed plots of all snapshots or none. Now, snapshot slots be shown in plots on a per-snapshot selection. This is controlled through checkable items in the snapshot selection area.
RiverWare Policy Language
Comments within Expression
Support for inline comments within expressions was extended in several ways:
• Comments can now be shown or hidden within all dialogs displaying RPL expressions using the View Show Comments menu or the new checkbox described “Display of Optional Items”.
• Deletion of the selected comment is now supported from the Edit menu and using the Del key.
Display of Optional Items
RPL editors have panels which are optionally displayed. The display of these optional dialog items are controlled via checkboxes in the View or Expression menu. For example, the Rule Editor dialog allows the user to optionally show or hide the text description associated with that rule.
An additional row of checkboxes was added to these dialogs to provide more convenient control over the display of the most commonly viewed optional items. In addition, frames around each of these checkboxes provides a visual indication of whether or not the hidden item contains non-default content.
Initialization Rules
Initialization rules were added to RiverWare to allow you to execute logic to “set up” a run, set default values, or set initial conditions. Initialization rules are saved in the model file in a separate set that can be accessed from the workspace Policy Initialization Rules. These rules have the following properties:
• For simulation and rulebased simulation runs, they are executed once at the beginning of the run after inputs are registered but before beginning of run data checking.
• Values set by initialization rules are given either the initialization flag “i” or the DMI input flag “Z”, based on user specification for each rule.
• There is one set per model and the set is saved in the model file.
Palette
Button Labels and Reorganization
The palette button labels were simplified and made more consistent. The palette is shown to the right. Full documentation of the palette is provided “RPL Palette” in RiverWare Policy Language (RPL).
Equality Operators Support All Data Types
In the RiverWare Policy Language, the equality and inequality operators (== and !=) were extended to all data types including BOOLEAN, SLOT, OBJECT, and LIST. Previously, only DATETIME, NUMERIC, and STRING were supported. Expressions can now be written more efficiently. For example, the following expression checks if the looping variable res (of type OBJECT) is the object named BigRes. Previously, you would have written:
IF ( ( STRINGIFY res ) == "BigRes" )...
Now, it should be re-written:
If ( res == %"BigRes" ) ...
This change improves the performance and readability of the expression.
List Access
The RPL language provides seven operators for accessing list items, one for each type which might be returned, i.e GET NUMERIC @ INDEX <num> FROM <list>, GET BOOLEAN @ INDEX <num> FROM <list>, etc... These operators were replaced with a single operator for which the type of the item being accessed remains unspecified. The new operator has the following syntax:
LIST < NUMERIC >
An example is shown to the right. In this screenshot, triplet is a LIST containing three items: {slot, datetime, numeric}.
This new operator has the following advantages:
• Improved readability of policy: the display of expressions involving list item access is simpler and more compact. It now more closely resembles the syntax commonly used by other programming languages for accessing sequential data.
• Improved RPL palette: the RPL palette is smaller and simpler because the seven GET buttons have been replaced by a single button. See the next section for a screenshot.
Performance
The runtime performance of the RPL Debugger was improved; in the sample model the time decreased by an order of magnitude. Although enabling the RPL Debugger will slow down most models, this improvement makes the RPL debugger much easier to use for many real applications.
General RPL performance was improved by modifying the processing of numeric values, list values and units.
Predefined functions
ElevationToAreaAtDate, StorageToAreaAtDate, and StorageToElevationAtDate
New predefined functions called ElevationToAreaAtDate, StorageToAreaAtDate, and StorageToElevationAtDate were added for use with the changing Elevation Volume and Elevation Area methods described “Changing Elevation Volume and Elevation Area Methods”. These functions behave identically to the non “AtDate” versions but allow you to specify at which date the conversions should be performed. This datetime is required only when the Changing Elevation Volume / Area methods are selected.
Certain Date Functions no Longer Require Fully Specified Datetimes
The following predefined functions no longer require a fully specified datetime:
• GetMonth
• GetMonthAsString
• GetDayOfMonth
• GetYear
They evaluate correctly as long as they have the required information. For example, GetMonth will work if the month is specified. Thus, you can now successfully call GetMonth(@“Current Month”).
Iterative Hypothetical Simulation
Additional checking and warning messages were added to the hypothetical simulation predefined functions which iterate over individual hypothetical simulations to achieve a desired result. These warnings make it easier to identify when algorithmic assumptions have been violated which might affect the integrity of the results. Documentation for the group of hypothetical simulation functions was also improved.
PercentRank and Percentile functions added
Functions to compute the "PercentRank", “PercentRank” in RiverWare Policy Language (RPL), and "Percentile", “Percentile” in RiverWare Policy Language (RPL), were added to the RiverWare Policy Language (RPL) predefined functions.
Predefined Function Automatic Dependent Slots
Previous Storage is no longer registered as a dependency by getMaxOutflowGivenHW, getMaxOutflowGivenInflow, getMaxOutflowGivenStorage, getMaxReleaseGivenInflow, and getMinSpillGivenInflowRelease.
Rule Execution
When a rule encounters an invalid value during rule execution, rule execution is halted, the rule finishes ineffectively, and the rule will execute again only after one of its dependencies changes. As an alternative, a property was added to rules which allows the user to change this behavior for rules that are not expected to encounter an invalid value. When the Stop On NaN property has been set for a rule (using the Rule Stop on NaN menu), invalid values cause the simulation to halt with an error message, allowing the user to investigate the cause of the unexpected invalid value.
Sets
Close Dialog Versus Close Set
For RPL Set Editor dialogs, RiverWare now makes a distinction between closing the window (dialog) versus closing the set. For previous versions of RiverWare, closing a RPL set editor window also closed the set. Following is a description of the two behaviors:
Close Window
Closing a RPL Set Editor window closes the editor for the RPL set, but does not close the set itself. Closing a set window is easily reversible: selecting the appropriate item in the Workspace Policy menu will reopen the editor.
From within RiverWare, this action is initiated from the main menu of a RPL set editor by selecting File Close Window (Ctrl+W). This closes that window without affecting any other window.
In addition, the set editor can be closed using whatever mechanisms are provided by the operating system's window manager for closing windows. For example, Windows operating systems support closing a window when the user selects on the red X button in the window's upper right corner.
Close Set:
Closing a set removes that set from RiverWare's internal memory, and so is not easily reversible. This action is initiated from the set editor's menu by selecting File Close (and Unload) Set. The user is then presented with a confirmation dialog pointing out that unsaved changes to the set will be lost and giving them the option to cancel the operation. This behavior has not changed, though the "Ctrl+W" shortcut for this action has been removed.
Sets that are saved within the model file can not be closed directly; to remove these sets from memory the user must clear the workspace or load a new model. Thus the only types of RPL sets which may be deleted via the RPL Set Editor's File menu are:
• RBS Rulesets (not loaded or loaded but not saved in the model)
• Optimization Goal Sets (not loaded or loaded but not saved in the model)
• Global Function Sets
Note that clearing the workspace or loading a model implicitly closes any existing sets, and in this case the user is presented with a confirmation dialog analogous to the one described above.
Modified Colors Of RPL Sets and Icons
Each application of RPL now has a unique color associated with it. For those sets always saved with the model file, the icons and color bar is always the same. For RBS, Optimization and Global RPL sets, the editors associated with a single set will have the same color, but that color is different for each set. The line color for loaded RBS sets remains red (to match the icons). For the loaded optimization set's editors, the line is purple, to match the goal set icons.
 
RPL Set
Color
Icons
Expression Slot Set
Orange
Global Function Set
Brown
Initialization Rules
Teal
Iterative MRM Ruleset
Navy Blue
Object Level Accounting Method Set
Green
Optimization Goal Set
Purple
Rulebased Simulation (RBS) Ruleset
Red
RPL Display Settings and Display Of User-defined Function Calls
The RPL Layout Editor was renamed the RPL Display Settings dialog and was re-implemented to more intuitive and easier to use. The dialog can be accessed from the Set Display Settings menu on any RPL dialog. See “Formatting—Display Settings” in RiverWare Policy Language (RPL) for more information.
Further, within expressions, calls to user-defined RPL functions can now be shown in a user-settable color. The color is configured in the display settings dialog shown to the right.
Sets Saved with Model Now Have Indicator Icon
RPL sets that are saved in the model file now have a model file icon displayed next to the title bar.
Units
When a RPL expression accesses a value on a slot, there are now several options for how the slot value is represented internally:
 
Type
Description
--rplslotvalunits argument
mixed
The slot's user scale and standard units. This was the original representation, the only possibility until now, and is the current default.
mixed
standard
A scale of 1.0 and the slot's standard units
std
user
The slot's user scale and user units, unless the units are time-varying (e.g., acre-feet/month), in which case a scale of 1.0 and standard unit is used.
user
The RPL slot value representation scheme has two primary impacts:
• Numerical accuracy of the computation - the representation scheme affects the magnitude of the RPL values and so impacts numerical accuracy. Generally speaking the greatest accuracy is expected when using values of moderate magnitude. For many models, this consideration favors the "user" representation.
• Diagnostics - Sometimes diagnostics present values in a form related to their internal representation. In most cases, this consideration favors the "user" representation.
A command line argument was added to control the RPL slot unit representation. the argument is "--rplslotvalunits" and it requires an argument as listed in the above table
Using the default “mixed” units will reproduce results in your model but you may consider using the “user” option for diagnostic and/or accuracy purposes.
The RPL unit grammar was also extended to allow parsing of the caret character to indicate "raised to the power of". This brings the input and display syntax into agreement. For example, in the past a value was displayed as"m^2" but that was not legal input; now it is.
Run Control
Button labels
On the run control dialog, the button label was changed from Step to Init. When you click the Init button, the run proceeds through the initialization phase and pauses before the first timestep. Once paused, the button the says Step again.
Execute Initialization Rules
When there are initialization rules defined and you have either the simulation or rulebased simulation controller selected, the Run Control dialog now allows you to specify whether you wish to execute Initialization Rules. Check the box to execute the rules, uncheck the box to skip execution.
SCT
Simulation Objects
Groundwater Storage object - Wetted Sand Evaporation
On the Groundwater Storage object, Wetted Sand Evaporation method, three slots were added to model Soil Limited Evaporation. These slots are optional inputs; without inputs, the previous functionality is used.
If the user inputs the "Soil Limited Evaporation Elevation", an alternative equation may be used if the wetted area excluded is zero (reach above flow is zero) and the previous elevation is less than the Soil Limited Evap Elevation. Then evaporation is the
Soil Limited Evap Rate * Soil Limited Evap Factor * Wetted Area.
Otherwise, the existing equation is used.
Reservoirs
Changing Elevation Volume and Elevation Area Methods
Functionality was added to allow the elevation vs volume and elevation vs area relationships on the storage and level power reservoir to have data that changes at various times within a run. When trying to match historical results, these methods can be used to simulate a re-survey of the reservoir bathymetry that occurs periodically. A new method, Time Varying Elevation Volume was added to the Sedimentation Calculation category. Also, a new category and method called Surface Area Modification and Time Varying Elevation Area method were added. In both of these methods, the user provides the survey date as a column header on a table. The column then represents the new data to use until the next column in the table becomes valid. For more information on using these methods, see “Time Varying Elevation Volume” in Objects and Methods and “Time Varying Elevation Area” in Objects and Methods.
Convergence Percentage Slot
The slot Convergence Percentage is now used correctly as a percentage. This tightens up convergence in many spill computations. Some models may now abort with an error when before they did not.
Method and Category Name Changes
The following method and category names on the reservoir objects were changed to be more consistent:
 
Category
Method
New Name
SedimentCalculationCategory
N/A
Sediment Calculation
Sediment Calculation
NoSediment
None
CRSSSedimentCalc
CRSS Sediment Calc
Evaporation and Precipitation
NoEvaporation
None
MonthlyEvaporationCalc
Monthly Evaporation
MonthlyEvaporationCalcInAnnualTimestep
Monthly Evaporation In Annual Timestep
SingleEvaporationCalc
Single Evaporation
DailyEvaporationCalc
Daily Evaporation
PanAndIceEvaporation
Pan and Ice Evaporation
CurrentSurfaceAreaPanAndIce
Pan and Ice Evaporation, Current Surface Area
heatBudgetEvaporation
Heat Budget Evaporation
InputEvaporation
Input Evaporation
Peak Base Power Calc
In the PeakBasePowerCalc, if the outflow was less than the first value on the Base Flow Table, it would use a very small value. Now it issues an error if the lookup value is not on the table. This change could lead to a new error condition. If you want to match old results, you can insert 0 outflow and 0 baseflow as the first row of the table.
Unregulated spill near the crest
For certain inputs, the unregulated spill near the spillway crest was not correct. Note, this change can lead to slightly different numerical results. See “Unregulated” in Objects and Methods for more information on the change.
Thermal Object - Load Evaluation
A new category, Modified Load Evaluation, was added to the Thermal object. Within this category, the Calculate Modified Load method subtracts the net hydropower generation from the System Load. Also, within optimization, it allows you to write constraints to level the load to the extent possible.
Slots
Clear Values
For scalar slots, table slots, table series slots and periodic slots, a Clear Values operation was added to the Edit menu.
Editing of Values In Slot Dialogs
Enhancements and bug fixes were made to editing of values in the Open Slot, SCT, and Edit Account dialogs. Following is a list of changes that may impact you:
• Double-clicking a cell no longer converts it to input: Previously, if you double-clicked on any slot (including account slot) or SCT cell, it would convert the value to an input flag. Now, if no additional keys are pressed after a double-click, the value and flag remain.
• Tab key doesn’t select cells: Previously, if you used the tab key to move to the next cell, it would select the first cell. Any edits you made to the second cell would be applied to the first cell. This no longer happens. The Tab key just moves to the next cell.
• Editing a value takes you to left side of number: Previously, if you edited a very precise number, it would start the edit operation on the right side. This hid the larger magnitude digits. Now, the edit begins on the left side showing you the larger magnitude digits.
Initialization Flag
Previously, the “i” flag was called the Computed Input flag. Because it is used by Iterative MRM and the new Initialization rules, “Initialization Rules”, which both perform model setup functionality, the flag is now referred to as the Initialization flag.
Scalar and List Slot modifications
The List Slot, Scalar Slot, and Scalar Expression Slot were re-designed to remove the Ok/Apply/Cancel editing paradigm. Now, the values are applied immediately. In addition, on the two scalar slots, new buttons were added to configure the slot and edit the description (on data objects). Also, on newly created scalar slots on data objects, the default is now NaN instead of 0.0.
Import/Export now works correctly for scalar slots.
Subbasins
Subbasins Containing Aggregate Objects
Previously, it was impossible to remove element objects from the subbasin and save/load the model. Now, when an element object is removed from a subbasin, it is no longer automatically added back when the model is saved and loaded. Also, when the object selector is used to add objects to a subbasin, aggregate elements are only added to the subbasin if they are explicitly selected.
System Control Table
Adding Dividers
It is now easier to add dividers to an SCT. Two menus were added to the Slots menu to allow you to Insert Slot Divider or Append Slots Divider. As before, the selector can also be used to add dividers. The slots menu wording was modified because of this change.
Interpolation in multiple-slot selections
Previously, interpolation on the SCT was only possible for one slot at a time. Now, Interpolate Selection is possible for a rectangular selection of slots. The interpolation is still performed across timesteps and is separate for each slot. See “Set Multiple Values” in User Interface for more information.
Adjust Values
An Edit Adjust Slot Values operation was added to the SCT. This operation allows you to change multiple selected slot values by a percentage or an absolute value (if they all have the same units).
Keyboard accelerators
On the SCT, the keyboard accelerators were modified as follows:
 
Keyboard Accelerator
Menu Operation
Ctrl+S
File Save Model
Ctrl+Shift+S
File Save Model As ...
Ctrl+F
View Fit Row Header Columns
Ctrl+G
View Grow Columns to Data
Workspace
Geospatial Canvas
A new Geospatial View canvas was added to the RiverWare workspace. This canvas allows you to add and configure a georeferenced image file and then specify georeferenced coordinates for each object. This canvas also has enhanced display settings for the size of objects and label location, font and color.
For more information, see “Geospatial View” in User Interface.
Images on the Simulation View
Two enhancements were made to the background image support for the Simulation View only. These enhancements are not relevant for the new Geospatial View, which implements distinct support for a background image.
• Background images are no longer limited to image files in or under the loaded model file directory. That limitation can still be imposed through the use of a new checkbox. With this enhancement, it is no longer necessary to load (or save) the workspace before configuring the Simulation View's background image.
• When re-scaling the image or changing the pixel offsets from the left or bottom edges of the workspace, the user has the option to "Retain Object Positions" (in the Simulation View) relative to the background image.
For more information, see “Background Image” in User Interface.
Note that the Geospatial View will not support independent re-scaling of the image's horizontal and vertical dimensions, nor independent horizontal and vertical scales for real-world coordinates. Also the Geospatial View will not support map images rotated with respect to compass direction. Considering those limitations, some users may prefer to continue to use the Simulation View with a background map image.
Closed Bug Reports
The following bugs have been closed for this release. For more information on any bug, see the CADSWES website. The bugs are listed in order by bug number:
 
915
917
1348
1384
1451
1852
1860
1907
1982
2015
2141
2249
2250
2262
2403
2408
2445
2479
2570
2954
3114
3206
3319
3324
3325
3334
3345
3383
3387
3394
3417
3496
3538
3557
3599
3638
3711
3726
3728
3762
3767
3793
3798
3804
3872
3883
3914
3923
3937
3946
3954
3959
4002
4006
4012
4031
4070
4073
4080
4081
4096
4101
4133
4136
4145
4164
4193
4195
4212
4216
4255
4271
4274
4277
4281
4283
4294
4299
4302
4315
4323
4328
4335
4336
4387
4405
4414
4415
4428
4445
4455
4458
4470
4484
4488
4498
4551
4562
4630
4645
4681
4688
4714
4728
4737
4744
4746
4759
4760
4773
4779
4780
4782
4783
4786
4798
4805
4814
4815
4821
4824
4829
4830
4833
4834
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4872
4873
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4890
4891
4892
4893
4894
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4916
4917
4918
4919
4920
4921
4922
4923
4924
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4952
4953
4954
4957
4958
4959
4960
4961
4962
4963
4965
4966
4967
4968
4969
4971
4972
4973
4974
4975
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
 
 
 
 
 
Revised: 06/03/2019