Required Model File Updates
Future Value Calculation
Cumulative storage value calculations were added to the calculateFutureValue method in simulation. Old models that perform future value calculations will have to fill in the Marginal Storage Value Table and select the Cumul Stor Value Table Automation method or fill in the Cumul Stor Value Table by hand.
Confluence Used for Bifurcation
Error checking was added to the Confluence to make sure an upstream slot is not linked to another upstream slot (including Return Flow). Models trying to use the Confluence as a bifurcation object will get an error message about this. Old models should use the Bifurcation Object instead.
Additional Error Checking in Rulesets
Bug fixes and code enhancements were made to tighten up error checking in rulesets. Some rulesets may contain errors that were previously not caught. These rulesets will now be unable to load successfully. Diagnostics information will alert the user and specify the specific area in the ruleset that is not valid. One specific case where old rulesets will not load in the new executable is when a slot is referred to in the ruleset that does not exist on the workspace. If the function that contains the slot was not being used, then this error was never being caught. Now the ruleset will not load until the user removes or turns of the function.
Max Outflow and Max Release
The convergence routine used to solve for the maximum Outflow or Release (Turbine Release) has been re-designed to increase robustness. This routine is used whenever the Max Capacity (M) flag is set on Outflow or Release on a reservoir or when using the GetMaxOutflowGivenInflow or GetMaxReleaseGivenInflow rules functions. The nature of the convergence routine is such that the maximum and minimum possible pool elevations for the reservoir are computed in order to bracket the solution. This could effect old model files by causing a table interpolation error if the maximum or minimum pool elevation falls outside of the range given in table slots. This problem is remedied by adding additional data to the table slots that cause the problem. It is possible that the pool elevation values are not realistic values in respect to the physical system (i. e. a pool elevation that is below the bottom of the reservoir). Since these calculations are only performed to bracket the final solution, they are not recorded and will not affect the model results. The new convergence technique may require more iterations before converging. The value in the Max Iterations slot may have to be increased if the user notices a brown warning message which states, “An internal iterative loop reached the maximum iterations of ‘(value in Max Iterations slot)’ when solving for ‘(Outflow or Release)’”. Increasing the value to 40 should be sufficient.
CRSSEvaporationCalc
Two evaporation method changes were made in conjunction with adding the annual timestep. The CRSSEvaporationCalc method in the Evaporation and Precipitation category has been renamed MonthlyEvaporationCalc and a new method, SingleEvaporationCalc, has been added. For both methods, the associated evaporation coefficients are now in units of length/time (velocity). Previously, the Evaporation Coefficients slot used in the CRSSEvaporationCalc method used units of length. Old model files will update automatically for the new units, but rulesets that contain hardwired units for the evaporation coefficients will fail with an illegal unit conversion error and will need to be updated manually.
Energy Cannot be Input with Max Capacity Outflow
If the Max Capacity (M) flag is set on the Outflow slot on a reservoir, then the Energy slot cannot be set as input. Previously this was not considered an error. If a model has this combination of inputs the user will get the following error when running the model in the new release: “Cannot compute Maximum Capacity Outflow when Energy is input.”
Account Carryover Methods
The account carryover methods were moved from the object level to the account level. This means that a carryover method will have to be selected for each storage account as opposed to each reservoir object. Accounting models that were using carryover will have to be modified by selecting the appropriate carryover method on each account. The default method sets carryover to zero.