HomeMy WebLinkAbout03_BRBM_Modeling_the_Broad_River_Basin_Operations_with_OASIS1
Modeling the Broad River Basin Operations with OASIS
Addendum to the
User Manual for OASIS with OCLTM
December 2011
Revised April 2012
Prepared for the
North Carolina Division of Water Resources
Advancing the management of water resources
2
Table of Contents
Section Page
1 – Introduction 3
2 – Model Components
2.1 Schematic 5
2.2 Model Input 7
2.3 Run Configurations 13
2.4 Model Output 13
Appendices
A - Model Static Input Data and Run Code 14
B – Finalized Inflow Data Development 65
C – Provisional Inflow Data Development 83
D – Model Weighting Description 86
3
Section 1. Introduction
This report describes how OASIS is used to model the operations of the Broad River
Basin in North Carolina. This application of OASIS, known as the Broad River Basin
Hydrologic Model (the model), extends geographically from the headwaters of the Broad
River to the river’s confluence with Buffalo Creek. The confluence is the most
downstream point where the Broad River is impacted by operations in North Carolina.
This report is not intended to replace the User Manual for OASIS, which is available
from the Help menu of the model. Rather, it is intended to document the data used in this
application as well as the current operations of the basin. Information about the OASIS
platform is included only to the extent necessary to provide context for the application-
specific data.
The model is available for registered users on the Division of Water Resources (DWR)
server. The model can be used in two modes: (1) a simulation mode to evaluate system
performance for a given set of demands, operating policies, and facilities over the historic
inflow record; and (2) a position analysis mode for real-time management. In the latter
mode, the model uses multiple ensemble forecasts to provide a probabilistic assessment
of conditions up to one year in the future. Although it can be used for other purposes as
well, this feature is particularly useful for drought management. The simulation mode
contains three default runs, one for conditions today, one for projected 2030 conditions,
and one for conditions at the end of the 50-year planning horizon in 2060.
The model uses an inflow data set that extends from January 1, 1929 through September
30, 2009. This data set was developed using a comprehensive approach that (1) relies on
eight streamflow gages in the basin as well as four outside of the basin; (2) accounts
explicitly for upstream alterations, or impairments, from reservoir regulation and net
water consumption; and (3) uses statistical techniques to complete missing records for
these gages.
Real-time drought management depends upon having current forecasts of inflow. As
noted below, the generation of such forecasts is dependent upon having inflows through
the present day. Updating the inflows requires the collection of impairment data, which
can be time intensive. It is envisioned that these data will be collected every five years.
In the interim (e.g., through 2014), the inflow data starting October 2009 will be based on
a provisional inflow technique so that real-time updates can be made quickly and easily
without the need to collect all the impairment data.
The remainder of this document summarizes the components of the model and the major
operations in the basin. Appendix A lists the static input data and run code used in the
basecase simulation run that is based on today’s facilities, operations, and demands.
Appendix B describes the approach used to establish the finalized inflow data set.
Verification of inflows and operating rules was described in meetings with the Technical
Review Committee and formalized in Powerpoint® presentations that are available on the
DWR website. Appendix C describes the approach for generating provisional inflows.
4
Appendix D describes the weighting assigned to the various nodes and arcs so that the
model reflects the general priorities for water allocation in the basin.
It is important to note how the OASIS model should and should not be used. OASIS is a
generalized type of mass balance model used mainly in evaluating planning and
management alternatives. It is not intended for use in hydraulic routing nor flood
management, although it can be linked to other models for those purposes.
In addition, since modeling results are sensitive to inflows, the user must be cautioned
about accuracy of the inflows. HydroLogics spent considerable effort in developing the
inflow data. The methodology ensures that the monthly naturalized flows at the gage
locations match, which assumes that any measurement error is embedded in the
impairments and not the streamflow data. DWR agreed to this method, which, although
imperfect, is the most reasonable given the available data. Further, it is important to note
that we are not trying to replicate history in computing the OASIS inflows; rather, we are
trying to build a data set of daily flows whose variation is representative of history while
preserving monthly gaged flows as “ground truth”.
Due partly to the inaccuracy of some of the impairment data and to time of travel,
negative inflows may occur. These can lead to potential model infeasibility. The model
code filters out negative inflows, particularly large ones, but preserves the total inflow
volume over a short period by debiting those negative inflows from subsequent positive
inflows. For example, if a rainstorm hits the upstream part of the reach but not the
downstream part, the gaged flow data may indicate a large negative inflow (gain)
between the upstream and downstream ends of a stream reach. When the flow attenuates
upstream and peaks downstream, the inflow becomes positive, and the negative gain from
the day(s) before is (are) debited from the positive inflows the day(s) after to ensure that
the average inflow over that period is preserved. The occurrence of negative inflows is
reduced in the main-stem of the Broad by incorporating time-of-travel equations
recommended by DWR. These equations are provided in Appendix B.
5
Section 2. Model Components
2.1 Schematic
The model uses a map-based schematic that includes nodes for withdrawals (agricultural,
municipal, and industrial), discharges (municipal and industrial), reservoirs, and inflows,
and arcs that represent means of water conveyance between nodes. The model schematic
is shown on the following page and is sized to show the full system. (To make the
schematic more legible, the user can adjust the schematic size from the model’s graphical
user interface (GUI)). The schematic and associated physical data were developed with
input from basin stakeholders at numerous model review meetings.
In total, the model has approximately 70 nodes and 80 connecting arcs. There are 9
reservoir nodes (seven actual reservoirs and two artificial storage nodes used for time-of-
travel flow routing), 14 irrigation nodes, 9 municipal and industrial demand nodes, 4
independent discharge nodes, 16 natural inflow nodes (including the reservoir nodes),
and other miscellaneous nodes to account for minimum flow requirements,
interconnections, and instream flow assessment for ecological needs.
6
7
The user can click on any node or connecting arc on the schematic to access specific
information, like reservoir elevation-storage-area data or minimum streamflow
requirements. These data are also contained in tables contained on other tabs of the
model.
2.2 Model Input
Input data for the model is stored in three forms: static and pattern data, timeseries data,
and user-defined data using operations control language (OCL). The timeseries data are
stored outside the model run. The other data are embedded in the run and copy over
automatically when creating a new run.
Static and pattern data are contained in the GUI and represent data that do not change
during the model simulation (such as physical data like reservoir elevation-storage-area
relationships) or repeating data that occurs every year in the simulation (like monthly
demand patterns or seasonal minimum release patterns). Timeseries data change with
each day in the simulation record and typically consist of inflows and reservoir net
evaporation. OCL allows the user to define more elaborate operating rules than are
permitted from the GUI.
Static and Pattern Data
Tables containing the model’s static and pattern data can be found in Appendix A.
Reservoir information includes elevation-storage-area relationships, minimum and
maximum allowable storage, and any rule curves which dictate the preferred operating
elevation throughout the year.
Minimum flows and reservoir releases are defined by minimum flow patterns on arcs.
Water treatment plant and transmission constraints are defined by maximum capacities
on arcs.
Municipal and industrial demand nodes use an annual average demand subject to a
monthly pattern, and an associated wastewater discharge based on a fraction of the
monthly demand. Wastewater discharges not associated with demand nodes are modeled
using an annual average return subject to a monthly pattern.
The model allows the user to systematically adjust all municipal and industrial demands
in the basin by invoking the demand multiplier option on the Setup tab. This is useful
when doing sensitivity analyses on the impact of demand growth in the basin. Note that
irrigation demands and independent wastewater returns are not adjusted using this
multiplier but can be updated using the procedure described in the next section. The few
independent wastewater returns in the model can be adjusted manually in the pattern
tables.
8
Timeseries Data
The timeseries data are stored in a basedata timeseries file (basedata.dss), which contains
all the inflow and net evaporation (evaporation less precipitation) data. The sources for
these data are provided in Appendix B along with a more detailed description of how the
inflows were developed. As noted, updating the timeseries data can be done in two ways:
(1) using the comprehensive approach described in Appendix B; or (2) using the
provisional approach for facilitating real-time drought management described in
Appendix C. The provisional approach relies on data from select gaging and
precipitation stations throughout the basin. The provisional updates can be done directly
from the interface by selecting the Update Record tab, inputting the data, and clicking on
the Update Record button. The update record algorithm will calculate the inflows to all
the OASIS inflow nodes and net evaporation for all reservoir nodes and write them to the
basedata.dss file automatically.
Agricultural water use is modeled as a timeseries over the historic hydrologic record. It
is broken out by county and depends on livestock count, crop usage, livestock and crop
water consumption, and rainfall. Evapotranspiration equations for each crop are used in
conjunction with the timeseries precipitation record so that crops are only irrigated when
necessary. The water use can be easily adjusted from the model interface by opening the
Edit Irrigation Data dialog box on the Setup tab. The model automatically converts the
input data on crop acreage and livestock count into water use values. The agricultural
demand nodes are a summation of the agricultural water usage in a particular reach of
interest.
Operating Rules
As described in more detail in Appendix D, most of the water allocation priorities are set
by the user in the GUI by applying weights to nodes and arcs. The most common
operating rules are for storing water in reservoirs versus releasing the water to meet local
demands or minimum releases, and these are reflected by the weighting scheme. Simply
stated, if a minimum flow in a river is more important than meeting the local water
supply demand, a higher weight on the minimum flow means water supply deliveries will
be scaled back in order to meet the minimum flow.
The Operations Control Language (OCL) allows the user to model more complex
operating rules, such as tying demand reductions to reservoir levels or river flows that are
common in drought management. These files are accessible from the model interface.
The OCL files associated with the basecase simulation run that uses year 2010 demands
are included in Appendix A. The key OCL files include main.ocl, which initializes the
run and refers to all the other OCL files; inflows.ocl, which filters the inflows for any
negative gains in the provisional record; return_flows.ocl which sets the wastewater
returns; routing.ocl, which routes water to account for time of travel; and
drought_plans.ocl which codes the Water Shortage Response Plans submitted by utilities
to DWR.
9
A flowchart is provided below summarizing the overall operations of the basin as
captured in the model. Appendix A contains the OCL files, and detail on weighting is
provided in Appendix D.
10 Flow Chart of Major Nodes in the Upper Broad BasinSecond Broad Cliffside GageSummit LakeLake AdgerBRWA DemandFlow down to Middle BasinReservoir NodeDemand NodeJunction NodeFlow ArcWithdrawal ArcWW Return ArcLake LurePolk Co. DemandRuthefordtonWWSpindale WWForest City DemandGreen RiverSecond Broad RiverBroad RiverThe model weighting for upper basin reservoirs allows for minimum flow requirements to be met (Lake Lure) and demand to be met (Lake Adger), but not to release water for any needs downstream of each reservoirAll basins demands are modeled as an annual average daily demand with a monthly pattern.All basin wastewater returns associated with a demand are modeled as fraction of the withdrawal; the return fraction uses a monthly pattern. In the case of BRWA, wastewater is returned through both Spindale and Ruthefordton
11 Flow Chart of Major Nodes in the Middle Broad BasinCliffside DamFlow down to Lower BasinReservoir NodeDemand NodeJunction NodeFlow ArcWithdrawal ArcWW Return ArcCliffside Steam Plant DemandCleveland Co.DemandShelbyDemandBoiling Springs GageFirst Broad RiverFlow from the Upper BasinBoiling Springs WWStice Shoals DamThe model weighting for Cliffside dam allows for the steam plant demand to be met, but not to release water for any needs downstream of each reservoirShelby has a minimum flow-by requirement for the First Broad. The model weighting is set up to prioritize this over demand; if there is not enough flow to meet both, Shelby will withdraw from their Broad intake.
12 Flow Chart of Major Nodes in the Lower Broad BasinGaston Shoals DamModel terminusReservoir NodeDemand NodeJunction NodeFlow ArcWithdrawal ArcWW Return ArcGaffney SC DemandMoss LakeGaffney GageBuffalo CreekFlow from the Middle BasinGrover WWKings Mountain DemandGaston Shoals Bypass flowGaston Shoals has a minimum bypass and release requirement. The model weighting is set up to prioritize the rule curve first, then the bypass flow, and then the minimum release.Moss Lake has a minimum release requirement. The model weighting is set up to prioritize the minimum release first, then Kings Mountain demand
13
2.3 Run Configurations
The model can be used in two modes: (1) a simulation mode to evaluate system performance for
a given set of demands, operating policies, and facilities over the historic inflow record; and (2) a
position analysis mode for real-time management. General information on creating, modifying,
and executing runs is provided in the User Manual for OASIS, which is available from the Help
menu of the model.
Simulation:
In simulation mode, on the Setup tab, the user can select from three radio buttons: No Forecasts,
Conditional Forecasts, and Non-conditional Forecasts. The latter two enable the user to evaluate
forecast-based operating policies (although none are used in the basecase scenario), with inflow
forecasts generated for each week in the historical inflow record. Conditional forecasts account
for antecedent flow conditions while non-conditional forecasts are made independent of how wet
or dry the basin is. The forecasts for the simulation mode are generated outside the GUI and
stored in the basedata folder. The current forecast file is developed from the timeseries
basedata.dss file that extends through September 2009. The forecast file should only be updated
in conjunction with the comprehensive inflow updates (anticipated every five years with the first
update in 2014).
Position Analysis:
In position analysis mode, the user can select from Conditional or Non-Conditional Forecasts on
the Setup tab. By executing a run, the model will produce a forecast (typically of river flows or
reservoir elevations) for up to the next 365 days. A forecast can be made on any date in the
historic inflow record or no more than one day after the end of the inflow record. Typically it
will be used starting the day after the last update of the inflow and net evaporation record. For
example, if these records end September 30, 2009, the user can run a forecast for October 1,
2009. If a month has passed, and the user wants to run a forecast for November 1, 2009, the user
would update the inflows and net evaporation for October using the Update Record tab and then
start the position analysis run on November 1. For a reservoir, or locations affected by the
operation of a reservoir upstream, the forecast is dependent on the starting elevation of the
reservoir. On the Setup tab, the user simply inputs the starting elevation (or storage), the starting
date of the forecast run, and clicks Run.
2.4 Model Output
The model allows the user to customize output files (tables or plots) and save them for routine
use. Alternatively, the user can click on any node or arc on the schematic or go to the Setup tab
and select Quick View to access and save tabular or plotted output. The balance sheet can also
serve as a useful tool for tracking water through the system.
14
Included in the model output tables is a file called xQy_ClimaticYear_BSgage.1v. This file
allows the user to compute instream flow statistics, such as 7Q10, for a specific site, in this case
the Boiling Springs gage. To generate statistics for a different site, the user would copy and
rename the file, then change the name and associated arc listed in the file. When viewing the
generated output, the default layout shows two columns, for 7- and 30-day low flows (these
periods can be changed in the .1v file). Scrolling to the bottom of the output file shows Log
Pearson percentiles for each column. If the user is interested in the 7Q10 (7-day low flow, 10th
percentile) flow, the user would look at the first column, and the row labeled LPrs.100.
In addition, the model is capable of automatically determining the safe yield for a specific
demand node, in this case the demand from Moss Lake. To generate statistics for a different site,
the user would copy and rename the file (currently called SafeYield_MossLake.1v), then change
the name and associated demand node listed in the file. The safe yield can be determined for
each year in the historic inflow record (annual safe yield analysis) or for the entire period of
record. The user inputs the adjustment criteria by selecting the Run Safe Yield Analysis button
on the Setup tab. The safe yield routine works by tracking demand shortages for the chosen
demand node, and iteratively works towards the maximum demand that produces no shortages
from the supply source (in this example, Moss Lake). Note that the drought plans cannot be
activated when using the safe yield routine, as the demand reductions resulting from drought
restrictions inherently produce a ‘shortage’ from the normal demand.
15
APPENDIX A –
Model Static Input Data and Run Code
[from basecase run called “SimBase” using current conditions]
Static data tables included are:
All Model Nodes
All Model Arcs
Reservoirs Nodes
Reservoir Rules
Reservoir SAE Data
Demand Patterns
Wastewater Return Patterns
Arc Minimum Flows
County Irrigation Data
Crop Irrigation Coefficients
OCL files included are:
main.ocl
udef_list.ocl
agric_calculation.ocl
agric_allocation.ocl
set_inflows.ocl
return_flows.ocl
routing.ocl
drought_plans.ocl
16
Model Nodes
Node
Number Type Inflow Name
010 Reservoir OCL Lake Summit (Tuxedo Dam)
012 Demand None LS_Ag
020 Junction None Lake Summit Outflow
033 Junction Pattern Saluda WWTP
040 Reservoir OCL Lake Adger (Turner Shoals Dam)
042 Demand None LA_Ag
050 Junction None Green River below Turner Shoals
060 Junction None Lower Green River at Ken Miller Bridge
061 Demand None Polk County
070 Reservoir OCL Lake Lure
072 Demand None LL_Ag
073 Junction Pattern Lake Lure WWTP
080 Junction None Lake Lure Outflow
086 Demand None Broad River Water Authority Demand
090 Junction None Upper Broad R. above Green R.
093 Junction Pattern Columbus WWTP
095 Reservoir None Upper Broad Routing
100 Junction OCL Green R. Confluence
102 Demand None BRoad_Green_Ag
150 Junction OCL 2nd Broad Forest City Intake
152 Demand None Logn_Ag
170 Junction None Forest City Broad Intake
180 Junction None Broad R. upstream Cliffside Steam Plant
186 Demand None Forest City Demand
190 Junction OCL Second Broad at Cliffside
192 Demand None 2ndClif_Ag
200 Junction None 2nd Broad Conf.
220 Reservoir OCL Cliffside Steam Plant Dam
222 Demand None CS_Ag
224 Demand None Duke_Cliffside Demand
250 Junction OCL Boiling Springs Gage
252 Demand None BS_Ag
260 Junction None Shelby Broad Intake
306 Junction None Boiling Springs WW
410 Junction OCL Cleveland Co. Intake
412 Demand None Casar_Ag
17
Node
Number Type Inflow Name
415 Junction OCL Lawndale Gage
416 Demand None Cleveland Co. Demand
420 Junction OCL First Broad Shelby
422 Demand None Lawn_Ag
430 Junction None Shelby Total WD
436 Demand None Shelby Demand
437 Junction Pattern PPG Ind.
440 Reservoir OCL Stice Shoals Dam
442 Demand None SS_Ag
450 Junction None Broad_First Broad Confluence
500 Junction None Node 500
525 Reservoir None Lower Broad Routing
550 Reservoir OCL Gaston Shoals Dam
552 Demand None GS_Ag
554 Demand None Gaffney WS
555 Junction None GS Bypass
600 Reservoir OCL Kings Mt. / Moss Lake
601 Junction None Kings Mt. Total WD
602 Demand None KM_Ag
604 Demand None Kings Mt. Demand
605 Junction None Kings Mt. Gastonia WW
606 Junction None Grover
608 Junction None Bessemer City Emer. Transfer
610 Junction None Kings. Mt. Outflow
645 Demand None CNA Holdings
650 Junction OCL Buffalo Creek
652 Demand None Buff_Ag
700 Junction OCL Gaffney gage
999 Junction None Terminal
18
Model Arcs
U/S Node D/S Node Name Min Flow
Max
Flow
010 012 LS_Ag WD None None
010 020 Lake Summit Release None None
020 040 Green R. to L. Adger None None
033 040 Saluda WW None None
040 042 LA_Ag WD None None
040 050 Lake Adger Release None None
040 061 Polk Co. WD None None
050 060 Green R. to Ken Miller Br None None
060 100 Green R. to Broad Conf. None None
070 072 LL_Ag WD None None
070 080 Lake Lure Release Pattern None
073 080 Lake Lure WW None None
080 086 Broad R. WA WD None None
080 090 80>90 None None
086 090 Ruthefordton WWTP None None
086 150 Spindale WWTP None None
090 095 90>95 None None
093 100 Columbus WW None None
095 100 Broad R. to Green R. Conf None None
100 102 100>102 None None
100 170 100>170 None None
150 152 150>152 None None
150 186 Forest City WD None None
150 190 2nd Broad to Cliffside None None
170 180 170>180 None None
170 186 Forest City Broad WD None None
180 200 180>200 None None
186 190 Forest City WW None None
190 192 Nd5_Ag WD None None
190 200 2nd Broad to Broad Conf None None
200 220 U/S Cliffside Plant None None
220 222 CS_Ag WD None None
220 224 Duke_Cliffside WD None None
220 250 D/S Cliffside Plant None None
224 250 Cliff WW None None
250 252 250>252 None None
19
U/S Node D/S Node Name Min Flow
Max
Flow
250 260 Boiling Springs Gage Flow None None
260 430 Shelby Broad WD None Pattern
260 500 260>600 None None
306 500 Boiling Springs WW None None
410 412 Nd6_Ag WD None None
410 415 410>415 None None
410 416 CCW First Broad WD None None
415 420 415>420 None None
415 422 415>422 None None
420 430 Shelby First Broad WD None None
420 440 Lower 1st Broad Pattern None
430 416 Shel>CCW None Pattern
430 436 Shelby WS WD None None
436 306 Shelby>Boil None None
436 440 Shelby WW None None
437 440 PPG WW None None
440 442 SS_Ag WD None None
440 450 Stice Shoals Outflow None None
450 500 1st Broad to Broad Conf. None None
500 525 500>525 None None
525 550 525>550 None None
550 552 GS_Ag WD None None
550 554 Gaffney Water Supply None None
550 555 GS Bypass1 Pattern None
550 700 Gaston Shoals Release OCL None
555 700 GS Bypass2 None None
600 601 Kings. Mt. Total WD None None
600 602 KM_Ag WD None None
600 610 Kings Mt. Release Pattern None
601 416 Clev. Co. Emer. Trans. None Pattern
601 604 Kings Mt. WS WD None None
601 608 Bessemer Emer. Trans. None Pattern
604 605 Kings Mt. Gastonia WW None Pattern
604 606 KM>Grover None None
604 610 Kings Mt. WW None None
606 650 Grover WW None None
610 645 CNA WD None None
20
U/S Node D/S Node Name Min Flow
Max
Flow
610 650 Buffalo Ck. None None
645 650 CNA WW None None
650 652 Nd9_Ag WD None None
650 700 Buffalo Ck. to Broad Conf None None
700 999 System Outflow None None
21
Reservoir Nodes
Node
Number Name
Dead
Storage
Dead Stor
Units Lower Rule Upper Rule
Max
Storage
Max Stor
Units
010 Lake Summit (Tuxedo Dam) 1997.6 FT Pattern Pattern 2012.6 FT
040 Lake Adger (Turner Shoals Dam) 911.5 FT Pattern Pattern 911.6 FT
070 Lake Lure 990.5 FT Pattern Pattern 996.4 FT
095 Upper Broad Routing 0.0 AF None None 999.0 KAF
220 Cliffside Steam Plant Dam 655.0 FT Pattern Pattern 664.0 FT
440 Stice Shoals Dam 654.2 FT Pattern Pattern 654.3 FT
525 Lower Broad Routing 0.0 AF None None 999.0 KAF
550 Gaston Shoals Dam 570.0 FT Pattern Pattern 605.2 FT
600 Kings Mt. / Moss Lake 665.0 FT Pattern Pattern 736.0 FT
Reservoir Rules
Node
Number Name Units Month Day
Upper
Rule
Lower
Rule
010 Lake Summit (Tuxedo Dam) FT 1 1 2010.60 2005.60
010 Lake Summit (Tuxedo Dam) FT 12 31 2010.60 2005.60
040 Lake Adger (Turner Shoals Dam) FT 1 1 911.60 911.50
040 Lake Adger (Turner Shoals Dam) FT 12 31 911.60 911.50
070 Lake Lure FT 1 1 996.40 990.50
070 Lake Lure FT 12 31 996.40 990.50
220 Cliffside Steam Plant Dam FT 1 1 664.00 655.00
220 Cliffside Steam Plant Dam FT 12 31 664.00 655.00
440 Stice Shoals Dam FT 1 1 654.28 654.18
440 Stice Shoals Dam FT 12 31 654.28 654.18
550 Gaston Shoals Dam FT 1 1 604.20 603.20
550 Gaston Shoals Dam FT 2 28 604.20 603.20
550 Gaston Shoals Dam FT 3 1 605.20 604.20
550 Gaston Shoals Dam FT 5 31 605.20 604.20
550 Gaston Shoals Dam FT 6 1 604.20 603.20
550 Gaston Shoals Dam FT 12 31 604.20 603.20
600 Kings Mt. / Moss Lake FT 1 1 736.00 718.00
600 Kings Mt. / Moss Lake FT 12 31 736.00 718.00
22
Reservoir SAE Data
Node
Number
Name Elevation
Elevation
Units Storage
Storage
Units Area
Area
Units
010 Lake Summit (Tuxedo Dam) 1920 FT 0 AF 2 acre
010 Lake Summit (Tuxedo Dam) 1930 FT 50 AF 5 acre
010 Lake Summit (Tuxedo Dam) 1935 FT 100 AF 8 acre
010 Lake Summit (Tuxedo Dam) 1940 FT 150 AF 13 acre
010 Lake Summit (Tuxedo Dam) 1945 FT 250 AF 20 acre
010 Lake Summit (Tuxedo Dam) 1950 FT 395 AF 30 acre
010 Lake Summit (Tuxedo Dam) 1960 FT 875 AF 56 acre
010 Lake Summit (Tuxedo Dam) 1970 FT 1750 AF 88 acre
010 Lake Summit (Tuxedo Dam) 1980 FT 3000 AF 123 acre
010 Lake Summit (Tuxedo Dam) 1990 FT 4550 AF 156 acre
010 Lake Summit (Tuxedo Dam) 2000 FT 6400 AF 200 acre
010 Lake Summit (Tuxedo Dam) 2005 FT 7400 AF 226 acre
010 Lake Summit (Tuxedo Dam) 2010 FT 8650 AF 264 acre
010 Lake Summit (Tuxedo Dam) 2012.6 FT 9343 AF 290 acre
010 Lake Summit (Tuxedo Dam) 2025 FT 15700 AF 387 acre
010 Lake Summit (Tuxedo Dam) 2036.6 FT 22050 AF 438 acre
040 Lake Adger (Turner Shoals Dam) 840 FT 0 AF 5 acre
040 Lake Adger (Turner Shoals Dam) 850 FT 200 AF 22 acre
040 Lake Adger (Turner Shoals Dam) 860 FT 600 AF 52 acre
040 Lake Adger (Turner Shoals Dam) 870 FT 1300 AF 95 acre
040 Lake Adger (Turner Shoals Dam) 880 FT 2500 AF 155 acre
040 Lake Adger (Turner Shoals Dam) 890 FT 4400 AF 225 acre
040 Lake Adger (Turner Shoals Dam) 900 FT 7100 AF 312 acre
040 Lake Adger (Turner Shoals Dam) 910 FT 10700 AF 415 acre
040 Lake Adger (Turner Shoals Dam) 912 FT 11700 AF 438 acre
040 Lake Adger (Turner Shoals Dam) 960 FT 41950 AF 1420 acre
070 Lake Lure 867 FT 0 AF 0 acre
070 Lake Lure 895 FT 798 AF 57 acre
070 Lake Lure 980.4 FT 31840.9 AF 670 acre
070 Lake Lure 991 FT 39345.7 AF 746 acre
070 Lake Lure 1006.4 FT 52096.9 AF 910 acre
070 Lake Lure 1041 FT 89983.6 AF 1280 acre
220 Cliffside Steam Plant Dam 655 FT 0 AF 8.1 acre
220 Cliffside Steam Plant Dam 660 FT 41.5 AF 8.5 acre
220 Cliffside Steam Plant Dam 665 FT 85.4 AF 9 acre
220 Cliffside Steam Plant Dam 670 FT 131.7 AF 9.5 acre
220 Cliffside Steam Plant Dam 675 FT 180.4 AF 10 acre
220 Cliffside Steam Plant Dam 680 FT 231.4 AF 10.4 acre
220 Cliffside Steam Plant Dam 685 FT 284.8 AF 10.9 acre
220 Cliffside Steam Plant Dam 690 FT 340.6 AF 11.4 acre
220 Cliffside Steam Plant Dam 695 FT 398.7 AF 11.9 acre
440 Stice Shoals Dam 635 FT 0 AF 1.8 acre
440 Stice Shoals Dam 640 FT 9 AF 2 acre
440 Stice Shoals Dam 645 FT 20 AF 2.1 acre
440 Stice Shoals Dam 650 FT 31 AF 2.3 acre
440 Stice Shoals Dam 654 FT 41 AF 2.4 acre
440 Stice Shoals Dam 655 FT 42 AF 2.4 acre
440 Stice Shoals Dam 660 FT 55 AF 2.6 acre
440 Stice Shoals Dam 665 FT 68 AF 2.7 acre
440 Stice Shoals Dam 670 FT 82 AF 2.9 acre
440 Stice Shoals Dam 675 FT 97 AF 3 acre
550 Gaston Shoals Dam 560.2 FT 0 AF 0 acre
550 Gaston Shoals Dam 571.5 FT 118.1 AF 20.9 acre
23
Node
Number
Name Elevation
Elevation
Units Storage
Storage
Units Area
Area
Units
550 Gaston Shoals Dam 583 FT 718.4 AF 83.5 acre
550 Gaston Shoals Dam 594 FT 2211.1 AF 187.9 acre
550 Gaston Shoals Dam 605.2 FT 5133.7 AF 334 acre
550 Gaston Shoals Dam 610 FT 7180.9 AF 519 acre
550 Gaston Shoals Dam 615 FT 10343.4 AF 746 acre
550 Gaston Shoals Dam 620 FT 14480.9 AF 909 acre
550 Gaston Shoals Dam 625 FT 19253.4 AF 1000 acre
550 Gaston Shoals Dam 630 FT 24408.4 AF 1062 acre
550 Gaston Shoals Dam 635 FT 29840.9 AF 1111 acre
550 Gaston Shoals Dam 640 FT 35525.9 AF 1163 acre
600 Kings Mt. / Moss Lake 670 FT 0 AF 0 acre
600 Kings Mt. / Moss Lake 680 FT 557 AF 167 acre
600 Kings Mt. / Moss Lake 700 FT 7101 AF 520 acre
600 Kings Mt. / Moss Lake 720 FT 21678 AF 960 acre
600 Kings Mt. / Moss Lake 736 FT 39918 AF 1330 acre
600 Kings Mt. / Moss Lake 740 FT 45553 AF 1489 acre
24
Demand Patterns
Node
Number Name Units
Ann. Avg.
Dem. Month Day
Monthly
Factor
061 Polk County MGD 0 1 1 0.683
061 Polk County MGD 0 1 31 0.683
061 Polk County MGD 0 2 1 0.935
061 Polk County MGD 0 2 29 0.935
061 Polk County MGD 0 3 1 0.875
061 Polk County MGD 0 3 31 0.875
061 Polk County MGD 0 4 1 0.939
061 Polk County MGD 0 4 30 0.939
061 Polk County MGD 0 5 1 1.067
061 Polk County MGD 0 5 31 1.067
061 Polk County MGD 0 6 1 1.080
061 Polk County MGD 0 6 30 1.080
061 Polk County MGD 0 7 1 1.131
061 Polk County MGD 0 7 31 1.131
061 Polk County MGD 0 8 1 1.259
061 Polk County MGD 0 8 31 1.259
061 Polk County MGD 0 9 1 1.161
061 Polk County MGD 0 9 30 1.161
061 Polk County MGD 0 10 1 1.144
061 Polk County MGD 0 10 31 1.144
061 Polk County MGD 0 11 1 0.858
061 Polk County MGD 0 11 30 0.858
061 Polk County MGD 0 12 1 0.871
061 Polk County MGD 0 12 31 0.871
086 Broad River Water Authority MGD 5.17 1 1 0.983
086 Broad River Water Authority MGD 5.17 1 31 0.983
086 Broad River Water Authority MGD 5.17 2 1 0.942
086 Broad River Water Authority MGD 5.17 2 29 0.942
086 Broad River Water Authority MGD 5.17 3 1 0.942
086 Broad River Water Authority MGD 5.17 3 31 0.942
086 Broad River Water Authority MGD 5.17 4 1 0.970
086 Broad River Water Authority MGD 5.17 4 30 0.970
086 Broad River Water Authority MGD 5.17 5 1 1.021
086 Broad River Water Authority MGD 5.17 5 31 1.021
086 Broad River Water Authority MGD 5.17 6 1 1.081
086 Broad River Water Authority MGD 5.17 6 30 1.081
086 Broad River Water Authority MGD 5.17 7 1 1.069
086 Broad River Water Authority MGD 5.17 7 31 1.069
086 Broad River Water Authority MGD 5.17 8 1 1.113
086 Broad River Water Authority MGD 5.17 8 31 1.113
086 Broad River Water Authority MGD 5.17 9 1 1.047
086 Broad River Water Authority MGD 5.17 9 30 1.047
086 Broad River Water Authority MGD 5.17 10 1 1.007
086 Broad River Water Authority MGD 5.17 10 31 1.007
086 Broad River Water Authority MGD 5.17 11 1 0.929
086 Broad River Water Authority MGD 5.17 11 30 0.929
086 Broad River Water Authority MGD 5.17 12 1 0.896
086 Broad River Water Authority MGD 5.17 12 31 0.896
186 Forest City MGD 1.825 1 1 0.992
186 Forest City MGD 1.825 1 31 0.992
186 Forest City MGD 1.825 2 1 0.998
186 Forest City MGD 1.825 2 29 0.998
186 Forest City MGD 1.825 3 1 0.953
25
Node
Number Name Units
Ann. Avg.
Dem. Month Day
Monthly
Factor
186 Forest City MGD 1.825 3 31 0.953
186 Forest City MGD 1.825 4 1 1.015
186 Forest City MGD 1.825 4 30 1.015
186 Forest City MGD 1.825 5 1 1.033
186 Forest City MGD 1.825 5 31 1.033
186 Forest City MGD 1.825 6 1 1.031
186 Forest City MGD 1.825 6 30 1.031
186 Forest City MGD 1.825 7 1 0.995
186 Forest City MGD 1.825 7 31 0.995
186 Forest City MGD 1.825 8 1 1.042
186 Forest City MGD 1.825 8 31 1.042
186 Forest City MGD 1.825 9 1 1.016
186 Forest City MGD 1.825 9 30 1.016
186 Forest City MGD 1.825 10 1 1.004
186 Forest City MGD 1.825 10 31 1.004
186 Forest City MGD 1.825 11 1 1.001
186 Forest City MGD 1.825 11 30 1.001
186 Forest City MGD 1.825 12 1 0.921
186 Forest City MGD 1.825 12 31 0.921
224 Duke_Cliffside MGD 19.36 1 1 1.019
224 Duke_Cliffside MGD 19.36 1 31 1.019
224 Duke_Cliffside MGD 19.36 2 1 0.995
224 Duke_Cliffside MGD 19.36 2 29 0.995
224 Duke_Cliffside MGD 19.36 3 1 0.889
224 Duke_Cliffside MGD 19.36 3 31 0.889
224 Duke_Cliffside MGD 19.36 4 1 0.908
224 Duke_Cliffside MGD 19.36 4 30 0.908
224 Duke_Cliffside MGD 19.36 5 1 0.964
224 Duke_Cliffside MGD 19.36 5 31 0.964
224 Duke_Cliffside MGD 19.36 6 1 1.039
224 Duke_Cliffside MGD 19.36 6 30 1.039
224 Duke_Cliffside MGD 19.36 7 1 1.025
224 Duke_Cliffside MGD 19.36 7 31 1.025
224 Duke_Cliffside MGD 19.36 8 1 1.084
224 Duke_Cliffside MGD 19.36 8 31 1.084
224 Duke_Cliffside MGD 19.36 9 1 1.069
224 Duke_Cliffside MGD 19.36 9 30 1.069
224 Duke_Cliffside MGD 19.36 10 1 0.950
224 Duke_Cliffside MGD 19.36 10 31 0.950
224 Duke_Cliffside MGD 19.36 11 1 1.046
224 Duke_Cliffside MGD 19.36 11 30 1.046
224 Duke_Cliffside MGD 19.36 12 1 1.011
224 Duke_Cliffside MGD 19.36 12 31 1.011
416 Cleveland Co. MGD 4.227 1 1 0.902
416 Cleveland Co. MGD 4.227 1 31 0.902
416 Cleveland Co. MGD 4.227 2 1 0.893
416 Cleveland Co. MGD 4.227 2 29 0.893
416 Cleveland Co. MGD 4.227 3 1 0.902
416 Cleveland Co. MGD 4.227 3 31 0.902
416 Cleveland Co. MGD 4.227 4 1 0.959
416 Cleveland Co. MGD 4.227 4 30 0.959
416 Cleveland Co. MGD 4.227 5 1 1.046
416 Cleveland Co. MGD 4.227 5 31 1.046
416 Cleveland Co. MGD 4.227 6 1 1.135
416 Cleveland Co. MGD 4.227 6 30 1.135
26
Node
Number Name Units
Ann. Avg.
Dem. Month Day
Monthly
Factor
416 Cleveland Co. MGD 4.227 7 1 1.109
416 Cleveland Co. MGD 4.227 7 31 1.109
416 Cleveland Co. MGD 4.227 8 1 1.093
416 Cleveland Co. MGD 4.227 8 31 1.093
416 Cleveland Co. MGD 4.227 9 1 1.059
416 Cleveland Co. MGD 4.227 9 30 1.059
416 Cleveland Co. MGD 4.227 10 1 0.991
416 Cleveland Co. MGD 4.227 10 31 0.991
416 Cleveland Co. MGD 4.227 11 1 0.954
416 Cleveland Co. MGD 4.227 11 30 0.954
416 Cleveland Co. MGD 4.227 12 1 0.957
416 Cleveland Co. MGD 4.227 12 31 0.957
436 Shelby MGD 3.846 1 1 0.956
436 Shelby MGD 3.846 1 31 0.956
436 Shelby MGD 3.846 2 1 0.959
436 Shelby MGD 3.846 2 29 0.959
436 Shelby MGD 3.846 3 1 0.946
436 Shelby MGD 3.846 3 31 0.946
436 Shelby MGD 3.846 4 1 0.982
436 Shelby MGD 3.846 4 30 0.982
436 Shelby MGD 3.846 5 1 1.052
436 Shelby MGD 3.846 5 31 1.052
436 Shelby MGD 3.846 6 1 1.159
436 Shelby MGD 3.846 6 30 1.159
436 Shelby MGD 3.846 7 1 1.133
436 Shelby MGD 3.846 7 31 1.133
436 Shelby MGD 3.846 8 1 1.022
436 Shelby MGD 3.846 8 31 1.022
436 Shelby MGD 3.846 9 1 0.987
436 Shelby MGD 3.846 9 30 0.987
436 Shelby MGD 3.846 10 1 0.962
436 Shelby MGD 3.846 10 31 0.962
436 Shelby MGD 3.846 11 1 0.926
436 Shelby MGD 3.846 11 30 0.926
436 Shelby MGD 3.846 12 1 0.917
436 Shelby MGD 3.846 12 31 0.917
554 Gaffney WS MGD 8.3 1 1 1.000
554 Gaffney WS MGD 8.3 12 31 1.000
604 Kings Mt. MGD 2.43 1 1 0.935
604 Kings Mt. MGD 2.43 1 31 0.935
604 Kings Mt. MGD 2.43 2 1 0.969
604 Kings Mt. MGD 2.43 2 29 0.969
604 Kings Mt. MGD 2.43 3 1 0.936
604 Kings Mt. MGD 2.43 3 31 0.936
604 Kings Mt. MGD 2.43 4 1 0.972
604 Kings Mt. MGD 2.43 4 30 0.972
604 Kings Mt. MGD 2.43 5 1 1.034
604 Kings Mt. MGD 2.43 5 31 1.034
604 Kings Mt. MGD 2.43 6 1 1.101
604 Kings Mt. MGD 2.43 6 30 1.101
604 Kings Mt. MGD 2.43 7 1 1.058
604 Kings Mt. MGD 2.43 7 31 1.058
604 Kings Mt. MGD 2.43 8 1 1.157
604 Kings Mt. MGD 2.43 8 31 1.157
604 Kings Mt. MGD 2.43 9 1 1.053
27
Node
Number Name Units
Ann. Avg.
Dem. Month Day
Monthly
Factor
604 Kings Mt. MGD 2.43 9 30 1.053
604 Kings Mt. MGD 2.43 10 1 1.020
604 Kings Mt. MGD 2.43 10 31 1.020
604 Kings Mt. MGD 2.43 11 1 0.934
604 Kings Mt. MGD 2.43 11 30 0.934
604 Kings Mt. MGD 2.43 12 1 0.831
604 Kings Mt. MGD 2.43 12 31 0.831
645 CNA Holdings MGD 0.5 1 1 1.060
645 CNA Holdings MGD 0.5 1 31 1.060
645 CNA Holdings MGD 0.5 2 1 0.921
645 CNA Holdings MGD 0.5 2 28 0.921
645 CNA Holdings MGD 0.5 3 1 0.809
645 CNA Holdings MGD 0.5 3 31 0.809
645 CNA Holdings MGD 0.5 4 1 0.753
645 CNA Holdings MGD 0.5 4 30 0.753
645 CNA Holdings MGD 0.5 5 1 0.977
645 CNA Holdings MGD 0.5 5 31 0.977
645 CNA Holdings MGD 0.5 6 1 1.005
645 CNA Holdings MGD 0.5 6 30 1.005
645 CNA Holdings MGD 0.5 7 1 0.865
645 CNA Holdings MGD 0.5 7 31 0.865
645 CNA Holdings MGD 0.5 8 1 0.642
645 CNA Holdings MGD 0.5 8 31 0.642
645 CNA Holdings MGD 0.5 9 1 0.977
645 CNA Holdings MGD 0.5 9 30 0.977
645 CNA Holdings MGD 0.5 10 1 1.228
645 CNA Holdings MGD 0.5 10 31 1.228
645 CNA Holdings MGD 0.5 11 1 1.451
645 CNA Holdings MGD 0.5 11 30 1.451
645 CNA Holdings MGD 0.5 12 1 1.312
645 CNA Holdings MGD 0.5 12 31 1.312
28
Wastewater Return Patterns (as fraction of demand)
Name Month Factor Name Month Factor
BSpringsWW 1 0.062 KingsMtWW 1 0.982
BSpringsWW 2 0.061 KingsMtWW 2 0.868
BSpringsWW 3 0.064 KingsMtWW 3 0.996
BSpringsWW 4 0.058 KingsMtWW 4 0.845
BSpringsWW 5 0.044 KingsMtWW 5 0.796
BSpringsWW 6 0.037 KingsMtWW 6 0.704
BSpringsWW 7 0.04 KingsMtWW 7 0.631
BSpringsWW 8 0.048 KingsMtWW 8 0.639
BSpringsWW 9 0.059 KingsMtWW 9 0.753
BSpringsWW 10 0.054 KingsMtWW 10 0.743
BSpringsWW 11 0.058 KingsMtWW 11 0.827
BSpringsWW 12 0.061 KingsMtWW 12 0.946
CliffsideWW 1 0.399 RuthefordWW 1 0.132
CliffsideWW 2 0.418 RuthefordWW 2 0.135
CliffsideWW 3 0.491 RuthefordWW 3 0.143
CliffsideWW 4 0.44 RuthefordWW 4 0.127
CliffsideWW 5 0.421 RuthefordWW 5 0.121
CliffsideWW 6 0.437 RuthefordWW 6 0.115
CliffsideWW 7 0.443 RuthefordWW 7 0.121
CliffsideWW 8 0.444 RuthefordWW 8 0.112
CliffsideWW 9 0.403 RuthefordWW 9 0.127
CliffsideWW 10 0.419 RuthefordWW 10 0.125
CliffsideWW 11 0.403 RuthefordWW 11 0.14
CliffsideWW 12 0.447 RuthefordWW 12 0.165
CNAWW 1 0.895 ShelbyWW 1 0.626
CNAWW 2 0.895 ShelbyWW 2 0.593
CNAWW 3 0.895 ShelbyWW 3 0.681
CNAWW 4 0.895 ShelbyWW 4 0.569
CNAWW 5 0.895 ShelbyWW 5 0.497
CNAWW 6 0.895 ShelbyWW 6 0.416
CNAWW 7 0.895 ShelbyWW 7 0.417
CNAWW 8 0.895 ShelbyWW 8 0.429
CNAWW 9 0.895 ShelbyWW 9 0.475
CNAWW 10 0.895 ShelbyWW 10 0.477
CNAWW 11 0.895 ShelbyWW 11 0.509
CNAWW 12 0.895 ShelbyWW 12 0.601
ForestCityWW 1 0.13 SpindaleWW 1 0.3
29
Name Month Factor Name Month Factor
ForestCityWW 2 0.705 SpindaleWW 2 0.291
ForestCityWW 3 0.698 SpindaleWW 3 0.297
ForestCityWW 4 0.758 SpindaleWW 4 0.268
ForestCityWW 5 0.702 SpindaleWW 5 0.266
ForestCityWW 6 0.65 SpindaleWW 6 0.286
ForestCityWW 7 0.688 SpindaleWW 7 0.264
ForestCityWW 8 0.677 SpindaleWW 8 0.274
ForestCityWW 9 0.696 SpindaleWW 9 0.297
ForestCityWW 10 0.686 SpindaleWW 10 0.27
ForestCityWW 11 0.643 SpindaleWW 11 0.301
ForestCityWW 12 0.65 SpindaleWW 12 0.316
GroverWW 1 0.003
GroverWW 2 0.002
GroverWW 3 0.002
GroverWW 4 0.002
GroverWW 5 0.003
GroverWW 6 0.001
GroverWW 7 0.001
GroverWW 8 0.002
GroverWW 9 0.002
GroverWW 10 0.001
GroverWW 11 0.002
GroverWW 12 0.002
30
Arc Minimum Flows
Name
U/S
Node
D/S
Node Units Month Day
Min
Flow
Lake Lure 070 080 CFS 1 1 7
Lake Lure 070 080 CFS 12 31 7
1st Broad Shelby 420 440 CFS 1 1 25
1st Broad Shelby 420 440 CFS 12 31 25
Gaston Shoals Bypass 550 555 CFS 1 1 150
Gaston Shoals Bypass 550 555 CFS 2 28 150
Gaston Shoals Bypass 550 555 CFS 3 1 350
Gaston Shoals Bypass 550 555 CFS 5 31 350
Gaston Shoals Bypass 550 555 CFS 6 1 150
Gaston Shoals Bypass 550 555 CFS 12 31 150
Gaston Shoals Release 550 700 CFS 1 1 718
Gaston Shoals Release 550 700 CFS 2 29 718
Gaston Shoals Release 550 700 CFS 3 1 518
Gaston Shoals Release 550 700 CFS 4 30 518
Gaston Shoals Release 550 700 CFS 5 1 301
Gaston Shoals Release 550 700 CFS 5 31 301
Gaston Shoals Release 550 700 CFS 6 1 501
Gaston Shoals Release 550 700 CFS 6 30 501
Gaston Shoals Release 550 700 CFS 7 1 284
Gaston Shoals Release 550 700 CFS 11 30 284
Gaston Shoals Release 550 700 CFS 12 1 501
Gaston Shoals Release 550 700 CFS 12 31 501
Moss Lake 600 610 CFS 1 1 12
Moss Lake 600 610 CFS 12 31 12
31
County Irrigation Data
Crop Units Bunc Clevd Gast Hend Linc McDo Polk Ruth Cher_SC Spart_SC
IrrTobacco ac. 0 0 0 0 0 0 0 0 0 0
Turf ac. 0 6.825 0.66 45 0 0 0 2.764 0 0.075
Golf ac. 0 0 0 24.594 0 0 92.964 0.558 0 0
ContNurs ac. 0 0 0.025 0.689 5.186 0 0 0 0 0
FieldNurs ac. 0 0 0.147 4.552 20.743 0 0 0 0 0.652
IrrCotton ac. 0 0 0 0 0 0 0 0 0 0
IrrEarlySoy ac. 0 0 0 0 0 0 0 0 0 0.018
IrrLateSoy ac. 0 0 0 0 0 0 0 0 0 0.018
IrrCorn ac. 0 0 3.3 0 0 0 0 0 6.534 0
IrrVeg ac. 2.5 5.13 0.106 0 112.5 0 64.38 0 9.348 0.064
IrrPas&Hay ac. 0 0 0.825 0 0 0 2.688 0 0 0.963
IrrPeanut ac. 0 0 0 0 0 0 0 0 0 0
IrrBlueberry ac. 0 0 0 0 0 0 0 0 0.36 0.008
IrrStrawberry ac. 0 0 0 0 0 0 0 0 0 0
IrrFruit ac. 0 48.983 0 0 47.025 0 0 0 0.42 0.98
Beef Cattle # 76 1452 14 149.6 0 0 432.4 64 435.6 34.8
Dairy Cows # 0 76.23 6 102 0 0 271.14 1.49 0 4.088
Horses # 15.807 157.687 7.265 78.268 0 0 112.9 70.019 79.774 9.262
Pigs # 0 84.942 0.424 5.372 0 0 0 2.787 1.723 0.099
Chickens # 0 0 1031.773 148.58 0 0 0 3360 0 9.662
Turkeys # 0 0 0.234 2.992 0 0 0 1.78 0 560
Other
Animals # 13.775 135.689 7.305 69.836 0 0 104.841 91.817 94.723 9.945
32
Crop Irrigation Coefficients
Name Month Day Value
Name Month Day Value
IrrCoef_Beef 1 1 12
IrrCoef_OtherAnimal 1 1 2
IrrCoef_Beef 12 31 12
IrrCoef_OtherAnimal 12 31 2
IrrCoef_Blueberry 1 1 0
IrrCoef_PastHay 1 1 0
IrrCoef_Blueberry 2 28 0
IrrCoef_PastHay 4 30 0
IrrCoef_Blueberry 3 1 1
IrrCoef_PastHay 5 1 0.142857
IrrCoef_Blueberry 4 14 1
IrrCoef_PastHay 9 30 0.142857
IrrCoef_Blueberry 4 15 0.178571
IrrCoef_PastHay 10 1 0
IrrCoef_Blueberry 9 30 0.178571
IrrCoef_PastHay 12 31 0
IrrCoef_Blueberry 10 1 0
IrrCoef_Peanut 1 1 0
IrrCoef_Blueberry 12 31 0
IrrCoef_Peanut 5 7 0
IrrCoef_Chicken 1 1 9
IrrCoef_Peanut 5 8 0.00014
IrrCoef_Chicken 12 31 9
IrrCoef_Peanut 5 9 0.00028
IrrCoef_ContNurs 1 1 0.2
IrrCoef_Peanut 5 10 0.00042
IrrCoef_ContNurs 3 31 0.2
IrrCoef_Peanut 5 11 0.00056
IrrCoef_ContNurs 4 1 0.5
IrrCoef_Peanut 5 12 0.0007
IrrCoef_ContNurs 5 31 0.5
IrrCoef_Peanut 5 13 0.00084
IrrCoef_ContNurs 6 1 0.75
IrrCoef_Peanut 5 14 0.00098
IrrCoef_ContNurs 8 31 0.75
IrrCoef_Peanut 5 15 0.00112
IrrCoef_ContNurs 9 1 0.5
IrrCoef_Peanut 5 16 0.00126
IrrCoef_ContNurs 10 31 0.5
IrrCoef_Peanut 5 17 0.0014
IrrCoef_ContNurs 11 1 0.2
IrrCoef_Peanut 5 18 0.0028
IrrCoef_ContNurs 12 31 0.2
IrrCoef_Peanut 5 19 0.0042
IrrCoef_Corn 1 1 0
IrrCoef_Peanut 5 20 0.0056
IrrCoef_Corn 4 23 0
IrrCoef_Peanut 5 21 0.007
IrrCoef_Corn 5 4 0.02
IrrCoef_Peanut 5 22 0.0084
IrrCoef_Corn 5 14 0.039
IrrCoef_Peanut 5 23 0.0098
IrrCoef_Corn 5 23 0.0543
IrrCoef_Peanut 5 24 0.0112
IrrCoef_Corn 5 24 0.056
IrrCoef_Peanut 5 25 0.0126
IrrCoef_Corn 6 2 0.0722
IrrCoef_Peanut 5 26 0.014
IrrCoef_Corn 6 3 0.074
IrrCoef_Peanut 5 27 0.0158
IrrCoef_Corn 6 12 0.0974
IrrCoef_Peanut 5 28 0.0176
IrrCoef_Corn 6 13 0.1
IrrCoef_Peanut 5 29 0.0194
IrrCoef_Corn 6 18 0.115
IrrCoef_Peanut 5 30 0.0212
IrrCoef_Corn 6 23 0.1425
IrrCoef_Peanut 5 31 0.023
IrrCoef_Corn 7 2 0.21675
IrrCoef_Peanut 6 1 0.0248
IrrCoef_Corn 7 3 0.225
IrrCoef_Peanut 6 2 0.0266
IrrCoef_Corn 7 4 0.229
IrrCoef_Peanut 6 3 0.0284
IrrCoef_Corn 7 5 0.233
IrrCoef_Peanut 6 4 0.0302
IrrCoef_Corn 7 6 0.237
IrrCoef_Peanut 6 5 0.032
IrrCoef_Corn 7 7 0.241
IrrCoef_Peanut 6 6 0.0338
IrrCoef_Corn 7 8 0.245
IrrCoef_Peanut 6 7 0.0356
IrrCoef_Corn 7 9 0.247
IrrCoef_Peanut 6 8 0.0374
IrrCoef_Corn 7 10 0.249
IrrCoef_Peanut 6 9 0.0392
IrrCoef_Corn 7 11 0.251
IrrCoef_Peanut 6 10 0.041
IrrCoef_Corn 7 12 0.253
IrrCoef_Peanut 6 11 0.0428
IrrCoef_Corn 7 13 0.255
IrrCoef_Peanut 6 12 0.0446
IrrCoef_Corn 7 17 0.261
IrrCoef_Peanut 6 13 0.0464
IrrCoef_Corn 7 18 0.2625
IrrCoef_Peanut 6 14 0.0482
IrrCoef_Corn 7 22 0.2565
IrrCoef_Peanut 6 15 0.05
IrrCoef_Corn 7 23 0.255
IrrCoef_Peanut 6 16 0.0526
IrrCoef_Corn 8 1 0.23925
IrrCoef_Peanut 6 17 0.0552
IrrCoef_Corn 8 2 0.2375
IrrCoef_Peanut 6 18 0.0578
IrrCoef_Corn 8 11 0.206
IrrCoef_Peanut 6 19 0.0604
IrrCoef_Corn 8 12 0.2025
IrrCoef_Peanut 6 20 0.063
33
Name Month Day Value
Name Month Day Value
IrrCoef_Corn 8 21 0.1665
IrrCoef_Peanut 6 21 0.0656
IrrCoef_Corn 8 22 0.1625
IrrCoef_Peanut 6 22 0.0682
IrrCoef_Corn 8 31 0.12875
IrrCoef_Peanut 6 23 0.0708
IrrCoef_Corn 9 1 0.125
IrrCoef_Peanut 6 24 0.0734
IrrCoef_Corn 9 10 0.0935
IrrCoef_Peanut 6 25 0.076
IrrCoef_Corn 9 11 0.09
IrrCoef_Peanut 6 26 0.07915
IrrCoef_Corn 9 20 0.072
IrrCoef_Peanut 6 27 0.0823
IrrCoef_Corn 9 21 0.07
IrrCoef_Peanut 6 28 0.08545
IrrCoef_Corn 9 30 0.061
IrrCoef_Peanut 6 29 0.0886
IrrCoef_Corn 10 1 0.06
IrrCoef_Peanut 6 30 0.09175
IrrCoef_Corn 10 12 0.050833
IrrCoef_Peanut 7 1 0.0949
IrrCoef_Corn 10 13 0.05
IrrCoef_Peanut 7 2 0.09805
IrrCoef_Corn 10 14 0
IrrCoef_Peanut 7 3 0.1012
IrrCoef_Corn 12 31 0
IrrCoef_Peanut 7 4 0.10435
IrrCoef_Cotton 1 1 0
IrrCoef_Peanut 7 5 0.1075
IrrCoef_Cotton 5 7 0
IrrCoef_Peanut 7 6 0.113
IrrCoef_Cotton 5 8 0.001
IrrCoef_Peanut 7 7 0.1185
IrrCoef_Cotton 5 9 0.002
IrrCoef_Peanut 7 8 0.124
IrrCoef_Cotton 5 30 0.0288
IrrCoef_Peanut 7 9 0.1295
IrrCoef_Cotton 5 31 0.0304
IrrCoef_Peanut 7 10 0.135
IrrCoef_Cotton 6 1 0.032
IrrCoef_Peanut 7 11 0.1405
IrrCoef_Cotton 6 2 0.0336
IrrCoef_Peanut 7 12 0.146
IrrCoef_Cotton 6 3 0.0352
IrrCoef_Peanut 7 13 0.1515
IrrCoef_Cotton 6 4 0.0368
IrrCoef_Peanut 7 14 0.157
IrrCoef_Cotton 6 5 0.0384
IrrCoef_Peanut 7 15 0.1625
IrrCoef_Cotton 6 6 0.04
IrrCoef_Peanut 7 16 0.168
IrrCoef_Cotton 6 7 0.0417
IrrCoef_Peanut 7 17 0.1735
IrrCoef_Cotton 6 8 0.0434
IrrCoef_Peanut 7 18 0.179
IrrCoef_Cotton 6 9 0.0451
IrrCoef_Peanut 7 19 0.1845
IrrCoef_Cotton 6 10 0.0468
IrrCoef_Peanut 7 20 0.19
IrrCoef_Cotton 6 11 0.0485
IrrCoef_Peanut 7 21 0.1955
IrrCoef_Cotton 6 12 0.0502
IrrCoef_Peanut 7 22 0.201
IrrCoef_Cotton 6 13 0.0519
IrrCoef_Peanut 7 23 0.2065
IrrCoef_Cotton 6 14 0.0536
IrrCoef_Peanut 7 24 0.212
IrrCoef_Cotton 6 15 0.0553
IrrCoef_Peanut 7 25 0.2175
IrrCoef_Cotton 6 16 0.057
IrrCoef_Peanut 7 26 0.22
IrrCoef_Cotton 6 17 0.0587
IrrCoef_Peanut 7 27 0.2225
IrrCoef_Cotton 6 18 0.0604
IrrCoef_Peanut 7 28 0.225
IrrCoef_Cotton 6 19 0.0621
IrrCoef_Peanut 7 29 0.2275
IrrCoef_Cotton 6 20 0.0638
IrrCoef_Peanut 7 30 0.23
IrrCoef_Cotton 6 21 0.0655
IrrCoef_Peanut 7 31 0.2325
IrrCoef_Cotton 6 22 0.0672
IrrCoef_Peanut 8 1 0.235
IrrCoef_Cotton 6 23 0.0689
IrrCoef_Peanut 8 2 0.2375
IrrCoef_Cotton 6 24 0.0706
IrrCoef_Peanut 8 3 0.24
IrrCoef_Cotton 6 25 0.0723
IrrCoef_Peanut 8 4 0.2425
IrrCoef_Cotton 6 26 0.074
IrrCoef_Peanut 8 5 0.243
IrrCoef_Cotton 6 27 0.0764
IrrCoef_Peanut 8 6 0.2435
IrrCoef_Cotton 6 28 0.0788
IrrCoef_Peanut 8 7 0.244
IrrCoef_Cotton 6 29 0.0812
IrrCoef_Peanut 8 8 0.2445
IrrCoef_Cotton 6 30 0.0836
IrrCoef_Peanut 8 9 0.245
IrrCoef_Cotton 7 1 0.086
IrrCoef_Peanut 8 10 0.2455
IrrCoef_Cotton 7 2 0.0884
IrrCoef_Peanut 8 11 0.246
IrrCoef_Cotton 7 3 0.0908
IrrCoef_Peanut 8 12 0.2465
IrrCoef_Cotton 7 4 0.0932
IrrCoef_Peanut 8 13 0.247
IrrCoef_Cotton 7 5 0.0956
IrrCoef_Peanut 8 14 0.2475
IrrCoef_Cotton 7 6 0.098
IrrCoef_Peanut 8 15 0.247
34
Name Month Day Value
Name Month Day Value
IrrCoef_Cotton 7 7 0.1009
IrrCoef_Peanut 8 16 0.2465
IrrCoef_Cotton 7 8 0.1038
IrrCoef_Peanut 8 17 0.246
IrrCoef_Cotton 7 9 0.1067
IrrCoef_Peanut 8 18 0.2455
IrrCoef_Cotton 7 10 0.1096
IrrCoef_Peanut 8 19 0.245
IrrCoef_Cotton 7 11 0.1125
IrrCoef_Peanut 8 20 0.2445
IrrCoef_Cotton 7 12 0.1175
IrrCoef_Peanut 8 21 0.244
IrrCoef_Cotton 7 13 0.1225
IrrCoef_Peanut 8 22 0.2435
IrrCoef_Cotton 7 14 0.1275
IrrCoef_Peanut 8 23 0.243
IrrCoef_Cotton 7 15 0.1325
IrrCoef_Peanut 8 24 0.2425
IrrCoef_Cotton 7 16 0.1375
IrrCoef_Peanut 8 25 0.24075
IrrCoef_Cotton 7 17 0.145
IrrCoef_Peanut 8 26 0.239
IrrCoef_Cotton 7 18 0.1525
IrrCoef_Peanut 8 27 0.23725
IrrCoef_Cotton 7 19 0.16
IrrCoef_Peanut 8 28 0.2355
IrrCoef_Cotton 7 20 0.1675
IrrCoef_Peanut 8 29 0.23375
IrrCoef_Cotton 7 21 0.175
IrrCoef_Peanut 8 30 0.232
IrrCoef_Cotton 7 22 0.1825
IrrCoef_Peanut 8 31 0.23025
IrrCoef_Cotton 7 23 0.19
IrrCoef_Peanut 9 1 0.2285
IrrCoef_Cotton 7 24 0.1975
IrrCoef_Peanut 9 2 0.22675
IrrCoef_Cotton 7 25 0.205
IrrCoef_Peanut 9 3 0.225
IrrCoef_Cotton 7 26 0.2125
IrrCoef_Peanut 9 4 0.22275
IrrCoef_Cotton 7 27 0.2175
IrrCoef_Peanut 9 5 0.2205
IrrCoef_Cotton 7 28 0.2225
IrrCoef_Peanut 9 6 0.21825
IrrCoef_Cotton 7 29 0.2275
IrrCoef_Peanut 9 7 0.216
IrrCoef_Cotton 7 30 0.2325
IrrCoef_Peanut 9 8 0.21375
IrrCoef_Cotton 7 31 0.2375
IrrCoef_Peanut 9 9 0.2115
IrrCoef_Cotton 8 1 0.24
IrrCoef_Peanut 9 10 0.20925
IrrCoef_Cotton 8 2 0.2425
IrrCoef_Peanut 9 11 0.207
IrrCoef_Cotton 8 3 0.245
IrrCoef_Peanut 9 12 0.20475
IrrCoef_Cotton 8 4 0.2475
IrrCoef_Peanut 9 13 0.2025
IrrCoef_Cotton 8 5 0.25
IrrCoef_Peanut 9 14 0.19975
IrrCoef_Cotton 8 6 0.25
IrrCoef_Peanut 9 15 0.197
IrrCoef_Cotton 8 7 0.25
IrrCoef_Peanut 9 16 0.19425
IrrCoef_Cotton 8 8 0.25
IrrCoef_Peanut 9 17 0.1915
IrrCoef_Cotton 8 9 0.25
IrrCoef_Peanut 9 18 0.18875
IrrCoef_Cotton 8 10 0.25
IrrCoef_Peanut 9 19 0.186
IrrCoef_Cotton 8 11 0.25
IrrCoef_Peanut 9 20 0.18325
IrrCoef_Cotton 8 12 0.25
IrrCoef_Peanut 9 21 0.1805
IrrCoef_Cotton 8 13 0.25
IrrCoef_Peanut 9 22 0.17775
IrrCoef_Cotton 8 14 0.25
IrrCoef_Peanut 9 23 0.175
IrrCoef_Cotton 8 15 0.25
IrrCoef_Peanut 9 24 0.1725
IrrCoef_Cotton 8 16 0.2485
IrrCoef_Peanut 9 25 0.17
IrrCoef_Cotton 8 17 0.247
IrrCoef_Peanut 9 26 0.1675
IrrCoef_Cotton 8 18 0.2455
IrrCoef_Peanut 9 27 0.165
IrrCoef_Cotton 8 19 0.244
IrrCoef_Peanut 9 28 0.1625
IrrCoef_Cotton 8 20 0.2425
IrrCoef_Peanut 9 29 0.16
IrrCoef_Cotton 8 21 0.241
IrrCoef_Peanut 9 30 0.1575
IrrCoef_Cotton 8 22 0.2395
IrrCoef_Peanut 10 1 0.155
IrrCoef_Cotton 8 23 0.238
IrrCoef_Peanut 10 2 0.1525
IrrCoef_Cotton 8 24 0.2365
IrrCoef_Peanut 10 3 0.15
IrrCoef_Cotton 8 25 0.235
IrrCoef_Peanut 10 4 0.14775
IrrCoef_Cotton 8 26 0.232
IrrCoef_Peanut 10 5 0.1455
IrrCoef_Cotton 8 27 0.229
IrrCoef_Peanut 10 6 0.14325
IrrCoef_Cotton 8 28 0.226
IrrCoef_Peanut 10 7 0.141
IrrCoef_Cotton 8 29 0.223
IrrCoef_Peanut 10 8 0.13875
IrrCoef_Cotton 8 30 0.22
IrrCoef_Peanut 10 9 0.1365
IrrCoef_Cotton 8 31 0.217
IrrCoef_Peanut 10 10 0.13425
35
Name Month Day Value
Name Month Day Value
IrrCoef_Cotton 9 1 0.214
IrrCoef_Peanut 10 11 0.132
IrrCoef_Cotton 9 2 0.211
IrrCoef_Peanut 10 12 0.12975
IrrCoef_Cotton 9 3 0.208
IrrCoef_Peanut 10 13 0.1275
IrrCoef_Cotton 9 4 0.205
IrrCoef_Peanut 10 14 0.126
IrrCoef_Cotton 9 5 0.202
IrrCoef_Peanut 10 15 0.1245
IrrCoef_Cotton 9 6 0.199
IrrCoef_Peanut 10 16 0.123
IrrCoef_Cotton 9 7 0.196
IrrCoef_Peanut 10 17 0.1215
IrrCoef_Cotton 9 8 0.193
IrrCoef_Peanut 10 18 0.12
IrrCoef_Cotton 9 9 0.19
IrrCoef_Peanut 10 19 0.1185
IrrCoef_Cotton 9 10 0.187
IrrCoef_Peanut 10 20 0.117
IrrCoef_Cotton 9 11 0.184
IrrCoef_Peanut 10 21 0.1155
IrrCoef_Cotton 9 12 0.181
IrrCoef_Peanut 10 22 0.114
IrrCoef_Cotton 9 13 0.178
IrrCoef_Peanut 10 23 0.1125
IrrCoef_Cotton 9 14 0.175
IrrCoef_Peanut 10 24 0.110417
IrrCoef_Cotton 9 15 0.1725
IrrCoef_Peanut 10 25 0.108333
IrrCoef_Cotton 9 16 0.17
IrrCoef_Peanut 10 26 0.10625
IrrCoef_Cotton 9 17 0.1675
IrrCoef_Peanut 10 27 0.104167
IrrCoef_Cotton 9 18 0.165
IrrCoef_Peanut 10 28 0.102083
IrrCoef_Cotton 9 19 0.1625
IrrCoef_Peanut 10 29 0.1
IrrCoef_Cotton 9 20 0.16
IrrCoef_Peanut 10 30 0
IrrCoef_Cotton 9 21 0.1575
IrrCoef_Peanut 12 31 0
IrrCoef_Cotton 9 22 0.155
IrrCoef_Pig 1 1 4
IrrCoef_Cotton 9 23 0.1525
IrrCoef_Pig 12 31 4
IrrCoef_Cotton 9 24 0.15
IrrCoef_Strawberry 1 1 0
IrrCoef_Cotton 9 25 0.1475
IrrCoef_Strawberry 2 28 0
IrrCoef_Cotton 9 26 0.145
IrrCoef_Strawberry 3 1 1
IrrCoef_Cotton 9 27 0.1425
IrrCoef_Strawberry 3 31 1
IrrCoef_Cotton 9 28 0.14
IrrCoef_Strawberry 4 1 0.178571
IrrCoef_Cotton 9 29 0.1375
IrrCoef_Strawberry 5 31 0.178571
IrrCoef_Cotton 9 30 0.135
IrrCoef_Strawberry 6 1 0
IrrCoef_Cotton 10 1 0.1325
IrrCoef_Strawberry 9 14 0
IrrCoef_Cotton 10 2 0.13
IrrCoef_Strawberry 9 15 0.178571
IrrCoef_Cotton 10 3 0.1275
IrrCoef_Strawberry 9 30 0.178571
IrrCoef_Cotton 10 4 0.125
IrrCoef_Strawberry 10 1 1
IrrCoef_Cotton 10 5 0.12275
IrrCoef_Strawberry 11 15 1
IrrCoef_Cotton 10 6 0.1205
IrrCoef_Strawberry 11 16 0
IrrCoef_Cotton 10 7 0.11825
IrrCoef_Strawberry 12 31 0
IrrCoef_Cotton 10 8 0.116
IrrCoef_Tobacco 1 1 0
IrrCoef_Cotton 10 9 0.11375
IrrCoef_Tobacco 5 20 0
IrrCoef_Cotton 10 10 0.1115
IrrCoef_Tobacco 5 21 0.06
IrrCoef_Cotton 10 11 0.10925
IrrCoef_Tobacco 6 10 0.06
IrrCoef_Cotton 10 12 0.107
IrrCoef_Tobacco 6 11 0.062
IrrCoef_Cotton 10 13 0.10475
IrrCoef_Tobacco 6 12 0.064
IrrCoef_Cotton 10 14 0.1025
IrrCoef_Tobacco 6 22 0.083333
IrrCoef_Cotton 10 15 0
IrrCoef_Tobacco 6 23 0.086667
IrrCoef_Cotton 12 31 0
IrrCoef_Tobacco 6 24 0.09
IrrCoef_Cotton 5 10 0.003
IrrCoef_Tobacco 6 25 0.0933
IrrCoef_Cotton 5 11 0.004
IrrCoef_Tobacco 6 26 0.0967
IrrCoef_Cotton 5 12 0.005
IrrCoef_Tobacco 6 27 0.1
IrrCoef_Cotton 5 13 0.006
IrrCoef_Tobacco 6 28 0.10625
IrrCoef_Cotton 5 14 0.007
IrrCoef_Tobacco 6 29 0.1125
IrrCoef_Cotton 5 15 0.008
IrrCoef_Tobacco 6 30 0.11875
IrrCoef_Cotton 5 16 0.009
IrrCoef_Tobacco 7 1 0.125
IrrCoef_Cotton 5 17 0.01
IrrCoef_Tobacco 7 2 0.133333
IrrCoef_Cotton 5 18 0.0114
IrrCoef_Tobacco 7 3 0.141667
IrrCoef_Cotton 5 19 0.0128
IrrCoef_Tobacco 7 4 0.15
36
Name Month Day Value
Name Month Day Value
IrrCoef_Cotton 5 20 0.0142
IrrCoef_Tobacco 7 5 0.155625
IrrCoef_Cotton 5 21 0.0156
IrrCoef_Tobacco 7 6 0.16125
IrrCoef_Cotton 5 22 0.017
IrrCoef_Tobacco 7 7 0.166875
IrrCoef_Cotton 5 23 0.0184
IrrCoef_Tobacco 7 8 0.1725
IrrCoef_Cotton 5 24 0.0198
IrrCoef_Tobacco 7 9 0.18
IrrCoef_Cotton 5 25 0.0212
IrrCoef_Tobacco 7 10 0.1875
IrrCoef_Cotton 5 26 0.0226
IrrCoef_Tobacco 7 11 0.195
IrrCoef_Cotton 5 27 0.024
IrrCoef_Tobacco 7 12 0.200625
IrrCoef_Cotton 5 28 0.0256
IrrCoef_Tobacco 7 13 0.20625
IrrCoef_Cotton 5 29 0.0272
IrrCoef_Tobacco 7 14 0.211875
IrrCoef_Dairy 1 1 40
IrrCoef_Tobacco 7 15 0.2175
IrrCoef_Dairy 12 31 40
IrrCoef_Tobacco 7 18 0.2325
IrrCoef_EarlySoy 1 1 0
IrrCoef_Tobacco 7 23 0.24
IrrCoef_EarlySoy 5 20 0
IrrCoef_Tobacco 7 24 0.241667
IrrCoef_EarlySoy 5 21 0.001
IrrCoef_Tobacco 7 25 0.243333
IrrCoef_EarlySoy 5 30 0.01
IrrCoef_Tobacco 7 26 0.245
IrrCoef_EarlySoy 5 31 0.012
IrrCoef_Tobacco 7 30 0.24
IrrCoef_EarlySoy 6 19 0.05
IrrCoef_Tobacco 7 31 0.235
IrrCoef_EarlySoy 6 29 0.075
IrrCoef_Tobacco 8 1 0.23
IrrCoef_EarlySoy 7 9 0.11
IrrCoef_Tobacco 8 2 0.225
IrrCoef_EarlySoy 7 19 0.16
IrrCoef_Tobacco 8 3 0.219375
IrrCoef_EarlySoy 7 29 0.2025
IrrCoef_Tobacco 8 4 0.21375
IrrCoef_EarlySoy 8 8 0.2375
IrrCoef_Tobacco 8 5 0.208125
IrrCoef_EarlySoy 8 18 0.2525
IrrCoef_Tobacco 8 6 0.2025
IrrCoef_EarlySoy 8 28 0.2475
IrrCoef_Tobacco 8 7 0.193333
IrrCoef_EarlySoy 9 7 0.21
IrrCoef_Tobacco 8 8 0.184167
IrrCoef_EarlySoy 9 27 0.09
IrrCoef_Tobacco 8 9 0.175
IrrCoef_EarlySoy 10 7 0.059
IrrCoef_Tobacco 8 10 0.17
IrrCoef_EarlySoy 10 17 0.034
IrrCoef_Tobacco 8 11 0.165
IrrCoef_EarlySoy 10 27 0.019
IrrCoef_Tobacco 8 12 0.16
IrrCoef_EarlySoy 10 28 0
IrrCoef_Tobacco 8 13 0.155
IrrCoef_EarlySoy 12 31 0
IrrCoef_Tobacco 8 14 0.1475
IrrCoef_FieldNurs 1 1 0
IrrCoef_Tobacco 8 18 0.125
IrrCoef_FieldNurs 4 30 0
IrrCoef_Tobacco 8 19 0.12125
IrrCoef_FieldNurs 5 1 0.178571
IrrCoef_Tobacco 8 20 0.1175
IrrCoef_FieldNurs 10 31 0.178571
IrrCoef_Tobacco 8 21 0.113333
IrrCoef_FieldNurs 11 1 0
IrrCoef_Tobacco 8 22 0.109167
IrrCoef_FieldNurs 12 31 0
IrrCoef_Tobacco 8 23 0.105
IrrCoef_Fruit 1 1 0
IrrCoef_Tobacco 8 24 0.10125
IrrCoef_Fruit 2 28 0
IrrCoef_Tobacco 8 25 0.0975
IrrCoef_Fruit 3 1 1.214286
IrrCoef_Tobacco 8 26 0.09375
IrrCoef_Fruit 4 15 1.214286
IrrCoef_Tobacco 8 27 0.09
IrrCoef_Fruit 4 16 0.178571
IrrCoef_Tobacco 8 28 0.089
IrrCoef_Fruit 8 31 0.178571
IrrCoef_Tobacco 8 29 0.088
IrrCoef_Fruit 9 1 0
IrrCoef_Tobacco 9 6 0.08
IrrCoef_Fruit 12 31 0
IrrCoef_Tobacco 9 7 0
IrrCoef_Golf 1 1 0.0145
IrrCoef_Tobacco 12 31 0
IrrCoef_Golf 3 31 0.0145
IrrCoef_Turf 1 1 0
IrrCoef_Golf 4 1 0.081429
IrrCoef_Turf 4 14 0
IrrCoef_Golf 10 31 0.081429
IrrCoef_Turf 4 15 0.178571
IrrCoef_Golf 11 1 0.0145
IrrCoef_Turf 10 15 0.178571
IrrCoef_Golf 12 31 0.0145
IrrCoef_Turf 10 16 0
IrrCoef_Horse 1 1 12
IrrCoef_Turf 12 31 0
IrrCoef_Horse 12 31 12
IrrCoef_Turkey 1 1 9
IrrCoef_LateSoy 1 1 0
IrrCoef_Turkey 12 31 9
IrrCoef_LateSoy 6 20 0
IrrCoef_Veg 1 1 0
37
Name Month Day Value
Name Month Day Value
IrrCoef_LateSoy 6 21 0.001
IrrCoef_Veg 3 31 0
IrrCoef_LateSoy 6 30 0.01
IrrCoef_Veg 4 1 0.178571
IrrCoef_LateSoy 7 1 0.012
IrrCoef_Veg 8 15 0.178571
IrrCoef_LateSoy 7 20 0.05
IrrCoef_Veg 8 16 0.142857
IrrCoef_LateSoy 7 30 0.075
IrrCoef_Veg 10 31 0.142857
IrrCoef_LateSoy 8 9 0.11
IrrCoef_Veg 11 1 0
IrrCoef_LateSoy 8 19 0.16
IrrCoef_Veg 12 31 0
IrrCoef_LateSoy 8 29 0.2025
IrrCoef_LateSoy 9 8 0.2375
IrrCoef_LateSoy 9 18 0.2525
IrrCoef_LateSoy 9 28 0.2475
IrrCoef_LateSoy 10 8 0.21
IrrCoef_LateSoy 10 28 0.09
IrrCoef_LateSoy 11 7 0.059
IrrCoef_LateSoy 11 17 0.034
IrrCoef_LateSoy 11 27 0.019
IrrCoef_LateSoy 11 28 0
IrrCoef_LateSoy 12 31 0
38
main.ocl
:INCLUDE: OCL\constants.ocl
:INCLUDE: OCL\Forecast-Trigger_Parms.ocl
:Static: statdata.mdb
:Time: [HomeDir]\basedata\basedata.dss
:if: {[UseForecast]=1}
:if: {[ForecastData]=cond}
:Time: [HomeDir]\basedata\forecasts_cond.dss
:else:
:Time: [HomeDir]\basedata\forecasts_non_cond.dss
:endif:
:endif:
:MODULE: DLL AgricDem = modules\AgricDem.DLL
:Include: ocl\udef_list.ocl
:Commands:
:Include: ocl\Agric_calculation.ocl
:Include: ocl\Agric_allocation.ocl
:Include: ocl\inflows.ocl
:Include: ocl\routing.ocl
:Include: ocl\return_flows.ocl
:Include: ocl\drought_plans.ocl
:End:
39
Udef_list.ocl
:Udef:
// For agricultural demand calculations and allocations
:FOR: { [county] = { 01, 02, 03, 04, 05, 06, 07, 08, 09, 10 } }
Udef : dem[county]
:NEXT:
// For inflow filtering
:For:
{ [node] = {010, 040, 070, 100, 150, 190, 220, 250, 410, 415, 420, 440, 550, 600, 650, 700}
}
Udef : _TempInf[node]
Udef : _InfDeficit[node] init{0}
:Next:
/* Set drought plan Udefs */
// Kings Mt Usable Storage
Udef : _KM_Usable_Stor
Udef : _KM_Usable_Stor_Pct init {100}
// For:Next loop to declare drought plan udefs
:FOR: { [Util] = { BRWA, FC, CCW, Shel, KM } }
:FOR: { [level_num] = { 1, 2, 3, 4, 5 } }
Udef : _[Util]_Consvn_[level_num]_Demand
Udef : _[Util]_Trigger_[level_num]_On init {0}
Udef : _[Util]_Stage_[level_num]_counter init {0}
Udef : _[Util]_Ph_[level_num]_event_counter init {0}
:NEXT:
:NEXT:
// For use in output tables
:substitute: [level_num] = "1, 2, 3, 4, 5" // for drought trigger and level determination
40
:substitute: [InflowNd] = "010, 040, 070, 100, 150, 190, 220, 250, 410, 415, 420, 440, 550, 600, 650,
700"
Udef : _CumBoilSpringNatInf init {0}
Udef : _CumGaffneyNatInf init {0}
Udef : _CumBasinNatInf init {0}
// For output files
// Demand nodes
:substitute: [DemandNd] = "012, 042, 052, 061, 072, 086, 102, 152, 186, 192, 222, 224, 252, 412, 416,
436, 442, 442, 552, 554, 602, 604, 645, 652"
// WW returns
:substitute: [WWRet] = "086.150, 086.090, 186.190, 224.250, 306.500, 436.440, 604.610, 606.650,
645.650"
41
Agric_Calculation.ocl
/* Note the precip data is contained in the basedata file and is based on the record for Tar River Reservoir
(using the Nashville station).
This should be fairly representative of the basin as it is in the middle. */
// Read in the counties, which are labeled in the Edit Agricultural Data dialog box in the GUI.
:For:
{ [cty] = {01, 02, 03, 04, 05, 06, 07, 08, 09, 10}
}
RUN_MODULE: AgricDem
{
Input: { [cty], // County number
timesers(Broad/precip), // Precip in inches
pattern(IrrCoef_Tobacco), // Water Use Coefficients for Tobacco, etc.
pattern(IrrCoef_Turf),
pattern(IrrCoef_Golf),
pattern(IrrCoef_ContNurs),
pattern(IrrCoef_FieldNurs),
pattern(IrrCoef_Cotton),
pattern(IrrCoef_EarlySoy),
pattern(IrrCoef_LateSoy),
pattern(IrrCoef_Corn),
pattern(IrrCoef_Veg),
pattern(IrrCoef_PastHay),
pattern(IrrCoef_Peanut),
pattern(IrrCoef_Blueberry),
pattern(IrrCoef_Strawberry),
pattern(IrrCoef_Fruit),
pattern(IrrCoef_Beef),
pattern(IrrCoef_Dairy),
pattern(IrrCoef_Horse),
pattern(IrrCoef_Pig),
pattern(IrrCoef_Chicken),
pattern(IrrCoef_Turkey),
pattern(IrrCoef_OtherAnimal)
}
Output: { dem[cty] }
}
:Next:
/* The results are in mgd. Now convert these to acre feet for use in the
agric_allocation.ocl file */
42
Set : dem01 { value : convert_units {dem01, mgd, af } }
Set : dem02 { value : convert_units {dem02, mgd, af } }
Set : dem03 { value : convert_units {dem03, mgd, af } }
Set : dem04 { value : convert_units {dem04, mgd, af } }
Set : dem05 { value : convert_units {dem05, mgd, af } }
Set : dem06 { value : convert_units {dem06, mgd, af } }
Set : dem07 { value : convert_units {dem07, mgd, af } }
Set : dem08 { value : convert_units {dem08, mgd, af } }
Set : dem09 { value : convert_units {dem09, mgd, af } }
Set : dem10 { value : convert_units {dem10, mgd, af } }
43
Agric_allocation.ocl
/* This file allocates the agricultural water demands by the assumed distribution of
demand within each reach of interest */
/* The county demand is represented by "dem__" that varies by number. These
numbers are established in the agricultural input dialog box, with 01 set forBuncombe, 02 for
Cleveland, and so on. (Also see agric_calculation.ocl file and agricultural dialog box) */
Set Demand_Summ_Ag : demand012 { value : dem04 * 0.406 }
Set Demand_Adgr_Ag : demand042 { value : dem04 * 0.355 + dem07 * 0.337 }
Set Demand_Lure_Ag : demand072 { value : dem04 * 0.239 + dem08 * 0.054 + dem01 * 0.921 }
Set Demand_BrGr_Ag : demand102 { value : dem01 * 0.079 + dem08 *0.268 + dem06 * 0.504 +
dem07 * 0.627 }
Set Demand_Logn_Ag : demand152 { value : dem06 * 0.35 + dem08 * 0.102 }
Set Demand_2Clf_Ag : demand192 { value : dem08 * 0.235 + dem06 * 0.131 }
Set Demand_Clif_Ag : demand222 { value : dem08 * 0.148 + dem07 * 0.036 + dem10 * 0.0005
}
Set Demand_Boil_Ag : demand252 { value : dem08 * 0.049 }
Set Demand_Casr_Ag : demand412 { value : dem08 * 0.095 }
Set Demand_Lawn_Ag : demand422 { value : dem02 * 0.22 + dem05 * 0.313 + dem08 * 0.05 }
Set Demand_GShl_Ag : demand552 { value : dem02 * 0.487 + dem09 * 0.346 }
Set Demand_KMtn_Ag : demand602 { value : dem05 * 0.688 }
Set Demand_Buff_Ag : demand652 { value : dem02 * 0.292 + dem09 * 0.281 }
44
inflows.ocl
/* Sets the inflows for nodes that need to be filtered. The finalized inflows
(through September 2009) were already filtered. However, the provisional inflows
from the update record routine can be negative due to time of travel or
imperfect impairment estimations, and therefore are filtered here to prevent
model infeasibility or unrealistic reservoir releases and/or demand shortages.
*/
:For:
{ [node] = {010, 040, 070, 100, 150, 190, 220, 250, 410, 415, 420, 440, 550, 600, 650, 700}
}
Set : _TempInf[node] { Value : timesers([node]/inflow) }
Set : inflow[node] { Value : max{0, _TempInf[node] - _InfDeficit[node](-1) } }
Set : _InfDeficit[node] { Value : max{0, _InfDeficit[node](-1) - _TempInf[node] } }
:Next:
45
return_flows.ocl
/* Spindale return flows */
Constraint : {dFlow086.150 = lookup {SpindaleWW, month} * dDelivery086}
/* Ruthefordton return flows */
Constraint : {dFlow086.090 = lookup {RuthefordWW, month} * dDelivery086}
/* Forest City return flows */
Constraint : {dFlow186.190 = lookup {ForestCityWW, month} * dDelivery186}
/* Cliffside return flows */
Constraint : {dFlow224.250 = lookup {CliffsideWW, month} * dDelivery224}
/* Boiling Springs return flows */
Constraint : {dFlow306.500 = lookup {BSpringsWW, month} * dDelivery436}
/* Shelby return flows */
Constraint : {dFlow436.440 = lookup {ShelbyWW, month} * dDelivery436}
/* Kings Mt. return flows */
Constraint : {dFlow604.610 = lookup {KingsMtWW, month} * dDelivery604}
/* Grover return flows */
Constraint : {dFlow606.650 = lookup {GroverWW, month} * dDelivery604}
/* CNA Holdings return flows */
Constraint : {dFlow645.650 = lookup {CNAWW, month} * dDelivery645}routing.ocl
46
routing.ocl
/* File is ROUTING.OCL, which has the coding to handle the Lure -> Boiling Spring,
and Boiling Springs / Lawndale -> Gaffney, daily time step only. */
/* 1-day lag for each reach.
Nodes 095 and 525 are reservoirs used for channel storage.
The flow into these three nodes is unrouted; the release from them is routed.
The storage in the nodes makes up the difference.
Use high weights to ensure routing is computed before withdrawals, etc.
Note that for the first day of the simulation the routed flows need to be
estimated; the current values set the routed flows equal sum of the natural inflows
for that day when the simulation is started on 01/01/1929; they may need to be
adjusted if the run is started on a different date. */
/* Flows from Lure have a lag of 1 day down to Boiling Springs */
Target LureRout : dflow095.100
{ Condition : abs_period <= 1
priority : 1
penalty+ : 100000
penalty- : 100000
value : convert_units { 67.28, cfs, af }
Condition : default
priority : 1
penalty+ : 100000
penalty- : 100000
value : flow090.095(-1)
}
/* Flows from Boiling Springs & the 1st Broad have a lag of
0.6 * today + 0.4 * yesterday down to Gaffney */
TargetBS_Lawn_Rout : dflow525.550 - 0.6 * dflow500.525
{ Condition : abs_period <= 1
priority : 1
penalty+ : 100000
penalty- : 100000
value : convert_units { 487, cfs, af }
Condition : default
priority : 1
penalty+ : 100000
penalty- : 100000
47
value : 0.4 * flow500.525(-1)
}
48
drought_plans.ocl
// File is drought_plans.ocl. Computes trigger levels and demand reductions.
:If: {[Drought_Plans_On] = 1} // First check if drought plan variable is on
/* BRWA */
Set : _BRWA_Trigger_5_On { Value : 0 }
Set : _BRWA_Trigger_4_On
{ Condition : _BRWA_Trigger_4_On(-1) = 1
{ Condition : flow070.080 + inflow073 > convert_units { 15, mgd, af }
Value : 0
Condition : default
Value : _BRWA_Trigger_4_On(-1)
}
Condition : _BRWA_Stage_3_Counter(-1) >= 1 // Require a 1 day (can be changed if utilities want)
waiting period before going into phase 4
{ Condition : weekday{year, month, day} <= 1
{ Condition : flow070.080 + inflow073 < convert_units { 15, mgd, af } and flow070.080(-1) +
inflow073(-1) < convert_units{ 15, mgd, af } and
flow070.080(-2) + inflow073(-2) < convert_units { 15, mgd, af } and flow070.080(-3) +
inflow073(-3) < convert_units { 15, mgd, af } and
flow070.080(-4) + inflow073(-4) < convert_units { 15, mgd, af } and flow070.080(-5) +
inflow073(-5) < convert_units { 15, mgd, af } and
flow070.080(-6) + inflow073(-6) < convert_units { 15, mgd, af }
Value : 1
}
Condition : default
Value : _BRWA_Trigger_4_On(-1)
}
Condition : default
Value : _BRWA_Trigger_4_On(-1)
}
Set : _BRWA_Trigger_3_On
{ Condition : _BRWA_Trigger_3_On(-1) = 1
{ Condition : flow070.080 + inflow073 > convert_units { 18, mgd, af }
Value : 0
Condition : default
Value : _BRWA_Trigger_3_On(-1)
}
49
Condition : _BRWA_Stage_2_Counter(-1) >= 1 // Require a 1 day (can be changed if utilities want)
waiting period before going into phase 3
{ Condition : weekday{year, month, day} <= 1
{ Condition : flow070.080 + inflow073 < convert_units { 18, mgd, af } and flow070.080(-1) +
inflow073(-1) < convert_units { 18, mgd, af } and
flow070.080(-2) + inflow073(-2) < convert_units { 18, mgd, af } and flow070.080(-3) +
inflow073(-3) < convert_units { 18, mgd, af } and
flow070.080(-4) + inflow073(-4) < convert_units { 18, mgd, af } and flow070.080(-5) +
inflow073(-5) < convert_units { 18, mgd, af } and
flow070.080(-6) + inflow073(-6) < convert_units { 18, mgd, af }
Value : 1
}
Condition : default
Value : _BRWA_Trigger_3_On(-1)
}
Condition : default
Value : _BRWA_Trigger_3_On(-1)
}
Set : _BRWA_Trigger_2_On
{ Condition : _BRWA_Trigger_2_On(-1) = 1
{ Condition : flow070.080 + inflow073 > convert_units { 20, mgd, af }
Value : 0
Condition : default
Value : _BRWA_Trigger_2_On(-1)
}
Condition : _BRWA_Stage_1_Counter(-1) >= 1 // Require a 1 day (can be changed if utilities want)
waiting period before going into phase 2
{ Condition : weekday{year, month, day} <= 1
{ Condition : flow070.080 + inflow073 < convert_units { 20, mgd, af } and flow070.080(-1) +
inflow073(-1) < convert_units { 20, mgd, af } and
flow070.080(-2) + inflow073(-2) < convert_units { 20, mgd, af } and flow070.080(-3) +
inflow073(-3) < convert_units { 20, mgd, af } and
flow070.080(-4) + inflow073(-4) < convert_units { 20, mgd, af } and flow070.080(-5) +
inflow073(-5) < convert_units { 20, mgd, af } and
flow070.080(-6) + inflow073(-6) < convert_units { 20, mgd, af }
Value : 1
}
Condition : default
Value : _BRWA_Trigger_2_On(-1)
}
Condition : default
Value : _BRWA_Trigger_2_On(-1)
}
50
Set : _BRWA_Trigger_1_On
{ Condition : _BRWA_Trigger_1_On(-1) = 1
{ Condition : flow070.080 + inflow073 > convert_units { 65, mgd, af }
Value : 0
Condition : default
Value : _BRWA_Trigger_1_On(-1)
}
Condition : weekday{year, month, day} <= 1
{ Condition : flow070.080 + inflow073 < convert_units { 65, mgd, af } and flow070.080(-1) +
inflow073(-1) < convert_units { 65, mgd, af } and
flow070.080(-2) + inflow073(-2) < convert_units { 65, mgd, af } and flow070.080(-3) +
inflow073(-3) < convert_units { 65, mgd, af } and
flow070.080(-4) + inflow073(-4) < convert_units { 65, mgd, af } and flow070.080(-5) +
inflow073(-5) < convert_units { 65, mgd, af } and
flow070.080(-6) + inflow073(-6) < convert_units { 65, mgd, af }
Value : 1
Condition : default
Value : _BRWA_Trigger_1_On(-1)
}
Condition : default
Value : _BRWA_Trigger_1_On(-1)
}
/* FOREST CITY */
Set : _FC_Trigger_5_On
{ Condition : _FC_Trigger_5_On(-1) = 1
{ Condition : flow086.150 + inflow150 > convert_units { 5.4, cfs, af }
Value : 0
Condition : default
Value : _FC_Trigger_5_On(-1)
}
Condition : _FC_Stage_4_Counter(-1) >= 1 // Require a 1 day (can be changed if utilities want)
waiting period before going into phase 5
{ Condition : weekday{year, month, day} <= 1
{ Condition : flow086.150 + inflow150 < convert_units { 5.4, cfs, af } and flow086.150(-1) +
inflow150(-1) < convert_units { 5.4, cfs, af } and
51
flow086.150(-2) + inflow150(-2) < convert_units { 5.4, cfs, af } and flow086.150(-3) +
inflow150(-3) < convert_units { 5.4, cfs, af } and
flow086.150(-4) + inflow150(-4) < convert_units { 5.4, cfs, af } and flow086.150(-5) +
inflow150(-5) < convert_units { 5.4, cfs, af } and
flow086.150(-6) + inflow150(-6) < convert_units { 5.4, cfs, af }
Value : 1
}
Condition : default
Value : _FC_Trigger_5_On(-1)
}
Condition : default
Value : _FC_Trigger_5_On(-1)
}
Set : _FC_Trigger_4_On
{ Condition : _FC_Trigger_4_On(-1) = 1
{ Condition : flow086.150 + inflow150 > convert_units { 10.7, cfs, af }
Value : 0
Condition : default
Value : _FC_Trigger_4_On(-1)
}
Condition : _FC_Stage_3_Counter(-1) >= 1 // Require a 1 day (can be changed if utilities want)
waiting period before going into phase 4
{ Condition : weekday{year, month, day} <= 1
{ Condition : flow086.150 + inflow150 < convert_units { 10.7, cfs, af } and flow086.150(-1) +
inflow150(-1) < convert_units { 10.7, cfs, af } and
flow086.150(-2) + inflow150(-2) < convert_units { 10.7, cfs, af } and flow086.150(-3) +
inflow150(-3) < convert_units { 10.7, cfs, af } and
flow086.150(-4) + inflow150(-4) < convert_units { 10.7, cfs, af } and flow086.150(-5) +
inflow150(-5) < convert_units { 10.7, cfs, af } and
flow086.150(-6) + inflow150(-6) < convert_units { 10.7, cfs, af }
Value : 1
}
Condition : default
Value : _FC_Trigger_4_On(-1)
}
Condition : default
Value : _FC_Trigger_4_On(-1)
}
Set : _FC_Trigger_3_On
{ Condition : _FC_Trigger_3_On(-1) = 1
{ Condition : flow086.150 + inflow150 > convert_units { 16.1, cfs, af }
Value : 0
52
Condition : default
Value : _FC_Trigger_3_On(-1)
}
Condition : _FC_Stage_2_Counter(-1) >= 1 // Require a 1 day (can be changed if utilities want)
waiting period before going into phase 3
{ Condition : weekday{year, month, day} <= 1
{ Condition : flow086.150 + inflow150 < convert_units { 16.1, cfs, af } and flow086.150(-1) +
inflow150(-1) < convert_units { 16.1, cfs, af } and
flow086.150(-2) + inflow150(-2) < convert_units { 16.1, cfs, af } and flow086.150(-3) +
inflow150(-3) < convert_units { 16.1, cfs, af } and
flow086.150(-4) + inflow150(-4) < convert_units { 16.1, cfs, af } and flow086.150(-5) +
inflow150(-5) < convert_units { 16.1, cfs, af } and
flow086.150(-6) + inflow150(-6) < convert_units { 16.1, cfs, af }
Value : 1
}
Condition : default
Value : _FC_Trigger_3_On(-1)
}
Condition : default
Value : _FC_Trigger_3_On(-1)
}
Set : _FC_Trigger_2_On
{ Condition : _FC_Trigger_2_On(-1) = 1
{ Condition : flow086.150 + inflow150 > convert_units { 21.4, cfs, af }
Value : 0
Condition : default
Value : _FC_Trigger_2_On(-1)
}
Condition : _FC_Stage_1_Counter(-1) >= 1 // Require a 1 day (can be changed if utilities want)
waiting period before going into phase 2
{ Condition : weekday{year, month, day} <= 1
{ Condition : flow086.150 + inflow150 < convert_units { 21.4, cfs, af } and flow086.150(-1) +
inflow150(-1) < convert_units { 21.4, cfs, af } and
flow086.150(-2) + inflow150(-2) < convert_units { 21.4, cfs, af } and flow086.150(-3) +
inflow150(-3) < convert_units { 21.4, cfs, af } and
flow086.150(-4) + inflow150(-4) < convert_units { 21.4, cfs, af } and flow086.150(-5) +
inflow150(-5) < convert_units { 21.4, cfs, af } and
flow086.150(-6) + inflow150(-6) < convert_units { 21.4, cfs, af }
Value : 1
}
Condition : default
Value : _FC_Trigger_2_On(-1)
53
}
Condition : default
Value : _FC_Trigger_2_On(-1)
}
Set : _FC_Trigger_1_On
{ Condition : _FC_Trigger_1_On(-1) = 1
{ Condition : flow086.150 + inflow150 > convert_units { 26.8, cfs, af }
Value : 0
Condition : default
Value : _FC_Trigger_1_On(-1)
}
Condition : weekday{year, month, day} <= 1
{ Condition : flow086.150 + inflow150 < convert_units { 26.8, cfs, af } and flow086.150(-1) +
inflow150(-1) < convert_units { 26.8, cfs, af } and
flow086.150(-2) + inflow150(-2) < convert_units { 26.8, cfs, af } and flow086.150(-3) +
inflow150(-3) < convert_units { 26.8, cfs, af } and
flow086.150(-4) + inflow150(-4) < convert_units { 26.8, cfs, af } and flow086.150(-5) +
inflow150(-5) < convert_units { 26.8, cfs, af } and
flow086.150(-6) + inflow150(-6) < convert_units { 26.8, cfs, af }
Value : 1
Condition : default
Value : _FC_Trigger_1_On(-1)
}
Condition : default
Value : _FC_Trigger_1_On(-1)
}
/* CLEVELAND COUNTY WATER */
Set : _CCW_Trigger_5_On
{ Condition : _CCW_Trigger_5_On(-1) = 1
{ Condition : inflow410 > convert_units { 5, cfs, af }
Value : 0
Condition : default
Value : _CCW_Trigger_5_On(-1)
}
Condition : _CCW_Stage_4_Counter(-1) >= 1 // Require a 1 day (can be changed if utilities want)
waiting period before going into phase 5
54
{ Condition : weekday{year, month, day} < 5
{ Condition : inflow410 < convert_units { 5, cfs, af }
Value : 1
Condition : default
Value : _CCW_Trigger_5_On(-1)
}
}
Condition : default
Value : _CCW_Trigger_5_On(-1)
}
Set : _CCW_Trigger_4_On
{ Condition : _CCW_Trigger_4_On(-1) = 1
{ Condition : inflow410 > convert_units { 5, cfs, af }
Value : 0
Condition : default
Value : _CCW_Trigger_4_On(-1)
}
Condition : _CCW_Stage_3_Counter(-1) >= 1 // Require a 1 day (can be changed if utilities want)
waiting period before going into phase 4
{ Condition : weekday{year, month, day} <= 1
{ Condition : inflow410 <= convert_units { 5, cfs, af } and inflow410(-1) <= convert_units { 5,
cfs, af } and
inflow410(-2) <= convert_units { 5, cfs, af } and inflow410(-3) <= convert_units { 5, cfs,
af } and
inflow410(-4) <= convert_units { 5, cfs, af }
Value : 1
}
Condition : default
Value : _CCW_Trigger_4_On(-1)
}
Condition : default
Value : _CCW_Trigger_4_On(-1)
}
Set : _CCW_Trigger_3_On
{ Condition : _CCW_Trigger_3_On(-1) = 1
{ Condition : inflow410 > convert_units { 10, cfs, af }
Value : 0
Condition : default
Value : _CCW_Trigger_3_On(-1)
}
55
Condition : _CCW_Stage_2_Counter(-1) >= 1 // Require a 1 day (can be changed if utilities want)
waiting period before going into phase 3
{ Condition : weekday{year, month, day} <= 1
{ Condition : inflow410 < convert_units { 10, cfs, af } and inflow410(-1) < convert_units { 10,
cfs, af } and
inflow410(-2) < convert_units { 10, cfs, af } and inflow410(-3) < convert_units { 10, cfs,
af } and
inflow410(-4) < convert_units { 10, cfs, af } and inflow410(-5) < convert_units { 10, cfs,
af } and
inflow410(-6) < convert_units { 10, cfs, af }
Value : 1
}
Condition : default
Value : _CCW_Trigger_3_On(-1)
}
Condition : default
Value : _CCW_Trigger_3_On(-1)
}
Set : _CCW_Trigger_2_On
{ Condition : _CCW_Trigger_2_On(-1) = 1
{ Condition : inflow410 > convert_units { 15, cfs, af }
Value : 0
Condition : default
Value : _CCW_Trigger_2_On(-1)
}
Condition : _CCW_Stage_1_Counter(-1) >= 1 // Require a 1 day (can be changed if utilities want)
waiting period before going into phase 2
{ Condition : weekday{year, month, day} <= 1
{ Condition : inflow410 < convert_units { 15, cfs, af } and inflow410(-1) < convert_units { 15,
cfs, af } and
inflow410(-2) < convert_units { 15, cfs, af } and inflow410(-3) < convert_units { 15, cfs,
af } and
inflow410(-4) < convert_units { 15, cfs, af } and inflow410(-5) < convert_units { 15, cfs,
af } and
inflow410(-6) < convert_units { 15, cfs, af } and inflow410(-7) < convert_units { 15, cfs,
af } and
inflow410(-8) < convert_units { 15, cfs, af } and inflow410(-9) < convert_units { 15, cfs,
af }
Value : 1
}
Condition : default
Value : _CCW_Trigger_2_On(-1)
}
56
Condition : default
Value : _CCW_Trigger_2_On(-1)
}
Set : _CCW_Trigger_1_On
{ Condition : _CCW_Trigger_1_On(-1) = 1
{ Condition : inflow410 > convert_units { 25, cfs, af }
Value : 0
Condition : default
Value : _CCW_Trigger_1_On(-1)
}
Condition : weekday{year, month, day} <= 1
{ Condition : inflow410 < convert_units { 25, cfs, af } and inflow410(-1) < convert_units { 25, cfs, af
} and
inflow410(-2) < convert_units { 25, cfs, af } and inflow410(-3) < convert_units { 25, cfs,
af } and
inflow410(-4) < convert_units { 25, cfs, af } and inflow410(-5) < convert_units { 25, cfs,
af } and
inflow410(-6) < convert_units { 25, cfs, af } and inflow410(-7) < convert_units { 25, cfs,
af } and
inflow410(-8) < convert_units { 25, cfs, af } and inflow410(-9) < convert_units { 25, cfs,
af } and
inflow410(-10) < convert_units { 25, cfs, af } and inflow410(-11) < convert_units { 25,
cfs, af } and
inflow410(-12) < convert_units { 25, cfs, af } and inflow410(-13) < convert_units { 25,
cfs, af } and
inflow410(-14) < convert_units { 25, cfs, af }
Value : 1
Condition : default
Value : _CCW_Trigger_1_On(-1)
}
Condition : default
Value : _CCW_Trigger_1_On(-1)
}
/* SHELBY */
Set : _Shel_Trigger_5_On
{ Condition : _Shel_Trigger_5_On(-1) = 1
{ Condition : flow415.420 + inflow420 > convert_units { 25, cfs, af }
Value : 0
57
Condition : default
Value : _Shel_Trigger_5_On(-1)
}
Condition : _Shel_Stage_4_Counter(-1) >= 1 // Require a 1 day (can be changed if utilities want)
waiting period before going into phase 3
{ Condition : weekday{year, month, day} <= 1
{ Condition : flow260.430(-1) >= convert_units { 9, mgd, af }
Value : 1
}
Condition : default
Value : _Shel_Trigger_5_On(-1)
}
Condition : default
Value : _Shel_Trigger_5_On(-1)
}
Set : _Shel_Trigger_4_On
{ Condition : _Shel_Trigger_4_On(-1) = 1
{ Condition : flow415.420 + inflow420 > convert_units { 25, cfs, af }
Value : 0
Condition : default
Value : _Shel_Trigger_4_On(-1)
}
Condition : _Shel_Stage_3_Counter(-1) >= 1 // Require a 1 day (can be changed if utilities want)
waiting period before going into phase 3
{ Condition : weekday{year, month, day} <= 1
{ Condition : flow415.420 + inflow420 < convert_units { 25, cfs, af } and flow260.430(-1) >
convert_units { 7.2, mgd, af }
Value : 1
}
Condition : default
Value : _Shel_Trigger_4_On(-1)
}
Condition : default
Value : _Shel_Trigger_4_On(-1)
}
Set : _Shel_Trigger_3_On
{ Condition : _Shel_Trigger_3_On(-1) = 1
{ Condition : flow415.420 + inflow420 > convert_units { 25, cfs, af }
Value : 0
Condition : default
58
Value : _Shel_Trigger_3_On(-1)
}
Condition : _Shel_Stage_2_Counter(-1) >= 1 // Require a 1 day (can be changed if utilities want)
waiting period before going into phase 3
{ Condition : weekday{year, month, day} <= 1
{ Condition : flow415.420 + inflow420 < convert_units { 25, cfs, af } and flow415.420(-1) +
inflow420(-1) < convert_units { 25, cfs, af } and
flow415.420(-2) + inflow420(-2) < convert_units { 25, cfs, af } and flow415.420(-3) +
inflow420(-3) < convert_units { 25, cfs, af } and
flow415.420(-4) + inflow420(-4) < convert_units { 25, cfs, af } and flow415.420(-5) +
inflow420(-5) < convert_units { 25, cfs, af } and
flow415.420(-6) + inflow420(-6) < convert_units { 25, cfs, af } and flow415.420(-7) +
inflow420(-7) < convert_units { 25, cfs, af } and
flow415.420(-8) + inflow420(-8) < convert_units { 25, cfs, af } and flow415.420(-9) +
inflow420(-9) < convert_units { 25, cfs, af } and
flow415.420(-10) + inflow420(-10) < convert_units { 25, cfs, af } and flow415.420(-11)
+ inflow420(-11) < convert_units { 25, cfs, af } and
flow415.420(-12) + inflow420(-12) < convert_units { 25, cfs, af } and flow415.420(-13)
+ inflow420(-13) < convert_units { 25, cfs, af } and
flow415.420(-14) + inflow420(-14) < convert_units { 25, cfs, af }
Value : 1
}
Condition : default
Value : _Shel_Trigger_3_On(-1)
}
Condition : default
Value : _Shel_Trigger_3_On(-1)
}
Set : _Shel_Trigger_2_On
{ Condition : _Shel_Trigger_2_On(-1) = 1
{ Condition : flow420.440 > convert_units { 25, cfs, af }
Value : 0
Condition : default
Value : _Shel_Trigger_2_On(-1)
}
Condition : _Shel_Stage_1_Counter(-1) >= 1 // Require a 1 day (can be changed if utilities want)
waiting period before going into phase 2
{ Condition : weekday{year, month, day} <= 1
{ Condition : flow420.440 <= convert_units { 25, cfs, af } and flow420.440(-1) < convert_units {
21.4, cfs, af } and
flow420.440(-2) <= convert_units { 25, cfs, af } and flow420.440(-3) <= convert_units {
25, cfs, af } and
59
flow420.440(-4) <= convert_units { 25, cfs, af } and flow420.440(-5) <= convert_units {
25, cfs, af } and
flow420.440(-6) <= convert_units { 25, cfs, af }
Value : 1
}
Condition : default
Value : _Shel_Trigger_2_On(-1)
}
Condition : default
Value : _Shel_Trigger_2_On(-1)
}
Set : _Shel_Trigger_1_On
{ Condition : _Shel_Trigger_1_On(-1) = 1
{ Condition : flow415.420 + inflow420 > convert_units { 30, cfs, af }
Value : 0
Condition : default
Value : _Shel_Trigger_1_On(-1)
}
Condition : weekday{year, month, day} <= 1
{ Condition : flow415.420 + inflow420 < convert_units { 30, cfs, af } and flow415.420(-1) +
inflow420(-1) < convert_units { 30, cfs, af } and
flow415.420(-2) + inflow420(-2) < convert_units { 30, cfs, af } and flow415.420(-3) +
inflow420(-3) < convert_units { 30, cfs, af } and
flow415.420(-4) + inflow420(-4) < convert_units { 30, cfs, af } and flow415.420(-5) +
inflow420(-5) < convert_units { 30, cfs, af } and
flow415.420(-6) + inflow420(-6) < convert_units { 30, cfs, af }
Value : 1
Condition : default
Value : _Shel_Trigger_1_On(-1)
}
Condition : default
Value : _Shel_Trigger_1_On(-1)
}
/* KINGS MT */
Set : _KM_Usable_Stor { Value : max { 0, (storage600 - lower_rule600) } }
Set : _KM_Usable_Stor_Pct { Value : _KM_Usable_Stor / (upper_rule600 - lower_rule600) * 100 }
Set : _KM_Trigger_5_On
{ Condition : _KM_Trigger_5_On(-1) = 1
60
{ Condition : _KM_Usable_Stor_Pct >= 100
Value : 0
Condition : default
Value : _KM_Trigger_5_On(-1)
}
Condition : _KM_Stage_4_Counter(-1) >= 1 // Require a 1 day (can be changed if utilities want)
waiting period before going into phase 5
{ Condition : weekday{year, month, day} <= 1
{ Condition : _KM_Usable_Stor_Pct < 10
Value : 1
}
Condition : default
Value : _KM_Trigger_5_On(-1)
}
Condition : default
Value : _KM_Trigger_5_On(-1)
}
Set : _KM_Trigger_4_On
{ Condition : _KM_Trigger_4_On(-1) = 1
{ Condition : _KM_Usable_Stor_Pct >= 100
Value : 0
Condition : default
Value : _KM_Trigger_4_On(-1)
}
Condition : _KM_Stage_3_Counter(-1) >= 1 // Require a 1 day (can be changed if utilities want)
waiting period before going into phase 4
{ Condition : weekday{year, month, day} <= 1
{ Condition : _KM_Usable_Stor_Pct < 30
Value : 1
}
Condition : default
Value : _KM_Trigger_4_On(-1)
}
Condition : default
Value : _KM_Trigger_4_On(-1)
}
Set : _KM_Trigger_3_On
{ Condition : _KM_Trigger_3_On(-1) = 1
{ Condition : _KM_Usable_Stor_Pct >= 100
Value : 0
61
Condition : default
Value : _KM_Trigger_3_On(-1)
}
Condition : _KM_Stage_2_Counter(-1) >= 1 // Require a 1 day (can be changed if utilities want)
waiting period before going into phase 3
{ Condition : weekday{year, month, day} <= 1
{ Condition : _KM_Usable_Stor_Pct < 50
Value : 1
}
Condition : default
Value : _KM_Trigger_3_On(-1)
}
Condition : default
Value : _KM_Trigger_3_On(-1)
}
Set : _KM_Trigger_2_On
{ Condition : _KM_Trigger_2_On(-1) = 1
{ Condition : _KM_Usable_Stor_Pct >= 100
Value : 0
Condition : default
Value : _KM_Trigger_2_On(-1)
}
Condition : _KM_Stage_1_Counter(-1) >= 1 // Require a 1 day (can be changed if utilities want)
waiting period before going into phase 2
{ Condition : weekday{year, month, day} <= 1
{ Condition : _KM_Usable_Stor_Pct < 65
Value : 1
}
Condition : default
Value : _KM_Trigger_2_On(-1)
}
Condition : default
Value : _KM_Trigger_2_On(-1)
}
Set : _KM_Trigger_1_On
{ Condition : _KM_Trigger_1_On(-1) = 1
{ Condition : _KM_Usable_Stor_Pct >= 100
Value : 0
Condition : default
62
Value : _KM_Trigger_1_On(-1)
}
Condition : weekday{year, month, day} <= 1
{ Condition : _KM_Usable_Stor_Pct < 75
Value : 1
Condition : default
Value : _KM_Trigger_1_On(-1)
}
Condition : default
Value : _KM_Trigger_1_On(-1)
}
/* This section sets/resets the counters used to maintain the proper spacing of conservation stages */
:For:
{ [Util] = { BRWA, FC, CCW, Shel, KM }
}
:For:
{ [trig] = {1, 2, 3, 4, 5}
}
Set : _[Util]_Stage_[trig]_Counter
{ Condition : _[Util]_Stage_[trig]_Counter(-1) > 0 and _[Util]_Trigger_[trig]_On = 0
Value : 0
Condition : _[Util]_Trigger_[trig]_On = 1
Value : _[Util]_Stage_[trig]_Counter(-1) + 1
Condition : default
Value : _[Util]_Stage_[trig]_Counter(-1)
}
/* Count all trigger events lasting at least 7 days */
Set : _[Util]_Ph_[trig]_event_counter
{ Condition : _[Util]_Stage_[trig]_Counter = 7 and _[Util]_Stage_[trig]_Counter(-1) = 6
Value : _[Util]_Ph_[trig]_event_counter(-1) + 1
Condition : default
Value : _[Util]_Ph_[trig]_event_counter(-1)
}
63
:Next:
:Next:
// Set conservation demand and delivery constraints for each trigger level in effect.
// Set demand reduction factors
:SUBSTITUTE: [Dem_1_Red_Factor] = 5
:SUBSTITUTE: [Dem_2_Red_Factor] = 10
:SUBSTITUTE: [Dem_3_Red_Factor] = 20
:SUBSTITUTE: [Dem_4_Red_Factor] = 25
:SUBSTITUTE: [Dem_5_Red_Factor] = 35
:For:
{ [trig] = {1, 2, 3, 4, 5}
}
// BRWA
Set : _BRWA_Consvn_[trig]_Demand
{ Condition : _BRWA_Trigger_[trig]_On = 1
Value : Demand086 * ( 1 - [Dem_[trig]_Red_Factor] / 100 )
Condition : default
Value : Demand086
}
Constraint BRWA_Demand_Limit_Consvn_[trig] :
{ Condition : _BRWA_Trigger_[trig]_On = 1
Expression : dflow080.086 <= _BRWA_Consvn_[trig]_Demand }
// Forest City
Set : _FC_Consvn_[trig]_Demand
{ Condition : _FC_Trigger_[trig]_On = 1
Value : Demand186 * ( 1 - [Dem_[trig]_Red_Factor] / 100 )
Condition : default
Value : Demand186
}
Constraint FC_Demand_Limit_Consvn_[trig] :
{ Condition : _FC_Trigger_[trig]_On = 1
Expression : dflow150.186 <= _FC_Consvn_[trig]_Demand }
// CCW
Set : _CCW_Consvn_[trig]_Demand
{ Condition : _CCW_Trigger_[trig]_On = 1
64
Value : Demand416 * ( 1 - [Dem_[trig]_Red_Factor] / 100 )
Condition : default
Value : Demand416
}
Constraint CCW_Demand_Limit_Consvn_[trig] :
{ Condition : _CCW_Trigger_[trig]_On = 1
Expression : dflow410.416 <= _CCW_Consvn_[trig]_Demand }
// Shelby
Set : _Shel_Consvn_[trig]_Demand
{ Condition : _Shel_Trigger_[trig]_On = 1
Value : Demand436 * ( 1 - [Dem_[trig]_Red_Factor] / 100 )
Condition : default
Value : Demand436
}
Constraint Shel_Demand_Limit_Consvn_[trig] :
{ Condition : _Shel_Trigger_[trig]_On = 1
Expression : dflow430.436 <= _Shel_Consvn_[trig]_Demand }
// Kings Mt
Set : _KM_Consvn_[trig]_Demand
{ Condition : _KM_Trigger_[trig]_On = 1
Value : Demand604 * ( 1 - [Dem_[trig]_Red_Factor] / 100 )
Condition : default
Value : Demand604
}
Constraint KM_Demand_Limit_Consvn_[trig] :
{ Condition : _KM_Trigger_[trig]_On = 1
Expression : dflow601.604 <= _KM_Consvn_[trig]_Demand }
:Next:
:else:
:endif:
65
APPENDIX B –
Finalized Inflow Data Development
66
Section 1. Introduction
This report provides a detailed account of the inflow development for the Broad River Basin
Hydrologic Model. The inflow record runs from January 1930 to September 20091. This period
is designed to capture as many drought events as possible, including the extreme droughts in
2002 and 2007. There are 8 streamflow gages in the basin that are used in this project as well as
4 reference gages outside of the basin. These are listed in Table 1. These gages have at least 10
years of daily data with which to make valid statistical comparisons with other gages. Most of
the gages have incomplete records; they either started after 1930 or ended before 2009. Some of
the gages were used just to provide more data for fillin (see below) when computing statistics.
The inflow dataset is based on “unimpaired” gage flows. Gages only show the actual flow in the
stream; they have no information about what the flow would have been without human
intervention. “Impairments” are modifications of the natural flows due to change in reservoir
storage (including evaporation and precipitation on the reservoir surface) and consumptive
withdrawals of water (municipal, industrial, or agricultural). If water is withdrawn above a gage
and returned to the river below the gage, the impairment is the entire withdrawal.
The next section describes the process used to compute daily flows and gains. Because of the
noise in the data, it is important to look at the data at each step to find unrealistic values. These
are noted later.
1 A provisional record extends beyond this date, but this does not account for most of the actual impairments.
Future updates will require impairment data for the inflow dataset to be considered finalized.
67
Section 2. Data and General Procedure
The first step in building the record is to compute the unimpaired gage flows. These
computations are contained in the spreadsheet inflow_unimpairment.xls in the ‘Inflow
Spreadsheets’ direcotry. The unimpaired gage data is summarized in the
unimpaired_summary.xls file. Impairments in the basin accumulate as each downstream gage is
included. For example, the impairments upstream of Boiling Springs include the impairments on
the Broad River (including the operations of dams upstream), the Second Broad River, and the
Green River. The impairment is calculated as follows:
Unimpaired gage flow = gage flow + upstream water withdrawal (by agricultural, municipal,
and industrial users) – upstream discharge (water or wastewater from municipal or industrial
users, including power plants) + upstream change in reservoir storage + upstream evaporation
on the reservoir surface - upstream precipitation on the reservoir surface.
The discharge and withdrawal data were obtained by Moffatt and Nichol. The data are based on
monthly average data for recent years, and extrapolated back to 1930 using population census
data.
Evaporation and precipitation data were also collected by HydroLogics. Evaporation data are
based NOAA annual evaporation maps, which is disaggregated to monthly values using a NOAA
pan evaporation distribution study2, resulting in monthly pattern of evaporation on each reservoir
surface. Precipitation data from the station closest to a reservoir are used to estimate the
precipitation at the reservoir. When these data are missing, data from the next nearest station are
used, and so on. COOP stations used include Tyron, Lake Lure, Caroleen, Simms, Marion,
Casar, Shelby, Gaston Shoals, and Gaffney. For each reservoir, HydroLogics calculated a daily
timeseries of net evaporation (or the difference between evaporation and precipitation) for the
hydrologic record. These data are contained in spreadsheets in the “Evap-Precip” folder. These
data are used to (1) estimate the historic change in reservoir storage due to net evaporation and
(2) estimate net evaporation on the reservoir surface during OASIS model simulation.
2 “Broad River CHEOPS Model Operations Report,” DTA, December 2007.
68
Table 1. List of Gages
USGS
Number Description Period of Record
Ref
No.
Ref.
Name
Drain.
Area
Basin Gages
02148500 BROAD RIVER NEAR CHIMNEY ROCK, NC 04/1927 - 09/1958 1 Lure 97
02149000 COVE CREEK NEAR LAKE LURE, NC 01/1951 - present 2 Cove 79
02150495 SECOND BROAD RIVER NEAR LOGAN, NC 10/1998 - present 3 Logn 86.2
02151000 SECOND BROAD RIVER AT CLIFFSIDE, NC 07/1925 - 12/1996 4 Clif 220
02151500 BROAD RIVER NEAR BOILING SPRINGS, NC 07/1925 - present 5 Boil 875
02152100 FIRST BROAD RIVER NEAR CASAR, NC 03/1959 - present 6 Casr 60.5
02152500 FIRST BROAD RIVER NEAR LAWNDALE, NC 03/1940 - 09/1971 7 Lawn 200
02153500 BROAD RIVER NEAR GAFFNEY, NC 12/1938 - 09/1971,
06/1986 - 09/1990 8 Gaff 1,490
Reference gages outside of the basin
02138500 LINVILLE RIVER NEAR NEBO, NC 07/1922 - present 9 Nebo 66.7
02143000 HENRY FORK NEAR HENRY RIVER, NC 08/1925 - present 10 Hnry 83.2
02143040 JACOB FORK AT RAMSEY, NC 10/1961 - present 11 Jacb 25.7
02143500 INDIAN CREEK NEAR LABORATORY, NC 09/1951 - present 12 Indn 69.2
69
0
1
2
3
4
5
6
7
8
9
10
11
12
1930 1935 1940 1945 1950 1955 1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010Gage Reference NumberTimeline for Gage Data
The second step in the inflow development process is to fill in the missing flows and gains for
each gage with missing records. This requires assembling a monthly record of unimpaired flows
and gains based on the daily unimpaired data computed above. These flows and gains are fed
into a program named fillin (developed by William Alley and Alan Burns of the USGS3). We
will refer to these as “extended” flows and gains. This is done on a monthly basis because fillin
only works with monthly data. The gages associated with the flows and gains used in the
remainder of this document are shown in Table 2. The third step is to apportion the extended
flows and gains to make sure that their volumes match downstream unimpaired gage flows. The
monthly flows and gains are then disaggregated into daily values using local, unimpaired gages.
These steps are described in detail in Section 3.
The last step in the process is to compute the OASIS nodal inflows based on the flows and gains
computed above. This step is described in detail in Section 4.
3 “Mixed-Station Extension of Monthly Streamflow Records,” Journal of Hydraulic Engineering, ASCE, Vol. 109,
No. 10, October 1983.
70
For the Broad River near Chimney Rock gage (Lure), fillin was used to complete its missing
record from October 1958 to September 2009.
For the Second Broad River near Logan (Logn), fillin was used to complete its missing record
from January 1930 to September 1998.
For the Second Broad River at Cliffside (Cliff), fillin was used to complete its missing record
from January 1997 to September 2009.
For the First Broad River near Lawndale gage (Lawn), fillin was used to complete its missing
record from January 1930 to February 1940, and from October 1971 to September 2009.
For the Broad River near Gaffney gage (Gaff), fillin was used to complete its missing record
from January 1930 to November 1938, from October 1971 to May 1986, and from October 1990
to January 2009.
Table 2. Gages Where Flows and Gains Are Computed
Gage Flow or Gain Gain Calculation
Lure Flow
Logn Flow
Cliff Flow
Boil Gain Boil Flow – Cliff Flow – Lure Flow
Lawn Flow
Gaff Gain Gaff Flow – Lawn Flow – Boil Flow
71
Section 3. Computation of Extended Gage Flows and Reach Gains
All the computations outlined in this section are done on monthly data, which reduces noise and
is required for statistical hydrology programs like fillin. Noisy data occurs when time of travel
differences occur or when the impairment data create artificial variation in the flows.
First, the actual gains are determined from the unimpaired gage flows. These computations are
done with the DSSVue script, compute_gain.py. Next, fillin is run to compute the extended
flows and gains for the gages with missing records. Note that fillin preserves the actual flows
and gains where they exist. These extended flows and gains are then “scaled.” The objective of
scaling is to ensure that the sum of filled-in flows upstream of a gage with an actual record
equals the actual unimpaired flow at that gage. The fillin program does not ensure this for two
reasons. First, it utilizes only a single correlated record for each value generated, thus ignoring
sums, and second, it works with log transforms, and not actual flows.
Here is an example. We want to compute the unimpaired flow at the Cliffside gage (Clif) when
the gage data is missing. We extended the gain at Clif using fillin. Now we want to adjust those
extended values so that the sum of the flows and gains down to the Boiling Springs (Boil) match
the unimpaired flow at the gage. So we say that we maintain the Boil flow by scaling with the
sum of the Clif and Lure extended flows. The calculation is:
Scaled Cliff extended flow = (Boil flow)* (Clif extended flow) / (Clif extended flow +
Lure extended flow + Boil extended gain)
The companion calculation for the flow at Boil is:
Scaled Boil extended gain = (Boil flow)* (Boil extended gain) / (Clif extended flow +
Lure extended flow + Boil extended gain)
Thus the sum of the scaled flows/gains (Clif, Lure, and Boil) equals the unimpaired gage flow at
Boil.
In this way we ensure that the total volume of all the flows and gains, be they actual or extended,
upstream from a given gage match the unimpaired flow at the gage, preserving the unimpaired
gaged flows.
The DSSVue script used to do these calculations is scale_flow_gain.py. The output is the file
scale_flow_gain.dss, which contains monthly flows and gains.
The next step is to disaggregate the monthly flows into daily flows. This is done using flows for
a daily, unimpaired gage that is local or has similar drainage area (call it a “reference gage”)
along with our monthly flows. We multiply the monthly value by the ratio of that day’s flow to
that month’s flow at the reference gage. The disaggregation formula is:
72
daily ratio = daily reference value / monthly reference value
daily computed value = monthly computed value * daily ratio
Two DSSVue scripts are used to do this step: convert_month_to_day.py and disaggregate.py.
DSSVue cannot work on two records with different time steps, so the first step is to convert the
monthly value to daily. For example, the gain at Boil for January 1930 is 912 cfs; converting the
monthly flow to daily gives 912 cfs for each day in the month. The first script converts the
monthly flows to daily flows for each location where we need them. The second script computes
the daily flows and gains as shown above.
It is important to note that we are not trying to replicate history in computing the OASIS inflows;
rather, we are trying to build daily flows whose variation is representative of history while
preserving unimpaired gaged flows as “ground truth”.
Note that actual daily values of unimpaired gage flows are often maintained in the script files.
Actual daily gains between gages are generally not maintained due to their “noise”, so the script
files aggregate them monthly and then disaggregate them back to daily values using a locally
unimpaired gage. Therefore, actual flows and gains on a monthly basis are maintained, but
generally the former will only be maintained on a daily basis.
The remainder of this section shows the details in how the records were extended and
disaggregated. This is the short hand used in the remainder of this document:
d/s = downstream
u/s = upstream
DA = drainage area
F = actual or scaled flow at a gage
XF = “extended” flow at a gage as computed by fillin when actual flows do not exist
G = actual or scaled gain, or inflow, between two locations, which is the difference of u/s
gage F and d/s gage F
XG = extended gain between two locations as computed by fillin when actual gains do
not exist
73
LAKE LURE (CHIMNEY ROCK) FLOW
10/1928 – 09/1958
Use actual monthly values
10/1958 – 12/1996
LureF = (BoilF – ClifF) * LureXF / (BoilXG + LureXF)
01/1997 – present
LureF = (BoilF) * LureXF / (BoilXG + CliffXF + Lure XF)
Disaggregate to daily using Cove/Clif.
2ND BROAD CLIFFSIDE FLOW
01/1997 – present
ClifF = (BoilF) * ClifXF/ (BoilXG + CliffXF - LureXF)
Disaggregate to daily using Cove.
BOILING SPRINGS GAIN
10/1958 – 12/1996
BoilG = (BoilF – ClifF) * BoilXG / (BoilXG + LureXF)
01/1997 – present
BoilG = (BoilF) * BoilXG / (BoilXG + CliffXF + Lure XF)
Disaggregate to daily using Clif/Cove
LAWNDALE FLOW
10/1928 – 09/1938 – No Gaffney gage to scale to.
10/1938 – 02/1940
LawnF = (GaffF – BoilF) * LawnXF / (GaffXG + LawnXF)
03/1940 – 09/1971 – use actual flow
09/1971 – 05/1986 – No Gaffney to scale to, use filled in gain.
06/1986 – 06/1990
LawnF = (GaffF – BoilF) * LawnXF / (GaffXG + LawnXF)
74
07/1990 – present – No Gaffney to scale to, use filled in gain.
Disaggregate to daily using Casr/Cliff/Hnry
GAFFNEY GAIN
10/1928 – 11/1938 – No Gaffney gage to scale to.
12/1938 – 02/1940
GaffG = (GaffF – BoilF) * GaffXG / (GaffXG + LawnXF)
03/1940 – 09/1971 – use actual gain
09/1971 – 05/1986 – No Gaffney to scale to, use filled in gain.
06/1986 – 06/1990
GaffG = (GaffF – BoilF) * GaffXG / (GaffXG + LawnXF)
07/1990 – present – No Gaffney to scale to, use filled in gain.
Disaggregate to daily using Indian Ck.
75
Section 4. Computing Inflows at OASIS Nodes from the Flows and Gains
This section describes the computation of inflows at OASIS nodes from flows and gains at gages
described above. The computations are done “on the fly” during an OASIS run called
“Compute_Inflows” using ratios of drainage area (total or incremental) as shown in Table 3. The
computations are included in an OCL file called set_inflows.ocl and are listed below.
Node 010 (Lake Summit) CoveF * 42.4 / 79
Node 040 (Lake Adger) CoveF * 94.3 / 79
Node 070 (Lake Lure) LureF
Node 150 (2nd Broad FC) LognF * 92 / 86.2
Node 190 (2nd Broad Cliffside) ClifF – inflow150
Node 100 (Green-Broad Conf) (BoilG – inflow010 – inflow040) * 339 / 424
Node 220 (Cliffside Plant) (BoilG – inflow010 – inflow040) * 56 / 424
Node 250 (Boiling Springs) (BoilG – inflow010 – inflow040) * 29 / 424
Node 410 (1st Broad CCW) LawnF * 181 / 200
Node 415 (1st Broad Lawndale) LawnF * 19 / 200
Node 420 (1st Broad Shelby) LawnF * 74 / 200
Node 440 (Stice Shoals) LawnF * 33 / 200
Node 600 (Kings Mtn) IndnF * 67.5 / 69.2
Node 650 (Buffalo Ck) IndnF * 107.3 / 69.2
Node 550 (Gaston Shoals) (GaffG – inflow420 – inflow440 – inflow600 – inflow650) *
1297 / 1490
Node 700 (Gaffney) (GaffG – inflow420 – inflow440 – inflow600 – inflow650) *
193 / 1490
76
Table 3. List of Drainage Areas (in square miles)
Reservoirs Gages
Description
Total
Drainage
Area
Incremental
Drainage
Area Description
Total
Drainage
Area
Incremental
Drainage
Area
Lake Lure 94.2 -
BROAD RIVER NEAR
CHIMNEY ROCK, NC 97 -
Lake Summit 42.4 -
SECOND BROAD RIVER
NEAR LOGAN, NC 86.2 -
Lake Adger 136.7 94.3
SECOND BROAD RIVER
AT CLIFFSIDE, NC 220 133.8
Cliffside Dam 846 392.3
BROAD RIVER NEAR
BOILING SPRINGS, NC 875 29
Stice Shoals 288 88
FIRST BROAD RIVER
NEAR LAWNDALE, NC 200 -
Kings Mt. Dam 67.5 -
BROAD RIVER NEAR
GAFFNEY, NC 1,490 125.5
Gaston Shoals 1,297 134
77
Section 5. Error Checking and Inflow Filtering
As noted in Section 3, because of the noisy data, a lot of error checking is necessary.
These are some of the errors that can occur.
• Negative unimpaired gage flow. These are physically impossible and should be
corrected.
• Negative gains. These are sometimes legitimate. However, there are times when
a flood hits a gage at the very end of the month, while not arriving at the gage
downstream until the beginning of the next month. This can cause a highly
negative gain in the first month and a highly positive gain the next month. These
should be corrected.
• There are pathological cases where the scaling can cause one gage to have a large
positive flow, while the adjacent gage has a large negative flow. This can occur
when the two extended values are similar in magnitude but opposite in sign.
These need to be adjusted.
• For this work, the changes are tracked in the file hand_mods.xls.
To test that all flows, gains, and drainage areas have been properly accounted for, we
check that the “reconstituted,” unimpaired gage flows match the actual unimpaired gage
flows. In this case, reconstituted means that the flow at a given gage is computed by
summing the appropriate upstream flows and gains. File gage_comp.xls compares the
actual monthly unimpaired gage flows with the computed values from
flows_gains_month.dss. To test that all the drainage areas have been properly
accounted, file model_comp.xls compares the same actual unimpaired gage flows to the
gage flows reconstituted from the computed OASIS inflows.
Negative inflow adjustments. First, monthly flows were adjusted in the file
hand_mods.xls. Revisions were done for Lure, Clif and Lawn flows and Boil and Gaff
gains in the unimpaired.dss file, and for the same flows/gains in file
scale_flow_gain.dss,to adjust for negatives from the scaling process as noted above.
Second, to prevent model infeasibility from provisional inflows (see Appendix C),
unrealistic releases from upstream reservoirs, or unrealistic water supply shortages, we
added code in the OCL to filter remaining daily negative inflows. The negative inflow is
“stored” until there is a sufficiently positive inflow to release the accumulated negative
flows, thereby preserving mass over a multi-day period. Since the negative inflows are
generally very small and infrequent, the filtering has negligible impact on being able to
match the monthly unimpaired gage flow.
78
Section 6. Time of Travel / Flow Routing
To account for time of travel along the Broad River, flow routing has been
incorporated into both the development of inflows, and the handling of flows within the
model. The time of travel reaches consist of Lake Lure to the Boiling Springs gage, and
the Boiling Springs and 1st Broad Lawndale gages to the Gaffney gage. Lag coefficients
were determined by minimizing the number of negatives caused in the daily gains. For
the Lake Lure to Boiling Springs reach, the lag used is one day. For the Boiling Springs
and 1st Broad to Gaffney reach, the lags used are 60% of today’s upstream flows and 40%
of yesterday’s upstream flows. Flow routing for the development of inflows is handled in
the HEC-DSSVue script called routing.py. Flow routing within the model is handled in
the OCL file routing.ocl. The routing equations used for each gain are as follows:
Boiling Springs gain = Boiling Springs gage flow - yesterday’s Lake Lure inflow
Gaffney gain = Gaffney flow – [ 0.6 * ( today’s Boiling Springs gage flow + today’s
Lawndale gage flow ) + 0.4 * ( yesterday’s Boiling Springs gage flow + yesterday’s
Lawndale gage flow ) ]
Note that the computation of gains may include subtracting the flows from tributaries in
the reach (see Section 3), which are not routed.
The first step in the routing is to create a daily routed time series for each location: Lure,
Boil, and Lawn.
For example, this table illustrates the routed and actual unimpaired Lure flows for five
days in 2000:
Date Lure actual
flow (cfs)
Lure routed
flow (cfs)
1/1/1930 223.4 235.0
1/2/1930 271.0 223.4
1/3/1930 310.8 271.0
1/4/1930 223.4 310.8
1/5/1930 56.3 223.4
Next, these daily routed timeseries are averaged monthly; the monthly flows are used to
compute gains for the above mentioned reaches.
For example, in January 1930, the monthly routed flow at Lure is 206, and the flow at
Boiling Springs is 1720 cfs. The gain at Boiling Springs is computed by subtracting the
routed Lure flow (as well as the un-routed Clif flow of 309 cfs) from the Boiling Springs
flow, or 1720 – 206 – 309 = 1205 cfs.
For inflow development, upstream flows are routed before being subtracted from the
downstream flow to compute a gain. In the model runs, routing is handled using a
79
routing reservoir, which holds back upstream flows for the appropriate amount of time
before releasing downstream.
80
Section 7. Extending the Record Beyond September 2009
As mentioned earlier, the finalized inflow record ends on September 30, 2009.
This section describes how to finalize updates to the record when new records (including
impairments) become available. This is not to be confused with provisional updates used
to facilitate real-time forecasting, which are done directly from the model interface using
the Update Record tab. Let us assume that we are adding data from October 1, 2009 to
September 30, 2010. Note that we are only adding to the record. We are not changing
any of the values prior to October 2009.
1. Assemble the new gage records in Table 4 below and place in the files
gage_day.dss and gage_month.dss.
2. Compute the impairments at each gage and add them to the gage flows. This has
been done in the unimpairment spreadsheet described earlier (called
inflow_unimpairment.xls). Next put the daily unimpaired flows into the
spreadsheet unimpaired_summary.xls to compute the monthly unimpaired flows
using a spreadsheet pivot table.
3. Append the new unimpaired flows to the unimpaired.dss file (monthly averages)
and to the unimpaired_daily.dss file (daily data) where appropriate.
4. Copy the following files into the folder c:\Program Files\HEC\HecDssVue
(assuming the DSSVue has been installed in the default location).
fillin.cf
fillin.exe
gage_day.dss
gage_month.dss
path_list.dat
unimpaired.dss
unimpaired_daily.dss
5. Copy the following files in folder of c:\Program
Files\HEC\HecDssVue\HecDssVue\scripts. If extending the record to a year
beyond 2009, be sure to change the ending years in the script from either '09 or
2009 to the appropriate year. Use the script files from the folder “scripts_2010”,
in which this change has already been made.
routing.py
compute_gain.py
convert_day_to_month.py
convert_month_to_day.py
disaggregate.py
scale_flow_gain.py
81
6. Execute the script 01_routing.py. This reads from file unimpaired_daily.dss,
creates routed time-series where necessary (see Section 6), and writes monthly
routed flows to unimpaired.dss and extend_flow_gain.dss.
7. Transfer the monthly flows from unimpaired.dss to hand_mods.xls. Here
perform necessary modifications to remove negative gains from the records,
following the examples of previous modifications. Then paste the modified flows
and routed flows back into unimpaired.dss and extend_flow_gain.dss.
8. Execute the script 02_compute_gain.py. This reads from file unimpaired.dss,
computes all the gains, and writes to the files extend_flow_gain.dss,
scale_flow_gain.dss, and fillin_input.dss.
9. Close DSSVUE, and execute fillin by double-clicking it. This updates the file
extend_flow_gain.dss with filled-in flows. Thus, this file is a combination of the
actual unimpaired values and extended values.
10. Open up DSSVue again, execute the script 03_scale_flow_gain.py, which does
the calculations described in Section 3. This reads from file
extend_flow_gain.dss and updates file scale_flow_gain.dss.
11. Import the appropriate flows and gains from scale_flow_gain.dss into
hand_mods.xls and perform hand modifications to remove negative flows and
gains. Paste modified flows/gains back into scale_flow_gain.dss.
12. Execute the script 04_convert_month_to_day.py. This reads from files
gage_month.dss and scale_flow_gain.dss to generate a daily record from the
monthly records. The daily records are used to disaggregate the flows, as shown
in Section 3. File month_day.dss is written.
13. Execute the script 05_disaggregate.py to convert the monthly flows and gains at
the gages to daily. File flow_gain.dss is produced; this file has the data that are
read by OASIS.
14. Execute the script 06_convert_day_to_month.py to convert the daily flows and
gains at the gages into monthly values. The purpose of this step is to import the
monthly flows and gains into gage_comp.xls to ensure that all the accounting has
been properly done.
15. Once the correct accounting has been confirmed, place the flow_gains.dss file
into the basedata folder, overwriting the original.
16. Execute the OASIS run called “Compute_Inflows”, beginning October 1, 2009
and ending September 30, 2010. This run contains a file called “set_inflows.ocl”
that assigns inflows to the OASIS nodes.
82
Then go to the run folder, open the ouput.dss file, click View Refresh Catalog.
Select all of the inflow nodes (i.e, those which have a pathname labeled inflow)
and convert from acre feet (af) to cubic feet per second (cfs) by doing the
following: click Utilities Math Functions, in Arithmetic tab select Divide from
the pull down menu, click the Data Set radio button and highlight all of the inflow
records, click the Constant radio button and enter 1.9835 into the field, and then
press the Compute button at the bottom of the window. Once the computation has
completed, close the Math Functions window and click Yes when prompted to
save the changes. Now select all of the inflow records and click Edit Tabular
Edit, and change all of the units to cfs, and all of the units Type to PER-AVER.
Close the editing window and save your changes.
Next select all of the records, and copy and append to the basedata.dss file in the
basedata folder. The basedata file will now contain this finalized data from
October 1, 2009 to September 30, 2010. This basedata file will be used for all
future runs.
Table 4. Gages Needed to Extend the Record Beyond September 2009
USGS
Number Description
Period of
Record
Ref.
Name
Drainage
Area
02149000 COVE CREEK NEAR LAKE LURE, NC 01/1951 - present Cove 79
02150495 SECOND BROAD RIVER NEAR LOGAN, NC 10/1998 - present Logn 86.2
02151500 BROAD RIVER NEAR BOILING SPRINGS, NC 07/1925 - present Boil 875
02152100 FIRST BROAD RIVER NEAR CASAR, NC 03/1959 - present Casr 60.5
02138500 LINVILLE RIVER NEAR NEBO, NC 07/1922 - present Nebo 66.7
02143000 HENRY FORK NEAR HENRY RIVER, NC 08/1925 - present Hnry 83.2
02143040 JACOB FORK AT RAMSEY, NC 10/1961 - present Jacb 25.7
02143500 INDIAN CREEK NEAR LABORATORY, NC 09/1951 - present Indn 69.2
83
APPENDIX C –
Provisional Inflow Data Development
84
The current methodology for developing model inflow data does not lend itself well to
frequent updates that will be necessary for real-time position analysis. The current
methodology requires a large amount of input gage data (using 6 gages); impairments
from reservoir operations, water supply, wastewater returns, and agricultural
withdrawals; correction to negative inflows that could otherwise cause model
infeasibility; and scaling of gains to ensure that filled-in data for gages with missing data
preserves the known volume of flow at downstream gages. Obtaining impairment data
alone (which are necessary to unimpair the gage flows) is the most time-intensive part of
the updating process.
HydroLogics has developed a simplified, provisional procedure that will enable weekly
or monthly updates to be made, later overridden by periodic annual updates using the
current methodology. It is meant to provide a representative inflow to key points in the
basin. The downloading of data and calculations for the provisional update are handled
automatically within the GUI.
To simplify the update as much as possible, the procedure eliminates the need for most
impairments and the concern over negative inflows that could lead to model infeasibility.
The assumption is that most of the net impairments (withdrawals less discharges) in the
basin are small and occur within a reach and therefore are not likely to have much effect
on the natural inflow.
Negative inflows can occur when the downstream gage flow is less than the upstream
gage flow (which is usually due to time of travel issues). These only pose a modeling
problem if there is not enough water in the river or reservoir to handle them, which is
rare. As a precaution, when gains are negative, the model’s OCL is used to filter them to
maintain model feasibility.
85
The simplified procedure is detailed below in the following steps. As noted, all of the
data acquisition and calculations are automatically done within the model. The user
should do a manual QA/QC check on the downloaded data before updating the record.
Step 1: Obtain from the USGS web site the daily gage data (in cfs) for the following
gages: Cove Creek near Lake Lure (Cove), 2nd Broad near Logan (Logn), Broad River at
Boiling Springs (Boil), 1st Broad near Casar (Casr), 1st Broad near Lawndale (Lawn), and
Indian Creek near Laboratory (Indn).
Step 2: Obtain rainfall data (in/day) from the Gaston Shoals COOP station.
Step 3: Compute the net evaporation for all reservoirs in the basin using the precipitation
data collected above and a monthly evaporation pattern.
Step 4: Set the inflow to Lakes Summit, Adger and Lure using drainage area adjustments
of the Cove gage.
Step 5: Set the 2nd Broad Forest City and Cliffside inflows using drainage area
adjustments of the Logn gage.
Step 6: Compute the total Boiling Springs gain as the Boil gage flow minus the Summit,
Adger and Lure inflows (lagged one day) and minus the 2nd Broad inflows. To better
reflect the unimpaired inflow in this reach, an average of 15 cfs is added to this gain to
account for upstream withdrawals and discharges (the most significant being the Cliffside
Steam Plant withdrawal).
Step 7: Allocate the computed Boiling Springs gain to inflows for the Broad/Green
confluence, the Cliffside dam, and the Boiling Springs gage.
Step 8: Set the inflow for the first Broad inflow locations using area adjustments of the
Casr gage.
Step 9: Set the inflows for Gaston Shoals, Moss Lake, Buffalo Creek and Gaffney using
area adjustments of the Indian Creek gage.
86
APPENDIX D –
Model Weighting Description
87
This report provides a detailed account of the weighting of nodes and arcs in the Broad
River Basin model. Weighting greatly reduces the amount of coding required by the
programmer, especially the conditional If Then statements that are inherent in many
software packages. OASIS operates using a linear program solver, which means that it
tries to maximize the overall value of allocating water subject to the goals (which have
associated weights) and constraints (which must be met). The general strategy with goal-
setting is to assign weights to mimic the real-world operating goals. For example, setting
a reservoir’s storage weight higher than that of an unassociated demand downstream will
prevent water from being released from that reservoir to meet the demand. Weighting is
also used to properly dictate minimum releases and other flow targets.
Note that weighting is mostly relative. If the weight in storage (say 2) is higher than a
weight for demand (say 1), the demand will not be met. Minimum flow weights are
handled differently at times since they can be additive. If there are multiple minimum
flow locations downstream of a reservoir, OASIS will assign value to the minimum
releases based on the sum of those weights. So if there are three locations, each having a
weight of 1, the model will get 3 points releasing water from an upstream reservoir to
meet the minimum flows. If the storage weight is 2, then the reservoir will draw down to
meet the minimum flows. Flow exceeding the minimum flow does not get any additional
value, so excess water will stay in storage unless the reservoir is spilling. The user
manual for OASIS provides more description on how model weighting works.
Each section of this document describes a portion of the model, progressing downstream.
88
Upper Broad River
The reservoirs on the upper Broad are set up to prevent water being released to meet
unrelated needs further downstream.
The reservoir storage weights in this area are:
Storage Zone Weights
Reservoir Node
Number
A B C D
Lake Summit 010 550 550 250 -10
Lake Adger 040 500 500 200 -10
Lake Lure 070 500 500 200 -10
Other weights in the area include:
Description Node/arc
Number
Weight
Lake Lure Min Release 070.080 225
Summit Ag (Agricultural
Demand)
012 300
Adger Ag 042 225
Polk Co. Demand 061 215
Lure Ag 072 250
BRWA Demand 086 100
Broad/Green Ag 102 80
Logan Ag 152 80
Forest City Demand 186 80
2nd Cliffside Ag 192 80
Storage in Lake Summit, upstream of Lake Adger on the Green River, is weighted higher
than Adger storage. The municipal water supply demands placed on Adger receive
higher weight than usable storage in the reservoir (as defined by C zone weight). Dead
storage, which is inaccessible storage, is represented by the A zone and receives a higher
weight than the demand weight so that the model does not dip into this storage. The B
Zone represents storage in between the lower rule and the dead storage zone. The flood
pool is represented by the D zone, and has a negative weight to discourage storing water
in this zone.
For Lake Lure the minimum release weight is higher than the usable storage weight in
zone C.
89
Middle Broad River
The weighting for the Cliffside Dam is set up to prevent water from being released
upstream to meet its needs and from releasing water to meet unrelated needs downstream.
The reservoir storage weights in this area are:
Storage Zone Weights
Reservoir Node
Number
A B C D
Cliffside Dam 220 100 100 75 -10
Other weights in the area include:
Description Node/arc
Number
Weight
Cliffside Ag 222 80
Cliffside Demand 224 80
Boiling Springs Ag 252 25
The higher B and C zone weights for upstream reservoirs relative to the Cliffside Dam
prevent releases from being made to supplement the reservoir (except when spilling,
when flow cannot be controlled). From Cliffside Dam, the demand weights are higher so
they take priority over storage. Since storage in the usable pool (zone C) gets last
priority, this zone get the lowest weight. However, this weight is set higher than
demands downstream (e.g., Boiling Spring agricultural use).
90
First Broad River
The reservoir storage weights in this area are:
Storage Zone Weights
Reservoir Node
Number
A B C D
Stice Shoals 440 75 75 50 -10
Other weights in this area consist of the following:
Description Node/arc
Number
Weight
Shelby Min. Flow 420.440 75
Casar Ag 412 175
CCW Demand 416 80
Lawndale Ag 422 80
Shelby Demand 436 70
Stice Shoals Ag 442 80
The most upstream demands receive the highest weight since they are met first. The
minimum flow-by requirement for Shelby is higher than the demand weight but lower
than upstream demands, so the upstream users are not shorted in order to meet the
requirement.
91
Lower Broad River (Including Buffalo Creek)
This area includes the Broad River between Boiling Springs and the confluence
withBuffalo Creek.
The reservoir storage weights in this area are:
Storage Zone Weights
Reservoir Node
Number
A B C D
Gaston
Shoals 550 10 10 5 -10
Moss Lake 600 500 75 50 -10
Other weights in the area include:
Description Node/arc
Number
Weight
Gaston Shoals Bypass 550.555 8
Gaston Shoals Min Flow 550.700 7
Moss Lake Min Flow 600.610 80
Gaston Shoals Ag 552 11
Gaffney Demand 554 11
KM Ag 602 85
Kings Mt Demand 604 70
CNA Demand 645 25
Buffalo Ck Ag 652 25
Gaston Shoals has two minimum flow requirements-- the release and a bypass flow.
While the bypass has higher priority than the release, staying within the normal pool
(Zone C) takes priority over both. So first, the model will make sure there is enough
inflow to maintain storage in zone C. Surplus inflow after that will go towards meeting
the bypass flow, and any remaining available flow will go towards meeting the minimum
release.
Moss Lake is set up to first meet a minimum release requirement, and then the local
water supply demands.