From 304b0222e329b4c7dfe1ad10472ccbb489d27d80 Mon Sep 17 00:00:00 2001 From: Charles Graham Date: Fri, 19 Jul 2024 18:43:55 -0700 Subject: [PATCH 01/21] Move reports to directories by district, start work on threading / thinking about how best to wrap the HTTP calls --- __main__.py | 98 ++++++++++++++++-------- tests/{ => spk}/expect/i-base.battery | 2 - tests/{ => spk}/expect/i-blb | 0 tests/{ => spk}/expect/i-resstat | 0 tests/{ => spk}/expect/i-ucb | 0 tests/spk/testfiles/test.frm | 34 ++++++++ tests/{ => swt}/testfiles/i-base.battery | 1 - tests/{ => swt}/testfiles/i-blb | 0 tests/{ => swt}/testfiles/i-resstat | 0 tests/{ => swt}/testfiles/i-ucb | 0 10 files changed, 102 insertions(+), 33 deletions(-) rename tests/{ => spk}/expect/i-base.battery (99%) rename tests/{ => spk}/expect/i-blb (100%) rename tests/{ => spk}/expect/i-resstat (100%) rename tests/{ => spk}/expect/i-ucb (100%) create mode 100644 tests/spk/testfiles/test.frm rename tests/{ => swt}/testfiles/i-base.battery (99%) rename tests/{ => swt}/testfiles/i-blb (100%) rename tests/{ => swt}/testfiles/i-resstat (100%) rename tests/{ => swt}/testfiles/i-ucb (100%) diff --git a/__main__.py b/__main__.py index 33707fb..f73fb0e 100644 --- a/__main__.py +++ b/__main__.py @@ -3,7 +3,11 @@ from repgen.report import Report from repgen.util import filterAddress +import threading +from queue import Queue + version = "5.0.5" +THREAD_COUNT = 10 # setup base time, ex # default formats @@ -25,6 +29,7 @@ def parseArgs(): parser.add_argument( '-a', '--address', dest='host', default='localhost', help="location for data connections; equivalent to `DB=hostname:port/path`", metavar='IP_or_hostname:port[/basepath]') parser.add_argument( '-A', '--alternate', dest='alternate', default=None, help="alternate location for data connections, if the primary is unavailable (only for RADAR)", metavar='IP_or_hostname:port[/basepath]') parser.add_argument( '-c', '--compatibility', dest='compat', action="store_true", default=False, help="repgen4 compatibility; case-insensitive labels") + parser.add_argument( '-p', '--parallel', dest="parallel", action="store_true", default=False, help=f"When this flag is setup Repgen5 will process requests in parallel with {THREAD_COUNT} threads." ) parser.add_argument( '--timeout', dest='timeout', type=float, default=None, help="Socket timeout, in seconds" ) # This provides repgen4 style KEY=VALUE argument passing on the command-line parser.add_argument( 'set', default=[], help="Additional key=value pairs. e.g. `DBTZ=UTC DBOFC=HEC`", metavar="KEY=VALUE", nargs="*" ) @@ -37,38 +42,61 @@ def parseArgs(): # https://stackoverflow.com/a/52014520 def parse_var(s): - """ - Parse a key, value pair, separated by '=' - That's the reverse of ShellArgs. - - On the command line (argparse) a declaration will typically look like: - foo=hello - or - foo="hello world" - """ - items = s.split('=') - key = items[0].strip() # we remove blanks around keys, as is logical - if len(items) > 1: - # rejoin the rest: - value = '='.join(items[1:]) - return (key, value) + """ + Parse a key, value pair, separated by '=' + That's the reverse of ShellArgs. + + On the command line (argparse) a declaration will typically look like: + foo=hello + or + foo="hello world" + """ + items = s.split('=') + key = items[0].strip() # we remove blanks around keys, as is logical + if len(items) > 1: + # rejoin the rest: + value = '='.join(items[1:]) + return (key, value) def parse_vars(items): - """ - Parse a series of key-value pairs and return a dictionary and - a success boolean for whether each item was successfully parsed. - """ - count = 0 - d = {} - for item in items: - if "=" in item: - split_string = item.split("=") - d[split_string[0].strip().upper()] = split_string[1].strip() - count += 1 - else: - print(f"Error: Invalid argument provided - {item}") - - return d, count == len(items) + """ + Parse a series of key-value pairs and return a dictionary and + a success boolean for whether each item was successfully parsed. + """ + count = 0 + d = {} + for item in items: + if "=" in item: + split_string = item.split("=") + d[split_string[0].strip().upper()] = split_string[1].strip() + count += 1 + else: + print(f"Error: Invalid argument provided - {item}") + + return d, count == len(items) + +def processSiteWorker(queue, tid): + """ + Process site worker function that continuously retrieves tasks from a queue and processes them. + These will terminate gracefully when q.join() is called. + + Parameters: + queue (Queue): Queue process + tid (int): The thread ID + + Returns: + None + """ + while True: + shef_id, dt, lookback = q.get(timeout=30) + try: + print(f"Processing {shef_id} via worker thread . . .") + processSite(alt_id, shef_id, dt) + except KeyboardInterrupt: + print(f"Thread #{tid} received KeyboardInterrupt. Exiting...") + finally: + q.task_done() + # Pytz doesn't know all the aliases and abbreviations # This works for Pacific, but untested in other locations that don't use DST. @@ -99,6 +127,16 @@ def parse_vars(items): if config.show_ver == True: print(version) sys.exit(0) + + thread_lock, queue = None, None + if config.parallel: + t = threading.Thread(target=processSiteWorker) + t.daemon = True + t.start() + # Sync the logger with the threads + thread_lock = threading.Lock() + # Initialize the task queue + queue = Queue() report_file = kwargs.get("IN", config.in_file) out_file = kwargs.get("REPORT", config.out_file) diff --git a/tests/expect/i-base.battery b/tests/spk/expect/i-base.battery similarity index 99% rename from tests/expect/i-base.battery rename to tests/spk/expect/i-base.battery index 73cc1ac..9c780ed 100644 --- a/tests/expect/i-base.battery +++ b/tests/spk/expect/i-base.battery @@ -1,7 +1,6 @@ #FORM Year/Month %MONYR Report As of %CURDATE -%TITLE Loaded Normal Day min max min max %DY %VLmin %VLmax %VBmin %VBMax @@ -92,7 +91,6 @@ else: ETIME = Value(ETIME+timedelta(days=1), PICTURE="%B %Y", ) -TITLE = Value(_b) VLmin = Value( dbtype="radar", DBLOC=_a, diff --git a/tests/expect/i-blb b/tests/spk/expect/i-blb similarity index 100% rename from tests/expect/i-blb rename to tests/spk/expect/i-blb diff --git a/tests/expect/i-resstat b/tests/spk/expect/i-resstat similarity index 100% rename from tests/expect/i-resstat rename to tests/spk/expect/i-resstat diff --git a/tests/expect/i-ucb b/tests/spk/expect/i-ucb similarity index 100% rename from tests/expect/i-ucb rename to tests/spk/expect/i-ucb diff --git a/tests/spk/testfiles/test.frm b/tests/spk/testfiles/test.frm new file mode 100644 index 0000000..56af813 --- /dev/null +++ b/tests/spk/testfiles/test.frm @@ -0,0 +1,34 @@ +#FORM +%mgcElevStat +#ENDFORM + +#DEF + + +BASDATE.value = BASDATE.value.replace(hour=8,minute=0,second=0,microsecond=0) +BASDATE.picture = "%Y-%m-%d" +CUR_YEAR = BASDATE.value.year +CUR_MONTH = BASDATE.value.month +CUR_DAY = BASDATE.value.day + +BASDATE_Elev_Pool_Stor = BASDATE.value.replace(hour=8,minute=0,second=0,microsecond=0) + +mgcElev=Value( +dbtype="radar", +DBTZ="US/CENTRAL", +tz="US/CENTRAL", +DBLOC="MGCO2", +DBPAR="Elev", +DBPTYP="Inst", +DBINT="1Hour", +DBDUR="0", +DBVER="Ccp-Rev", +start=BASDATE_Elev_Pool_Stor, +end=BASDATE_Elev_Pool_Stor, +PICTURE="%3.2f", +MISSTR="--", +UNDEF="--", +DBUNITS="ft", +) + +#ENDDEF \ No newline at end of file diff --git a/tests/testfiles/i-base.battery b/tests/swt/testfiles/i-base.battery similarity index 99% rename from tests/testfiles/i-base.battery rename to tests/swt/testfiles/i-base.battery index fbafbb1..4f55a2e 100644 --- a/tests/testfiles/i-base.battery +++ b/tests/swt/testfiles/i-base.battery @@ -38,7 +38,6 @@ Day min max min max #ENDFORM #DEF # !ECHO -!-FUNCTION UNDEF="????" # # Force the %BASDATE to a midnight value, so that TIME= does not have to be diff --git a/tests/testfiles/i-blb b/tests/swt/testfiles/i-blb similarity index 100% rename from tests/testfiles/i-blb rename to tests/swt/testfiles/i-blb diff --git a/tests/testfiles/i-resstat b/tests/swt/testfiles/i-resstat similarity index 100% rename from tests/testfiles/i-resstat rename to tests/swt/testfiles/i-resstat diff --git a/tests/testfiles/i-ucb b/tests/swt/testfiles/i-ucb similarity index 100% rename from tests/testfiles/i-ucb rename to tests/swt/testfiles/i-ucb From 94e75f3885b63b1a357ba309f9246dfc51583f10 Mon Sep 17 00:00:00 2001 From: Charlie Date: Fri, 19 Jul 2024 23:08:15 -0500 Subject: [PATCH 02/21] Experimenting with forms --- repgen/data/value.py | 2 +- tests/spk/testfiles/test.frm | 34 - tests/swt/scripts/run.sh | 6 + tests/swt/testfiles/i-base.battery | 107 -- tests/swt/testfiles/i-blb | 456 ----- tests/swt/testfiles/i-resstat | 2822 ---------------------------- tests/swt/testfiles/i-ucb | 871 --------- tests/swt/testfiles/test.frm | 127 ++ 8 files changed, 134 insertions(+), 4291 deletions(-) delete mode 100644 tests/spk/testfiles/test.frm create mode 100755 tests/swt/scripts/run.sh delete mode 100644 tests/swt/testfiles/i-base.battery delete mode 100644 tests/swt/testfiles/i-blb delete mode 100644 tests/swt/testfiles/i-resstat delete mode 100644 tests/swt/testfiles/i-ucb create mode 100644 tests/swt/testfiles/test.frm diff --git a/repgen/data/value.py b/repgen/data/value.py index ae5953d..feeee95 100644 --- a/repgen/data/value.py +++ b/repgen/data/value.py @@ -1183,7 +1183,7 @@ def min( *args, **kwarg ): else: if isinstance( treat, number_types): tmp.value = treat - elif treat=="MISS": + elif py=="MISS": tmp.value = None return tmp diff --git a/tests/spk/testfiles/test.frm b/tests/spk/testfiles/test.frm deleted file mode 100644 index 56af813..0000000 --- a/tests/spk/testfiles/test.frm +++ /dev/null @@ -1,34 +0,0 @@ -#FORM -%mgcElevStat -#ENDFORM - -#DEF - - -BASDATE.value = BASDATE.value.replace(hour=8,minute=0,second=0,microsecond=0) -BASDATE.picture = "%Y-%m-%d" -CUR_YEAR = BASDATE.value.year -CUR_MONTH = BASDATE.value.month -CUR_DAY = BASDATE.value.day - -BASDATE_Elev_Pool_Stor = BASDATE.value.replace(hour=8,minute=0,second=0,microsecond=0) - -mgcElev=Value( -dbtype="radar", -DBTZ="US/CENTRAL", -tz="US/CENTRAL", -DBLOC="MGCO2", -DBPAR="Elev", -DBPTYP="Inst", -DBINT="1Hour", -DBDUR="0", -DBVER="Ccp-Rev", -start=BASDATE_Elev_Pool_Stor, -end=BASDATE_Elev_Pool_Stor, -PICTURE="%3.2f", -MISSTR="--", -UNDEF="--", -DBUNITS="ft", -) - -#ENDDEF \ No newline at end of file diff --git a/tests/swt/scripts/run.sh b/tests/swt/scripts/run.sh new file mode 100755 index 0000000..ba2bfdb --- /dev/null +++ b/tests/swt/scripts/run.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +python3 . \ + -a https://cwms-data.usace.army.mil/cwms-data \ + -i tests/swt/testfiles/test.frm \ + -O SWT \ No newline at end of file diff --git a/tests/swt/testfiles/i-base.battery b/tests/swt/testfiles/i-base.battery deleted file mode 100644 index 4f55a2e..0000000 --- a/tests/swt/testfiles/i-base.battery +++ /dev/null @@ -1,107 +0,0 @@ -#FORM -Year/Month %MONYR -Report As of %CURDATE -%TITLE - Loaded Normal -Day min max min max -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -%DY %VLmin %VLmax %VBmin %VBMax -#ENDFORM -#DEF -# !ECHO -UNDEF="????" -# -# Force the %BASDATE to a midnight value, so that TIME= does not have to be -# specified on the command line. -# -%BASDATE = SETTIME( %BASDATE, TIME, 2400 ) -# -%CURDATE - PICTURE=DD AAA YYYY @ ZZZT -%MONYR = %BASDATE - PICTURE = AAAAAAAAABBYYYY -# -# Compute the beginning and ending days of the report. Data is available -# only up thru yesterday. Therefore, -# IF yesterday is >= the end of the month THEN -# Produce a report for the entire month (%ETIME = end-of-month) -# ELSEIF end-of-month > yesterday > start-of-month THEN -# Produce a partial month report (%ETIME = yesterday) -# ELSE the month lies completely in the future, so... -# Produce a report for the entire month consisting all No Reports -# ENDIF -# -%STIME = SETTIME( %BASDATE, DAY, 1) -%EOM = EOM( %BASDATE ) -%STMDAY = (YEAR(%STIME ) - 1900)*1000 + DAYOFYR(%STIME ) -%EOMDAY = (YEAR(%EOM ) - 1900)*1000 + DAYOFYR(%EOM ) -%YSTDAY = (YEAR(%CURDATE) - 1900)*1000 + DAYOFYR(%CURDATE) - 1 -#IF %YSTDAY >= %EOMDAY - %ETIME = %EOM -#ELSEIF %YSTDAY > %STMDAY - %TEMP = SETTIME( %CURDATE, TIME, 2400) - %ETIME = TIME(%TEMP - 1D) -#ELSE - %ETIME = %EOM -#ENDIF -# -# -%ETIME=%ETIME+1D -%TITLE=^b -%VLmin - DB=%DB - DBLOC=^a - DBPAR=Volt-Load DBPTYP=Min DBINT=~1Day DBDUR=0 DBVER=Calc-val - STIME=%STIME ETIME=%ETIME - DBUNITS=volt - PICTURE=" NN.Z" - UNDEF =" m" - MISSTR =" m" -%VLmax - DBPTYP=Max -%VBmax - DBPAR=Volt-Batt -%VBmin - DBPTYP=Min - -%TMP DBLOC="Markers-Placeholder" DBPAR=Count DBPTYP=Inst DBINT=~1Day DBDUR=0 DBVER=ALL - DBUNITS=unit - STIME=%STIME-1D ETIME=%ETIME - -%DY=DATATIME(%TMP) - PICTURE="BBDD" - UNDEF =" X" - MISSTR =" X" - -# -# -#ENDDEF diff --git a/tests/swt/testfiles/i-blb b/tests/swt/testfiles/i-blb deleted file mode 100644 index 985ea03..0000000 --- a/tests/swt/testfiles/i-blb +++ /dev/null @@ -1,456 +0,0 @@ -#FORM -Generated, %CTM -Type, TIME ,Inflow ,EPK Inflow,STG Inflow,Outflow ,Stor ,Elev ,EPK Stor ,EPK Elev ,STG Stor ,STG Elev ,Precip (Mean Areal),Precip Lower,Precip Upper,Rel Change -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG -#ENDFORM -#DEF -# !ECHO -!-FUNCTION -# -# Compute the end and start times to read 48 hourly values on the hour. -# The ending time is the time specified by the user on the command line. -# -%ETIME = %BTM+114H PICTURE=ZD AAA YYYY @ ZZ:ZT -%STIME = %BTM-10D -%CTM PICTURE=ZD AAA YYYY @ ZZ:ZT -%BASDATE PICTURE=ZD AAA YYYY @ ZZ:ZT -%MID = SETTIME(%BTM, TIME, 0000) -# -# Read 48 hours of values for the time-series to be displayed -# -MISSTR=" " -UNDEF=" " -%FCST_T - DB=%DB - DBLOC="Black Butte" DBPAR="Flow-Reservoir inflow" DBPTYP=Inst DBINT=1Hour DBDUR=0 DBVER=NWS-forecast-rev - DBUNITS=cfs - DBTZ=PST8PDT - STIME=%STIME - ETIME=%ETIME - PICTURE=NNNNNZ -%FCST - STIME=%BTM - ETIME=%ETIME -%STGI - DBLOC="Stony Gorge" -%EPKI - DBLOC="East Park" -%EPKEF - DBPAR="Elev" - DBUNITS=ft - PICTURE=NNNN.NZ -%STGEF - DBLOC="Stony Gorge" -%STGSF - DBPAR=Stor DBUNITS=ac-ft - PICTURE=NNNNZ -%EPKSF - DBLOC="East Park" -%MEANF -#="----" - DBLOC="Black Butte" - DBPAR=Precip-INC DBPTYP=Total DBDUR=1Hour - PICTURE=NN.NNZ - dbunits=in -%BPL - DBLOC="Black Butte-Lower Zone" -%BPU - DBLOC="Black Butte-Upper Zone" - -%BP - DBLOC="Black Butte" - DBPAR=Precip-Basin DBPTYP=Inst DBDUR=0 DBVER=Calc-val - STIME=%STIME - ETIME=%BTM - - -%INFLOW - DBPAR=Flow-Res In DBPTYP=AVE DBINT=1Hour DBDUR=1Hour DBVER=Calc-val - PICTURE=NNNNNZ - STIME=%STIME - ETIME=%BTM - dbunits=cfs -%OUTFLOW - DBPAR=Flow-Res Out -%STOR - DBLOC="Black Butte-Pool" DBPAR=Stor DBPTYP=Inst DBINT=1Hour DBDUR=0 - DBUNITS=ac-ft - PICTURE=NNNNNZ -%EPKS - DBLOC="East Park" DBVER=Raw-CDEC-Combined -%STGS - DBLOC="Stony Gorge" -%STGE - DBPAR=Elev DBUNITS=ft - PICTURE=NNNN.NZ -%EPKE - DBLOC="East Park" -%ELEV - DBLOC="Black Butte-Pool" DBVER=Calc-val -%AREAL=" " -%RELCHG - DBLOC="Black Butte" DBVER=Release-Val DBPAR=Flow-To - DBUNITS=cfs - STIME=%STIME - ETIME=%ETIME -%TIME = DATATIME(%FCST_T) PICTURE = ZDAAAZZZYBZZZT -#ENDDEF diff --git a/tests/swt/testfiles/i-resstat b/tests/swt/testfiles/i-resstat deleted file mode 100644 index cbe4842..0000000 --- a/tests/swt/testfiles/i-resstat +++ /dev/null @@ -1,2822 +0,0 @@ -#FORM -Data Ending, %BASDATE , created %CTM -, Gross Pool, Current Storage, % Full , , 10 year Ave ,Space Available , Top Con , Inflow , Outflow , Enchroached, Enchroached % - Sacramento R basin -Shasta (SC7), %SHAG , %SHASTO , %SHA , , %SHA10P , %SHAA , %SHATCS , %SHAI , %SHAO , %SHAS , %SHAF -Black Butte (COE), %BBG , %BBSTO , %BLB , , %BB10P , %BBTA , %BBTCS , %BBI , %BBO , %BBTS , %BLBF -Oroville (SC7), %OROG , %OROSTO , %ORO , , %ORO10P , %OROA , %OROTCS , %OROI , %OROO , %OROS , %OROF -New Bullards Bar (SC7), %NBBG , %NBBSTO , %NBB , , %NBB10P , %NBBA , %NBBTCS , %NBBI , %NBBO , %NBBS , %NBBF -Englebright (COE), %ENG , %ENSTO , %ENX , , %EN10P , %ENA , %ENTCS , %ENI , %ENO , %ENS , -Indian Valley (SC7), %INDG , %INDSTO , %IND , , %IND10P , %INDA , %INDTCS , %INDI , %INDO , %INDS , %INDF -Folsom (SC7)|daily, %FOLG , %FOLSTO , %FOL , , %FOL10P , %FOLA , , %FOLI , %FOLO , , -Folsom (SC7)|12, %FOLG , %FLSTO12 , %FOL12 , , , %FOLA12 , %FTCS12 , %FOLI12 , %FOLO12 , %FOLS12 , %FOLF12 -Folsom (SC7)|18, %FOLG , %FLSTO18 , %FOL18 , , , %FOLA18 , %FTCS18 , %FOLI18 , %FOLO18 , %FOLS18 , %FOLF18 -Folsom (SC7)|00, %FOLG , %FLSTO00 , %FOL00 , , , %FOLA00 , %FTCS00 , %FOLI00 , %FOLO00 , %FOLS00 , %FOLF00 -Folsom (SC7)|06, %FOLG , %FLSTO06 , %FOL06 , , , %FOLA06 , %FTCS06 , %FOLI06 , %FOLO06 , %FOLS06 , %FOLF06 - San Joaquin River Basin -Camanche (SC7), %CAMG , %CAMSTO , %CAM , , %CAM10P , %CAMA , %CAMTCS , %CAMI , %CAMO , %CAMS , %CAMF -New Hogan (COE), %NHG , %NHSTO , %NHX , , %NH10P , %NHA , %NHTCS , %NHI , %NHO , %NHS , %NHGF -Farmington (COE), %FMG , %FMSTO , %FRM , , %FM10P , %FMA , %FMTCS , %FMI , %FMO , %FMS , %FRMF -New Melones (SC7), %NWMG , %NWMSTO , %NWM , , %NWM10P , %NWMA , %NWMTCS , %NWMI , %NWMO , %NWMS , %NWMF -Tulloch (SC7), %TULG , %TULSTO , %TUL , , %TUL10P , %TULA , %TULTCS , %TULI , %TULO , %TULS , %TULF -Don Pedro (SC7), %DONG , %DONSTO , %DON , , %DON10P , %DONA , %DONTCS , %DONI , %DONO , %DONS , %DONF -New Exchequer(SC7), %NEXG , %NEXSTO , %NEX , , %NEX10P , %NEXA , %NEXTCS , %NEXI , %NEXO , %NEXS , %NEXF -Burns (COE), %BNG , %BNSTO , %BUR , , %BN10P , %BNA , %BNTCS , %BNI , %BNO , %BNS , %BURF -Bear (COE), %BRG , %BRSTO , %BAR , , %BR10P , %BRA , %BRTCS , %BRI , %BNO , %BRS , %BARF -Owens (COE), %OWG , %OWSTO , %OWN , , %OW10P , %OWA , %OWTCS , %OWI , %OWO , %OWS , %OWNF -Mariposa (COE), %MRG , %MRSTO , %MAR , , %MR10P , %MRA , %MRTCS , %MRI , %MRO , %MRS , %MARF -Los Banos (SC7), %LOSG , %LOSSTO , %LOS , , %LOS10P , %LOSA , %LOSTCS , %LOSI , %LOSO , %LOSS , %LOSF -Buchanan/Eastman (COE), %BUG , %BUSTO , %BUC , , %BU10P , %BCA , %BUTCS , %BUI , %BUO , %BCS , %BUCF -Hidden/Hensley (COE), %HDG , %HDSTO , %HID , , %HD10P , %HDA , %HDTCS , %HDI , %HDO , %HDS , %HIDF -Friant/Millerton (SC7), %FRIG , %FRISTO , %FRI , , %FRI10P , %FRIA , %FRITCS , %FRII , %FRIO , %FRIS , %FRIF -Big Dry Creek (SC7), %BDCG , %BDCSTO , %BDC , , %BDC10P , %BDCA , %BDCTCS , %BDCI , %BDCO , %BDCS , %BDCF - Tulare Lakebed Basin -Pine Flat (COE), %PFG , %PFSTO , %PNF , , %PF10P , %PFA , %PFTCS , %PFI , %PFO , %PFS , %PNFF -Terminus/Kaweah (COE), %TMG , %TMSTO , %TRM , , %TM10P , %TMA , %TMTCS , %TMI , %TMO , %TMS , %TRMF -Success (COE), %SCG , %SCSTO , %SCC , , %SC10P , %SCA , %SCTCS , %SCI , %SCO , %SCS , %SCCF -Isabella (COE), %IBG , %IBSTO , %ISB , , %IB10P , %IBA , %IBTCS , %IBI , %IBO , %IBS , %ISBZ - Truckee River Basin -Martis Creek (COE), %MRTG , %MRTSTO , %MRT , , %MRT10P , %MRTA , %MRTTCS , %MRTI , %MRTO , %MRTS , %MRTF -Prosser (SC7), %PRSG , %PRSSTO , %PRS , , %PRS10P , %PRSA , %PRSTCS , %PRSI , %PRSO , %PRSS , %PRSF -Boca (SC7), %BOCG , %BOCSTO , %BOC , , %BOC10P , %BOCA , %BOCTCS , %BOCI , %BOCO , %BOCS , %BOCF -Stampede (SC7), %STMG , %STMSTO , %STM , , %STM10P , %STMA , %STMTCS , %STMI , %STMO , %STMS , %STMF - SPN RESERVOIRS -Coyote/Mendocino (COE), %COG , %COSTO , %COY , , %CO10P , %COA , %COTCS , %COI , %COO , %COS , %COYF -Warm Springs/Sonoma (COE),%WSG , %WSSTO , %WRS , , %WS10P , %WSA , %WSTCS , %WSI , %WSO , %WSS , %WRSF -Del Valle (SC7), %DELG , %DELSTO , %DEL , , %DEL10P , %DELA , %DELTCS , %DELI , %DELO , %DELS , %DELF - Great Basin, NOTE:, Due to Processing Difficulties all UT/CO is 1 day behind -Pineview (SC7), %PVG , %PVSTO , %PVP , , %PV10P , %PVSA , %PVTCS , %PNVIN , %PNVOUT , %PVS , %PVF -East Canyon (SC7), %ECG , %ECSTO , %ECP , , %EC10P , %ECSA , %ECTCS , %ESTIN , %ESTOUT , %ECS , %ECF -Lost Creek (SC7), %LCG , %LCSTO , %LCP , , %LC10P , %LCSA , %LCTCS , %LSCIN , %LSCOUT , %LCS , %LCF -Echo+Rockport (SC7), %ERG , %ERTCS , %ERP , , %ER10P , %ERSA , %ERTCS , , , %ERS , %ERF -Echo (SC7), %EOG , %EOSTO , %EOP , , %EO10P , %EOSA , %EOTCS , %ECHIN , %ECHOUT , %EOS , %EOF -Wanship/Rockport (SC7), %RKG , %RKSTO , %RKP , , %RK10P , %RKSA , %RKTCS , %RKPIN , %RKPOUT , %RKS , %RKF -Little Dell (SC7), %LDG , %LDSTO , %LDP , , %LD10P , %LDSA , %LDTCS , %LDLIN , %LDLOUT , %LDS , %LDF -Mountain Dell (SC7), %MDG , %MDSTO , %MDP , , %MD10P , %MDSA , %MDTCS , %MNDIN , %MNDOUT , %MDS , %MDF -Jordanelle (SC7), %JRG , %JRSTO , %JRP , , %JR10P , %JRSA , %JRTCS , %JRDIN , %JRDOUT , %JRS , %JRF - Upper Colorado -Red Fleet (SC7), %RFG , %RFSTO , %RFP , , %RF10P , %RFSA , %RFTCS , %RDFIN , %RDFOUT , %RFS , %RFF -Starvation (SC7), %STVG , %STSTO , %STP , , %ST10P , %STSA , %STTCS , %STRIN , %STROUT , %STS , %STF -Poania (SC7), %PNG , %PNSTO , %PNP , , %PN10P , %PNSA , %PNTCS , %PAOIN , %PAOOUT , %PNS , %PNVF -Blue Mesa (SC7), %BMG , %BMSTO , %BMP , , %BM10P , %BMSA , %BMTCS , %BLMIN , %BLMOUT , %BMS , %BMF -Ridgeway (SC7), %RGG , %RGSTO , %RGP , , %RG10P , %RGSA , %RGTCS , %RDGIN , %RDGOUT , %RGS , %RGF -Lemon (SC7), %LMG , %LMSTO , %LMP , , %LM10P , %LMSA , %LMTCS , %LEMIN , %LEMOUT , %LMS , %LMF -Vallecito (SC7), %VLG , %VLSTO , %VLP , , %VL10P , %VLSA , %VLTCS , %VALIN , %VALOUT , %VLS , %VLF - -#ENDFORM -#DEF -# !ECHO -!~FUNCTION -# -# All values are to be read in at the exact time specified, -# without searching backwards or forwards. -# -VALUE = EXACT -# -# Define PICTURE's for various times to be displayed. -# Force %BASDATE to midnight. -# -%CTM PICTURE=DDBAAABYYYYB@BZZZT -%BASDATE = SETTIME(%BASDATE, TIME, 2400) - PICTURE = ZD AAA ZZZY ZZZT -%T12 = %BASDATE+12H - PICTURE=ZDAAAZZZYBZZZT -%T18 = %T12+6H -%T00 = %T18+6H -%T06 = %T00+6H -# -# Define all Rain Flood Parameters -# -# -# Define all Top of Conservation Storage values -# -%BBTCS - DB=%DB - DBLOC="Black Butte" DBPTYP=Inst DBPAR=Stor-Top Con DBVER=Calc-val DBINT=~1Day DBDUR=0 - PICTURE = "NNNNNNNNNZ" - MISSTR = " -NR-" - UNDEF = " -NR-" - TIME = %BASDATE - DBUNITS=ac-ft - DBTZ=PST8PDT -%NHTCS - DBLOC="New Hogan" -%BUTCS - DBLOC="Eastman Lake" -%HDTCS - DBLOC="Hensley Lake" -%PFTCS - DBLOC="Pine Flat Lake" -%TMTCS - DBLOC="Lake Kaweah" -%SCTCS - DBLOC="Success Lake" -%IBTCS - DBLOC="Lake Isabella" -%COTCS - DBLOC="Lake Mendocino" DBVER=Calc-val-High Option -%WSTCS - DBLOC="Lake Sonoma" DBVER=Calc-val -%MRTTCS - DBLOC="Martis Creek" -%FMTCS = 0 -%BNTCS = 0 -%BRTCS = 0 -%OWTCS = 0 -%MRTCS = 0 -%ENTCS = 70000 -%SHATCS - DBLOC="Shasta" DBVER=Calc-usbr -# FILE = /dat0/rtsc7db.dss TYPE=DSS -# A=SACRAMENTO B=SHASTA -# A=AMERICAN B=FOLSOM -%SACTCS - DBLOC="Folsom Lake" DBVER=Calc-cdec SAFCA -# A=AMERICAN B=FOLSOM F=SAFCA - MISSTR = " -NR-" - UNDEF = " -NR-" -# move picture,etc back up here -%OROTCS - DBLOC="Oroville Dam" DBVER=Calc-cdec - MISSTR = " -NR-" - UNDEF = " -NR-" - -# A=FEATHER B=OROVILLE -%LOSTCS - DBLOC="Los Banos" -# A=LOS BANOS CR B=LOS BANOS -# A=MOKELUMNE B=CAMANCHE -# A=MERCED B=NEW EXCHEQUER -%NWMTCS - DBLOC="New Melones" -# A=STANISLAUS B=NEW MELONES -%TULTCS - DBLOC="Tulloch" -# A=STANISLAUS B=TULLOCH -%DELTCS - DBLOC="Del Valle" DBVER=Calc-val -# A=ALAMEDA CR B=DEL VALLE -%DONTCS - DBLOC="Don Pedro" DBVER=Calc-manual -# A=TUOLUMNE B=NEW DON PEDRO -%CAMTCS - DBLOC="Camanche" -%EBMTCS = %CAMTCS -%NEXTCS - DBLOC="New Exchequer" -%PRSTCS - DBLOC="Prosser" -# A=PROSSER CR B=PROSSER CR -%BOCTCS - DBLOC="Boca" -# A=LITTLE TRUCKEE B=BOCA -%STMTCS - DBLOC="Stampede" -# A=LITTLE TRUCKEE B=STAMPEDE -%NBBTCS - DBLOC="New Bullards Bar" DBVER=Calc-usbr -%FRITCS - DBLOC="Friant Dam" DBVER=Calc-usbr -# A=SAN JOAQUIN B=FRIANT F= -# A=NORTH YUBA B=NEW BULLARDS BAR -%INDTCS - DBLOC="Indian Valley" DBVER=Calc-usgs -# A=NF CACHE CR B=INDIAN VALLEY -%BDCTCS = 200 -%FTCS12 - DBLOC="Folsom Lake" DBINT=0 DBVER="Calc-NWS" - DBTZ=UTC - TIME=%T12 - MISSTR="-NF-" - UNDEF="-NF-" -%FTCS18 - TIME=%T18 -%FTCS00 - TIME=%T00 -%FTCS06 - TIME=%T00 -# -# Define all current Storage values -# -%BBSTO - DBLOC="Black Butte-Pool" DBPAR=Stor DBINT=~1Day DBVER=Calc-val - PICTURE = "NNNNNNNNZ" - MISSTR = " -NR-" - UNDEF = " -NR-" - TIME = %BASDATE - DBTZ=PST8PDT - DBUNITS=ac-ft -%ENSTO - DBLOC="Englebright Lake-Pool" -%NHSTO - DBLOC="New Hogan-Pool" -%BUSTO - DBLOC="Eastman Lake-Pool" -%HDSTO - DBLOC="Hensley lake-Pool" -%PFSTO - DBLOC="Pine Flat Lake-Pool" -%TMSTO - DBLOC="Lake Kaweah-Pool" -%SCSTO - DBLOC="Success Lake-Pool" -%IBSTO - DBLOC="Lake Isabella-Pool" -%COSTO - DBLOC="Lake Mendocino-Pool" -%WSSTO - DBLOC="Lake Sonoma-Pool" -%MRTSTO - DBLOC="Martis Creek-Pool" -%FMSTO - DBLOC="Farmington Dam-Pool" -%BNSTO - DBLOC="Burns-Pool" -%BRSTO - DBLOC="Bear-Pool" -%OWSTO - DBLOC="Owens-Pool" -%MRSTO - DBLOC="Mariposa-Pool" -%EPKSTO - DBLOC="East Park" DBVER=Thumb-raw -%STGSTO - DBLOC="Stony Gorge" -%CRTSTO - DBLOC="Courtright" DBVER=Thumb-raw - -# A=KINGS B=COURTRIGHT F= -%WSHSTO - DBLOC="Wishon" -# A=KINGS B=WISHON -%SHASTO - DBLOC="Shasta" DBVER=Raw-USBR-Combined -# FILE = /dat0/rtsc7db.dss TYPE=DSS -# A=SACRAMENTO B=SHASTA F= -%FOLSTO - DBLOC="Folsom Lake" -# A=AMERICAN B=FOLSOM -#%SACSTO = %FOLSTO -# A=SAN JOAQUIN B=FRIANT -%OROSTO - DBLOC="Oroville Dam" DBVER=Calc-cdec -# A=FEATHER B=OROVILLE -%NBBSTO - DBLOC="New Bullards Bar" DBVER=Calc-cdec -# A=NORTH YUBA B=NEW BULLARDS BAR -%INDSTO - DBLOC="Indian Valley" DBVER=Calc-usgs -# A=NF CACHE CR B=INDIAN VALLEY -%UNVSTO - DBLOC="Union Valley" DBVER=Calc-cdec -# A=AMERICAN B=UNION VALLEY -%FMDSTO - DBLOC="French Meadows" DBVER=Calc-confidential -# A=AMERICAN B=FRENCH MEADOWS -%HHLSTO - DBLOC="Hell Hole" -# A=AMERICAN B=HELL HOLE -%NWMSTO - DBLOC="New Melones" DBVER=Raw-USBR-Combined -# A=STANISLAUS B=NEW MELONES -%BRDSTO - DBLOC="Beardsley Lake" -# A=STANISLAUS B=BEARDSLEY -%DNLSTO - DBLOC="Donnells" -# A=STANISLAUS B=DONNELLS -%TULSTO - DBLOC="Tulloch" -# A=STANISLAUS B=TULLOCH -%FRISTO - DBLOC="Friant Dam" -%MAMSTO - DBLOC="Mammoth Pool" -# A=SAN JOAQUIN B=MAMMOTH POOL -%MTSSTO - DBLOC="Friant Dam" DBPAR=Stor-Total Upstream -# A=SAN JOAQUIN B=FRIANT C=STOR-TOT U\S -%CAMSTO - DBLOC="Camanche" DBPAR=Stor DBVER=MANUAL -# A=MOKELUMNE B=CAMANCHE -%DONSTO - DBLOC="Don Pedro" -# A=TUOLUMNE B=NEW DON PEDRO -%NEXSTO - DBLOC="New Exchequer" -# A=MERCED B=NEW EXCHEQUER -%PRDSTO - DBLOC="Pardee" -# A=MOKELUMNE B=PARDEE -%EBMSTO = (%CAMSTO + %PRDSTO) -%SSPSTO - DBLOC="Salt Springs" -# A=MOKELUMNE B=SALT SPRINGS -%LBRSTO - DBLOC="Lower Bear" -# A=MOKELUMNE B=LOWER BEAR -%HTHSTO - DBLOC="Hetch Hetchy" -# A=TUOLUMNE B=HETCH HETCHY -%CHVSTO - DBLOC="Cherry Valley" -# A=TUOLUMNE B=CHERRY VALLEY -%LKLSTO - DBLOC="Lake Eleanor" -# A=TUOLUMNE B=ELEANOR -%DELSTO - DBLOC="Del Valle" -# A=ALAMEDA CR B=DEL VALLE -%PRSSTO - DBLOC="Prosser" -# A=PROSSER CR B=PROSSER CR -%BOCSTO - DBLOC="Boca" -# A=LITTLE TRUCKEE B=BOCA -%STMSTO - DBLOC="Stampede" -# A=LITTLE TRUCKEE B=STAMPEDE -%BDCSTO - DBLOC="Big Dry Cr" -%LOSSTO - DBLOC="Los Banos" -%FLSTO12 - DBLOC="Folsom Lake" DBINT=1Hour DBVER=Raw-USBR-Combined - TIME=%T12 - DBTZ=UTC - PICTURE="NNNNNNZ" - MISSTR="-NF-" - UNDEF="-NF-" -%FLSTO18 - TIME=%T18 -%FLSTO00 - TIME=%T00 -%FLSTO06 - TIME=%T06 -# A=LOS BANOS CR B=LOS BANOS -# A=BIG DRY CR B=BIG DRY CR -# -# -# Gross Pools (acft) for Corps Reservoirs -# -%BBG = 136200 - PICTURE=NNNNNNZ -%ENG = 70000 -%NHG = 317100 -%BUG = 150000 -%HDG = 90000 -%PFG = 1000000 -%TMG = 185600 -%SCG = 84095 -#%IBG = 568100 -%IBG = 361250 -%MRTG= 20400 -%COG = 116500 -%WSG = 381000 -%FMG = 52000 -%BNG = 6800 -%BRG = 7700 -%OWG = 3600 -%MRG = 15000 -%EPG = 50900 -%SGG = 50000 -%UVG = 235100 -%FRG = 110700 -%HHG = 207600 -%CTG = 123300 -%WHG = 128600 -%EBG = 615050 -# -# -# -# Gross Pool (acft) for SEC7 Reservoirs -# NOTE: Uses the same PICTURE as the Corps Reservoirs -# -%SHAG= 4552100 -%OROG= 3538000 -%NBBG= 966000 -%INDG= 300600 -%FOLG= 966823 -%SACG= %FOLG -%CAMG= 417100 -%NWMG= 2420000 -%DONG= 2030000 -%NEXG= 1024600 -%FRIG= 520500 -%LOSG= 34600 -%DELG= 77000 -%TULG= 67000 -%PRSG= 29800 -%BOCG= 41100 -%STMG= 226500 -%BDCG= 30200 -%PDG = 197950 - PICTURE=NNNNNNZ -%SSG = 140000 -%LBG = 49000 -%BDG = 97800 -%DNG = 64300 -%HEG = 360400 -%CVG = 268200 -%LEG = 26000 -%MAG = 122700 -%TSG = 628500 -%TSG2 = 251900 - -# Gross Pool for UT/CO -%EOG= 73900 - PICTURE= NNNNNZ -%ERG= 136062 -%RKG= 62100 -%LCG= 22500 -%ECG= 51200 -%PVG= 110200 -%STVG= 167300 -%VLG= 129700 -%LMG= 40100 -%BMG= 940800 -%PNG= 17500 -%RFG= 26000 -%RGG= 84400 -%JRG= 314000 -%LDG= 20500 -%MDG= 3200 -%MPG= 117200 -%CRG= 25200 - -# -# Define Percent of Gross Pool -# -# Compute % full based on current storage and gross pool not -# accounting for any forecasts, irrigation demnads or other -# factors that would change the theoretical value. -# NOTE: The variable names should always be shorter than the -# PICTURE -- otherwise the text to the right of the -# variable will be compressed (see REPGEN Manual -# Section 4.2 "Report Form".) So we used names of the -# format %<3-letter-project-mnemonic> to keep names at -# four letters. -# - %BLB = %BBSTO / %BBG * 100.0 - PICTURE=BNNZ -# NOTE: New Hogan was re-named to %NHX so that it does not -# conflict with %NHG (New Hogan gross pool) variable above. - %ENX = %ENSTO / %ENG * 100.0 - %NHX = %NHSTO / %NHG * 100.0 - %BUC = %BUSTO / %BUG * 100.0 - %HID = %HDSTO / %HDG * 100.0 - %PNF = %PFSTO / %PFG * 100.0 - %TRM = %TMSTO / %TMG * 100.0 - %SCC = %SCSTO / %SCG * 100.0 - %ISB = %IBSTO / %IBG * 100.0 - %COY = %COSTO / %COG * 100.0 - %WRS = %WSSTO / %WSG * 100.0 - %FRM = %FMSTO / %FMG * 100.0 - %BUR = %BNSTO / %BNG * 100.0 - %BAR = %BRSTO / %BRG * 100.0 - %OWN = %OWSTO / %OWG * 100.0 - %MAR = %MRSTO / %MRG * 100.0 - %SHA = %SHASTO / %SHAG * 100.0 - %FOL = %FOLSTO / %FOLG * 100.0 - %FOL12 = %FLSTO12/%FOLG * 100.0 - UNDEF="-NF-" - MISSTR="-NF-" - %FOL18 = %FLSTO18/%FOLG * 100.0 - %FOL00 = %FLSTO00/%FOLG * 100.0 - %FOL06 = %FLSTO06/%FOLG * 100.0 - #%SAC = %SACSTO / %SACG * 100.0 - %FRI = %FRISTO / %FRIG * 100.0 - UNDEF="-NR-" - MISSTR="-NR-" - %ORO = %OROSTO / %OROG * 100.0 - %LOS = %LOSSTO / %LOSG * 100.0 - %NBB = %NBBSTO / %NBBG * 100.0 - %CAM = %CAMSTO / %CAMG * 100.0 - %DON = %DONSTO / %DONG * 100.0 - %NEX = %NEXSTO / %NEXG * 100.0 - %NWM = %NWMSTO / %NWMG * 100.0 - %TUL = %TULSTO / %TULG * 100.0 - %IND = %INDSTO / %INDG * 100.0 - %DEL = %DELSTO / %DELG * 100.0 - %MRT = %MRTSTO / %MRTG * 100.0 - %PRS = %PRSSTO / %PRSG * 100.0 - %BOC = %BOCSTO / %BOCG * 100.0 - %STM = %STMSTO / %STMG * 100.0 - %BDC = %BDCSTO / %BDCG * 100.0 - %EPK = %EPKSTO / %EPG * 100.0 - %STG = %STGSTO / %SGG * 100.0 - %UNV = %UNVSTO / %UVG * 100.0 - %FMD = %FMDSTO / %FRG * 100.0 - %HHL = %HHLSTO / %HHG * 100.0 - %PRD = %PRDSTO / %PDG * 100.0 - %SSP = %SSPSTO / %SSG * 100.0 - %LBR = %LBRSTO / %LBG * 100.0 - %BRD = %BRDSTO / %BDG * 100.0 - %DNL = %DNLSTO / %DNG * 100.0 - %HTH = %HTHSTO / %HEG * 100.0 - %CHV = %CHVSTO / %CVG * 100.0 - %LKL = %LKLSTO / %LEG * 100.0 - %MAM = %MAMSTO / %MAG * 100.0 - %MTS = %MTSSTO / %TSG * 100.0 - %CRT = %CRTSTO / %CTG * 100.0 - %WSH = %WSHSTO / %WHG * 100.0 - %EBM = %EBMSTO / %EBG * 100.0 -# -# Generate Percent Encroached for any reservoir whose Storage -# exceeds its Top of Conservation Storage. -# Encroachment is computed as a percentage of flood control -# space in use. -# VERY IMPORTANT: All variable names should be exactly 5 characters -# (including the %), and the string of blanks should be -# exactly the same length (i.e. 5 blanks). Otherwise, the -# report line will get screwed up. -# NOTE: The %DUMF variable is needed only to set the PICTURE -# for the %xxxF variables. -# -%DUMF=0.0 PICTURE="NNZ" -#IF %BBSTO > %BBTCS AND %BBG > %BBTCS - %BLBZ = ( (%BBSTO-%BBTCS) / (%BBG-%BBTCS) ) * 100.0 PICTURE="NNZ" -#ELSE - %BLBZ = 0 PICTURE="NNZ" -#ENDIF -#IF %ENSTO > %ENTCS AND %ENG > %ENTCS - %ENGZ = ( (%ENSTO-%ENTCS) / (%ENG-%ENTCS) ) * 100.0 -#ELSE - %ENGZ = 0 -#ENDIF -#IF %NHSTO > %NHTCS AND %NHG > %NHTCS - %NHGZ = ( (%NHSTO-%NHTCS) / (%NHG-%NHTCS) ) * 100.0 -#ELSE - %NHGZ = 0 -#ENDIF -#IF %BUSTO > %BUTCS AND %BUG > %BUTCS - %BUCZ = ( (%BUSTO-%BUTCS) / (%BUG-%BUTCS) ) * 100.0 -#ELSE - %BUCZ = 0 -#ENDIF -#IF %HDSTO > %HDTCS AND %HDG > %HDTCS - %HIDZ = ( (%HDSTO-%HDTCS) / (%HDG-%HDTCS) ) * 100.0 -#ELSE - %HIDZ = 0 -#ENDIF -#IF %PFSTO > %PFTCS AND %PFG > %PFTCS - %PNFZ = ( (%PFSTO-%PFTCS) / (%PFG-%PFTCS) ) * 100.0 -#ELSE - %PNFZ = 0 -#ENDIF -#IF %TMSTO > %TMTCS AND %TMG > %TMTCS - %TRMZ = ( (%TMSTO-%TMTCS) / (%TMG-%TMTCS) ) * 100.0 -#ELSE - %TRMZ = 0 -#ENDIF -#IF %SCSTO > %SCTCS AND %SCG > %SCTCS - %SCCZ = ( (%SCSTO-%SCTCS) / (%SCG-%SCTCS) ) * 100.0 -#ELSE - %SCCZ = 0 -#ENDIF -#IF %IBSTO > %IBTCS AND %IBG > %IBTCS - %ISBZ = ( (%IBSTO-%IBTCS) / (%IBG-%IBTCS) ) * 100.0 -#ELSE - %ISBZ = 0 -#ENDIF -#IF %COSTO > %COTCS AND %COG > %COTCS - %COYZ = ( (%COSTO-%COTCS) / (%COG-%COTCS) ) * 100.0 -#ELSE - %COYZ = 0 -#ENDIF -#IF %WSSTO > %WSTCS AND %WSG > %WSTCS - %WRSZ = ( (%WSSTO-%WSTCS) / (%WSG-%WSTCS) ) * 100.0 -#ELSE - %WRSZ = 0 -#ENDIF -#IF %FMSTO > %FMTCS AND %FMG > %FMTCS - %FRMZ = ( (%FMSTO-%FMTCS) / (%FMG-%FMTCS) ) * 100.0 -#ELSE - %FRMZ = 0 -#ENDIF -#IF %BNSTO > %BNTCS AND %BNG > %BNTCS - %BURZ = ( (%BNSTO-%BNTCS) / (%BNG-%BNTCS) ) * 100.0 -#ELSE - %BURZ = 0 -#ENDIF -#IF %BRSTO > %BRTCS AND %BRG > %BRTCS - %BARZ = ( (%BRSTO-%BRTCS) / (%BRG-%BRTCS) ) * 100.0 -#ELSE - %BARZ = 0 -#ENDIF -#IF %OWSTO > %OWTCS AND %OWG > %OWTCS - %OWNZ = ( (%OWSTO-%OWTCS) / (%OWG-%OWTCS) ) * 100.0 -#ELSE - %OWNZ = 0 -#ENDIF -#IF %MRSTO > %MRTCS AND %MRG > %MRTCS - %MARZ = ( (%MRSTO-%MRTCS) / (%MRG-%MRTCS) ) * 100.0 -#ELSE - %MARZ = 0 -#ENDIF -#IF %SHASTO > %SHATCS AND %SHAG > %SHATCS - %SHAZ = ( (%SHASTO-%SHATCS) / (%SHAG-%SHATCS) ) * 100.0 PICTURE="NNZ" -#ELSE - %SHAZ = 0 PICTURE="NNZ" -#ENDIF -#IF %FLSTO12 > %FTCS12 AND %FOLG > %FTCS12 - %FOLZ12 = ( (%FLSTO12-%FTCS12) / (%FOLG-%FTCS12) ) * 100.0 -#ELSE - %FOLZ12 = 0 -#ENDIF -#IF %FLSTO18 > %FTCS18 AND %FOLG > %FTCS18 - %FOLZ18 = ( (%FLSTO18-%FTCS18) / (%FOLG-%FTCS18) ) * 100.0 -#ELSE - %FOLZ18 = 0 -#ENDIF -#IF %FLSTO00 > %FTCS00 AND %FOLG > %FTCS00 - - %FOLZ00 = ( (%FLSTO00-%FTCS00) / (%FOLG-%FTCS00) ) * 100.0 -#ELSE - %FOLZ00 = 0 -#ENDIF -#IF %FLSTO06 > %FTCS06 AND %FOLG > %FTCS06 - %FOLZ06 = ( (%FLSTO06-%FTCS06) / (%FOLG-%FTCS06) ) * 100.0 -#ELSE - %FOLZ06 = 0 -#ENDIF -##IF %SACSTO > %SACTCS AND %SACG > %SACTCS -# %SACZ = ( (%SACSTO-%SACTCS) / (%SACG-%SACTCS) ) * 100.0 -##ELSE - %SACZ = 0 -##ENDIF -#IF %FRISTO > %FRITCS AND %FRIG > %FRITCS - %FRIZ = ( (%FRISTO-%FRITCS) / (%FRIG-%FRITCS) ) * 100.0 -#ELSE - %FRIZ = 0 -#ENDIF -#IF %OROSTO > %OROTCS AND %OROG > %OROTCS - %OROZ = ( (%OROSTO-%OROTCS) / (%OROG-%OROTCS) ) * 100.0 -#ELSE - %OROZ = 0 -#ENDIF -#IF %LOSSTO > %LOSTCS AND %LOSG > %LOSTCS - %LOSZ = ( (%LOSSTO-%LOSTCS) / (%LOSG-%LOSTCS) ) * 100.0 -#ELSE - %LOSZ = 0 -#ENDIF -#IF %NBBSTO > %NBBTCS AND %NBBG > %NBBTCS - %NBBZ = ( (%NBBSTO-%NBBTCS) / (%NBBG-%NBBTCS) ) * 100.0 -#ELSE - %NBBZ = 0 -#ENDIF -#IF %CAMSTO > %CAMTCS AND %CAMG > %CAMTCS - %CAMZ = ( (%CAMSTO-%CAMTCS) / (%CAMG-%CAMTCS) ) * 100.0 -#ELSE - %CAMZ = 0 -#ENDIF -#IF %DONSTO > %DONTCS AND %DONG > %DONTCS - %DONZ = ( (%DONSTO-%DONTCS) / (%DONG-%DONTCS) ) * 100.0 -#ELSE - %DONZ = 0 -#ENDIF -#IF %NEXSTO > %NEXTCS AND %NEXG > %NEXTCS - %NEXZ = ( (%NEXSTO-%NEXTCS) / (%NEXG-%NEXTCS) ) * 100.0 -#ELSE - %NEXZ = 0 -#ENDIF -#IF %NWMSTO > %NWMTCS AND %NWMG > %NWMTCS - %NWMZ = ( (%NWMSTO-%NWMTCS) / (%NWMG-%NWMTCS) ) * 100.0 -#ELSE - %NWMZ = 0 -#ENDIF -#IF %TULSTO > %TULTCS AND %TULG > %TULTCS - %TULZ = ( (%TULSTO-%TULTCS) / (%TULG-%TULTCS) ) * 100.0 -#ELSE - %TULZ = 0 -#ENDIF -#IF %INDSTO > %INDTCS AND %INDG > %INDTCS - %INDZ = ( (%INDSTO-%INDTCS) / (%INDG-%INDTCS) ) * 100.0 -#ELSE - %INDZ = 0 -#ENDIF -#IF %DELSTO > %DELTCS AND %DELG > %DELTCS - %DELZ = ( (%DELSTO-%DELTCS) / (%DELG-%DELTCS) ) * 100.0 -#ELSE - %DELZ = 0 -#ENDIF -#IF %MRTSTO > %MRTTCS AND %MRTG > %MRTTCS - %MRTZ = ( (%MRTSTO-%MRTTCS) / (%MRTG-%MRTTCS) ) * 100.0 -#ELSE - %MRTZ = 0 -#ENDIF -#IF %PRSSTO > %PRSTCS AND %PRSG > %PRSTCS - %PRSZ = ( (%PRSSTO-%PRSTCS) / (%PRSG-%PRSTCS) ) * 100.0 -#ELSE - %PRSZ = 0 -#ENDIF -#IF %BOCSTO > %BOCTCS AND %BOCG > %BOCTCS - %BOCZ = ( (%BOCSTO-%BOCTCS) / (%BOCG-%BOCTCS) ) * 100.0 -#ELSE - %BOCZ = 0 -#ENDIF -#IF %STMSTO > %STMTCS AND %STMG > %STMTCS - %STMZ = ( (%STMSTO-%STMTCS) / (%STMG-%STMTCS) ) * 100.0 -#ELSE - %STMZ = 0 -#ENDIF -#IF %BDCSTO > %BDCTCS AND %BDCG > %BDCTCS - %BDCZ = ( (%BDCSTO-%BDCTCS) / (%BDCG-%BDCTCS) ) * 100.0 -#ELSE - %BDCZ = 0 -#ENDIF -#IF %CAMSTO > %CAMTCS - %EBMA = (%CAMG- %CAMTCS) - %EBMB = (%PDG - %PRDSTO) - %EBMZ = ( (%CAMSTO-%CAMTCS) / (%EBMA + %EBMB) ) * 100.0 -#ELSE - %EBMZ = 0 -#ENDIF -# -# Define %encroached format -# Anything >= 99.5 will round to 100 and overflow the B(NZ) format -# -#IF %BLBZ >= 99.5 - %BLBF = %BLBZ PICTURE = (NNZ) -#ELSEIF %BLBZ >= 0.0 - %BLBF = %BLBZ PICTURE = (NNZ) -##ELSE -# %BLBF =" ( 0) " PICTURE = AAAAA -#ENDIF -#SHOW %BLBZ -#SHOW %BLBF -#IF %NHGZ >= 99.5 - %NHGF = %NHGZ PICTURE = (NNZ) -#ELSEIF %NHGZ >= 0.0 - %NHGF = %NHGZ PICTURE = (NNZ) -#ELSE - %NHGF =" " PICTURE = AAAAA -#ENDIF -#SHOW %NHGZ -#SHOW %NHGF -#IF %BUCZ >= 99.5 - %BUCF = %BUCZ PICTURE = (NNZ) -#ELSEIF %BUCZ >= 0.0 - %BUCF = %BUCZ PICTURE = (NNZ) -#ELSE - %BUCF =" " PICTURE = AAAAA -#ENDIF -#SHOW %BUCZ -#SHOW %BUCF -#IF %HIDZ >= 99.5 - %HIDF = %HIDZ PICTURE = (NNZ) -#ELSEIF %HIDZ >= 0.0 - %HIDF = %HIDZ PICTURE = (NNZ) -#ELSE - %HIDF =" " PICTURE = AAAAA -#ENDIF -#SHOW %HIDZ -#SHOW %HIDF -#IF %PNFZ >= 99.5 - %PNFF = %PNFZ PICTURE = (NNZ) -#ELSEIF %PNFZ >= 0.0 - %PNFF = %PNFZ PICTURE = (NNZ) -#ELSE - %PNFF =" " PICTURE = AAAAA -#ENDIF -#SHOW %PNFZ -#SHOW %PNFF -#IF %TRMZ >= 99.5 - %TRMF = %TRMZ PICTURE = (NNZ) -#ELSEIF %TRMZ >= 0.0 - %TRMF = %TRMZ PICTURE = (NNZ) -#ELSE - %TRMF =" " PICTURE = AAAAA -#ENDIF -#SHOW %TRMZ -#SHOW %TRMF -#IF %SCCZ >= 99.5 - %SCCF = %SCCZ PICTURE = (NNZ) -#ELSEIF %SCCZ >= 0.0 - %SCCF = %SCCZ PICTURE = (NNZ) -#ELSE - %SCCF =" " PICTURE = AAAAA -#ENDIF -#SHOW %SCCZ -#SHOW %SCCF -# #IF %ISBZ >= 99.5 -# %ISBF = %ISBZ PICTURE = (NNZ) -# #ELSEIF %ISBZ > 0.0 -# %ISBF = %ISBZ PICTURE = B(NZ) -# #ELSE -# %ISBF =" " PICTURE = AAAAA -# #ENDIF -# #SHOW %ISBZ -# #SHOW %ISBF -#IF %COYZ >= 99.5 - %COYF = %COYZ PICTURE = (NNZ) -#ELSEIF %COYZ >= 0.0 - %COYF = %COYZ PICTURE = (NNZ) -#ELSE - %COYF =" " PICTURE = AAAAA -#ENDIF -#SHOW %COYZ -#SHOW %COYF -#IF %WRSZ >= 99.5 - %WRSF = %WRSZ PICTURE = (NNZ) -#ELSEIF %WRSZ >= 0.0 - %WRSF = %WRSZ PICTURE = (NNZ) -#ELSE - %WRSF =" " PICTURE = AAAAA -#ENDIF -#SHOW %WRSZ -#SHOW %WRSF -#IF %FRMZ >= 99.5 - %FRMF = %FRMZ PICTURE = (NNZ) -#ELSEIF %FRMZ >= 0.0 - %FRMF = %FRMZ PICTURE = (NNZ) -#ELSE - %FRMF =" " PICTURE = AAAAA -#ENDIF -#SHOW %FRMZ -#SHOW %FRMF -#IF %BURZ >= 99.5 - %BURF = %BURZ PICTURE = (NNZ) -#ELSEIF %BURZ >= 0.0 - %BURF = %BURZ PICTURE = (NNZ) -#ELSE - %BURF =" " PICTURE = AAAAA -#ENDIF -#SHOW %BURZ -#SHOW %BURF -#IF %BARZ >= 99.5 - %BARF = %BARZ PICTURE = (NNZ) -#ELSEIF %BARZ >= 0.0 - %BARF = %BARZ PICTURE = (NNZ) -#ELSE - %BARF =" " PICTURE = AAAAA -#ENDIF -#SHOW %BARZ -#SHOW %BARF -#IF %OWNZ >= 99.5 - %OWNF = %OWNZ PICTURE = (NNZ) -#ELSEIF %OWNZ >= 0.0 - %OWNF = %OWNZ PICTURE = (NNZ) -#ELSE - %OWNF =" " PICTURE = AAAAA -#ENDIF -#SHOW %OWNZ -#SHOW %OWNF -#IF %MARZ >= 99.5 - %MARF = %MARZ PICTURE = (NNZ) -#ELSEIF %MARZ >= 0.0 - %MARF = %MARZ PICTURE = (NNZ) -#ELSE - %MARF =" " PICTURE = AAAAA -#ENDIF -#SHOW %MARZ -#SHOW %MARF -#IF %SHAZ >= 99.5 - %SHAF = %SHAZ PICTURE = (NNZ) -#ELSEIF %SHAZ >= 0.0 - %SHAF = %SHAZ PICTURE = (NNZ) -#ELSE - %SHAF =" " PICTURE = AAAAA -#ENDIF -##SHOW %SHAZ -##SHOW %SHAF -#IF %FOLZ12 >= 99.5 - %FOLF12 = %FOLZ12 PICTURE = (NNZ) -#ELSEIF %FOLZ12 >= 0.0 - %FOLF12 = %FOLZ12 PICTURE = (NNZ) -#ELSE - %FOLF12 =" " PICTURE = AAAAA -#ENDIF -#IF %FOLZ18 >= 99.5 - %FOLF18 = %FOLZ18 PICTURE = (NNZ) -#ELSEIF %FOLZ18 >= 0.0 - %FOLF18 = %FOLZ18 PICTURE = (NNZ) -#ELSE - %FOLF18 =" " PICTURE = AAAAA -#ENDIF -#IF %FOLZ00 >= 99.5 - %FOLF00 = %FOLZ00 PICTURE = (NNZ) -#ELSEIF %FOLZ00 >= 0.0 - %FOLF00 = %FOLZ00 PICTURE = (NNZ) -#ELSE - %FOLF00 =" " PICTURE = AAAAA -#ENDIF -#IF %FOLZ06 >= 99.5 - %FOLF06 = %FOLZ06 PICTURE = (NNZ) -#ELSEIF %FOLZ06 >= 0.0 - %FOLF06 = %FOLZ06 PICTURE = (NNZ) -#ELSE - %FOLF06 =" " PICTURE = AAAAA -#ENDIF -##SHOW %FOLZ -##SHOW %FOLF -#IF %SACZ >= 99.5 - %SACF = %SACZ PICTURE = (NNZ) -#ELSEIF %SACZ >= 0.0 - %SACF = %SACZ PICTURE = (NNZ) -#ELSE - %SACF =" " PICTURE = AAAAA -#ENDIF -##SHOW %SACZ -##SHOW %SACF -#IF %FRIZ >= 99.5 - %FRIF = %FRIZ PICTURE = (NNZ) -#ELSEIF %FRIZ >= 0.0 - %FRIF = %FRIZ PICTURE = (NNZ) -#ELSE - %FRIF =" " PICTURE = AAAAA -#ENDIF -##SHOW %FRIZ -##SHOW %FRIF -#IF %OROZ >= 99.5 - %OROF = %OROZ PICTURE = (NNZ) -#ELSEIF %OROZ >= 0.0 - %OROF = %OROZ PICTURE = (NNZ) -#ELSE - %OROF =" " PICTURE = AAAAA -#ENDIF -##SHOW %OROZ -##SHOW %OROF -#IF %LOSZ >= 99.5 - %LOSF = %LOSZ PICTURE = (NNZ) -#ELSEIF %LOSZ >= 0.0 - %LOSF = %LOSZ PICTURE = (NNZ) -#ELSE - %LOSF =" " PICTURE = AAAAA -#ENDIF -##SHOW %LOSZ -##SHOW %LOSF -#IF %NBBZ >= 99.5 - %NBBF = %NBBZ PICTURE = (NNZ) -#ELSEIF %NBBZ >= 0.0 - %NBBF = %NBBZ PICTURE = (NNZ) -#ELSE - %NBBF =" " PICTURE = AAAAA -#ENDIF -##SHOW %NBBZ -##SHOW %NBBF -#IF %CAMZ >= 99.5 - %CAMF = %CAMZ PICTURE = (NNZ) -#ELSEIF %CAMZ >= 0.0 - %CAMF = %CAMZ PICTURE = (NNZ) -#ELSE - %CAMF =" " PICTURE = AAAAA -#ENDIF -##SHOW %CAMZ -##SHOW %CAMF -#IF %DONZ >= 99.5 - %DONF = %DONZ PICTURE = (NNZ) -#ELSEIF %DONZ >= 0.0 - %DONF = %DONZ PICTURE = (NNZ) -#ELSE - %DONF =" " PICTURE = AAAAA -#ENDIF -##SHOW %DONZ -##SHOW %DONF -#IF %NEXZ >= 99.5 - %NEXF = %NEXZ PICTURE = (NNZ) -#ELSEIF %NEXZ >= 0.0 - %NEXF = %NEXZ PICTURE = (NNZ) -#ELSE - %NEXF =" " PICTURE = AAAAA -#ENDIF -##SHOW %NEXZ -##SHOW %NEXF -#IF %NWMZ >= 99.5 - %NWMF = %NWMZ PICTURE = (NNZ) -#ELSEIF %NWMZ >= 0.0 - %NWMF = %NWMZ PICTURE = (NNZ) -#ELSE - %NWMF =" " PICTURE = AAAAA -#ENDIF -##SHOW %NWMZ -##SHOW %NWMF -#IF %TULZ >= 99.5 - %TULF = %TULZ PICTURE = (NNZ) -#ELSEIF %TULZ >= 0.0 - %TULF = %TULZ PICTURE = (NNZ) -#ELSE - %TULF =" " PICTURE = AAAAA -#ENDIF -##SHOW %TULZ -##SHOW %TULF -#IF %INDZ >= 99.5 - %INDF = %INDZ PICTURE = (NNZ) -#ELSEIF %INDZ >= 0.0 - %INDF = %INDZ PICTURE = (NNZ) -#ELSE - %INDF =" " PICTURE = AAAAA -#ENDIF -##SHOW %INDZ -##SHOW %INDF -#IF %DELZ >= 99.5 - %DELF = %DELZ PICTURE = (NNZ) -#ELSEIF %DELZ >= 0.0 - %DELF = %DELZ PICTURE = (NNZ) -#ELSE - %DELF =" " PICTURE = AAAAA -#ENDIF -##SHOW %DELZ -##SHOW %DELF -#IF %MRTZ >= 99.5 - %MRTF = %MRTZ PICTURE = (NNZ) -#ELSEIF %MRTZ >= 0.0 - %MRTF = %MRTZ PICTURE = (NNZ) -#ELSE - %MRTF =" " PICTURE = AAAAA -#ENDIF -##SHOW %MRTZ -##SHOW %MRTF -#IF %PRSZ >= 99.5 - %PRSF = %PRSZ PICTURE = (NNZ) -#ELSEIF %PRSZ >= 0.0 - %PRSF = %PRSZ PICTURE = (NNZ) -#ELSE - %PRSF =" " PICTURE = AAAAA -#ENDIF -##SHOW %PRSZ -##SHOW %PRSF -#IF %BOCZ >= 99.5 - %BOCF = %BOCZ PICTURE = (NNZ) -#ELSEIF %BOCZ >= 0.0 - %BOCF = %BOCZ PICTURE = (NNZ) -#ELSE - %BOCF =" " PICTURE = AAAAA -#ENDIF -##SHOW %BOCZ -##SHOW %BOCF -#IF %STMZ >= 99.5 - %STMF = %STMZ PICTURE = (NNZ) -#ELSEIF %STMZ >= 0.0 - %STMF = %STMZ PICTURE = (NNZ) -#ELSE - %STMF =" " PICTURE = AAAAA -#ENDIF -##SHOW %STMZ -##SHOW %STMF -#IF %BDCZ >= 99.5 - %BDCF = %BDCZ PICTURE = (NNZ) -#ELSEIF %BDCZ >= 0.0 - %BDCF = %BDCZ PICTURE = (NNZ) -#ELSE - %BDCF =" " PICTURE = AAAAA -#ENDIF -##SHOW %BDCZ -##SHOW %BDCF -#IF %EBMZ >= 99.5 - %EBMF = %EBMZ PICTURE = (NNZ) -#ELSEIF %EBMZ >= 0.0 - %EBMF = %EBMZ PICTURE = (NNZ) -#ELSE - %EBMF =" " PICTURE = AAAAA -#ENDIF -##SHOW %EBMZ -##SHOW %EBMF -##IF %ABSZ >= 99.5 -# %ABSF = %ABSZ PICTURE = (NNZ) -##ELSEIF %ABSZ >= 0.0 -# %ABSF = %ABSZ PICTURE = (NNZ) -##ELSE -# %ABSF =" ( x0)" PICTURE = AAAA -##ENDIF -##SHOW %ABSZ -##SHOW %ABSF -##IF %BBSZ >= 99.5 -# %BBSF = %BBSZ PICTURE = (NNZ) -##ELSEIF %BBSZ >= 0.0 -# %BBSF = %BBSZ PICTURE = (NNZ) -##ELSE -# %BBSF =" " PICTURE = AAAAA -##ENDIF -##SHOW %BBSZ -##SHOW %BBSF -##IF %CBSZ >= 99.5 -# %CBSF = %CBSZ PICTURE = (NNZ) -##ELSEIF %CBSZ >= 0.0 -# %CBSF = %CBSZ PICTURE = (NNZ) -##ELSE -# %CBSF =" " PICTURE = AAAAA -##ENDIF -##SHOW %CBSZ -##SHOW %CBSF -##IF %DBSZ >= 99.5 -# %DBSF = %DBSZ PICTURE = (NNZ) -##ELSEIF %DBSZ >= 0.0 -# %DBSF = %DBSZ PICTURE = (NNZ) -##ELSE -# %DBSF =" " PICTURE = AAAAA -##ENDIF -##SHOW %DBSZ -##SHOW %DBSF -##IF %EBSZ >= 99.5 -# %EBSF = %EBSZ PICTURE = (NNZ) -##ELSEIF %EBSZ >= 0.0 -# %EBSF = %EBSZ PICTURE = (NNZ) -##ELSE -# %EBSF =" " PICTURE = AAAAA -##ENDIF -#SHOW %EBSZ -#SHOW %EBSF -# -# -# Define Space Used Above Top Conservation Storage -# -# Define Space Used Above TCS for the non-snowmelt reservoirs. -# IF we are in snowmelt season (01Feb to 31Jul) THEN -# Define Space Used Above TCS for the snowmelt reservoirs as N/A -# (i.e. Not Applicable) -# ELSE -# Display Space Used Above TCS for the snowmelt reservoirs. -# ENDIF -# -%BBSP = %BBSTO - %BBTCS - PICTURE = "NNNNNNNNNZ" - MISSTR = " -NR-" - UNDEF = " -NR-" -%ENSP = %ENSTO - %ENTCS -%NHSP = %NHSTO - %NHTCS -%BUSP = %BUSTO - %BUTCS -%HDSP = %HDSTO - %HDTCS -%COSP = %COSTO - %COTCS -%WSSP = %WSSTO - %WSTCS -%FMSP = %FMSTO - %FMTCS -%MRTSP = %MRTSTO - %MRTTCS -%BURSP = %BNSTO - %BNTCS -%BARSP = %BRSTO - %BRTCS -%OWNSP = %OWSTO - %OWTCS -%MARSP = %MRSTO - %MRTCS -%SHASP = %SHASTO - %SHATCS -%FOLSP12 = %FLSTO12 - %FTCS12 -%FOLSP18 = %FLSTO18 - %FTCS18 -%FOLSP00 = %FLSTO00 - %FTCS00 -%FOLSP06 = %FLSTO06 - %FTCS06 -#%SACSP = %SACSTO - %SACTCS -%OROSP = %OROSTO - %OROTCS -%LOSSP = %LOSSTO - %LOSTCS -%NBBSP = %NBBSTO - %NBBTCS -%TULSP = %TULSTO - %TULTCS -%INDSP = %INDSTO - %INDTCS -%DELSP = %DELSTO - %DELTCS -%BDCSP = %BDCSTO - %BDCTCS - #IF %CAMSTO > %CAMTCS - %EBMSP = %EBMSTO - %EBMTCS - #ELSE - %EBMSP = " " - #ENDIF -# %MMMDD = MONOFYR(%BASDATE) * 100 + DAY(%BASDATE) -# #IF 0201 =< %MMMDD AND %MMMDD =< 0731 -# %PFSP = " N/A" -# %TMSP = " N/A" -# %SCSP = " N/A" -# %IBSP = " N/A" -# %FRISP = " N/A" -# %CAMSP = " N/A" -# %DONSP = " N/A" -# %NEXSP = " N/A" -# %NWMSP = " N/A" -# %PRSSP = " N/A" -# %BOCSP = " N/A" -# %STMSP = " N/A" -# #ELSE - %PFSP = %PFSTO - %PFTCS - %TMSP = %TMSTO - %TMTCS - %SCSP = %SCSTO - %SCTCS - %IBSP = %IBSTO - %IBTCS - %FRISP = %FRISTO - %FRITCS - %CAMSP = %CAMSTO - %CAMTCS - %DONSP = %DONSTO - %DONTCS - %NEXSP = %NEXSTO - %NEXTCS - %NWMSP = %NWMSTO - %NWMTCS - %PRSSP = %PRSSTO - %PRSTCS - %BOCSP = %BOCSTO - %BOCTCS - %STMSP = %STMSTO - %STMTCS -# - #IF %CAMSTO > %CAMTCS - %EBMSP = %EBMSTO - %EBMTCS - #ELSE - %EBMSP = " " - #ENDIF -# %MMMDD = MONOFYR(%BASDATE) * 100 + DAY(%BASDATE) -# #IF 0201 =< %MMMDD AND %MMMDD =< 0731 -# %PFSP = " N/A" -# %TMSP = " N/A" -# %SCSP = " N/A" -# %IBSP = " N/A" -# %FRISP = " N/A" -# %CAMSP = " N/A" -# %DONSP = " N/A" -# %NEXSP = " N/A" -# %NWMSP = " N/A" -# %PRSSP = " N/A" -# %BOCSP = " N/A" -# %STMSP = " N/A" -# #ELSE -# -# -# -# Basin summations of total above top of conservation to include -# only encroached projects. -# - #IF %ENSP =< 0 - %ENS = 0 - #ELSE - %ENS = %ENSP - #ENDIF - #IF %NHSP =< 0 - %NHS = 0 - #ELSE - %NHS = %NHSP - #ENDIF -# - #IF %BUSP =< 0 - %BCS = 0 - #ELSE - %BCS = %BUSP - #ENDIF -# - #IF %HDSP =< 0 - %HDS = 0 - #ELSE - %HDS = %HDSP - #ENDIF -# - #IF %COSP =< 0 - %COS = 0 - #ELSE - %COS = %COSP - #ENDIF -# - #IF %WSSP =< 0 - %WSS = 0 - #ELSE - %WSS = %WSSP - #ENDIF -# - #IF %FMSP =< 0 - %FMS = 0 - #ELSE - %FMS = %FMSP - #ENDIF -# - #IF %MRTSP =< 0 - %MRTS = 0 - #ELSE - %MRTS = %MRTSP - #ENDIF -# - #IF %BURSP =< 0 - %BNS = 0 - #ELSE - %BNS = %BURSP - #ENDIF -# - #IF %BARSP =< 0 - %BRS = 0 - #ELSE - %BRS = %BARSP - #ENDIF -# - #IF %OWNSP =< 0 - %OWS = 0 - #ELSE - %OWS = %OWNSP - #ENDIF -# - #IF %MARSP =< 0 - %MRS = 0 - #ELSE - %MRS = %MARSP - #ENDIF -# - #IF %SHASP =< 0 - %SHAS = 0 - #ELSE - %SHAS = %SHASP - #ENDIF -# - #IF %BBSP =< 0 - %BBTS = 0 - #ELSE - %BBTS = %BBSP - #ENDIF -# - #IF %FOLSP12 =< 0 - %FOLS12 = 0 - #ELSE - %FOLS12 = %FOLSP12 - #ENDIF - #IF %FOLSP18 =< 0 - %FOLS18 = 0 - #ELSE - %FOLS18 = %FOLSP18 - #ENDIF - #IF %FOLSP00 =< 0 - %FOLS00 = 0 - #ELSE - %FOLS00 = %FOLSP00 - #ENDIF - #IF %FOLSP06 =< 0 - %FOLS06 = 0 - #ELSE - %FOLS06 = %FOLSP06 - #ENDIF -# #IF %SACSP =< 0 -# %SACS = 0 -# #ELSE -# %SACS = %SACSP -# #ENDIF -## - #IF %OROSP =< 0 - %OROS = 0 - #ELSE - %OROS = %OROSP - #ENDIF -## - #IF %LOSSP =< 0 - %LOSS = 0 - #ELSE - %LOSS = %LOSSP - #ENDIF -## - #IF %NBBSP =< 0 - %NBBS = 0 - #ELSE - %NBBS = %NBBSP - #ENDIF -## - #IF %TULSP =< 0 - %TULS = 0 - #ELSE - %TULS = %TULSP - #ENDIF -# - #IF %INDSP =< 0 - %INDS = 0 - #ELSE - %INDS = %INDSP - #ENDIF -## - #IF %DELSP =< 0 - %DELS = 0 - #ELSE - %DELS = %DELSP - #ENDIF -## - #IF %BDCSP =< 0 - %BDCS = 0 - #ELSE - %BDCS = %BDCSP - #ENDIF -## - #IF %PFSP =< 0 - %PFS = 0 - #ELSE - %PFS = %PFSP - #ENDIF -# - #IF %TMSP =< 0 - %TMS = 0 - #ELSE - %TMS = %TMSP - #ENDIF -# - #IF %SCSP =< 0 - %SCS = 0 - #ELSE - %SCS = %SCSP - #ENDIF -# - #IF %IBSP =< 0 - %IBS = 0 - #ELSE - %IBS = %IBSP - #ENDIF -# - #IF %FRISP =< 0 - %FRIS = 0 - #ELSE - %FRIS = %FRISP - #ENDIF -## - #IF %CAMSP =< 0 - %CAMS = 0 - #ELSE - %CAMS = %CAMSP - #ENDIF -## - #IF %DONSP =< 0 - %DONS = 0 - #ELSE - %DONS = %DONSP - #ENDIF -## - #IF %NEXSP =< 0 - %NEXS = 0 - #ELSE - %NEXS = %NEXSP - #ENDIF -## - #IF %NWMSP =< 0 - %NWMS = 0 - #ELSE - %NWMS = %NWMSP - #ENDIF -## - #IF %PRSSP =< 0 - %PRSS = 0 - #ELSE - %PRSS = %PRSSP - #ENDIF -## - #IF %BOCSP =< 0 - %BOCS = 0 - #ELSE - %BOCS = %BOCSP - #ENDIF -## - #IF %STMSP =< 0 - %STMS = 0 - #ELSE - %STMS = %STMSP - #ENDIF -# -# Summation of volumes above the allowable. -# -# -%BB10 - DBLOC="Black Butte-Pool" DBPAR=Stor DBPTYP=Ave DBINT=~1Day DBDUR=1Decade DBVER=Calc-val -# DBLOC="Black Butte-Pool" DBPAR=Elev DBPTYP=Inst DBDUR=0 DBVER=Calc-val - PICTURE = "NNNNNNNNZ" - MISSTR = " -NR-" - UNDEF = " -NR-" - TIME = %BASDATE - DBTZ=PST8PDT - DBUNITS=ac-ft -%EN10 - DBLOC="Englebright Lake-Pool" -%NH10 - DBLOC="New Hogan-Pool" -%BU10 - DBLOC="Eastman Lake-Pool" -%HD10 - DBLOC="Hensley lake-Pool" -%PF10 - DBLOC="Pine Flat Lake-Pool" -%TM10 - DBLOC="Lake Kaweah-Pool" -%SC10 - DBLOC="Success Lake-Pool" -%IB10 - DBLOC="Lake Isabella-Pool" -%CO10 - DBLOC="Lake Mendocino-Pool" -%WS10 - DBLOC="Lake Sonoma-Pool" -%MRT10 - DBLOC="Martis Creek-Pool" -%FM10 - DBLOC="Farmington Dam-Pool" -%BN10 - DBLOC="Burns-Pool" -%BR10 - DBLOC="Bear-Pool" -%OW10 - DBLOC="Owens-Pool" -%MR10 - DBLOC="Mariposa-Pool" -%EPK10 - DBLOC="East Park" DBVER=Thumb-raw -%STG10 - DBLOC="Stony Gorge" -%CRT10 - DBLOC="Courtright" DBVER=Thumb-raw - -# A=KINGS B=COURTRIGHT F= -%WSH10 - DBLOC="Wishon" -# A=KINGS B=WISHON -%SHA10 - DBLOC="Shasta" DBVER=Raw-USBR-Combined -# FILE = /dat0/rtsc7db.dss TYPE=DSS -# A=SACRAMENTO B=SHASTA F= -%FOL10 - DBLOC="Folsom Lake" -# A=AMERICAN B=FOLSOM -#%SAC10 = %FOLSTO -# A=SAN JOAQUIN B=FRIANT -%ORO10 - DBLOC="Oroville Dam" DBVER=Calc-cdec -# A=FEATHER B=OROVILLE -%NBB10 - DBLOC="New Bullards Bar" DBVER=Calc-cdec -# A=NORTH YUBA B=NEW BULLARDS BAR -%IND10 - DBLOC="Indian Valley" DBVER=Calc-usgs -# A=NF CACHE CR B=INDIAN VALLEY -%UNV10 - DBLOC="Union Valley" DBVER=Calc-cdec -# A=AMERICAN B=UNION VALLEY -%FMD10 - DBLOC="French Meadows" DBVER=Calc-confidential -# A=AMERICAN B=FRENCH MEADOWS -%HHL10 - DBLOC="Hell Hole" -# A=AMERICAN B=HELL HOLE -%NWM10 - DBLOC="New Melones" DBVER=Raw-USBR-Combined -# A=STANISLAUS B=NEW MELONES -%BRD10 - DBLOC="Beardsley Lake" -# A=STANISLAUS B=BEARDSLEY -%DNL10 - DBLOC="Donnells" -# A=STANISLAUS B=DONNELLS -%TUL10 - DBLOC="Tulloch" -# A=STANISLAUS B=TULLOCH -%FRI10 - DBLOC="Friant Dam" -%MAM10 - DBLOC="Mammoth Pool" -# A=SAN JOAQUIN B=MAMMOTH POOL -%MTS10 - DBLOC="Friant Dam" DBPAR=Stor-Total Upstream -# A=SAN JOAQUIN B=FRIANT C=10R-TOT U\S -%CAM10 - DBLOC="Camanche" DBPAR=Stor DBVER=MANUAL -# A=MOKELUMNE B=CAMANCHE -%DON10 - DBLOC="Don Pedro" -# A=TUOLUMNE B=NEW DON PEDRO -%NEX10 - DBLOC="New Exchequer" -# A=MERCED B=NEW EXCHEQUER -%PRD10 - DBLOC="Pardee" -# A=MOKELUMNE B=PARDEE -%EBM10 = (%CAMSTO + %PRDSTO) -%SSP10 - DBLOC="Mokelumne R-Salt Springs" -# A=MOKELUMNE B=SALT SPRINGS -%LBR10 - DBLOC="Lower Bear" -# A=MOKELUMNE B=LOWER BEAR -%HTH10 - DBLOC="Hetch Hetchy" -# A=TUOLUMNE B=HETCH HETCHY -%CHV10 - DBLOC="Cherry Valley" -# A=TUOLUMNE B=CHERRY VALLEY -%LKL10 - DBLOC="Lake Eleanor" -# A=TUOLUMNE B=ELEANOR -%DEL10 - DBLOC="Del Valle" -# A=ALAMEDA CR B=DEL VALLE -%PRS10 - DBLOC="Prosser" -# A=PROSSER CR B=PROSSER CR -%BOC10 - DBLOC="Boca" -# A=LITTLE TRUCKEE B=BOCA -%STM10 - DBLOC="Stampede" -# A=LITTLE TRUCKEE B=STAMPEDE -%BDC10 - DBLOC="Big Dry Cr" -%LOS10 - DBLOC="Los Banos" - -%SHA10P=(%SHASTO/%SHA10)*100 - PICTURE = "NNNNNNNNZ" -%BB10P=(%BBSTO/%BB10)*100 -%ORO10P=(%OROSTO/%ORO10)*100 -%NBB10P=(%NBBSTO/%NBB10)*100 -%EN10P=(%ENSTO/%EN10)*100 -%IND10P=(%INDSTO/%IND10)*100 -%FOL10P=(%FOLSTO/%FOL10)*100 -%CAM10P=(%CAMSTO/%CAM10)*100 -%NH10P=(%NHSTO/%NH10)*100 -%FM10P=(%FMSTO/%FM10)*100 -%NWM10P=(%NWMSTO/%NWM10)*100 -%TUL10P=(%TULSTO/%TUL10)*100 -%DON10P=(%DONSTO/%DON10)*100 -%NEX10P=(%NEXSTO/%NEX10)*100 -%BN10P=(%BNSTO/%BN10)*100 -%BR10P=(%BRSTO/%BR10)*100 -%OW10P=(%OWSTO/(%OW10+0.001))*100 -%MR10P=(%MRSTO/(%MR10+0.001))*100 -%LOS10P=(%LOSSTO/%LOS10)*100 -%BU10P=(%BUSTO/%BU10)*100 -%HD10P=(%HDSTO/%HD10)*100 -%FRI10P=(%FRISTO/%FRI10)*100 -%BDC10P=(%BDCSTO/%BDC10)*100 - -%PF10P=(%PFSTO/%PF10)*100 -%TM10P=(%TMSTO/%TM10)*100 -%SC10P=(%SCSTO/%SC10)*100 -%IB10P=(%IBSTO/%IB10)*100 - -%MRT10P=(%MRTSTO/%MRT10)*100 -%PRS10P=(%PRSSTO/%PRS10)*100 -%BOC10P=(%BOCSTO/%BOC10)*100 -%STM10P=(%STMSTO/%STM10)*100 - -%CO10P=(%COSTO/%CO10)*100 -%WS10P=(%WSSTO/%WS10)*100 -%DEL10P=(%DELSTO/%DEL10)*100 - - - -%BBSA = %BBG - %BBSTO - PICTURE = "NNNNNNNNNZ" - MISSTR = " -NR-" - UNDEF = " -NR-" -%ENSA = %ENG - %ENSTO -%NHSA = %NHG - %NHSTO -%BUSA = %BUG - %BUSTO -%HDSA = %HDG - %HDSTO -%COSA = %COG - %COSTO -%WSSA = %WSG - %WSSTO -%FMSA = %FMG - %FMSTO -%MRTSA = %MRTG - %MRTSTO -%BURSA = %BNG - %BNSTO -%BARSA = %BRG - %BRSTO -%OWNSA = %OWG - %OWSTO -%MARSA = %MRG - %MRSTO -%SHASA = %SHAG - %SHASTO -%FOLSA = %FOLG - %FOLSTO - MISSTR = " -NF-" - UNDEF = " -NF-" -%FOLSA12 = %FOLG - %FLSTO12 -%FOLSA18 = %FOLG - %FLSTO18 -%FOLSA00 = %FOLG - %FLSTO00 -%FOLSA06 = %FOLG - %FLSTO06 -#%SACSA = %SACG - %SACSTO -%OROSA = %OROG - %OROSTO - MISSTR = " -NR-" - UNDEF = " -NR-" -%LOSSA = %LOSG - %LOSSTO -%NBBSA = %NBBG - %NBBSTO -%TULSA = %TULG - %TULSTO -%INDSA = %INDG - %INDSTO -%DELSA = %DELG - %DELSTO -%BDCSA = %BDCG - %BDCSTO -# #IF %CAMG > %CAMSTO -# %EBMSA = %EBMG - %EBMSTO -# #ELSE -# %EBMSA = " " -# #ENDIF -# %MMMDD = MONOFYR(%BASDATE) * 100 + DAY(%BASDATE) -# #IF 0201 =< %MMMDD AND %MMMDD =< 0731 -# %PFSA = " N/A" -# %TMSA = " N/A" -# %SCSA = " N/A" -# %IBSA = " N/A" -# %FRISA = " N/A" -# %CAMSA = " N/A" -# %DONSA = " N/A" -# %NEXSA = " N/A" -# %NWMSA = " N/A" -# %PRSSA = " N/A" -# %BOCSA = " N/A" -# %STMSA = " N/A" -# #ELSE - %PFSA = %PFG - %PFSTO - %TMSA = %TMG - %TMSTO - %SCSA = %SCG - %SCSTO - %IBSA = %IBG - %IBSTO - %FRISA = %FRIG - %FRISTO - %CAMSA = %CAMG - %CAMSTO - %DONSA = %DONG - %DONSTO - %NEXSA = %NEXG - %NEXSTO - %NWMSA = %NWMG - %NWMSTO - %PRSSA = %PRSG - %PRSSTO - %BOCSA = %BOCG - %BOCSTO - %STMSA = %STMG - %STMSTO -# -# #IF %CAMG > %CAMSTO -# %EBMSA = %EBMG - %EBMSTO -# #ELSE -# %EBMSA = " " -# #ENDIF -# %MMMDD = MONOFYR(%BASDATE) * 100 + DAY(%BASDATE) -# #IF 0201 =< %MMMDD AND %MMMDD =< 0731 -# %PFSA = " N/A" -# %TMSA = " N/A" -# %SCSA = " N/A" -# %IBSA = " N/A" -# %FRISA = " N/A" -# %CAMSA = " N/A" -# %DONSA = " N/A" -# %NEXSA = " N/A" -# %NWMSA = " N/A" -# %PRSSA = " N/A" -# %BOCSA = " N/A" -# %STMSA = " N/A" -# #ELSE -# -# -# -# Basin summations of total above top of conservation to include -# only encroached projects. -# - #IF %ENSA =< 0 - %ENA = 0 - #ELSE - %ENA = %ENSA - #ENDIF - #IF %NHSA =< 0 - %NHA = 0 - #ELSE - %NHA = %NHSA - #ENDIF -# - #IF %BUSA =< 0 - %BCA = 0 - #ELSE - %BCA = %BUSA - #ENDIF -# - #IF %HDSA =< 0 - %HDA = 0 - #ELSE - %HDA = %HDSA - #ENDIF -# - #IF %COSA =< 0 - %COA = 0 - #ELSE - %COA = %COSA - #ENDIF -# - #IF %WSSA =< 0 - %WSA = 0 - #ELSE - %WSA = %WSSA - #ENDIF -# - #IF %FMSA =< 0 - %FMA = 0 - #ELSE - %FMA = %FMSA - #ENDIF -# - #IF %MRTSA =< 0 - %MRTA = 0 - #ELSE - %MRTA = %MRTSA - #ENDIF -# - #IF %BURSA =< 0 - %BNA = 0 - #ELSE - %BNA = %BURSA - #ENDIF -# - #IF %BARSA =< 0 - %BRA = 0 - #ELSE - %BRA = %BARSA - #ENDIF -# - #IF %OWNSA =< 0 - %OWA = 0 - #ELSE - %OWA = %OWNSA - #ENDIF -# - #IF %MARSA =< 0 - %MRA = 0 - #ELSE - %MRA = %MARSA - #ENDIF -# - #IF %SHASA =< 0 - %SHAA = 0 - #ELSE - %SHAA = %SHASA - #ENDIF -# - #IF %BBSA =< 0 - %BBTA = 0 - #ELSE - %BBTA = %BBSA - #ENDIF -# - #IF %FOLSA =< 0 - %FOLA = 0 - #ELSE - %FOLA = %FOLSA - #ENDIF - #IF %FOLSA12 =< 0 - %FOLA12 = 0 - #ELSE - %FOLA12 = %FOLSA12 - #ENDIF - #IF %FOLSA18 =< 0 - %FOLA18 = 0 - #ELSE - %FOLA18 = %FOLSA18 - #ENDIF - #IF %FOLSA00 =< 0 - %FOLA00 = 0 - #ELSE - %FOLA00 = %FOLSA00 - #ENDIF - #IF %FOLSA06 =< 0 - %FOLA06 = 0 - #ELSE - %FOLA06 = %FOLSA06 - #ENDIF -# #IF %SACSA =< 0 -# %SACA = 0 -# #ELSE -# %SACA = %SACSA -# #ENDIF -## - #IF %OROSA =< 0 - %OROA = 0 - #ELSE - %OROA = %OROSA - #ENDIF -## - #IF %LOSSA =< 0 - %LOSA = 0 - #ELSE - %LOSA = %LOSSA - #ENDIF -## - #IF %NBBSA =< 0 - %NBBA = 0 - #ELSE - %NBBA = %NBBSA - #ENDIF -## - #IF %TULSA =< 0 - %TULA = 0 - #ELSE - %TULA = %TULSA - #ENDIF -# - #IF %INDSA =< 0 - %INDA = 0 - #ELSE - %INDA = %INDSA - #ENDIF -## - #IF %DELSA =< 0 - %DELA = 0 - #ELSE - %DELA = %DELSA - #ENDIF -## - #IF %BDCSA =< 0 - %BDCA = 0 - #ELSE - %BDCA = %BDCSA - #ENDIF -## - #IF %PFSA =< 0 - %PFA = 0 - #ELSE - %PFA = %PFSA - #ENDIF -# - #IF %TMSA =< 0 - %TMA = 0 - #ELSE - %TMA = %TMSA - #ENDIF -# - #IF %SCSA =< 0 - %SCA = 0 - #ELSE - %SCA = %SCSA - #ENDIF -# - #IF %IBSA =< 0 - %IBA = 0 - #ELSE - %IBA = %IBSA - #ENDIF -# - #IF %FRISA =< 0 - %FRIA = 0 - #ELSE - %FRIA = %FRISA - #ENDIF -## - #IF %CAMSA =< 0 - %CAMA = 0 - #ELSE - %CAMA = %CAMSA - #ENDIF -## - #IF %DONSA =< 0 - %DONA = 0 - #ELSE - %DONA = %DONSA - #ENDIF -## - #IF %NEXSA =< 0 - %NEXA = 0 - #ELSE - %NEXA = %NEXSA - #ENDIF -## - #IF %NWMSA =< 0 - %NWMA = 0 - #ELSE - %NWMA = %NWMSA - #ENDIF -## - #IF %PRSSA =< 0 - %PRSA = 0 - #ELSE - %PRSA = %PRSSA - #ENDIF -## - #IF %BOCSA =< 0 - %BOCA = 0 - #ELSE - %BOCA = %BOCSA - #ENDIF -## - #IF %STMSA =< 0 - %STMA = 0 - #ELSE - %STMA = %STMSA - #ENDIF -%BBO - DBLOC="Black Butte" DBPTYP=Ave DBPAR=Flow-Res Out DBVER=Calc-val DBINT=~1Day DBDUR=1Day - PICTURE = "NNNNNNNNNZ" - MISSTR = " -NR-" - UNDEF = " -NR-" - TIME = %BASDATE - DBUNITS=cfs - DBTZ=PST8PDT -%NHO - DBLOC="New Hogan" -%BUO - DBLOC="Eastman Lake" -%HDO - DBLOC="Hensley Lake" -%PFO - DBLOC="Pine Flat Lake" -%TMO - DBLOC="Lake Kaweah" -%SCO - DBLOC="Success Lake" -%IBO - DBLOC="Lake Isabella" -%COO - DBLOC="Lake Mendocino" -%WSO - DBLOC="Lake Sonoma" -%MRTO - DBLOC="Martis Creek" -%BNO - DBLOC="Burns" -%BRO - DBLOC="Bear" -%OWO - DBLOC="Owens" -%MRO - DBLOC="Mariposa" -%FMO - DBLOC="Farmington Dam" DBVER=Calc-RCF+FRMQ -%ENO - DBLOC="Englebright Lake" DBVER=Calc-thumb -%SHAO - DBLOC="Shasta" DBVER=Calc-usbr -%FOLO - DBLOC="Folsom Lake" - MISSTR = " -NR-" - UNDEF = " -NR-" -%NWMO - DBLOC="New Melones" -%TULO - DBLOC="Tulloch" -%FRIO - DBLOC="Friant Dam" DBVER=Calc-usbr -%OROO - DBLOC="Oroville Dam" DBVER=MANUAL - MISSTR = " -NR-" - UNDEF = " -NR-" -%INDO - DBLOC="Indian Valley" -%LOSO - DBLOC="Los Banos" -%DELO - DBLOC="Del Valle" -%DONO - DBLOC="Don Pedro" -%CAMO - DBLOC="Camanche" -%NEXO - DBLOC="New Exchequer" -%PRSO - DBLOC="Prosser" -%BOCO - DBLOC="Boca" -%STMO - DBLOC="Stampede" -%BDCO - DBLOC="Big Dry Cr" -%NBBO - DBLOC="New Bullards Bar" DBVER=Calc-cdec -%FOLO12 - DBLOC="Folsom Lake" DBPAR="Flow-Reservoir Outflow" DBPTYP=Inst DBINT=1Hour DBDUR=0 DBVER=CDEC-confidential-raw - MISSTR = " -NR-" - UNDEF = " -NR-" - DBTZ=UTC - TIME=%T12 -%FOLO18 - TIME=%T18 -%FOLO00 - TIME=%T00 -%FOLO06 - TIME=%T06 - -%BBI - DBLOC="Black Butte" DBPTYP=Ave DBPAR=Flow-Res In DBVER=Calc-val DBINT=~1Day DBDUR=1Day DBVER=Calc-val - PICTURE = "NNNNNNNNNZ" - MISSTR = " -NR-" - UNDEF = " -NR-" - TIME = %BASDATE - DBUNITS=cfs - DBTZ=PST8PDT -%NHI - DBLOC="New Hogan" -%BUI - DBLOC="Eastman Lake" -%HDI - DBLOC="Hensley Lake" -%PFI - DBLOC="Pine Flat Lake" -%TMI - DBLOC="Lake Kaweah" -%SCI - DBLOC="Success Lake" -%IBI - DBLOC="Lake Isabella" -%COI - DBLOC="Lake Mendocino" -%WSI - DBLOC="Lake Sonoma" -%MRTI - DBLOC="Martis Creek" -%BNI - DBLOC="Burns" -%BRI - DBLOC="Bear" -%OWI - DBLOC="Owens" -%MRI - DBLOC="Mariposa" -%FMI - DBLOC="Farmington Dam" DBVER=Calc-RCF+FRMQ -%ENI - DBLOC="Englebright Lake" DBVER=Calc-val -%SHAI - DBLOC="Shasta" DBVER=Raw-USBR-Combined -%FOLI - DBLOC="Folsom Lake" - MISSTR = " -NR-" - UNDEF = " -NR-" -%NWMI - DBLOC="New Melones" -%TULI - DBLOC="Tulloch" -%FRII - DBLOC="Friant Dam" -%OROI - DBLOC="Oroville Dam" DBVER=MANUAL - MISSTR = " -NR-" - UNDEF = " -NR-" -%INDI - DBLOC="Indian Valley" -%LOSI - DBLOC="Los Banos" -%DELI - DBLOC="Del Valle" -%DONI - DBLOC="Don Pedro" -%CAMI - DBLOC="Camanche" -%NEXI - DBLOC="New Exchequer" -%PRSI - DBLOC="Prosser" -%BOCI - DBLOC="Boca" -%STMI - DBLOC="Stampede" -%BDCI - DBLOC="Big Dry Cr" -%NBBI - DBLOC="New Bullards Bar" DBVER=Calc-cdec -%FOLI12 - DBLOC="Folsom Lake" DBVER=Raw-USBR-Combined DBINT=1Hour DBPTYP=Ave DBDUR=1Hour - DBTZ=UTC - TIME=%T12 -%FOLI18 - TIME=%T18 -%FOLI00 - TIME=%T00 -%FOLI06 - TIME=%T06 -# A=SAN JOAQUIN B=FRIANT F= -# A=NORTH YUBA B=NEW BULLARDS BAR -%UTDATE=%BASDATE -%T1 = %UTDATE-9Y - PICTURE = ZDAAAZZZY -%T2 = %UTDATE-8Y -%T3 = %UTDATE-7Y -%T4 = %UTDATE-6Y -%T5 = %UTDATE-5Y -%T6 = %UTDATE-4Y -%T7 = %UTDATE-3Y -%T8 = %UTDATE-2Y -%T9 = %UTDATE-1Y - - - -%EOSTO - PICTURE = " NNNNNNZ" - MISSTR = " -NR-" - UNDEF = " " - TIME = %UTDATE -# FILE = /shared/rtsc7db.dss TYPE=DSS - DBTZ=MST7MDT - DBLOC=Echo DBPTYP=Inst DBPAR=Stor DBINT=~1Day DBDUR=0 DBVER="Raw-USBRSLC" - DBUNITS=ac-ft - A=WEBER B=ECHO C=STOR-RES EOP E=1DAY F= -%EO1 - TIME=%T1 -%EO2 - TIME=%T2 -%EO3 - TIME=%T3 -%EO4 - TIME=%T4 -%EO5 - TIME=%T6 -%EO6 - TIME=%T6 -%EO7 - TIME=%T7 -%EO8 - TIME=%T8 -%EO9 - TIME=%T9 -%EO10=AVERAGE(IGNORE,%EOSTO,%EO1,%EO2,%EO3,%EO4,%EO5,%EO6,%EO7,%EO8,%EO9) - -%RKSTO - DBLOC=Rockport DBVER="Rev-USBRSLC" - TIME = %UTDATE -%RK1 - TIME=%T1 -%RK2 - TIME=%T2 -%RK3 - TIME=%T3 -%RK4 - TIME=%T4 -%RK5 - TIME=%T6 -%RK6 - TIME=%T6 -%RK7 - TIME=%T7 -%RK8 - TIME=%T8 -%RK9 - TIME=%T9 -%RK10=AVERAGE(IGNORE,%RKSTO,%RK1,%RK2,%RK3,%RK4,%RK5,%RK6,%RK7,%RK8,%RK9) -%ERSTO - DBLoc="EchoRockport" - TIME = %UTDATE -%ER1 - TIME=%T1 -%ER2 - TIME=%T2 -%ER3 - TIME=%T3 -%ER4 - TIME=%T4 -%ER5 - TIME=%T6 -%ER6 - TIME=%T6 -%ER7 - TIME=%T7 -%ER8 - TIME=%T8 -%ER9 - TIME=%T9 -%ER10=AVERAGE(IGNORE,%ERSTO,%ER1,%ER2,%ER3,%ER4,%ER5,%ER6,%ER7,%ER8,%ER9) -%LCSTO - DBLOC="Lost Cr" - A=LOST CR B=LOST CR - TIME = %UTDATE -%LC1 - TIME=%T1 -%LC2 - TIME=%T2 -%LC3 - TIME=%T3 -%LC4 - TIME=%T4 -%LC5 - TIME=%T6 -%LC6 - TIME=%T6 -%LC7 - TIME=%T7 -%LC8 - TIME=%T8 -%LC9 - TIME=%T9 -%LC10=AVERAGE(IGNORE,%LCSTO,%LC1,%LC2,%LC3,%LC4,%LC5,%LC6,%LC7,%LC8,%LC9) -%ECSTO - DBLOC="East Canyon" - A=EAST CANYON CR B=EAST CANYON - TIME = %UTDATE -%EC1 - TIME=%T1 -%EC2 - TIME=%T2 -%EC3 - TIME=%T3 -%EC4 - TIME=%T4 -%EC5 - TIME=%T6 -%EC6 - TIME=%T6 -%EC7 - TIME=%T7 -%EC8 - TIME=%T8 -%EC9 - TIME=%T9 -%EC10=AVERAGE(IGNORE,%ECSTO,%EC1,%EC2,%EC3,%EC4,%EC5,%EC6,%EC7,%EC8,%EC9) -%PVSTO - DBLOC=Pineview DBVER="Raw-USBRSLC" - A=OGDEN B=PINEVIEW - TIME = %UTDATE -%PV1 - TIME=%T1 -%PV2 - TIME=%T2 -%PV3 - TIME=%T3 -%PV4 - TIME=%T4 -%PV5 - TIME=%T6 -%PV6 - TIME=%T6 -%PV7 - TIME=%T7 -%PV8 - TIME=%T8 -%PV9 - TIME=%T9 -%PV10=AVERAGE(IGNORE,%PVSTO,%PV1,%PV2,%PV3,%PV4,%PV5,%PV6,%PV7,%PV8,%PV9) -%STSTO - DBLOC=Starvation DBVER="Rev-USBRSLC" - A=STRAWBERRY B=STARVATION - TIME = %UTDATE -%ST1 - TIME=%T1 -%ST2 - TIME=%T2 -%ST3 - TIME=%T3 -%ST4 - TIME=%T4 -%ST5 - TIME=%T6 -%ST6 - TIME=%T6 -%ST7 - TIME=%T7 -%ST8 - TIME=%T8 -%ST9 - TIME=%T9 -%ST10=AVERAGE(IGNORE,%STSTO,%ST1,%ST2,%ST3,%ST4,%ST5,%ST6,%ST7,%ST8,%ST9) -%VLSTO - DBLOC=Vallecito - A=LOS PINOS B=VALLECITO - TIME = %UTDATE -%VL1 - TIME=%T1 -%VL2 - TIME=%T2 -%VL3 - TIME=%T3 -%VL4 - TIME=%T4 -%VL5 - TIME=%T6 -%VL6 - TIME=%T6 -%VL7 - TIME=%T7 -%VL8 - TIME=%T8 -%VL9 - TIME=%T9 -%VL10=AVERAGE(IGNORE,%VLSTO,%VL1,%VL2,%VL3,%VL4,%VL5,%VL6,%VL7,%VL8,%VL9) -%LMSTO - DBLOC=Lemon DBVER="Rev-USBRSLC" - A=FLORIDA B=LEMON - TIME = %UTDATE -%LM1 - TIME=%T1 -%LM2 - TIME=%T2 -%LM3 - TIME=%T3 -%LM4 - TIME=%T4 -%LM5 - TIME=%T6 -%LM6 - TIME=%T6 -%LM7 - TIME=%T7 -%LM8 - TIME=%T8 -%LM9 - TIME=%T9 -%LM10=AVERAGE(IGNORE,%LMSTO,%LM1,%LM2,%LM3,%LM4,%LM5,%LM6,%LM7,%LM8,%LM9) -%BMSTO - DBLOC=Blue Mesa - A=GUNNISON B=BLUE MESA - TIME = %UTDATE -%BM1 - TIME=%T1 -%BM2 - TIME=%T2 -%BM3 - TIME=%T3 -%BM4 - TIME=%T4 -%BM5 - TIME=%T6 -%BM6 - TIME=%T6 -%BM7 - TIME=%T7 -%BM8 - TIME=%T8 -%BM9 - TIME=%T9 -%BM10=AVERAGE(IGNORE,%BMSTO,%BM1,%BM2,%BM3,%BM4,%BM5,%BM6,%BM7,%BM8,%BM9) -%PNSTO - DBLOC=Paonia - A=MUDDY CR B=PAONIA - TIME = %UTDATE -%PN1 - TIME=%T1 -%PN2 - TIME=%T2 -%PN3 - TIME=%T3 -%PN4 - TIME=%T4 -%PN5 - TIME=%T6 -%PN6 - TIME=%T6 -%PN7 - TIME=%T7 -%PN8 - TIME=%T8 -%PN9 - TIME=%T9 -%PN10=AVERAGE(IGNORE,%PNSTO,%PN1,%PN2,%PN3,%PN4,%PN5,%PN6,%PN7,%PN8,%PN9) -%RFSTO - DBLOC=Red Fleet - A=BRUSH CR B=RED FLEET - TIME = %UTDATE -%RF1 - TIME=%T1 -%RF2 - TIME=%T2 -%RF3 - TIME=%T3 -%RF4 - TIME=%T4 -%RF5 - TIME=%T6 -%RF6 - TIME=%T6 -%RF7 - TIME=%T7 -%RF8 - TIME=%T8 -%RF9 - TIME=%T9 -%RF10=AVERAGE(IGNORE,%RFSTO,%RF1,%RF2,%RF3,%RF4,%RF5,%RF6,%RF7,%RF8,%RF9) -%RGSTO - DBLOC=Ridgway - A=UNCOMPAHGRE B=RIDGWAY - TIME = %UTDATE -%RG1 - TIME=%T1 -%RG2 - TIME=%T2 -%RG3 - TIME=%T3 -%RG4 - TIME=%T4 -%RG5 - TIME=%T6 -%RG6 - TIME=%T6 -%RG7 - TIME=%T7 -%RG8 - TIME=%T8 -%RG9 - TIME=%T9 -%RG10=AVERAGE(IGNORE,%RGSTO,%RG1,%RG2,%RG3,%RG4,%RG5,%RG6,%RG7,%RG8,%RG9) -%JRSTO - DBLOC=Jordanelle - A=PROVO B=JORDANELLE - TIME = %UTDATE -%JR1 - TIME=%T1 -%JR2 - TIME=%T2 -%JR3 - TIME=%T3 -%JR4 - TIME=%T4 -%JR5 - TIME=%T6 -%JR6 - TIME=%T6 -%JR7 - TIME=%T7 -%JR8 - TIME=%T8 -%JR9 - TIME=%T9 -%JR10=AVERAGE(IGNORE,%JRSTO,%JR1,%JR2,%JR3,%JR4,%JR5,%JR6,%JR7,%JR8,%JR9) -%LDSTO - DBLOC=Little Dell DBVER="Raw-USBRSLC;MANUAL" - A=DELL CR B=LITTLE DELL - TIME = %UTDATE -%LD1 - TIME=%T1 -%LD2 - TIME=%T2 -%LD3 - TIME=%T3 -%LD4 - TIME=%T4 -%LD5 - TIME=%T6 -%LD6 - TIME=%T6 -%LD7 - TIME=%T7 -%LD8 - TIME=%T8 -%LD9 - TIME=%T9 -%LD10=AVERAGE(IGNORE,%LDSTO,%LD1,%LD2,%LD3,%LD4,%LD5,%LD6,%LD7,%LD8,%LD9) -%MDSTO - DBLOC=Mountain Dell - A=PARLEYS CR B=MOUNTAIN DELL - TIME = %UTDATE -%MD1 - TIME=%T1 -%MD2 - TIME=%T2 -%MD3 - TIME=%T3 -%MD4 - TIME=%T4 -%MD5 - TIME=%T6 -%MD6 - TIME=%T6 -%MD7 - TIME=%T7 -%MD8 - TIME=%T8 -%MD9 - TIME=%T9 -%MD10=AVERAGE(IGNORE,%MDSTO,%MD1,%MD2,%MD3,%MD4,%MD5,%MD6,%MD7,%MD8,%MD9) -# UT/CO %Full -%EO10P=(%EOSTO/%EO10)*100 - PICTURE=" NNNZ" -%PV10P=(%PVSTO/%PV10)*100 -%EC10P=(%ECSTO/%EC10)*100 -%LC10P=(%LCSTO/%LC10)*100 -%RK10P=(%RKSTO/%RK10)*100 -%ER10P=(%ERSTO/%ER10)*100 -%LD10P=(%LDSTO/%LD10)*100 -%MD10P=(%MDSTO/%MD10)*100 -%JR10P=(%JRSTO/%JR10)*100 -%RF10P=(%RFSTO/%RF10)*100 -%ST10P=(%STSTO/%ST10)*100 -%PN10P=(%PNSTO/%PN10)*100 -%BM10P=(%BMSTO/%BM10)*100 -%RG10P=(%RGSTO/%RG10)*100 -%LM10P=(%LMSTO/%LM10)*100 -%VL10P=(%VLSTO/%VL10)*100 - -%EOP = %EOSTO / %EOG * 100.0 - PICTURE=" NNZ" - %RKP = %RKSTO / %RKG * 100.0 - %ERP = %ERSTO / %ERG * 100.0 - %LCP = %LCSTO / %LCG * 100.0 - %ECP = %ECSTO / %ECG * 100.0 - %PVP = %PVSTO / %PVG * 100.0 - %STP = %STSTO / %STVG * 100.0 - %VLP = %VLSTO / %VLG * 100.0 - %LMP = %LMSTO / %LMG * 100.0 - %BMP = %BMSTO / %BMG * 100.0 - %PNP = %PNSTO / %PNG * 100.0 - %RFP = %RFSTO / %RFG * 100.0 - %RGP = %RGSTO / %RGG * 100.0 - %JRP = %JRSTO / %JRG * 100.0 - %LDP = %LDSTO / %LDG * 100.0 - %MDP = %MDSTO / %MDG * 100.0 -# %MPP = %MPSTO / %MPG * 100.0 -# %CRP = %CRSTO / %CRG * 100.0 -%EOTCS - DBPAR="Stor-Top Con" DBVER="Rev-USBRSLC" - PICTURE = " NNNNNZ" - MISSTR = " -NR-" - UNDEF = " -NR-" - TIME = %BASDATE - DBLOC=Echo -%RKTCS - DBLOC=Rockport -%ERTCS - DBLOC=EchoRockport DBVER="Rev-USBRSLC;Adjusted" -%LCTCS - DBLOC="Lost Cr" DBVER="Rev-USBRSLC" -%ECTCS - DBLOC="East Canyon" -%PVTCS - DBLOC="Pineview" -%STTCS - DBLOC="Starvation" -%VLTCS - DBLOC=Vallecito -%LMTCS - DBLOC=Lemon -%BMTCS - DBLOC="Blue Mesa" -%PNTCS - DBLOC=Paonia -%RFTCS - DBLOC="Red Fleet" -%RGTCS - DBLOC=Ridgway -%JRTCS - DBLOC=Jordanelle -%LDTCS - DBLOC="Little Dell" DBVER="Calc-USBRSLC;MANUAL" -%MDTCS - DBLOC="Mountain Dell" - - %EOSP = %EOSTO - %EOTCS - PICTURE = " NNNNNNZ" - MISSTR = " -NR-" - UNDEF = " -NR-" - %RKSP = %RKSTO - %RKTCS - %ERSP = %ERSTO - %ERTCS - %LCSP = %LCSTO - %LCTCS - %ECSP = %ECSTO - %ECTCS - %PVSP = %PVSTO - %PVTCS - %STSP = %STSTO - %STTCS - %VLSP = %VLSTO - %VLTCS - %LMSP = %LMSTO - %LMTCS - %BMSP = %BMSTO - %BMTCS - %PNSP = %PNSTO - %PNTCS - %RFSP = %RFSTO - %RFTCS - %RGSP = %RGSTO - %RGTCS - %JRSP = %JRSTO - %JRTCS - %LDSP = %LDSTO - %LDTCS - %MDSP = %MDSTO - %MDTCS -%DUMS = 0.0 -%EOS = MAX(MISS,%DUMS,%EOSP) -%RKS = MAX(MISS,%DUMS,%RKSP) -%ERS = MAX(MISS,%DUMS,%ERSP) -%LCS = MAX(MISS,%DUMS,%LCSP) -%ECS = MAX(MISS,%DUMS,%ECSP) -%PVS = MAX(MISS,%DUMS,%PVSP) -%STS = MAX(MISS,%DUMS,%STSP) -%VLS = MAX(MISS,%DUMS,%VLSP) -%LMS = MAX(MISS,%DUMS,%LMSP) -%BMS = MAX(MISS,%DUMS,%BMSP) -%PNS = MAX(MISS,%DUMS,%PNSP) -%RFS = MAX(MISS,%DUMS,%RFSP) -%RGS = MAX(MISS,%DUMS,%RGSP) -%JRS = MAX(MISS,%DUMS,%JRSP) -%LDS = MAX(MISS,%DUMS,%LDSP) -%MDS = MAX(MISS,%DUMS,%MDSP) - -#SPACE AVAILABLE - %EOSA = %EOG - %EOSTO - PICTURE = NNNNNNZ - MISSTR = " -NR-" - UNDEF = " -NR-" - %RKSA = %RKG - %RKSTO - %ERSA = %ERG - %ERSTO - %LCSA = %LCG - %LCSTO - %ECSA = %ECG - %ECSTO - %PVSA = %PVG - %PVSTO - %STSA = %STVG - %STSTO - %VLSA = %VLG - %VLSTO - %LMSA = %LMG - %LMSTO - %BMSA = %BMG - %BMSTO - %PNSA = %PNG - %PNSTO - %RFSA = %RFG - %RFSTO - %RGSA = %RGG - %RGSTO - %JRSA = %JRG - %JRSTO - %LDSA = %LDG - %LDSTO - %MDSA = %MDG - %MDSTO -%EOSA = MAX(MISS,%DUMS,%EOSA) -%RKSA = MAX(MISS,%DUMS,%RKSA) -%LCSA = MAX(MISS,%DUMS,%LCSA) -%ECSA = MAX(MISS,%DUMS,%ECSA) -%PVSA = MAX(MISS,%DUMS,%PVSA) -%STSA = MAX(MISS,%DUMS,%STSA) -%VLSA = MAX(MISS,%DUMS,%VLSA) -%LMSA = MAX(MISS,%DUMS,%LMSA) -%BMSA = MAX(MISS,%DUMS,%BMSA) -%PNSA = MAX(MISS,%DUMS,%PNSA) -%RFSA = MAX(MISS,%DUMS,%RFSA) -%RGSA = MAX(MISS,%DUMS,%RGSA) -%JRSA = MAX(MISS,%DUMS,%JRSA) -%LDSA = MAX(MISS,%DUMS,%LDSA) -%MDSA = MAX(MISS,%DUMS,%MDSA) - - -%DUMF=0.0 PICTURE=" NNZ" -#IF %EOSTO > %EOTCS AND %EOG > %EOTCS - %EOF = ( (%EOSTO-%EOTCS) / (%EOG-%EOTCS) ) * 100.0 - -#ELSE - %EOF = 0 -#ENDIF -#IF %RKSTO > %RKTCS AND %RKG > %RKTCS - %RKF = ( (%RKSTO-%RKTCS) / (%RKG-%RKTCS) ) * 100.0 -#ELSE - %RKF = 0 -#ENDIF -#IF %ERSTO > %ERTCS AND %ERG > %ERTCS - %ERF = ( (%ERSTO-%ERTCS) / (%ERG-%ERTCS) ) * 100.0 -#ELSE - %ERF = 0 -#ENDIF -#IF %LCSTO > %LCTCS AND %LCG > %LCTCS - %LCF = ( (%LCSTO-%LCTCS) / (%LCG-%LCTCS) ) * 100.0 -#ELSE - %LCF = 0 -#ENDIF -#IF %ECSTO > %ECTCS AND %ECG > %ECTCS - %ECF = ( (%ECSTO-%ECTCS) / (%ECG-%ECTCS) ) * 100.0 -#ELSE - %ECF = 0 -#ENDIF -#IF %PVSTO > %PVTCS AND %PVG > %PVTCS - %PVF = ( (%PVSTO-%PVTCS) / (%PVG-%PVTCS) ) * 100.0 -#ELSE - %PVF = 0 -#ENDIF -#IF %STSTO > %STTCS AND %STG > %STTCS - %STF = ( (%STSTO-%STTCS) / (%STG-%STTCS) ) * 100.0 -#ELSE - %STF = 0 -#ENDIF -#IF %VLSTO > %VLTCS AND %VLG > %VLTCS - %VLF = ( (%VLSTO-%VLTCS) / (%VLG-%VLTCS) ) * 100.0 -#ELSE - %VLF = 0 -#ENDIF -#IF %LMSTO > %LMTCS AND %LMG > %LMTCS - %LMF = ( (%LMSTO-%LMTCS) / (%LMG-%LMTCS) ) * 100.0 -#ELSE - %LMF = 0 -#ENDIF -#IF %BMSTO > %BMTCS AND %BMG > %BMTCS - %BMF = ( (%BMSTO-%BMTCS) / (%BMG-%BMTCS) ) * 100.0 -#ELSE - %BMF = 0 -#ENDIF -#IF %PNSTO > %PNTCS AND %PNG > %PNTCS - %PNVF = ( (%PNSTO-%PNTCS) / (%PNG-%PNTCS) ) * 100.0 -#ELSE - %PNVF = 0 -#ENDIF -#IF %RFSTO > %RFTCS AND %RFG > %RFTCS - %RFF = ( (%RFSTO-%RFTCS) / (%RFG-%RFTCS) ) * 100.0 -#ELSE - %RFF = 0 -#ENDIF -#IF %RGSTO > %RGTCS AND %RGG > %RGTCS - %RGF = ( (%RGSTO-%RGTCS) / (%RGG-%RGTCS) ) * 100.0 -#ELSE - %RGF = 0 -#IF %JRSTO > %JRTCS AND %JRG > %JRTCS - %JRF = ( (%JRSTO-%JRTCS) / (%JRG-%JRTCS) ) * 100.0 -#ELSE - %JRF = 0 -#ENDIF -#IF %LDSTO > %LDTCS AND %LDG > %LDTCS - %LDF = ( (%LDSTO-%LDTCS) / (%LDG-%LDTCS) ) * 100.0 -#ELSE - %LDF = 0 -#ENDIF -#IF %MDSTO > %MDTCS AND %MDG > %MDTCS - %MDF = ( (%MDSTO-%MDTCS) / (%MDG-%MDTCS) ) * 100.0 -#ELSE - %MDF = 0 -#ENDIF - -# UT/GRB inflows -%RKPOUT - DBLOC=Rockport - DBPTYP=Ave - DBPAR="Flow-Res Out" - DBDUR=1DAY - DBVER="Raw-USBRSLC" - DBUNITS=cfs - TIME=%BASDATE PICTURE=NNNNNNZ MISSTR=" -NR-" -%ECHOUT - DBLOC=Echo -%LSCOUT - DBLOC="Lost Cr" -%ESTOUT - DBLOC="East Canyon" -%PNVOUT - DBLOC=Pineview -%LDLOUT - DBLOC="Little Dell" DBVER="Raw-USBRSLC;MANUAL" -%MNDOUT - DBLOC="Mountain Dell" -%JRDOUT - DBLOC="Jordanelle" DBVER="Raw-USBRSLC" -%RDFOUT - DBLOC="Red Fleet" -%STROUT - DBLOC=Starvation -%PAOOUT - DBLOC=Paonia -%BLMOUT - DBLOC="Blue Mesa" -%RDGOUT - DBLOC=Ridgway -%LEMOUT - DBLOC=Lemon -%VALOUT - DBLOC=Vallecito -# Define all INFLOWS -%RKPIN - DBLOC=Rockport - DBPAR="Flow-Res In" - TIME=%BASDATE PICTURE=NNNNNNZ MISSTR=" -NR-" -%ECHIN - DBLOC=Echo -%LSCIN - DBLOC="Lost Cr" -%ESTIN - DBLOC="East Canyon" -%PNVIN - DBLOC=Pineview -%LDLIN - DBLOC="Little Dell" DBVER="Raw-USBRSLC;MANUAL" -%MNDIN - DBLOC="Mountain Dell" -%JRDIN - DBLOC=Jordanelle DBVER="Raw-USBRSLC" -%RDFIN - DBLOC="Red Fleet" -%STRIN - DBLOC=Starvation -%PAOIN - DBLOC=Paonia -%BLMIN - DBLOC="Blue Mesa" -%RDGIN - DBLOC=Ridgway -%LEMIN - DBLOC=Lemon -%VALIN - DBLOC=Vallecito -#ENDDEF - diff --git a/tests/swt/testfiles/i-ucb b/tests/swt/testfiles/i-ucb deleted file mode 100644 index 5152f1e..0000000 --- a/tests/swt/testfiles/i-ucb +++ /dev/null @@ -1,871 +0,0 @@ -#FORM - Corps of Engineers Reservoir Report for Upper Colorado Basin Reservoirs - Data Ending 2400 hours %BASDATE - Report Generated %CTM - - Pool Storage - Elev Storage Change Outflow Inflow - (ft-msl) (acft) (acft) (cfs) (cfs) - - Paonia: %PAOELEV %PAOSTOR %PAOSDEL %PAOOUT %PAOIN - - Blue Mesa: %BLMELEV %BLMSTOR %BLMSDEL %BLMOUT %BLMIN - - Vallecito: %VALELEV %VALSTOR %VALSDEL %VALOUT %VALIN - - Lemon: %LEMELEV %LEMSTOR %LEMSDEL %LEMOUT %LEMIN - - Ridgway: %RDGELEV %RDGSTOR %RDGSDEL %RDGOUT %RDGIN - - Starvation: %STRELEV %STRSTOR %STRSDEL %STROUT %STRIN - - Red Fleet: %RDFELEV %RDFSTOR %RDFSDEL %RDFOUT %RDFIN - _______________________________________________________________________________ - Miscellaneous Flows %FDATE - Daily Daily Daily - Average(cfs) Max(cfs) Min(cfs) - Paonia: - Muddy Creek near Paonia %MAQR %MAQX %MAQN - N Fork Gunnison near Somerset %NGQR %NGQX %NGQN - - Blue Mesa: - Taylor below Taylor Park Res. %TYQR %TYQX %TYQN - East at Almont %EAQR %EAQX %EAQN - Taylor at Almont %TAQR %TAQX %TAQN - Gunnison near Gunnison %GUQR %GUQX %GUQN - Gunnison at Delta %CCQR %CCQX %CCQN - Colorado near Stateline %STQR %STQX %STQN - Gunnison below Gunnison Tunnel %GBQR %GBQX %GBQN - Gunnison near Grand Junction %GJQR %GJQX %GJQN - - Vallecito: - Vallecito near Bayfield %VCQR %VCQX %VCQN - Los Pinos near Ignacio %PIQR %PIQX %PIQN - - Lemon: - - Ridgway: - Uncompahgre near Ridgway %UAQR %UAQX %UAQN - Uncompahgre below Ridgway %UBQR %UBQX %UBQN - Uncompahgre at Coloma %UCQR %UCQX %UCQN - Uncompahgre near Delta %URQR %URQX %URQN - Dallas Creek near Ridgeway %DAQR %DAQX %DAQN - - Starvation: - Strawberry at Pinnacles %SPQR %SPQX %SPQN - Currant Cr near Fruitland %CFQR %CFQX %CFQN - Strawberry near Duchesne %SDQR %SDQX %SDQN - Duchesne near Tabiona %DTQR %DTQX %DTQN - Rock Cr near Mountain Home %RMQR %RMQX %RMQN - -Red Fleet: - Big Brush Cr above Red Fleet %BRQR %BRQX %BRQN - Green River near Jensen %GRQR %GRQX %GRQN - - *** ALL DATA PROVIDED BY USBR SALT LAKE CITY & USGS *** - - SNOTEL Data for Sites above Section 7 Reservoirs - Data Ending 2400 hours %BASDATE - Report Generated %CTM - - 24 Hour Change - Accumulated Snow Ending %FDATE - (weqv-inch) date @ time (weqv-inch) - Paonia: - North Lost Trial %SMH %DSMH %SMHI - McClure Pass %BCD %DBCD %BCDI - Park Reservoir %PPP %DPPP %PPPI - Overland Reservoir %OVR %DOVR %OVRI - - Blue Mesa: - Butte %CC1 %DCC1 %CC1I - Park Cone %CC2 %DCC2 %CC2I - Porphyry Creek %PRC %DPRC %PRCI - Slumgullion %SLG %DSLG %SLGI - Columbine %CLB %DCLB %CLBI - Mesa Lake %MSL %DMSL %MSLI - - Vallecito: - Vallecito %PCS %DPCS %PCSI - Beartown %BRT %DBRT %BRTI - Chamita %CHA %DCHA %CHAI - Hopewell %HPW %DHPW %HPWI - Middle Cr %MDL %DMDL %MDLI - Upper Rio Grande %URG %DURG %URGI - - Lemon: - Cascade %BLP %DBLP %BLPI - Mineral Creek %BLT %DBLT %BLTI - Molas Lake %DBP %DDBP %DBPI - Red Mountain Pass %RMP %DRMP %RMPI - Spud Mountain %SPU %DSPU %SPUI - Cumbres Trestle %CUM %DCUM %CUMI - Lone Cone %LNC %DLNC %LNCI - Wolf Creek Summit %WCS %DWCS %WCSI - - Ridgway: - Idarando %IDA %DIDA %IDAI - Columbine Pass %COL %DCOL %COLI - El Diente Peak %EDP %DEDP %EDPI - Lizzard Head %LZH %DLZH %LZHI - Scotch Creek %STC %DSTC %STCI - - Starvation: - Strawberry Divide %STD %DSTD %STDI - Daniels-Strawberry %DAN %DDAN %DANI - Currant Creek %CUC %DCUC %CUCI - Indian Canyon %IND %DIND %INDI - - Red Fleet: - Kings Cabin %CAB %DCAB %CABI - Mosby Mountain %MOS %DMOS %MOSI - Hayden Fork %HFK %DHFK %HFKI - Monte Cristo %MCR %DMCR %MCRI - Trout Creek %TRC %DTRC %TRCI - - *** ALL DATA PROVIDED BY NRCS *** - -#ENDFORM -# Set TABS to 18,35,50,65 -#DEF -# !ECHO -VALUE=EXACT -%CTM PICTURE=DDBAAABYYYYB@BZZZT -%BASDATE=SETTIME(%BASDATE,TIME,2400) PICTURE=DDBAAABYYYY -%FDATE=%BASDATE PICTURE=ZM/ZD/ZY -# Define all ELEVATIONS -%PAOELEV - DB=%DB DBTZ=MST7MDT - DBLOC="Paonia" DBPAR=Elev DBPTYP=Inst DBINT=~1Day DBDUR=0 DBVER="Raw-USBRSLC" - TIME=%BASDATE PICTURE=NNNZ.ZZ MISSTR=" -NR-" UNDEF=" -NR-" - DBUNITS=ft -#A=MUDDY CR B=PAONIA C=ELEV E=1DAY F= -%BLMELEV - DBLOC="Blue Mesa" -#A=GUNNISON B=BLUE MESA -%VALELEV - DBLOC="Vallecito" -#A=LOS PINOS B=VALLECITO -%LEMELEV - DBLOC="Lemon" -#A=FLORIDA B=LEMON -%RDGELEV - DBLOC="Ridgway" -#A=UNCOMPAHGRE B=RIDGWAY -%RDFELEV - DBLOC="Red Fleet" -#A=BRUSH CR B=RED FLEET -%STRELEV - DBLOC="Starvation" -#A=STRAWBERRY B=STARVATION -## Define all STORAGES -%PAOSTRS - DBLOC="Paonia" DBPAR=Stor DBVER="Rev-USBRSLC" - STIME=%BASDATE-35D ETIME=%BASDATE PICTURE=NNNNNNZ MISSTR=" -NR-" - DBUNITS=ac-ft -#A=MUDDY CR B=PAONIA C=STOR-RES EOP E=1DAY F= -%BLMSTRS - DBLOC="Blue Mesa" -#A=GUNNISON B=BLUE MESA -%VALSTRS - DBLOC="Vallecito" -#A=LOS PINOS B=VALLECITO -%LEMSTRS - DBLOC="Lemon" DBVER="Rev-USBRSLC" -#A=FLORIDA B=LEMON -%RDGSTRS - DBLOC="Ridgway" -#A=UNCOMPAHGRE B=RIDGWAY -%RDFSTRS - DBLOC="Red Fleet" -#A=BRUSH CR B=RED FLEET -%STRSTRS - DBLOC="Starvation" -#A=STRAWBERRY B=STARVATION -## -%PAOSTOR=%PAOSTRS(END) -%BLMSTOR=%BLMSTRS(END) -%VALSTOR=%VALSTRS(END) -%LEMSTOR=%LEMSTRS(END) -%RDGSTOR=%RDGSTRS(END) -%RDFSTOR=%RDFSTRS(END) -%STRSTOR=%STRSTRS(END) -## Define all STORAGE CHANGES -%PAOSDEL=%PAOSTOR-%PAOSTRS(%BASDATE-1D) -%BLMSDEL=%BLMSTOR-%BLMSTRS(%BASDATE-1D) -%VALSDEL=%VALSTOR-%VALSTRS(%BASDATE-1D) -%LEMSDEL=%LEMSTOR-%LEMSTRS(%BASDATE-1D) -%RDGSDEL=%RDGSTOR-%RDGSTRS(%BASDATE-1D) -%RDFSDEL=%RDFSTOR-%RDFSTRS(%BASDATE-1D) -%STRSDEL=%STRSTOR-%STRSTRS(%BASDATE-1D) -## Define all OUTFLOWS -%PAOOUT - TIME=%BASDATE PICTURE=NNNNNNZ MISSTR=" -NR-" - DBLOC="Paonia" DBPAR=Flow-Res Out DBPTYP=Ave DBINT=~1Day DBDUR=1Day DBVER="Raw-USBRSLC" - DBUNITS=cfs -#FILE=/dat0/rtsc7db.dss TYPE=DSS -#A=MUDDY CR B=PAONIA C=FLOW-RES OUT E=1DAY F= -%BLMOUT - DBLOC="Blue Mesa" -#A=GUNNISON B=BLUE MESA -%VALOUT - DBLOC="Vallecito" -#A=LOS PINOS B=VALLECITO -%LEMOUT - DBLOC="Lemon" -#A=FLORIDA B=LEMON -%RDGOUT - DBLOC="Ridgway" -#A=UNCOMPAHGRE B=RIDGWAY -%RDFOUT - DBLOC="Red Fleet" -#A=BRUSH CR B=RED FLEET -%STROUT - DBLOC="Starvation" -#A=STRAWBERRY B=STARVATION -## Define all INFLOWS -%PAOIN - DBLOC="Paonia" DBPAR=Flow-Res In - TIME=%BASDATE PICTURE=NNNNNNZ MISSTR=" -NR-" -#FILE=/dat0/rtsc7db.dss TYPE=DSS -#A=MUDDY CR B=PAONIA C=FLOW-RES IN E=1DAY F= -%BLMIN - DBLOC="Blue Mesa" -#A=GUNNISON B=BLUE MESA -%VALIN - DBLOC="Vallecito" -#A=LOS PINOS B=VALLECITO -%LEMIN - DBLOC="Lemon" -#A=FLORIDA B=LEMON -%RDGIN - DBLOC="Ridgway" -#A=UNCOMPAHGRE B=RIDGWAY -%RDFIN - DBLOC="Red Fleet" -#A=BRUSH CR B=RED FLEET -%STRIN - DBLOC="Starvation" -#A=STRAWBERRY B=STARVATION -## -## -## Define Daily Flow -## -## -## -%MAQR -DATE=%BASDATE+7H VALUE=NOMISS - DBLOC="Muddy Cr-abv Paonia Res" DBPAR=Flow DBVER=Calc-usgs -#FILE=/dat0/rtsc7db.dss TYPE=DSS -#A=MUDDY CR B=NR PAONIA C=FLOW E=1DAY F= -PICTURE=NNNNNNNZ MISSTR=" -NR-" -%NGQR - DBLOC="NF Gunnison-nr Somerset" -#A=NF GUNNISON B=NR SOMERSET -%TYQR - DBLOC="Taylor Park" -#A=TAYLOR B=BLW TAYLOR PARK -%EAQR - DBLOC="East R-Almont" -#A=EAST B=AT ALMONT -%TAQR - DBLOC="Taylor R-Almont" -#A=TAYLOR B=AT ALMONT -%GUQR - DBLOC="Gunnison R-nr Gunnison" -#A=GUNNISON B=NR GUNNISON -%CCQR - DBLOC="Gunnison R-at Delta" -#A=GUNNISON B=AT DELTA -%STQR - DBLOC="Colorado R-nr CO-UT State Line" -#A=COLORADO B=NR STATELINE -%GBQR - DBLOC="Gunnison R-blw Gunnison Tunnel" -#A=GUNNISON B=BLW GUNNISON TUN -%GJQR - DBLOC="Gunnison R-nr Grand Junction" -#A=GUNNISON B=NR GRAND JCT -%UAQR - DBLOC="Uncompahgre R-Nr Ridgway" -#A=UNCOMPAHGRE B=NR RIDGEWAY -%UBQR - DBLOC="Ridgway" -#A=UNCOMPAHGRE B=BLW RIDGWAY -%UCQR - DBLOC="Uncompahgre R-at Colona" -#A=UNCOMPAHGRE B=AT COLOMA -%URQR - DBLOC="Uncompahgre R-at Delta" -#A=UNCOMPAHGRE B=NR DELTA -%DAQR - DBLOC="Dallas Cr-nr Ridgway" -#A=DALLAS CR B=NR RIDGEWAY -%VCQR - DBLOC="Vallecito-nr Bayfield" -%PIQR - DBLOC="Los Pinos R-nr Ignacio" -%BRQR - DBLOC="Big Brush Cr-abv Red Fleet Res" -%GRQR - DBLOC="Green R-nr Jensen" -%SPQR - DBLOC="Strawberry R-Pinnacles nr Fruitland" -%CFQR - DBLOC="Currant Cr-nr Fruitland" -%SDQR - DBLOC="Strawberry R-nr Duchesne" -%DTQR - DBLOC="Duchesne R-nr Tabiona" -%RMQR - DBLOC="Rock Cr-nr Mountain Home" -## -## -## -## Define Daily Maximum Flow -## -## -## -%MAQX -DATE=%BASDATE+7H VALUE=NOMISS - DBLOC="Muddy Cr-abv Paonia Res" DBPTYP=Max -#FILE=/dat0/rtsc7db.dss TYPE=DSS -#A=MUDDY CR B=NR PAONIA C=FLOW MAX E=1DAY F= -PICTURE=NNNNNNNZ MISSTR=" -NR-" -#%MDQX -#A=MUDDY CR B=NR SOMERSET -%NGQX - DBLOC="NF Gunnison-nr Somerset" -#A=NF GUNNISON B=NR SOMERSET -%TYQX - DBLOC="Taylor Park" -#A=TAYLOR B=BLW TAYLOR PARK -%EAQX - DBLOC="East R-Almont" -#A=EAST B=AT ALMONT -%TAQX - DBLOC="Taylor R-Almont" -#A=TAYLOR B=AT ALMONT -%GUQX - DBLOC="Gunnison R-nr Gunnison" -#A=GUNNISON B=NR GUNNISON -%CCQX - DBLOC="Gunnison R-at Delta" -#A=GUNNISON B=AT DELTA -%STQX - DBLOC="Colorado R-nr CO-UT State Line" -#A=COLORADO B=NR STATELINE -%GBQX - DBLOC="Gunnison R-blw Gunnison Tunnel" -#A=GUNNISON B=BLW GUNNISON TUN -%GJQX - DBLOC="Gunnison R-nr Grand Junction" -#A=GUNNISON B=NR GRAND JCT -#%GDQX -#A=GUNNISON B=TUN DIV S CANAL -#%LPQX -#A=LOS PINOS B=NR BAYFIELD -#%FAQX -#A=FLORIDA B=ABV LEMON -#%FBQX -#A=FLORIDA B=BLW LEMON -%UAQX - DBLOC="Uncompahgre R-Nr Ridgway" -#A=UNCOMPAHGRE B=NR RIDGEWAY -%UBQX - DBLOC="Ridgway" -#A=UNCOMPAHGRE B=BLW RIDGWAY -%UCQX - DBLOC="Uncompahgre R-at Colona" -#A=UNCOMPAHGRE B=AT COLOMA -%URQX - DBLOC="Uncompahgre R-at Delta" -#A=UNCOMPAHGRE B=NR DELTA -#%UNQX -#A=UNCOMPAHGRE B=NR OLATHE -%DAQX - DBLOC="Dallas Cr-nr Ridgway" -#A=DALLAS CR B=NR RIDGEWAY -%VCQX - DBLOC="Vallecito-nr Bayfield" -%PIQX - DBLOC="Los Pinos R-nr Ignacio" -%BRQX - DBLOC="Big Brush Cr-abv Red Fleet Res" -%GRQX - DBLOC="Green R-nr Jensen" -%SPQX - DBLOC="Strawberry R-Pinnacles nr Fruitland" -%CFQX - DBLOC="Currant Cr-nr Fruitland" -%SDQX - DBLOC="Strawberry R-nr Duchesne" -%DTQX - DBLOC="Duchesne R-nr Tabiona" -%RMQX - DBLOC="Rock Cr-nr Mountain Home" - -## -## -## Define Daily Minimum Flow -## -## -## -## -%MAQN -DATE=%BASDATE+7H VALUE=NOMISS -#FILE=/dat0/rtsc7db.dss TYPE=DSS - DBLOC="Muddy Cr-abv Paonia Res" DBPTYP=Min -#A=MUDDY CR B=NR PAONIA C=FLOW MIN E=1DAY F= -PICTURE=NNNNNNNZ MISSTR=" -NR-" -#%MDQN -#A=MUDDY CR B=NR SOMERSET -%NGQN - DBLOC="NF Gunnison-nr Somerset" -#A=NF GUNNISON B=NR SOMERSET -%TYQN - DBLOC="Taylor Park" -#A=TAYLOR B=BLW TAYLOR PARK -%EAQN - DBLOC="East R-Almont" -#A=EAST B=AT ALMONT -%TAQN - DBLOC="Taylor R-Almont" -#A=TAYLOR B=AT ALMONT -%GUQN - DBLOC="Gunnison R-nr Gunnison" -#A=GUNNISON B=NR GUNNISON -%CCQN - DBLOC="Gunnison R-at Delta" -#A=GUNNISON B=AT DELTA -%STQN - DBLOC="Colorado R-nr CO-UT State Line" -#A=COLORADO B=NR STATELINE -%GBQN - DBLOC="Gunnison R-blw Gunnison Tunnel" -#A=GUNNISON B=BLW GUNNISON TUN -%GJQN - DBLOC="Gunnison R-nr Grand Junction" -#A=GUNNISON B=NR GRAND JCT -#%GDQN -#A=GUNNISON B=TUN DIV S CANAL -#%LPQN -#A=LOS PINOS B=NR BAYFIELD -#%FAQN -#A=FLORIDA B=ABV LEMON -#%FBQN -#A=FLORIDA B=BLW LEMON -%UAQN - DBLOC="Uncompahgre R-Nr Ridgway" -#A=UNCOMPAHGRE B=NR RIDGEWAY -%UBQN - DBLOC="Ridgway" -#A=UNCOMPAHGRE B=BLW RIDGWAY -%UCQN - DBLOC="Uncompahgre R-at Colona" -#A=UNCOMPAHGRE B=AT COLOMA -%URQN - DBLOC="Uncompahgre R-at Delta" -#A=UNCOMPAHGRE B=NR DELTA -#%UNQN -#A=UNCOMPAHGRE B=NR OLATHE -%DAQN - DBLOC="Dallas Cr-nr Ridgway" -#A=DALLAS CR B=NR RIDGEWAY -%VCQN - DBLOC="Vallecito-nr Bayfield" -%PIQN - DBLOC="Los Pinos R-nr Ignacio" -%BRQN - DBLOC="Big Brush Cr-abv Red Fleet Res" -%GRQN - DBLOC="Green R-nr Jensen" -%SPQN - DBLOC="Strawberry R-Pinnacles nr Fruitland" -%CFQN - DBLOC="Currant Cr-nr Fruitland" -%SDQN - DBLOC="Strawberry R-nr Duchesne" -%DTQN - DBLOC="Duchesne R-nr Tabiona" -%RMQN - DBLOC="Rock Cr-nr Mountain Home" - -## -## -## -## -## -## Define SNOTEL WEQV @ or before 0700 -# -%SMH -TIME=%BASDATE VALUE=NOMISS PICTURE=NNNNNZ.Z MISSTR=" -NR-" -DBLOC="North Lost Trail" DBPAR=Depth-SWE DBPTYP=Inst DBINT=1Hour DBDUR=0 DBVER="NRCS-raw" - DBUNITS=in -#FILE=/dat0/slcdcol.dss TYPE=DSS -#A=COLORADO B=NORTH LOST TRAIL C=SNOW-WEQV E=IR-MONTH F= -%BCD -DBLOC="Mc Clure Pass" -#A=GUNNISON B=MCCLURE -%CC1 -DBLOC="Butte Snow Gage" -#A=GUNNISON B=BUTTE -%CC2 -DBLOC="Park Cone" -#A=GUNNISON B=PARK CONE -%PCS -DBLOC="Vallecito" -#A=LOS PINOS B=VALLECITO -%BLP -DBLOC="Cascade #2" -#A=ANIMAS B=CASCADE -%BLT -DBLOC="Mineral Cr" -#A=ANIMAS B=MINERAL CR -%DBP -DBLOC="Molas Lake" -#A=ANIMAS B=MOLAS LAKE -%PPP -DBLOC="Park Reservoir" -#A=GUNNISON B=PARK -%PRC -DBLOC="Porphyry Cr" -#A=GUNNISON B=PORPHYRY CR -%SLG -DBLOC="Slumgullion" -#A=GUNNISON B=SLUMGULLION -%BRT -DBLOC="Beartown" -#A=RIO GRANDE B=BEARTOWN -%RMP -DBLOC="Red MountainPass" -#A=ANIMAS B=RED MTN PASS -%SPU -DBLOC="Spud Mountain" -#A=ANIMAS B=SPUD MTN -%IDA -DBLOC="Idarado" -#A=GUNNISON B=IDARANDO -%COL -DBLOC="Columbine Pass" -#A=GUNNISON B=COLUMBINE -%STD -DBLOC="StrawberryDivide" -#A=UINTAH B=STRAWBERRY DIV -%DAN -DBLOC="Daniels-Strawberry" -#A=UINTAH B=DANIELS-STRWBERY -%CUC -DBLOC="Currant Cr" -#A=UINTAH B=CURRANT CR -%IND -DBLOC="Indian Canyon" -#A=UINTAH B=INDIAN CANYON -%OVR -DBLOC="Overland Res" -#A=GUNNISON B=OVERLAND -%CAB -DBLOC="Kings Cabin" -#A=UINTAH B=KINGS CABIN -%MOS -DBLOC="Mosby Mountain" -#A=UINTAH B=MOSBY MTN -%CLB -DBLOC="Columbine" -#A=GUNNISON B=COLUMBINE -%MSL -DBLOC="Mesa Lake" -#A=GUNNISON B=MESA LAKE -%CHA -DBLOC="Chamita" -#A=SAN JUAN B=CHAMITA -%HPW -DBLOC="Hopewell" -#A=RIO CHAMA B=HOPEWELL -%MDL -DBLOC="Middle Cr" -#A=RIO GRANDE B=MIDDLE DR -%URG -DBLOC="Upper Rio Grande" -#A=RIO GRANDE B=UPPER RIO GRANDE -%CUM -DBLOC="Cumbres Trestle" -#A=SAN JUAN B=CUMBRES TRESTLE -%LNC -DBLOC="Lone Cone" -#A=SAN MIGUEL B=LONE CONE -%WCS -DBLOC="Wolf Cr Summit" -#A=SAN JUAN B=WOLF CR SUMMIT -%EDP -DBLOC="El Diente Peak" -#A=DOLORES B=EL DIENTE PEAK -%LZH -DBLOC="Lizard Head" -#A=DOLORES B=LIZZARD HEAD -%STC -DBLOC="Scotch Cr" -#A=DOLORES B=SCOTCH CR -%HFK -DBLOC="Hayden Fork" -#A=BEAR B=HAYDEN FORK -%MCR -DBLOC="Monte Cristo" -#A=BEAR B=MONTE CRISTO -%TRC -DBLOC="Trout Cr" -#A=GREEN B=TROUT CR -# -## -# -%DMOS=DATATIME(%MOS) PICTURE=ZDAAAZZZYB@BZZ:ZT -%DOVR=DATATIME(%OVR) -%DSMH=DATATIME(%SMH) -%DBCD=DATATIME(%BCD) -%DCC1=DATATIME(%CC1) -%DCC2=DATATIME(%CC2) -%DPCS=DATATIME(%PCS) -%DBLP=DATATIME(%BLP) -%DDBP=DATATIME(%DBP) -%DBLT=DATATIME(%BLT) -%DPPP=DATATIME(%PPP) -%DPRC=DATATIME(%PRC) -%DSLG=DATATIME(%SLG) -%DBRT=DATATIME(%BRT) -%DRMP=DATATIME(%RMP) -%DSPU=DATATIME(%SPU) -%DIDA=DATATIME(%IDA) -%DCOL=DATATIME(%COL) -%DSTD=DATATIME(%STD) -%DDAN=DATATIME(%DAN) -%DCUC=DATATIME(%CUC) -%DIND=DATATIME(%IND) -%DCAB=DATATIME(%CAB) -%DCLB=DATATIME(%CLB) -%DMSL=DATATIME(%MSL) -%DCHA=DATATIME(%CHA) -%DHPW=DATATIME(%HPW) -%DMDL=DATATIME(%MDL) -%DURG=DATATIME(%URG) -%DCUM=DATATIME(%CUM) -%DLNC=DATATIME(%LNC) -%DWCS=DATATIME(%WCS) -%DEDP=DATATIME(%EDP) -%DLZH=DATATIME(%LZH) -%DSTC=DATATIME(%STC) -%DHFK=DATATIME(%HFK) -%DMCR=DATATIME(%MCR) -%DTRC=DATATIME(%TRC) -# -## Define SNOTEL INCREMENTAL WEQV -# -%SMHSWES -DBLOC="North Lost Trail" DBPAR="Depth-SWE" DBVER="NRCS-raw" -STIME=%BASDATE-7D ETIME=%BASDATE PICTURE=NNNNZ.Z MISSTR=" -NR-" -DBUNITS=in -#FILE=/dat0/slcdcol.dss TYPE=DSS -#A=COLORADO B=NORTH LOST TRAIL C=SNOW-WEQV INC E=1DAY F= -%BCDSWES -DBLOC="Mc Clure Pass" -#A=GUNNISON B=MCCLURE -%CC1SWES -DBLOC="Butte Snow Gage" -#A=GUNNISON B=BUTTE -%CC2SWES -DBLOC="Park Cone" -#A=GUNNISON B=PARK CONE -%PCSSWES -DBLOC="Vallecito" -#A=LOS PINOS B=VALLECITO -%BLPSWES -DBLOC="Cascade #2" -#A=ANIMAS B=CASCADE -%BLTSWES -DBLOC="Mineral Cr" -#A=ANIMAS B=MINERAL CR -%DBPSWES -DBLOC="Molas Lake" -#A=ANIMAS B=MOLAS LAKE -%PPPSWES -DBLOC="Park Reservoir" -#A=GUNNISON B=PARK -%PRCSWES -DBLOC="Porphyry Cr" -#A=GUNNISON B=PORPHYRY CR -%SLGSWES -DBLOC="Slumgullion" -#A=GUNNISON B=SLUMGULLION -%BRTSWES -DBLOC="Beartown" -#A=RIO GRANDE B=BEARTOWN -%RMPSWES -DBLOC="Red MountainPass" -#A=ANIMAS B=RED MTN PASS -%SPUSWES -DBLOC="Spud Mountain" -#A=ANIMAS B=SPUD MTN -%IDASWES -DBLOC="Idarado" -#A=GUNNISON B=IDARANDO -%COLSWES -DBLOC="Columbine Pass" -#A=GUNNISON B=COLUMBINE -%STDSWES -DBLOC="StrawberryDivide" -#A=UINTAH B=STRAWBERRY DIV -%DANSWES -DBLOC="Daniels-Strawberry" -#A=UINTAH B=DANIELS-STRWBERY -%CUCSWES -DBLOC="Currant Cr" -#A=UINTAH B=CURRANT CR -%INDSWES -DBLOC="Indian Canyon" -#A=UINTAH B=INDIAN CANYON -%OVRSWES -DBLOC="Overland Res" -#A=GUNNISON B=OVERLAND -%CABSWES -DBLOC="Kings Cabin" -#A=UINTAH B=KINGS CABIN -%MOSSWES -DBLOC="Mosby Mountain" -#A=UINTAH B=MOSBY MTN -%CLBSWES -DBLOC="Columbine" -#A=GUNNISON B=COLUMBINE -%MSLSWES -DBLOC="Mesa Lake" -#A=GUNNISON B=MESA LAKE -%CHASWES -DBLOC="Chamita" -#A=SAN JUAN B=CHAMITA -%HPWSWES -DBLOC="Hopewell" -#A=RIO CHAMA B=HOPEWELL -%MDLSWES -DBLOC="Middle Cr" -#A=RIO GRANDE B=MIDDLE DR -%URGSWES -DBLOC="Upper Rio Grande" -#A=RIO GRANDE B=UPPER RIO GRANDE -%CUMSWES -DBLOC="Cumbres Trestle" -#A=SAN JUAN B=CUMBRES TRESTLE -%LNCSWES -DBLOC="Lone Cone" -#A=SAN MIGUEL B=LONE CONE -%WCSSWES -DBLOC="Wolf Cr Summit" -#A=SAN JUAN B=WOLF CR SUMMIT -%EDPSWES -DBLOC="El Diente Peak" -#A=DOLORES B=EL DIENTE PEAK -%LZHSWES -DBLOC="Lizard Head" -#A=DOLORES B=LIZZARD HEAD -%STCSWES -DBLOC="Scotch Cr" -#A=DOLORES B=SCOTCH CR -%HFKSWES -DBLOC="Hayden Fork" -#A=BEAR B=HAYDEN FORK -%MCRSWES -DBLOC="Monte Cristo" -#A=BEAR B=MONTE CRISTO -%TRCSWES -DBLOC="Trout Cr" -#A=GREEN B=TROUT CR -# -#Define end value -%SMHSWEE = %SMHSWES(END) -UNDEF=" -NR-" PICTURE=NNNNZ.Z MISSTR=" -NR-" -%BCDSWEE = %BCDSWES(END) -%CC1SWEE = %CC1SWES(END) -%CC2SWEE = %CC2SWES(END) -%PCSSWEE = %PCSSWES(END) -%BLPSWEE = %BLPSWES(END) -%BLTSWEE = %BLTSWES(END) -%DBPSWEE = %DBPSWES(END) -%PPPSWEE = %PPPSWES(END) -%PRCSWEE = %PRCSWES(END) -%SLGSWEE = %SLGSWES(END) -%BRTSWEE = %BRTSWES(END) -%RMPSWEE = %RMPSWES(END) -%SPUSWEE = %SPUSWES(END) -%IDASWEE = %IDASWES(END) -%COLSWEE = %COLSWES(END) -%STDSWEE = %STDSWES(END) -%DANSWEE = %DANSWES(END) -%CUCSWEE = %CUCSWES(END) -%INDSWEE = %INDSWES(END) -%OVRSWEE = %OVRSWES(END) -%CABSWEE = %CABSWES(END) -%MOSSWEE = %MOSSWES(END) -%CLBSWEE = %CLBSWES(END) -%MSLSWEE = %MSLSWES(END) -%CHASWEE = %CHASWES(END) -%HPWSWEE = %HPWSWES(END) -%MDLSWEE = %MDLSWES(END) -%URGSWEE = %URGSWES(END) -%CUMSWEE = %CUMSWES(END) -%LNCSWEE = %LNCSWES(END) -%WCSSWEE = %WCSSWES(END) -%EDPSWEE = %EDPSWES(END) -%LZHSWEE = %LZHSWES(END) -%STCSWEE = %STCSWES(END) -%HFKSWEE = %HFKSWES(END) -%MCRSWEE = %MCRSWES(END) -%TRCSWEE = %TRCSWES(END) -# -#Calculate 24 Hour Change -%SMHI = %SMHSWEE - %SMHSWES(%BASDATE-1D) -UNDEF=" -NR-" PICTURE=NNNNZ.Z MISSTR=" -NR-" -%BCDI = %BCDSWEE - %BCDSWES(%BASDATE-1D) -%CC1I = %CC1SWEE - %CC1SWES(%BASDATE-1D) -%CC2I = %CC2SWEE - %CC2SWES(%BASDATE-1D) -%PCSI = %PCSSWEE - %PCSSWES(%BASDATE-1D) -%BLPI = %BLPSWEE - %BLPSWES(%BASDATE-1D) -%BLTI = %BLTSWEE - %BLTSWES(%BASDATE-1D) -%DBPI = %DBPSWEE - %DBPSWES(%BASDATE-1D) -%PPPI = %PPPSWEE - %PPPSWES(%BASDATE-1D) -%PRCI = %PRCSWEE - %PRCSWES(%BASDATE-1D) -%SLGI = %SLGSWEE - %SLGSWES(%BASDATE-1D) -%BRTI = %BRTSWEE - %BRTSWES(%BASDATE-1D) -%RMPI = %RMPSWEE - %RMPSWES(%BASDATE-1D) -%SPUI = %SPUSWEE - %SPUSWES(%BASDATE-1D) -%IDAI = %IDASWEE - %IDASWES(%BASDATE-1D) -%COLI = %COLSWEE - %COLSWES(%BASDATE-1D) -%STDI = %STDSWEE - %STDSWES(%BASDATE-1D) -%DANI = %DANSWEE - %DANSWES(%BASDATE-1D) -%CUCI = %CUCSWEE - %CUCSWES(%BASDATE-1D) -%INDI = %INDSWEE - %INDSWES(%BASDATE-1D) -%OVRI = %OVRSWEE - %OVRSWES(%BASDATE-1D) -%CABI = %CABSWEE - %CABSWES(%BASDATE-1D) -%MOSI = %MOSSWEE - %MOSSWES(%BASDATE-1D) -%CLBI = %CLBSWEE - %CLBSWES(%BASDATE-1D) -%MSLI = %MSLSWEE - %MSLSWES(%BASDATE-1D) -%CHAI = %CHASWEE - %CHASWES(%BASDATE-1D) -%HPWI = %HPWSWEE - %HPWSWES(%BASDATE-1D) -%MDLI = %MDLSWEE - %MDLSWES(%BASDATE-1D) -%URGI = %URGSWEE - %URGSWES(%BASDATE-1D) -%CUMI = %CUMSWEE - %CUMSWES(%BASDATE-1D) -%LNCI = %LNCSWEE - %LNCSWES(%BASDATE-1D) -%WCSI = %WCSSWEE - %WCSSWES(%BASDATE-1D) -%EDPI = %EDPSWEE - %EDPSWES(%BASDATE-1D) -%LZHI = %LZHSWEE - %LZHSWES(%BASDATE-1D) -%STCI = %STCSWEE - %STCSWES(%BASDATE-1D) -%HFKI = %HFKSWEE - %HFKSWES(%BASDATE-1D) -%MCRI = %MCRSWEE - %MCRSWES(%BASDATE-1D) -%TRCI = %TRCSWEE - %TRCSWES(%BASDATE-1D) -# -## Define DAILY INCREMENTAL PRECIP -## %BLMPPT -## TIME=%BASDATE PICTURE=NNNNZ.ZZ MISSTR=" -NR-" -## FILE=/dat0/rtsc7db.dss TYPE=DSS -## A=GUNNISON B=BLUE MESA C=PRECIP-INC E=1DAY F= -## %VALPPT -## A=LOS PINOS B=VALLECITO -## %PAOPPT -## A=MUDDY CR B=PAONIA -#ENDDEF diff --git a/tests/swt/testfiles/test.frm b/tests/swt/testfiles/test.frm new file mode 100644 index 0000000..8a1f126 --- /dev/null +++ b/tests/swt/testfiles/test.frm @@ -0,0 +1,127 @@ +#FORM +loc Elev 8am +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations +%proj %elevations + + +#ENDFORM + +#DEF + +PROJECTS = [ +"ALTU", +"ARBU", +"ARCA", +"BIGH", +"BIRC", +"BROK", +"CANT", +"CHEN", +"COPA", +"COUN", +"DENI", +"ELDR", +"ELKC", +"EUFA", +"FALL", +"FCOB", +"FGIB", +"FOSS", +"FSUP", +"GSAL", +"HEYB", +"HUDS", +"HUGO", +"HULA", +"JOHN", +"KAWL", +"KEMP", +"KEYS", +"MARI", +"MCGE", +"MERE", +"OOLO", +"PATM", +"PENS", +"PINE", +"SARD", +"SKIA", +"TENK", +"THUN", +"TOMS", +"TORO", +"WAUR", +"WIST" +] +BASDATE.value = BASDATE.value.replace(hour=8,minute=0,second=0,microsecond=0) +BASDATE.picture = "%Y-%m-%d" +CUR_YEAR = BASDATE.value.year +CUR_MONTH = BASDATE.value.month +CUR_DAY = BASDATE.value.day + +BASDATE_Elev_Pool_Stor = BASDATE.value.replace(hour=8,minute=0,second=0,microsecond=0) + +# elevations = Value() +elevations = Value() +for project in PROJECTS: + elevations.values.append(Value( + dbtype="radar", + DBTZ="US/CENTRAL", + tz="US/CENTRAL", + DBLOC=project, + DBPAR="Elev", + DBPTYP="Inst", + DBINT="1Hour", + DBDUR="0", + DBVER="Ccp-Rev", + start=BASDATE_Elev_Pool_Stor, + end=BASDATE_Elev_Pool_Stor, + PICTURE="%3.2f", + MISSTR="--", + UNDEF="--", + DBUNITS="ft", + )) + + +#ENDDEF \ No newline at end of file From 47e4d4379aeb2a82398f48cfb310b862ca0ed05a Mon Sep 17 00:00:00 2001 From: Charlie Date: Fri, 19 Jul 2024 23:56:02 -0500 Subject: [PATCH 03/21] More deciding where to place the thread handlers --- __main__.py | 20 ++++++++++++-------- repgen/data/value.py | 1 + tests/swt/scripts/run.sh | 3 ++- tests/swt/testfiles/test.frm | 4 ++-- 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/__main__.py b/__main__.py index f73fb0e..16de80b 100644 --- a/__main__.py +++ b/__main__.py @@ -88,10 +88,10 @@ def processSiteWorker(queue, tid): None """ while True: - shef_id, dt, lookback = q.get(timeout=30) + shef_id, dt, lookback = queue.get(timeout=30) try: print(f"Processing {shef_id} via worker thread . . .") - processSite(alt_id, shef_id, dt) + #processSite(alt_id, shef_id, dt) except KeyboardInterrupt: print(f"Thread #{tid} received KeyboardInterrupt. Exiting...") finally: @@ -128,15 +128,17 @@ def processSiteWorker(queue, tid): print(version) sys.exit(0) - thread_lock, queue = None, None + kwargs["thread_lock"], kwargs["queue"] = None, None if config.parallel: - t = threading.Thread(target=processSiteWorker) - t.daemon = True - t.start() + results = [] # Sync the logger with the threads - thread_lock = threading.Lock() + kwargs["thread_lock"] = threading.Lock() # Initialize the task queue - queue = Queue() + kwargs["queue"] = Queue() + thread = threading.Thread(target=processSiteWorker, args=(kwargs["queue"], results, kwargs["thread_lock"])) + thread.daemon = True + thread.start() + kwargs["thread"] = thread report_file = kwargs.get("IN", config.in_file) out_file = kwargs.get("REPORT", config.out_file) @@ -167,6 +169,7 @@ def processSiteWorker(queue, tid): report_file = sys.stdin.name f = sys.stdin else: + # TODO: change this to a context manager/with f = open(report_file, 'rt') report_data = f.read() f.close() @@ -189,6 +192,7 @@ def processSiteWorker(queue, tid): # Read data file input data_file = kwargs.get("FILE", config.data_file) if data_file: + # TODO: context manager? f_d = open(config.data_file) key = None prefix = "" diff --git a/repgen/data/value.py b/repgen/data/value.py index feeee95..c536fba 100644 --- a/repgen/data/value.py +++ b/repgen/data/value.py @@ -425,6 +425,7 @@ def parse_slice(value): assert send.tzinfo is not None, "Naive datetime; end time should contain timezone" start = sstart.astimezone(tz) end = send.astimezone(tz) + print('queue', kwargs.get("queue")) params = urllib.urlencode( { "name": ts_name, diff --git a/tests/swt/scripts/run.sh b/tests/swt/scripts/run.sh index ba2bfdb..8a52b32 100755 --- a/tests/swt/scripts/run.sh +++ b/tests/swt/scripts/run.sh @@ -3,4 +3,5 @@ python3 . \ -a https://cwms-data.usace.army.mil/cwms-data \ -i tests/swt/testfiles/test.frm \ - -O SWT \ No newline at end of file + -O SWT \ + $@ \ No newline at end of file diff --git a/tests/swt/testfiles/test.frm b/tests/swt/testfiles/test.frm index 8a1f126..10cd483 100644 --- a/tests/swt/testfiles/test.frm +++ b/tests/swt/testfiles/test.frm @@ -103,9 +103,9 @@ CUR_DAY = BASDATE.value.day BASDATE_Elev_Pool_Stor = BASDATE.value.replace(hour=8,minute=0,second=0,microsecond=0) # elevations = Value() -elevations = Value() +elevations = [] for project in PROJECTS: - elevations.values.append(Value( + elevations.append(Value( dbtype="radar", DBTZ="US/CENTRAL", tz="US/CENTRAL", From b18f2716fc9c39f6f10fed965c6fa0a8efad3c43 Mon Sep 17 00:00:00 2001 From: Charles Graham Date: Sat, 20 Jul 2024 21:56:46 -0500 Subject: [PATCH 04/21] Set version and thread count in repgen and pass to other locations. --- __main__.py | 5 ++--- repgen/__init__.py | 3 +++ repgen/data/value.py | 8 ++++++-- requirements.txt | 2 -- tests/requirements.txt | 3 ++- tests/swt/scripts/run.bat | 7 +++++++ 6 files changed, 20 insertions(+), 8 deletions(-) delete mode 100644 requirements.txt create mode 100644 tests/swt/scripts/run.bat diff --git a/__main__.py b/__main__.py index 16de80b..859b848 100644 --- a/__main__.py +++ b/__main__.py @@ -2,12 +2,11 @@ from repgen.data.value import Value from repgen.report import Report from repgen.util import filterAddress +from repgen import __version__, THREAD_COUNT import threading from queue import Queue -version = "5.0.5" -THREAD_COUNT = 10 # setup base time, ex # default formats @@ -125,7 +124,7 @@ def processSiteWorker(queue, tid): kwargs = parse_vars(config.set)[0] if config.show_ver == True: - print(version) + print(__version__) sys.exit(0) kwargs["thread_lock"], kwargs["queue"] = None, None diff --git a/repgen/__init__.py b/repgen/__init__.py index e69de29..9841fb1 100644 --- a/repgen/__init__.py +++ b/repgen/__init__.py @@ -0,0 +1,3 @@ + +__version__ = "5.1.0" +THREAD_COUNT = 10 \ No newline at end of file diff --git a/repgen/data/value.py b/repgen/data/value.py index c536fba..aef37b9 100644 --- a/repgen/data/value.py +++ b/repgen/data/value.py @@ -1,4 +1,5 @@ -import pytz,datetime,sys,time as ttime +from repgen import __version__, THREAD_COUNT +import datetime,sys,time as ttime import operator from inspect import isfunction import copy @@ -9,6 +10,9 @@ import re from repgen.util import extra_operator, filterAddress import signal +# 3rd Party Libs +import asyncio, pytz + try: # Relativedelta supports months and years, but is external library @@ -414,7 +418,7 @@ def parse_slice(value): path = self.path if not Value.shared["use_alternate"] else self.altpath host = self.host if not Value.shared["use_alternate"] else self.althost - headers = { 'Accept': "application/json;version=2" } + headers = { 'Accept': "application/json;version=2", "User-Agent": f"Repgen({__version__}), Python({sys.version})" } while(retry_count > 0): # Convert time to destination timezone diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 0a8ff74..0000000 --- a/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -python-dateutil==2.8.2 -pytz==2024.1 diff --git a/tests/requirements.txt b/tests/requirements.txt index 3443d6c..41cd4d2 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -1,4 +1,5 @@ coverage==5.4 pytz==2022.1 pytest==7.0.1 -python-dateutil==2.8.2 \ No newline at end of file +python-dateutil==2.8.2 +asyncio==3.4.3 \ No newline at end of file diff --git a/tests/swt/scripts/run.bat b/tests/swt/scripts/run.bat new file mode 100644 index 0000000..eee4246 --- /dev/null +++ b/tests/swt/scripts/run.bat @@ -0,0 +1,7 @@ +@echo off + +python3 . ^ + -a https://cwms-data.usace.army.mil/cwms-data ^ + -i tests/swt/testfiles/test.frm ^ + -O SWT ^ + %* \ No newline at end of file From 5eee4bc666ecea71b88dc69c941009ba880054f2 Mon Sep 17 00:00:00 2001 From: Charles Graham Date: Sat, 20 Jul 2024 23:22:56 -0500 Subject: [PATCH 05/21] Migrate fetch code to a http worker for threading (not a working commit) --- __main__.py | 52 ++++------ repgen/__init__.py | 6 +- repgen/data/value.py | 187 ++------------------------------- repgen/report/report.py | 14 ++- repgen/workers/http.py | 211 ++++++++++++++++++++++++++++++++++++++ tests/swt/scripts/run.bat | 1 + 6 files changed, 253 insertions(+), 218 deletions(-) create mode 100644 repgen/workers/http.py diff --git a/__main__.py b/__main__.py index 859b848..df56965 100644 --- a/__main__.py +++ b/__main__.py @@ -1,9 +1,10 @@ -import sys,time,datetime,pytz,tempfile,shutil,os +import sys, pytz, datetime, tempfile, shutil, os + from repgen.data.value import Value from repgen.report import Report from repgen.util import filterAddress from repgen import __version__, THREAD_COUNT - +from repgen.workers.http import processSiteWorker import threading from queue import Queue @@ -74,27 +75,6 @@ def parse_vars(items): return d, count == len(items) -def processSiteWorker(queue, tid): - """ - Process site worker function that continuously retrieves tasks from a queue and processes them. - These will terminate gracefully when q.join() is called. - - Parameters: - queue (Queue): Queue process - tid (int): The thread ID - - Returns: - None - """ - while True: - shef_id, dt, lookback = queue.get(timeout=30) - try: - print(f"Processing {shef_id} via worker thread . . .") - #processSite(alt_id, shef_id, dt) - except KeyboardInterrupt: - print(f"Thread #{tid} received KeyboardInterrupt. Exiting...") - finally: - q.task_done() # Pytz doesn't know all the aliases and abbreviations @@ -128,16 +108,20 @@ def processSiteWorker(queue, tid): sys.exit(0) kwargs["thread_lock"], kwargs["queue"] = None, None + # Enable IO bound process multi-threading + # if the user has a need for speed if config.parallel: results = [] - # Sync the logger with the threads - kwargs["thread_lock"] = threading.Lock() - # Initialize the task queue + kwargs["threads"] = {} + # Initialize the task queue kwargs["queue"] = Queue() - thread = threading.Thread(target=processSiteWorker, args=(kwargs["queue"], results, kwargs["thread_lock"])) - thread.daemon = True - thread.start() - kwargs["thread"] = thread + # Setup worker threads + threads = [] + for _ in range(THREAD_COUNT): + thread = threading.Thread(target=processSiteWorker, args=(kwargs["queue"], kwargs["thread_lock"], results)) + thread.daemon = True + thread.start() + kwargs["threads"][thread.name] = thread report_file = kwargs.get("IN", config.in_file) out_file = kwargs.get("REPORT", config.out_file) @@ -223,10 +207,14 @@ def processSiteWorker(queue, tid): key = None f_d.close() - # exec the definitions - report = Report(report_data, report_file, config.compat) + report = Report(report_data, report_file, config.compat, **kwargs) report.run(basedate, local_vars) + queue = kwargs.get("queue", None) + if queue: + print("Waiting for all tasks to be processed. . .") + queue.join() + print("All tasks processed!") output = None tmpname = None diff --git a/repgen/__init__.py b/repgen/__init__.py index 9841fb1..cd34925 100644 --- a/repgen/__init__.py +++ b/repgen/__init__.py @@ -1,3 +1,7 @@ __version__ = "5.1.0" -THREAD_COUNT = 10 \ No newline at end of file +THREAD_COUNT = 10 +# Seconds to consider thread is still alive +THREAD_TIMEOUT = 120 +# CDA Constants +PARAM_DT_FMT = "%Y-%m-%dT%H:%M:%S" \ No newline at end of file diff --git a/repgen/data/value.py b/repgen/data/value.py index aef37b9..e2e4d86 100644 --- a/repgen/data/value.py +++ b/repgen/data/value.py @@ -1,22 +1,23 @@ from repgen import __version__, THREAD_COUNT -import datetime,sys,time as ttime +import datetime +import sys import operator from inspect import isfunction import copy import math from decimal import Decimal,DivisionByZero,DecimalException,getcontext import ssl -from ssl import SSLError + import re from repgen.util import extra_operator, filterAddress import signal # 3rd Party Libs -import asyncio, pytz +import pytz try: # Relativedelta supports months and years, but is external library - from dateutil.relativedelta import relativedelta as timedelta + from dateutil.relativedelta import timedelta except: # Included with python, but doesn't support longer granularity than weeks. # This can cause issues for leap years if not accounted for. @@ -134,7 +135,7 @@ def processDateTime(value, key, extra_part=None): value = value + timedelta(days=+1) return (value, is_24) - + self.queue = kwargs.get("queue", None) self.index = None self.type="SCALAR" self.value = None @@ -400,182 +401,8 @@ def parse_slice(value): except Exception as err: print( repr(err) + " : " + str(err), file=sys.stderr ) elif self.dbtype.upper() in ["JSON", "RADAR"]: - import json, http.client as httplib, urllib.parse as urllib - - #fmt = "%d-%b-%Y %H%M" - fmt = "%Y-%m-%dT%H:%M:%S" - tz = self.dbtz - units = self.dbunits - ts_name = ".".join( (self.dbloc, self.dbpar, self.dbptyp, str(self.dbint), str(self.dbdur), self.dbver) ) - - if self.start is None or self.end is None: - return + self.queue.put((self)) - # Loop until we fetch some data, if missing is NOMISS - retry_count = 10 # Go back at most this many weeks + 1 - sstart = tz.normalize(tz.localize(self.start)) if self.start.tzinfo is None else self.start - send = tz.normalize(tz.localize(self.end)) if self.end.tzinfo is None else self.end - - path = self.path if not Value.shared["use_alternate"] else self.altpath - host = self.host if not Value.shared["use_alternate"] else self.althost - headers = { 'Accept': "application/json;version=2", "User-Agent": f"Repgen({__version__}), Python({sys.version})" } - - while(retry_count > 0): - # Convert time to destination timezone - # Should this actually convert the time to the destination time zone (astimezone), or simply swap the TZ (replace)? - # 'astimezone' is be the "proper" behavior, but 'replace' mimics repgen_4. - # This should *not* be a naive datetime - assert sstart.tzinfo is not None, "Naive datetime; start time should contain timezone" - assert send.tzinfo is not None, "Naive datetime; end time should contain timezone" - start = sstart.astimezone(tz) - end = send.astimezone(tz) - print('queue', kwargs.get("queue")) - - params = urllib.urlencode( { - "name": ts_name, - "unit": units, - "begin": start.strftime(fmt), - "end": end.strftime(fmt), - "office": self.dbofc if self.dbofc is not None else "", - "timezone": str(tz), - "pageSize": -1, # always fetch all results - }) - - sys.stderr.write("Getting %s from %s to %s in tz %s, with units %s\n" % (ts_name,start.strftime(fmt),end.strftime(fmt),str(tz),units)) - - try: - data = None - retry_until_alternate = 3 - while retry_until_alternate > 0: - retry_until_alternate -= 1 - if path is None: - path = "" - - query = f"/{path}/timeseries?" - - # The http(s) guess isn't perfect, but it's good enough. It's for display purposes only. - print("Fetching: %s" % ("https://" if host[-2:] == "43" else "http://") + host+query+params, file=sys.stderr) - - try: - if sys.platform != "win32" and self.timeout: - # The SSL handshake can sometimes fail and hang indefinitely - # inflate the timeout slightly, so the socket has a chance to return a timeout error - # This is a failsafe to prevent a hung process - signal.alarm(int(self.timeout * 1.1) + 1) - - if Value._conn is None: - try: - from repgen.util.urllib2_tls import TLS1Connection - Value._conn = TLS1Connection( host, timeout=self.timeout, context=ssl_ctx ) - Value._conn.request("GET", "/{path}" ) - except SSLError as err: - print(type(err).__name__ + " : " + str(err), file=sys.stderr) - print("Falling back to non-SSL", file=sys.stderr) - # SSL not supported (could be standalone instance) - Value._conn = httplib.HTTPConnection( host, timeout=self.timeout ) - Value._conn.request("GET", "/{path}" ) - - # Test if the connection is valid - Value._conn.getresponse().read() - - Value._conn.request("GET", query+params, None, headers ) - r1 = Value._conn.getresponse() - - # getresponse can also hang sometimes, so keep alarm active until after we fetch the response - if sys.platform != "win32" and self.timeout: - signal.alarm(0) # disable the alarm - - # Grab the charset from the headers, and decode the response using that if set - # HTTP default charset is iso-8859-1 for text (RFC 2616), and utf-8 for JSON (RFC 4627) - parts = r1.getheader("Content-Type").split(";") - charset = "iso-8859-1" if parts[0].startswith("text") else "utf-8" # Default charset - - if len(parts) > 1: - for prop in parts: - prop_parts = prop.split("=") - if len(prop_parts) > 1 and prop_parts[0].lower() == "charset": - charset = prop_parts[1] - - data = r1.read().decode(charset) - - if r1.status == 200: - break - - print("HTTP Error " + str(r1.status) + ": " + data, file=sys.stderr) - if r1.status == 404: - json.loads(data) - # We don't care about the actual error, just if it's valid JSON - # Valid JSON means it was a RADAR response, so we treat it as a valid response, and won't retry. - break - except (httplib.NotConnected, httplib.ImproperConnectionState, httplib.BadStatusLine, ValueError, OSError) as e: - print(f"Error fetching: {e}", file=sys.stderr) - if retry_until_alternate == 0 and self.althost is not None and host != self.althost: - print("Trying alternate server", file=sys.stderr) - Value.shared["use_alternate"] = True - (host, path) = (self.althost, self.altpath) - Value._conn = None - retry_until_alternate = 3 - else: - print("Reconnecting to server and trying again", file=sys.stderr) - ttime.sleep(3) - try: - Value._conn.close() - except: - pass - Value._conn = None - continue - - data_dict = None - - try: - data_dict = json.loads(data) - except json.JSONDecodeError as err: - print(str(err), file=sys.stderr) - print(repr(data), file=sys.stderr) - - # get the depth - prev_t = 0 - #print repr(data_dict) - - if data_dict.get("total", 0) > 0: - for d in data_dict["values"]: - _t = float(d[0])/1000.0 # json returns times in javascript time, milliseconds since epoch, convert to unix time of seconds since epoch - _dt = datetime.datetime.fromtimestamp(_t,pytz.utc) - _dt = _dt.astimezone(self.dbtz) - #_dt = _dt.replace(tzinfo=self.tz) - #print("_dt: %s" % repr(_dt)) - #print _dt - if d[1] is not None: - #print("Reading value: %s" % d[1]) - _v = float(d[1]) # does not currently implement text operations - else: - _v = None - _q = int(d[2]) - self.values.append( ( _dt,_v,_q ) ) - else: - print("No values were fetched.", file=sys.stderr) - - if self.ismissing(): - if self.missing == "NOMISS": - sstart = sstart - timedelta(weeks=1) - retry_count = retry_count - 1 - continue - - if self.time: - self.type = "SCALAR" - if self.missing == "NOMISS": - # Get the last one, in case we fetched extra because of NOMISS - for v in reversed(self.values): - if v is not None and v[1] is not None: - self.value = v[1] - break - elif len(self.values) > 0: - self.value = self.values[-1][1] - - except Exception as err: - print( repr(err) + " : " + str(err), file=sys.stderr ) - - break elif self.dbtype.upper() == "DSS": raise Exception("DSS retrieval is not currently implemented") diff --git a/repgen/report/report.py b/repgen/report/report.py index 0770d63..9f122ed 100644 --- a/repgen/report/report.py +++ b/repgen/report/report.py @@ -8,13 +8,17 @@ from datetime import timedelta class Report: - def __init__(self, report, file_name, compatibility): - self.repfilename = file_name - self.repfile = report - self.replines = [] + def __init__(self, report, file_name, compatibility, *args, **kwargs): + print(kwargs) + self.data = {} self.datadef = "" + self.replines = [] + self.repfile = report + self.repfilename = file_name self.compatibility = compatibility - self.data = {} + self.queue = kwargs.get("queue", None) + self.thread = kwargs.get("thread", None) + self.thread_lock = kwargs.get("thread_lock", None) lines = map(lambda s: s.strip('\r'), report.split(sep='\n')) deflines = [] diff --git a/repgen/workers/http.py b/repgen/workers/http.py new file mode 100644 index 0000000..2804b75 --- /dev/null +++ b/repgen/workers/http.py @@ -0,0 +1,211 @@ +from repgen import THREAD_TIMEOUT, PARAM_DT_FMT +import time +import json +import sys +import threading +from datetime import datetime, timedelta +import pytz +import signal +from ssl import SSLError +from repgen.data.value import ssl_ctx + +import http.client as httplib, urllib.parse as urllib + +def processSiteWorker(queue, tid, results): + """ + Process site worker function that continuously retrieves tasks from a queue and processes them. + These will terminate gracefully when q.join() is called. + + Parameters: + queue (Queue): Queue process + tid (int): The thread ID + results (list): List of results to be returned + + Returns: + results (list) + """ + while True: + self = queue.get(timeout=THREAD_TIMEOUT) + print(self) + lock = threading.Lock() + try: + lock.acquire() + tz = self.dbtz + units = self.dbunits + ts_name = ".".join( (self.dbloc, self.dbpar, self.dbptyp, str(self.dbint), str(self.dbdur), self.dbver) ) + + if self.start is None or self.end is None: + return + + # Loop until we fetch some data, if missing is NOMISS + retry_count = 10 # Go back at most this many weeks + 1 + sstart = tz.normalize(tz.localize(self.start)) if self.start.tzinfo is None else self.start + send = tz.normalize(tz.localize(self.end)) if self.end.tzinfo is None else self.end + + path = self.path if not self.shared["use_alternate"] else self.altpath + host = self.host if not self.shared["use_alternate"] else self.althost + headers = { 'Accept': "application/json;version=2" } + while(retry_count > 0): + # Convert time to destination timezone + # Should this actually convert the time to the destination time zone (astimezone), or simply swap the TZ (replace)? + # 'astimezone' is be the "proper" behavior, but 'replace' mimics repgen_4. + # This should *not* be a naive datetime + assert sstart.tzinfo is not None, "Naive datetime; start time should contain timezone" + assert send.tzinfo is not None, "Naive datetime; end time should contain timezone" + start = sstart.astimezone(tz) + end = send.astimezone(tz) + + params = urllib.urlencode( { + "name": ts_name, + "unit": units, + "begin": start.strftime(PARAM_DT_FMT), + "end": end.strftime(PARAM_DT_FMT), + "office": self.dbofc if self.dbofc is not None else "", + "timezone": str(tz), + "pageSize": -1, # always fetch all results + }) + + #sys.stderr.write(f"Getting {ts_name} from {start.strftime(PARAM_DT_FMT)} to {end.strftime(PARAM_DT_FMT)} in tz {tz}, with units {units}\n") + + try: + data = None + retry_until_alternate = 3 + while retry_until_alternate > 0: + retry_until_alternate -= 1 + if path is None: + path = "" + + query = f"/{path}/timeseries?" + + # The http(s) guess isn't perfect, but it's good enough. It's for display purposes only. + #print("Fetching: %s" % ("https://" if host[-2:] == "43" else "http://") + host+query+params, file=sys.stderr) + + try: + if sys.platform != "win32" and self.timeout: + # The SSL handshake can sometimes fail and hang indefinitely + # inflate the timeout slightly, so the socket has a chance to return a timeout error + # This is a failsafe to prevent a hung process + signal.alarm(int(self.timeout * 1.1) + 1) + + if self._conn is None: + try: + from repgen.util.urllib2_tls import TLS1Connection + self._conn = TLS1Connection( host, timeout=self.timeout, context=ssl_ctx ) + self._conn.request("GET", "/{path}" ) + except SSLError as err: + print(type(err).__name__ + " : " + str(err), file=sys.stderr) + print("Falling back to non-SSL", file=sys.stderr) + # SSL not supported (could be standalone instance) + self._conn = httplib.HTTPConnection( host, timeout=self.timeout ) + self._conn.request("GET", "/{path}" ) + + # Test if the connection is valid + self._conn.getresponse().read() + + self._conn.request("GET", query+params, None, headers ) + r1 = self._conn.getresponse() + + # getresponse can also hang sometimes, so keep alarm active until after we fetch the response + if sys.platform != "win32" and self.timeout: + signal.alarm(0) # disable the alarm + + # Grab the charset from the headers, and decode the response using that if set + # HTTP default charset is iso-8859-1 for text (RFC 2616), and utf-8 for JSON (RFC 4627) + parts = r1.getheader("Content-Type").split(";") + charset = "iso-8859-1" if parts[0].startswith("text") else "utf-8" # Default charset + + if len(parts) > 1: + for prop in parts: + prop_parts = prop.split("=") + if len(prop_parts) > 1 and prop_parts[0].lower() == "charset": + charset = prop_parts[1] + + data = r1.read().decode(charset) + + if r1.status == 200: + break + + print("HTTP Error " + str(r1.status) + ": " + data, file=sys.stderr) + if r1.status == 404: + json.loads(data) + # We don't care about the actual error, just if it's valid JSON + # Valid JSON means it was a RADAR response, so we treat it as a valid response, and won't retry. + break + except (httplib.NotConnected, httplib.ImproperConnectionState, httplib.BadStatusLine, ValueError, OSError) as e: + print(f"Error fetching: {e}", file=sys.stderr) + if retry_until_alternate == 0 and self.althost is not None and host != self.althost: + print("Trying alternate server", file=sys.stderr) + self.shared["use_alternate"] = True + (host, path) = (self.althost, self.altpath) + self._conn = None + retry_until_alternate = 3 + else: + print("Reconnecting to server and trying again", file=sys.stderr) + time.sleep(3) + try: + self._conn.close() + except: + pass + self._conn = None + continue + + data_dict = None + + try: + data_dict = json.loads(data) + except json.JSONDecodeError as err: + print(str(err), file=sys.stderr) + print(repr(data), file=sys.stderr) + + # get the depth + prev_t = 0 + #print repr(data_dict) + + if data_dict.get("total", 0) > 0: + for d in data_dict["values"]: + _t = float(d[0])/1000.0 # json returns times in javascript time, milliseconds since epoch, convert to unix time of seconds since epoch + _dt = datetime.fromtimestamp(_t,pytz.utc) + _dt = _dt.astimezone(self.dbtz) + #_dt = _dt.replace(tzinfo=self.tz) + #print("_dt: %s" % repr(_dt)) + #print _dt + if d[1] is not None: + #print("Reading value: %s" % d[1]) + _v = float(d[1]) # does not currently implement text operations + else: + _v = None + _q = int(d[2]) + self.values.append( ( _dt,_v,_q ) ) + else: + print("No values were fetched.", file=sys.stderr) + + if self.ismissing(): + if self.missing == "NOMISS": + sstart = sstart - timedelta(weeks=1) + retry_count = retry_count - 1 + continue + + if self.time: + self.type = "SCALAR" + if self.missing == "NOMISS": + # Get the last one, in case we fetched extra because of NOMISS + for v in reversed(self.values): + if v is not None and v[1] is not None: + self.value = v[1] + break + elif len(self.values) > 0: + self.value = self.values[-1][1] + + except Exception as err: + print( repr(err) + " : " + str(err), file=sys.stderr ) + print("Done!") + break + except KeyboardInterrupt: + print(f"Thread #{tid} received KeyboardInterrupt. Exiting...") + except Exception as err: + print( repr(err) + " : " + str(err), file=sys.stderr ) + finally: + lock.release() + queue.task_done() + + diff --git a/tests/swt/scripts/run.bat b/tests/swt/scripts/run.bat index eee4246..9147566 100644 --- a/tests/swt/scripts/run.bat +++ b/tests/swt/scripts/run.bat @@ -4,4 +4,5 @@ python3 . ^ -a https://cwms-data.usace.army.mil/cwms-data ^ -i tests/swt/testfiles/test.frm ^ -O SWT ^ + -p ^ %* \ No newline at end of file From d0c71913356991f8b2156cb0b6ac8746f41b1aca Mon Sep 17 00:00:00 2001 From: Charles Graham Date: Sun, 21 Jul 2024 01:29:10 -0500 Subject: [PATCH 06/21] Working state. Tested to bring time down from 17s to 2s with parallel requests. Some errors remain - testing required. --- __main__.py | 20 +- repgen/__init__.py | 12 +- repgen/data/value.py | 12 +- repgen/report/report.py | 9 +- repgen/workers/http.py | 379 ++++++++++++++++++----------------- requirements.txt | 138 +++++++++++++ tests/swt/output/test.txt | 32 +++ tests/swt/scripts/run.bat | 3 +- tests/swt/scripts/run.sh | 1 + tests/swt/testfiles/test.frm | 194 +++++++++--------- 10 files changed, 497 insertions(+), 303 deletions(-) create mode 100644 requirements.txt create mode 100644 tests/swt/output/test.txt diff --git a/__main__.py b/__main__.py index df56965..1a7ca41 100644 --- a/__main__.py +++ b/__main__.py @@ -1,4 +1,4 @@ -import sys, pytz, datetime, tempfile, shutil, os +import sys, pytz, datetime, tempfile, shutil, os, time from repgen.data.value import Value from repgen.report import Report @@ -100,6 +100,7 @@ def parse_vars(items): } if __name__ == "__main__": + start_time = time.time() config = parseArgs() kwargs = parse_vars(config.set)[0] @@ -107,21 +108,19 @@ def parse_vars(items): print(__version__) sys.exit(0) - kwargs["thread_lock"], kwargs["queue"] = None, None + kwargs["queue"] = None # Enable IO bound process multi-threading # if the user has a need for speed + threads = [] if config.parallel: - results = [] - kwargs["threads"] = {} # Initialize the task queue kwargs["queue"] = Queue() # Setup worker threads - threads = [] for _ in range(THREAD_COUNT): - thread = threading.Thread(target=processSiteWorker, args=(kwargs["queue"], kwargs["thread_lock"], results)) + thread = threading.Thread(target=processSiteWorker, args=(kwargs["queue"], )) thread.daemon = True thread.start() - kwargs["threads"][thread.name] = thread + threads.append(thread) report_file = kwargs.get("IN", config.in_file) out_file = kwargs.get("REPORT", config.out_file) @@ -210,11 +209,7 @@ def parse_vars(items): # exec the definitions report = Report(report_data, report_file, config.compat, **kwargs) report.run(basedate, local_vars) - queue = kwargs.get("queue", None) - if queue: - print("Waiting for all tasks to be processed. . .") - queue.join() - print("All tasks processed!") + output = None tmpname = None @@ -233,3 +228,4 @@ def parse_vars(items): mask = os.umask(0) os.chmod(out_file, 0o666 & (~mask)) os.umask(mask) + print(f"Report created after {round(time.time() - start_time, 3)}s") \ No newline at end of file diff --git a/repgen/__init__.py b/repgen/__init__.py index cd34925..6bc0409 100644 --- a/repgen/__init__.py +++ b/repgen/__init__.py @@ -1,7 +1,11 @@ - __version__ = "5.1.0" -THREAD_COUNT = 10 -# Seconds to consider thread is still alive -THREAD_TIMEOUT = 120 +# =========================================== # +# THREADING VARS # +# =========================================== # +THREAD_COUNT = 50 +THREAD_TIMEOUT = 120 # Seconds to consider thread is still alive +MAX_CALL_SIZE = 200 # if the threads exceed this, kill it! +# =========================================== # +REPGEN_GITHUB_ISSUES_URL = "https://github.com/USACE-WaterManagement/repgen5/issues" # CDA Constants PARAM_DT_FMT = "%Y-%m-%dT%H:%M:%S" \ No newline at end of file diff --git a/repgen/data/value.py b/repgen/data/value.py index e2e4d86..204d165 100644 --- a/repgen/data/value.py +++ b/repgen/data/value.py @@ -14,7 +14,6 @@ # 3rd Party Libs import pytz - try: # Relativedelta supports months and years, but is external library from dateutil.relativedelta import timedelta @@ -26,6 +25,9 @@ # need to enable legacy ciphers for public CDA instance ssl_ctx = ssl.create_default_context() ssl_ctx.set_ciphers('DEFAULT') +# fetchTimeseriesCDA requires ssl_ctx +from repgen.workers.http import fetchTimeseriesCDA + # types string_types = (b"".__class__,u"".__class__) @@ -401,7 +403,13 @@ def parse_slice(value): except Exception as err: print( repr(err) + " : " + str(err), file=sys.stderr ) elif self.dbtype.upper() in ["JSON", "RADAR"]: - self.queue.put((self)) + if self.queue: + self.queue.put((self)) + else: + try: + fetchTimeseriesCDA(self) + except Exception as err: + print( repr(err) + " : " + str(err), file=sys.stderr ) elif self.dbtype.upper() == "DSS": diff --git a/repgen/report/report.py b/repgen/report/report.py index 9f122ed..52a2b00 100644 --- a/repgen/report/report.py +++ b/repgen/report/report.py @@ -9,7 +9,6 @@ class Report: def __init__(self, report, file_name, compatibility, *args, **kwargs): - print(kwargs) self.data = {} self.datadef = "" self.replines = [] @@ -18,7 +17,6 @@ def __init__(self, report, file_name, compatibility, *args, **kwargs): self.compatibility = compatibility self.queue = kwargs.get("queue", None) self.thread = kwargs.get("thread", None) - self.thread_lock = kwargs.get("thread_lock", None) lines = map(lambda s: s.strip('\r'), report.split(sep='\n')) deflines = [] @@ -127,9 +125,13 @@ def run( self, basedate, local_vars: dict = None ): print("CURDATE: %s" % repr(my_locals["CURDATE"]), file=sys.stderr) print("CTM: %s" % repr(my_locals["CTM"]), file=sys.stderr) + max_call_size = 0 # Compile the report, so source and line number information can be reported to the user exec(compile(self.datadef, self.repfilename, "exec"), globals(), my_locals) - + if self.queue: + print("Waiting for all tasks to be processed. . .") + self.queue.join() + print("All tasks processed!") # loop through my_locals and add them # to a dictionary with the % in front of the them # to mark location on the report @@ -137,4 +139,5 @@ def run( self, basedate, local_vars: dict = None ): for key in my_locals: if isinstance(my_locals[key], Value ): + # TODO: this could cause a bug if someone is placing a % in the report with the same text after it i.e. css self.data["%"+key] = my_locals[key] diff --git a/repgen/workers/http.py b/repgen/workers/http.py index 2804b75..3bab602 100644 --- a/repgen/workers/http.py +++ b/repgen/workers/http.py @@ -1,211 +1,226 @@ -from repgen import THREAD_TIMEOUT, PARAM_DT_FMT +from repgen import THREAD_TIMEOUT, PARAM_DT_FMT, MAX_CALL_SIZE, REPGEN_GITHUB_ISSUES_URL import time import json import sys -import threading from datetime import datetime, timedelta import pytz import signal from ssl import SSLError from repgen.data.value import ssl_ctx +import threading import http.client as httplib, urllib.parse as urllib -def processSiteWorker(queue, tid, results): +def fetchTimeseriesCDA(v_self): + """ + Fetches time series data from CDA processes the results. + + This function constructs a time series name from various attributes of `v_self`, + handles time zone normalization, builds a request to fetch data from a specified CWMS Data API endpoint, + and retries the request if necessary. It processes the fetched data and stores it in in the passed in v_self (Value Class object). + + Args: + v_self: An instance of a class that holds various attributes required for fetching + the time series data, including start and end times, database location, + parameter, type, interval, duration, version, time zone, units, paths, hosts, + connection, timeout, and other configurations. + + Returns: + None + + Raises: + AssertionError: If the start or end time is a naive datetime (i.e., without timezone info). + Exception: Global handle if any error occurs during the data fetching process. + """ + tz = v_self.dbtz + units = v_self.dbunits + ts_name = ".".join( (v_self.dbloc, v_self.dbpar, v_self.dbptyp, str(v_self.dbint), str(v_self.dbdur), v_self.dbver) ) + + if v_self.start is None or v_self.end is None: + return + + # Loop until we fetch some data, if missing is NOMISS + retry_count = 10 # Go back at most this many weeks + 1 + sstart = tz.normalize(tz.localize(v_self.start)) if v_self.start.tzinfo is None else v_self.start + send = tz.normalize(tz.localize(v_self.end)) if v_self.end.tzinfo is None else v_self.end + path = v_self.path if not v_self.shared["use_alternate"] else v_self.altpath + host = v_self.host if not v_self.shared["use_alternate"] else v_self.althost + headers = { 'Accept': "application/json;version=2" } + while(retry_count > 0): + # Convert time to destination timezone + # Should this actually convert the time to the destination time zone (astimezone), or simply swap the TZ (replace)? + # 'astimezone' is be the "proper" behavior, but 'replace' mimics repgen_4. + # This should *not* be a naive datetime + assert sstart.tzinfo is not None, "Naive datetime; start time should contain timezone" + assert send.tzinfo is not None, "Naive datetime; end time should contain timezone" + start = sstart.astimezone(tz) + end = send.astimezone(tz) + + params = urllib.urlencode( { + "name": ts_name, + "unit": units, + "begin": start.strftime(PARAM_DT_FMT), + "end": end.strftime(PARAM_DT_FMT), + "office": v_self.dbofc if v_self.dbofc is not None else "", + "timezone": str(tz), + "pageSize": -1, # always fetch all results + }) + + sys.stderr.write(f"Getting {ts_name} from {start.strftime(PARAM_DT_FMT)} to {end.strftime(PARAM_DT_FMT)} in tz {tz}, with units {units}\n") + + try: + data = None + retry_until_alternate = 3 + while retry_until_alternate > 0: + retry_until_alternate -= 1 + if path is None: + path = "" + + query = f"/{path}/timeseries?" + + # The http(s) guess isn't perfect, but it's good enough. It's for display purposes only. + print("Fetching: %s" % ("https://" if host[-2:] == "43" else "http://") + host+query+params, file=sys.stderr) + + try: + if sys.platform != "win32" and v_self.timeout: + # The SSL handshake can sometimes fail and hang indefinitely + # inflate the timeout slightly, so the socket has a chance to return a timeout error + # This is a failsafe to prevent a hung process + signal.alarm(int(v_self.timeout * 1.1) + 1) + + if v_self._conn is None: + try: + from repgen.util.urllib2_tls import TLS1Connection + v_self._conn = TLS1Connection( host, timeout=v_self.timeout, context=ssl_ctx ) + v_self._conn.request("GET", "/{path}" ) + except SSLError as err: + print(type(err).__name__ + " : " + str(err), file=sys.stderr) + print("Falling back to non-SSL", file=sys.stderr) + # SSL not supported (could be standalone instance) + v_self._conn = httplib.HTTPConnection( host, timeout=v_self.timeout ) + v_self._conn.request("GET", "/{path}" ) + + # Test if the connection is valid + v_self._conn.getresponse().read() + + # locals().update({'max_call_size': locals().get('max_call_size', 0) + 1}) + # print(locals().get("max_call_size")) + # if int(locals().get("max_call_size")) > MAX_CALL_SIZE: + # print(f"CALL STACK EXCEEDED. Submit ticket via: {REPGEN_GITHUB_ISSUES_URL}") + # sys.exit(1) + v_self._conn.request("GET", query+params, None, headers ) + r1 = v_self._conn.getresponse() + + # getresponse can also hang sometimes, so keep alarm active until after we fetch the response + if sys.platform != "win32" and v_self.timeout: + signal.alarm(0) # disable the alarm + + # Grab the charset from the headers, and decode the response using that if set + # HTTP default charset is iso-8859-1 for text (RFC 2616), and utf-8 for JSON (RFC 4627) + parts = r1.getheader("Content-Type").split(";") + charset = "iso-8859-1" if parts[0].startswith("text") else "utf-8" # Default charset + + if len(parts) > 1: + for prop in parts: + prop_parts = prop.split("=") + if len(prop_parts) > 1 and prop_parts[0].lower() == "charset": + charset = prop_parts[1] + + data = r1.read().decode(charset) + + if r1.status == 200: + break + + print("HTTP Error " + str(r1.status) + ": " + data, file=sys.stderr) + if r1.status == 404: + json.loads(data) + # We don't care about the actual error, just if it's valid JSON + # Valid JSON means it was a RADAR response, so we treat it as a valid response, and won't retry. + break + except (httplib.NotConnected, httplib.ImproperConnectionState, httplib.BadStatusLine, ValueError, OSError) as e: + print(f"Error fetching: {e}", file=sys.stderr) + if retry_until_alternate == 0 and v_self.althost is not None and host != v_self.althost: + print("Trying alternate server", file=sys.stderr) + v_self.shared["use_alternate"] = True + (host, path) = (v_self.althost, v_self.altpath) + v_self._conn = None + retry_until_alternate = 3 + else: + print("Reconnecting to server and trying again", file=sys.stderr) + time.sleep(3) + try: + v_self._conn.close() + except: + pass + v_self._conn = None + continue + + data_dict = None + + try: + data_dict = json.loads(data) + except json.JSONDecodeError as err: + print(str(err), file=sys.stderr) + print(repr(data), file=sys.stderr) + + if data_dict.get("total", 0) > 0: + for d in data_dict["values"]: + # json returns times in javascript time, + # milliseconds since epoch, + # convert to unix time of seconds since epoch + _t = float(d[0])/1000.0 + _dt = datetime.fromtimestamp(_t,pytz.utc) + _dt = _dt.astimezone(v_self.dbtz) + if d[1] is not None: + # does not currently implement text operations + _v = float(d[1]) + else: + _v = None + _q = int(d[2]) + v_self.values.append( ( _dt,_v,_q ) ) + else: + print("No values were fetched.", file=sys.stderr) + + if v_self.ismissing(): + if v_self.missing == "NOMISS": + sstart = sstart - timedelta(weeks=1) + retry_count = retry_count - 1 + continue + + if v_self.time: + v_self.type = "SCALAR" + if v_self.missing == "NOMISS": + # Get the last one, in case we fetched extra because of NOMISS + for v in reversed(v_self.values): + if v is not None and v[1] is not None: + v_self.value = v[1] + break + elif len(v_self.values) > 0: + v_self.value = v_self.values[-1][1] + except Exception as err: + print( repr(err) + " : " + str(err), file=sys.stderr ) + break + +def processSiteWorker(queue): """ Process site worker function that continuously retrieves tasks from a queue and processes them. - These will terminate gracefully when q.join() is called. + ALL of these will terminate gracefully when self.queue.join() is called at the end of report.py Parameters: queue (Queue): Queue process - tid (int): The thread ID - results (list): List of results to be returned Returns: results (list) """ while True: - self = queue.get(timeout=THREAD_TIMEOUT) - print(self) + v_self = queue.get(timeout=THREAD_TIMEOUT) lock = threading.Lock() try: lock.acquire() - tz = self.dbtz - units = self.dbunits - ts_name = ".".join( (self.dbloc, self.dbpar, self.dbptyp, str(self.dbint), str(self.dbdur), self.dbver) ) - - if self.start is None or self.end is None: - return - - # Loop until we fetch some data, if missing is NOMISS - retry_count = 10 # Go back at most this many weeks + 1 - sstart = tz.normalize(tz.localize(self.start)) if self.start.tzinfo is None else self.start - send = tz.normalize(tz.localize(self.end)) if self.end.tzinfo is None else self.end - - path = self.path if not self.shared["use_alternate"] else self.altpath - host = self.host if not self.shared["use_alternate"] else self.althost - headers = { 'Accept': "application/json;version=2" } - while(retry_count > 0): - # Convert time to destination timezone - # Should this actually convert the time to the destination time zone (astimezone), or simply swap the TZ (replace)? - # 'astimezone' is be the "proper" behavior, but 'replace' mimics repgen_4. - # This should *not* be a naive datetime - assert sstart.tzinfo is not None, "Naive datetime; start time should contain timezone" - assert send.tzinfo is not None, "Naive datetime; end time should contain timezone" - start = sstart.astimezone(tz) - end = send.astimezone(tz) - - params = urllib.urlencode( { - "name": ts_name, - "unit": units, - "begin": start.strftime(PARAM_DT_FMT), - "end": end.strftime(PARAM_DT_FMT), - "office": self.dbofc if self.dbofc is not None else "", - "timezone": str(tz), - "pageSize": -1, # always fetch all results - }) - - #sys.stderr.write(f"Getting {ts_name} from {start.strftime(PARAM_DT_FMT)} to {end.strftime(PARAM_DT_FMT)} in tz {tz}, with units {units}\n") - - try: - data = None - retry_until_alternate = 3 - while retry_until_alternate > 0: - retry_until_alternate -= 1 - if path is None: - path = "" - - query = f"/{path}/timeseries?" - - # The http(s) guess isn't perfect, but it's good enough. It's for display purposes only. - #print("Fetching: %s" % ("https://" if host[-2:] == "43" else "http://") + host+query+params, file=sys.stderr) - - try: - if sys.platform != "win32" and self.timeout: - # The SSL handshake can sometimes fail and hang indefinitely - # inflate the timeout slightly, so the socket has a chance to return a timeout error - # This is a failsafe to prevent a hung process - signal.alarm(int(self.timeout * 1.1) + 1) - - if self._conn is None: - try: - from repgen.util.urllib2_tls import TLS1Connection - self._conn = TLS1Connection( host, timeout=self.timeout, context=ssl_ctx ) - self._conn.request("GET", "/{path}" ) - except SSLError as err: - print(type(err).__name__ + " : " + str(err), file=sys.stderr) - print("Falling back to non-SSL", file=sys.stderr) - # SSL not supported (could be standalone instance) - self._conn = httplib.HTTPConnection( host, timeout=self.timeout ) - self._conn.request("GET", "/{path}" ) - - # Test if the connection is valid - self._conn.getresponse().read() - - self._conn.request("GET", query+params, None, headers ) - r1 = self._conn.getresponse() - - # getresponse can also hang sometimes, so keep alarm active until after we fetch the response - if sys.platform != "win32" and self.timeout: - signal.alarm(0) # disable the alarm - - # Grab the charset from the headers, and decode the response using that if set - # HTTP default charset is iso-8859-1 for text (RFC 2616), and utf-8 for JSON (RFC 4627) - parts = r1.getheader("Content-Type").split(";") - charset = "iso-8859-1" if parts[0].startswith("text") else "utf-8" # Default charset - - if len(parts) > 1: - for prop in parts: - prop_parts = prop.split("=") - if len(prop_parts) > 1 and prop_parts[0].lower() == "charset": - charset = prop_parts[1] - - data = r1.read().decode(charset) - - if r1.status == 200: - break - - print("HTTP Error " + str(r1.status) + ": " + data, file=sys.stderr) - if r1.status == 404: - json.loads(data) - # We don't care about the actual error, just if it's valid JSON - # Valid JSON means it was a RADAR response, so we treat it as a valid response, and won't retry. - break - except (httplib.NotConnected, httplib.ImproperConnectionState, httplib.BadStatusLine, ValueError, OSError) as e: - print(f"Error fetching: {e}", file=sys.stderr) - if retry_until_alternate == 0 and self.althost is not None and host != self.althost: - print("Trying alternate server", file=sys.stderr) - self.shared["use_alternate"] = True - (host, path) = (self.althost, self.altpath) - self._conn = None - retry_until_alternate = 3 - else: - print("Reconnecting to server and trying again", file=sys.stderr) - time.sleep(3) - try: - self._conn.close() - except: - pass - self._conn = None - continue - - data_dict = None - - try: - data_dict = json.loads(data) - except json.JSONDecodeError as err: - print(str(err), file=sys.stderr) - print(repr(data), file=sys.stderr) - - # get the depth - prev_t = 0 - #print repr(data_dict) - - if data_dict.get("total", 0) > 0: - for d in data_dict["values"]: - _t = float(d[0])/1000.0 # json returns times in javascript time, milliseconds since epoch, convert to unix time of seconds since epoch - _dt = datetime.fromtimestamp(_t,pytz.utc) - _dt = _dt.astimezone(self.dbtz) - #_dt = _dt.replace(tzinfo=self.tz) - #print("_dt: %s" % repr(_dt)) - #print _dt - if d[1] is not None: - #print("Reading value: %s" % d[1]) - _v = float(d[1]) # does not currently implement text operations - else: - _v = None - _q = int(d[2]) - self.values.append( ( _dt,_v,_q ) ) - else: - print("No values were fetched.", file=sys.stderr) - - if self.ismissing(): - if self.missing == "NOMISS": - sstart = sstart - timedelta(weeks=1) - retry_count = retry_count - 1 - continue - - if self.time: - self.type = "SCALAR" - if self.missing == "NOMISS": - # Get the last one, in case we fetched extra because of NOMISS - for v in reversed(self.values): - if v is not None and v[1] is not None: - self.value = v[1] - break - elif len(self.values) > 0: - self.value = self.values[-1][1] - - except Exception as err: - print( repr(err) + " : " + str(err), file=sys.stderr ) - print("Done!") - break - except KeyboardInterrupt: - print(f"Thread #{tid} received KeyboardInterrupt. Exiting...") + fetchTimeseriesCDA(v_self) except Exception as err: print( repr(err) + " : " + str(err), file=sys.stderr ) finally: lock.release() queue.task_done() - - + break \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..1964403 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,138 @@ +aiohttp==3.8.3 +aiosignal==1.2.0 +altgraph==0.17 +arabic-reshaper==2.1.1 +argon2-cffi==21.3.0 +argon2-cffi-bindings==21.2.0 +async-timeout==4.0.2 +asyncio==3.4.3 +asynctest==0.13.0 +atomicwrites==1.4.1 +attrs==22.2.0 +autopep8==1.6.0 +backcall==0.2.0 +bcrypt==3.2.2 +beautifulsoup4==4.11.1 +bleach==4.1.0 +bs4==0.0.1 +certifi==2021.10.8 +cffi==1.15.1 +chardet==3.0.4 +charset-normalizer==2.0.12 +cheroot==8.6.0 +CherryPy==18.6.1 +cherrypy-cors==1.6 +click==8.0.4 +colorama==0.4.5 +construct==2.10.68 +convertdate==2.3.2 +coverage==5.4 +cryptography==37.0.4 +cx-Oracle==8.3.0 +dataclasses==0.8 +decorator==5.1.1 +docutils==0.18.1 +-e git+https://github.com/krowvin/dokurestapi.git@22fd38d9a081f9d47c4400cbf98af0665811ba09#egg=dokurestapi +entrypoints==0.4 +fbs==0.8.6 +frozenlist==1.2.0 +future==0.18.2 +gkeepapi==0.13.7 +gpsoauth==0.4.3 +greenlet==1.1.2 +hijri-converter==2.2.4 +holidays==0.13 +html5lib==1.1 +httpagentparser==1.9.3 +idna==2.10 +idna-ssl==1.1.0 +importlib-metadata==4.8.3 +importlib-resources==5.4.0 +iniconfig==1.1.1 +ipykernel==5.5.6 +ipython==7.16.3 +ipython-genutils==0.2.0 +jaraco.classes==3.2.1 +jaraco.collections==3.4.0 +jaraco.context==4.1.1 +jaraco.functools==3.4.0 +jaraco.text==3.7.0 +jedi==0.17.2 +JPype1==1.2.1 +jupyter-client==7.1.2 +jupyter-core==4.9.2 +keyring==23.4.1 +korean-lunar-calendar==0.3.1 +lxml==4.9.1 +macholib==1.14 +Mako==1.1.6 +MarkupSafe==2.0.1 +more-itertools==8.13.0 +multidict==5.2.0 +nest-asyncio==1.5.6 +numpy==1.19.5 +packaging==21.3 +pandas==1.1.1 +paramiko==2.11.0 +parso==0.7.1 +pefile==2019.4.18 +pickleshare==0.7.5 +Pillow==8.0.1 +pkginfo==1.10.0 +pluggy==1.0.0 +portend==3.0.0 +prompt-toolkit==3.0.36 +psutil==5.9.8 +py==1.11.0 +pycodestyle==2.8.0 +pycparser==2.21 +pycryptodomex==3.15.0 +pyDes==2.0.1 +Pygments==2.14.0 +PyInstaller==3.4 +pykeepass==4.0.3 +PyMeeus==0.5.12 +PyNaCl==1.5.0 +pyparsing==3.0.9 +PyPDF2==1.26.0 +PyQt5==5.9.2 +PyQt5-sip==12.7.1 +pysftp==0.2.9 +pytest==7.0.1 +python-bidi==0.4.2 +python-dateutil==2.8.2 +python-dotenv==0.20.0 +pytz==2022.1 +pywin32==304 +pywin32-ctypes==0.2.0 +pyzmq==25.0.2 +readme-renderer==34.0 +redis==4.3.5 +redis-queue==0.5 +reportlab==3.5.56 +requests==2.27.1 +requests-toolbelt==1.0.0 +rfc3986==1.5.0 +rq==1.11.1 +sip==4.19.8 +six==1.15.0 +soupsieve==2.3.2.post1 +SQLAlchemy==1.4.40 +tempora==4.1.2 +toml==0.10.2 +tomli==1.2.3 +tornado==6.1 +tqdm==4.64.1 +traitlets==4.3.3 +twine==3.8.0 +typing-extensions==3.7.4.3 +urllib3==1.26.18 +utils==1.0.1 +wcwidth==0.2.6 +webdavclient3==3.14.6 +webencodings==0.5.1 +ws4py==0.5.1 +xhtml2pdf==0.2.5 +yarl==1.7.2 +zc.lockfile==2.0 +zipp==3.6.0 diff --git a/tests/swt/output/test.txt b/tests/swt/output/test.txt new file mode 100644 index 0000000..dd7f0e8 --- /dev/null +++ b/tests/swt/output/test.txt @@ -0,0 +1,32 @@ +DATE ALTU ARBU ARCA BIGH BIRC BROK CANT CHEN COPA COUN DENI ELDR ELKC EUFA FALL FCOB FGIB FOSS FSUP GSAL HEYB HUDS HUGO HULA JOHN KAWL KEMP KEYS MARI MCGE MERE OOLO PATM PENS PINE SARD SKIA TENK THUN TOMS TORO WAUR WIST +%ALTU-dt 1543.54 872.87 1006.75 857.66 750.45 600.12 1615.84 1415.02 710.49 1274.84 618.73 1336.96 795.72 584.59 948.59 1341.15 554.35 1640.44 2004.99 1125.67 761.06 620.20 403.73 733.51 1041.51 1010.39 1146.50 723.72 1350.72 576.92 2889.59 638.11 451.37 744.21 440.80 598.60 707.90 632.73 1039.66 1404.86 902.05 950.38 477.89 +%ALTU-dt 1543.54 872.87 1006.76 857.66 750.45 600.13 1615.87 1415.02 710.50 1274.83 618.72 1336.97 795.71 584.59 948.57 1341.18 554.32 1640.44 2004.99 1125.71 761.06 620.20 403.74 733.51 1041.51 1010.37 1146.49 723.75 1350.76 576.93 2889.57 638.10 451.37 744.21 440.79 598.59 707.91 632.73 1039.66 1404.86 902.05 950.38 477.89 +%ALTU-dt 1543.53 872.87 1006.76 857.66 750.45 600.12 1615.86 1415.02 710.49 1274.82 618.74 1336.97 795.72 584.60 948.57 1341.15 554.29 1640.43 2004.99 1125.70 761.06 620.22 403.73 733.51 1041.49 1010.42 1146.49 723.74 1350.74 576.92 2889.60 638.10 451.37 744.21 440.80 598.60 707.89 632.72 1039.67 1404.85 902.05 950.40 477.89 +%ALTU-dt 1543.52 872.87 1006.77 857.66 750.44 600.13 1615.85 1415.02 710.49 1274.81 618.74 1336.97 795.71 584.60 948.57 1341.17 554.31 1640.44 2004.99 1125.62 761.06 620.26 403.73 733.51 1041.51 1010.40 1146.49 723.75 1350.74 576.92 2889.58 638.09 451.37 744.18 440.79 598.59 707.88 632.72 1039.67 1404.85 902.04 950.38 477.89 +%ALTU-dt 1543.53 872.87 1006.77 857.66 750.44 600.12 1615.87 1415.02 710.50 1274.80 618.74 1336.98 795.72 584.61 948.57 1341.18 554.34 1640.44 2004.99 1125.68 761.06 620.24 403.72 733.51 1041.52 1010.37 1146.49 723.76 1350.74 576.92 2889.56 638.10 451.37 744.19 440.79 598.59 707.89 632.72 1039.67 1404.85 902.04 950.38 477.88 +%ALTU-dt 1543.52 872.87 1006.77 857.66 750.44 600.12 1615.87 1415.02 710.50 1274.80 618.74 1336.97 795.71 584.62 948.57 1341.16 554.33 1640.44 2004.99 1125.65 761.06 620.26 403.72 733.51 1041.51 1010.36 1146.48 723.77 1350.73 576.92 2889.57 638.13 451.37 744.21 440.78 598.59 707.88 632.72 1039.67 1404.85 902.04 950.36 477.89 +%ALTU-dt 1543.52 872.87 1006.77 857.65 750.44 600.12 1615.87 1415.02 710.49 1274.80 618.74 1336.98 795.71 584.60 948.57 1341.17 554.32 1640.43 2004.99 1125.67 761.06 620.29 403.72 733.50 1041.50 1010.36 1146.48 723.78 1350.74 576.92 2889.57 638.11 451.37 744.22 440.78 598.59 707.88 632.72 1039.68 1404.85 902.04 950.38 477.89 +%ALTU-dt 1543.52 872.87 1006.77 857.65 750.44 600.11 1615.87 1415.02 710.49 1274.79 618.75 1336.98 795.71 584.60 948.57 1341.17 554.32 1640.44 2004.99 1125.69 761.05 620.34 403.72 733.49 1041.50 1010.34 1146.48 723.78 1350.73 576.91 2889.58 638.11 451.36 744.22 440.78 598.59 707.89 632.71 1039.67 1404.85 902.03 950.38 477.87 +%ALTU-dt 1543.52 872.87 1006.77 857.65 750.43 600.11 1615.87 1415.01 710.49 1274.78 618.73 1336.97 795.71 584.61 948.57 1341.17 554.29 1640.44 2004.99 1125.62 761.06 620.27 403.71 733.50 1041.52 1010.33 1146.48 723.80 1350.73 576.91 2889.56 638.16 451.37 744.21 440.78 598.59 707.87 632.71 1039.67 1404.85 902.04 950.39 477.87 +%ALTU-dt 1543.52 872.87 1006.77 857.66 750.43 600.10 1615.87 1415.01 710.49 1274.77 618.72 1336.98 795.71 584.60 948.57 1341.17 554.25 1640.44 2004.99 1125.62 761.05 620.30 403.70 733.49 1041.53 1010.30 1146.47 723.80 1350.74 576.90 2889.57 638.14 451.35 744.20 440.77 598.59 707.87 632.70 1039.67 1404.85 902.04 950.37 477.87 +%ALTU-dt 1543.52 872.87 1006.78 857.66 750.43 600.10 1615.87 1415.01 710.49 1274.76 618.70 1336.97 795.71 584.59 948.57 1341.17 554.25 1640.44 2004.99 1125.67 761.05 620.38 403.70 733.49 1041.52 1010.29 1146.47 723.82 1350.73 576.90 2889.58 638.13 451.35 744.21 440.78 598.59 707.87 632.71 1039.66 1404.85 902.04 950.38 477.87 +%ALTU-dt 1543.52 872.87 1006.78 857.65 750.43 600.07 1615.87 1415.01 710.49 1274.75 618.71 1336.97 795.71 584.58 948.56 1341.17 554.23 1640.43 2004.99 1125.55 761.05 620.30 403.69 733.49 1041.52 1010.26 1146.47 723.82 1350.73 576.89 2889.57 638.13 451.35 744.18 440.77 598.59 707.87 632.70 1039.66 1404.85 902.04 950.37 477.87 +%ALTU-dt 1543.52 872.87 1006.79 857.65 750.43 600.07 1615.87 1415.01 710.50 1274.74 618.69 1336.98 795.71 584.58 948.57 1341.18 554.26 1640.43 2004.99 1125.65 761.05 620.25 403.69 733.49 1041.51 1010.26 1146.45 723.83 1350.73 576.89 2889.55 638.13 451.35 744.17 440.77 598.58 707.85 632.69 1039.66 1404.85 902.04 950.36 477.86 +%ALTU-dt 1543.52 872.87 1006.78 857.65 750.43 600.06 1615.87 1415.01 710.49 1274.74 618.71 1336.97 795.70 584.57 948.57 1341.17 554.33 1640.43 2004.99 1125.69 761.04 620.26 403.69 733.49 1041.50 1010.26 1146.47 723.83 1350.73 576.88 2889.55 638.13 451.35 744.20 440.77 598.58 707.87 632.70 1039.66 1404.84 902.04 950.37 477.86 +%ALTU-dt 1543.52 872.87 1006.79 857.65 750.43 600.06 1615.87 1415.01 710.50 1274.73 618.68 1336.97 795.70 584.57 948.57 1341.26 554.38 1640.43 2004.99 1125.59 761.04 620.20 403.69 733.48 1041.51 1010.26 1146.46 723.84 1350.73 576.88 2889.57 638.13 451.35 744.19 440.76 598.59 707.87 632.70 1039.66 1404.84 902.04 950.37 477.86 +%ALTU-dt 1543.57 872.87 1006.79 857.65 750.42 600.06 1615.87 1415.01 710.50 1274.72 618.69 1336.96 795.70 584.58 948.57 1341.24 554.44 1640.43 2004.99 1125.60 761.04 620.17 403.69 733.49 1041.52 1010.29 1146.50 723.85 1350.74 576.88 2889.57 638.11 451.35 744.19 440.77 598.58 707.87 632.69 1039.66 1404.84 902.04 950.36 477.87 +%ALTU-dt 1543.52 872.87 1006.80 857.65 750.42 600.06 1615.87 1415.01 710.49 1274.71 618.68 1336.96 795.69 584.58 948.56 1341.26 554.46 1640.43 2004.99 1125.59 761.04 620.22 403.69 733.50 1041.52 1010.28 1146.46 723.86 1350.74 576.88 2889.57 638.13 451.35 744.22 440.76 598.58 707.87 632.69 1039.66 1404.84 902.04 950.37 477.86 +%ALTU-dt ~~ 872.86 1006.79 857.65 750.51 600.06 1615.87 ~~ 710.52 1274.70 618.68 ~~ 795.69 584.58 948.57 1341.24 ~~ 1640.43 2004.99 ~~ 761.04 620.23 403.69 733.50 ~~ 1010.31 ~~ 723.88 1350.73 ~~ ~~ 638.16 451.34 ~~ 440.76 598.58 707.86 ~~ ~~ ~~ ~~ 950.36 ~~ +%ALTU-dt ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ +%ALTU-dt ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ +%ALTU-dt ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ +%ALTU-dt ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ +%ALTU-dt ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ +%ALTU-dt ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ +%ALTU-dt ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ +%ALTU-dt ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ +%ALTU-dt ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ +%ALTU-dt ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ +%ALTU-dt ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ +%ALTU-dt ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ + diff --git a/tests/swt/scripts/run.bat b/tests/swt/scripts/run.bat index 9147566..ee0d1ba 100644 --- a/tests/swt/scripts/run.bat +++ b/tests/swt/scripts/run.bat @@ -1,8 +1,9 @@ @echo off -python3 . ^ +c:\Python38\python.exe . ^ -a https://cwms-data.usace.army.mil/cwms-data ^ -i tests/swt/testfiles/test.frm ^ -O SWT ^ -p ^ + -o tests/swt/output/test.txt ^ %* \ No newline at end of file diff --git a/tests/swt/scripts/run.sh b/tests/swt/scripts/run.sh index 8a52b32..1789708 100755 --- a/tests/swt/scripts/run.sh +++ b/tests/swt/scripts/run.sh @@ -4,4 +4,5 @@ python3 . \ -a https://cwms-data.usace.army.mil/cwms-data \ -i tests/swt/testfiles/test.frm \ -O SWT \ + -o tests/swt/output/test.txt \ $@ \ No newline at end of file diff --git a/tests/swt/testfiles/test.frm b/tests/swt/testfiles/test.frm index 10cd483..02a9deb 100644 --- a/tests/swt/testfiles/test.frm +++ b/tests/swt/testfiles/test.frm @@ -1,111 +1,97 @@ #FORM -loc Elev 8am -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations -%proj %elevations - +DATE ALTU ARBU ARCA BIGH BIRC BROK CANT CHEN COPA COUN DENI ELDR ELKC EUFA FALL FCOB FGIB FOSS FSUP GSAL HEYB HUDS HUGO HULA JOHN KAWL KEMP KEYS MARI MCGE MERE OOLO PATM PENS PINE SARD SKIA TENK THUN TOMS TORO WAUR WIST +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev #ENDFORM #DEF PROJECTS = [ -"ALTU", -"ARBU", -"ARCA", -"BIGH", -"BIRC", -"BROK", -"CANT", -"CHEN", -"COPA", -"COUN", -"DENI", -"ELDR", -"ELKC", -"EUFA", -"FALL", -"FCOB", -"FGIB", -"FOSS", -"FSUP", -"GSAL", -"HEYB", -"HUDS", -"HUGO", -"HULA", -"JOHN", -"KAWL", -"KEMP", -"KEYS", -"MARI", -"MCGE", -"MERE", -"OOLO", -"PATM", -"PENS", -"PINE", -"SARD", -"SKIA", -"TENK", -"THUN", -"TOMS", -"TORO", -"WAUR", -"WIST" + "ALTU", + "ARBU", + "ARCA", + "BIGH", + "BIRC", + "BROK", + "CANT", + "CHEN", + "COPA", + "COUN", + "DENI", + "ELDR", + "ELKC", + "EUFA", + "FALL", + "FCOB", + "FGIB", + "FOSS", + "FSUP", + "GSAL", + "HEYB", + "HUDS", + "HUGO", + "HULA", + "JOHN", + "KAWL", + "KEMP", + "KEYS", + "MARI", + "MCGE", + "MERE", + "OOLO", + "PATM", + "PENS", + "PINE", + "SARD", + "SKIA", + "TENK", + "THUN", + "TOMS", + "TORO", + "WAUR", + "WIST", ] -BASDATE.value = BASDATE.value.replace(hour=8,minute=0,second=0,microsecond=0) +BASDATE.value = BASDATE.value.replace(hour=8, minute=0, second=0, microsecond=0) BASDATE.picture = "%Y-%m-%d" CUR_YEAR = BASDATE.value.year CUR_MONTH = BASDATE.value.month CUR_DAY = BASDATE.value.day -BASDATE_Elev_Pool_Stor = BASDATE.value.replace(hour=8,minute=0,second=0,microsecond=0) +BASDATE_8AM = BASDATE.value.replace(hour=8, minute=0, second=0, microsecond=0) +BASDATE_8AM_YESTERDAY = BASDATE_8AM - datetime.timedelta(hours=24) -# elevations = Value() -elevations = [] for project in PROJECTS: - elevations.append(Value( + # Fetch the Elev from CDA via Value() + elev = Value( dbtype="radar", DBTZ="US/CENTRAL", tz="US/CENTRAL", @@ -115,13 +101,23 @@ for project in PROJECTS: DBINT="1Hour", DBDUR="0", DBVER="Ccp-Rev", - start=BASDATE_Elev_Pool_Stor, - end=BASDATE_Elev_Pool_Stor, + start=BASDATE_8AM_YESTERDAY, + end=BASDATE_8AM, PICTURE="%3.2f", MISSTR="--", - UNDEF="--", + UNDEF="~~", DBUNITS="ft", - )) - + ) + # TODO: Fix threading issue in deepcopy + # DT = Value(elev.datatimes(), + # PICTURE="%d%b%Y %K%M", + # ) + # Dynamically add the project to the locals for printing to the form + locals().update( + { + project + "-elev": elev + } + ) + print(project + "-elev") -#ENDDEF \ No newline at end of file +# ENDDEF From 1c3aec58411ccfcb43952ea1ca118a810a519ce5 Mon Sep 17 00:00:00 2001 From: Charles Graham Date: Sun, 21 Jul 2024 01:30:15 -0500 Subject: [PATCH 07/21] It's thread safer... --- repgen/data/value.py | 1 - 1 file changed, 1 deletion(-) diff --git a/repgen/data/value.py b/repgen/data/value.py index 204d165..f611d4a 100644 --- a/repgen/data/value.py +++ b/repgen/data/value.py @@ -64,7 +64,6 @@ class Value: "use_alternate": False, # Alternate server in use, if primary is unavailable } - # This isn't thread safe, not an issue yet though since repgen isn't multithreaded. _conn = None #region Properties From e44f9d6d2d967193a6df67fb96551bb9d59e3597 Mon Sep 17 00:00:00 2001 From: Charles Graham Date: Sun, 21 Jul 2024 01:48:58 -0500 Subject: [PATCH 08/21] Fix requirement files - accidentally froze the wrong env. Going with queue/threading instead of asyncio --- requirements.txt | 138 +---------------------------------------- tests/requirements.txt | 3 +- 2 files changed, 3 insertions(+), 138 deletions(-) diff --git a/requirements.txt b/requirements.txt index 1964403..3443d6c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,138 +1,4 @@ -aiohttp==3.8.3 -aiosignal==1.2.0 -altgraph==0.17 -arabic-reshaper==2.1.1 -argon2-cffi==21.3.0 -argon2-cffi-bindings==21.2.0 -async-timeout==4.0.2 -asyncio==3.4.3 -asynctest==0.13.0 -atomicwrites==1.4.1 -attrs==22.2.0 -autopep8==1.6.0 -backcall==0.2.0 -bcrypt==3.2.2 -beautifulsoup4==4.11.1 -bleach==4.1.0 -bs4==0.0.1 -certifi==2021.10.8 -cffi==1.15.1 -chardet==3.0.4 -charset-normalizer==2.0.12 -cheroot==8.6.0 -CherryPy==18.6.1 -cherrypy-cors==1.6 -click==8.0.4 -colorama==0.4.5 -construct==2.10.68 -convertdate==2.3.2 coverage==5.4 -cryptography==37.0.4 -cx-Oracle==8.3.0 -dataclasses==0.8 -decorator==5.1.1 -docutils==0.18.1 --e git+https://github.com/krowvin/dokurestapi.git@22fd38d9a081f9d47c4400cbf98af0665811ba09#egg=dokurestapi -entrypoints==0.4 -fbs==0.8.6 -frozenlist==1.2.0 -future==0.18.2 -gkeepapi==0.13.7 -gpsoauth==0.4.3 -greenlet==1.1.2 -hijri-converter==2.2.4 -holidays==0.13 -html5lib==1.1 -httpagentparser==1.9.3 -idna==2.10 -idna-ssl==1.1.0 -importlib-metadata==4.8.3 -importlib-resources==5.4.0 -iniconfig==1.1.1 -ipykernel==5.5.6 -ipython==7.16.3 -ipython-genutils==0.2.0 -jaraco.classes==3.2.1 -jaraco.collections==3.4.0 -jaraco.context==4.1.1 -jaraco.functools==3.4.0 -jaraco.text==3.7.0 -jedi==0.17.2 -JPype1==1.2.1 -jupyter-client==7.1.2 -jupyter-core==4.9.2 -keyring==23.4.1 -korean-lunar-calendar==0.3.1 -lxml==4.9.1 -macholib==1.14 -Mako==1.1.6 -MarkupSafe==2.0.1 -more-itertools==8.13.0 -multidict==5.2.0 -nest-asyncio==1.5.6 -numpy==1.19.5 -packaging==21.3 -pandas==1.1.1 -paramiko==2.11.0 -parso==0.7.1 -pefile==2019.4.18 -pickleshare==0.7.5 -Pillow==8.0.1 -pkginfo==1.10.0 -pluggy==1.0.0 -portend==3.0.0 -prompt-toolkit==3.0.36 -psutil==5.9.8 -py==1.11.0 -pycodestyle==2.8.0 -pycparser==2.21 -pycryptodomex==3.15.0 -pyDes==2.0.1 -Pygments==2.14.0 -PyInstaller==3.4 -pykeepass==4.0.3 -PyMeeus==0.5.12 -PyNaCl==1.5.0 -pyparsing==3.0.9 -PyPDF2==1.26.0 -PyQt5==5.9.2 -PyQt5-sip==12.7.1 -pysftp==0.2.9 -pytest==7.0.1 -python-bidi==0.4.2 -python-dateutil==2.8.2 -python-dotenv==0.20.0 pytz==2022.1 -pywin32==304 -pywin32-ctypes==0.2.0 -pyzmq==25.0.2 -readme-renderer==34.0 -redis==4.3.5 -redis-queue==0.5 -reportlab==3.5.56 -requests==2.27.1 -requests-toolbelt==1.0.0 -rfc3986==1.5.0 -rq==1.11.1 -sip==4.19.8 -six==1.15.0 -soupsieve==2.3.2.post1 -SQLAlchemy==1.4.40 -tempora==4.1.2 -toml==0.10.2 -tomli==1.2.3 -tornado==6.1 -tqdm==4.64.1 -traitlets==4.3.3 -twine==3.8.0 -typing-extensions==3.7.4.3 -urllib3==1.26.18 -utils==1.0.1 -wcwidth==0.2.6 -webdavclient3==3.14.6 -webencodings==0.5.1 -ws4py==0.5.1 -xhtml2pdf==0.2.5 -yarl==1.7.2 -zc.lockfile==2.0 -zipp==3.6.0 +pytest==7.0.1 +python-dateutil==2.8.2 \ No newline at end of file diff --git a/tests/requirements.txt b/tests/requirements.txt index 41cd4d2..3443d6c 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -1,5 +1,4 @@ coverage==5.4 pytz==2022.1 pytest==7.0.1 -python-dateutil==2.8.2 -asyncio==3.4.3 \ No newline at end of file +python-dateutil==2.8.2 \ No newline at end of file From 35148b2062c4cae86a8530f1a2cdb02127f7b134 Mon Sep 17 00:00:00 2001 From: krowvin Date: Sun, 21 Jul 2024 13:15:57 -0500 Subject: [PATCH 09/21] Investigating why deep copy is not working with value's _thread.lock. Remove direct python reference in swt run script. --- tests/swt/output/test.txt | 16 ++++++++-------- tests/swt/scripts/run.bat | 2 +- tests/swt/testfiles/test.frm | 6 +++--- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/tests/swt/output/test.txt b/tests/swt/output/test.txt index dd7f0e8..d9c2501 100644 --- a/tests/swt/output/test.txt +++ b/tests/swt/output/test.txt @@ -16,14 +16,14 @@ DATE ALTU ARBU ARCA BIGH BIRC BROK CANT CHEN COPA COUN DENI ELDR EL %ALTU-dt 1543.52 872.87 1006.79 857.65 750.43 600.06 1615.87 1415.01 710.50 1274.73 618.68 1336.97 795.70 584.57 948.57 1341.26 554.38 1640.43 2004.99 1125.59 761.04 620.20 403.69 733.48 1041.51 1010.26 1146.46 723.84 1350.73 576.88 2889.57 638.13 451.35 744.19 440.76 598.59 707.87 632.70 1039.66 1404.84 902.04 950.37 477.86 %ALTU-dt 1543.57 872.87 1006.79 857.65 750.42 600.06 1615.87 1415.01 710.50 1274.72 618.69 1336.96 795.70 584.58 948.57 1341.24 554.44 1640.43 2004.99 1125.60 761.04 620.17 403.69 733.49 1041.52 1010.29 1146.50 723.85 1350.74 576.88 2889.57 638.11 451.35 744.19 440.77 598.58 707.87 632.69 1039.66 1404.84 902.04 950.36 477.87 %ALTU-dt 1543.52 872.87 1006.80 857.65 750.42 600.06 1615.87 1415.01 710.49 1274.71 618.68 1336.96 795.69 584.58 948.56 1341.26 554.46 1640.43 2004.99 1125.59 761.04 620.22 403.69 733.50 1041.52 1010.28 1146.46 723.86 1350.74 576.88 2889.57 638.13 451.35 744.22 440.76 598.58 707.87 632.69 1039.66 1404.84 902.04 950.37 477.86 -%ALTU-dt ~~ 872.86 1006.79 857.65 750.51 600.06 1615.87 ~~ 710.52 1274.70 618.68 ~~ 795.69 584.58 948.57 1341.24 ~~ 1640.43 2004.99 ~~ 761.04 620.23 403.69 733.50 ~~ 1010.31 ~~ 723.88 1350.73 ~~ ~~ 638.16 451.34 ~~ 440.76 598.58 707.86 ~~ ~~ ~~ ~~ 950.36 ~~ -%ALTU-dt ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ -%ALTU-dt ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ -%ALTU-dt ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ -%ALTU-dt ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ -%ALTU-dt ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ -%ALTU-dt ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ -%ALTU-dt ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ +%ALTU-dt 1543.53 872.86 1006.79 857.65 750.51 600.06 1615.87 1415.01 710.52 1274.70 618.68 1336.96 795.69 584.58 948.57 1341.24 554.42 1640.43 2004.99 1125.59 761.04 620.23 403.69 733.50 1041.54 1010.31 1146.46 723.88 1350.73 576.87 2889.57 638.16 451.34 744.19 440.76 598.58 707.86 632.69 1039.66 1404.84 902.04 950.36 477.86 +%ALTU-dt 1543.54 872.86 1006.79 857.65 750.51 600.06 1615.87 1415.01 710.49 1274.70 618.70 1336.96 795.69 584.57 948.56 1341.24 554.41 1640.43 2004.99 1125.62 761.04 620.16 403.69 733.51 1041.53 1010.31 1146.46 723.94 1350.73 576.87 2889.54 638.11 451.34 744.19 440.77 598.57 707.86 632.69 1039.65 1404.84 902.03 950.36 477.85 +%ALTU-dt 1543.53 872.86 1006.80 857.65 750.50 600.06 1615.87 1415.01 710.51 1274.69 618.69 1336.96 795.68 584.57 948.56 1341.24 554.44 1640.43 2004.99 1125.59 761.06 620.13 403.69 733.50 1041.55 1010.31 1146.47 723.90 1350.74 576.87 2889.53 638.10 451.34 744.18 440.76 598.57 707.87 632.69 1039.66 1404.84 902.03 950.36 477.85 +%ALTU-dt 1543.51 872.86 1006.80 857.65 750.51 600.06 1615.87 1415.01 710.51 1274.68 618.68 1336.95 795.69 584.57 948.55 1341.22 554.47 1640.43 2004.99 1125.58 761.11 620.11 403.69 733.50 1041.55 1010.32 1146.46 723.96 1350.74 576.86 2889.54 638.10 451.33 744.20 440.76 598.58 707.87 632.68 1039.67 1404.84 902.03 950.37 477.83 +%ALTU-dt 1543.52 872.86 1006.80 857.65 750.52 600.06 1615.87 1415.01 710.51 1274.67 618.67 1336.95 795.68 584.58 948.55 1341.23 554.55 1640.43 2004.99 1125.61 761.14 620.13 403.68 733.50 1041.56 1010.33 1146.44 723.93 1350.73 576.86 2889.52 638.13 451.33 744.19 440.76 598.58 707.88 632.68 1039.67 1404.84 902.03 950.36 477.84 +%ALTU-dt 1543.52 872.85 1006.80 857.65 750.52 600.06 1615.88 1415.01 710.52 1274.67 618.66 1336.94 795.73 584.60 948.55 1341.21 554.50 1640.43 2004.99 1125.64 761.15 620.04 403.69 733.49 1041.55 1010.31 1146.45 723.99 1350.74 576.86 2889.53 638.11 451.33 744.20 440.76 598.58 707.87 632.68 1039.68 1404.84 902.03 950.37 477.84 +%ALTU-dt 1543.52 872.85 1006.82 857.64 750.53 600.06 1615.88 1415.01 710.53 1274.66 618.83 1336.94 795.71 584.61 948.55 1341.22 554.48 1640.43 2004.99 1125.61 761.16 620.03 403.68 733.49 1041.56 1010.33 1146.45 723.97 1350.74 576.85 2889.53 638.09 451.34 744.22 440.75 598.59 707.89 632.70 1039.67 1404.84 902.03 950.36 477.85 +%ALTU-dt 1543.53 872.85 1006.85 857.64 750.53 600.06 1615.88 1415.00 710.53 1274.65 618.67 1336.95 795.71 584.61 948.55 1341.22 554.51 1640.43 2004.99 1125.64 761.17 620.09 403.68 733.51 1041.56 1010.33 1146.46 724.02 1350.74 576.87 2889.53 638.13 451.34 744.24 440.76 598.59 707.88 632.72 1039.67 1404.84 902.03 950.37 477.87 %ALTU-dt ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ %ALTU-dt ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ %ALTU-dt ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ diff --git a/tests/swt/scripts/run.bat b/tests/swt/scripts/run.bat index ee0d1ba..cfa6549 100644 --- a/tests/swt/scripts/run.bat +++ b/tests/swt/scripts/run.bat @@ -1,6 +1,6 @@ @echo off -c:\Python38\python.exe . ^ +python.exe . ^ -a https://cwms-data.usace.army.mil/cwms-data ^ -i tests/swt/testfiles/test.frm ^ -O SWT ^ diff --git a/tests/swt/testfiles/test.frm b/tests/swt/testfiles/test.frm index 02a9deb..729b956 100644 --- a/tests/swt/testfiles/test.frm +++ b/tests/swt/testfiles/test.frm @@ -109,9 +109,9 @@ for project in PROJECTS: DBUNITS="ft", ) # TODO: Fix threading issue in deepcopy - # DT = Value(elev.datatimes(), - # PICTURE="%d%b%Y %K%M", - # ) + DT = Value(elev.datatimes(), + PICTURE="%d%b%Y %K%M", + ) # Dynamically add the project to the locals for printing to the form locals().update( { From e066dfccb4918a14a8664e6ea77d20e076c71254 Mon Sep 17 00:00:00 2001 From: krowvin Date: Sun, 21 Jul 2024 13:45:09 -0500 Subject: [PATCH 10/21] Fixed thread lock issue. Can't pass threads via parameters has to be part of the class/self. Moved queue/threads to AFTER the Value call but before the report execution. Fixed the problem! --- __main__.py | 30 ++++++++--------- tests/swt/output/test.txt | 61 ++++++++++++++++------------------ tests/swt/testfiles/test.frm | 64 +++++++++++++++++------------------- 3 files changed, 75 insertions(+), 80 deletions(-) diff --git a/__main__.py b/__main__.py index 1a7ca41..558fef2 100644 --- a/__main__.py +++ b/__main__.py @@ -107,20 +107,7 @@ def parse_vars(items): if config.show_ver == True: print(__version__) sys.exit(0) - - kwargs["queue"] = None - # Enable IO bound process multi-threading - # if the user has a need for speed - threads = [] - if config.parallel: - # Initialize the task queue - kwargs["queue"] = Queue() - # Setup worker threads - for _ in range(THREAD_COUNT): - thread = threading.Thread(target=processSiteWorker, args=(kwargs["queue"], )) - thread.daemon = True - thread.start() - threads.append(thread) + report_file = kwargs.get("IN", config.in_file) out_file = kwargs.get("REPORT", config.out_file) @@ -145,7 +132,20 @@ def parse_vars(items): # set some of the default values Value(1, host=host, path=path, tz=tz, ucformat=config.compat, timeout=config.timeout, althost=althost, altpath=altpath, dbofc=config.office, **kwargs) - + + kwargs["queue"] = None + # Enable IO bound process multi-threading + # if the user has a need for speed + threads = [] + if config.parallel: + # Initialize the task queue + kwargs["queue"] = Queue() + # Setup worker threads + for _ in range(THREAD_COUNT): + thread = threading.Thread(target=processSiteWorker, args=(kwargs["queue"], )) + thread.daemon = True + thread.start() + threads.append(thread) # read the report file if report_file == '-': report_file = sys.stdin.name diff --git a/tests/swt/output/test.txt b/tests/swt/output/test.txt index d9c2501..5f857d8 100644 --- a/tests/swt/output/test.txt +++ b/tests/swt/output/test.txt @@ -1,32 +1,29 @@ -DATE ALTU ARBU ARCA BIGH BIRC BROK CANT CHEN COPA COUN DENI ELDR ELKC EUFA FALL FCOB FGIB FOSS FSUP GSAL HEYB HUDS HUGO HULA JOHN KAWL KEMP KEYS MARI MCGE MERE OOLO PATM PENS PINE SARD SKIA TENK THUN TOMS TORO WAUR WIST -%ALTU-dt 1543.54 872.87 1006.75 857.66 750.45 600.12 1615.84 1415.02 710.49 1274.84 618.73 1336.96 795.72 584.59 948.59 1341.15 554.35 1640.44 2004.99 1125.67 761.06 620.20 403.73 733.51 1041.51 1010.39 1146.50 723.72 1350.72 576.92 2889.59 638.11 451.37 744.21 440.80 598.60 707.90 632.73 1039.66 1404.86 902.05 950.38 477.89 -%ALTU-dt 1543.54 872.87 1006.76 857.66 750.45 600.13 1615.87 1415.02 710.50 1274.83 618.72 1336.97 795.71 584.59 948.57 1341.18 554.32 1640.44 2004.99 1125.71 761.06 620.20 403.74 733.51 1041.51 1010.37 1146.49 723.75 1350.76 576.93 2889.57 638.10 451.37 744.21 440.79 598.59 707.91 632.73 1039.66 1404.86 902.05 950.38 477.89 -%ALTU-dt 1543.53 872.87 1006.76 857.66 750.45 600.12 1615.86 1415.02 710.49 1274.82 618.74 1336.97 795.72 584.60 948.57 1341.15 554.29 1640.43 2004.99 1125.70 761.06 620.22 403.73 733.51 1041.49 1010.42 1146.49 723.74 1350.74 576.92 2889.60 638.10 451.37 744.21 440.80 598.60 707.89 632.72 1039.67 1404.85 902.05 950.40 477.89 -%ALTU-dt 1543.52 872.87 1006.77 857.66 750.44 600.13 1615.85 1415.02 710.49 1274.81 618.74 1336.97 795.71 584.60 948.57 1341.17 554.31 1640.44 2004.99 1125.62 761.06 620.26 403.73 733.51 1041.51 1010.40 1146.49 723.75 1350.74 576.92 2889.58 638.09 451.37 744.18 440.79 598.59 707.88 632.72 1039.67 1404.85 902.04 950.38 477.89 -%ALTU-dt 1543.53 872.87 1006.77 857.66 750.44 600.12 1615.87 1415.02 710.50 1274.80 618.74 1336.98 795.72 584.61 948.57 1341.18 554.34 1640.44 2004.99 1125.68 761.06 620.24 403.72 733.51 1041.52 1010.37 1146.49 723.76 1350.74 576.92 2889.56 638.10 451.37 744.19 440.79 598.59 707.89 632.72 1039.67 1404.85 902.04 950.38 477.88 -%ALTU-dt 1543.52 872.87 1006.77 857.66 750.44 600.12 1615.87 1415.02 710.50 1274.80 618.74 1336.97 795.71 584.62 948.57 1341.16 554.33 1640.44 2004.99 1125.65 761.06 620.26 403.72 733.51 1041.51 1010.36 1146.48 723.77 1350.73 576.92 2889.57 638.13 451.37 744.21 440.78 598.59 707.88 632.72 1039.67 1404.85 902.04 950.36 477.89 -%ALTU-dt 1543.52 872.87 1006.77 857.65 750.44 600.12 1615.87 1415.02 710.49 1274.80 618.74 1336.98 795.71 584.60 948.57 1341.17 554.32 1640.43 2004.99 1125.67 761.06 620.29 403.72 733.50 1041.50 1010.36 1146.48 723.78 1350.74 576.92 2889.57 638.11 451.37 744.22 440.78 598.59 707.88 632.72 1039.68 1404.85 902.04 950.38 477.89 -%ALTU-dt 1543.52 872.87 1006.77 857.65 750.44 600.11 1615.87 1415.02 710.49 1274.79 618.75 1336.98 795.71 584.60 948.57 1341.17 554.32 1640.44 2004.99 1125.69 761.05 620.34 403.72 733.49 1041.50 1010.34 1146.48 723.78 1350.73 576.91 2889.58 638.11 451.36 744.22 440.78 598.59 707.89 632.71 1039.67 1404.85 902.03 950.38 477.87 -%ALTU-dt 1543.52 872.87 1006.77 857.65 750.43 600.11 1615.87 1415.01 710.49 1274.78 618.73 1336.97 795.71 584.61 948.57 1341.17 554.29 1640.44 2004.99 1125.62 761.06 620.27 403.71 733.50 1041.52 1010.33 1146.48 723.80 1350.73 576.91 2889.56 638.16 451.37 744.21 440.78 598.59 707.87 632.71 1039.67 1404.85 902.04 950.39 477.87 -%ALTU-dt 1543.52 872.87 1006.77 857.66 750.43 600.10 1615.87 1415.01 710.49 1274.77 618.72 1336.98 795.71 584.60 948.57 1341.17 554.25 1640.44 2004.99 1125.62 761.05 620.30 403.70 733.49 1041.53 1010.30 1146.47 723.80 1350.74 576.90 2889.57 638.14 451.35 744.20 440.77 598.59 707.87 632.70 1039.67 1404.85 902.04 950.37 477.87 -%ALTU-dt 1543.52 872.87 1006.78 857.66 750.43 600.10 1615.87 1415.01 710.49 1274.76 618.70 1336.97 795.71 584.59 948.57 1341.17 554.25 1640.44 2004.99 1125.67 761.05 620.38 403.70 733.49 1041.52 1010.29 1146.47 723.82 1350.73 576.90 2889.58 638.13 451.35 744.21 440.78 598.59 707.87 632.71 1039.66 1404.85 902.04 950.38 477.87 -%ALTU-dt 1543.52 872.87 1006.78 857.65 750.43 600.07 1615.87 1415.01 710.49 1274.75 618.71 1336.97 795.71 584.58 948.56 1341.17 554.23 1640.43 2004.99 1125.55 761.05 620.30 403.69 733.49 1041.52 1010.26 1146.47 723.82 1350.73 576.89 2889.57 638.13 451.35 744.18 440.77 598.59 707.87 632.70 1039.66 1404.85 902.04 950.37 477.87 -%ALTU-dt 1543.52 872.87 1006.79 857.65 750.43 600.07 1615.87 1415.01 710.50 1274.74 618.69 1336.98 795.71 584.58 948.57 1341.18 554.26 1640.43 2004.99 1125.65 761.05 620.25 403.69 733.49 1041.51 1010.26 1146.45 723.83 1350.73 576.89 2889.55 638.13 451.35 744.17 440.77 598.58 707.85 632.69 1039.66 1404.85 902.04 950.36 477.86 -%ALTU-dt 1543.52 872.87 1006.78 857.65 750.43 600.06 1615.87 1415.01 710.49 1274.74 618.71 1336.97 795.70 584.57 948.57 1341.17 554.33 1640.43 2004.99 1125.69 761.04 620.26 403.69 733.49 1041.50 1010.26 1146.47 723.83 1350.73 576.88 2889.55 638.13 451.35 744.20 440.77 598.58 707.87 632.70 1039.66 1404.84 902.04 950.37 477.86 -%ALTU-dt 1543.52 872.87 1006.79 857.65 750.43 600.06 1615.87 1415.01 710.50 1274.73 618.68 1336.97 795.70 584.57 948.57 1341.26 554.38 1640.43 2004.99 1125.59 761.04 620.20 403.69 733.48 1041.51 1010.26 1146.46 723.84 1350.73 576.88 2889.57 638.13 451.35 744.19 440.76 598.59 707.87 632.70 1039.66 1404.84 902.04 950.37 477.86 -%ALTU-dt 1543.57 872.87 1006.79 857.65 750.42 600.06 1615.87 1415.01 710.50 1274.72 618.69 1336.96 795.70 584.58 948.57 1341.24 554.44 1640.43 2004.99 1125.60 761.04 620.17 403.69 733.49 1041.52 1010.29 1146.50 723.85 1350.74 576.88 2889.57 638.11 451.35 744.19 440.77 598.58 707.87 632.69 1039.66 1404.84 902.04 950.36 477.87 -%ALTU-dt 1543.52 872.87 1006.80 857.65 750.42 600.06 1615.87 1415.01 710.49 1274.71 618.68 1336.96 795.69 584.58 948.56 1341.26 554.46 1640.43 2004.99 1125.59 761.04 620.22 403.69 733.50 1041.52 1010.28 1146.46 723.86 1350.74 576.88 2889.57 638.13 451.35 744.22 440.76 598.58 707.87 632.69 1039.66 1404.84 902.04 950.37 477.86 -%ALTU-dt 1543.53 872.86 1006.79 857.65 750.51 600.06 1615.87 1415.01 710.52 1274.70 618.68 1336.96 795.69 584.58 948.57 1341.24 554.42 1640.43 2004.99 1125.59 761.04 620.23 403.69 733.50 1041.54 1010.31 1146.46 723.88 1350.73 576.87 2889.57 638.16 451.34 744.19 440.76 598.58 707.86 632.69 1039.66 1404.84 902.04 950.36 477.86 -%ALTU-dt 1543.54 872.86 1006.79 857.65 750.51 600.06 1615.87 1415.01 710.49 1274.70 618.70 1336.96 795.69 584.57 948.56 1341.24 554.41 1640.43 2004.99 1125.62 761.04 620.16 403.69 733.51 1041.53 1010.31 1146.46 723.94 1350.73 576.87 2889.54 638.11 451.34 744.19 440.77 598.57 707.86 632.69 1039.65 1404.84 902.03 950.36 477.85 -%ALTU-dt 1543.53 872.86 1006.80 857.65 750.50 600.06 1615.87 1415.01 710.51 1274.69 618.69 1336.96 795.68 584.57 948.56 1341.24 554.44 1640.43 2004.99 1125.59 761.06 620.13 403.69 733.50 1041.55 1010.31 1146.47 723.90 1350.74 576.87 2889.53 638.10 451.34 744.18 440.76 598.57 707.87 632.69 1039.66 1404.84 902.03 950.36 477.85 -%ALTU-dt 1543.51 872.86 1006.80 857.65 750.51 600.06 1615.87 1415.01 710.51 1274.68 618.68 1336.95 795.69 584.57 948.55 1341.22 554.47 1640.43 2004.99 1125.58 761.11 620.11 403.69 733.50 1041.55 1010.32 1146.46 723.96 1350.74 576.86 2889.54 638.10 451.33 744.20 440.76 598.58 707.87 632.68 1039.67 1404.84 902.03 950.37 477.83 -%ALTU-dt 1543.52 872.86 1006.80 857.65 750.52 600.06 1615.87 1415.01 710.51 1274.67 618.67 1336.95 795.68 584.58 948.55 1341.23 554.55 1640.43 2004.99 1125.61 761.14 620.13 403.68 733.50 1041.56 1010.33 1146.44 723.93 1350.73 576.86 2889.52 638.13 451.33 744.19 440.76 598.58 707.88 632.68 1039.67 1404.84 902.03 950.36 477.84 -%ALTU-dt 1543.52 872.85 1006.80 857.65 750.52 600.06 1615.88 1415.01 710.52 1274.67 618.66 1336.94 795.73 584.60 948.55 1341.21 554.50 1640.43 2004.99 1125.64 761.15 620.04 403.69 733.49 1041.55 1010.31 1146.45 723.99 1350.74 576.86 2889.53 638.11 451.33 744.20 440.76 598.58 707.87 632.68 1039.68 1404.84 902.03 950.37 477.84 -%ALTU-dt 1543.52 872.85 1006.82 857.64 750.53 600.06 1615.88 1415.01 710.53 1274.66 618.83 1336.94 795.71 584.61 948.55 1341.22 554.48 1640.43 2004.99 1125.61 761.16 620.03 403.68 733.49 1041.56 1010.33 1146.45 723.97 1350.74 576.85 2889.53 638.09 451.34 744.22 440.75 598.59 707.89 632.70 1039.67 1404.84 902.03 950.36 477.85 -%ALTU-dt 1543.53 872.85 1006.85 857.64 750.53 600.06 1615.88 1415.00 710.53 1274.65 618.67 1336.95 795.71 584.61 948.55 1341.22 554.51 1640.43 2004.99 1125.64 761.17 620.09 403.68 733.51 1041.56 1010.33 1146.46 724.02 1350.74 576.87 2889.53 638.13 451.34 744.24 440.76 598.59 707.88 632.72 1039.67 1404.84 902.03 950.37 477.87 -%ALTU-dt ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ -%ALTU-dt ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ -%ALTU-dt ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ -%ALTU-dt ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ -%ALTU-dt ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ - + Tulsa District + US Army Corps of Engineers + Elevation Fetch Example 8am to 8am +DATE ALTU ARBU ARCA BIGH BIRC BROK CANT CHEN COPA COUN DENI ELDR ELKC EUFA FALL FCOB FGIB FOSS FSUP GSAL HEYB HUDS HUGO HULA JOHN KAWL KEMP KEYS MARI MCGE MERE OOLO PATM PENS PINE SARD SKIA TENK THUN TOMS TORO WAUR WIST +20Jul2024 0800 1543.54 872.87 1006.75 857.66 750.45 600.12 1615.84 1415.02 710.49 1274.84 618.73 1336.96 795.72 584.59 948.59 1341.15 554.35 1640.44 2004.99 1125.67 761.06 620.20 403.73 733.51 1041.51 1010.39 1146.50 723.72 1350.72 576.92 2889.59 638.11 451.37 744.21 440.80 598.60 707.90 632.73 1039.66 1404.86 902.05 950.38 477.89 +20Jul2024 0900 1543.54 872.87 1006.76 857.66 750.45 600.13 1615.87 1415.02 710.50 1274.83 618.72 1336.97 795.71 584.59 948.57 1341.18 554.32 1640.44 2004.99 1125.71 761.06 620.20 403.74 733.51 1041.51 1010.37 1146.49 723.75 1350.76 576.93 2889.57 638.10 451.37 744.21 440.79 598.59 707.91 632.73 1039.66 1404.86 902.05 950.38 477.89 +20Jul2024 1000 1543.53 872.87 1006.76 857.66 750.45 600.12 1615.86 1415.02 710.49 1274.82 618.74 1336.97 795.72 584.60 948.57 1341.15 554.29 1640.43 2004.99 1125.70 761.06 620.22 403.73 733.51 1041.49 1010.42 1146.49 723.74 1350.74 576.92 2889.60 638.10 451.37 744.21 440.80 598.60 707.89 632.72 1039.67 1404.85 902.05 950.40 477.89 +20Jul2024 1100 1543.52 872.87 1006.77 857.66 750.44 600.13 1615.85 1415.02 710.49 1274.81 618.74 1336.97 795.71 584.60 948.57 1341.17 554.31 1640.44 2004.99 1125.62 761.06 620.26 403.73 733.51 1041.51 1010.40 1146.49 723.75 1350.74 576.92 2889.58 638.09 451.37 744.18 440.79 598.59 707.88 632.72 1039.67 1404.85 902.04 950.38 477.89 +20Jul2024 1200 1543.53 872.87 1006.77 857.66 750.44 600.12 1615.87 1415.02 710.50 1274.80 618.74 1336.98 795.72 584.61 948.57 1341.18 554.34 1640.44 2004.99 1125.68 761.06 620.24 403.72 733.51 1041.52 1010.37 1146.49 723.76 1350.74 576.92 2889.56 638.10 451.37 744.19 440.79 598.59 707.89 632.72 1039.67 1404.85 902.04 950.38 477.88 +20Jul2024 1300 1543.52 872.87 1006.77 857.66 750.44 600.12 1615.87 1415.02 710.50 1274.80 618.74 1336.97 795.71 584.62 948.57 1341.16 554.33 1640.44 2004.99 1125.65 761.06 620.26 403.72 733.51 1041.51 1010.36 1146.48 723.77 1350.73 576.92 2889.57 638.13 451.37 744.21 440.78 598.59 707.88 632.72 1039.67 1404.85 902.04 950.36 477.89 +20Jul2024 1400 1543.52 872.87 1006.77 857.65 750.44 600.12 1615.87 1415.02 710.49 1274.80 618.74 1336.98 795.71 584.60 948.57 1341.17 554.32 1640.43 2004.99 1125.67 761.06 620.29 403.72 733.50 1041.50 1010.36 1146.48 723.78 1350.74 576.92 2889.57 638.11 451.37 744.22 440.78 598.59 707.88 632.72 1039.68 1404.85 902.04 950.38 477.89 +20Jul2024 1500 1543.52 872.87 1006.77 857.65 750.44 600.11 1615.87 1415.02 710.49 1274.79 618.75 1336.98 795.71 584.60 948.57 1341.17 554.32 1640.44 2004.99 1125.69 761.05 620.34 403.72 733.49 1041.50 1010.34 1146.48 723.78 1350.73 576.91 2889.58 638.11 451.36 744.22 440.78 598.59 707.89 632.71 1039.67 1404.85 902.03 950.38 477.87 +20Jul2024 1600 1543.52 872.87 1006.77 857.65 750.43 600.11 1615.87 1415.01 710.49 1274.78 618.73 1336.97 795.71 584.61 948.57 1341.17 554.29 1640.44 2004.99 1125.62 761.06 620.27 403.71 733.50 1041.52 1010.33 1146.48 723.80 1350.73 576.91 2889.56 638.16 451.37 744.21 440.78 598.59 707.87 632.71 1039.67 1404.85 902.04 950.39 477.87 +20Jul2024 1700 1543.52 872.87 1006.77 857.66 750.43 600.10 1615.87 1415.01 710.49 1274.77 618.72 1336.98 795.71 584.60 948.57 1341.17 554.25 1640.44 2004.99 1125.62 761.05 620.30 403.70 733.49 1041.53 1010.30 1146.47 723.80 1350.74 576.90 2889.57 638.14 451.35 744.20 440.77 598.59 707.87 632.70 1039.67 1404.85 902.04 950.37 477.87 +20Jul2024 1800 1543.52 872.87 1006.78 857.66 750.43 600.10 1615.87 1415.01 710.49 1274.76 618.70 1336.97 795.71 584.59 948.57 1341.17 554.25 1640.44 2004.99 1125.67 761.05 620.38 403.70 733.49 1041.52 1010.29 1146.47 723.82 1350.73 576.90 2889.58 638.13 451.35 744.21 440.78 598.59 707.87 632.71 1039.66 1404.85 902.04 950.38 477.87 +20Jul2024 1900 1543.52 872.87 1006.78 857.65 750.43 600.07 1615.87 1415.01 710.49 1274.75 618.71 1336.97 795.71 584.58 948.56 1341.17 554.23 1640.43 2004.99 1125.55 761.05 620.30 403.69 733.49 1041.52 1010.26 1146.47 723.82 1350.73 576.89 2889.57 638.13 451.35 744.18 440.77 598.59 707.87 632.70 1039.66 1404.85 902.04 950.37 477.87 +20Jul2024 2000 1543.52 872.87 1006.79 857.65 750.43 600.07 1615.87 1415.01 710.50 1274.74 618.69 1336.98 795.71 584.58 948.57 1341.18 554.26 1640.43 2004.99 1125.65 761.05 620.25 403.69 733.49 1041.51 1010.26 1146.45 723.83 1350.73 576.89 2889.55 638.13 451.35 744.17 440.77 598.58 707.85 632.69 1039.66 1404.85 902.04 950.36 477.86 +20Jul2024 2100 1543.52 872.87 1006.78 857.65 750.43 600.06 1615.87 1415.01 710.49 1274.74 618.71 1336.97 795.70 584.57 948.57 1341.17 554.33 1640.43 2004.99 1125.69 761.04 620.26 403.69 733.49 1041.50 1010.26 1146.47 723.83 1350.73 576.88 2889.55 638.13 451.35 744.20 440.77 598.58 707.87 632.70 1039.66 1404.84 902.04 950.37 477.86 +20Jul2024 2200 1543.52 872.87 1006.79 857.65 750.43 600.06 1615.87 1415.01 710.50 1274.73 618.68 1336.97 795.70 584.57 948.57 1341.26 554.38 1640.43 2004.99 1125.59 761.04 620.20 403.69 733.48 1041.51 1010.26 1146.46 723.84 1350.73 576.88 2889.57 638.13 451.35 744.19 440.76 598.59 707.87 632.70 1039.66 1404.84 902.04 950.37 477.86 +20Jul2024 2300 1543.57 872.87 1006.79 857.65 750.42 600.06 1615.87 1415.01 710.50 1274.72 618.69 1336.96 795.70 584.58 948.57 1341.24 554.44 1640.43 2004.99 1125.60 761.04 620.17 403.69 733.49 1041.52 1010.29 1146.50 723.85 1350.74 576.88 2889.57 638.11 451.35 744.19 440.77 598.58 707.87 632.69 1039.66 1404.84 902.04 950.36 477.87 +20Jul2024 2400 1543.52 872.87 1006.80 857.65 750.42 600.06 1615.87 1415.01 710.49 1274.71 618.68 1336.96 795.69 584.58 948.56 1341.26 554.46 1640.43 2004.99 1125.59 761.04 620.22 403.69 733.50 1041.52 1010.28 1146.46 723.86 1350.74 576.88 2889.57 638.13 451.35 744.22 440.76 598.58 707.87 632.69 1039.66 1404.84 902.04 950.37 477.86 +21Jul2024 0100 1543.53 872.86 1006.79 857.65 750.51 600.06 1615.87 1415.01 710.52 1274.70 618.68 1336.96 795.69 584.58 948.57 1341.24 554.42 1640.43 2004.99 1125.59 761.04 620.23 403.69 733.50 1041.54 1010.31 1146.46 723.88 1350.73 576.87 2889.57 638.16 451.34 744.19 440.76 598.58 707.86 632.69 1039.66 1404.84 902.04 950.36 477.86 +21Jul2024 0200 1543.54 872.86 1006.79 857.65 750.51 600.06 1615.87 1415.01 710.49 1274.70 618.70 1336.96 795.69 584.57 948.56 1341.24 554.41 1640.43 2004.99 1125.62 761.04 620.16 403.69 733.51 1041.53 1010.31 1146.46 723.94 1350.73 576.87 2889.54 638.11 451.34 744.19 440.77 598.57 707.86 632.69 1039.65 1404.84 902.03 950.36 477.85 +21Jul2024 0300 1543.53 872.86 1006.80 857.65 750.50 600.06 1615.87 1415.01 710.51 1274.69 618.69 1336.96 795.68 584.57 948.56 1341.24 554.44 1640.43 2004.99 1125.59 761.06 620.13 403.69 733.50 1041.55 1010.31 1146.47 723.90 1350.74 576.87 2889.53 638.10 451.34 744.18 440.76 598.57 707.87 632.69 1039.66 1404.84 902.03 950.36 477.85 +21Jul2024 0400 1543.51 872.86 1006.80 857.65 750.51 600.06 1615.87 1415.01 710.51 1274.68 618.68 1336.95 795.69 584.57 948.55 1341.22 554.47 1640.43 2004.99 1125.58 761.11 620.11 403.69 733.50 1041.55 1010.32 1146.46 723.96 1350.74 576.86 2889.54 638.10 451.33 744.20 440.76 598.58 707.87 632.68 1039.67 1404.84 902.03 950.37 477.83 +21Jul2024 0500 1543.52 872.86 1006.80 857.65 750.52 600.06 1615.87 1415.01 710.51 1274.67 618.67 1336.95 795.68 584.58 948.55 1341.23 554.55 1640.43 2004.99 1125.61 761.14 620.13 403.68 733.50 1041.56 1010.33 1146.44 723.93 1350.73 576.86 2889.52 638.13 451.33 744.19 440.76 598.58 707.88 632.68 1039.67 1404.84 902.03 950.36 477.84 +21Jul2024 0600 1543.52 872.85 1006.80 857.65 750.52 600.06 1615.88 1415.01 710.52 1274.67 618.66 1336.94 795.73 584.60 948.55 1341.21 554.50 1640.43 2004.99 1125.64 761.15 620.04 403.69 733.49 1041.55 1010.31 1146.45 723.99 1350.74 576.86 2889.53 638.11 451.33 744.20 440.76 598.58 707.87 632.68 1039.68 1404.84 902.03 950.37 477.84 +21Jul2024 0700 1543.52 872.85 1006.82 857.64 750.53 600.06 1615.88 1415.01 710.53 1274.66 618.83 1336.94 795.71 584.61 948.55 1341.22 554.48 1640.43 2004.99 1125.61 761.16 620.03 403.68 733.49 1041.56 1010.33 1146.45 723.97 1350.74 576.85 2889.53 638.09 451.34 744.22 440.75 598.59 707.89 632.70 1039.67 1404.84 902.03 950.36 477.85 +21Jul2024 0800 1543.53 872.85 1006.85 857.64 750.53 600.06 1615.88 1415.00 710.53 1274.65 618.67 1336.95 795.71 584.61 948.55 1341.22 554.51 1640.43 2004.99 1125.64 761.17 620.09 403.68 733.51 1041.56 1010.33 1146.46 724.02 1350.74 576.87 2889.53 638.13 451.34 744.24 440.76 598.59 707.88 632.72 1039.67 1404.84 902.03 950.37 477.87 diff --git a/tests/swt/testfiles/test.frm b/tests/swt/testfiles/test.frm index 729b956..fd2c82c 100644 --- a/tests/swt/testfiles/test.frm +++ b/tests/swt/testfiles/test.frm @@ -1,36 +1,33 @@ #FORM -DATE ALTU ARBU ARCA BIGH BIRC BROK CANT CHEN COPA COUN DENI ELDR ELKC EUFA FALL FCOB FGIB FOSS FSUP GSAL HEYB HUDS HUGO HULA JOHN KAWL KEMP KEYS MARI MCGE MERE OOLO PATM PENS PINE SARD SKIA TENK THUN TOMS TORO WAUR WIST -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%ALTU-dt %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev - + Tulsa District + US Army Corps of Engineers + Elevation Fetch Example 8am to 8am +DATE ALTU ARBU ARCA BIGH BIRC BROK CANT CHEN COPA COUN DENI ELDR ELKC EUFA FALL FCOB FGIB FOSS FSUP GSAL HEYB HUDS HUGO HULA JOHN KAWL KEMP KEYS MARI MCGE MERE OOLO PATM PENS PINE SARD SKIA TENK THUN TOMS TORO WAUR WIST +%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev #ENDFORM #DEF @@ -108,7 +105,8 @@ for project in PROJECTS: UNDEF="~~", DBUNITS="ft", ) - # TODO: Fix threading issue in deepcopy + # This will end up being the last elev to get looped. + # TODO: Consider creating a sep value for just the date range that should always exist DT = Value(elev.datatimes(), PICTURE="%d%b%Y %K%M", ) From 733a57746929041845ab2c8255a81c525246102f Mon Sep 17 00:00:00 2001 From: krowvin Date: Sun, 21 Jul 2024 14:04:25 -0500 Subject: [PATCH 11/21] Manually run spk converter tests to make sure those are still working. Make a few corrections from when they got moved around (accidental enter keys) --- .gitignore | 1 + tests/spk/actual/i-base.battery | 138 ++ tests/spk/actual/i-blb | 508 ++++ tests/spk/actual/i-resstat | 3588 ++++++++++++++++++++++++++++ tests/spk/actual/i-ucb | 1107 +++++++++ tests/spk/expect/i-base.battery | 2 + tests/spk/expect/i-resstat | 1 - tests/spk/testfiles/i-base.battery | 108 + tests/spk/testfiles/i-blb | 456 ++++ tests/spk/testfiles/i-resstat | 2821 ++++++++++++++++++++++ tests/spk/testfiles/i-ucb | 871 +++++++ tests/test_converter.py | 8 +- 12 files changed, 9604 insertions(+), 5 deletions(-) create mode 100644 tests/spk/actual/i-base.battery create mode 100644 tests/spk/actual/i-blb create mode 100644 tests/spk/actual/i-resstat create mode 100644 tests/spk/actual/i-ucb create mode 100644 tests/spk/testfiles/i-base.battery create mode 100644 tests/spk/testfiles/i-blb create mode 100644 tests/spk/testfiles/i-resstat create mode 100644 tests/spk/testfiles/i-ucb diff --git a/.gitignore b/.gitignore index bea09fc..64c2f3d 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ test_priv/* *~ .vscode *.swp +*.log \ No newline at end of file diff --git a/tests/spk/actual/i-base.battery b/tests/spk/actual/i-base.battery new file mode 100644 index 0000000..73cc1ac --- /dev/null +++ b/tests/spk/actual/i-base.battery @@ -0,0 +1,138 @@ +#FORM +Year/Month %MONYR +Report As of %CURDATE +%TITLE + Loaded Normal +Day min max min max +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +#ENDFORM +# Generated with dateutil.relativedelta support. +#DEF +# !ECHO +# +UNDEF="????" +# +# Force the %BASDATE to a midnight value, so that TIME= does not have to be +# specified on the command line. +# +BASDATE.value = BASDATE.value.replace(hour=0,minute=0,second=0,microsecond=0) +# +CURDATE.undef = "????" +Value.shared["undef"] = "????" +CURDATE.picture = "%d %b %Y @ %K%M" +Value.shared["picture"] = "%d %b %Y @ %K%M" +MONYR = Value(BASDATE, + PICTURE="%B %Y", +) +# +# Compute the beginning and ending days of the report. Data is available +# only up thru yesterday. Therefore, +# IF yesterday is >= the end of the month THEN +# Produce a report for the entire month (%ETIME = end-of-month) +# ELSEIF end-of-month > yesterday > start-of-month THEN +# Produce a partial month report (%ETIME = yesterday) +# ELSE the month lies completely in the future, so... +# Produce a report for the entire month consisting all No Reports +# ENDIF +# +STIME = Value(BASDATE) +STIME.value = STIME.value.replace(day=2) +STIME.picture = "%B %Y" +EOM = Value(BASDATE.value.replace(year=BASDATE.value.timetuple().tm_year,month=BASDATE.value.timetuple().tm_mon,day=calendar.monthrange(BASDATE.value.timetuple().tm_year, BASDATE.value.timetuple().tm_mon)[1],hour=0,minute=0,second=0,microsecond=0)) +STMDAY = Value((STIME.value.timetuple().tm_year - 1900)*1000 + STIME.value.timetuple().tm_yday) +EOMDAY = Value((EOM.value.timetuple().tm_year - 1900)*1000 + EOM.value.timetuple().tm_yday) +YSTDAY = Value((CURDATE.value.timetuple().tm_year - 1900)*1000 + CURDATE.value.timetuple().tm_yday - 1) +if YSTDAY >= EOMDAY: + ETIME = Value(EOM, + PICTURE="%B %Y", + ) +elif YSTDAY > STMDAY: + TEMP = Value(CURDATE) + TEMP.value = TEMP.value.replace(hour=0,minute=0,second=0,microsecond=0) + ETIME = Value(TEMP-timedelta(days=1), + PICTURE="%B %Y", + ) +else: + ETIME = Value(EOM, + PICTURE="%B %Y", + ) + +# +# +ETIME = Value(ETIME+timedelta(days=1), + PICTURE="%B %Y", +) +TITLE = Value(_b) +VLmin = Value( + dbtype="radar", + DBLOC=_a, + DBPAR="Volt-Load", + DBPTYP="Min", + DBINT="~1Day", + DBDUR=0, + DBVER="Calc-val", + STIME=STIME, + ETIME=ETIME, + DBUNITS="volt", + PICTURE=" %4.1f", + UNDEF=" m", + MISSTR=" m", +) +VLmax = Value( + DBPTYP="Max", +) +VBmax = Value( + DBPAR="Volt-Batt", +) +VBmin = Value( + DBPTYP="Min", +) +TMP = Value( + DBLOC="Markers-Placeholder", + DBPAR="Count", + DBPTYP="Inst", + DBINT="~1Day", + DBDUR=0, + DBVER="ALL", + DBUNITS="unit", + STIME=STIME-timedelta(days=1), + ETIME=ETIME, +) +DY = Value(TMP.datatimes(), + PICTURE=" %d", + UNDEF=" X", + MISSTR=" X", +) +# +# +#ENDDEF diff --git a/tests/spk/actual/i-blb b/tests/spk/actual/i-blb new file mode 100644 index 0000000..50e81a7 --- /dev/null +++ b/tests/spk/actual/i-blb @@ -0,0 +1,508 @@ +#FORM +Generated, %CTM +Type, TIME ,Inflow ,EPK Inflow,STG Inflow,Outflow ,Stor ,Elev ,EPK Stor ,EPK Elev ,STG Stor ,STG Elev ,Precip (Mean Areal),Precip Lower,Precip Upper,Rel Change +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +#ENDFORM +# Generated with dateutil.relativedelta support. +#DEF +# !ECHO +# +# +# Compute the end and start times to read 48 hourly values on the hour. +# The ending time is the time specified by the user on the command line. +# +ETIME = Value(BTM+timedelta(hours=114), + PICTURE="%d %b %Y @ %K:%M", +) +STIME = Value(BTM-timedelta(days=10), + PICTURE="%d %b %Y @ %K:%M", +) +CTM.picture = "%d %b %Y @ %K:%M" +Value.shared["picture"] = "%d %b %Y @ %K:%M" +BASDATE.picture = "%d %b %Y @ %K:%M" +Value.shared["picture"] = "%d %b %Y @ %K:%M" +MID = Value(BTM) +MID.value = MID.value.replace(hour=0,minute=0,second=0,microsecond=0) +# +# Read 48 hours of values for the time-series to be displayed +# +FCST_T = Value( + MISSTR=" ", + UNDEF=" ", + dbtype="radar", + DBLOC="Black Butte", + DBPAR="Flow-Reservoir inflow", + DBPTYP="Inst", + DBINT="1Hour", + DBDUR=0, + DBVER="NWS-forecast-rev", + DBUNITS="cfs", + DBTZ="PST8PDT", + STIME=STIME, + ETIME=ETIME, + PICTURE="%6.0f", +) +FCST = Value( + STIME=BTM, + ETIME=ETIME, +) +STGI = Value( + DBLOC="Stony Gorge", +) +EPKI = Value( + DBLOC="East Park", +) +EPKEF = Value( + DBPAR="Elev", + DBUNITS="ft", + PICTURE="%7.2f", +) +STGEF = Value( + DBLOC="Stony Gorge", +) +STGSF = Value( + DBPAR="Stor", + DBUNITS="ac-ft", + PICTURE="%5.0f", +) +EPKSF = Value( + DBLOC="East Park", +) +MEANF = Value( + DBLOC="Black Butte", + DBPAR="Precip-INC", + DBPTYP="Total", + DBDUR="1Hour", + PICTURE="%6.3f", + DBUNITS="in", +) +#="----" +BPL = Value( + DBLOC="Black Butte-Lower Zone", +) +BPU = Value( + DBLOC="Black Butte-Upper Zone", +) +BP = Value( + DBLOC="Black Butte", + DBPAR="Precip-Basin", + DBPTYP="Inst", + DBDUR=0, + DBVER="Calc-val", + STIME=STIME, + ETIME=BTM, +) +INFLOW = Value( + DBPAR="Flow-Res In", + DBPTYP="AVE", + DBINT="1Hour", + DBDUR="1Hour", + DBVER="Calc-val", + PICTURE="%6.0f", + STIME=STIME, + ETIME=BTM, + DBUNITS="cfs", +) +OUTFLOW = Value( + DBPAR="Flow-Res Out", +) +STOR = Value( + DBLOC="Black Butte-Pool", + DBPAR="Stor", + DBPTYP="Inst", + DBINT="1Hour", + DBDUR=0, + DBUNITS="ac-ft", + PICTURE="%6.0f", +) +EPKS = Value( + DBLOC="East Park", + DBVER="Raw-CDEC-Combined", +) +STGS = Value( + DBLOC="Stony Gorge", +) +STGE = Value( + DBPAR="Elev", + DBUNITS="ft", + PICTURE="%7.2f", +) +EPKE = Value( + DBLOC="East Park", +) +ELEV = Value( + DBLOC="Black Butte-Pool", + DBVER="Calc-val", +) +AREAL = Value(" ") +RELCHG = Value( + DBLOC="Black Butte", + DBVER="Release-Val", + DBPAR="Flow-To", + DBUNITS="cfs", + STIME=STIME, + ETIME=ETIME, +) +TIME = Value(FCST_T.datatimes(), + PICTURE="%d%b%Y %K%M", +) +#ENDDEF diff --git a/tests/spk/actual/i-resstat b/tests/spk/actual/i-resstat new file mode 100644 index 0000000..e4a6b31 --- /dev/null +++ b/tests/spk/actual/i-resstat @@ -0,0 +1,3588 @@ +#FORM +Data Ending, %BASDATE , created %CTM +, Gross Pool, Current Storage, % Full , , 10 year Ave ,Space Available , Top Con , Inflow , Outflow , Enchroached, Enchroached % + Sacramento R basin +Shasta (SC7), %SHAG , %SHASTO , %SHA , , %SHA10P , %SHAA , %SHATCS , %SHAI , %SHAO , %SHAS , %SHAF +Black Butte (COE), %BBG , %BBSTO , %BLB , , %BB10P , %BBTA , %BBTCS , %BBI , %BBO , %BBTS , %BLBF +Oroville (SC7), %OROG , %OROSTO , %ORO , , %ORO10P , %OROA , %OROTCS , %OROI , %OROO , %OROS , %OROF +New Bullards Bar (SC7), %NBBG , %NBBSTO , %NBB , , %NBB10P , %NBBA , %NBBTCS , %NBBI , %NBBO , %NBBS , %NBBF +Englebright (COE), %ENG , %ENSTO , %ENX , , %EN10P , %ENA , %ENTCS , %ENI , %ENO , %ENS , +Indian Valley (SC7), %INDG , %INDSTO , %IND , , %IND10P , %INDA , %INDTCS , %INDI , %INDO , %INDS , %INDF +Folsom (SC7)|daily, %FOLG , %FOLSTO , %FOL , , %FOL10P , %FOLA , , %FOLI , %FOLO , , +Folsom (SC7)|12, %FOLG , %FLSTO12 , %FOL12 , , , %FOLA12 , %FTCS12 , %FOLI12 , %FOLO12 , %FOLS12 , %FOLF12 +Folsom (SC7)|18, %FOLG , %FLSTO18 , %FOL18 , , , %FOLA18 , %FTCS18 , %FOLI18 , %FOLO18 , %FOLS18 , %FOLF18 +Folsom (SC7)|00, %FOLG , %FLSTO00 , %FOL00 , , , %FOLA00 , %FTCS00 , %FOLI00 , %FOLO00 , %FOLS00 , %FOLF00 +Folsom (SC7)|06, %FOLG , %FLSTO06 , %FOL06 , , , %FOLA06 , %FTCS06 , %FOLI06 , %FOLO06 , %FOLS06 , %FOLF06 + San Joaquin River Basin +Camanche (SC7), %CAMG , %CAMSTO , %CAM , , %CAM10P , %CAMA , %CAMTCS , %CAMI , %CAMO , %CAMS , %CAMF +New Hogan (COE), %NHG , %NHSTO , %NHX , , %NH10P , %NHA , %NHTCS , %NHI , %NHO , %NHS , %NHGF +Farmington (COE), %FMG , %FMSTO , %FRM , , %FM10P , %FMA , %FMTCS , %FMI , %FMO , %FMS , %FRMF +New Melones (SC7), %NWMG , %NWMSTO , %NWM , , %NWM10P , %NWMA , %NWMTCS , %NWMI , %NWMO , %NWMS , %NWMF +Tulloch (SC7), %TULG , %TULSTO , %TUL , , %TUL10P , %TULA , %TULTCS , %TULI , %TULO , %TULS , %TULF +Don Pedro (SC7), %DONG , %DONSTO , %DON , , %DON10P , %DONA , %DONTCS , %DONI , %DONO , %DONS , %DONF +New Exchequer(SC7), %NEXG , %NEXSTO , %NEX , , %NEX10P , %NEXA , %NEXTCS , %NEXI , %NEXO , %NEXS , %NEXF +Burns (COE), %BNG , %BNSTO , %BUR , , %BN10P , %BNA , %BNTCS , %BNI , %BNO , %BNS , %BURF +Bear (COE), %BRG , %BRSTO , %BAR , , %BR10P , %BRA , %BRTCS , %BRI , %BNO , %BRS , %BARF +Owens (COE), %OWG , %OWSTO , %OWN , , %OW10P , %OWA , %OWTCS , %OWI , %OWO , %OWS , %OWNF +Mariposa (COE), %MRG , %MRSTO , %MAR , , %MR10P , %MRA , %MRTCS , %MRI , %MRO , %MRS , %MARF +Los Banos (SC7), %LOSG , %LOSSTO , %LOS , , %LOS10P , %LOSA , %LOSTCS , %LOSI , %LOSO , %LOSS , %LOSF +Buchanan/Eastman (COE), %BUG , %BUSTO , %BUC , , %BU10P , %BCA , %BUTCS , %BUI , %BUO , %BCS , %BUCF +Hidden/Hensley (COE), %HDG , %HDSTO , %HID , , %HD10P , %HDA , %HDTCS , %HDI , %HDO , %HDS , %HIDF +Friant/Millerton (SC7), %FRIG , %FRISTO , %FRI , , %FRI10P , %FRIA , %FRITCS , %FRII , %FRIO , %FRIS , %FRIF +Big Dry Creek (SC7), %BDCG , %BDCSTO , %BDC , , %BDC10P , %BDCA , %BDCTCS , %BDCI , %BDCO , %BDCS , %BDCF + Tulare Lakebed Basin +Pine Flat (COE), %PFG , %PFSTO , %PNF , , %PF10P , %PFA , %PFTCS , %PFI , %PFO , %PFS , %PNFF +Terminus/Kaweah (COE), %TMG , %TMSTO , %TRM , , %TM10P , %TMA , %TMTCS , %TMI , %TMO , %TMS , %TRMF +Success (COE), %SCG , %SCSTO , %SCC , , %SC10P , %SCA , %SCTCS , %SCI , %SCO , %SCS , %SCCF +Isabella (COE), %IBG , %IBSTO , %ISB , , %IB10P , %IBA , %IBTCS , %IBI , %IBO , %IBS , %ISBZ + Truckee River Basin +Martis Creek (COE), %MRTG , %MRTSTO , %MRT , , %MRT10P , %MRTA , %MRTTCS , %MRTI , %MRTO , %MRTS , %MRTF +Prosser (SC7), %PRSG , %PRSSTO , %PRS , , %PRS10P , %PRSA , %PRSTCS , %PRSI , %PRSO , %PRSS , %PRSF +Boca (SC7), %BOCG , %BOCSTO , %BOC , , %BOC10P , %BOCA , %BOCTCS , %BOCI , %BOCO , %BOCS , %BOCF +Stampede (SC7), %STMG , %STMSTO , %STM , , %STM10P , %STMA , %STMTCS , %STMI , %STMO , %STMS , %STMF + SPN RESERVOIRS +Coyote/Mendocino (COE), %COG , %COSTO , %COY , , %CO10P , %COA , %COTCS , %COI , %COO , %COS , %COYF +Warm Springs/Sonoma (COE),%WSG , %WSSTO , %WRS , , %WS10P , %WSA , %WSTCS , %WSI , %WSO , %WSS , %WRSF +Del Valle (SC7), %DELG , %DELSTO , %DEL , , %DEL10P , %DELA , %DELTCS , %DELI , %DELO , %DELS , %DELF + Great Basin, NOTE:, Due to Processing Difficulties all UT/CO is 1 day behind +Pineview (SC7), %PVG , %PVSTO , %PVP , , %PV10P , %PVSA , %PVTCS , %PNVIN , %PNVOUT , %PVS , %PVF +East Canyon (SC7), %ECG , %ECSTO , %ECP , , %EC10P , %ECSA , %ECTCS , %ESTIN , %ESTOUT , %ECS , %ECF +Lost Creek (SC7), %LCG , %LCSTO , %LCP , , %LC10P , %LCSA , %LCTCS , %LSCIN , %LSCOUT , %LCS , %LCF +Echo+Rockport (SC7), %ERG , %ERTCS , %ERP , , %ER10P , %ERSA , %ERTCS , , , %ERS , %ERF +Echo (SC7), %EOG , %EOSTO , %EOP , , %EO10P , %EOSA , %EOTCS , %ECHIN , %ECHOUT , %EOS , %EOF +Wanship/Rockport (SC7), %RKG , %RKSTO , %RKP , , %RK10P , %RKSA , %RKTCS , %RKPIN , %RKPOUT , %RKS , %RKF +Little Dell (SC7), %LDG , %LDSTO , %LDP , , %LD10P , %LDSA , %LDTCS , %LDLIN , %LDLOUT , %LDS , %LDF +Mountain Dell (SC7), %MDG , %MDSTO , %MDP , , %MD10P , %MDSA , %MDTCS , %MNDIN , %MNDOUT , %MDS , %MDF +Jordanelle (SC7), %JRG , %JRSTO , %JRP , , %JR10P , %JRSA , %JRTCS , %JRDIN , %JRDOUT , %JRS , %JRF + Upper Colorado +Red Fleet (SC7), %RFG , %RFSTO , %RFP , , %RF10P , %RFSA , %RFTCS , %RDFIN , %RDFOUT , %RFS , %RFF +Starvation (SC7), %STVG , %STSTO , %STP , , %ST10P , %STSA , %STTCS , %STRIN , %STROUT , %STS , %STF +Poania (SC7), %PNG , %PNSTO , %PNP , , %PN10P , %PNSA , %PNTCS , %PAOIN , %PAOOUT , %PNS , %PNVF +Blue Mesa (SC7), %BMG , %BMSTO , %BMP , , %BM10P , %BMSA , %BMTCS , %BLMIN , %BLMOUT , %BMS , %BMF +Ridgeway (SC7), %RGG , %RGSTO , %RGP , , %RG10P , %RGSA , %RGTCS , %RDGIN , %RDGOUT , %RGS , %RGF +Lemon (SC7), %LMG , %LMSTO , %LMP , , %LM10P , %LMSA , %LMTCS , %LEMIN , %LEMOUT , %LMS , %LMF +Vallecito (SC7), %VLG , %VLSTO , %VLP , , %VL10P , %VLSA , %VLTCS , %VALIN , %VALOUT , %VLS , %VLF + +#ENDFORM +# Generated with dateutil.relativedelta support. +#DEF +# !ECHO +# +# +# All values are to be read in at the exact time specified, +# without searching backwards or forwards. +# +Value.shared["missing"] = "EXACT" +# +# Define PICTURE's for various times to be displayed. +# Force %BASDATE to midnight. +# +CTM.picture = "%d %b %Y @ %K%M" +Value.shared["picture"] = "%d %b %Y @ %K%M" +BASDATE.value = BASDATE.value.replace(hour=0,minute=0,second=0,microsecond=0) + timedelta(days=1) # Add a day to offset setting the time to 00, instead of 24 +BASDATE.picture = "%d %b %Y %K%M" +Value.shared["picture"] = "%d %b %Y %K%M" +T12 = Value(BASDATE+timedelta(hours=12), + PICTURE="%d%b%Y %K%M", +) +T18 = Value(T12+timedelta(hours=6)) +T00 = Value(T18+timedelta(hours=6)) +T06 = Value(T00+timedelta(hours=6)) +# +# Define all Rain Flood Parameters +# +# +# Define all Top of Conservation Storage values +# +BBTCS = Value( + dbtype="radar", + DBLOC="Black Butte", + DBPTYP="Inst", + DBPAR="Stor-Top Con", + DBVER="Calc-val", + DBINT="~1Day", + DBDUR=0, + PICTURE="%10.0f", + MISSTR=" -NR-", + UNDEF=" -NR-", + TIME=BASDATE, + DBUNITS="ac-ft", + DBTZ="PST8PDT", +) +NHTCS = Value( + DBLOC="New Hogan", +) +BUTCS = Value( + DBLOC="Eastman Lake", +) +HDTCS = Value( + DBLOC="Hensley Lake", +) +PFTCS = Value( + DBLOC="Pine Flat Lake", +) +TMTCS = Value( + DBLOC="Lake Kaweah", +) +SCTCS = Value( + DBLOC="Success Lake", +) +IBTCS = Value( + DBLOC="Lake Isabella", +) +COTCS = Value( + DBLOC="Lake Mendocino", + DBVER="Calc-val-High Option", +) +WSTCS = Value( + DBLOC="Lake Sonoma", + DBVER="Calc-val", +) +MRTTCS = Value( + DBLOC="Martis Creek", +) +FMTCS = Value(0) +BNTCS = Value(0) +BRTCS = Value(0) +OWTCS = Value(0) +MRTCS = Value(0) +ENTCS = Value(70000) +SHATCS = Value( + DBLOC="Shasta", + DBVER="Calc-usbr", +) +# FILE = /dat0/rtsc7db.dss TYPE=DSS +# A=SACRAMENTO B=SHASTA +# A=AMERICAN B=FOLSOM +SACTCS = Value( + DBLOC="Folsom Lake", + DBVER="Calc-cdec SAFCA", + MISSTR=" -NR-", + UNDEF=" -NR-", +) +# A=AMERICAN B=FOLSOM F=SAFCA +# move picture,etc back up here +OROTCS = Value( + DBLOC="Oroville Dam", + DBVER="Calc-cdec", + MISSTR=" -NR-", + UNDEF=" -NR-", +) +# A=FEATHER B=OROVILLE +LOSTCS = Value( + DBLOC="Los Banos", +) +# A=LOS BANOS CR B=LOS BANOS +# A=MOKELUMNE B=CAMANCHE +# A=MERCED B=NEW EXCHEQUER +NWMTCS = Value( + DBLOC="New Melones", +) +# A=STANISLAUS B=NEW MELONES +TULTCS = Value( + DBLOC="Tulloch", +) +# A=STANISLAUS B=TULLOCH +DELTCS = Value( + DBLOC="Del Valle", + DBVER="Calc-val", +) +# A=ALAMEDA CR B=DEL VALLE +DONTCS = Value( + DBLOC="Don Pedro", + DBVER="Calc-manual", +) +# A=TUOLUMNE B=NEW DON PEDRO +CAMTCS = Value( + DBLOC="Camanche", +) +EBMTCS = Value(CAMTCS) +NEXTCS = Value( + DBLOC="New Exchequer", +) +PRSTCS = Value( + DBLOC="Prosser", +) +# A=PROSSER CR B=PROSSER CR +BOCTCS = Value( + DBLOC="Boca", +) +# A=LITTLE TRUCKEE B=BOCA +STMTCS = Value( + DBLOC="Stampede", +) +# A=LITTLE TRUCKEE B=STAMPEDE +NBBTCS = Value( + DBLOC="New Bullards Bar", + DBVER="Calc-usbr", +) +FRITCS = Value( + DBLOC="Friant Dam", + DBVER="Calc-usbr", +) +# A=SAN JOAQUIN B=FRIANT F= +# A=NORTH YUBA B=NEW BULLARDS BAR +INDTCS = Value( + DBLOC="Indian Valley", + DBVER="Calc-usgs", +) +# A=NF CACHE CR B=INDIAN VALLEY +BDCTCS = Value(200) +FTCS12 = Value( + DBLOC="Folsom Lake", + DBINT=0, + DBVER="Calc-NWS", + DBTZ="UTC", + TIME=T12, + MISSTR="-NF-", + UNDEF="-NF-", +) +FTCS18 = Value( + TIME=T18, +) +FTCS00 = Value( + TIME=T00, +) +FTCS06 = Value( + TIME=T00, +) +# +# Define all current Storage values +# +BBSTO = Value( + DBLOC="Black Butte-Pool", + DBPAR="Stor", + DBINT="~1Day", + DBVER="Calc-val", + PICTURE="%9.0f", + MISSTR=" -NR-", + UNDEF=" -NR-", + TIME=BASDATE, + DBTZ="PST8PDT", + DBUNITS="ac-ft", +) +ENSTO = Value( + DBLOC="Englebright Lake-Pool", +) +NHSTO = Value( + DBLOC="New Hogan-Pool", +) +BUSTO = Value( + DBLOC="Eastman Lake-Pool", +) +HDSTO = Value( + DBLOC="Hensley lake-Pool", +) +PFSTO = Value( + DBLOC="Pine Flat Lake-Pool", +) +TMSTO = Value( + DBLOC="Lake Kaweah-Pool", +) +SCSTO = Value( + DBLOC="Success Lake-Pool", +) +IBSTO = Value( + DBLOC="Lake Isabella-Pool", +) +COSTO = Value( + DBLOC="Lake Mendocino-Pool", +) +WSSTO = Value( + DBLOC="Lake Sonoma-Pool", +) +MRTSTO = Value( + DBLOC="Martis Creek-Pool", +) +FMSTO = Value( + DBLOC="Farmington Dam-Pool", +) +BNSTO = Value( + DBLOC="Burns-Pool", +) +BRSTO = Value( + DBLOC="Bear-Pool", +) +OWSTO = Value( + DBLOC="Owens-Pool", +) +MRSTO = Value( + DBLOC="Mariposa-Pool", +) +EPKSTO = Value( + DBLOC="East Park", + DBVER="Thumb-raw", +) +STGSTO = Value( + DBLOC="Stony Gorge", +) +CRTSTO = Value( + DBLOC="Courtright", + DBVER="Thumb-raw", +) +# A=KINGS B=COURTRIGHT F= +WSHSTO = Value( + DBLOC="Wishon", +) +# A=KINGS B=WISHON +SHASTO = Value( + DBLOC="Shasta", + DBVER="Raw-USBR-Combined", +) +# FILE = /dat0/rtsc7db.dss TYPE=DSS +# A=SACRAMENTO B=SHASTA F= +FOLSTO = Value( + DBLOC="Folsom Lake", +) +# A=AMERICAN B=FOLSOM +#%SACSTO = %FOLSTO +# A=SAN JOAQUIN B=FRIANT +OROSTO = Value( + DBLOC="Oroville Dam", + DBVER="Calc-cdec", +) +# A=FEATHER B=OROVILLE +NBBSTO = Value( + DBLOC="New Bullards Bar", + DBVER="Calc-cdec", +) +# A=NORTH YUBA B=NEW BULLARDS BAR +INDSTO = Value( + DBLOC="Indian Valley", + DBVER="Calc-usgs", +) +# A=NF CACHE CR B=INDIAN VALLEY +UNVSTO = Value( + DBLOC="Union Valley", + DBVER="Calc-cdec", +) +# A=AMERICAN B=UNION VALLEY +FMDSTO = Value( + DBLOC="French Meadows", + DBVER="Calc-confidential", +) +# A=AMERICAN B=FRENCH MEADOWS +HHLSTO = Value( + DBLOC="Hell Hole", +) +# A=AMERICAN B=HELL HOLE +NWMSTO = Value( + DBLOC="New Melones", + DBVER="Raw-USBR-Combined", +) +# A=STANISLAUS B=NEW MELONES +BRDSTO = Value( + DBLOC="Beardsley Lake", +) +# A=STANISLAUS B=BEARDSLEY +DNLSTO = Value( + DBLOC="Donnells", +) +# A=STANISLAUS B=DONNELLS +TULSTO = Value( + DBLOC="Tulloch", +) +# A=STANISLAUS B=TULLOCH +FRISTO = Value( + DBLOC="Friant Dam", +) +MAMSTO = Value( + DBLOC="Mammoth Pool", +) +# A=SAN JOAQUIN B=MAMMOTH POOL +MTSSTO = Value( + DBLOC="Friant Dam", + DBPAR="Stor-Total Upstream", +) +# A=SAN JOAQUIN B=FRIANT C=STOR-TOT U\S +CAMSTO = Value( + DBLOC="Camanche", + DBPAR="Stor", + DBVER="MANUAL", +) +# A=MOKELUMNE B=CAMANCHE +DONSTO = Value( + DBLOC="Don Pedro", +) +# A=TUOLUMNE B=NEW DON PEDRO +NEXSTO = Value( + DBLOC="New Exchequer", +) +# A=MERCED B=NEW EXCHEQUER +PRDSTO = Value( + DBLOC="Pardee", +) +# A=MOKELUMNE B=PARDEE +EBMSTO = Value((CAMSTO + PRDSTO)) +SSPSTO = Value( + DBLOC="Salt Springs", +) +# A=MOKELUMNE B=SALT SPRINGS +LBRSTO = Value( + DBLOC="Lower Bear", +) +# A=MOKELUMNE B=LOWER BEAR +HTHSTO = Value( + DBLOC="Hetch Hetchy", +) +# A=TUOLUMNE B=HETCH HETCHY +CHVSTO = Value( + DBLOC="Cherry Valley", +) +# A=TUOLUMNE B=CHERRY VALLEY +LKLSTO = Value( + DBLOC="Lake Eleanor", +) +# A=TUOLUMNE B=ELEANOR +DELSTO = Value( + DBLOC="Del Valle", +) +# A=ALAMEDA CR B=DEL VALLE +PRSSTO = Value( + DBLOC="Prosser", +) +# A=PROSSER CR B=PROSSER CR +BOCSTO = Value( + DBLOC="Boca", +) +# A=LITTLE TRUCKEE B=BOCA +STMSTO = Value( + DBLOC="Stampede", +) +# A=LITTLE TRUCKEE B=STAMPEDE +BDCSTO = Value( + DBLOC="Big Dry Cr", +) +LOSSTO = Value( + DBLOC="Los Banos", +) +FLSTO12 = Value( + DBLOC="Folsom Lake", + DBINT="1Hour", + DBVER="Raw-USBR-Combined", + TIME=T12, + DBTZ="UTC", + PICTURE="%7.0f", + MISSTR="-NF-", + UNDEF="-NF-", +) +FLSTO18 = Value( + TIME=T18, +) +FLSTO00 = Value( + TIME=T00, +) +FLSTO06 = Value( + TIME=T06, +) +# A=LOS BANOS CR B=LOS BANOS +# A=BIG DRY CR B=BIG DRY CR +# +# +# Gross Pools (acft) for Corps Reservoirs +# +BBG = Value(136200, + PICTURE="%7.0f", +) +ENG = Value(70000) +NHG = Value(317100) +BUG = Value(150000) +HDG = Value(90000) +PFG = Value(1000000) +TMG = Value(185600) +SCG = Value(84095) +#%IBG = 568100 +IBG = Value(361250) +MRTG = Value(20400) +COG = Value(116500) +WSG = Value(381000) +FMG = Value(52000) +BNG = Value(6800) +BRG = Value(7700) +OWG = Value(3600) +MRG = Value(15000) +EPG = Value(50900) +SGG = Value(50000) +UVG = Value(235100) +FRG = Value(110700) +HHG = Value(207600) +CTG = Value(123300) +WHG = Value(128600) +EBG = Value(615050) +# +# +# +# Gross Pool (acft) for SEC7 Reservoirs +# NOTE: Uses the same PICTURE as the Corps Reservoirs +# +SHAG = Value(4552100) +OROG = Value(3538000) +NBBG = Value(966000) +INDG = Value(300600) +FOLG = Value(966823) +SACG = Value(FOLG) +CAMG = Value(417100) +NWMG = Value(2420000) +DONG = Value(2030000) +NEXG = Value(1024600) +FRIG = Value(520500) +LOSG = Value(34600) +DELG = Value(77000) +TULG = Value(67000) +PRSG = Value(29800) +BOCG = Value(41100) +STMG = Value(226500) +BDCG = Value(30200) +PDG = Value(197950, + PICTURE="%7.0f", +) +SSG = Value(140000) +LBG = Value(49000) +BDG = Value(97800) +DNG = Value(64300) +HEG = Value(360400) +CVG = Value(268200) +LEG = Value(26000) +MAG = Value(122700) +TSG = Value(628500) +TSG2 = Value(251900) +# Gross Pool for UT/CO +EOG = Value(73900, + PICTURE="%6.0f", +) +ERG = Value(136062) +RKG = Value(62100) +LCG = Value(22500) +ECG = Value(51200) +PVG = Value(110200) +STVG = Value(167300) +VLG = Value(129700) +LMG = Value(40100) +BMG = Value(940800) +PNG = Value(17500) +RFG = Value(26000) +RGG = Value(84400) +JRG = Value(314000) +LDG = Value(20500) +MDG = Value(3200) +MPG = Value(117200) +CRG = Value(25200) +# +# Define Percent of Gross Pool +# +# Compute % full based on current storage and gross pool not +# accounting for any forecasts, irrigation demnads or other +# factors that would change the theoretical value. +# NOTE: The variable names should always be shorter than the +# PICTURE -- otherwise the text to the right of the +# variable will be compressed (see REPGEN Manual +# Section 4.2 "Report Form".) So we used names of the +# format %<3-letter-project-mnemonic> to keep names at +# four letters. +# +BLB = Value(BBSTO / BBG * 100.0, + PICTURE=" %3.0f", +) +# NOTE: New Hogan was re-named to %NHX so that it does not +# conflict with %NHG (New Hogan gross pool) variable above. +ENX = Value(ENSTO / ENG * 100.0) +NHX = Value(NHSTO / NHG * 100.0) +BUC = Value(BUSTO / BUG * 100.0) +HID = Value(HDSTO / HDG * 100.0) +PNF = Value(PFSTO / PFG * 100.0) +TRM = Value(TMSTO / TMG * 100.0) +SCC = Value(SCSTO / SCG * 100.0) +ISB = Value(IBSTO / IBG * 100.0) +COY = Value(COSTO / COG * 100.0) +WRS = Value(WSSTO / WSG * 100.0) +FRM = Value(FMSTO / FMG * 100.0) +BUR = Value(BNSTO / BNG * 100.0) +BAR = Value(BRSTO / BRG * 100.0) +OWN = Value(OWSTO / OWG * 100.0) +MAR = Value(MRSTO / MRG * 100.0) +SHA = Value(SHASTO / SHAG * 100.0) +FOL = Value(FOLSTO / FOLG * 100.0) +FOL12 = Value(FLSTO12/FOLG * 100.0, + UNDEF="-NF-", + MISSTR="-NF-", +) +FOL18 = Value(FLSTO18/FOLG * 100.0) +FOL00 = Value(FLSTO00/FOLG * 100.0) +FOL06 = Value(FLSTO06/FOLG * 100.0) +#%SAC = %SACSTO / %SACG * 100.0 +FRI = Value(FRISTO / FRIG * 100.0, + UNDEF="-NR-", + MISSTR="-NR-", +) +ORO = Value(OROSTO / OROG * 100.0) +LOS = Value(LOSSTO / LOSG * 100.0) +NBB = Value(NBBSTO / NBBG * 100.0) +CAM = Value(CAMSTO / CAMG * 100.0) +DON = Value(DONSTO / DONG * 100.0) +NEX = Value(NEXSTO / NEXG * 100.0) +NWM = Value(NWMSTO / NWMG * 100.0) +TUL = Value(TULSTO / TULG * 100.0) +IND = Value(INDSTO / INDG * 100.0) +DEL = Value(DELSTO / DELG * 100.0) +MRT = Value(MRTSTO / MRTG * 100.0) +PRS = Value(PRSSTO / PRSG * 100.0) +BOC = Value(BOCSTO / BOCG * 100.0) +STM = Value(STMSTO / STMG * 100.0) +BDC = Value(BDCSTO / BDCG * 100.0) +EPK = Value(EPKSTO / EPG * 100.0) +STG = Value(STGSTO / SGG * 100.0) +UNV = Value(UNVSTO / UVG * 100.0) +FMD = Value(FMDSTO / FRG * 100.0) +HHL = Value(HHLSTO / HHG * 100.0) +PRD = Value(PRDSTO / PDG * 100.0) +SSP = Value(SSPSTO / SSG * 100.0) +LBR = Value(LBRSTO / LBG * 100.0) +BRD = Value(BRDSTO / BDG * 100.0) +DNL = Value(DNLSTO / DNG * 100.0) +HTH = Value(HTHSTO / HEG * 100.0) +CHV = Value(CHVSTO / CVG * 100.0) +LKL = Value(LKLSTO / LEG * 100.0) +MAM = Value(MAMSTO / MAG * 100.0) +MTS = Value(MTSSTO / TSG * 100.0) +CRT = Value(CRTSTO / CTG * 100.0) +WSH = Value(WSHSTO / WHG * 100.0) +EBM = Value(EBMSTO / EBG * 100.0) +# +# Generate Percent Encroached for any reservoir whose Storage +# exceeds its Top of Conservation Storage. +# Encroachment is computed as a percentage of flood control +# space in use. +# VERY IMPORTANT: All variable names should be exactly 5 characters +# (including the %), and the string of blanks should be +# exactly the same length (i.e. 5 blanks). Otherwise, the +# report line will get screwed up. +# NOTE: The %DUMF variable is needed only to set the PICTURE +# for the %xxxF variables. +# +DUMF = Value(0.0, + PICTURE="%3.0f", +) +if BBSTO > BBTCS and BBG > BBTCS: + BLBZ = Value(( (BBSTO-BBTCS) / (BBG-BBTCS) ) * 100.0, + PICTURE="%3.0f", + ) +else: + BLBZ = Value(0, + PICTURE="%3.0f", + ) + +if ENSTO > ENTCS and ENG > ENTCS: + ENGZ = Value(( (ENSTO-ENTCS) / (ENG-ENTCS) ) * 100.0) +else: + ENGZ = Value(0) + +if NHSTO > NHTCS and NHG > NHTCS: + NHGZ = Value(( (NHSTO-NHTCS) / (NHG-NHTCS) ) * 100.0) +else: + NHGZ = Value(0) + +if BUSTO > BUTCS and BUG > BUTCS: + BUCZ = Value(( (BUSTO-BUTCS) / (BUG-BUTCS) ) * 100.0) +else: + BUCZ = Value(0) + +if HDSTO > HDTCS and HDG > HDTCS: + HIDZ = Value(( (HDSTO-HDTCS) / (HDG-HDTCS) ) * 100.0) +else: + HIDZ = Value(0) + +if PFSTO > PFTCS and PFG > PFTCS: + PNFZ = Value(( (PFSTO-PFTCS) / (PFG-PFTCS) ) * 100.0) +else: + PNFZ = Value(0) + +if TMSTO > TMTCS and TMG > TMTCS: + TRMZ = Value(( (TMSTO-TMTCS) / (TMG-TMTCS) ) * 100.0) +else: + TRMZ = Value(0) + +if SCSTO > SCTCS and SCG > SCTCS: + SCCZ = Value(( (SCSTO-SCTCS) / (SCG-SCTCS) ) * 100.0) +else: + SCCZ = Value(0) + +if IBSTO > IBTCS and IBG > IBTCS: + ISBZ = Value(( (IBSTO-IBTCS) / (IBG-IBTCS) ) * 100.0) +else: + ISBZ = Value(0) + +if COSTO > COTCS and COG > COTCS: + COYZ = Value(( (COSTO-COTCS) / (COG-COTCS) ) * 100.0) +else: + COYZ = Value(0) + +if WSSTO > WSTCS and WSG > WSTCS: + WRSZ = Value(( (WSSTO-WSTCS) / (WSG-WSTCS) ) * 100.0) +else: + WRSZ = Value(0) + +if FMSTO > FMTCS and FMG > FMTCS: + FRMZ = Value(( (FMSTO-FMTCS) / (FMG-FMTCS) ) * 100.0) +else: + FRMZ = Value(0) + +if BNSTO > BNTCS and BNG > BNTCS: + BURZ = Value(( (BNSTO-BNTCS) / (BNG-BNTCS) ) * 100.0) +else: + BURZ = Value(0) + +if BRSTO > BRTCS and BRG > BRTCS: + BARZ = Value(( (BRSTO-BRTCS) / (BRG-BRTCS) ) * 100.0) +else: + BARZ = Value(0) + +if OWSTO > OWTCS and OWG > OWTCS: + OWNZ = Value(( (OWSTO-OWTCS) / (OWG-OWTCS) ) * 100.0) +else: + OWNZ = Value(0) + +if MRSTO > MRTCS and MRG > MRTCS: + MARZ = Value(( (MRSTO-MRTCS) / (MRG-MRTCS) ) * 100.0) +else: + MARZ = Value(0) + +if SHASTO > SHATCS and SHAG > SHATCS: + SHAZ = Value(( (SHASTO-SHATCS) / (SHAG-SHATCS) ) * 100.0, + PICTURE="%3.0f", + ) +else: + SHAZ = Value(0, + PICTURE="%3.0f", + ) + +if FLSTO12 > FTCS12 and FOLG > FTCS12: + FOLZ12 = Value(( (FLSTO12-FTCS12) / (FOLG-FTCS12) ) * 100.0) +else: + FOLZ12 = Value(0) + +if FLSTO18 > FTCS18 and FOLG > FTCS18: + FOLZ18 = Value(( (FLSTO18-FTCS18) / (FOLG-FTCS18) ) * 100.0) +else: + FOLZ18 = Value(0) + +if FLSTO00 > FTCS00 and FOLG > FTCS00: + + FOLZ00 = Value(( (FLSTO00-FTCS00) / (FOLG-FTCS00) ) * 100.0) +else: + FOLZ00 = Value(0) + +if FLSTO06 > FTCS06 and FOLG > FTCS06: + FOLZ06 = Value(( (FLSTO06-FTCS06) / (FOLG-FTCS06) ) * 100.0) +else: + FOLZ06 = Value(0) + +##IF %SACSTO > %SACTCS AND %SACG > %SACTCS +# %SACZ = ( (%SACSTO-%SACTCS) / (%SACG-%SACTCS) ) * 100.0 +##ELSE +SACZ = Value(0) +##ENDIF +if FRISTO > FRITCS and FRIG > FRITCS: + FRIZ = Value(( (FRISTO-FRITCS) / (FRIG-FRITCS) ) * 100.0) +else: + FRIZ = Value(0) + +if OROSTO > OROTCS and OROG > OROTCS: + OROZ = Value(( (OROSTO-OROTCS) / (OROG-OROTCS) ) * 100.0) +else: + OROZ = Value(0) + +if LOSSTO > LOSTCS and LOSG > LOSTCS: + LOSZ = Value(( (LOSSTO-LOSTCS) / (LOSG-LOSTCS) ) * 100.0) +else: + LOSZ = Value(0) + +if NBBSTO > NBBTCS and NBBG > NBBTCS: + NBBZ = Value(( (NBBSTO-NBBTCS) / (NBBG-NBBTCS) ) * 100.0) +else: + NBBZ = Value(0) + +if CAMSTO > CAMTCS and CAMG > CAMTCS: + CAMZ = Value(( (CAMSTO-CAMTCS) / (CAMG-CAMTCS) ) * 100.0) +else: + CAMZ = Value(0) + +if DONSTO > DONTCS and DONG > DONTCS: + DONZ = Value(( (DONSTO-DONTCS) / (DONG-DONTCS) ) * 100.0) +else: + DONZ = Value(0) + +if NEXSTO > NEXTCS and NEXG > NEXTCS: + NEXZ = Value(( (NEXSTO-NEXTCS) / (NEXG-NEXTCS) ) * 100.0) +else: + NEXZ = Value(0) + +if NWMSTO > NWMTCS and NWMG > NWMTCS: + NWMZ = Value(( (NWMSTO-NWMTCS) / (NWMG-NWMTCS) ) * 100.0) +else: + NWMZ = Value(0) + +if TULSTO > TULTCS and TULG > TULTCS: + TULZ = Value(( (TULSTO-TULTCS) / (TULG-TULTCS) ) * 100.0) +else: + TULZ = Value(0) + +if INDSTO > INDTCS and INDG > INDTCS: + INDZ = Value(( (INDSTO-INDTCS) / (INDG-INDTCS) ) * 100.0) +else: + INDZ = Value(0) + +if DELSTO > DELTCS and DELG > DELTCS: + DELZ = Value(( (DELSTO-DELTCS) / (DELG-DELTCS) ) * 100.0) +else: + DELZ = Value(0) + +if MRTSTO > MRTTCS and MRTG > MRTTCS: + MRTZ = Value(( (MRTSTO-MRTTCS) / (MRTG-MRTTCS) ) * 100.0) +else: + MRTZ = Value(0) + +if PRSSTO > PRSTCS and PRSG > PRSTCS: + PRSZ = Value(( (PRSSTO-PRSTCS) / (PRSG-PRSTCS) ) * 100.0) +else: + PRSZ = Value(0) + +if BOCSTO > BOCTCS and BOCG > BOCTCS: + BOCZ = Value(( (BOCSTO-BOCTCS) / (BOCG-BOCTCS) ) * 100.0) +else: + BOCZ = Value(0) + +if STMSTO > STMTCS and STMG > STMTCS: + STMZ = Value(( (STMSTO-STMTCS) / (STMG-STMTCS) ) * 100.0) +else: + STMZ = Value(0) + +if BDCSTO > BDCTCS and BDCG > BDCTCS: + BDCZ = Value(( (BDCSTO-BDCTCS) / (BDCG-BDCTCS) ) * 100.0) +else: + BDCZ = Value(0) + +if CAMSTO > CAMTCS: + EBMA = Value((CAMG- CAMTCS)) + EBMB = Value((PDG - PRDSTO)) + EBMZ = Value(( (CAMSTO-CAMTCS) / (EBMA + EBMB) ) * 100.0) +else: + EBMZ = Value(0) + +# +# Define %encroached format +# Anything >= 99.5 will round to 100 and overflow the B(NZ) format +# +if BLBZ >= 99.5: + BLBF = Value(BLBZ, + PICTURE="(%3.0f)", + ) +elif BLBZ >= 0.0: + BLBF = Value(BLBZ, + PICTURE="(%3.0f)", + ) + ##ELSE + # %BLBF =" ( 0) " PICTURE = AAAAA + +#SHOW %BLBZ +#SHOW %BLBF +if NHGZ >= 99.5: + NHGF = Value(NHGZ, + PICTURE="(%3.0f)", + ) +elif NHGZ >= 0.0: + NHGF = Value(NHGZ, + PICTURE="(%3.0f)", + ) +else: + NHGF = Value(" ", + PICTURE="%B", + ) + +#SHOW %NHGZ +#SHOW %NHGF +if BUCZ >= 99.5: + BUCF = Value(BUCZ, + PICTURE="(%3.0f)", + ) +elif BUCZ >= 0.0: + BUCF = Value(BUCZ, + PICTURE="(%3.0f)", + ) +else: + BUCF = Value(" ", + PICTURE="%B", + ) + +#SHOW %BUCZ +#SHOW %BUCF +if HIDZ >= 99.5: + HIDF = Value(HIDZ, + PICTURE="(%3.0f)", + ) +elif HIDZ >= 0.0: + HIDF = Value(HIDZ, + PICTURE="(%3.0f)", + ) +else: + HIDF = Value(" ", + PICTURE="%B", + ) + +#SHOW %HIDZ +#SHOW %HIDF +if PNFZ >= 99.5: + PNFF = Value(PNFZ, + PICTURE="(%3.0f)", + ) +elif PNFZ >= 0.0: + PNFF = Value(PNFZ, + PICTURE="(%3.0f)", + ) +else: + PNFF = Value(" ", + PICTURE="%B", + ) + +#SHOW %PNFZ +#SHOW %PNFF +if TRMZ >= 99.5: + TRMF = Value(TRMZ, + PICTURE="(%3.0f)", + ) +elif TRMZ >= 0.0: + TRMF = Value(TRMZ, + PICTURE="(%3.0f)", + ) +else: + TRMF = Value(" ", + PICTURE="%B", + ) + +#SHOW %TRMZ +#SHOW %TRMF +if SCCZ >= 99.5: + SCCF = Value(SCCZ, + PICTURE="(%3.0f)", + ) +elif SCCZ >= 0.0: + SCCF = Value(SCCZ, + PICTURE="(%3.0f)", + ) +else: + SCCF = Value(" ", + PICTURE="%B", + ) + +#SHOW %SCCZ +#SHOW %SCCF +# #IF %ISBZ >= 99.5 +# %ISBF = %ISBZ PICTURE = (NNZ) +# #ELSEIF %ISBZ > 0.0 +# %ISBF = %ISBZ PICTURE = B(NZ) +# #ELSE +# %ISBF =" " PICTURE = AAAAA +# #ENDIF +# #SHOW %ISBZ +# #SHOW %ISBF +if COYZ >= 99.5: + COYF = Value(COYZ, + PICTURE="(%3.0f)", + ) +elif COYZ >= 0.0: + COYF = Value(COYZ, + PICTURE="(%3.0f)", + ) +else: + COYF = Value(" ", + PICTURE="%B", + ) + +#SHOW %COYZ +#SHOW %COYF +if WRSZ >= 99.5: + WRSF = Value(WRSZ, + PICTURE="(%3.0f)", + ) +elif WRSZ >= 0.0: + WRSF = Value(WRSZ, + PICTURE="(%3.0f)", + ) +else: + WRSF = Value(" ", + PICTURE="%B", + ) + +#SHOW %WRSZ +#SHOW %WRSF +if FRMZ >= 99.5: + FRMF = Value(FRMZ, + PICTURE="(%3.0f)", + ) +elif FRMZ >= 0.0: + FRMF = Value(FRMZ, + PICTURE="(%3.0f)", + ) +else: + FRMF = Value(" ", + PICTURE="%B", + ) + +#SHOW %FRMZ +#SHOW %FRMF +if BURZ >= 99.5: + BURF = Value(BURZ, + PICTURE="(%3.0f)", + ) +elif BURZ >= 0.0: + BURF = Value(BURZ, + PICTURE="(%3.0f)", + ) +else: + BURF = Value(" ", + PICTURE="%B", + ) + +#SHOW %BURZ +#SHOW %BURF +if BARZ >= 99.5: + BARF = Value(BARZ, + PICTURE="(%3.0f)", + ) +elif BARZ >= 0.0: + BARF = Value(BARZ, + PICTURE="(%3.0f)", + ) +else: + BARF = Value(" ", + PICTURE="%B", + ) + +#SHOW %BARZ +#SHOW %BARF +if OWNZ >= 99.5: + OWNF = Value(OWNZ, + PICTURE="(%3.0f)", + ) +elif OWNZ >= 0.0: + OWNF = Value(OWNZ, + PICTURE="(%3.0f)", + ) +else: + OWNF = Value(" ", + PICTURE="%B", + ) + +#SHOW %OWNZ +#SHOW %OWNF +if MARZ >= 99.5: + MARF = Value(MARZ, + PICTURE="(%3.0f)", + ) +elif MARZ >= 0.0: + MARF = Value(MARZ, + PICTURE="(%3.0f)", + ) +else: + MARF = Value(" ", + PICTURE="%B", + ) + +#SHOW %MARZ +#SHOW %MARF +if SHAZ >= 99.5: + SHAF = Value(SHAZ, + PICTURE="(%3.0f)", + ) +elif SHAZ >= 0.0: + SHAF = Value(SHAZ, + PICTURE="(%3.0f)", + ) +else: + SHAF = Value(" ", + PICTURE="%B", + ) + +##SHOW %SHAZ +##SHOW %SHAF +if FOLZ12 >= 99.5: + FOLF12 = Value(FOLZ12, + PICTURE="(%3.0f)", + ) +elif FOLZ12 >= 0.0: + FOLF12 = Value(FOLZ12, + PICTURE="(%3.0f)", + ) +else: + FOLF12 = Value(" ", + PICTURE="%B", + ) + +if FOLZ18 >= 99.5: + FOLF18 = Value(FOLZ18, + PICTURE="(%3.0f)", + ) +elif FOLZ18 >= 0.0: + FOLF18 = Value(FOLZ18, + PICTURE="(%3.0f)", + ) +else: + FOLF18 = Value(" ", + PICTURE="%B", + ) + +if FOLZ00 >= 99.5: + FOLF00 = Value(FOLZ00, + PICTURE="(%3.0f)", + ) +elif FOLZ00 >= 0.0: + FOLF00 = Value(FOLZ00, + PICTURE="(%3.0f)", + ) +else: + FOLF00 = Value(" ", + PICTURE="%B", + ) + +if FOLZ06 >= 99.5: + FOLF06 = Value(FOLZ06, + PICTURE="(%3.0f)", + ) +elif FOLZ06 >= 0.0: + FOLF06 = Value(FOLZ06, + PICTURE="(%3.0f)", + ) +else: + FOLF06 = Value(" ", + PICTURE="%B", + ) + +##SHOW %FOLZ +##SHOW %FOLF +if SACZ >= 99.5: + SACF = Value(SACZ, + PICTURE="(%3.0f)", + ) +elif SACZ >= 0.0: + SACF = Value(SACZ, + PICTURE="(%3.0f)", + ) +else: + SACF = Value(" ", + PICTURE="%B", + ) + +##SHOW %SACZ +##SHOW %SACF +if FRIZ >= 99.5: + FRIF = Value(FRIZ, + PICTURE="(%3.0f)", + ) +elif FRIZ >= 0.0: + FRIF = Value(FRIZ, + PICTURE="(%3.0f)", + ) +else: + FRIF = Value(" ", + PICTURE="%B", + ) + +##SHOW %FRIZ +##SHOW %FRIF +if OROZ >= 99.5: + OROF = Value(OROZ, + PICTURE="(%3.0f)", + ) +elif OROZ >= 0.0: + OROF = Value(OROZ, + PICTURE="(%3.0f)", + ) +else: + OROF = Value(" ", + PICTURE="%B", + ) + +##SHOW %OROZ +##SHOW %OROF +if LOSZ >= 99.5: + LOSF = Value(LOSZ, + PICTURE="(%3.0f)", + ) +elif LOSZ >= 0.0: + LOSF = Value(LOSZ, + PICTURE="(%3.0f)", + ) +else: + LOSF = Value(" ", + PICTURE="%B", + ) + +##SHOW %LOSZ +##SHOW %LOSF +if NBBZ >= 99.5: + NBBF = Value(NBBZ, + PICTURE="(%3.0f)", + ) +elif NBBZ >= 0.0: + NBBF = Value(NBBZ, + PICTURE="(%3.0f)", + ) +else: + NBBF = Value(" ", + PICTURE="%B", + ) + +##SHOW %NBBZ +##SHOW %NBBF +if CAMZ >= 99.5: + CAMF = Value(CAMZ, + PICTURE="(%3.0f)", + ) +elif CAMZ >= 0.0: + CAMF = Value(CAMZ, + PICTURE="(%3.0f)", + ) +else: + CAMF = Value(" ", + PICTURE="%B", + ) + +##SHOW %CAMZ +##SHOW %CAMF +if DONZ >= 99.5: + DONF = Value(DONZ, + PICTURE="(%3.0f)", + ) +elif DONZ >= 0.0: + DONF = Value(DONZ, + PICTURE="(%3.0f)", + ) +else: + DONF = Value(" ", + PICTURE="%B", + ) + +##SHOW %DONZ +##SHOW %DONF +if NEXZ >= 99.5: + NEXF = Value(NEXZ, + PICTURE="(%3.0f)", + ) +elif NEXZ >= 0.0: + NEXF = Value(NEXZ, + PICTURE="(%3.0f)", + ) +else: + NEXF = Value(" ", + PICTURE="%B", + ) + +##SHOW %NEXZ +##SHOW %NEXF +if NWMZ >= 99.5: + NWMF = Value(NWMZ, + PICTURE="(%3.0f)", + ) +elif NWMZ >= 0.0: + NWMF = Value(NWMZ, + PICTURE="(%3.0f)", + ) +else: + NWMF = Value(" ", + PICTURE="%B", + ) + +##SHOW %NWMZ +##SHOW %NWMF +if TULZ >= 99.5: + TULF = Value(TULZ, + PICTURE="(%3.0f)", + ) +elif TULZ >= 0.0: + TULF = Value(TULZ, + PICTURE="(%3.0f)", + ) +else: + TULF = Value(" ", + PICTURE="%B", + ) + +##SHOW %TULZ +##SHOW %TULF +if INDZ >= 99.5: + INDF = Value(INDZ, + PICTURE="(%3.0f)", + ) +elif INDZ >= 0.0: + INDF = Value(INDZ, + PICTURE="(%3.0f)", + ) +else: + INDF = Value(" ", + PICTURE="%B", + ) + +##SHOW %INDZ +##SHOW %INDF +if DELZ >= 99.5: + DELF = Value(DELZ, + PICTURE="(%3.0f)", + ) +elif DELZ >= 0.0: + DELF = Value(DELZ, + PICTURE="(%3.0f)", + ) +else: + DELF = Value(" ", + PICTURE="%B", + ) + +##SHOW %DELZ +##SHOW %DELF +if MRTZ >= 99.5: + MRTF = Value(MRTZ, + PICTURE="(%3.0f)", + ) +elif MRTZ >= 0.0: + MRTF = Value(MRTZ, + PICTURE="(%3.0f)", + ) +else: + MRTF = Value(" ", + PICTURE="%B", + ) + +##SHOW %MRTZ +##SHOW %MRTF +if PRSZ >= 99.5: + PRSF = Value(PRSZ, + PICTURE="(%3.0f)", + ) +elif PRSZ >= 0.0: + PRSF = Value(PRSZ, + PICTURE="(%3.0f)", + ) +else: + PRSF = Value(" ", + PICTURE="%B", + ) + +##SHOW %PRSZ +##SHOW %PRSF +if BOCZ >= 99.5: + BOCF = Value(BOCZ, + PICTURE="(%3.0f)", + ) +elif BOCZ >= 0.0: + BOCF = Value(BOCZ, + PICTURE="(%3.0f)", + ) +else: + BOCF = Value(" ", + PICTURE="%B", + ) + +##SHOW %BOCZ +##SHOW %BOCF +if STMZ >= 99.5: + STMF = Value(STMZ, + PICTURE="(%3.0f)", + ) +elif STMZ >= 0.0: + STMF = Value(STMZ, + PICTURE="(%3.0f)", + ) +else: + STMF = Value(" ", + PICTURE="%B", + ) + +##SHOW %STMZ +##SHOW %STMF +if BDCZ >= 99.5: + BDCF = Value(BDCZ, + PICTURE="(%3.0f)", + ) +elif BDCZ >= 0.0: + BDCF = Value(BDCZ, + PICTURE="(%3.0f)", + ) +else: + BDCF = Value(" ", + PICTURE="%B", + ) + +##SHOW %BDCZ +##SHOW %BDCF +if EBMZ >= 99.5: + EBMF = Value(EBMZ, + PICTURE="(%3.0f)", + ) +elif EBMZ >= 0.0: + EBMF = Value(EBMZ, + PICTURE="(%3.0f)", + ) +else: + EBMF = Value(" ", + PICTURE="%B", + ) + +##SHOW %EBMZ +##SHOW %EBMF +##IF %ABSZ >= 99.5 +# %ABSF = %ABSZ PICTURE = (NNZ) +##ELSEIF %ABSZ >= 0.0 +# %ABSF = %ABSZ PICTURE = (NNZ) +##ELSE +# %ABSF =" ( x0)" PICTURE = AAAA +##ENDIF +##SHOW %ABSZ +##SHOW %ABSF +##IF %BBSZ >= 99.5 +# %BBSF = %BBSZ PICTURE = (NNZ) +##ELSEIF %BBSZ >= 0.0 +# %BBSF = %BBSZ PICTURE = (NNZ) +##ELSE +# %BBSF =" " PICTURE = AAAAA +##ENDIF +##SHOW %BBSZ +##SHOW %BBSF +##IF %CBSZ >= 99.5 +# %CBSF = %CBSZ PICTURE = (NNZ) +##ELSEIF %CBSZ >= 0.0 +# %CBSF = %CBSZ PICTURE = (NNZ) +##ELSE +# %CBSF =" " PICTURE = AAAAA +##ENDIF +##SHOW %CBSZ +##SHOW %CBSF +##IF %DBSZ >= 99.5 +# %DBSF = %DBSZ PICTURE = (NNZ) +##ELSEIF %DBSZ >= 0.0 +# %DBSF = %DBSZ PICTURE = (NNZ) +##ELSE +# %DBSF =" " PICTURE = AAAAA +##ENDIF +##SHOW %DBSZ +##SHOW %DBSF +##IF %EBSZ >= 99.5 +# %EBSF = %EBSZ PICTURE = (NNZ) +##ELSEIF %EBSZ >= 0.0 +# %EBSF = %EBSZ PICTURE = (NNZ) +##ELSE +# %EBSF =" " PICTURE = AAAAA +##ENDIF +#SHOW %EBSZ +#SHOW %EBSF +# +# +# Define Space Used Above Top Conservation Storage +# +# Define Space Used Above TCS for the non-snowmelt reservoirs. +# IF we are in snowmelt season (01Feb to 31Jul) THEN +# Define Space Used Above TCS for the snowmelt reservoirs as N/A +# (i.e. Not Applicable) +# ELSE +# Display Space Used Above TCS for the snowmelt reservoirs. +# ENDIF +# +BBSP = Value(BBSTO - BBTCS, + PICTURE="%10.0f", + MISSTR=" -NR-", + UNDEF=" -NR-", +) +ENSP = Value(ENSTO - ENTCS) +NHSP = Value(NHSTO - NHTCS) +BUSP = Value(BUSTO - BUTCS) +HDSP = Value(HDSTO - HDTCS) +COSP = Value(COSTO - COTCS) +WSSP = Value(WSSTO - WSTCS) +FMSP = Value(FMSTO - FMTCS) +MRTSP = Value(MRTSTO - MRTTCS) +BURSP = Value(BNSTO - BNTCS) +BARSP = Value(BRSTO - BRTCS) +OWNSP = Value(OWSTO - OWTCS) +MARSP = Value(MRSTO - MRTCS) +SHASP = Value(SHASTO - SHATCS) +FOLSP12 = Value(FLSTO12 - FTCS12) +FOLSP18 = Value(FLSTO18 - FTCS18) +FOLSP00 = Value(FLSTO00 - FTCS00) +FOLSP06 = Value(FLSTO06 - FTCS06) +#%SACSP = %SACSTO - %SACTCS +OROSP = Value(OROSTO - OROTCS) +LOSSP = Value(LOSSTO - LOSTCS) +NBBSP = Value(NBBSTO - NBBTCS) +TULSP = Value(TULSTO - TULTCS) +INDSP = Value(INDSTO - INDTCS) +DELSP = Value(DELSTO - DELTCS) +BDCSP = Value(BDCSTO - BDCTCS) +if CAMSTO > CAMTCS: + EBMSP = Value(EBMSTO - EBMTCS) +else: + EBMSP = Value(" ") + +# %MMMDD = MONOFYR(%BASDATE) * 100 + DAY(%BASDATE) +# #IF 0201 =< %MMMDD AND %MMMDD =< 0731 +# %PFSP = " N/A" +# %TMSP = " N/A" +# %SCSP = " N/A" +# %IBSP = " N/A" +# %FRISP = " N/A" +# %CAMSP = " N/A" +# %DONSP = " N/A" +# %NEXSP = " N/A" +# %NWMSP = " N/A" +# %PRSSP = " N/A" +# %BOCSP = " N/A" +# %STMSP = " N/A" +# #ELSE +PFSP = Value(PFSTO - PFTCS) +TMSP = Value(TMSTO - TMTCS) +SCSP = Value(SCSTO - SCTCS) +IBSP = Value(IBSTO - IBTCS) +FRISP = Value(FRISTO - FRITCS) +CAMSP = Value(CAMSTO - CAMTCS) +DONSP = Value(DONSTO - DONTCS) +NEXSP = Value(NEXSTO - NEXTCS) +NWMSP = Value(NWMSTO - NWMTCS) +PRSSP = Value(PRSSTO - PRSTCS) +BOCSP = Value(BOCSTO - BOCTCS) +STMSP = Value(STMSTO - STMTCS) +# +if CAMSTO > CAMTCS: + EBMSP = Value(EBMSTO - EBMTCS) +else: + EBMSP = Value(" ") + +# %MMMDD = MONOFYR(%BASDATE) * 100 + DAY(%BASDATE) +# #IF 0201 =< %MMMDD AND %MMMDD =< 0731 +# %PFSP = " N/A" +# %TMSP = " N/A" +# %SCSP = " N/A" +# %IBSP = " N/A" +# %FRISP = " N/A" +# %CAMSP = " N/A" +# %DONSP = " N/A" +# %NEXSP = " N/A" +# %NWMSP = " N/A" +# %PRSSP = " N/A" +# %BOCSP = " N/A" +# %STMSP = " N/A" +# #ELSE +# +# +# +# Basin summations of total above top of conservation to include +# only encroached projects. +# +if ENSP <= 0: + ENS = Value(0) +else: + ENS = Value(ENSP) + +if NHSP <= 0: + NHS = Value(0) +else: + NHS = Value(NHSP) + +# +if BUSP <= 0: + BCS = Value(0) +else: + BCS = Value(BUSP) + +# +if HDSP <= 0: + HDS = Value(0) +else: + HDS = Value(HDSP) + +# +if COSP <= 0: + COS = Value(0) +else: + COS = Value(COSP) + +# +if WSSP <= 0: + WSS = Value(0) +else: + WSS = Value(WSSP) + +# +if FMSP <= 0: + FMS = Value(0) +else: + FMS = Value(FMSP) + +# +if MRTSP <= 0: + MRTS = Value(0) +else: + MRTS = Value(MRTSP) + +# +if BURSP <= 0: + BNS = Value(0) +else: + BNS = Value(BURSP) + +# +if BARSP <= 0: + BRS = Value(0) +else: + BRS = Value(BARSP) + +# +if OWNSP <= 0: + OWS = Value(0) +else: + OWS = Value(OWNSP) + +# +if MARSP <= 0: + MRS = Value(0) +else: + MRS = Value(MARSP) + +# +if SHASP <= 0: + SHAS = Value(0) +else: + SHAS = Value(SHASP) + +# +if BBSP <= 0: + BBTS = Value(0) +else: + BBTS = Value(BBSP) + +# +if FOLSP12 <= 0: + FOLS12 = Value(0) +else: + FOLS12 = Value(FOLSP12) + +if FOLSP18 <= 0: + FOLS18 = Value(0) +else: + FOLS18 = Value(FOLSP18) + +if FOLSP00 <= 0: + FOLS00 = Value(0) +else: + FOLS00 = Value(FOLSP00) + +if FOLSP06 <= 0: + FOLS06 = Value(0) +else: + FOLS06 = Value(FOLSP06) + +# #IF %SACSP =< 0 +# %SACS = 0 +# #ELSE +# %SACS = %SACSP +# #ENDIF +## +if OROSP <= 0: + OROS = Value(0) +else: + OROS = Value(OROSP) + +## +if LOSSP <= 0: + LOSS = Value(0) +else: + LOSS = Value(LOSSP) + +## +if NBBSP <= 0: + NBBS = Value(0) +else: + NBBS = Value(NBBSP) + +## +if TULSP <= 0: + TULS = Value(0) +else: + TULS = Value(TULSP) + +# +if INDSP <= 0: + INDS = Value(0) +else: + INDS = Value(INDSP) + +## +if DELSP <= 0: + DELS = Value(0) +else: + DELS = Value(DELSP) + +## +if BDCSP <= 0: + BDCS = Value(0) +else: + BDCS = Value(BDCSP) + +## +if PFSP <= 0: + PFS = Value(0) +else: + PFS = Value(PFSP) + +# +if TMSP <= 0: + TMS = Value(0) +else: + TMS = Value(TMSP) + +# +if SCSP <= 0: + SCS = Value(0) +else: + SCS = Value(SCSP) + +# +if IBSP <= 0: + IBS = Value(0) +else: + IBS = Value(IBSP) + +# +if FRISP <= 0: + FRIS = Value(0) +else: + FRIS = Value(FRISP) + +## +if CAMSP <= 0: + CAMS = Value(0) +else: + CAMS = Value(CAMSP) + +## +if DONSP <= 0: + DONS = Value(0) +else: + DONS = Value(DONSP) + +## +if NEXSP <= 0: + NEXS = Value(0) +else: + NEXS = Value(NEXSP) + +## +if NWMSP <= 0: + NWMS = Value(0) +else: + NWMS = Value(NWMSP) + +## +if PRSSP <= 0: + PRSS = Value(0) +else: + PRSS = Value(PRSSP) + +## +if BOCSP <= 0: + BOCS = Value(0) +else: + BOCS = Value(BOCSP) + +## +if STMSP <= 0: + STMS = Value(0) +else: + STMS = Value(STMSP) + +# +# Summation of volumes above the allowable. +# +# +BB10 = Value( + DBLOC="Black Butte-Pool", + DBPAR="Stor", + DBPTYP="Ave", + DBINT="~1Day", + DBDUR="1Decade", + DBVER="Calc-val", + PICTURE="%9.0f", + MISSTR=" -NR-", + UNDEF=" -NR-", + TIME=BASDATE, + DBTZ="PST8PDT", + DBUNITS="ac-ft", +) +# DBLOC="Black Butte-Pool" DBPAR=Elev DBPTYP=Inst DBDUR=0 DBVER=Calc-val +EN10 = Value( + DBLOC="Englebright Lake-Pool", +) +NH10 = Value( + DBLOC="New Hogan-Pool", +) +BU10 = Value( + DBLOC="Eastman Lake-Pool", +) +HD10 = Value( + DBLOC="Hensley lake-Pool", +) +PF10 = Value( + DBLOC="Pine Flat Lake-Pool", +) +TM10 = Value( + DBLOC="Lake Kaweah-Pool", +) +SC10 = Value( + DBLOC="Success Lake-Pool", +) +IB10 = Value( + DBLOC="Lake Isabella-Pool", +) +CO10 = Value( + DBLOC="Lake Mendocino-Pool", +) +WS10 = Value( + DBLOC="Lake Sonoma-Pool", +) +MRT10 = Value( + DBLOC="Martis Creek-Pool", +) +FM10 = Value( + DBLOC="Farmington Dam-Pool", +) +BN10 = Value( + DBLOC="Burns-Pool", +) +BR10 = Value( + DBLOC="Bear-Pool", +) +OW10 = Value( + DBLOC="Owens-Pool", +) +MR10 = Value( + DBLOC="Mariposa-Pool", +) +EPK10 = Value( + DBLOC="East Park", + DBVER="Thumb-raw", +) +STG10 = Value( + DBLOC="Stony Gorge", +) +CRT10 = Value( + DBLOC="Courtright", + DBVER="Thumb-raw", +) +# A=KINGS B=COURTRIGHT F= +WSH10 = Value( + DBLOC="Wishon", +) +# A=KINGS B=WISHON +SHA10 = Value( + DBLOC="Shasta", + DBVER="Raw-USBR-Combined", +) +# FILE = /dat0/rtsc7db.dss TYPE=DSS +# A=SACRAMENTO B=SHASTA F= +FOL10 = Value( + DBLOC="Folsom Lake", +) +# A=AMERICAN B=FOLSOM +#%SAC10 = %FOLSTO +# A=SAN JOAQUIN B=FRIANT +ORO10 = Value( + DBLOC="Oroville Dam", + DBVER="Calc-cdec", +) +# A=FEATHER B=OROVILLE +NBB10 = Value( + DBLOC="New Bullards Bar", + DBVER="Calc-cdec", +) +# A=NORTH YUBA B=NEW BULLARDS BAR +IND10 = Value( + DBLOC="Indian Valley", + DBVER="Calc-usgs", +) +# A=NF CACHE CR B=INDIAN VALLEY +UNV10 = Value( + DBLOC="Union Valley", + DBVER="Calc-cdec", +) +# A=AMERICAN B=UNION VALLEY +FMD10 = Value( + DBLOC="French Meadows", + DBVER="Calc-confidential", +) +# A=AMERICAN B=FRENCH MEADOWS +HHL10 = Value( + DBLOC="Hell Hole", +) +# A=AMERICAN B=HELL HOLE +NWM10 = Value( + DBLOC="New Melones", + DBVER="Raw-USBR-Combined", +) +# A=STANISLAUS B=NEW MELONES +BRD10 = Value( + DBLOC="Beardsley Lake", +) +# A=STANISLAUS B=BEARDSLEY +DNL10 = Value( + DBLOC="Donnells", +) +# A=STANISLAUS B=DONNELLS +TUL10 = Value( + DBLOC="Tulloch", +) +# A=STANISLAUS B=TULLOCH +FRI10 = Value( + DBLOC="Friant Dam", +) +MAM10 = Value( + DBLOC="Mammoth Pool", +) +# A=SAN JOAQUIN B=MAMMOTH POOL +MTS10 = Value( + DBLOC="Friant Dam", + DBPAR="Stor-Total Upstream", +) +# A=SAN JOAQUIN B=FRIANT C=10R-TOT U\S +CAM10 = Value( + DBLOC="Camanche", + DBPAR="Stor", + DBVER="MANUAL", +) +# A=MOKELUMNE B=CAMANCHE +DON10 = Value( + DBLOC="Don Pedro", +) +# A=TUOLUMNE B=NEW DON PEDRO +NEX10 = Value( + DBLOC="New Exchequer", +) +# A=MERCED B=NEW EXCHEQUER +PRD10 = Value( + DBLOC="Pardee", +) +# A=MOKELUMNE B=PARDEE +EBM10 = Value((CAMSTO + PRDSTO)) +SSP10 = Value( + DBLOC="Mokelumne R-Salt Springs", +) +# A=MOKELUMNE B=SALT SPRINGS +LBR10 = Value( + DBLOC="Lower Bear", +) +# A=MOKELUMNE B=LOWER BEAR +HTH10 = Value( + DBLOC="Hetch Hetchy", +) +# A=TUOLUMNE B=HETCH HETCHY +CHV10 = Value( + DBLOC="Cherry Valley", +) +# A=TUOLUMNE B=CHERRY VALLEY +LKL10 = Value( + DBLOC="Lake Eleanor", +) +# A=TUOLUMNE B=ELEANOR +DEL10 = Value( + DBLOC="Del Valle", +) +# A=ALAMEDA CR B=DEL VALLE +PRS10 = Value( + DBLOC="Prosser", +) +# A=PROSSER CR B=PROSSER CR +BOC10 = Value( + DBLOC="Boca", +) +# A=LITTLE TRUCKEE B=BOCA +STM10 = Value( + DBLOC="Stampede", +) +# A=LITTLE TRUCKEE B=STAMPEDE +BDC10 = Value( + DBLOC="Big Dry Cr", +) +LOS10 = Value( + DBLOC="Los Banos", +) +SHA10P = Value((SHASTO/SHA10)*100, + PICTURE="%9.0f", +) +BB10P = Value((BBSTO/BB10)*100) +ORO10P = Value((OROSTO/ORO10)*100) +NBB10P = Value((NBBSTO/NBB10)*100) +EN10P = Value((ENSTO/EN10)*100) +IND10P = Value((INDSTO/IND10)*100) +FOL10P = Value((FOLSTO/FOL10)*100) +CAM10P = Value((CAMSTO/CAM10)*100) +NH10P = Value((NHSTO/NH10)*100) +FM10P = Value((FMSTO/FM10)*100) +NWM10P = Value((NWMSTO/NWM10)*100) +TUL10P = Value((TULSTO/TUL10)*100) +DON10P = Value((DONSTO/DON10)*100) +NEX10P = Value((NEXSTO/NEX10)*100) +BN10P = Value((BNSTO/BN10)*100) +BR10P = Value((BRSTO/BR10)*100) +OW10P = Value((OWSTO/(OW10+0.001))*100) +MR10P = Value((MRSTO/(MR10+0.001))*100) +LOS10P = Value((LOSSTO/LOS10)*100) +BU10P = Value((BUSTO/BU10)*100) +HD10P = Value((HDSTO/HD10)*100) +FRI10P = Value((FRISTO/FRI10)*100) +BDC10P = Value((BDCSTO/BDC10)*100) +PF10P = Value((PFSTO/PF10)*100) +TM10P = Value((TMSTO/TM10)*100) +SC10P = Value((SCSTO/SC10)*100) +IB10P = Value((IBSTO/IB10)*100) +MRT10P = Value((MRTSTO/MRT10)*100) +PRS10P = Value((PRSSTO/PRS10)*100) +BOC10P = Value((BOCSTO/BOC10)*100) +STM10P = Value((STMSTO/STM10)*100) +CO10P = Value((COSTO/CO10)*100) +WS10P = Value((WSSTO/WS10)*100) +DEL10P = Value((DELSTO/DEL10)*100) +BBSA = Value(BBG - BBSTO, + PICTURE="%10.0f", + MISSTR=" -NR-", + UNDEF=" -NR-", +) +ENSA = Value(ENG - ENSTO) +NHSA = Value(NHG - NHSTO) +BUSA = Value(BUG - BUSTO) +HDSA = Value(HDG - HDSTO) +COSA = Value(COG - COSTO) +WSSA = Value(WSG - WSSTO) +FMSA = Value(FMG - FMSTO) +MRTSA = Value(MRTG - MRTSTO) +BURSA = Value(BNG - BNSTO) +BARSA = Value(BRG - BRSTO) +OWNSA = Value(OWG - OWSTO) +MARSA = Value(MRG - MRSTO) +SHASA = Value(SHAG - SHASTO) +FOLSA = Value(FOLG - FOLSTO, + MISSTR=" -NF-", + UNDEF=" -NF-", +) +FOLSA12 = Value(FOLG - FLSTO12) +FOLSA18 = Value(FOLG - FLSTO18) +FOLSA00 = Value(FOLG - FLSTO00) +FOLSA06 = Value(FOLG - FLSTO06) +#%SACSA = %SACG - %SACSTO +OROSA = Value(OROG - OROSTO, + MISSTR=" -NR-", + UNDEF=" -NR-", +) +LOSSA = Value(LOSG - LOSSTO) +NBBSA = Value(NBBG - NBBSTO) +TULSA = Value(TULG - TULSTO) +INDSA = Value(INDG - INDSTO) +DELSA = Value(DELG - DELSTO) +BDCSA = Value(BDCG - BDCSTO) +# #IF %CAMG > %CAMSTO +# %EBMSA = %EBMG - %EBMSTO +# #ELSE +# %EBMSA = " " +# #ENDIF +# %MMMDD = MONOFYR(%BASDATE) * 100 + DAY(%BASDATE) +# #IF 0201 =< %MMMDD AND %MMMDD =< 0731 +# %PFSA = " N/A" +# %TMSA = " N/A" +# %SCSA = " N/A" +# %IBSA = " N/A" +# %FRISA = " N/A" +# %CAMSA = " N/A" +# %DONSA = " N/A" +# %NEXSA = " N/A" +# %NWMSA = " N/A" +# %PRSSA = " N/A" +# %BOCSA = " N/A" +# %STMSA = " N/A" +# #ELSE +PFSA = Value(PFG - PFSTO) +TMSA = Value(TMG - TMSTO) +SCSA = Value(SCG - SCSTO) +IBSA = Value(IBG - IBSTO) +FRISA = Value(FRIG - FRISTO) +CAMSA = Value(CAMG - CAMSTO) +DONSA = Value(DONG - DONSTO) +NEXSA = Value(NEXG - NEXSTO) +NWMSA = Value(NWMG - NWMSTO) +PRSSA = Value(PRSG - PRSSTO) +BOCSA = Value(BOCG - BOCSTO) +STMSA = Value(STMG - STMSTO) +# +# #IF %CAMG > %CAMSTO +# %EBMSA = %EBMG - %EBMSTO +# #ELSE +# %EBMSA = " " +# #ENDIF +# %MMMDD = MONOFYR(%BASDATE) * 100 + DAY(%BASDATE) +# #IF 0201 =< %MMMDD AND %MMMDD =< 0731 +# %PFSA = " N/A" +# %TMSA = " N/A" +# %SCSA = " N/A" +# %IBSA = " N/A" +# %FRISA = " N/A" +# %CAMSA = " N/A" +# %DONSA = " N/A" +# %NEXSA = " N/A" +# %NWMSA = " N/A" +# %PRSSA = " N/A" +# %BOCSA = " N/A" +# %STMSA = " N/A" +# #ELSE +# +# +# +# Basin summations of total above top of conservation to include +# only encroached projects. +# +if ENSA <= 0: + ENA = Value(0) +else: + ENA = Value(ENSA) + +if NHSA <= 0: + NHA = Value(0) +else: + NHA = Value(NHSA) + +# +if BUSA <= 0: + BCA = Value(0) +else: + BCA = Value(BUSA) + +# +if HDSA <= 0: + HDA = Value(0) +else: + HDA = Value(HDSA) + +# +if COSA <= 0: + COA = Value(0) +else: + COA = Value(COSA) + +# +if WSSA <= 0: + WSA = Value(0) +else: + WSA = Value(WSSA) + +# +if FMSA <= 0: + FMA = Value(0) +else: + FMA = Value(FMSA) + +# +if MRTSA <= 0: + MRTA = Value(0) +else: + MRTA = Value(MRTSA) + +# +if BURSA <= 0: + BNA = Value(0) +else: + BNA = Value(BURSA) + +# +if BARSA <= 0: + BRA = Value(0) +else: + BRA = Value(BARSA) + +# +if OWNSA <= 0: + OWA = Value(0) +else: + OWA = Value(OWNSA) + +# +if MARSA <= 0: + MRA = Value(0) +else: + MRA = Value(MARSA) + +# +if SHASA <= 0: + SHAA = Value(0) +else: + SHAA = Value(SHASA) + +# +if BBSA <= 0: + BBTA = Value(0) +else: + BBTA = Value(BBSA) + +# +if FOLSA <= 0: + FOLA = Value(0) +else: + FOLA = Value(FOLSA) + +if FOLSA12 <= 0: + FOLA12 = Value(0) +else: + FOLA12 = Value(FOLSA12) + +if FOLSA18 <= 0: + FOLA18 = Value(0) +else: + FOLA18 = Value(FOLSA18) + +if FOLSA00 <= 0: + FOLA00 = Value(0) +else: + FOLA00 = Value(FOLSA00) + +if FOLSA06 <= 0: + FOLA06 = Value(0) +else: + FOLA06 = Value(FOLSA06) + +# #IF %SACSA =< 0 +# %SACA = 0 +# #ELSE +# %SACA = %SACSA +# #ENDIF +## +if OROSA <= 0: + OROA = Value(0) +else: + OROA = Value(OROSA) + +## +if LOSSA <= 0: + LOSA = Value(0) +else: + LOSA = Value(LOSSA) + +## +if NBBSA <= 0: + NBBA = Value(0) +else: + NBBA = Value(NBBSA) + +## +if TULSA <= 0: + TULA = Value(0) +else: + TULA = Value(TULSA) + +# +if INDSA <= 0: + INDA = Value(0) +else: + INDA = Value(INDSA) + +## +if DELSA <= 0: + DELA = Value(0) +else: + DELA = Value(DELSA) + +## +if BDCSA <= 0: + BDCA = Value(0) +else: + BDCA = Value(BDCSA) + +## +if PFSA <= 0: + PFA = Value(0) +else: + PFA = Value(PFSA) + +# +if TMSA <= 0: + TMA = Value(0) +else: + TMA = Value(TMSA) + +# +if SCSA <= 0: + SCA = Value(0) +else: + SCA = Value(SCSA) + +# +if IBSA <= 0: + IBA = Value(0) +else: + IBA = Value(IBSA) + +# +if FRISA <= 0: + FRIA = Value(0) +else: + FRIA = Value(FRISA) + +## +if CAMSA <= 0: + CAMA = Value(0) +else: + CAMA = Value(CAMSA) + +## +if DONSA <= 0: + DONA = Value(0) +else: + DONA = Value(DONSA) + +## +if NEXSA <= 0: + NEXA = Value(0) +else: + NEXA = Value(NEXSA) + +## +if NWMSA <= 0: + NWMA = Value(0) +else: + NWMA = Value(NWMSA) + +## +if PRSSA <= 0: + PRSA = Value(0) +else: + PRSA = Value(PRSSA) + +## +if BOCSA <= 0: + BOCA = Value(0) +else: + BOCA = Value(BOCSA) + +## +if STMSA <= 0: + STMA = Value(0) +else: + STMA = Value(STMSA) + +BBO = Value( + DBLOC="Black Butte", + DBPTYP="Ave", + DBPAR="Flow-Res Out", + DBVER="Calc-val", + DBINT="~1Day", + DBDUR="1Day", + PICTURE="%10.0f", + MISSTR=" -NR-", + UNDEF=" -NR-", + TIME=BASDATE, + DBUNITS="cfs", + DBTZ="PST8PDT", +) +NHO = Value( + DBLOC="New Hogan", +) +BUO = Value( + DBLOC="Eastman Lake", +) +HDO = Value( + DBLOC="Hensley Lake", +) +PFO = Value( + DBLOC="Pine Flat Lake", +) +TMO = Value( + DBLOC="Lake Kaweah", +) +SCO = Value( + DBLOC="Success Lake", +) +IBO = Value( + DBLOC="Lake Isabella", +) +COO = Value( + DBLOC="Lake Mendocino", +) +WSO = Value( + DBLOC="Lake Sonoma", +) +MRTO = Value( + DBLOC="Martis Creek", +) +BNO = Value( + DBLOC="Burns", +) +BRO = Value( + DBLOC="Bear", +) +OWO = Value( + DBLOC="Owens", +) +MRO = Value( + DBLOC="Mariposa", +) +FMO = Value( + DBLOC="Farmington Dam", + DBVER="Calc-RCF+FRMQ", +) +ENO = Value( + DBLOC="Englebright Lake", + DBVER="Calc-thumb", +) +SHAO = Value( + DBLOC="Shasta", + DBVER="Calc-usbr", +) +FOLO = Value( + DBLOC="Folsom Lake", + MISSTR=" -NR-", + UNDEF=" -NR-", +) +NWMO = Value( + DBLOC="New Melones", +) +TULO = Value( + DBLOC="Tulloch", +) +FRIO = Value( + DBLOC="Friant Dam", + DBVER="Calc-usbr", +) +OROO = Value( + DBLOC="Oroville Dam", + DBVER="MANUAL", + MISSTR=" -NR-", + UNDEF=" -NR-", +) +INDO = Value( + DBLOC="Indian Valley", +) +LOSO = Value( + DBLOC="Los Banos", +) +DELO = Value( + DBLOC="Del Valle", +) +DONO = Value( + DBLOC="Don Pedro", +) +CAMO = Value( + DBLOC="Camanche", +) +NEXO = Value( + DBLOC="New Exchequer", +) +PRSO = Value( + DBLOC="Prosser", +) +BOCO = Value( + DBLOC="Boca", +) +STMO = Value( + DBLOC="Stampede", +) +BDCO = Value( + DBLOC="Big Dry Cr", +) +NBBO = Value( + DBLOC="New Bullards Bar", + DBVER="Calc-cdec", +) +FOLO12 = Value( + DBLOC="Folsom Lake", + DBPAR="Flow-Reservoir Outflow", + DBPTYP="Inst", + DBINT="1Hour", + DBDUR=0, + DBVER="CDEC-confidential-raw", + MISSTR=" -NR-", + UNDEF=" -NR-", + DBTZ="UTC", + TIME=T12, +) +FOLO18 = Value( + TIME=T18, +) +FOLO00 = Value( + TIME=T00, +) +FOLO06 = Value( + TIME=T06, +) +BBI = Value( + DBLOC="Black Butte", + DBPTYP="Ave", + DBPAR="Flow-Res In", + DBVER="Calc-val", + DBINT="~1Day", + DBDUR="1Day", + PICTURE="%10.0f", + MISSTR=" -NR-", + UNDEF=" -NR-", + TIME=BASDATE, + DBUNITS="cfs", + DBTZ="PST8PDT", +) +NHI = Value( + DBLOC="New Hogan", +) +BUI = Value( + DBLOC="Eastman Lake", +) +HDI = Value( + DBLOC="Hensley Lake", +) +PFI = Value( + DBLOC="Pine Flat Lake", +) +TMI = Value( + DBLOC="Lake Kaweah", +) +SCI = Value( + DBLOC="Success Lake", +) +IBI = Value( + DBLOC="Lake Isabella", +) +COI = Value( + DBLOC="Lake Mendocino", +) +WSI = Value( + DBLOC="Lake Sonoma", +) +MRTI = Value( + DBLOC="Martis Creek", +) +BNI = Value( + DBLOC="Burns", +) +BRI = Value( + DBLOC="Bear", +) +OWI = Value( + DBLOC="Owens", +) +MRI = Value( + DBLOC="Mariposa", +) +FMI = Value( + DBLOC="Farmington Dam", + DBVER="Calc-RCF+FRMQ", +) +ENI = Value( + DBLOC="Englebright Lake", + DBVER="Calc-val", +) +SHAI = Value( + DBLOC="Shasta", + DBVER="Raw-USBR-Combined", +) +FOLI = Value( + DBLOC="Folsom Lake", + MISSTR=" -NR-", + UNDEF=" -NR-", +) +NWMI = Value( + DBLOC="New Melones", +) +TULI = Value( + DBLOC="Tulloch", +) +FRII = Value( + DBLOC="Friant Dam", +) +OROI = Value( + DBLOC="Oroville Dam", + DBVER="MANUAL", + MISSTR=" -NR-", + UNDEF=" -NR-", +) +INDI = Value( + DBLOC="Indian Valley", +) +LOSI = Value( + DBLOC="Los Banos", +) +DELI = Value( + DBLOC="Del Valle", +) +DONI = Value( + DBLOC="Don Pedro", +) +CAMI = Value( + DBLOC="Camanche", +) +NEXI = Value( + DBLOC="New Exchequer", +) +PRSI = Value( + DBLOC="Prosser", +) +BOCI = Value( + DBLOC="Boca", +) +STMI = Value( + DBLOC="Stampede", +) +BDCI = Value( + DBLOC="Big Dry Cr", +) +NBBI = Value( + DBLOC="New Bullards Bar", + DBVER="Calc-cdec", +) +FOLI12 = Value( + DBLOC="Folsom Lake", + DBVER="Raw-USBR-Combined", + DBINT="1Hour", + DBPTYP="Ave", + DBDUR="1Hour", + DBTZ="UTC", + TIME=T12, +) +FOLI18 = Value( + TIME=T18, +) +FOLI00 = Value( + TIME=T00, +) +FOLI06 = Value( + TIME=T06, +) +# A=SAN JOAQUIN B=FRIANT F= +# A=NORTH YUBA B=NEW BULLARDS BAR +UTDATE = Value(BASDATE) +T1 = Value(UTDATE-timedelta(years=9), + PICTURE="%d%b%Y", +) +T2 = Value(UTDATE-timedelta(years=8)) +T3 = Value(UTDATE-timedelta(years=7)) +T4 = Value(UTDATE-timedelta(years=6)) +T5 = Value(UTDATE-timedelta(years=5)) +T6 = Value(UTDATE-timedelta(years=4)) +T7 = Value(UTDATE-timedelta(years=3)) +T8 = Value(UTDATE-timedelta(years=2)) +T9 = Value(UTDATE-timedelta(years=1)) +EOSTO = Value( + PICTURE=" %7.0f", + MISSTR=" -NR-", + UNDEF=" ", + TIME=UTDATE, + DBTZ="MST7MDT", + DBLOC="Echo", + DBPTYP="Inst", + DBPAR="Stor", + DBINT="~1Day", + DBDUR=0, + DBVER="Raw-USBRSLC", + DBUNITS="ac-ft", + A="WEBER", + B="ECHO", + C="STOR-RES EOP", + E="1DAY", +) +# FILE = /shared/rtsc7db.dss TYPE=DSS +EO1 = Value( + TIME=T1, +) +EO2 = Value( + TIME=T2, +) +EO3 = Value( + TIME=T3, +) +EO4 = Value( + TIME=T4, +) +EO5 = Value( + TIME=T6, +) +EO6 = Value( + TIME=T6, +) +EO7 = Value( + TIME=T7, +) +EO8 = Value( + TIME=T8, +) +EO9 = Value( + TIME=T9, +) +EO10 = Value(Value.average(EOSTO, EO1, EO2, EO3, EO4, EO5, EO6, EO7, EO8, EO9, treat="IGNORE")) +RKSTO = Value( + DBLOC="Rockport", + DBVER="Rev-USBRSLC", + TIME=UTDATE, +) +RK1 = Value( + TIME=T1, +) +RK2 = Value( + TIME=T2, +) +RK3 = Value( + TIME=T3, +) +RK4 = Value( + TIME=T4, +) +RK5 = Value( + TIME=T6, +) +RK6 = Value( + TIME=T6, +) +RK7 = Value( + TIME=T7, +) +RK8 = Value( + TIME=T8, +) +RK9 = Value( + TIME=T9, +) +RK10 = Value(Value.average(RKSTO, RK1, RK2, RK3, RK4, RK5, RK6, RK7, RK8, RK9, treat="IGNORE")) +ERSTO = Value( + DBLOC="EchoRockport", + TIME=UTDATE, +) +ER1 = Value( + TIME=T1, +) +ER2 = Value( + TIME=T2, +) +ER3 = Value( + TIME=T3, +) +ER4 = Value( + TIME=T4, +) +ER5 = Value( + TIME=T6, +) +ER6 = Value( + TIME=T6, +) +ER7 = Value( + TIME=T7, +) +ER8 = Value( + TIME=T8, +) +ER9 = Value( + TIME=T9, +) +ER10 = Value(Value.average(ERSTO, ER1, ER2, ER3, ER4, ER5, ER6, ER7, ER8, ER9, treat="IGNORE")) +LCSTO = Value( + DBLOC="Lost Cr", + A="LOST CR", + B="LOST CR", + TIME=UTDATE, +) +LC1 = Value( + TIME=T1, +) +LC2 = Value( + TIME=T2, +) +LC3 = Value( + TIME=T3, +) +LC4 = Value( + TIME=T4, +) +LC5 = Value( + TIME=T6, +) +LC6 = Value( + TIME=T6, +) +LC7 = Value( + TIME=T7, +) +LC8 = Value( + TIME=T8, +) +LC9 = Value( + TIME=T9, +) +LC10 = Value(Value.average(LCSTO, LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, LC9, treat="IGNORE")) +ECSTO = Value( + DBLOC="East Canyon", + A="EAST CANYON CR", + B="EAST CANYON", + TIME=UTDATE, +) +EC1 = Value( + TIME=T1, +) +EC2 = Value( + TIME=T2, +) +EC3 = Value( + TIME=T3, +) +EC4 = Value( + TIME=T4, +) +EC5 = Value( + TIME=T6, +) +EC6 = Value( + TIME=T6, +) +EC7 = Value( + TIME=T7, +) +EC8 = Value( + TIME=T8, +) +EC9 = Value( + TIME=T9, +) +EC10 = Value(Value.average(ECSTO, EC1, EC2, EC3, EC4, EC5, EC6, EC7, EC8, EC9, treat="IGNORE")) +PVSTO = Value( + DBLOC="Pineview", + DBVER="Raw-USBRSLC", + A="OGDEN", + B="PINEVIEW", + TIME=UTDATE, +) +PV1 = Value( + TIME=T1, +) +PV2 = Value( + TIME=T2, +) +PV3 = Value( + TIME=T3, +) +PV4 = Value( + TIME=T4, +) +PV5 = Value( + TIME=T6, +) +PV6 = Value( + TIME=T6, +) +PV7 = Value( + TIME=T7, +) +PV8 = Value( + TIME=T8, +) +PV9 = Value( + TIME=T9, +) +PV10 = Value(Value.average(PVSTO, PV1, PV2, PV3, PV4, PV5, PV6, PV7, PV8, PV9, treat="IGNORE")) +STSTO = Value( + DBLOC="Starvation", + DBVER="Rev-USBRSLC", + A="STRAWBERRY", + B="STARVATION", + TIME=UTDATE, +) +ST1 = Value( + TIME=T1, +) +ST2 = Value( + TIME=T2, +) +ST3 = Value( + TIME=T3, +) +ST4 = Value( + TIME=T4, +) +ST5 = Value( + TIME=T6, +) +ST6 = Value( + TIME=T6, +) +ST7 = Value( + TIME=T7, +) +ST8 = Value( + TIME=T8, +) +ST9 = Value( + TIME=T9, +) +ST10 = Value(Value.average(STSTO, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, treat="IGNORE")) +VLSTO = Value( + DBLOC="Vallecito", + A="LOS PINOS", + B="VALLECITO", + TIME=UTDATE, +) +VL1 = Value( + TIME=T1, +) +VL2 = Value( + TIME=T2, +) +VL3 = Value( + TIME=T3, +) +VL4 = Value( + TIME=T4, +) +VL5 = Value( + TIME=T6, +) +VL6 = Value( + TIME=T6, +) +VL7 = Value( + TIME=T7, +) +VL8 = Value( + TIME=T8, +) +VL9 = Value( + TIME=T9, +) +VL10 = Value(Value.average(VLSTO, VL1, VL2, VL3, VL4, VL5, VL6, VL7, VL8, VL9, treat="IGNORE")) +LMSTO = Value( + DBLOC="Lemon", + DBVER="Rev-USBRSLC", + A="FLORIDA", + B="LEMON", + TIME=UTDATE, +) +LM1 = Value( + TIME=T1, +) +LM2 = Value( + TIME=T2, +) +LM3 = Value( + TIME=T3, +) +LM4 = Value( + TIME=T4, +) +LM5 = Value( + TIME=T6, +) +LM6 = Value( + TIME=T6, +) +LM7 = Value( + TIME=T7, +) +LM8 = Value( + TIME=T8, +) +LM9 = Value( + TIME=T9, +) +LM10 = Value(Value.average(LMSTO, LM1, LM2, LM3, LM4, LM5, LM6, LM7, LM8, LM9, treat="IGNORE")) +BMSTO = Value( + DBLOC="Blue Mesa", + A="GUNNISON", + B="BLUE MESA", + TIME=UTDATE, +) +BM1 = Value( + TIME=T1, +) +BM2 = Value( + TIME=T2, +) +BM3 = Value( + TIME=T3, +) +BM4 = Value( + TIME=T4, +) +BM5 = Value( + TIME=T6, +) +BM6 = Value( + TIME=T6, +) +BM7 = Value( + TIME=T7, +) +BM8 = Value( + TIME=T8, +) +BM9 = Value( + TIME=T9, +) +BM10 = Value(Value.average(BMSTO, BM1, BM2, BM3, BM4, BM5, BM6, BM7, BM8, BM9, treat="IGNORE")) +PNSTO = Value( + DBLOC="Paonia", + A="MUDDY CR", + B="PAONIA", + TIME=UTDATE, +) +PN1 = Value( + TIME=T1, +) +PN2 = Value( + TIME=T2, +) +PN3 = Value( + TIME=T3, +) +PN4 = Value( + TIME=T4, +) +PN5 = Value( + TIME=T6, +) +PN6 = Value( + TIME=T6, +) +PN7 = Value( + TIME=T7, +) +PN8 = Value( + TIME=T8, +) +PN9 = Value( + TIME=T9, +) +PN10 = Value(Value.average(PNSTO, PN1, PN2, PN3, PN4, PN5, PN6, PN7, PN8, PN9, treat="IGNORE")) +RFSTO = Value( + DBLOC="Red Fleet", + A="BRUSH CR", + B="RED FLEET", + TIME=UTDATE, +) +RF1 = Value( + TIME=T1, +) +RF2 = Value( + TIME=T2, +) +RF3 = Value( + TIME=T3, +) +RF4 = Value( + TIME=T4, +) +RF5 = Value( + TIME=T6, +) +RF6 = Value( + TIME=T6, +) +RF7 = Value( + TIME=T7, +) +RF8 = Value( + TIME=T8, +) +RF9 = Value( + TIME=T9, +) +RF10 = Value(Value.average(RFSTO, RF1, RF2, RF3, RF4, RF5, RF6, RF7, RF8, RF9, treat="IGNORE")) +RGSTO = Value( + DBLOC="Ridgway", + A="UNCOMPAHGRE", + B="RIDGWAY", + TIME=UTDATE, +) +RG1 = Value( + TIME=T1, +) +RG2 = Value( + TIME=T2, +) +RG3 = Value( + TIME=T3, +) +RG4 = Value( + TIME=T4, +) +RG5 = Value( + TIME=T6, +) +RG6 = Value( + TIME=T6, +) +RG7 = Value( + TIME=T7, +) +RG8 = Value( + TIME=T8, +) +RG9 = Value( + TIME=T9, +) +RG10 = Value(Value.average(RGSTO, RG1, RG2, RG3, RG4, RG5, RG6, RG7, RG8, RG9, treat="IGNORE")) +JRSTO = Value( + DBLOC="Jordanelle", + A="PROVO", + B="JORDANELLE", + TIME=UTDATE, +) +JR1 = Value( + TIME=T1, +) +JR2 = Value( + TIME=T2, +) +JR3 = Value( + TIME=T3, +) +JR4 = Value( + TIME=T4, +) +JR5 = Value( + TIME=T6, +) +JR6 = Value( + TIME=T6, +) +JR7 = Value( + TIME=T7, +) +JR8 = Value( + TIME=T8, +) +JR9 = Value( + TIME=T9, +) +JR10 = Value(Value.average(JRSTO, JR1, JR2, JR3, JR4, JR5, JR6, JR7, JR8, JR9, treat="IGNORE")) +LDSTO = Value( + DBLOC="Little Dell", + DBVER="Raw-USBRSLC;MANUAL", + A="DELL CR", + B="LITTLE DELL", + TIME=UTDATE, +) +LD1 = Value( + TIME=T1, +) +LD2 = Value( + TIME=T2, +) +LD3 = Value( + TIME=T3, +) +LD4 = Value( + TIME=T4, +) +LD5 = Value( + TIME=T6, +) +LD6 = Value( + TIME=T6, +) +LD7 = Value( + TIME=T7, +) +LD8 = Value( + TIME=T8, +) +LD9 = Value( + TIME=T9, +) +LD10 = Value(Value.average(LDSTO, LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9, treat="IGNORE")) +MDSTO = Value( + DBLOC="Mountain Dell", + A="PARLEYS CR", + B="MOUNTAIN DELL", + TIME=UTDATE, +) +MD1 = Value( + TIME=T1, +) +MD2 = Value( + TIME=T2, +) +MD3 = Value( + TIME=T3, +) +MD4 = Value( + TIME=T4, +) +MD5 = Value( + TIME=T6, +) +MD6 = Value( + TIME=T6, +) +MD7 = Value( + TIME=T7, +) +MD8 = Value( + TIME=T8, +) +MD9 = Value( + TIME=T9, +) +MD10 = Value(Value.average(MDSTO, MD1, MD2, MD3, MD4, MD5, MD6, MD7, MD8, MD9, treat="IGNORE")) +# UT/CO %Full +EO10P = Value((EOSTO/EO10)*100, + PICTURE=" %4.0f", +) +PV10P = Value((PVSTO/PV10)*100) +EC10P = Value((ECSTO/EC10)*100) +LC10P = Value((LCSTO/LC10)*100) +RK10P = Value((RKSTO/RK10)*100) +ER10P = Value((ERSTO/ER10)*100) +LD10P = Value((LDSTO/LD10)*100) +MD10P = Value((MDSTO/MD10)*100) +JR10P = Value((JRSTO/JR10)*100) +RF10P = Value((RFSTO/RF10)*100) +ST10P = Value((STSTO/ST10)*100) +PN10P = Value((PNSTO/PN10)*100) +BM10P = Value((BMSTO/BM10)*100) +RG10P = Value((RGSTO/RG10)*100) +LM10P = Value((LMSTO/LM10)*100) +VL10P = Value((VLSTO/VL10)*100) +EOP = Value(EOSTO / EOG * 100.0, + PICTURE=" %3.0f", +) +RKP = Value(RKSTO / RKG * 100.0) +ERP = Value(ERSTO / ERG * 100.0) +LCP = Value(LCSTO / LCG * 100.0) +ECP = Value(ECSTO / ECG * 100.0) +PVP = Value(PVSTO / PVG * 100.0) +STP = Value(STSTO / STVG * 100.0) +VLP = Value(VLSTO / VLG * 100.0) +LMP = Value(LMSTO / LMG * 100.0) +BMP = Value(BMSTO / BMG * 100.0) +PNP = Value(PNSTO / PNG * 100.0) +RFP = Value(RFSTO / RFG * 100.0) +RGP = Value(RGSTO / RGG * 100.0) +JRP = Value(JRSTO / JRG * 100.0) +LDP = Value(LDSTO / LDG * 100.0) +MDP = Value(MDSTO / MDG * 100.0) +# %MPP = %MPSTO / %MPG * 100.0 +# %CRP = %CRSTO / %CRG * 100.0 +EOTCS = Value( + DBPAR="Stor-Top Con", + DBVER="Rev-USBRSLC", + PICTURE=" %6.0f", + MISSTR=" -NR-", + UNDEF=" -NR-", + TIME=BASDATE, + DBLOC="Echo", +) +RKTCS = Value( + DBLOC="Rockport", +) +ERTCS = Value( + DBLOC="EchoRockport", + DBVER="Rev-USBRSLC;Adjusted", +) +LCTCS = Value( + DBLOC="Lost Cr", + DBVER="Rev-USBRSLC", +) +ECTCS = Value( + DBLOC="East Canyon", +) +PVTCS = Value( + DBLOC="Pineview", +) +STTCS = Value( + DBLOC="Starvation", +) +VLTCS = Value( + DBLOC="Vallecito", +) +LMTCS = Value( + DBLOC="Lemon", +) +BMTCS = Value( + DBLOC="Blue Mesa", +) +PNTCS = Value( + DBLOC="Paonia", +) +RFTCS = Value( + DBLOC="Red Fleet", +) +RGTCS = Value( + DBLOC="Ridgway", +) +JRTCS = Value( + DBLOC="Jordanelle", +) +LDTCS = Value( + DBLOC="Little Dell", + DBVER="Calc-USBRSLC;MANUAL", +) +MDTCS = Value( + DBLOC="Mountain Dell", +) +EOSP = Value(EOSTO - EOTCS, + PICTURE=" %7.0f", + MISSTR=" -NR-", + UNDEF=" -NR-", +) +RKSP = Value(RKSTO - RKTCS) +ERSP = Value(ERSTO - ERTCS) +LCSP = Value(LCSTO - LCTCS) +ECSP = Value(ECSTO - ECTCS) +PVSP = Value(PVSTO - PVTCS) +STSP = Value(STSTO - STTCS) +VLSP = Value(VLSTO - VLTCS) +LMSP = Value(LMSTO - LMTCS) +BMSP = Value(BMSTO - BMTCS) +PNSP = Value(PNSTO - PNTCS) +RFSP = Value(RFSTO - RFTCS) +RGSP = Value(RGSTO - RGTCS) +JRSP = Value(JRSTO - JRTCS) +LDSP = Value(LDSTO - LDTCS) +MDSP = Value(MDSTO - MDTCS) +DUMS = Value(0.0) +EOS = Value(Value.max(DUMS, EOSP, treat="MISS")) +RKS = Value(Value.max(DUMS, RKSP, treat="MISS")) +ERS = Value(Value.max(DUMS, ERSP, treat="MISS")) +LCS = Value(Value.max(DUMS, LCSP, treat="MISS")) +ECS = Value(Value.max(DUMS, ECSP, treat="MISS")) +PVS = Value(Value.max(DUMS, PVSP, treat="MISS")) +STS = Value(Value.max(DUMS, STSP, treat="MISS")) +VLS = Value(Value.max(DUMS, VLSP, treat="MISS")) +LMS = Value(Value.max(DUMS, LMSP, treat="MISS")) +BMS = Value(Value.max(DUMS, BMSP, treat="MISS")) +PNS = Value(Value.max(DUMS, PNSP, treat="MISS")) +RFS = Value(Value.max(DUMS, RFSP, treat="MISS")) +RGS = Value(Value.max(DUMS, RGSP, treat="MISS")) +JRS = Value(Value.max(DUMS, JRSP, treat="MISS")) +LDS = Value(Value.max(DUMS, LDSP, treat="MISS")) +MDS = Value(Value.max(DUMS, MDSP, treat="MISS")) +#SPACE AVAILABLE +EOSA = Value(EOG - EOSTO, + PICTURE="%7.0f", + MISSTR=" -NR-", + UNDEF=" -NR-", +) +RKSA = Value(RKG - RKSTO) +ERSA = Value(ERG - ERSTO) +LCSA = Value(LCG - LCSTO) +ECSA = Value(ECG - ECSTO) +PVSA = Value(PVG - PVSTO) +STSA = Value(STVG - STSTO) +VLSA = Value(VLG - VLSTO) +LMSA = Value(LMG - LMSTO) +BMSA = Value(BMG - BMSTO) +PNSA = Value(PNG - PNSTO) +RFSA = Value(RFG - RFSTO) +RGSA = Value(RGG - RGSTO) +JRSA = Value(JRG - JRSTO) +LDSA = Value(LDG - LDSTO) +MDSA = Value(MDG - MDSTO) +EOSA = Value(Value.max(DUMS, EOSA, treat="MISS")) +RKSA = Value(Value.max(DUMS, RKSA, treat="MISS")) +LCSA = Value(Value.max(DUMS, LCSA, treat="MISS")) +ECSA = Value(Value.max(DUMS, ECSA, treat="MISS")) +PVSA = Value(Value.max(DUMS, PVSA, treat="MISS")) +STSA = Value(Value.max(DUMS, STSA, treat="MISS")) +VLSA = Value(Value.max(DUMS, VLSA, treat="MISS")) +LMSA = Value(Value.max(DUMS, LMSA, treat="MISS")) +BMSA = Value(Value.max(DUMS, BMSA, treat="MISS")) +PNSA = Value(Value.max(DUMS, PNSA, treat="MISS")) +RFSA = Value(Value.max(DUMS, RFSA, treat="MISS")) +RGSA = Value(Value.max(DUMS, RGSA, treat="MISS")) +JRSA = Value(Value.max(DUMS, JRSA, treat="MISS")) +LDSA = Value(Value.max(DUMS, LDSA, treat="MISS")) +MDSA = Value(Value.max(DUMS, MDSA, treat="MISS")) +DUMF = Value(0.0, + PICTURE=" %3.0f", +) +if EOSTO > EOTCS and EOG > EOTCS: + EOF = Value(( (EOSTO-EOTCS) / (EOG-EOTCS) ) * 100.0) +else: + EOF = Value(0) + +if RKSTO > RKTCS and RKG > RKTCS: + RKF = Value(( (RKSTO-RKTCS) / (RKG-RKTCS) ) * 100.0) +else: + RKF = Value(0) + +if ERSTO > ERTCS and ERG > ERTCS: + ERF = Value(( (ERSTO-ERTCS) / (ERG-ERTCS) ) * 100.0) +else: + ERF = Value(0) + +if LCSTO > LCTCS and LCG > LCTCS: + LCF = Value(( (LCSTO-LCTCS) / (LCG-LCTCS) ) * 100.0) +else: + LCF = Value(0) + +if ECSTO > ECTCS and ECG > ECTCS: + ECF = Value(( (ECSTO-ECTCS) / (ECG-ECTCS) ) * 100.0) +else: + ECF = Value(0) + +if PVSTO > PVTCS and PVG > PVTCS: + PVF = Value(( (PVSTO-PVTCS) / (PVG-PVTCS) ) * 100.0) +else: + PVF = Value(0) + +if STSTO > STTCS and STG > STTCS: + STF = Value(( (STSTO-STTCS) / (STG-STTCS) ) * 100.0) +else: + STF = Value(0) + +if VLSTO > VLTCS and VLG > VLTCS: + VLF = Value(( (VLSTO-VLTCS) / (VLG-VLTCS) ) * 100.0) +else: + VLF = Value(0) + +if LMSTO > LMTCS and LMG > LMTCS: + LMF = Value(( (LMSTO-LMTCS) / (LMG-LMTCS) ) * 100.0) +else: + LMF = Value(0) + +if BMSTO > BMTCS and BMG > BMTCS: + BMF = Value(( (BMSTO-BMTCS) / (BMG-BMTCS) ) * 100.0) +else: + BMF = Value(0) + +if PNSTO > PNTCS and PNG > PNTCS: + PNVF = Value(( (PNSTO-PNTCS) / (PNG-PNTCS) ) * 100.0) +else: + PNVF = Value(0) + +if RFSTO > RFTCS and RFG > RFTCS: + RFF = Value(( (RFSTO-RFTCS) / (RFG-RFTCS) ) * 100.0) +else: + RFF = Value(0) + +if RGSTO > RGTCS and RGG > RGTCS: + RGF = Value(( (RGSTO-RGTCS) / (RGG-RGTCS) ) * 100.0) +else: + RGF = Value(0) + if JRSTO > JRTCS and JRG > JRTCS: + JRF = Value(( (JRSTO-JRTCS) / (JRG-JRTCS) ) * 100.0) + else: + JRF = Value(0) + + if LDSTO > LDTCS and LDG > LDTCS: + LDF = Value(( (LDSTO-LDTCS) / (LDG-LDTCS) ) * 100.0) + else: + LDF = Value(0) + + if MDSTO > MDTCS and MDG > MDTCS: + MDF = Value(( (MDSTO-MDTCS) / (MDG-MDTCS) ) * 100.0) + else: + MDF = Value(0) + + +# UT/GRB inflows + RKPOUT = Value( + DBLOC="Rockport", + DBPTYP="Ave", + DBPAR="Flow-Res Out", + DBDUR="1DAY", + DBVER="Raw-USBRSLC", + DBUNITS="cfs", + TIME=BASDATE, + PICTURE="%7.0f", + MISSTR=" -NR-", + ) + ECHOUT = Value( + DBLOC="Echo", + ) + LSCOUT = Value( + DBLOC="Lost Cr", + ) + ESTOUT = Value( + DBLOC="East Canyon", + ) + PNVOUT = Value( + DBLOC="Pineview", + ) + LDLOUT = Value( + DBLOC="Little Dell", + DBVER="Raw-USBRSLC;MANUAL", + ) + MNDOUT = Value( + DBLOC="Mountain Dell", + ) + JRDOUT = Value( + DBLOC="Jordanelle", + DBVER="Raw-USBRSLC", + ) + RDFOUT = Value( + DBLOC="Red Fleet", + ) + STROUT = Value( + DBLOC="Starvation", + ) + PAOOUT = Value( + DBLOC="Paonia", + ) + BLMOUT = Value( + DBLOC="Blue Mesa", + ) + RDGOUT = Value( + DBLOC="Ridgway", + ) + LEMOUT = Value( + DBLOC="Lemon", + ) + VALOUT = Value( + DBLOC="Vallecito", + ) + # Define all INFLOWS + RKPIN = Value( + DBLOC="Rockport", + DBPAR="Flow-Res In", + TIME=BASDATE, + PICTURE="%7.0f", + MISSTR=" -NR-", + ) + ECHIN = Value( + DBLOC="Echo", + ) + LSCIN = Value( + DBLOC="Lost Cr", + ) + ESTIN = Value( + DBLOC="East Canyon", + ) + PNVIN = Value( + DBLOC="Pineview", + ) + LDLIN = Value( + DBLOC="Little Dell", + DBVER="Raw-USBRSLC;MANUAL", + ) + MNDIN = Value( + DBLOC="Mountain Dell", + ) + JRDIN = Value( + DBLOC="Jordanelle", + DBVER="Raw-USBRSLC", + ) + RDFIN = Value( + DBLOC="Red Fleet", + ) + STRIN = Value( + DBLOC="Starvation", + ) + PAOIN = Value( + DBLOC="Paonia", + ) + BLMIN = Value( + DBLOC="Blue Mesa", + ) + RDGIN = Value( + DBLOC="Ridgway", + ) + LEMIN = Value( + DBLOC="Lemon", + ) + VALIN = Value( + DBLOC="Vallecito", + ) +#ENDDEF diff --git a/tests/spk/actual/i-ucb b/tests/spk/actual/i-ucb new file mode 100644 index 0000000..45c77bc --- /dev/null +++ b/tests/spk/actual/i-ucb @@ -0,0 +1,1107 @@ +#FORM + Corps of Engineers Reservoir Report for Upper Colorado Basin Reservoirs + Data Ending 2400 hours %BASDATE + Report Generated %CTM + + Pool Storage + Elev Storage Change Outflow Inflow + (ft-msl) (acft) (acft) (cfs) (cfs) + + Paonia: %PAOELEV %PAOSTOR %PAOSDEL %PAOOUT %PAOIN + + Blue Mesa: %BLMELEV %BLMSTOR %BLMSDEL %BLMOUT %BLMIN + + Vallecito: %VALELEV %VALSTOR %VALSDEL %VALOUT %VALIN + + Lemon: %LEMELEV %LEMSTOR %LEMSDEL %LEMOUT %LEMIN + + Ridgway: %RDGELEV %RDGSTOR %RDGSDEL %RDGOUT %RDGIN + + Starvation: %STRELEV %STRSTOR %STRSDEL %STROUT %STRIN + + Red Fleet: %RDFELEV %RDFSTOR %RDFSDEL %RDFOUT %RDFIN + _______________________________________________________________________________ + Miscellaneous Flows %FDATE + Daily Daily Daily + Average(cfs) Max(cfs) Min(cfs) + Paonia: + Muddy Creek near Paonia %MAQR %MAQX %MAQN + N Fork Gunnison near Somerset %NGQR %NGQX %NGQN + + Blue Mesa: + Taylor below Taylor Park Res. %TYQR %TYQX %TYQN + East at Almont %EAQR %EAQX %EAQN + Taylor at Almont %TAQR %TAQX %TAQN + Gunnison near Gunnison %GUQR %GUQX %GUQN + Gunnison at Delta %CCQR %CCQX %CCQN + Colorado near Stateline %STQR %STQX %STQN + Gunnison below Gunnison Tunnel %GBQR %GBQX %GBQN + Gunnison near Grand Junction %GJQR %GJQX %GJQN + + Vallecito: + Vallecito near Bayfield %VCQR %VCQX %VCQN + Los Pinos near Ignacio %PIQR %PIQX %PIQN + + Lemon: + + Ridgway: + Uncompahgre near Ridgway %UAQR %UAQX %UAQN + Uncompahgre below Ridgway %UBQR %UBQX %UBQN + Uncompahgre at Coloma %UCQR %UCQX %UCQN + Uncompahgre near Delta %URQR %URQX %URQN + Dallas Creek near Ridgeway %DAQR %DAQX %DAQN + + Starvation: + Strawberry at Pinnacles %SPQR %SPQX %SPQN + Currant Cr near Fruitland %CFQR %CFQX %CFQN + Strawberry near Duchesne %SDQR %SDQX %SDQN + Duchesne near Tabiona %DTQR %DTQX %DTQN + Rock Cr near Mountain Home %RMQR %RMQX %RMQN + +Red Fleet: + Big Brush Cr above Red Fleet %BRQR %BRQX %BRQN + Green River near Jensen %GRQR %GRQX %GRQN + + *** ALL DATA PROVIDED BY USBR SALT LAKE CITY & USGS *** + + SNOTEL Data for Sites above Section 7 Reservoirs + Data Ending 2400 hours %BASDATE + Report Generated %CTM + + 24 Hour Change + Accumulated Snow Ending %FDATE + (weqv-inch) date @ time (weqv-inch) + Paonia: + North Lost Trial %SMH %DSMH %SMHI + McClure Pass %BCD %DBCD %BCDI + Park Reservoir %PPP %DPPP %PPPI + Overland Reservoir %OVR %DOVR %OVRI + + Blue Mesa: + Butte %CC1 %DCC1 %CC1I + Park Cone %CC2 %DCC2 %CC2I + Porphyry Creek %PRC %DPRC %PRCI + Slumgullion %SLG %DSLG %SLGI + Columbine %CLB %DCLB %CLBI + Mesa Lake %MSL %DMSL %MSLI + + Vallecito: + Vallecito %PCS %DPCS %PCSI + Beartown %BRT %DBRT %BRTI + Chamita %CHA %DCHA %CHAI + Hopewell %HPW %DHPW %HPWI + Middle Cr %MDL %DMDL %MDLI + Upper Rio Grande %URG %DURG %URGI + + Lemon: + Cascade %BLP %DBLP %BLPI + Mineral Creek %BLT %DBLT %BLTI + Molas Lake %DBP %DDBP %DBPI + Red Mountain Pass %RMP %DRMP %RMPI + Spud Mountain %SPU %DSPU %SPUI + Cumbres Trestle %CUM %DCUM %CUMI + Lone Cone %LNC %DLNC %LNCI + Wolf Creek Summit %WCS %DWCS %WCSI + + Ridgway: + Idarando %IDA %DIDA %IDAI + Columbine Pass %COL %DCOL %COLI + El Diente Peak %EDP %DEDP %EDPI + Lizzard Head %LZH %DLZH %LZHI + Scotch Creek %STC %DSTC %STCI + + Starvation: + Strawberry Divide %STD %DSTD %STDI + Daniels-Strawberry %DAN %DDAN %DANI + Currant Creek %CUC %DCUC %CUCI + Indian Canyon %IND %DIND %INDI + + Red Fleet: + Kings Cabin %CAB %DCAB %CABI + Mosby Mountain %MOS %DMOS %MOSI + Hayden Fork %HFK %DHFK %HFKI + Monte Cristo %MCR %DMCR %MCRI + Trout Creek %TRC %DTRC %TRCI + + *** ALL DATA PROVIDED BY NRCS *** + +#ENDFORM +# Set TABS to 18,35,50,65 +# Generated with dateutil.relativedelta support. +#DEF +# !ECHO +Value.shared["missing"] = "EXACT" +CTM.picture = "%d %b %Y @ %K%M" +Value.shared["picture"] = "%d %b %Y @ %K%M" +BASDATE.value = BASDATE.value.replace(hour=0,minute=0,second=0,microsecond=0) + timedelta(days=1) # Add a day to offset setting the time to 00, instead of 24 +BASDATE.picture = "%d %b %Y" +Value.shared["picture"] = "%d %b %Y" +FDATE = Value(BASDATE, + PICTURE="%m/%d/%y", +) +# Define all ELEVATIONS +PAOELEV = Value( + dbtype="radar", + DBTZ="MST7MDT", + DBLOC="Paonia", + DBPAR="Elev", + DBPTYP="Inst", + DBINT="~1Day", + DBDUR=0, + DBVER="Raw-USBRSLC", + TIME=BASDATE, + PICTURE="%7.2f", + MISSTR=" -NR-", + UNDEF=" -NR-", + DBUNITS="ft", +) +#A=MUDDY CR B=PAONIA C=ELEV E=1DAY F= +BLMELEV = Value( + DBLOC="Blue Mesa", +) +#A=GUNNISON B=BLUE MESA +VALELEV = Value( + DBLOC="Vallecito", +) +#A=LOS PINOS B=VALLECITO +LEMELEV = Value( + DBLOC="Lemon", +) +#A=FLORIDA B=LEMON +RDGELEV = Value( + DBLOC="Ridgway", +) +#A=UNCOMPAHGRE B=RIDGWAY +RDFELEV = Value( + DBLOC="Red Fleet", +) +#A=BRUSH CR B=RED FLEET +STRELEV = Value( + DBLOC="Starvation", +) +#A=STRAWBERRY B=STARVATION +## Define all STORAGES +PAOSTRS = Value( + DBLOC="Paonia", + DBPAR="Stor", + DBVER="Rev-USBRSLC", + STIME=BASDATE-timedelta(days=35), + ETIME=BASDATE, + PICTURE="%7.0f", + MISSTR=" -NR-", + DBUNITS="ac-ft", +) +#A=MUDDY CR B=PAONIA C=STOR-RES EOP E=1DAY F= +BLMSTRS = Value( + DBLOC="Blue Mesa", +) +#A=GUNNISON B=BLUE MESA +VALSTRS = Value( + DBLOC="Vallecito", +) +#A=LOS PINOS B=VALLECITO +LEMSTRS = Value( + DBLOC="Lemon", + DBVER="Rev-USBRSLC", +) +#A=FLORIDA B=LEMON +RDGSTRS = Value( + DBLOC="Ridgway", +) +#A=UNCOMPAHGRE B=RIDGWAY +RDFSTRS = Value( + DBLOC="Red Fleet", +) +#A=BRUSH CR B=RED FLEET +STRSTRS = Value( + DBLOC="Starvation", +) +#A=STRAWBERRY B=STARVATION +## +PAOSTOR = Value(PAOSTRS.last()) +BLMSTOR = Value(BLMSTRS.last()) +VALSTOR = Value(VALSTRS.last()) +LEMSTOR = Value(LEMSTRS.last()) +RDGSTOR = Value(RDGSTRS.last()) +RDFSTOR = Value(RDFSTRS.last()) +STRSTOR = Value(STRSTRS.last()) +## Define all STORAGE CHANGES +PAOSDEL = Value(PAOSTOR-PAOSTRS[BASDATE-timedelta(days=1)]) +BLMSDEL = Value(BLMSTOR-BLMSTRS[BASDATE-timedelta(days=1)]) +VALSDEL = Value(VALSTOR-VALSTRS[BASDATE-timedelta(days=1)]) +LEMSDEL = Value(LEMSTOR-LEMSTRS[BASDATE-timedelta(days=1)]) +RDGSDEL = Value(RDGSTOR-RDGSTRS[BASDATE-timedelta(days=1)]) +RDFSDEL = Value(RDFSTOR-RDFSTRS[BASDATE-timedelta(days=1)]) +STRSDEL = Value(STRSTOR-STRSTRS[BASDATE-timedelta(days=1)]) +## Define all OUTFLOWS +PAOOUT = Value( + TIME=BASDATE, + PICTURE="%7.0f", + MISSTR=" -NR-", + DBLOC="Paonia", + DBPAR="Flow-Res Out", + DBPTYP="Ave", + DBINT="~1Day", + DBDUR="1Day", + DBVER="Raw-USBRSLC", + DBUNITS="cfs", +) +#FILE=/dat0/rtsc7db.dss TYPE=DSS +#A=MUDDY CR B=PAONIA C=FLOW-RES OUT E=1DAY F= +BLMOUT = Value( + DBLOC="Blue Mesa", +) +#A=GUNNISON B=BLUE MESA +VALOUT = Value( + DBLOC="Vallecito", +) +#A=LOS PINOS B=VALLECITO +LEMOUT = Value( + DBLOC="Lemon", +) +#A=FLORIDA B=LEMON +RDGOUT = Value( + DBLOC="Ridgway", +) +#A=UNCOMPAHGRE B=RIDGWAY +RDFOUT = Value( + DBLOC="Red Fleet", +) +#A=BRUSH CR B=RED FLEET +STROUT = Value( + DBLOC="Starvation", +) +#A=STRAWBERRY B=STARVATION +## Define all INFLOWS +PAOIN = Value( + DBLOC="Paonia", + DBPAR="Flow-Res In", + TIME=BASDATE, + PICTURE="%7.0f", + MISSTR=" -NR-", +) +#FILE=/dat0/rtsc7db.dss TYPE=DSS +#A=MUDDY CR B=PAONIA C=FLOW-RES IN E=1DAY F= +BLMIN = Value( + DBLOC="Blue Mesa", +) +#A=GUNNISON B=BLUE MESA +VALIN = Value( + DBLOC="Vallecito", +) +#A=LOS PINOS B=VALLECITO +LEMIN = Value( + DBLOC="Lemon", +) +#A=FLORIDA B=LEMON +RDGIN = Value( + DBLOC="Ridgway", +) +#A=UNCOMPAHGRE B=RIDGWAY +RDFIN = Value( + DBLOC="Red Fleet", +) +#A=BRUSH CR B=RED FLEET +STRIN = Value( + DBLOC="Starvation", +) +#A=STRAWBERRY B=STARVATION +## +## +## Define Daily Flow +## +## +## +MAQR = Value( + DATE=BASDATE+timedelta(hours=7), + missing="NOMISS", + DBLOC="Muddy Cr-abv Paonia Res", + DBPAR="Flow", + DBVER="Calc-usgs", + PICTURE="%8.0f", + MISSTR=" -NR-", +) +#FILE=/dat0/rtsc7db.dss TYPE=DSS +#A=MUDDY CR B=NR PAONIA C=FLOW E=1DAY F= +NGQR = Value( + DBLOC="NF Gunnison-nr Somerset", +) +#A=NF GUNNISON B=NR SOMERSET +TYQR = Value( + DBLOC="Taylor Park", +) +#A=TAYLOR B=BLW TAYLOR PARK +EAQR = Value( + DBLOC="East R-Almont", +) +#A=EAST B=AT ALMONT +TAQR = Value( + DBLOC="Taylor R-Almont", +) +#A=TAYLOR B=AT ALMONT +GUQR = Value( + DBLOC="Gunnison R-nr Gunnison", +) +#A=GUNNISON B=NR GUNNISON +CCQR = Value( + DBLOC="Gunnison R-at Delta", +) +#A=GUNNISON B=AT DELTA +STQR = Value( + DBLOC="Colorado R-nr CO-UT State Line", +) +#A=COLORADO B=NR STATELINE +GBQR = Value( + DBLOC="Gunnison R-blw Gunnison Tunnel", +) +#A=GUNNISON B=BLW GUNNISON TUN +GJQR = Value( + DBLOC="Gunnison R-nr Grand Junction", +) +#A=GUNNISON B=NR GRAND JCT +UAQR = Value( + DBLOC="Uncompahgre R-Nr Ridgway", +) +#A=UNCOMPAHGRE B=NR RIDGEWAY +UBQR = Value( + DBLOC="Ridgway", +) +#A=UNCOMPAHGRE B=BLW RIDGWAY +UCQR = Value( + DBLOC="Uncompahgre R-at Colona", +) +#A=UNCOMPAHGRE B=AT COLOMA +URQR = Value( + DBLOC="Uncompahgre R-at Delta", +) +#A=UNCOMPAHGRE B=NR DELTA +DAQR = Value( + DBLOC="Dallas Cr-nr Ridgway", +) +#A=DALLAS CR B=NR RIDGEWAY +VCQR = Value( + DBLOC="Vallecito-nr Bayfield", +) +PIQR = Value( + DBLOC="Los Pinos R-nr Ignacio", +) +BRQR = Value( + DBLOC="Big Brush Cr-abv Red Fleet Res", +) +GRQR = Value( + DBLOC="Green R-nr Jensen", +) +SPQR = Value( + DBLOC="Strawberry R-Pinnacles nr Fruitland", +) +CFQR = Value( + DBLOC="Currant Cr-nr Fruitland", +) +SDQR = Value( + DBLOC="Strawberry R-nr Duchesne", +) +DTQR = Value( + DBLOC="Duchesne R-nr Tabiona", +) +RMQR = Value( + DBLOC="Rock Cr-nr Mountain Home", +) +## +## +## +## Define Daily Maximum Flow +## +## +## +MAQX = Value( + DATE=BASDATE+timedelta(hours=7), + missing="NOMISS", + DBLOC="Muddy Cr-abv Paonia Res", + DBPTYP="Max", + PICTURE="%8.0f", + MISSTR=" -NR-", +) +#FILE=/dat0/rtsc7db.dss TYPE=DSS +#A=MUDDY CR B=NR PAONIA C=FLOW MAX E=1DAY F= +#%MDQX +#A=MUDDY CR B=NR SOMERSET +NGQX = Value( + DBLOC="NF Gunnison-nr Somerset", +) +#A=NF GUNNISON B=NR SOMERSET +TYQX = Value( + DBLOC="Taylor Park", +) +#A=TAYLOR B=BLW TAYLOR PARK +EAQX = Value( + DBLOC="East R-Almont", +) +#A=EAST B=AT ALMONT +TAQX = Value( + DBLOC="Taylor R-Almont", +) +#A=TAYLOR B=AT ALMONT +GUQX = Value( + DBLOC="Gunnison R-nr Gunnison", +) +#A=GUNNISON B=NR GUNNISON +CCQX = Value( + DBLOC="Gunnison R-at Delta", +) +#A=GUNNISON B=AT DELTA +STQX = Value( + DBLOC="Colorado R-nr CO-UT State Line", +) +#A=COLORADO B=NR STATELINE +GBQX = Value( + DBLOC="Gunnison R-blw Gunnison Tunnel", +) +#A=GUNNISON B=BLW GUNNISON TUN +GJQX = Value( + DBLOC="Gunnison R-nr Grand Junction", +) +#A=GUNNISON B=NR GRAND JCT +#%GDQX +#A=GUNNISON B=TUN DIV S CANAL +#%LPQX +#A=LOS PINOS B=NR BAYFIELD +#%FAQX +#A=FLORIDA B=ABV LEMON +#%FBQX +#A=FLORIDA B=BLW LEMON +UAQX = Value( + DBLOC="Uncompahgre R-Nr Ridgway", +) +#A=UNCOMPAHGRE B=NR RIDGEWAY +UBQX = Value( + DBLOC="Ridgway", +) +#A=UNCOMPAHGRE B=BLW RIDGWAY +UCQX = Value( + DBLOC="Uncompahgre R-at Colona", +) +#A=UNCOMPAHGRE B=AT COLOMA +URQX = Value( + DBLOC="Uncompahgre R-at Delta", +) +#A=UNCOMPAHGRE B=NR DELTA +#%UNQX +#A=UNCOMPAHGRE B=NR OLATHE +DAQX = Value( + DBLOC="Dallas Cr-nr Ridgway", +) +#A=DALLAS CR B=NR RIDGEWAY +VCQX = Value( + DBLOC="Vallecito-nr Bayfield", +) +PIQX = Value( + DBLOC="Los Pinos R-nr Ignacio", +) +BRQX = Value( + DBLOC="Big Brush Cr-abv Red Fleet Res", +) +GRQX = Value( + DBLOC="Green R-nr Jensen", +) +SPQX = Value( + DBLOC="Strawberry R-Pinnacles nr Fruitland", +) +CFQX = Value( + DBLOC="Currant Cr-nr Fruitland", +) +SDQX = Value( + DBLOC="Strawberry R-nr Duchesne", +) +DTQX = Value( + DBLOC="Duchesne R-nr Tabiona", +) +RMQX = Value( + DBLOC="Rock Cr-nr Mountain Home", +) +## +## +## Define Daily Minimum Flow +## +## +## +## +MAQN = Value( + DATE=BASDATE+timedelta(hours=7), + missing="NOMISS", + DBLOC="Muddy Cr-abv Paonia Res", + DBPTYP="Min", + PICTURE="%8.0f", + MISSTR=" -NR-", +) +#FILE=/dat0/rtsc7db.dss TYPE=DSS +#A=MUDDY CR B=NR PAONIA C=FLOW MIN E=1DAY F= +#%MDQN +#A=MUDDY CR B=NR SOMERSET +NGQN = Value( + DBLOC="NF Gunnison-nr Somerset", +) +#A=NF GUNNISON B=NR SOMERSET +TYQN = Value( + DBLOC="Taylor Park", +) +#A=TAYLOR B=BLW TAYLOR PARK +EAQN = Value( + DBLOC="East R-Almont", +) +#A=EAST B=AT ALMONT +TAQN = Value( + DBLOC="Taylor R-Almont", +) +#A=TAYLOR B=AT ALMONT +GUQN = Value( + DBLOC="Gunnison R-nr Gunnison", +) +#A=GUNNISON B=NR GUNNISON +CCQN = Value( + DBLOC="Gunnison R-at Delta", +) +#A=GUNNISON B=AT DELTA +STQN = Value( + DBLOC="Colorado R-nr CO-UT State Line", +) +#A=COLORADO B=NR STATELINE +GBQN = Value( + DBLOC="Gunnison R-blw Gunnison Tunnel", +) +#A=GUNNISON B=BLW GUNNISON TUN +GJQN = Value( + DBLOC="Gunnison R-nr Grand Junction", +) +#A=GUNNISON B=NR GRAND JCT +#%GDQN +#A=GUNNISON B=TUN DIV S CANAL +#%LPQN +#A=LOS PINOS B=NR BAYFIELD +#%FAQN +#A=FLORIDA B=ABV LEMON +#%FBQN +#A=FLORIDA B=BLW LEMON +UAQN = Value( + DBLOC="Uncompahgre R-Nr Ridgway", +) +#A=UNCOMPAHGRE B=NR RIDGEWAY +UBQN = Value( + DBLOC="Ridgway", +) +#A=UNCOMPAHGRE B=BLW RIDGWAY +UCQN = Value( + DBLOC="Uncompahgre R-at Colona", +) +#A=UNCOMPAHGRE B=AT COLOMA +URQN = Value( + DBLOC="Uncompahgre R-at Delta", +) +#A=UNCOMPAHGRE B=NR DELTA +#%UNQN +#A=UNCOMPAHGRE B=NR OLATHE +DAQN = Value( + DBLOC="Dallas Cr-nr Ridgway", +) +#A=DALLAS CR B=NR RIDGEWAY +VCQN = Value( + DBLOC="Vallecito-nr Bayfield", +) +PIQN = Value( + DBLOC="Los Pinos R-nr Ignacio", +) +BRQN = Value( + DBLOC="Big Brush Cr-abv Red Fleet Res", +) +GRQN = Value( + DBLOC="Green R-nr Jensen", +) +SPQN = Value( + DBLOC="Strawberry R-Pinnacles nr Fruitland", +) +CFQN = Value( + DBLOC="Currant Cr-nr Fruitland", +) +SDQN = Value( + DBLOC="Strawberry R-nr Duchesne", +) +DTQN = Value( + DBLOC="Duchesne R-nr Tabiona", +) +RMQN = Value( + DBLOC="Rock Cr-nr Mountain Home", +) +## +## +## +## +## +## Define SNOTEL WEQV @ or before 0700 +# +SMH = Value( + TIME=BASDATE, + missing="NOMISS", + PICTURE="%8.1f", + MISSTR=" -NR-", + DBLOC="North Lost Trail", + DBPAR="Depth-SWE", + DBPTYP="Inst", + DBINT="1Hour", + DBDUR=0, + DBVER="NRCS-raw", + DBUNITS="in", +) +#FILE=/dat0/slcdcol.dss TYPE=DSS +#A=COLORADO B=NORTH LOST TRAIL C=SNOW-WEQV E=IR-MONTH F= +BCD = Value( + DBLOC="Mc Clure Pass", +) +#A=GUNNISON B=MCCLURE +CC1 = Value( + DBLOC="Butte Snow Gage", +) +#A=GUNNISON B=BUTTE +CC2 = Value( + DBLOC="Park Cone", +) +#A=GUNNISON B=PARK CONE +PCS = Value( + DBLOC="Vallecito", +) +#A=LOS PINOS B=VALLECITO +BLP = Value( + DBLOC="Cascade #2", +) +#A=ANIMAS B=CASCADE +BLT = Value( + DBLOC="Mineral Cr", +) +#A=ANIMAS B=MINERAL CR +DBP = Value( + DBLOC="Molas Lake", +) +#A=ANIMAS B=MOLAS LAKE +PPP = Value( + DBLOC="Park Reservoir", +) +#A=GUNNISON B=PARK +PRC = Value( + DBLOC="Porphyry Cr", +) +#A=GUNNISON B=PORPHYRY CR +SLG = Value( + DBLOC="Slumgullion", +) +#A=GUNNISON B=SLUMGULLION +BRT = Value( + DBLOC="Beartown", +) +#A=RIO GRANDE B=BEARTOWN +RMP = Value( + DBLOC="Red MountainPass", +) +#A=ANIMAS B=RED MTN PASS +SPU = Value( + DBLOC="Spud Mountain", +) +#A=ANIMAS B=SPUD MTN +IDA = Value( + DBLOC="Idarado", +) +#A=GUNNISON B=IDARANDO +COL = Value( + DBLOC="Columbine Pass", +) +#A=GUNNISON B=COLUMBINE +STD = Value( + DBLOC="StrawberryDivide", +) +#A=UINTAH B=STRAWBERRY DIV +DAN = Value( + DBLOC="Daniels-Strawberry", +) +#A=UINTAH B=DANIELS-STRWBERY +CUC = Value( + DBLOC="Currant Cr", +) +#A=UINTAH B=CURRANT CR +IND = Value( + DBLOC="Indian Canyon", +) +#A=UINTAH B=INDIAN CANYON +OVR = Value( + DBLOC="Overland Res", +) +#A=GUNNISON B=OVERLAND +CAB = Value( + DBLOC="Kings Cabin", +) +#A=UINTAH B=KINGS CABIN +MOS = Value( + DBLOC="Mosby Mountain", +) +#A=UINTAH B=MOSBY MTN +CLB = Value( + DBLOC="Columbine", +) +#A=GUNNISON B=COLUMBINE +MSL = Value( + DBLOC="Mesa Lake", +) +#A=GUNNISON B=MESA LAKE +CHA = Value( + DBLOC="Chamita", +) +#A=SAN JUAN B=CHAMITA +HPW = Value( + DBLOC="Hopewell", +) +#A=RIO CHAMA B=HOPEWELL +MDL = Value( + DBLOC="Middle Cr", +) +#A=RIO GRANDE B=MIDDLE DR +URG = Value( + DBLOC="Upper Rio Grande", +) +#A=RIO GRANDE B=UPPER RIO GRANDE +CUM = Value( + DBLOC="Cumbres Trestle", +) +#A=SAN JUAN B=CUMBRES TRESTLE +LNC = Value( + DBLOC="Lone Cone", +) +#A=SAN MIGUEL B=LONE CONE +WCS = Value( + DBLOC="Wolf Cr Summit", +) +#A=SAN JUAN B=WOLF CR SUMMIT +EDP = Value( + DBLOC="El Diente Peak", +) +#A=DOLORES B=EL DIENTE PEAK +LZH = Value( + DBLOC="Lizard Head", +) +#A=DOLORES B=LIZZARD HEAD +STC = Value( + DBLOC="Scotch Cr", +) +#A=DOLORES B=SCOTCH CR +HFK = Value( + DBLOC="Hayden Fork", +) +#A=BEAR B=HAYDEN FORK +MCR = Value( + DBLOC="Monte Cristo", +) +#A=BEAR B=MONTE CRISTO +TRC = Value( + DBLOC="Trout Cr", +) +#A=GREEN B=TROUT CR +# +## +# +DMOS = Value(MOS.datatimes(), + PICTURE="%d%b%Y @ %K:%M", +) +DOVR = Value(OVR.datatimes()) +DSMH = Value(SMH.datatimes()) +DBCD = Value(BCD.datatimes()) +DCC1 = Value(CC1.datatimes()) +DCC2 = Value(CC2.datatimes()) +DPCS = Value(PCS.datatimes()) +DBLP = Value(BLP.datatimes()) +DDBP = Value(DBP.datatimes()) +DBLT = Value(BLT.datatimes()) +DPPP = Value(PPP.datatimes()) +DPRC = Value(PRC.datatimes()) +DSLG = Value(SLG.datatimes()) +DBRT = Value(BRT.datatimes()) +DRMP = Value(RMP.datatimes()) +DSPU = Value(SPU.datatimes()) +DIDA = Value(IDA.datatimes()) +DCOL = Value(COL.datatimes()) +DSTD = Value(STD.datatimes()) +DDAN = Value(DAN.datatimes()) +DCUC = Value(CUC.datatimes()) +DIND = Value(IND.datatimes()) +DCAB = Value(CAB.datatimes()) +DCLB = Value(CLB.datatimes()) +DMSL = Value(MSL.datatimes()) +DCHA = Value(CHA.datatimes()) +DHPW = Value(HPW.datatimes()) +DMDL = Value(MDL.datatimes()) +DURG = Value(URG.datatimes()) +DCUM = Value(CUM.datatimes()) +DLNC = Value(LNC.datatimes()) +DWCS = Value(WCS.datatimes()) +DEDP = Value(EDP.datatimes()) +DLZH = Value(LZH.datatimes()) +DSTC = Value(STC.datatimes()) +DHFK = Value(HFK.datatimes()) +DMCR = Value(MCR.datatimes()) +DTRC = Value(TRC.datatimes()) +# +## Define SNOTEL INCREMENTAL WEQV +# +SMHSWES = Value( + DBLOC="North Lost Trail", + DBPAR="Depth-SWE", + DBVER="NRCS-raw", + STIME=BASDATE-timedelta(days=7), + ETIME=BASDATE, + PICTURE="%7.1f", + MISSTR=" -NR-", + DBUNITS="in", +) +#FILE=/dat0/slcdcol.dss TYPE=DSS +#A=COLORADO B=NORTH LOST TRAIL C=SNOW-WEQV INC E=1DAY F= +BCDSWES = Value( + DBLOC="Mc Clure Pass", +) +#A=GUNNISON B=MCCLURE +CC1SWES = Value( + DBLOC="Butte Snow Gage", +) +#A=GUNNISON B=BUTTE +CC2SWES = Value( + DBLOC="Park Cone", +) +#A=GUNNISON B=PARK CONE +PCSSWES = Value( + DBLOC="Vallecito", +) +#A=LOS PINOS B=VALLECITO +BLPSWES = Value( + DBLOC="Cascade #2", +) +#A=ANIMAS B=CASCADE +BLTSWES = Value( + DBLOC="Mineral Cr", +) +#A=ANIMAS B=MINERAL CR +DBPSWES = Value( + DBLOC="Molas Lake", +) +#A=ANIMAS B=MOLAS LAKE +PPPSWES = Value( + DBLOC="Park Reservoir", +) +#A=GUNNISON B=PARK +PRCSWES = Value( + DBLOC="Porphyry Cr", +) +#A=GUNNISON B=PORPHYRY CR +SLGSWES = Value( + DBLOC="Slumgullion", +) +#A=GUNNISON B=SLUMGULLION +BRTSWES = Value( + DBLOC="Beartown", +) +#A=RIO GRANDE B=BEARTOWN +RMPSWES = Value( + DBLOC="Red MountainPass", +) +#A=ANIMAS B=RED MTN PASS +SPUSWES = Value( + DBLOC="Spud Mountain", +) +#A=ANIMAS B=SPUD MTN +IDASWES = Value( + DBLOC="Idarado", +) +#A=GUNNISON B=IDARANDO +COLSWES = Value( + DBLOC="Columbine Pass", +) +#A=GUNNISON B=COLUMBINE +STDSWES = Value( + DBLOC="StrawberryDivide", +) +#A=UINTAH B=STRAWBERRY DIV +DANSWES = Value( + DBLOC="Daniels-Strawberry", +) +#A=UINTAH B=DANIELS-STRWBERY +CUCSWES = Value( + DBLOC="Currant Cr", +) +#A=UINTAH B=CURRANT CR +INDSWES = Value( + DBLOC="Indian Canyon", +) +#A=UINTAH B=INDIAN CANYON +OVRSWES = Value( + DBLOC="Overland Res", +) +#A=GUNNISON B=OVERLAND +CABSWES = Value( + DBLOC="Kings Cabin", +) +#A=UINTAH B=KINGS CABIN +MOSSWES = Value( + DBLOC="Mosby Mountain", +) +#A=UINTAH B=MOSBY MTN +CLBSWES = Value( + DBLOC="Columbine", +) +#A=GUNNISON B=COLUMBINE +MSLSWES = Value( + DBLOC="Mesa Lake", +) +#A=GUNNISON B=MESA LAKE +CHASWES = Value( + DBLOC="Chamita", +) +#A=SAN JUAN B=CHAMITA +HPWSWES = Value( + DBLOC="Hopewell", +) +#A=RIO CHAMA B=HOPEWELL +MDLSWES = Value( + DBLOC="Middle Cr", +) +#A=RIO GRANDE B=MIDDLE DR +URGSWES = Value( + DBLOC="Upper Rio Grande", +) +#A=RIO GRANDE B=UPPER RIO GRANDE +CUMSWES = Value( + DBLOC="Cumbres Trestle", +) +#A=SAN JUAN B=CUMBRES TRESTLE +LNCSWES = Value( + DBLOC="Lone Cone", +) +#A=SAN MIGUEL B=LONE CONE +WCSSWES = Value( + DBLOC="Wolf Cr Summit", +) +#A=SAN JUAN B=WOLF CR SUMMIT +EDPSWES = Value( + DBLOC="El Diente Peak", +) +#A=DOLORES B=EL DIENTE PEAK +LZHSWES = Value( + DBLOC="Lizard Head", +) +#A=DOLORES B=LIZZARD HEAD +STCSWES = Value( + DBLOC="Scotch Cr", +) +#A=DOLORES B=SCOTCH CR +HFKSWES = Value( + DBLOC="Hayden Fork", +) +#A=BEAR B=HAYDEN FORK +MCRSWES = Value( + DBLOC="Monte Cristo", +) +#A=BEAR B=MONTE CRISTO +TRCSWES = Value( + DBLOC="Trout Cr", +) +#A=GREEN B=TROUT CR +# +#Define end value +SMHSWEE = Value(SMHSWES.last(), + UNDEF=" -NR-", + PICTURE="%7.1f", + MISSTR=" -NR-", +) +BCDSWEE = Value(BCDSWES.last()) +CC1SWEE = Value(CC1SWES.last()) +CC2SWEE = Value(CC2SWES.last()) +PCSSWEE = Value(PCSSWES.last()) +BLPSWEE = Value(BLPSWES.last()) +BLTSWEE = Value(BLTSWES.last()) +DBPSWEE = Value(DBPSWES.last()) +PPPSWEE = Value(PPPSWES.last()) +PRCSWEE = Value(PRCSWES.last()) +SLGSWEE = Value(SLGSWES.last()) +BRTSWEE = Value(BRTSWES.last()) +RMPSWEE = Value(RMPSWES.last()) +SPUSWEE = Value(SPUSWES.last()) +IDASWEE = Value(IDASWES.last()) +COLSWEE = Value(COLSWES.last()) +STDSWEE = Value(STDSWES.last()) +DANSWEE = Value(DANSWES.last()) +CUCSWEE = Value(CUCSWES.last()) +INDSWEE = Value(INDSWES.last()) +OVRSWEE = Value(OVRSWES.last()) +CABSWEE = Value(CABSWES.last()) +MOSSWEE = Value(MOSSWES.last()) +CLBSWEE = Value(CLBSWES.last()) +MSLSWEE = Value(MSLSWES.last()) +CHASWEE = Value(CHASWES.last()) +HPWSWEE = Value(HPWSWES.last()) +MDLSWEE = Value(MDLSWES.last()) +URGSWEE = Value(URGSWES.last()) +CUMSWEE = Value(CUMSWES.last()) +LNCSWEE = Value(LNCSWES.last()) +WCSSWEE = Value(WCSSWES.last()) +EDPSWEE = Value(EDPSWES.last()) +LZHSWEE = Value(LZHSWES.last()) +STCSWEE = Value(STCSWES.last()) +HFKSWEE = Value(HFKSWES.last()) +MCRSWEE = Value(MCRSWES.last()) +TRCSWEE = Value(TRCSWES.last()) +# +#Calculate 24 Hour Change +SMHI = Value(SMHSWEE - SMHSWES[BASDATE-timedelta(days=1)], + UNDEF=" -NR-", + PICTURE="%7.1f", + MISSTR=" -NR-", +) +BCDI = Value(BCDSWEE - BCDSWES[BASDATE-timedelta(days=1)]) +CC1I = Value(CC1SWEE - CC1SWES[BASDATE-timedelta(days=1)]) +CC2I = Value(CC2SWEE - CC2SWES[BASDATE-timedelta(days=1)]) +PCSI = Value(PCSSWEE - PCSSWES[BASDATE-timedelta(days=1)]) +BLPI = Value(BLPSWEE - BLPSWES[BASDATE-timedelta(days=1)]) +BLTI = Value(BLTSWEE - BLTSWES[BASDATE-timedelta(days=1)]) +DBPI = Value(DBPSWEE - DBPSWES[BASDATE-timedelta(days=1)]) +PPPI = Value(PPPSWEE - PPPSWES[BASDATE-timedelta(days=1)]) +PRCI = Value(PRCSWEE - PRCSWES[BASDATE-timedelta(days=1)]) +SLGI = Value(SLGSWEE - SLGSWES[BASDATE-timedelta(days=1)]) +BRTI = Value(BRTSWEE - BRTSWES[BASDATE-timedelta(days=1)]) +RMPI = Value(RMPSWEE - RMPSWES[BASDATE-timedelta(days=1)]) +SPUI = Value(SPUSWEE - SPUSWES[BASDATE-timedelta(days=1)]) +IDAI = Value(IDASWEE - IDASWES[BASDATE-timedelta(days=1)]) +COLI = Value(COLSWEE - COLSWES[BASDATE-timedelta(days=1)]) +STDI = Value(STDSWEE - STDSWES[BASDATE-timedelta(days=1)]) +DANI = Value(DANSWEE - DANSWES[BASDATE-timedelta(days=1)]) +CUCI = Value(CUCSWEE - CUCSWES[BASDATE-timedelta(days=1)]) +INDI = Value(INDSWEE - INDSWES[BASDATE-timedelta(days=1)]) +OVRI = Value(OVRSWEE - OVRSWES[BASDATE-timedelta(days=1)]) +CABI = Value(CABSWEE - CABSWES[BASDATE-timedelta(days=1)]) +MOSI = Value(MOSSWEE - MOSSWES[BASDATE-timedelta(days=1)]) +CLBI = Value(CLBSWEE - CLBSWES[BASDATE-timedelta(days=1)]) +MSLI = Value(MSLSWEE - MSLSWES[BASDATE-timedelta(days=1)]) +CHAI = Value(CHASWEE - CHASWES[BASDATE-timedelta(days=1)]) +HPWI = Value(HPWSWEE - HPWSWES[BASDATE-timedelta(days=1)]) +MDLI = Value(MDLSWEE - MDLSWES[BASDATE-timedelta(days=1)]) +URGI = Value(URGSWEE - URGSWES[BASDATE-timedelta(days=1)]) +CUMI = Value(CUMSWEE - CUMSWES[BASDATE-timedelta(days=1)]) +LNCI = Value(LNCSWEE - LNCSWES[BASDATE-timedelta(days=1)]) +WCSI = Value(WCSSWEE - WCSSWES[BASDATE-timedelta(days=1)]) +EDPI = Value(EDPSWEE - EDPSWES[BASDATE-timedelta(days=1)]) +LZHI = Value(LZHSWEE - LZHSWES[BASDATE-timedelta(days=1)]) +STCI = Value(STCSWEE - STCSWES[BASDATE-timedelta(days=1)]) +HFKI = Value(HFKSWEE - HFKSWES[BASDATE-timedelta(days=1)]) +MCRI = Value(MCRSWEE - MCRSWES[BASDATE-timedelta(days=1)]) +TRCI = Value(TRCSWEE - TRCSWES[BASDATE-timedelta(days=1)]) +# +## Define DAILY INCREMENTAL PRECIP +## %BLMPPT +## TIME=%BASDATE PICTURE=NNNNZ.ZZ MISSTR=" -NR-" +## FILE=/dat0/rtsc7db.dss TYPE=DSS +## A=GUNNISON B=BLUE MESA C=PRECIP-INC E=1DAY F= +## %VALPPT +## A=LOS PINOS B=VALLECITO +## %PAOPPT +## A=MUDDY CR B=PAONIA +#ENDDEF diff --git a/tests/spk/expect/i-base.battery b/tests/spk/expect/i-base.battery index 9c780ed..73cc1ac 100644 --- a/tests/spk/expect/i-base.battery +++ b/tests/spk/expect/i-base.battery @@ -1,6 +1,7 @@ #FORM Year/Month %MONYR Report As of %CURDATE +%TITLE Loaded Normal Day min max min max %DY %VLmin %VLmax %VBmin %VBMax @@ -91,6 +92,7 @@ else: ETIME = Value(ETIME+timedelta(days=1), PICTURE="%B %Y", ) +TITLE = Value(_b) VLmin = Value( dbtype="radar", DBLOC=_a, diff --git a/tests/spk/expect/i-resstat b/tests/spk/expect/i-resstat index 43acc46..e4a6b31 100644 --- a/tests/spk/expect/i-resstat +++ b/tests/spk/expect/i-resstat @@ -3586,4 +3586,3 @@ else: DBLOC="Vallecito", ) #ENDDEF - diff --git a/tests/spk/testfiles/i-base.battery b/tests/spk/testfiles/i-base.battery new file mode 100644 index 0000000..cd5ff06 --- /dev/null +++ b/tests/spk/testfiles/i-base.battery @@ -0,0 +1,108 @@ +#FORM +Year/Month %MONYR +Report As of %CURDATE +%TITLE + Loaded Normal +Day min max min max +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +%DY %VLmin %VLmax %VBmin %VBMax +#ENDFORM +#DEF +# !ECHO +!-FUNCTION +UNDEF="????" +# +# Force the %BASDATE to a midnight value, so that TIME= does not have to be +# specified on the command line. +# +%BASDATE = SETTIME( %BASDATE, TIME, 2400 ) +# +%CURDATE + PICTURE=DD AAA YYYY @ ZZZT +%MONYR = %BASDATE + PICTURE = AAAAAAAAABBYYYY +# +# Compute the beginning and ending days of the report. Data is available +# only up thru yesterday. Therefore, +# IF yesterday is >= the end of the month THEN +# Produce a report for the entire month (%ETIME = end-of-month) +# ELSEIF end-of-month > yesterday > start-of-month THEN +# Produce a partial month report (%ETIME = yesterday) +# ELSE the month lies completely in the future, so... +# Produce a report for the entire month consisting all No Reports +# ENDIF +# +%STIME = SETTIME( %BASDATE, DAY, 1) +%EOM = EOM( %BASDATE ) +%STMDAY = (YEAR(%STIME ) - 1900)*1000 + DAYOFYR(%STIME ) +%EOMDAY = (YEAR(%EOM ) - 1900)*1000 + DAYOFYR(%EOM ) +%YSTDAY = (YEAR(%CURDATE) - 1900)*1000 + DAYOFYR(%CURDATE) - 1 +#IF %YSTDAY >= %EOMDAY + %ETIME = %EOM +#ELSEIF %YSTDAY > %STMDAY + %TEMP = SETTIME( %CURDATE, TIME, 2400) + %ETIME = TIME(%TEMP - 1D) +#ELSE + %ETIME = %EOM +#ENDIF +# +# +%ETIME=%ETIME+1D +%TITLE=^b +%VLmin + DB=%DB + DBLOC=^a + DBPAR=Volt-Load DBPTYP=Min DBINT=~1Day DBDUR=0 DBVER=Calc-val + STIME=%STIME ETIME=%ETIME + DBUNITS=volt + PICTURE=" NN.Z" + UNDEF =" m" + MISSTR =" m" +%VLmax + DBPTYP=Max +%VBmax + DBPAR=Volt-Batt +%VBmin + DBPTYP=Min + +%TMP DBLOC="Markers-Placeholder" DBPAR=Count DBPTYP=Inst DBINT=~1Day DBDUR=0 DBVER=ALL + DBUNITS=unit + STIME=%STIME-1D ETIME=%ETIME + +%DY=DATATIME(%TMP) + PICTURE="BBDD" + UNDEF =" X" + MISSTR =" X" + +# +# +#ENDDEF \ No newline at end of file diff --git a/tests/spk/testfiles/i-blb b/tests/spk/testfiles/i-blb new file mode 100644 index 0000000..272ffb0 --- /dev/null +++ b/tests/spk/testfiles/i-blb @@ -0,0 +1,456 @@ +#FORM +Generated, %CTM +Type, TIME ,Inflow ,EPK Inflow,STG Inflow,Outflow ,Stor ,Elev ,EPK Stor ,EPK Elev ,STG Stor ,STG Elev ,Precip (Mean Areal),Precip Lower,Precip Upper,Rel Change +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +O, %TIME ,%INFLOW , , ,%OUTFLOW ,%STOR ,%ELEV ,%EPKS ,%EPKE ,%STGS ,%STGE ,%BP , , ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +F, %TIME ,%FCST ,%EPKI ,%STGI , , , ,%EPKSF ,%EPKEF ,%STGSF ,%STGSF ,%MEANF ,%BPL ,%BPU ,%RELCHG +#ENDFORM +#DEF +# !ECHO +!-FUNCTION +# +# Compute the end and start times to read 48 hourly values on the hour. +# The ending time is the time specified by the user on the command line. +# +%ETIME = %BTM+114H PICTURE=ZD AAA YYYY @ ZZ:ZT +%STIME = %BTM-10D +%CTM PICTURE=ZD AAA YYYY @ ZZ:ZT +%BASDATE PICTURE=ZD AAA YYYY @ ZZ:ZT +%MID = SETTIME(%BTM, TIME, 0000) +# +# Read 48 hours of values for the time-series to be displayed +# +MISSTR=" " +UNDEF=" " +%FCST_T + DB=%DB + DBLOC="Black Butte" DBPAR="Flow-Reservoir inflow" DBPTYP=Inst DBINT=1Hour DBDUR=0 DBVER=NWS-forecast-rev + DBUNITS=cfs + DBTZ=PST8PDT + STIME=%STIME + ETIME=%ETIME + PICTURE=NNNNNZ +%FCST + STIME=%BTM + ETIME=%ETIME +%STGI + DBLOC="Stony Gorge" +%EPKI + DBLOC="East Park" +%EPKEF + DBPAR="Elev" + DBUNITS=ft + PICTURE=NNNN.NZ +%STGEF + DBLOC="Stony Gorge" +%STGSF + DBPAR=Stor DBUNITS=ac-ft + PICTURE=NNNNZ +%EPKSF + DBLOC="East Park" +%MEANF +#="----" + DBLOC="Black Butte" + DBPAR=Precip-INC DBPTYP=Total DBDUR=1Hour + PICTURE=NN.NNZ + dbunits=in +%BPL + DBLOC="Black Butte-Lower Zone" +%BPU + DBLOC="Black Butte-Upper Zone" + +%BP + DBLOC="Black Butte" + DBPAR=Precip-Basin DBPTYP=Inst DBDUR=0 DBVER=Calc-val + STIME=%STIME + ETIME=%BTM + + +%INFLOW + DBPAR=Flow-Res In DBPTYP=AVE DBINT=1Hour DBDUR=1Hour DBVER=Calc-val + PICTURE=NNNNNZ + STIME=%STIME + ETIME=%BTM + dbunits=cfs +%OUTFLOW + DBPAR=Flow-Res Out +%STOR + DBLOC="Black Butte-Pool" DBPAR=Stor DBPTYP=Inst DBINT=1Hour DBDUR=0 + DBUNITS=ac-ft + PICTURE=NNNNNZ +%EPKS + DBLOC="East Park" DBVER=Raw-CDEC-Combined +%STGS + DBLOC="Stony Gorge" +%STGE + DBPAR=Elev DBUNITS=ft + PICTURE=NNNN.NZ +%EPKE + DBLOC="East Park" +%ELEV + DBLOC="Black Butte-Pool" DBVER=Calc-val +%AREAL=" " +%RELCHG + DBLOC="Black Butte" DBVER=Release-Val DBPAR=Flow-To + DBUNITS=cfs + STIME=%STIME + ETIME=%ETIME +%TIME = DATATIME(%FCST_T) PICTURE = ZDAAAZZZYBZZZT +#ENDDEF \ No newline at end of file diff --git a/tests/spk/testfiles/i-resstat b/tests/spk/testfiles/i-resstat new file mode 100644 index 0000000..c4c5d6f --- /dev/null +++ b/tests/spk/testfiles/i-resstat @@ -0,0 +1,2821 @@ +#FORM +Data Ending, %BASDATE , created %CTM +, Gross Pool, Current Storage, % Full , , 10 year Ave ,Space Available , Top Con , Inflow , Outflow , Enchroached, Enchroached % + Sacramento R basin +Shasta (SC7), %SHAG , %SHASTO , %SHA , , %SHA10P , %SHAA , %SHATCS , %SHAI , %SHAO , %SHAS , %SHAF +Black Butte (COE), %BBG , %BBSTO , %BLB , , %BB10P , %BBTA , %BBTCS , %BBI , %BBO , %BBTS , %BLBF +Oroville (SC7), %OROG , %OROSTO , %ORO , , %ORO10P , %OROA , %OROTCS , %OROI , %OROO , %OROS , %OROF +New Bullards Bar (SC7), %NBBG , %NBBSTO , %NBB , , %NBB10P , %NBBA , %NBBTCS , %NBBI , %NBBO , %NBBS , %NBBF +Englebright (COE), %ENG , %ENSTO , %ENX , , %EN10P , %ENA , %ENTCS , %ENI , %ENO , %ENS , +Indian Valley (SC7), %INDG , %INDSTO , %IND , , %IND10P , %INDA , %INDTCS , %INDI , %INDO , %INDS , %INDF +Folsom (SC7)|daily, %FOLG , %FOLSTO , %FOL , , %FOL10P , %FOLA , , %FOLI , %FOLO , , +Folsom (SC7)|12, %FOLG , %FLSTO12 , %FOL12 , , , %FOLA12 , %FTCS12 , %FOLI12 , %FOLO12 , %FOLS12 , %FOLF12 +Folsom (SC7)|18, %FOLG , %FLSTO18 , %FOL18 , , , %FOLA18 , %FTCS18 , %FOLI18 , %FOLO18 , %FOLS18 , %FOLF18 +Folsom (SC7)|00, %FOLG , %FLSTO00 , %FOL00 , , , %FOLA00 , %FTCS00 , %FOLI00 , %FOLO00 , %FOLS00 , %FOLF00 +Folsom (SC7)|06, %FOLG , %FLSTO06 , %FOL06 , , , %FOLA06 , %FTCS06 , %FOLI06 , %FOLO06 , %FOLS06 , %FOLF06 + San Joaquin River Basin +Camanche (SC7), %CAMG , %CAMSTO , %CAM , , %CAM10P , %CAMA , %CAMTCS , %CAMI , %CAMO , %CAMS , %CAMF +New Hogan (COE), %NHG , %NHSTO , %NHX , , %NH10P , %NHA , %NHTCS , %NHI , %NHO , %NHS , %NHGF +Farmington (COE), %FMG , %FMSTO , %FRM , , %FM10P , %FMA , %FMTCS , %FMI , %FMO , %FMS , %FRMF +New Melones (SC7), %NWMG , %NWMSTO , %NWM , , %NWM10P , %NWMA , %NWMTCS , %NWMI , %NWMO , %NWMS , %NWMF +Tulloch (SC7), %TULG , %TULSTO , %TUL , , %TUL10P , %TULA , %TULTCS , %TULI , %TULO , %TULS , %TULF +Don Pedro (SC7), %DONG , %DONSTO , %DON , , %DON10P , %DONA , %DONTCS , %DONI , %DONO , %DONS , %DONF +New Exchequer(SC7), %NEXG , %NEXSTO , %NEX , , %NEX10P , %NEXA , %NEXTCS , %NEXI , %NEXO , %NEXS , %NEXF +Burns (COE), %BNG , %BNSTO , %BUR , , %BN10P , %BNA , %BNTCS , %BNI , %BNO , %BNS , %BURF +Bear (COE), %BRG , %BRSTO , %BAR , , %BR10P , %BRA , %BRTCS , %BRI , %BNO , %BRS , %BARF +Owens (COE), %OWG , %OWSTO , %OWN , , %OW10P , %OWA , %OWTCS , %OWI , %OWO , %OWS , %OWNF +Mariposa (COE), %MRG , %MRSTO , %MAR , , %MR10P , %MRA , %MRTCS , %MRI , %MRO , %MRS , %MARF +Los Banos (SC7), %LOSG , %LOSSTO , %LOS , , %LOS10P , %LOSA , %LOSTCS , %LOSI , %LOSO , %LOSS , %LOSF +Buchanan/Eastman (COE), %BUG , %BUSTO , %BUC , , %BU10P , %BCA , %BUTCS , %BUI , %BUO , %BCS , %BUCF +Hidden/Hensley (COE), %HDG , %HDSTO , %HID , , %HD10P , %HDA , %HDTCS , %HDI , %HDO , %HDS , %HIDF +Friant/Millerton (SC7), %FRIG , %FRISTO , %FRI , , %FRI10P , %FRIA , %FRITCS , %FRII , %FRIO , %FRIS , %FRIF +Big Dry Creek (SC7), %BDCG , %BDCSTO , %BDC , , %BDC10P , %BDCA , %BDCTCS , %BDCI , %BDCO , %BDCS , %BDCF + Tulare Lakebed Basin +Pine Flat (COE), %PFG , %PFSTO , %PNF , , %PF10P , %PFA , %PFTCS , %PFI , %PFO , %PFS , %PNFF +Terminus/Kaweah (COE), %TMG , %TMSTO , %TRM , , %TM10P , %TMA , %TMTCS , %TMI , %TMO , %TMS , %TRMF +Success (COE), %SCG , %SCSTO , %SCC , , %SC10P , %SCA , %SCTCS , %SCI , %SCO , %SCS , %SCCF +Isabella (COE), %IBG , %IBSTO , %ISB , , %IB10P , %IBA , %IBTCS , %IBI , %IBO , %IBS , %ISBZ + Truckee River Basin +Martis Creek (COE), %MRTG , %MRTSTO , %MRT , , %MRT10P , %MRTA , %MRTTCS , %MRTI , %MRTO , %MRTS , %MRTF +Prosser (SC7), %PRSG , %PRSSTO , %PRS , , %PRS10P , %PRSA , %PRSTCS , %PRSI , %PRSO , %PRSS , %PRSF +Boca (SC7), %BOCG , %BOCSTO , %BOC , , %BOC10P , %BOCA , %BOCTCS , %BOCI , %BOCO , %BOCS , %BOCF +Stampede (SC7), %STMG , %STMSTO , %STM , , %STM10P , %STMA , %STMTCS , %STMI , %STMO , %STMS , %STMF + SPN RESERVOIRS +Coyote/Mendocino (COE), %COG , %COSTO , %COY , , %CO10P , %COA , %COTCS , %COI , %COO , %COS , %COYF +Warm Springs/Sonoma (COE),%WSG , %WSSTO , %WRS , , %WS10P , %WSA , %WSTCS , %WSI , %WSO , %WSS , %WRSF +Del Valle (SC7), %DELG , %DELSTO , %DEL , , %DEL10P , %DELA , %DELTCS , %DELI , %DELO , %DELS , %DELF + Great Basin, NOTE:, Due to Processing Difficulties all UT/CO is 1 day behind +Pineview (SC7), %PVG , %PVSTO , %PVP , , %PV10P , %PVSA , %PVTCS , %PNVIN , %PNVOUT , %PVS , %PVF +East Canyon (SC7), %ECG , %ECSTO , %ECP , , %EC10P , %ECSA , %ECTCS , %ESTIN , %ESTOUT , %ECS , %ECF +Lost Creek (SC7), %LCG , %LCSTO , %LCP , , %LC10P , %LCSA , %LCTCS , %LSCIN , %LSCOUT , %LCS , %LCF +Echo+Rockport (SC7), %ERG , %ERTCS , %ERP , , %ER10P , %ERSA , %ERTCS , , , %ERS , %ERF +Echo (SC7), %EOG , %EOSTO , %EOP , , %EO10P , %EOSA , %EOTCS , %ECHIN , %ECHOUT , %EOS , %EOF +Wanship/Rockport (SC7), %RKG , %RKSTO , %RKP , , %RK10P , %RKSA , %RKTCS , %RKPIN , %RKPOUT , %RKS , %RKF +Little Dell (SC7), %LDG , %LDSTO , %LDP , , %LD10P , %LDSA , %LDTCS , %LDLIN , %LDLOUT , %LDS , %LDF +Mountain Dell (SC7), %MDG , %MDSTO , %MDP , , %MD10P , %MDSA , %MDTCS , %MNDIN , %MNDOUT , %MDS , %MDF +Jordanelle (SC7), %JRG , %JRSTO , %JRP , , %JR10P , %JRSA , %JRTCS , %JRDIN , %JRDOUT , %JRS , %JRF + Upper Colorado +Red Fleet (SC7), %RFG , %RFSTO , %RFP , , %RF10P , %RFSA , %RFTCS , %RDFIN , %RDFOUT , %RFS , %RFF +Starvation (SC7), %STVG , %STSTO , %STP , , %ST10P , %STSA , %STTCS , %STRIN , %STROUT , %STS , %STF +Poania (SC7), %PNG , %PNSTO , %PNP , , %PN10P , %PNSA , %PNTCS , %PAOIN , %PAOOUT , %PNS , %PNVF +Blue Mesa (SC7), %BMG , %BMSTO , %BMP , , %BM10P , %BMSA , %BMTCS , %BLMIN , %BLMOUT , %BMS , %BMF +Ridgeway (SC7), %RGG , %RGSTO , %RGP , , %RG10P , %RGSA , %RGTCS , %RDGIN , %RDGOUT , %RGS , %RGF +Lemon (SC7), %LMG , %LMSTO , %LMP , , %LM10P , %LMSA , %LMTCS , %LEMIN , %LEMOUT , %LMS , %LMF +Vallecito (SC7), %VLG , %VLSTO , %VLP , , %VL10P , %VLSA , %VLTCS , %VALIN , %VALOUT , %VLS , %VLF + +#ENDFORM +#DEF +# !ECHO +!~FUNCTION +# +# All values are to be read in at the exact time specified, +# without searching backwards or forwards. +# +VALUE = EXACT +# +# Define PICTURE's for various times to be displayed. +# Force %BASDATE to midnight. +# +%CTM PICTURE=DDBAAABYYYYB@BZZZT +%BASDATE = SETTIME(%BASDATE, TIME, 2400) + PICTURE = ZD AAA ZZZY ZZZT +%T12 = %BASDATE+12H + PICTURE=ZDAAAZZZYBZZZT +%T18 = %T12+6H +%T00 = %T18+6H +%T06 = %T00+6H +# +# Define all Rain Flood Parameters +# +# +# Define all Top of Conservation Storage values +# +%BBTCS + DB=%DB + DBLOC="Black Butte" DBPTYP=Inst DBPAR=Stor-Top Con DBVER=Calc-val DBINT=~1Day DBDUR=0 + PICTURE = "NNNNNNNNNZ" + MISSTR = " -NR-" + UNDEF = " -NR-" + TIME = %BASDATE + DBUNITS=ac-ft + DBTZ=PST8PDT +%NHTCS + DBLOC="New Hogan" +%BUTCS + DBLOC="Eastman Lake" +%HDTCS + DBLOC="Hensley Lake" +%PFTCS + DBLOC="Pine Flat Lake" +%TMTCS + DBLOC="Lake Kaweah" +%SCTCS + DBLOC="Success Lake" +%IBTCS + DBLOC="Lake Isabella" +%COTCS + DBLOC="Lake Mendocino" DBVER=Calc-val-High Option +%WSTCS + DBLOC="Lake Sonoma" DBVER=Calc-val +%MRTTCS + DBLOC="Martis Creek" +%FMTCS = 0 +%BNTCS = 0 +%BRTCS = 0 +%OWTCS = 0 +%MRTCS = 0 +%ENTCS = 70000 +%SHATCS + DBLOC="Shasta" DBVER=Calc-usbr +# FILE = /dat0/rtsc7db.dss TYPE=DSS +# A=SACRAMENTO B=SHASTA +# A=AMERICAN B=FOLSOM +%SACTCS + DBLOC="Folsom Lake" DBVER=Calc-cdec SAFCA +# A=AMERICAN B=FOLSOM F=SAFCA + MISSTR = " -NR-" + UNDEF = " -NR-" +# move picture,etc back up here +%OROTCS + DBLOC="Oroville Dam" DBVER=Calc-cdec + MISSTR = " -NR-" + UNDEF = " -NR-" + +# A=FEATHER B=OROVILLE +%LOSTCS + DBLOC="Los Banos" +# A=LOS BANOS CR B=LOS BANOS +# A=MOKELUMNE B=CAMANCHE +# A=MERCED B=NEW EXCHEQUER +%NWMTCS + DBLOC="New Melones" +# A=STANISLAUS B=NEW MELONES +%TULTCS + DBLOC="Tulloch" +# A=STANISLAUS B=TULLOCH +%DELTCS + DBLOC="Del Valle" DBVER=Calc-val +# A=ALAMEDA CR B=DEL VALLE +%DONTCS + DBLOC="Don Pedro" DBVER=Calc-manual +# A=TUOLUMNE B=NEW DON PEDRO +%CAMTCS + DBLOC="Camanche" +%EBMTCS = %CAMTCS +%NEXTCS + DBLOC="New Exchequer" +%PRSTCS + DBLOC="Prosser" +# A=PROSSER CR B=PROSSER CR +%BOCTCS + DBLOC="Boca" +# A=LITTLE TRUCKEE B=BOCA +%STMTCS + DBLOC="Stampede" +# A=LITTLE TRUCKEE B=STAMPEDE +%NBBTCS + DBLOC="New Bullards Bar" DBVER=Calc-usbr +%FRITCS + DBLOC="Friant Dam" DBVER=Calc-usbr +# A=SAN JOAQUIN B=FRIANT F= +# A=NORTH YUBA B=NEW BULLARDS BAR +%INDTCS + DBLOC="Indian Valley" DBVER=Calc-usgs +# A=NF CACHE CR B=INDIAN VALLEY +%BDCTCS = 200 +%FTCS12 + DBLOC="Folsom Lake" DBINT=0 DBVER="Calc-NWS" + DBTZ=UTC + TIME=%T12 + MISSTR="-NF-" + UNDEF="-NF-" +%FTCS18 + TIME=%T18 +%FTCS00 + TIME=%T00 +%FTCS06 + TIME=%T00 +# +# Define all current Storage values +# +%BBSTO + DBLOC="Black Butte-Pool" DBPAR=Stor DBINT=~1Day DBVER=Calc-val + PICTURE = "NNNNNNNNZ" + MISSTR = " -NR-" + UNDEF = " -NR-" + TIME = %BASDATE + DBTZ=PST8PDT + DBUNITS=ac-ft +%ENSTO + DBLOC="Englebright Lake-Pool" +%NHSTO + DBLOC="New Hogan-Pool" +%BUSTO + DBLOC="Eastman Lake-Pool" +%HDSTO + DBLOC="Hensley lake-Pool" +%PFSTO + DBLOC="Pine Flat Lake-Pool" +%TMSTO + DBLOC="Lake Kaweah-Pool" +%SCSTO + DBLOC="Success Lake-Pool" +%IBSTO + DBLOC="Lake Isabella-Pool" +%COSTO + DBLOC="Lake Mendocino-Pool" +%WSSTO + DBLOC="Lake Sonoma-Pool" +%MRTSTO + DBLOC="Martis Creek-Pool" +%FMSTO + DBLOC="Farmington Dam-Pool" +%BNSTO + DBLOC="Burns-Pool" +%BRSTO + DBLOC="Bear-Pool" +%OWSTO + DBLOC="Owens-Pool" +%MRSTO + DBLOC="Mariposa-Pool" +%EPKSTO + DBLOC="East Park" DBVER=Thumb-raw +%STGSTO + DBLOC="Stony Gorge" +%CRTSTO + DBLOC="Courtright" DBVER=Thumb-raw + +# A=KINGS B=COURTRIGHT F= +%WSHSTO + DBLOC="Wishon" +# A=KINGS B=WISHON +%SHASTO + DBLOC="Shasta" DBVER=Raw-USBR-Combined +# FILE = /dat0/rtsc7db.dss TYPE=DSS +# A=SACRAMENTO B=SHASTA F= +%FOLSTO + DBLOC="Folsom Lake" +# A=AMERICAN B=FOLSOM +#%SACSTO = %FOLSTO +# A=SAN JOAQUIN B=FRIANT +%OROSTO + DBLOC="Oroville Dam" DBVER=Calc-cdec +# A=FEATHER B=OROVILLE +%NBBSTO + DBLOC="New Bullards Bar" DBVER=Calc-cdec +# A=NORTH YUBA B=NEW BULLARDS BAR +%INDSTO + DBLOC="Indian Valley" DBVER=Calc-usgs +# A=NF CACHE CR B=INDIAN VALLEY +%UNVSTO + DBLOC="Union Valley" DBVER=Calc-cdec +# A=AMERICAN B=UNION VALLEY +%FMDSTO + DBLOC="French Meadows" DBVER=Calc-confidential +# A=AMERICAN B=FRENCH MEADOWS +%HHLSTO + DBLOC="Hell Hole" +# A=AMERICAN B=HELL HOLE +%NWMSTO + DBLOC="New Melones" DBVER=Raw-USBR-Combined +# A=STANISLAUS B=NEW MELONES +%BRDSTO + DBLOC="Beardsley Lake" +# A=STANISLAUS B=BEARDSLEY +%DNLSTO + DBLOC="Donnells" +# A=STANISLAUS B=DONNELLS +%TULSTO + DBLOC="Tulloch" +# A=STANISLAUS B=TULLOCH +%FRISTO + DBLOC="Friant Dam" +%MAMSTO + DBLOC="Mammoth Pool" +# A=SAN JOAQUIN B=MAMMOTH POOL +%MTSSTO + DBLOC="Friant Dam" DBPAR=Stor-Total Upstream +# A=SAN JOAQUIN B=FRIANT C=STOR-TOT U\S +%CAMSTO + DBLOC="Camanche" DBPAR=Stor DBVER=MANUAL +# A=MOKELUMNE B=CAMANCHE +%DONSTO + DBLOC="Don Pedro" +# A=TUOLUMNE B=NEW DON PEDRO +%NEXSTO + DBLOC="New Exchequer" +# A=MERCED B=NEW EXCHEQUER +%PRDSTO + DBLOC="Pardee" +# A=MOKELUMNE B=PARDEE +%EBMSTO = (%CAMSTO + %PRDSTO) +%SSPSTO + DBLOC="Salt Springs" +# A=MOKELUMNE B=SALT SPRINGS +%LBRSTO + DBLOC="Lower Bear" +# A=MOKELUMNE B=LOWER BEAR +%HTHSTO + DBLOC="Hetch Hetchy" +# A=TUOLUMNE B=HETCH HETCHY +%CHVSTO + DBLOC="Cherry Valley" +# A=TUOLUMNE B=CHERRY VALLEY +%LKLSTO + DBLOC="Lake Eleanor" +# A=TUOLUMNE B=ELEANOR +%DELSTO + DBLOC="Del Valle" +# A=ALAMEDA CR B=DEL VALLE +%PRSSTO + DBLOC="Prosser" +# A=PROSSER CR B=PROSSER CR +%BOCSTO + DBLOC="Boca" +# A=LITTLE TRUCKEE B=BOCA +%STMSTO + DBLOC="Stampede" +# A=LITTLE TRUCKEE B=STAMPEDE +%BDCSTO + DBLOC="Big Dry Cr" +%LOSSTO + DBLOC="Los Banos" +%FLSTO12 + DBLOC="Folsom Lake" DBINT=1Hour DBVER=Raw-USBR-Combined + TIME=%T12 + DBTZ=UTC + PICTURE="NNNNNNZ" + MISSTR="-NF-" + UNDEF="-NF-" +%FLSTO18 + TIME=%T18 +%FLSTO00 + TIME=%T00 +%FLSTO06 + TIME=%T06 +# A=LOS BANOS CR B=LOS BANOS +# A=BIG DRY CR B=BIG DRY CR +# +# +# Gross Pools (acft) for Corps Reservoirs +# +%BBG = 136200 + PICTURE=NNNNNNZ +%ENG = 70000 +%NHG = 317100 +%BUG = 150000 +%HDG = 90000 +%PFG = 1000000 +%TMG = 185600 +%SCG = 84095 +#%IBG = 568100 +%IBG = 361250 +%MRTG= 20400 +%COG = 116500 +%WSG = 381000 +%FMG = 52000 +%BNG = 6800 +%BRG = 7700 +%OWG = 3600 +%MRG = 15000 +%EPG = 50900 +%SGG = 50000 +%UVG = 235100 +%FRG = 110700 +%HHG = 207600 +%CTG = 123300 +%WHG = 128600 +%EBG = 615050 +# +# +# +# Gross Pool (acft) for SEC7 Reservoirs +# NOTE: Uses the same PICTURE as the Corps Reservoirs +# +%SHAG= 4552100 +%OROG= 3538000 +%NBBG= 966000 +%INDG= 300600 +%FOLG= 966823 +%SACG= %FOLG +%CAMG= 417100 +%NWMG= 2420000 +%DONG= 2030000 +%NEXG= 1024600 +%FRIG= 520500 +%LOSG= 34600 +%DELG= 77000 +%TULG= 67000 +%PRSG= 29800 +%BOCG= 41100 +%STMG= 226500 +%BDCG= 30200 +%PDG = 197950 + PICTURE=NNNNNNZ +%SSG = 140000 +%LBG = 49000 +%BDG = 97800 +%DNG = 64300 +%HEG = 360400 +%CVG = 268200 +%LEG = 26000 +%MAG = 122700 +%TSG = 628500 +%TSG2 = 251900 + +# Gross Pool for UT/CO +%EOG= 73900 + PICTURE= NNNNNZ +%ERG= 136062 +%RKG= 62100 +%LCG= 22500 +%ECG= 51200 +%PVG= 110200 +%STVG= 167300 +%VLG= 129700 +%LMG= 40100 +%BMG= 940800 +%PNG= 17500 +%RFG= 26000 +%RGG= 84400 +%JRG= 314000 +%LDG= 20500 +%MDG= 3200 +%MPG= 117200 +%CRG= 25200 + +# +# Define Percent of Gross Pool +# +# Compute % full based on current storage and gross pool not +# accounting for any forecasts, irrigation demnads or other +# factors that would change the theoretical value. +# NOTE: The variable names should always be shorter than the +# PICTURE -- otherwise the text to the right of the +# variable will be compressed (see REPGEN Manual +# Section 4.2 "Report Form".) So we used names of the +# format %<3-letter-project-mnemonic> to keep names at +# four letters. +# + %BLB = %BBSTO / %BBG * 100.0 + PICTURE=BNNZ +# NOTE: New Hogan was re-named to %NHX so that it does not +# conflict with %NHG (New Hogan gross pool) variable above. + %ENX = %ENSTO / %ENG * 100.0 + %NHX = %NHSTO / %NHG * 100.0 + %BUC = %BUSTO / %BUG * 100.0 + %HID = %HDSTO / %HDG * 100.0 + %PNF = %PFSTO / %PFG * 100.0 + %TRM = %TMSTO / %TMG * 100.0 + %SCC = %SCSTO / %SCG * 100.0 + %ISB = %IBSTO / %IBG * 100.0 + %COY = %COSTO / %COG * 100.0 + %WRS = %WSSTO / %WSG * 100.0 + %FRM = %FMSTO / %FMG * 100.0 + %BUR = %BNSTO / %BNG * 100.0 + %BAR = %BRSTO / %BRG * 100.0 + %OWN = %OWSTO / %OWG * 100.0 + %MAR = %MRSTO / %MRG * 100.0 + %SHA = %SHASTO / %SHAG * 100.0 + %FOL = %FOLSTO / %FOLG * 100.0 + %FOL12 = %FLSTO12/%FOLG * 100.0 + UNDEF="-NF-" + MISSTR="-NF-" + %FOL18 = %FLSTO18/%FOLG * 100.0 + %FOL00 = %FLSTO00/%FOLG * 100.0 + %FOL06 = %FLSTO06/%FOLG * 100.0 + #%SAC = %SACSTO / %SACG * 100.0 + %FRI = %FRISTO / %FRIG * 100.0 + UNDEF="-NR-" + MISSTR="-NR-" + %ORO = %OROSTO / %OROG * 100.0 + %LOS = %LOSSTO / %LOSG * 100.0 + %NBB = %NBBSTO / %NBBG * 100.0 + %CAM = %CAMSTO / %CAMG * 100.0 + %DON = %DONSTO / %DONG * 100.0 + %NEX = %NEXSTO / %NEXG * 100.0 + %NWM = %NWMSTO / %NWMG * 100.0 + %TUL = %TULSTO / %TULG * 100.0 + %IND = %INDSTO / %INDG * 100.0 + %DEL = %DELSTO / %DELG * 100.0 + %MRT = %MRTSTO / %MRTG * 100.0 + %PRS = %PRSSTO / %PRSG * 100.0 + %BOC = %BOCSTO / %BOCG * 100.0 + %STM = %STMSTO / %STMG * 100.0 + %BDC = %BDCSTO / %BDCG * 100.0 + %EPK = %EPKSTO / %EPG * 100.0 + %STG = %STGSTO / %SGG * 100.0 + %UNV = %UNVSTO / %UVG * 100.0 + %FMD = %FMDSTO / %FRG * 100.0 + %HHL = %HHLSTO / %HHG * 100.0 + %PRD = %PRDSTO / %PDG * 100.0 + %SSP = %SSPSTO / %SSG * 100.0 + %LBR = %LBRSTO / %LBG * 100.0 + %BRD = %BRDSTO / %BDG * 100.0 + %DNL = %DNLSTO / %DNG * 100.0 + %HTH = %HTHSTO / %HEG * 100.0 + %CHV = %CHVSTO / %CVG * 100.0 + %LKL = %LKLSTO / %LEG * 100.0 + %MAM = %MAMSTO / %MAG * 100.0 + %MTS = %MTSSTO / %TSG * 100.0 + %CRT = %CRTSTO / %CTG * 100.0 + %WSH = %WSHSTO / %WHG * 100.0 + %EBM = %EBMSTO / %EBG * 100.0 +# +# Generate Percent Encroached for any reservoir whose Storage +# exceeds its Top of Conservation Storage. +# Encroachment is computed as a percentage of flood control +# space in use. +# VERY IMPORTANT: All variable names should be exactly 5 characters +# (including the %), and the string of blanks should be +# exactly the same length (i.e. 5 blanks). Otherwise, the +# report line will get screwed up. +# NOTE: The %DUMF variable is needed only to set the PICTURE +# for the %xxxF variables. +# +%DUMF=0.0 PICTURE="NNZ" +#IF %BBSTO > %BBTCS AND %BBG > %BBTCS + %BLBZ = ( (%BBSTO-%BBTCS) / (%BBG-%BBTCS) ) * 100.0 PICTURE="NNZ" +#ELSE + %BLBZ = 0 PICTURE="NNZ" +#ENDIF +#IF %ENSTO > %ENTCS AND %ENG > %ENTCS + %ENGZ = ( (%ENSTO-%ENTCS) / (%ENG-%ENTCS) ) * 100.0 +#ELSE + %ENGZ = 0 +#ENDIF +#IF %NHSTO > %NHTCS AND %NHG > %NHTCS + %NHGZ = ( (%NHSTO-%NHTCS) / (%NHG-%NHTCS) ) * 100.0 +#ELSE + %NHGZ = 0 +#ENDIF +#IF %BUSTO > %BUTCS AND %BUG > %BUTCS + %BUCZ = ( (%BUSTO-%BUTCS) / (%BUG-%BUTCS) ) * 100.0 +#ELSE + %BUCZ = 0 +#ENDIF +#IF %HDSTO > %HDTCS AND %HDG > %HDTCS + %HIDZ = ( (%HDSTO-%HDTCS) / (%HDG-%HDTCS) ) * 100.0 +#ELSE + %HIDZ = 0 +#ENDIF +#IF %PFSTO > %PFTCS AND %PFG > %PFTCS + %PNFZ = ( (%PFSTO-%PFTCS) / (%PFG-%PFTCS) ) * 100.0 +#ELSE + %PNFZ = 0 +#ENDIF +#IF %TMSTO > %TMTCS AND %TMG > %TMTCS + %TRMZ = ( (%TMSTO-%TMTCS) / (%TMG-%TMTCS) ) * 100.0 +#ELSE + %TRMZ = 0 +#ENDIF +#IF %SCSTO > %SCTCS AND %SCG > %SCTCS + %SCCZ = ( (%SCSTO-%SCTCS) / (%SCG-%SCTCS) ) * 100.0 +#ELSE + %SCCZ = 0 +#ENDIF +#IF %IBSTO > %IBTCS AND %IBG > %IBTCS + %ISBZ = ( (%IBSTO-%IBTCS) / (%IBG-%IBTCS) ) * 100.0 +#ELSE + %ISBZ = 0 +#ENDIF +#IF %COSTO > %COTCS AND %COG > %COTCS + %COYZ = ( (%COSTO-%COTCS) / (%COG-%COTCS) ) * 100.0 +#ELSE + %COYZ = 0 +#ENDIF +#IF %WSSTO > %WSTCS AND %WSG > %WSTCS + %WRSZ = ( (%WSSTO-%WSTCS) / (%WSG-%WSTCS) ) * 100.0 +#ELSE + %WRSZ = 0 +#ENDIF +#IF %FMSTO > %FMTCS AND %FMG > %FMTCS + %FRMZ = ( (%FMSTO-%FMTCS) / (%FMG-%FMTCS) ) * 100.0 +#ELSE + %FRMZ = 0 +#ENDIF +#IF %BNSTO > %BNTCS AND %BNG > %BNTCS + %BURZ = ( (%BNSTO-%BNTCS) / (%BNG-%BNTCS) ) * 100.0 +#ELSE + %BURZ = 0 +#ENDIF +#IF %BRSTO > %BRTCS AND %BRG > %BRTCS + %BARZ = ( (%BRSTO-%BRTCS) / (%BRG-%BRTCS) ) * 100.0 +#ELSE + %BARZ = 0 +#ENDIF +#IF %OWSTO > %OWTCS AND %OWG > %OWTCS + %OWNZ = ( (%OWSTO-%OWTCS) / (%OWG-%OWTCS) ) * 100.0 +#ELSE + %OWNZ = 0 +#ENDIF +#IF %MRSTO > %MRTCS AND %MRG > %MRTCS + %MARZ = ( (%MRSTO-%MRTCS) / (%MRG-%MRTCS) ) * 100.0 +#ELSE + %MARZ = 0 +#ENDIF +#IF %SHASTO > %SHATCS AND %SHAG > %SHATCS + %SHAZ = ( (%SHASTO-%SHATCS) / (%SHAG-%SHATCS) ) * 100.0 PICTURE="NNZ" +#ELSE + %SHAZ = 0 PICTURE="NNZ" +#ENDIF +#IF %FLSTO12 > %FTCS12 AND %FOLG > %FTCS12 + %FOLZ12 = ( (%FLSTO12-%FTCS12) / (%FOLG-%FTCS12) ) * 100.0 +#ELSE + %FOLZ12 = 0 +#ENDIF +#IF %FLSTO18 > %FTCS18 AND %FOLG > %FTCS18 + %FOLZ18 = ( (%FLSTO18-%FTCS18) / (%FOLG-%FTCS18) ) * 100.0 +#ELSE + %FOLZ18 = 0 +#ENDIF +#IF %FLSTO00 > %FTCS00 AND %FOLG > %FTCS00 + + %FOLZ00 = ( (%FLSTO00-%FTCS00) / (%FOLG-%FTCS00) ) * 100.0 +#ELSE + %FOLZ00 = 0 +#ENDIF +#IF %FLSTO06 > %FTCS06 AND %FOLG > %FTCS06 + %FOLZ06 = ( (%FLSTO06-%FTCS06) / (%FOLG-%FTCS06) ) * 100.0 +#ELSE + %FOLZ06 = 0 +#ENDIF +##IF %SACSTO > %SACTCS AND %SACG > %SACTCS +# %SACZ = ( (%SACSTO-%SACTCS) / (%SACG-%SACTCS) ) * 100.0 +##ELSE + %SACZ = 0 +##ENDIF +#IF %FRISTO > %FRITCS AND %FRIG > %FRITCS + %FRIZ = ( (%FRISTO-%FRITCS) / (%FRIG-%FRITCS) ) * 100.0 +#ELSE + %FRIZ = 0 +#ENDIF +#IF %OROSTO > %OROTCS AND %OROG > %OROTCS + %OROZ = ( (%OROSTO-%OROTCS) / (%OROG-%OROTCS) ) * 100.0 +#ELSE + %OROZ = 0 +#ENDIF +#IF %LOSSTO > %LOSTCS AND %LOSG > %LOSTCS + %LOSZ = ( (%LOSSTO-%LOSTCS) / (%LOSG-%LOSTCS) ) * 100.0 +#ELSE + %LOSZ = 0 +#ENDIF +#IF %NBBSTO > %NBBTCS AND %NBBG > %NBBTCS + %NBBZ = ( (%NBBSTO-%NBBTCS) / (%NBBG-%NBBTCS) ) * 100.0 +#ELSE + %NBBZ = 0 +#ENDIF +#IF %CAMSTO > %CAMTCS AND %CAMG > %CAMTCS + %CAMZ = ( (%CAMSTO-%CAMTCS) / (%CAMG-%CAMTCS) ) * 100.0 +#ELSE + %CAMZ = 0 +#ENDIF +#IF %DONSTO > %DONTCS AND %DONG > %DONTCS + %DONZ = ( (%DONSTO-%DONTCS) / (%DONG-%DONTCS) ) * 100.0 +#ELSE + %DONZ = 0 +#ENDIF +#IF %NEXSTO > %NEXTCS AND %NEXG > %NEXTCS + %NEXZ = ( (%NEXSTO-%NEXTCS) / (%NEXG-%NEXTCS) ) * 100.0 +#ELSE + %NEXZ = 0 +#ENDIF +#IF %NWMSTO > %NWMTCS AND %NWMG > %NWMTCS + %NWMZ = ( (%NWMSTO-%NWMTCS) / (%NWMG-%NWMTCS) ) * 100.0 +#ELSE + %NWMZ = 0 +#ENDIF +#IF %TULSTO > %TULTCS AND %TULG > %TULTCS + %TULZ = ( (%TULSTO-%TULTCS) / (%TULG-%TULTCS) ) * 100.0 +#ELSE + %TULZ = 0 +#ENDIF +#IF %INDSTO > %INDTCS AND %INDG > %INDTCS + %INDZ = ( (%INDSTO-%INDTCS) / (%INDG-%INDTCS) ) * 100.0 +#ELSE + %INDZ = 0 +#ENDIF +#IF %DELSTO > %DELTCS AND %DELG > %DELTCS + %DELZ = ( (%DELSTO-%DELTCS) / (%DELG-%DELTCS) ) * 100.0 +#ELSE + %DELZ = 0 +#ENDIF +#IF %MRTSTO > %MRTTCS AND %MRTG > %MRTTCS + %MRTZ = ( (%MRTSTO-%MRTTCS) / (%MRTG-%MRTTCS) ) * 100.0 +#ELSE + %MRTZ = 0 +#ENDIF +#IF %PRSSTO > %PRSTCS AND %PRSG > %PRSTCS + %PRSZ = ( (%PRSSTO-%PRSTCS) / (%PRSG-%PRSTCS) ) * 100.0 +#ELSE + %PRSZ = 0 +#ENDIF +#IF %BOCSTO > %BOCTCS AND %BOCG > %BOCTCS + %BOCZ = ( (%BOCSTO-%BOCTCS) / (%BOCG-%BOCTCS) ) * 100.0 +#ELSE + %BOCZ = 0 +#ENDIF +#IF %STMSTO > %STMTCS AND %STMG > %STMTCS + %STMZ = ( (%STMSTO-%STMTCS) / (%STMG-%STMTCS) ) * 100.0 +#ELSE + %STMZ = 0 +#ENDIF +#IF %BDCSTO > %BDCTCS AND %BDCG > %BDCTCS + %BDCZ = ( (%BDCSTO-%BDCTCS) / (%BDCG-%BDCTCS) ) * 100.0 +#ELSE + %BDCZ = 0 +#ENDIF +#IF %CAMSTO > %CAMTCS + %EBMA = (%CAMG- %CAMTCS) + %EBMB = (%PDG - %PRDSTO) + %EBMZ = ( (%CAMSTO-%CAMTCS) / (%EBMA + %EBMB) ) * 100.0 +#ELSE + %EBMZ = 0 +#ENDIF +# +# Define %encroached format +# Anything >= 99.5 will round to 100 and overflow the B(NZ) format +# +#IF %BLBZ >= 99.5 + %BLBF = %BLBZ PICTURE = (NNZ) +#ELSEIF %BLBZ >= 0.0 + %BLBF = %BLBZ PICTURE = (NNZ) +##ELSE +# %BLBF =" ( 0) " PICTURE = AAAAA +#ENDIF +#SHOW %BLBZ +#SHOW %BLBF +#IF %NHGZ >= 99.5 + %NHGF = %NHGZ PICTURE = (NNZ) +#ELSEIF %NHGZ >= 0.0 + %NHGF = %NHGZ PICTURE = (NNZ) +#ELSE + %NHGF =" " PICTURE = AAAAA +#ENDIF +#SHOW %NHGZ +#SHOW %NHGF +#IF %BUCZ >= 99.5 + %BUCF = %BUCZ PICTURE = (NNZ) +#ELSEIF %BUCZ >= 0.0 + %BUCF = %BUCZ PICTURE = (NNZ) +#ELSE + %BUCF =" " PICTURE = AAAAA +#ENDIF +#SHOW %BUCZ +#SHOW %BUCF +#IF %HIDZ >= 99.5 + %HIDF = %HIDZ PICTURE = (NNZ) +#ELSEIF %HIDZ >= 0.0 + %HIDF = %HIDZ PICTURE = (NNZ) +#ELSE + %HIDF =" " PICTURE = AAAAA +#ENDIF +#SHOW %HIDZ +#SHOW %HIDF +#IF %PNFZ >= 99.5 + %PNFF = %PNFZ PICTURE = (NNZ) +#ELSEIF %PNFZ >= 0.0 + %PNFF = %PNFZ PICTURE = (NNZ) +#ELSE + %PNFF =" " PICTURE = AAAAA +#ENDIF +#SHOW %PNFZ +#SHOW %PNFF +#IF %TRMZ >= 99.5 + %TRMF = %TRMZ PICTURE = (NNZ) +#ELSEIF %TRMZ >= 0.0 + %TRMF = %TRMZ PICTURE = (NNZ) +#ELSE + %TRMF =" " PICTURE = AAAAA +#ENDIF +#SHOW %TRMZ +#SHOW %TRMF +#IF %SCCZ >= 99.5 + %SCCF = %SCCZ PICTURE = (NNZ) +#ELSEIF %SCCZ >= 0.0 + %SCCF = %SCCZ PICTURE = (NNZ) +#ELSE + %SCCF =" " PICTURE = AAAAA +#ENDIF +#SHOW %SCCZ +#SHOW %SCCF +# #IF %ISBZ >= 99.5 +# %ISBF = %ISBZ PICTURE = (NNZ) +# #ELSEIF %ISBZ > 0.0 +# %ISBF = %ISBZ PICTURE = B(NZ) +# #ELSE +# %ISBF =" " PICTURE = AAAAA +# #ENDIF +# #SHOW %ISBZ +# #SHOW %ISBF +#IF %COYZ >= 99.5 + %COYF = %COYZ PICTURE = (NNZ) +#ELSEIF %COYZ >= 0.0 + %COYF = %COYZ PICTURE = (NNZ) +#ELSE + %COYF =" " PICTURE = AAAAA +#ENDIF +#SHOW %COYZ +#SHOW %COYF +#IF %WRSZ >= 99.5 + %WRSF = %WRSZ PICTURE = (NNZ) +#ELSEIF %WRSZ >= 0.0 + %WRSF = %WRSZ PICTURE = (NNZ) +#ELSE + %WRSF =" " PICTURE = AAAAA +#ENDIF +#SHOW %WRSZ +#SHOW %WRSF +#IF %FRMZ >= 99.5 + %FRMF = %FRMZ PICTURE = (NNZ) +#ELSEIF %FRMZ >= 0.0 + %FRMF = %FRMZ PICTURE = (NNZ) +#ELSE + %FRMF =" " PICTURE = AAAAA +#ENDIF +#SHOW %FRMZ +#SHOW %FRMF +#IF %BURZ >= 99.5 + %BURF = %BURZ PICTURE = (NNZ) +#ELSEIF %BURZ >= 0.0 + %BURF = %BURZ PICTURE = (NNZ) +#ELSE + %BURF =" " PICTURE = AAAAA +#ENDIF +#SHOW %BURZ +#SHOW %BURF +#IF %BARZ >= 99.5 + %BARF = %BARZ PICTURE = (NNZ) +#ELSEIF %BARZ >= 0.0 + %BARF = %BARZ PICTURE = (NNZ) +#ELSE + %BARF =" " PICTURE = AAAAA +#ENDIF +#SHOW %BARZ +#SHOW %BARF +#IF %OWNZ >= 99.5 + %OWNF = %OWNZ PICTURE = (NNZ) +#ELSEIF %OWNZ >= 0.0 + %OWNF = %OWNZ PICTURE = (NNZ) +#ELSE + %OWNF =" " PICTURE = AAAAA +#ENDIF +#SHOW %OWNZ +#SHOW %OWNF +#IF %MARZ >= 99.5 + %MARF = %MARZ PICTURE = (NNZ) +#ELSEIF %MARZ >= 0.0 + %MARF = %MARZ PICTURE = (NNZ) +#ELSE + %MARF =" " PICTURE = AAAAA +#ENDIF +#SHOW %MARZ +#SHOW %MARF +#IF %SHAZ >= 99.5 + %SHAF = %SHAZ PICTURE = (NNZ) +#ELSEIF %SHAZ >= 0.0 + %SHAF = %SHAZ PICTURE = (NNZ) +#ELSE + %SHAF =" " PICTURE = AAAAA +#ENDIF +##SHOW %SHAZ +##SHOW %SHAF +#IF %FOLZ12 >= 99.5 + %FOLF12 = %FOLZ12 PICTURE = (NNZ) +#ELSEIF %FOLZ12 >= 0.0 + %FOLF12 = %FOLZ12 PICTURE = (NNZ) +#ELSE + %FOLF12 =" " PICTURE = AAAAA +#ENDIF +#IF %FOLZ18 >= 99.5 + %FOLF18 = %FOLZ18 PICTURE = (NNZ) +#ELSEIF %FOLZ18 >= 0.0 + %FOLF18 = %FOLZ18 PICTURE = (NNZ) +#ELSE + %FOLF18 =" " PICTURE = AAAAA +#ENDIF +#IF %FOLZ00 >= 99.5 + %FOLF00 = %FOLZ00 PICTURE = (NNZ) +#ELSEIF %FOLZ00 >= 0.0 + %FOLF00 = %FOLZ00 PICTURE = (NNZ) +#ELSE + %FOLF00 =" " PICTURE = AAAAA +#ENDIF +#IF %FOLZ06 >= 99.5 + %FOLF06 = %FOLZ06 PICTURE = (NNZ) +#ELSEIF %FOLZ06 >= 0.0 + %FOLF06 = %FOLZ06 PICTURE = (NNZ) +#ELSE + %FOLF06 =" " PICTURE = AAAAA +#ENDIF +##SHOW %FOLZ +##SHOW %FOLF +#IF %SACZ >= 99.5 + %SACF = %SACZ PICTURE = (NNZ) +#ELSEIF %SACZ >= 0.0 + %SACF = %SACZ PICTURE = (NNZ) +#ELSE + %SACF =" " PICTURE = AAAAA +#ENDIF +##SHOW %SACZ +##SHOW %SACF +#IF %FRIZ >= 99.5 + %FRIF = %FRIZ PICTURE = (NNZ) +#ELSEIF %FRIZ >= 0.0 + %FRIF = %FRIZ PICTURE = (NNZ) +#ELSE + %FRIF =" " PICTURE = AAAAA +#ENDIF +##SHOW %FRIZ +##SHOW %FRIF +#IF %OROZ >= 99.5 + %OROF = %OROZ PICTURE = (NNZ) +#ELSEIF %OROZ >= 0.0 + %OROF = %OROZ PICTURE = (NNZ) +#ELSE + %OROF =" " PICTURE = AAAAA +#ENDIF +##SHOW %OROZ +##SHOW %OROF +#IF %LOSZ >= 99.5 + %LOSF = %LOSZ PICTURE = (NNZ) +#ELSEIF %LOSZ >= 0.0 + %LOSF = %LOSZ PICTURE = (NNZ) +#ELSE + %LOSF =" " PICTURE = AAAAA +#ENDIF +##SHOW %LOSZ +##SHOW %LOSF +#IF %NBBZ >= 99.5 + %NBBF = %NBBZ PICTURE = (NNZ) +#ELSEIF %NBBZ >= 0.0 + %NBBF = %NBBZ PICTURE = (NNZ) +#ELSE + %NBBF =" " PICTURE = AAAAA +#ENDIF +##SHOW %NBBZ +##SHOW %NBBF +#IF %CAMZ >= 99.5 + %CAMF = %CAMZ PICTURE = (NNZ) +#ELSEIF %CAMZ >= 0.0 + %CAMF = %CAMZ PICTURE = (NNZ) +#ELSE + %CAMF =" " PICTURE = AAAAA +#ENDIF +##SHOW %CAMZ +##SHOW %CAMF +#IF %DONZ >= 99.5 + %DONF = %DONZ PICTURE = (NNZ) +#ELSEIF %DONZ >= 0.0 + %DONF = %DONZ PICTURE = (NNZ) +#ELSE + %DONF =" " PICTURE = AAAAA +#ENDIF +##SHOW %DONZ +##SHOW %DONF +#IF %NEXZ >= 99.5 + %NEXF = %NEXZ PICTURE = (NNZ) +#ELSEIF %NEXZ >= 0.0 + %NEXF = %NEXZ PICTURE = (NNZ) +#ELSE + %NEXF =" " PICTURE = AAAAA +#ENDIF +##SHOW %NEXZ +##SHOW %NEXF +#IF %NWMZ >= 99.5 + %NWMF = %NWMZ PICTURE = (NNZ) +#ELSEIF %NWMZ >= 0.0 + %NWMF = %NWMZ PICTURE = (NNZ) +#ELSE + %NWMF =" " PICTURE = AAAAA +#ENDIF +##SHOW %NWMZ +##SHOW %NWMF +#IF %TULZ >= 99.5 + %TULF = %TULZ PICTURE = (NNZ) +#ELSEIF %TULZ >= 0.0 + %TULF = %TULZ PICTURE = (NNZ) +#ELSE + %TULF =" " PICTURE = AAAAA +#ENDIF +##SHOW %TULZ +##SHOW %TULF +#IF %INDZ >= 99.5 + %INDF = %INDZ PICTURE = (NNZ) +#ELSEIF %INDZ >= 0.0 + %INDF = %INDZ PICTURE = (NNZ) +#ELSE + %INDF =" " PICTURE = AAAAA +#ENDIF +##SHOW %INDZ +##SHOW %INDF +#IF %DELZ >= 99.5 + %DELF = %DELZ PICTURE = (NNZ) +#ELSEIF %DELZ >= 0.0 + %DELF = %DELZ PICTURE = (NNZ) +#ELSE + %DELF =" " PICTURE = AAAAA +#ENDIF +##SHOW %DELZ +##SHOW %DELF +#IF %MRTZ >= 99.5 + %MRTF = %MRTZ PICTURE = (NNZ) +#ELSEIF %MRTZ >= 0.0 + %MRTF = %MRTZ PICTURE = (NNZ) +#ELSE + %MRTF =" " PICTURE = AAAAA +#ENDIF +##SHOW %MRTZ +##SHOW %MRTF +#IF %PRSZ >= 99.5 + %PRSF = %PRSZ PICTURE = (NNZ) +#ELSEIF %PRSZ >= 0.0 + %PRSF = %PRSZ PICTURE = (NNZ) +#ELSE + %PRSF =" " PICTURE = AAAAA +#ENDIF +##SHOW %PRSZ +##SHOW %PRSF +#IF %BOCZ >= 99.5 + %BOCF = %BOCZ PICTURE = (NNZ) +#ELSEIF %BOCZ >= 0.0 + %BOCF = %BOCZ PICTURE = (NNZ) +#ELSE + %BOCF =" " PICTURE = AAAAA +#ENDIF +##SHOW %BOCZ +##SHOW %BOCF +#IF %STMZ >= 99.5 + %STMF = %STMZ PICTURE = (NNZ) +#ELSEIF %STMZ >= 0.0 + %STMF = %STMZ PICTURE = (NNZ) +#ELSE + %STMF =" " PICTURE = AAAAA +#ENDIF +##SHOW %STMZ +##SHOW %STMF +#IF %BDCZ >= 99.5 + %BDCF = %BDCZ PICTURE = (NNZ) +#ELSEIF %BDCZ >= 0.0 + %BDCF = %BDCZ PICTURE = (NNZ) +#ELSE + %BDCF =" " PICTURE = AAAAA +#ENDIF +##SHOW %BDCZ +##SHOW %BDCF +#IF %EBMZ >= 99.5 + %EBMF = %EBMZ PICTURE = (NNZ) +#ELSEIF %EBMZ >= 0.0 + %EBMF = %EBMZ PICTURE = (NNZ) +#ELSE + %EBMF =" " PICTURE = AAAAA +#ENDIF +##SHOW %EBMZ +##SHOW %EBMF +##IF %ABSZ >= 99.5 +# %ABSF = %ABSZ PICTURE = (NNZ) +##ELSEIF %ABSZ >= 0.0 +# %ABSF = %ABSZ PICTURE = (NNZ) +##ELSE +# %ABSF =" ( x0)" PICTURE = AAAA +##ENDIF +##SHOW %ABSZ +##SHOW %ABSF +##IF %BBSZ >= 99.5 +# %BBSF = %BBSZ PICTURE = (NNZ) +##ELSEIF %BBSZ >= 0.0 +# %BBSF = %BBSZ PICTURE = (NNZ) +##ELSE +# %BBSF =" " PICTURE = AAAAA +##ENDIF +##SHOW %BBSZ +##SHOW %BBSF +##IF %CBSZ >= 99.5 +# %CBSF = %CBSZ PICTURE = (NNZ) +##ELSEIF %CBSZ >= 0.0 +# %CBSF = %CBSZ PICTURE = (NNZ) +##ELSE +# %CBSF =" " PICTURE = AAAAA +##ENDIF +##SHOW %CBSZ +##SHOW %CBSF +##IF %DBSZ >= 99.5 +# %DBSF = %DBSZ PICTURE = (NNZ) +##ELSEIF %DBSZ >= 0.0 +# %DBSF = %DBSZ PICTURE = (NNZ) +##ELSE +# %DBSF =" " PICTURE = AAAAA +##ENDIF +##SHOW %DBSZ +##SHOW %DBSF +##IF %EBSZ >= 99.5 +# %EBSF = %EBSZ PICTURE = (NNZ) +##ELSEIF %EBSZ >= 0.0 +# %EBSF = %EBSZ PICTURE = (NNZ) +##ELSE +# %EBSF =" " PICTURE = AAAAA +##ENDIF +#SHOW %EBSZ +#SHOW %EBSF +# +# +# Define Space Used Above Top Conservation Storage +# +# Define Space Used Above TCS for the non-snowmelt reservoirs. +# IF we are in snowmelt season (01Feb to 31Jul) THEN +# Define Space Used Above TCS for the snowmelt reservoirs as N/A +# (i.e. Not Applicable) +# ELSE +# Display Space Used Above TCS for the snowmelt reservoirs. +# ENDIF +# +%BBSP = %BBSTO - %BBTCS + PICTURE = "NNNNNNNNNZ" + MISSTR = " -NR-" + UNDEF = " -NR-" +%ENSP = %ENSTO - %ENTCS +%NHSP = %NHSTO - %NHTCS +%BUSP = %BUSTO - %BUTCS +%HDSP = %HDSTO - %HDTCS +%COSP = %COSTO - %COTCS +%WSSP = %WSSTO - %WSTCS +%FMSP = %FMSTO - %FMTCS +%MRTSP = %MRTSTO - %MRTTCS +%BURSP = %BNSTO - %BNTCS +%BARSP = %BRSTO - %BRTCS +%OWNSP = %OWSTO - %OWTCS +%MARSP = %MRSTO - %MRTCS +%SHASP = %SHASTO - %SHATCS +%FOLSP12 = %FLSTO12 - %FTCS12 +%FOLSP18 = %FLSTO18 - %FTCS18 +%FOLSP00 = %FLSTO00 - %FTCS00 +%FOLSP06 = %FLSTO06 - %FTCS06 +#%SACSP = %SACSTO - %SACTCS +%OROSP = %OROSTO - %OROTCS +%LOSSP = %LOSSTO - %LOSTCS +%NBBSP = %NBBSTO - %NBBTCS +%TULSP = %TULSTO - %TULTCS +%INDSP = %INDSTO - %INDTCS +%DELSP = %DELSTO - %DELTCS +%BDCSP = %BDCSTO - %BDCTCS + #IF %CAMSTO > %CAMTCS + %EBMSP = %EBMSTO - %EBMTCS + #ELSE + %EBMSP = " " + #ENDIF +# %MMMDD = MONOFYR(%BASDATE) * 100 + DAY(%BASDATE) +# #IF 0201 =< %MMMDD AND %MMMDD =< 0731 +# %PFSP = " N/A" +# %TMSP = " N/A" +# %SCSP = " N/A" +# %IBSP = " N/A" +# %FRISP = " N/A" +# %CAMSP = " N/A" +# %DONSP = " N/A" +# %NEXSP = " N/A" +# %NWMSP = " N/A" +# %PRSSP = " N/A" +# %BOCSP = " N/A" +# %STMSP = " N/A" +# #ELSE + %PFSP = %PFSTO - %PFTCS + %TMSP = %TMSTO - %TMTCS + %SCSP = %SCSTO - %SCTCS + %IBSP = %IBSTO - %IBTCS + %FRISP = %FRISTO - %FRITCS + %CAMSP = %CAMSTO - %CAMTCS + %DONSP = %DONSTO - %DONTCS + %NEXSP = %NEXSTO - %NEXTCS + %NWMSP = %NWMSTO - %NWMTCS + %PRSSP = %PRSSTO - %PRSTCS + %BOCSP = %BOCSTO - %BOCTCS + %STMSP = %STMSTO - %STMTCS +# + #IF %CAMSTO > %CAMTCS + %EBMSP = %EBMSTO - %EBMTCS + #ELSE + %EBMSP = " " + #ENDIF +# %MMMDD = MONOFYR(%BASDATE) * 100 + DAY(%BASDATE) +# #IF 0201 =< %MMMDD AND %MMMDD =< 0731 +# %PFSP = " N/A" +# %TMSP = " N/A" +# %SCSP = " N/A" +# %IBSP = " N/A" +# %FRISP = " N/A" +# %CAMSP = " N/A" +# %DONSP = " N/A" +# %NEXSP = " N/A" +# %NWMSP = " N/A" +# %PRSSP = " N/A" +# %BOCSP = " N/A" +# %STMSP = " N/A" +# #ELSE +# +# +# +# Basin summations of total above top of conservation to include +# only encroached projects. +# + #IF %ENSP =< 0 + %ENS = 0 + #ELSE + %ENS = %ENSP + #ENDIF + #IF %NHSP =< 0 + %NHS = 0 + #ELSE + %NHS = %NHSP + #ENDIF +# + #IF %BUSP =< 0 + %BCS = 0 + #ELSE + %BCS = %BUSP + #ENDIF +# + #IF %HDSP =< 0 + %HDS = 0 + #ELSE + %HDS = %HDSP + #ENDIF +# + #IF %COSP =< 0 + %COS = 0 + #ELSE + %COS = %COSP + #ENDIF +# + #IF %WSSP =< 0 + %WSS = 0 + #ELSE + %WSS = %WSSP + #ENDIF +# + #IF %FMSP =< 0 + %FMS = 0 + #ELSE + %FMS = %FMSP + #ENDIF +# + #IF %MRTSP =< 0 + %MRTS = 0 + #ELSE + %MRTS = %MRTSP + #ENDIF +# + #IF %BURSP =< 0 + %BNS = 0 + #ELSE + %BNS = %BURSP + #ENDIF +# + #IF %BARSP =< 0 + %BRS = 0 + #ELSE + %BRS = %BARSP + #ENDIF +# + #IF %OWNSP =< 0 + %OWS = 0 + #ELSE + %OWS = %OWNSP + #ENDIF +# + #IF %MARSP =< 0 + %MRS = 0 + #ELSE + %MRS = %MARSP + #ENDIF +# + #IF %SHASP =< 0 + %SHAS = 0 + #ELSE + %SHAS = %SHASP + #ENDIF +# + #IF %BBSP =< 0 + %BBTS = 0 + #ELSE + %BBTS = %BBSP + #ENDIF +# + #IF %FOLSP12 =< 0 + %FOLS12 = 0 + #ELSE + %FOLS12 = %FOLSP12 + #ENDIF + #IF %FOLSP18 =< 0 + %FOLS18 = 0 + #ELSE + %FOLS18 = %FOLSP18 + #ENDIF + #IF %FOLSP00 =< 0 + %FOLS00 = 0 + #ELSE + %FOLS00 = %FOLSP00 + #ENDIF + #IF %FOLSP06 =< 0 + %FOLS06 = 0 + #ELSE + %FOLS06 = %FOLSP06 + #ENDIF +# #IF %SACSP =< 0 +# %SACS = 0 +# #ELSE +# %SACS = %SACSP +# #ENDIF +## + #IF %OROSP =< 0 + %OROS = 0 + #ELSE + %OROS = %OROSP + #ENDIF +## + #IF %LOSSP =< 0 + %LOSS = 0 + #ELSE + %LOSS = %LOSSP + #ENDIF +## + #IF %NBBSP =< 0 + %NBBS = 0 + #ELSE + %NBBS = %NBBSP + #ENDIF +## + #IF %TULSP =< 0 + %TULS = 0 + #ELSE + %TULS = %TULSP + #ENDIF +# + #IF %INDSP =< 0 + %INDS = 0 + #ELSE + %INDS = %INDSP + #ENDIF +## + #IF %DELSP =< 0 + %DELS = 0 + #ELSE + %DELS = %DELSP + #ENDIF +## + #IF %BDCSP =< 0 + %BDCS = 0 + #ELSE + %BDCS = %BDCSP + #ENDIF +## + #IF %PFSP =< 0 + %PFS = 0 + #ELSE + %PFS = %PFSP + #ENDIF +# + #IF %TMSP =< 0 + %TMS = 0 + #ELSE + %TMS = %TMSP + #ENDIF +# + #IF %SCSP =< 0 + %SCS = 0 + #ELSE + %SCS = %SCSP + #ENDIF +# + #IF %IBSP =< 0 + %IBS = 0 + #ELSE + %IBS = %IBSP + #ENDIF +# + #IF %FRISP =< 0 + %FRIS = 0 + #ELSE + %FRIS = %FRISP + #ENDIF +## + #IF %CAMSP =< 0 + %CAMS = 0 + #ELSE + %CAMS = %CAMSP + #ENDIF +## + #IF %DONSP =< 0 + %DONS = 0 + #ELSE + %DONS = %DONSP + #ENDIF +## + #IF %NEXSP =< 0 + %NEXS = 0 + #ELSE + %NEXS = %NEXSP + #ENDIF +## + #IF %NWMSP =< 0 + %NWMS = 0 + #ELSE + %NWMS = %NWMSP + #ENDIF +## + #IF %PRSSP =< 0 + %PRSS = 0 + #ELSE + %PRSS = %PRSSP + #ENDIF +## + #IF %BOCSP =< 0 + %BOCS = 0 + #ELSE + %BOCS = %BOCSP + #ENDIF +## + #IF %STMSP =< 0 + %STMS = 0 + #ELSE + %STMS = %STMSP + #ENDIF +# +# Summation of volumes above the allowable. +# +# +%BB10 + DBLOC="Black Butte-Pool" DBPAR=Stor DBPTYP=Ave DBINT=~1Day DBDUR=1Decade DBVER=Calc-val +# DBLOC="Black Butte-Pool" DBPAR=Elev DBPTYP=Inst DBDUR=0 DBVER=Calc-val + PICTURE = "NNNNNNNNZ" + MISSTR = " -NR-" + UNDEF = " -NR-" + TIME = %BASDATE + DBTZ=PST8PDT + DBUNITS=ac-ft +%EN10 + DBLOC="Englebright Lake-Pool" +%NH10 + DBLOC="New Hogan-Pool" +%BU10 + DBLOC="Eastman Lake-Pool" +%HD10 + DBLOC="Hensley lake-Pool" +%PF10 + DBLOC="Pine Flat Lake-Pool" +%TM10 + DBLOC="Lake Kaweah-Pool" +%SC10 + DBLOC="Success Lake-Pool" +%IB10 + DBLOC="Lake Isabella-Pool" +%CO10 + DBLOC="Lake Mendocino-Pool" +%WS10 + DBLOC="Lake Sonoma-Pool" +%MRT10 + DBLOC="Martis Creek-Pool" +%FM10 + DBLOC="Farmington Dam-Pool" +%BN10 + DBLOC="Burns-Pool" +%BR10 + DBLOC="Bear-Pool" +%OW10 + DBLOC="Owens-Pool" +%MR10 + DBLOC="Mariposa-Pool" +%EPK10 + DBLOC="East Park" DBVER=Thumb-raw +%STG10 + DBLOC="Stony Gorge" +%CRT10 + DBLOC="Courtright" DBVER=Thumb-raw + +# A=KINGS B=COURTRIGHT F= +%WSH10 + DBLOC="Wishon" +# A=KINGS B=WISHON +%SHA10 + DBLOC="Shasta" DBVER=Raw-USBR-Combined +# FILE = /dat0/rtsc7db.dss TYPE=DSS +# A=SACRAMENTO B=SHASTA F= +%FOL10 + DBLOC="Folsom Lake" +# A=AMERICAN B=FOLSOM +#%SAC10 = %FOLSTO +# A=SAN JOAQUIN B=FRIANT +%ORO10 + DBLOC="Oroville Dam" DBVER=Calc-cdec +# A=FEATHER B=OROVILLE +%NBB10 + DBLOC="New Bullards Bar" DBVER=Calc-cdec +# A=NORTH YUBA B=NEW BULLARDS BAR +%IND10 + DBLOC="Indian Valley" DBVER=Calc-usgs +# A=NF CACHE CR B=INDIAN VALLEY +%UNV10 + DBLOC="Union Valley" DBVER=Calc-cdec +# A=AMERICAN B=UNION VALLEY +%FMD10 + DBLOC="French Meadows" DBVER=Calc-confidential +# A=AMERICAN B=FRENCH MEADOWS +%HHL10 + DBLOC="Hell Hole" +# A=AMERICAN B=HELL HOLE +%NWM10 + DBLOC="New Melones" DBVER=Raw-USBR-Combined +# A=STANISLAUS B=NEW MELONES +%BRD10 + DBLOC="Beardsley Lake" +# A=STANISLAUS B=BEARDSLEY +%DNL10 + DBLOC="Donnells" +# A=STANISLAUS B=DONNELLS +%TUL10 + DBLOC="Tulloch" +# A=STANISLAUS B=TULLOCH +%FRI10 + DBLOC="Friant Dam" +%MAM10 + DBLOC="Mammoth Pool" +# A=SAN JOAQUIN B=MAMMOTH POOL +%MTS10 + DBLOC="Friant Dam" DBPAR=Stor-Total Upstream +# A=SAN JOAQUIN B=FRIANT C=10R-TOT U\S +%CAM10 + DBLOC="Camanche" DBPAR=Stor DBVER=MANUAL +# A=MOKELUMNE B=CAMANCHE +%DON10 + DBLOC="Don Pedro" +# A=TUOLUMNE B=NEW DON PEDRO +%NEX10 + DBLOC="New Exchequer" +# A=MERCED B=NEW EXCHEQUER +%PRD10 + DBLOC="Pardee" +# A=MOKELUMNE B=PARDEE +%EBM10 = (%CAMSTO + %PRDSTO) +%SSP10 + DBLOC="Mokelumne R-Salt Springs" +# A=MOKELUMNE B=SALT SPRINGS +%LBR10 + DBLOC="Lower Bear" +# A=MOKELUMNE B=LOWER BEAR +%HTH10 + DBLOC="Hetch Hetchy" +# A=TUOLUMNE B=HETCH HETCHY +%CHV10 + DBLOC="Cherry Valley" +# A=TUOLUMNE B=CHERRY VALLEY +%LKL10 + DBLOC="Lake Eleanor" +# A=TUOLUMNE B=ELEANOR +%DEL10 + DBLOC="Del Valle" +# A=ALAMEDA CR B=DEL VALLE +%PRS10 + DBLOC="Prosser" +# A=PROSSER CR B=PROSSER CR +%BOC10 + DBLOC="Boca" +# A=LITTLE TRUCKEE B=BOCA +%STM10 + DBLOC="Stampede" +# A=LITTLE TRUCKEE B=STAMPEDE +%BDC10 + DBLOC="Big Dry Cr" +%LOS10 + DBLOC="Los Banos" + +%SHA10P=(%SHASTO/%SHA10)*100 + PICTURE = "NNNNNNNNZ" +%BB10P=(%BBSTO/%BB10)*100 +%ORO10P=(%OROSTO/%ORO10)*100 +%NBB10P=(%NBBSTO/%NBB10)*100 +%EN10P=(%ENSTO/%EN10)*100 +%IND10P=(%INDSTO/%IND10)*100 +%FOL10P=(%FOLSTO/%FOL10)*100 +%CAM10P=(%CAMSTO/%CAM10)*100 +%NH10P=(%NHSTO/%NH10)*100 +%FM10P=(%FMSTO/%FM10)*100 +%NWM10P=(%NWMSTO/%NWM10)*100 +%TUL10P=(%TULSTO/%TUL10)*100 +%DON10P=(%DONSTO/%DON10)*100 +%NEX10P=(%NEXSTO/%NEX10)*100 +%BN10P=(%BNSTO/%BN10)*100 +%BR10P=(%BRSTO/%BR10)*100 +%OW10P=(%OWSTO/(%OW10+0.001))*100 +%MR10P=(%MRSTO/(%MR10+0.001))*100 +%LOS10P=(%LOSSTO/%LOS10)*100 +%BU10P=(%BUSTO/%BU10)*100 +%HD10P=(%HDSTO/%HD10)*100 +%FRI10P=(%FRISTO/%FRI10)*100 +%BDC10P=(%BDCSTO/%BDC10)*100 + +%PF10P=(%PFSTO/%PF10)*100 +%TM10P=(%TMSTO/%TM10)*100 +%SC10P=(%SCSTO/%SC10)*100 +%IB10P=(%IBSTO/%IB10)*100 + +%MRT10P=(%MRTSTO/%MRT10)*100 +%PRS10P=(%PRSSTO/%PRS10)*100 +%BOC10P=(%BOCSTO/%BOC10)*100 +%STM10P=(%STMSTO/%STM10)*100 + +%CO10P=(%COSTO/%CO10)*100 +%WS10P=(%WSSTO/%WS10)*100 +%DEL10P=(%DELSTO/%DEL10)*100 + + + +%BBSA = %BBG - %BBSTO + PICTURE = "NNNNNNNNNZ" + MISSTR = " -NR-" + UNDEF = " -NR-" +%ENSA = %ENG - %ENSTO +%NHSA = %NHG - %NHSTO +%BUSA = %BUG - %BUSTO +%HDSA = %HDG - %HDSTO +%COSA = %COG - %COSTO +%WSSA = %WSG - %WSSTO +%FMSA = %FMG - %FMSTO +%MRTSA = %MRTG - %MRTSTO +%BURSA = %BNG - %BNSTO +%BARSA = %BRG - %BRSTO +%OWNSA = %OWG - %OWSTO +%MARSA = %MRG - %MRSTO +%SHASA = %SHAG - %SHASTO +%FOLSA = %FOLG - %FOLSTO + MISSTR = " -NF-" + UNDEF = " -NF-" +%FOLSA12 = %FOLG - %FLSTO12 +%FOLSA18 = %FOLG - %FLSTO18 +%FOLSA00 = %FOLG - %FLSTO00 +%FOLSA06 = %FOLG - %FLSTO06 +#%SACSA = %SACG - %SACSTO +%OROSA = %OROG - %OROSTO + MISSTR = " -NR-" + UNDEF = " -NR-" +%LOSSA = %LOSG - %LOSSTO +%NBBSA = %NBBG - %NBBSTO +%TULSA = %TULG - %TULSTO +%INDSA = %INDG - %INDSTO +%DELSA = %DELG - %DELSTO +%BDCSA = %BDCG - %BDCSTO +# #IF %CAMG > %CAMSTO +# %EBMSA = %EBMG - %EBMSTO +# #ELSE +# %EBMSA = " " +# #ENDIF +# %MMMDD = MONOFYR(%BASDATE) * 100 + DAY(%BASDATE) +# #IF 0201 =< %MMMDD AND %MMMDD =< 0731 +# %PFSA = " N/A" +# %TMSA = " N/A" +# %SCSA = " N/A" +# %IBSA = " N/A" +# %FRISA = " N/A" +# %CAMSA = " N/A" +# %DONSA = " N/A" +# %NEXSA = " N/A" +# %NWMSA = " N/A" +# %PRSSA = " N/A" +# %BOCSA = " N/A" +# %STMSA = " N/A" +# #ELSE + %PFSA = %PFG - %PFSTO + %TMSA = %TMG - %TMSTO + %SCSA = %SCG - %SCSTO + %IBSA = %IBG - %IBSTO + %FRISA = %FRIG - %FRISTO + %CAMSA = %CAMG - %CAMSTO + %DONSA = %DONG - %DONSTO + %NEXSA = %NEXG - %NEXSTO + %NWMSA = %NWMG - %NWMSTO + %PRSSA = %PRSG - %PRSSTO + %BOCSA = %BOCG - %BOCSTO + %STMSA = %STMG - %STMSTO +# +# #IF %CAMG > %CAMSTO +# %EBMSA = %EBMG - %EBMSTO +# #ELSE +# %EBMSA = " " +# #ENDIF +# %MMMDD = MONOFYR(%BASDATE) * 100 + DAY(%BASDATE) +# #IF 0201 =< %MMMDD AND %MMMDD =< 0731 +# %PFSA = " N/A" +# %TMSA = " N/A" +# %SCSA = " N/A" +# %IBSA = " N/A" +# %FRISA = " N/A" +# %CAMSA = " N/A" +# %DONSA = " N/A" +# %NEXSA = " N/A" +# %NWMSA = " N/A" +# %PRSSA = " N/A" +# %BOCSA = " N/A" +# %STMSA = " N/A" +# #ELSE +# +# +# +# Basin summations of total above top of conservation to include +# only encroached projects. +# + #IF %ENSA =< 0 + %ENA = 0 + #ELSE + %ENA = %ENSA + #ENDIF + #IF %NHSA =< 0 + %NHA = 0 + #ELSE + %NHA = %NHSA + #ENDIF +# + #IF %BUSA =< 0 + %BCA = 0 + #ELSE + %BCA = %BUSA + #ENDIF +# + #IF %HDSA =< 0 + %HDA = 0 + #ELSE + %HDA = %HDSA + #ENDIF +# + #IF %COSA =< 0 + %COA = 0 + #ELSE + %COA = %COSA + #ENDIF +# + #IF %WSSA =< 0 + %WSA = 0 + #ELSE + %WSA = %WSSA + #ENDIF +# + #IF %FMSA =< 0 + %FMA = 0 + #ELSE + %FMA = %FMSA + #ENDIF +# + #IF %MRTSA =< 0 + %MRTA = 0 + #ELSE + %MRTA = %MRTSA + #ENDIF +# + #IF %BURSA =< 0 + %BNA = 0 + #ELSE + %BNA = %BURSA + #ENDIF +# + #IF %BARSA =< 0 + %BRA = 0 + #ELSE + %BRA = %BARSA + #ENDIF +# + #IF %OWNSA =< 0 + %OWA = 0 + #ELSE + %OWA = %OWNSA + #ENDIF +# + #IF %MARSA =< 0 + %MRA = 0 + #ELSE + %MRA = %MARSA + #ENDIF +# + #IF %SHASA =< 0 + %SHAA = 0 + #ELSE + %SHAA = %SHASA + #ENDIF +# + #IF %BBSA =< 0 + %BBTA = 0 + #ELSE + %BBTA = %BBSA + #ENDIF +# + #IF %FOLSA =< 0 + %FOLA = 0 + #ELSE + %FOLA = %FOLSA + #ENDIF + #IF %FOLSA12 =< 0 + %FOLA12 = 0 + #ELSE + %FOLA12 = %FOLSA12 + #ENDIF + #IF %FOLSA18 =< 0 + %FOLA18 = 0 + #ELSE + %FOLA18 = %FOLSA18 + #ENDIF + #IF %FOLSA00 =< 0 + %FOLA00 = 0 + #ELSE + %FOLA00 = %FOLSA00 + #ENDIF + #IF %FOLSA06 =< 0 + %FOLA06 = 0 + #ELSE + %FOLA06 = %FOLSA06 + #ENDIF +# #IF %SACSA =< 0 +# %SACA = 0 +# #ELSE +# %SACA = %SACSA +# #ENDIF +## + #IF %OROSA =< 0 + %OROA = 0 + #ELSE + %OROA = %OROSA + #ENDIF +## + #IF %LOSSA =< 0 + %LOSA = 0 + #ELSE + %LOSA = %LOSSA + #ENDIF +## + #IF %NBBSA =< 0 + %NBBA = 0 + #ELSE + %NBBA = %NBBSA + #ENDIF +## + #IF %TULSA =< 0 + %TULA = 0 + #ELSE + %TULA = %TULSA + #ENDIF +# + #IF %INDSA =< 0 + %INDA = 0 + #ELSE + %INDA = %INDSA + #ENDIF +## + #IF %DELSA =< 0 + %DELA = 0 + #ELSE + %DELA = %DELSA + #ENDIF +## + #IF %BDCSA =< 0 + %BDCA = 0 + #ELSE + %BDCA = %BDCSA + #ENDIF +## + #IF %PFSA =< 0 + %PFA = 0 + #ELSE + %PFA = %PFSA + #ENDIF +# + #IF %TMSA =< 0 + %TMA = 0 + #ELSE + %TMA = %TMSA + #ENDIF +# + #IF %SCSA =< 0 + %SCA = 0 + #ELSE + %SCA = %SCSA + #ENDIF +# + #IF %IBSA =< 0 + %IBA = 0 + #ELSE + %IBA = %IBSA + #ENDIF +# + #IF %FRISA =< 0 + %FRIA = 0 + #ELSE + %FRIA = %FRISA + #ENDIF +## + #IF %CAMSA =< 0 + %CAMA = 0 + #ELSE + %CAMA = %CAMSA + #ENDIF +## + #IF %DONSA =< 0 + %DONA = 0 + #ELSE + %DONA = %DONSA + #ENDIF +## + #IF %NEXSA =< 0 + %NEXA = 0 + #ELSE + %NEXA = %NEXSA + #ENDIF +## + #IF %NWMSA =< 0 + %NWMA = 0 + #ELSE + %NWMA = %NWMSA + #ENDIF +## + #IF %PRSSA =< 0 + %PRSA = 0 + #ELSE + %PRSA = %PRSSA + #ENDIF +## + #IF %BOCSA =< 0 + %BOCA = 0 + #ELSE + %BOCA = %BOCSA + #ENDIF +## + #IF %STMSA =< 0 + %STMA = 0 + #ELSE + %STMA = %STMSA + #ENDIF +%BBO + DBLOC="Black Butte" DBPTYP=Ave DBPAR=Flow-Res Out DBVER=Calc-val DBINT=~1Day DBDUR=1Day + PICTURE = "NNNNNNNNNZ" + MISSTR = " -NR-" + UNDEF = " -NR-" + TIME = %BASDATE + DBUNITS=cfs + DBTZ=PST8PDT +%NHO + DBLOC="New Hogan" +%BUO + DBLOC="Eastman Lake" +%HDO + DBLOC="Hensley Lake" +%PFO + DBLOC="Pine Flat Lake" +%TMO + DBLOC="Lake Kaweah" +%SCO + DBLOC="Success Lake" +%IBO + DBLOC="Lake Isabella" +%COO + DBLOC="Lake Mendocino" +%WSO + DBLOC="Lake Sonoma" +%MRTO + DBLOC="Martis Creek" +%BNO + DBLOC="Burns" +%BRO + DBLOC="Bear" +%OWO + DBLOC="Owens" +%MRO + DBLOC="Mariposa" +%FMO + DBLOC="Farmington Dam" DBVER=Calc-RCF+FRMQ +%ENO + DBLOC="Englebright Lake" DBVER=Calc-thumb +%SHAO + DBLOC="Shasta" DBVER=Calc-usbr +%FOLO + DBLOC="Folsom Lake" + MISSTR = " -NR-" + UNDEF = " -NR-" +%NWMO + DBLOC="New Melones" +%TULO + DBLOC="Tulloch" +%FRIO + DBLOC="Friant Dam" DBVER=Calc-usbr +%OROO + DBLOC="Oroville Dam" DBVER=MANUAL + MISSTR = " -NR-" + UNDEF = " -NR-" +%INDO + DBLOC="Indian Valley" +%LOSO + DBLOC="Los Banos" +%DELO + DBLOC="Del Valle" +%DONO + DBLOC="Don Pedro" +%CAMO + DBLOC="Camanche" +%NEXO + DBLOC="New Exchequer" +%PRSO + DBLOC="Prosser" +%BOCO + DBLOC="Boca" +%STMO + DBLOC="Stampede" +%BDCO + DBLOC="Big Dry Cr" +%NBBO + DBLOC="New Bullards Bar" DBVER=Calc-cdec +%FOLO12 + DBLOC="Folsom Lake" DBPAR="Flow-Reservoir Outflow" DBPTYP=Inst DBINT=1Hour DBDUR=0 DBVER=CDEC-confidential-raw + MISSTR = " -NR-" + UNDEF = " -NR-" + DBTZ=UTC + TIME=%T12 +%FOLO18 + TIME=%T18 +%FOLO00 + TIME=%T00 +%FOLO06 + TIME=%T06 + +%BBI + DBLOC="Black Butte" DBPTYP=Ave DBPAR=Flow-Res In DBVER=Calc-val DBINT=~1Day DBDUR=1Day DBVER=Calc-val + PICTURE = "NNNNNNNNNZ" + MISSTR = " -NR-" + UNDEF = " -NR-" + TIME = %BASDATE + DBUNITS=cfs + DBTZ=PST8PDT +%NHI + DBLOC="New Hogan" +%BUI + DBLOC="Eastman Lake" +%HDI + DBLOC="Hensley Lake" +%PFI + DBLOC="Pine Flat Lake" +%TMI + DBLOC="Lake Kaweah" +%SCI + DBLOC="Success Lake" +%IBI + DBLOC="Lake Isabella" +%COI + DBLOC="Lake Mendocino" +%WSI + DBLOC="Lake Sonoma" +%MRTI + DBLOC="Martis Creek" +%BNI + DBLOC="Burns" +%BRI + DBLOC="Bear" +%OWI + DBLOC="Owens" +%MRI + DBLOC="Mariposa" +%FMI + DBLOC="Farmington Dam" DBVER=Calc-RCF+FRMQ +%ENI + DBLOC="Englebright Lake" DBVER=Calc-val +%SHAI + DBLOC="Shasta" DBVER=Raw-USBR-Combined +%FOLI + DBLOC="Folsom Lake" + MISSTR = " -NR-" + UNDEF = " -NR-" +%NWMI + DBLOC="New Melones" +%TULI + DBLOC="Tulloch" +%FRII + DBLOC="Friant Dam" +%OROI + DBLOC="Oroville Dam" DBVER=MANUAL + MISSTR = " -NR-" + UNDEF = " -NR-" +%INDI + DBLOC="Indian Valley" +%LOSI + DBLOC="Los Banos" +%DELI + DBLOC="Del Valle" +%DONI + DBLOC="Don Pedro" +%CAMI + DBLOC="Camanche" +%NEXI + DBLOC="New Exchequer" +%PRSI + DBLOC="Prosser" +%BOCI + DBLOC="Boca" +%STMI + DBLOC="Stampede" +%BDCI + DBLOC="Big Dry Cr" +%NBBI + DBLOC="New Bullards Bar" DBVER=Calc-cdec +%FOLI12 + DBLOC="Folsom Lake" DBVER=Raw-USBR-Combined DBINT=1Hour DBPTYP=Ave DBDUR=1Hour + DBTZ=UTC + TIME=%T12 +%FOLI18 + TIME=%T18 +%FOLI00 + TIME=%T00 +%FOLI06 + TIME=%T06 +# A=SAN JOAQUIN B=FRIANT F= +# A=NORTH YUBA B=NEW BULLARDS BAR +%UTDATE=%BASDATE +%T1 = %UTDATE-9Y + PICTURE = ZDAAAZZZY +%T2 = %UTDATE-8Y +%T3 = %UTDATE-7Y +%T4 = %UTDATE-6Y +%T5 = %UTDATE-5Y +%T6 = %UTDATE-4Y +%T7 = %UTDATE-3Y +%T8 = %UTDATE-2Y +%T9 = %UTDATE-1Y + + + +%EOSTO + PICTURE = " NNNNNNZ" + MISSTR = " -NR-" + UNDEF = " " + TIME = %UTDATE +# FILE = /shared/rtsc7db.dss TYPE=DSS + DBTZ=MST7MDT + DBLOC=Echo DBPTYP=Inst DBPAR=Stor DBINT=~1Day DBDUR=0 DBVER="Raw-USBRSLC" + DBUNITS=ac-ft + A=WEBER B=ECHO C=STOR-RES EOP E=1DAY F= +%EO1 + TIME=%T1 +%EO2 + TIME=%T2 +%EO3 + TIME=%T3 +%EO4 + TIME=%T4 +%EO5 + TIME=%T6 +%EO6 + TIME=%T6 +%EO7 + TIME=%T7 +%EO8 + TIME=%T8 +%EO9 + TIME=%T9 +%EO10=AVERAGE(IGNORE,%EOSTO,%EO1,%EO2,%EO3,%EO4,%EO5,%EO6,%EO7,%EO8,%EO9) + +%RKSTO + DBLOC=Rockport DBVER="Rev-USBRSLC" + TIME = %UTDATE +%RK1 + TIME=%T1 +%RK2 + TIME=%T2 +%RK3 + TIME=%T3 +%RK4 + TIME=%T4 +%RK5 + TIME=%T6 +%RK6 + TIME=%T6 +%RK7 + TIME=%T7 +%RK8 + TIME=%T8 +%RK9 + TIME=%T9 +%RK10=AVERAGE(IGNORE,%RKSTO,%RK1,%RK2,%RK3,%RK4,%RK5,%RK6,%RK7,%RK8,%RK9) +%ERSTO + DBLoc="EchoRockport" + TIME = %UTDATE +%ER1 + TIME=%T1 +%ER2 + TIME=%T2 +%ER3 + TIME=%T3 +%ER4 + TIME=%T4 +%ER5 + TIME=%T6 +%ER6 + TIME=%T6 +%ER7 + TIME=%T7 +%ER8 + TIME=%T8 +%ER9 + TIME=%T9 +%ER10=AVERAGE(IGNORE,%ERSTO,%ER1,%ER2,%ER3,%ER4,%ER5,%ER6,%ER7,%ER8,%ER9) +%LCSTO + DBLOC="Lost Cr" + A=LOST CR B=LOST CR + TIME = %UTDATE +%LC1 + TIME=%T1 +%LC2 + TIME=%T2 +%LC3 + TIME=%T3 +%LC4 + TIME=%T4 +%LC5 + TIME=%T6 +%LC6 + TIME=%T6 +%LC7 + TIME=%T7 +%LC8 + TIME=%T8 +%LC9 + TIME=%T9 +%LC10=AVERAGE(IGNORE,%LCSTO,%LC1,%LC2,%LC3,%LC4,%LC5,%LC6,%LC7,%LC8,%LC9) +%ECSTO + DBLOC="East Canyon" + A=EAST CANYON CR B=EAST CANYON + TIME = %UTDATE +%EC1 + TIME=%T1 +%EC2 + TIME=%T2 +%EC3 + TIME=%T3 +%EC4 + TIME=%T4 +%EC5 + TIME=%T6 +%EC6 + TIME=%T6 +%EC7 + TIME=%T7 +%EC8 + TIME=%T8 +%EC9 + TIME=%T9 +%EC10=AVERAGE(IGNORE,%ECSTO,%EC1,%EC2,%EC3,%EC4,%EC5,%EC6,%EC7,%EC8,%EC9) +%PVSTO + DBLOC=Pineview DBVER="Raw-USBRSLC" + A=OGDEN B=PINEVIEW + TIME = %UTDATE +%PV1 + TIME=%T1 +%PV2 + TIME=%T2 +%PV3 + TIME=%T3 +%PV4 + TIME=%T4 +%PV5 + TIME=%T6 +%PV6 + TIME=%T6 +%PV7 + TIME=%T7 +%PV8 + TIME=%T8 +%PV9 + TIME=%T9 +%PV10=AVERAGE(IGNORE,%PVSTO,%PV1,%PV2,%PV3,%PV4,%PV5,%PV6,%PV7,%PV8,%PV9) +%STSTO + DBLOC=Starvation DBVER="Rev-USBRSLC" + A=STRAWBERRY B=STARVATION + TIME = %UTDATE +%ST1 + TIME=%T1 +%ST2 + TIME=%T2 +%ST3 + TIME=%T3 +%ST4 + TIME=%T4 +%ST5 + TIME=%T6 +%ST6 + TIME=%T6 +%ST7 + TIME=%T7 +%ST8 + TIME=%T8 +%ST9 + TIME=%T9 +%ST10=AVERAGE(IGNORE,%STSTO,%ST1,%ST2,%ST3,%ST4,%ST5,%ST6,%ST7,%ST8,%ST9) +%VLSTO + DBLOC=Vallecito + A=LOS PINOS B=VALLECITO + TIME = %UTDATE +%VL1 + TIME=%T1 +%VL2 + TIME=%T2 +%VL3 + TIME=%T3 +%VL4 + TIME=%T4 +%VL5 + TIME=%T6 +%VL6 + TIME=%T6 +%VL7 + TIME=%T7 +%VL8 + TIME=%T8 +%VL9 + TIME=%T9 +%VL10=AVERAGE(IGNORE,%VLSTO,%VL1,%VL2,%VL3,%VL4,%VL5,%VL6,%VL7,%VL8,%VL9) +%LMSTO + DBLOC=Lemon DBVER="Rev-USBRSLC" + A=FLORIDA B=LEMON + TIME = %UTDATE +%LM1 + TIME=%T1 +%LM2 + TIME=%T2 +%LM3 + TIME=%T3 +%LM4 + TIME=%T4 +%LM5 + TIME=%T6 +%LM6 + TIME=%T6 +%LM7 + TIME=%T7 +%LM8 + TIME=%T8 +%LM9 + TIME=%T9 +%LM10=AVERAGE(IGNORE,%LMSTO,%LM1,%LM2,%LM3,%LM4,%LM5,%LM6,%LM7,%LM8,%LM9) +%BMSTO + DBLOC=Blue Mesa + A=GUNNISON B=BLUE MESA + TIME = %UTDATE +%BM1 + TIME=%T1 +%BM2 + TIME=%T2 +%BM3 + TIME=%T3 +%BM4 + TIME=%T4 +%BM5 + TIME=%T6 +%BM6 + TIME=%T6 +%BM7 + TIME=%T7 +%BM8 + TIME=%T8 +%BM9 + TIME=%T9 +%BM10=AVERAGE(IGNORE,%BMSTO,%BM1,%BM2,%BM3,%BM4,%BM5,%BM6,%BM7,%BM8,%BM9) +%PNSTO + DBLOC=Paonia + A=MUDDY CR B=PAONIA + TIME = %UTDATE +%PN1 + TIME=%T1 +%PN2 + TIME=%T2 +%PN3 + TIME=%T3 +%PN4 + TIME=%T4 +%PN5 + TIME=%T6 +%PN6 + TIME=%T6 +%PN7 + TIME=%T7 +%PN8 + TIME=%T8 +%PN9 + TIME=%T9 +%PN10=AVERAGE(IGNORE,%PNSTO,%PN1,%PN2,%PN3,%PN4,%PN5,%PN6,%PN7,%PN8,%PN9) +%RFSTO + DBLOC=Red Fleet + A=BRUSH CR B=RED FLEET + TIME = %UTDATE +%RF1 + TIME=%T1 +%RF2 + TIME=%T2 +%RF3 + TIME=%T3 +%RF4 + TIME=%T4 +%RF5 + TIME=%T6 +%RF6 + TIME=%T6 +%RF7 + TIME=%T7 +%RF8 + TIME=%T8 +%RF9 + TIME=%T9 +%RF10=AVERAGE(IGNORE,%RFSTO,%RF1,%RF2,%RF3,%RF4,%RF5,%RF6,%RF7,%RF8,%RF9) +%RGSTO + DBLOC=Ridgway + A=UNCOMPAHGRE B=RIDGWAY + TIME = %UTDATE +%RG1 + TIME=%T1 +%RG2 + TIME=%T2 +%RG3 + TIME=%T3 +%RG4 + TIME=%T4 +%RG5 + TIME=%T6 +%RG6 + TIME=%T6 +%RG7 + TIME=%T7 +%RG8 + TIME=%T8 +%RG9 + TIME=%T9 +%RG10=AVERAGE(IGNORE,%RGSTO,%RG1,%RG2,%RG3,%RG4,%RG5,%RG6,%RG7,%RG8,%RG9) +%JRSTO + DBLOC=Jordanelle + A=PROVO B=JORDANELLE + TIME = %UTDATE +%JR1 + TIME=%T1 +%JR2 + TIME=%T2 +%JR3 + TIME=%T3 +%JR4 + TIME=%T4 +%JR5 + TIME=%T6 +%JR6 + TIME=%T6 +%JR7 + TIME=%T7 +%JR8 + TIME=%T8 +%JR9 + TIME=%T9 +%JR10=AVERAGE(IGNORE,%JRSTO,%JR1,%JR2,%JR3,%JR4,%JR5,%JR6,%JR7,%JR8,%JR9) +%LDSTO + DBLOC=Little Dell DBVER="Raw-USBRSLC;MANUAL" + A=DELL CR B=LITTLE DELL + TIME = %UTDATE +%LD1 + TIME=%T1 +%LD2 + TIME=%T2 +%LD3 + TIME=%T3 +%LD4 + TIME=%T4 +%LD5 + TIME=%T6 +%LD6 + TIME=%T6 +%LD7 + TIME=%T7 +%LD8 + TIME=%T8 +%LD9 + TIME=%T9 +%LD10=AVERAGE(IGNORE,%LDSTO,%LD1,%LD2,%LD3,%LD4,%LD5,%LD6,%LD7,%LD8,%LD9) +%MDSTO + DBLOC=Mountain Dell + A=PARLEYS CR B=MOUNTAIN DELL + TIME = %UTDATE +%MD1 + TIME=%T1 +%MD2 + TIME=%T2 +%MD3 + TIME=%T3 +%MD4 + TIME=%T4 +%MD5 + TIME=%T6 +%MD6 + TIME=%T6 +%MD7 + TIME=%T7 +%MD8 + TIME=%T8 +%MD9 + TIME=%T9 +%MD10=AVERAGE(IGNORE,%MDSTO,%MD1,%MD2,%MD3,%MD4,%MD5,%MD6,%MD7,%MD8,%MD9) +# UT/CO %Full +%EO10P=(%EOSTO/%EO10)*100 + PICTURE=" NNNZ" +%PV10P=(%PVSTO/%PV10)*100 +%EC10P=(%ECSTO/%EC10)*100 +%LC10P=(%LCSTO/%LC10)*100 +%RK10P=(%RKSTO/%RK10)*100 +%ER10P=(%ERSTO/%ER10)*100 +%LD10P=(%LDSTO/%LD10)*100 +%MD10P=(%MDSTO/%MD10)*100 +%JR10P=(%JRSTO/%JR10)*100 +%RF10P=(%RFSTO/%RF10)*100 +%ST10P=(%STSTO/%ST10)*100 +%PN10P=(%PNSTO/%PN10)*100 +%BM10P=(%BMSTO/%BM10)*100 +%RG10P=(%RGSTO/%RG10)*100 +%LM10P=(%LMSTO/%LM10)*100 +%VL10P=(%VLSTO/%VL10)*100 + +%EOP = %EOSTO / %EOG * 100.0 + PICTURE=" NNZ" + %RKP = %RKSTO / %RKG * 100.0 + %ERP = %ERSTO / %ERG * 100.0 + %LCP = %LCSTO / %LCG * 100.0 + %ECP = %ECSTO / %ECG * 100.0 + %PVP = %PVSTO / %PVG * 100.0 + %STP = %STSTO / %STVG * 100.0 + %VLP = %VLSTO / %VLG * 100.0 + %LMP = %LMSTO / %LMG * 100.0 + %BMP = %BMSTO / %BMG * 100.0 + %PNP = %PNSTO / %PNG * 100.0 + %RFP = %RFSTO / %RFG * 100.0 + %RGP = %RGSTO / %RGG * 100.0 + %JRP = %JRSTO / %JRG * 100.0 + %LDP = %LDSTO / %LDG * 100.0 + %MDP = %MDSTO / %MDG * 100.0 +# %MPP = %MPSTO / %MPG * 100.0 +# %CRP = %CRSTO / %CRG * 100.0 +%EOTCS + DBPAR="Stor-Top Con" DBVER="Rev-USBRSLC" + PICTURE = " NNNNNZ" + MISSTR = " -NR-" + UNDEF = " -NR-" + TIME = %BASDATE + DBLOC=Echo +%RKTCS + DBLOC=Rockport +%ERTCS + DBLOC=EchoRockport DBVER="Rev-USBRSLC;Adjusted" +%LCTCS + DBLOC="Lost Cr" DBVER="Rev-USBRSLC" +%ECTCS + DBLOC="East Canyon" +%PVTCS + DBLOC="Pineview" +%STTCS + DBLOC="Starvation" +%VLTCS + DBLOC=Vallecito +%LMTCS + DBLOC=Lemon +%BMTCS + DBLOC="Blue Mesa" +%PNTCS + DBLOC=Paonia +%RFTCS + DBLOC="Red Fleet" +%RGTCS + DBLOC=Ridgway +%JRTCS + DBLOC=Jordanelle +%LDTCS + DBLOC="Little Dell" DBVER="Calc-USBRSLC;MANUAL" +%MDTCS + DBLOC="Mountain Dell" + + %EOSP = %EOSTO - %EOTCS + PICTURE = " NNNNNNZ" + MISSTR = " -NR-" + UNDEF = " -NR-" + %RKSP = %RKSTO - %RKTCS + %ERSP = %ERSTO - %ERTCS + %LCSP = %LCSTO - %LCTCS + %ECSP = %ECSTO - %ECTCS + %PVSP = %PVSTO - %PVTCS + %STSP = %STSTO - %STTCS + %VLSP = %VLSTO - %VLTCS + %LMSP = %LMSTO - %LMTCS + %BMSP = %BMSTO - %BMTCS + %PNSP = %PNSTO - %PNTCS + %RFSP = %RFSTO - %RFTCS + %RGSP = %RGSTO - %RGTCS + %JRSP = %JRSTO - %JRTCS + %LDSP = %LDSTO - %LDTCS + %MDSP = %MDSTO - %MDTCS +%DUMS = 0.0 +%EOS = MAX(MISS,%DUMS,%EOSP) +%RKS = MAX(MISS,%DUMS,%RKSP) +%ERS = MAX(MISS,%DUMS,%ERSP) +%LCS = MAX(MISS,%DUMS,%LCSP) +%ECS = MAX(MISS,%DUMS,%ECSP) +%PVS = MAX(MISS,%DUMS,%PVSP) +%STS = MAX(MISS,%DUMS,%STSP) +%VLS = MAX(MISS,%DUMS,%VLSP) +%LMS = MAX(MISS,%DUMS,%LMSP) +%BMS = MAX(MISS,%DUMS,%BMSP) +%PNS = MAX(MISS,%DUMS,%PNSP) +%RFS = MAX(MISS,%DUMS,%RFSP) +%RGS = MAX(MISS,%DUMS,%RGSP) +%JRS = MAX(MISS,%DUMS,%JRSP) +%LDS = MAX(MISS,%DUMS,%LDSP) +%MDS = MAX(MISS,%DUMS,%MDSP) + +#SPACE AVAILABLE + %EOSA = %EOG - %EOSTO + PICTURE = NNNNNNZ + MISSTR = " -NR-" + UNDEF = " -NR-" + %RKSA = %RKG - %RKSTO + %ERSA = %ERG - %ERSTO + %LCSA = %LCG - %LCSTO + %ECSA = %ECG - %ECSTO + %PVSA = %PVG - %PVSTO + %STSA = %STVG - %STSTO + %VLSA = %VLG - %VLSTO + %LMSA = %LMG - %LMSTO + %BMSA = %BMG - %BMSTO + %PNSA = %PNG - %PNSTO + %RFSA = %RFG - %RFSTO + %RGSA = %RGG - %RGSTO + %JRSA = %JRG - %JRSTO + %LDSA = %LDG - %LDSTO + %MDSA = %MDG - %MDSTO +%EOSA = MAX(MISS,%DUMS,%EOSA) +%RKSA = MAX(MISS,%DUMS,%RKSA) +%LCSA = MAX(MISS,%DUMS,%LCSA) +%ECSA = MAX(MISS,%DUMS,%ECSA) +%PVSA = MAX(MISS,%DUMS,%PVSA) +%STSA = MAX(MISS,%DUMS,%STSA) +%VLSA = MAX(MISS,%DUMS,%VLSA) +%LMSA = MAX(MISS,%DUMS,%LMSA) +%BMSA = MAX(MISS,%DUMS,%BMSA) +%PNSA = MAX(MISS,%DUMS,%PNSA) +%RFSA = MAX(MISS,%DUMS,%RFSA) +%RGSA = MAX(MISS,%DUMS,%RGSA) +%JRSA = MAX(MISS,%DUMS,%JRSA) +%LDSA = MAX(MISS,%DUMS,%LDSA) +%MDSA = MAX(MISS,%DUMS,%MDSA) + + +%DUMF=0.0 PICTURE=" NNZ" +#IF %EOSTO > %EOTCS AND %EOG > %EOTCS + %EOF = ( (%EOSTO-%EOTCS) / (%EOG-%EOTCS) ) * 100.0 + +#ELSE + %EOF = 0 +#ENDIF +#IF %RKSTO > %RKTCS AND %RKG > %RKTCS + %RKF = ( (%RKSTO-%RKTCS) / (%RKG-%RKTCS) ) * 100.0 +#ELSE + %RKF = 0 +#ENDIF +#IF %ERSTO > %ERTCS AND %ERG > %ERTCS + %ERF = ( (%ERSTO-%ERTCS) / (%ERG-%ERTCS) ) * 100.0 +#ELSE + %ERF = 0 +#ENDIF +#IF %LCSTO > %LCTCS AND %LCG > %LCTCS + %LCF = ( (%LCSTO-%LCTCS) / (%LCG-%LCTCS) ) * 100.0 +#ELSE + %LCF = 0 +#ENDIF +#IF %ECSTO > %ECTCS AND %ECG > %ECTCS + %ECF = ( (%ECSTO-%ECTCS) / (%ECG-%ECTCS) ) * 100.0 +#ELSE + %ECF = 0 +#ENDIF +#IF %PVSTO > %PVTCS AND %PVG > %PVTCS + %PVF = ( (%PVSTO-%PVTCS) / (%PVG-%PVTCS) ) * 100.0 +#ELSE + %PVF = 0 +#ENDIF +#IF %STSTO > %STTCS AND %STG > %STTCS + %STF = ( (%STSTO-%STTCS) / (%STG-%STTCS) ) * 100.0 +#ELSE + %STF = 0 +#ENDIF +#IF %VLSTO > %VLTCS AND %VLG > %VLTCS + %VLF = ( (%VLSTO-%VLTCS) / (%VLG-%VLTCS) ) * 100.0 +#ELSE + %VLF = 0 +#ENDIF +#IF %LMSTO > %LMTCS AND %LMG > %LMTCS + %LMF = ( (%LMSTO-%LMTCS) / (%LMG-%LMTCS) ) * 100.0 +#ELSE + %LMF = 0 +#ENDIF +#IF %BMSTO > %BMTCS AND %BMG > %BMTCS + %BMF = ( (%BMSTO-%BMTCS) / (%BMG-%BMTCS) ) * 100.0 +#ELSE + %BMF = 0 +#ENDIF +#IF %PNSTO > %PNTCS AND %PNG > %PNTCS + %PNVF = ( (%PNSTO-%PNTCS) / (%PNG-%PNTCS) ) * 100.0 +#ELSE + %PNVF = 0 +#ENDIF +#IF %RFSTO > %RFTCS AND %RFG > %RFTCS + %RFF = ( (%RFSTO-%RFTCS) / (%RFG-%RFTCS) ) * 100.0 +#ELSE + %RFF = 0 +#ENDIF +#IF %RGSTO > %RGTCS AND %RGG > %RGTCS + %RGF = ( (%RGSTO-%RGTCS) / (%RGG-%RGTCS) ) * 100.0 +#ELSE + %RGF = 0 +#IF %JRSTO > %JRTCS AND %JRG > %JRTCS + %JRF = ( (%JRSTO-%JRTCS) / (%JRG-%JRTCS) ) * 100.0 +#ELSE + %JRF = 0 +#ENDIF +#IF %LDSTO > %LDTCS AND %LDG > %LDTCS + %LDF = ( (%LDSTO-%LDTCS) / (%LDG-%LDTCS) ) * 100.0 +#ELSE + %LDF = 0 +#ENDIF +#IF %MDSTO > %MDTCS AND %MDG > %MDTCS + %MDF = ( (%MDSTO-%MDTCS) / (%MDG-%MDTCS) ) * 100.0 +#ELSE + %MDF = 0 +#ENDIF + +# UT/GRB inflows +%RKPOUT + DBLOC=Rockport + DBPTYP=Ave + DBPAR="Flow-Res Out" + DBDUR=1DAY + DBVER="Raw-USBRSLC" + DBUNITS=cfs + TIME=%BASDATE PICTURE=NNNNNNZ MISSTR=" -NR-" +%ECHOUT + DBLOC=Echo +%LSCOUT + DBLOC="Lost Cr" +%ESTOUT + DBLOC="East Canyon" +%PNVOUT + DBLOC=Pineview +%LDLOUT + DBLOC="Little Dell" DBVER="Raw-USBRSLC;MANUAL" +%MNDOUT + DBLOC="Mountain Dell" +%JRDOUT + DBLOC="Jordanelle" DBVER="Raw-USBRSLC" +%RDFOUT + DBLOC="Red Fleet" +%STROUT + DBLOC=Starvation +%PAOOUT + DBLOC=Paonia +%BLMOUT + DBLOC="Blue Mesa" +%RDGOUT + DBLOC=Ridgway +%LEMOUT + DBLOC=Lemon +%VALOUT + DBLOC=Vallecito +# Define all INFLOWS +%RKPIN + DBLOC=Rockport + DBPAR="Flow-Res In" + TIME=%BASDATE PICTURE=NNNNNNZ MISSTR=" -NR-" +%ECHIN + DBLOC=Echo +%LSCIN + DBLOC="Lost Cr" +%ESTIN + DBLOC="East Canyon" +%PNVIN + DBLOC=Pineview +%LDLIN + DBLOC="Little Dell" DBVER="Raw-USBRSLC;MANUAL" +%MNDIN + DBLOC="Mountain Dell" +%JRDIN + DBLOC=Jordanelle DBVER="Raw-USBRSLC" +%RDFIN + DBLOC="Red Fleet" +%STRIN + DBLOC=Starvation +%PAOIN + DBLOC=Paonia +%BLMIN + DBLOC="Blue Mesa" +%RDGIN + DBLOC=Ridgway +%LEMIN + DBLOC=Lemon +%VALIN + DBLOC=Vallecito +#ENDDEF diff --git a/tests/spk/testfiles/i-ucb b/tests/spk/testfiles/i-ucb new file mode 100644 index 0000000..6476fd6 --- /dev/null +++ b/tests/spk/testfiles/i-ucb @@ -0,0 +1,871 @@ +#FORM + Corps of Engineers Reservoir Report for Upper Colorado Basin Reservoirs + Data Ending 2400 hours %BASDATE + Report Generated %CTM + + Pool Storage + Elev Storage Change Outflow Inflow + (ft-msl) (acft) (acft) (cfs) (cfs) + + Paonia: %PAOELEV %PAOSTOR %PAOSDEL %PAOOUT %PAOIN + + Blue Mesa: %BLMELEV %BLMSTOR %BLMSDEL %BLMOUT %BLMIN + + Vallecito: %VALELEV %VALSTOR %VALSDEL %VALOUT %VALIN + + Lemon: %LEMELEV %LEMSTOR %LEMSDEL %LEMOUT %LEMIN + + Ridgway: %RDGELEV %RDGSTOR %RDGSDEL %RDGOUT %RDGIN + + Starvation: %STRELEV %STRSTOR %STRSDEL %STROUT %STRIN + + Red Fleet: %RDFELEV %RDFSTOR %RDFSDEL %RDFOUT %RDFIN + _______________________________________________________________________________ + Miscellaneous Flows %FDATE + Daily Daily Daily + Average(cfs) Max(cfs) Min(cfs) + Paonia: + Muddy Creek near Paonia %MAQR %MAQX %MAQN + N Fork Gunnison near Somerset %NGQR %NGQX %NGQN + + Blue Mesa: + Taylor below Taylor Park Res. %TYQR %TYQX %TYQN + East at Almont %EAQR %EAQX %EAQN + Taylor at Almont %TAQR %TAQX %TAQN + Gunnison near Gunnison %GUQR %GUQX %GUQN + Gunnison at Delta %CCQR %CCQX %CCQN + Colorado near Stateline %STQR %STQX %STQN + Gunnison below Gunnison Tunnel %GBQR %GBQX %GBQN + Gunnison near Grand Junction %GJQR %GJQX %GJQN + + Vallecito: + Vallecito near Bayfield %VCQR %VCQX %VCQN + Los Pinos near Ignacio %PIQR %PIQX %PIQN + + Lemon: + + Ridgway: + Uncompahgre near Ridgway %UAQR %UAQX %UAQN + Uncompahgre below Ridgway %UBQR %UBQX %UBQN + Uncompahgre at Coloma %UCQR %UCQX %UCQN + Uncompahgre near Delta %URQR %URQX %URQN + Dallas Creek near Ridgeway %DAQR %DAQX %DAQN + + Starvation: + Strawberry at Pinnacles %SPQR %SPQX %SPQN + Currant Cr near Fruitland %CFQR %CFQX %CFQN + Strawberry near Duchesne %SDQR %SDQX %SDQN + Duchesne near Tabiona %DTQR %DTQX %DTQN + Rock Cr near Mountain Home %RMQR %RMQX %RMQN + +Red Fleet: + Big Brush Cr above Red Fleet %BRQR %BRQX %BRQN + Green River near Jensen %GRQR %GRQX %GRQN + + *** ALL DATA PROVIDED BY USBR SALT LAKE CITY & USGS *** + + SNOTEL Data for Sites above Section 7 Reservoirs + Data Ending 2400 hours %BASDATE + Report Generated %CTM + + 24 Hour Change + Accumulated Snow Ending %FDATE + (weqv-inch) date @ time (weqv-inch) + Paonia: + North Lost Trial %SMH %DSMH %SMHI + McClure Pass %BCD %DBCD %BCDI + Park Reservoir %PPP %DPPP %PPPI + Overland Reservoir %OVR %DOVR %OVRI + + Blue Mesa: + Butte %CC1 %DCC1 %CC1I + Park Cone %CC2 %DCC2 %CC2I + Porphyry Creek %PRC %DPRC %PRCI + Slumgullion %SLG %DSLG %SLGI + Columbine %CLB %DCLB %CLBI + Mesa Lake %MSL %DMSL %MSLI + + Vallecito: + Vallecito %PCS %DPCS %PCSI + Beartown %BRT %DBRT %BRTI + Chamita %CHA %DCHA %CHAI + Hopewell %HPW %DHPW %HPWI + Middle Cr %MDL %DMDL %MDLI + Upper Rio Grande %URG %DURG %URGI + + Lemon: + Cascade %BLP %DBLP %BLPI + Mineral Creek %BLT %DBLT %BLTI + Molas Lake %DBP %DDBP %DBPI + Red Mountain Pass %RMP %DRMP %RMPI + Spud Mountain %SPU %DSPU %SPUI + Cumbres Trestle %CUM %DCUM %CUMI + Lone Cone %LNC %DLNC %LNCI + Wolf Creek Summit %WCS %DWCS %WCSI + + Ridgway: + Idarando %IDA %DIDA %IDAI + Columbine Pass %COL %DCOL %COLI + El Diente Peak %EDP %DEDP %EDPI + Lizzard Head %LZH %DLZH %LZHI + Scotch Creek %STC %DSTC %STCI + + Starvation: + Strawberry Divide %STD %DSTD %STDI + Daniels-Strawberry %DAN %DDAN %DANI + Currant Creek %CUC %DCUC %CUCI + Indian Canyon %IND %DIND %INDI + + Red Fleet: + Kings Cabin %CAB %DCAB %CABI + Mosby Mountain %MOS %DMOS %MOSI + Hayden Fork %HFK %DHFK %HFKI + Monte Cristo %MCR %DMCR %MCRI + Trout Creek %TRC %DTRC %TRCI + + *** ALL DATA PROVIDED BY NRCS *** + +#ENDFORM +# Set TABS to 18,35,50,65 +#DEF +# !ECHO +VALUE=EXACT +%CTM PICTURE=DDBAAABYYYYB@BZZZT +%BASDATE=SETTIME(%BASDATE,TIME,2400) PICTURE=DDBAAABYYYY +%FDATE=%BASDATE PICTURE=ZM/ZD/ZY +# Define all ELEVATIONS +%PAOELEV + DB=%DB DBTZ=MST7MDT + DBLOC="Paonia" DBPAR=Elev DBPTYP=Inst DBINT=~1Day DBDUR=0 DBVER="Raw-USBRSLC" + TIME=%BASDATE PICTURE=NNNZ.ZZ MISSTR=" -NR-" UNDEF=" -NR-" + DBUNITS=ft +#A=MUDDY CR B=PAONIA C=ELEV E=1DAY F= +%BLMELEV + DBLOC="Blue Mesa" +#A=GUNNISON B=BLUE MESA +%VALELEV + DBLOC="Vallecito" +#A=LOS PINOS B=VALLECITO +%LEMELEV + DBLOC="Lemon" +#A=FLORIDA B=LEMON +%RDGELEV + DBLOC="Ridgway" +#A=UNCOMPAHGRE B=RIDGWAY +%RDFELEV + DBLOC="Red Fleet" +#A=BRUSH CR B=RED FLEET +%STRELEV + DBLOC="Starvation" +#A=STRAWBERRY B=STARVATION +## Define all STORAGES +%PAOSTRS + DBLOC="Paonia" DBPAR=Stor DBVER="Rev-USBRSLC" + STIME=%BASDATE-35D ETIME=%BASDATE PICTURE=NNNNNNZ MISSTR=" -NR-" + DBUNITS=ac-ft +#A=MUDDY CR B=PAONIA C=STOR-RES EOP E=1DAY F= +%BLMSTRS + DBLOC="Blue Mesa" +#A=GUNNISON B=BLUE MESA +%VALSTRS + DBLOC="Vallecito" +#A=LOS PINOS B=VALLECITO +%LEMSTRS + DBLOC="Lemon" DBVER="Rev-USBRSLC" +#A=FLORIDA B=LEMON +%RDGSTRS + DBLOC="Ridgway" +#A=UNCOMPAHGRE B=RIDGWAY +%RDFSTRS + DBLOC="Red Fleet" +#A=BRUSH CR B=RED FLEET +%STRSTRS + DBLOC="Starvation" +#A=STRAWBERRY B=STARVATION +## +%PAOSTOR=%PAOSTRS(END) +%BLMSTOR=%BLMSTRS(END) +%VALSTOR=%VALSTRS(END) +%LEMSTOR=%LEMSTRS(END) +%RDGSTOR=%RDGSTRS(END) +%RDFSTOR=%RDFSTRS(END) +%STRSTOR=%STRSTRS(END) +## Define all STORAGE CHANGES +%PAOSDEL=%PAOSTOR-%PAOSTRS(%BASDATE-1D) +%BLMSDEL=%BLMSTOR-%BLMSTRS(%BASDATE-1D) +%VALSDEL=%VALSTOR-%VALSTRS(%BASDATE-1D) +%LEMSDEL=%LEMSTOR-%LEMSTRS(%BASDATE-1D) +%RDGSDEL=%RDGSTOR-%RDGSTRS(%BASDATE-1D) +%RDFSDEL=%RDFSTOR-%RDFSTRS(%BASDATE-1D) +%STRSDEL=%STRSTOR-%STRSTRS(%BASDATE-1D) +## Define all OUTFLOWS +%PAOOUT + TIME=%BASDATE PICTURE=NNNNNNZ MISSTR=" -NR-" + DBLOC="Paonia" DBPAR=Flow-Res Out DBPTYP=Ave DBINT=~1Day DBDUR=1Day DBVER="Raw-USBRSLC" + DBUNITS=cfs +#FILE=/dat0/rtsc7db.dss TYPE=DSS +#A=MUDDY CR B=PAONIA C=FLOW-RES OUT E=1DAY F= +%BLMOUT + DBLOC="Blue Mesa" +#A=GUNNISON B=BLUE MESA +%VALOUT + DBLOC="Vallecito" +#A=LOS PINOS B=VALLECITO +%LEMOUT + DBLOC="Lemon" +#A=FLORIDA B=LEMON +%RDGOUT + DBLOC="Ridgway" +#A=UNCOMPAHGRE B=RIDGWAY +%RDFOUT + DBLOC="Red Fleet" +#A=BRUSH CR B=RED FLEET +%STROUT + DBLOC="Starvation" +#A=STRAWBERRY B=STARVATION +## Define all INFLOWS +%PAOIN + DBLOC="Paonia" DBPAR=Flow-Res In + TIME=%BASDATE PICTURE=NNNNNNZ MISSTR=" -NR-" +#FILE=/dat0/rtsc7db.dss TYPE=DSS +#A=MUDDY CR B=PAONIA C=FLOW-RES IN E=1DAY F= +%BLMIN + DBLOC="Blue Mesa" +#A=GUNNISON B=BLUE MESA +%VALIN + DBLOC="Vallecito" +#A=LOS PINOS B=VALLECITO +%LEMIN + DBLOC="Lemon" +#A=FLORIDA B=LEMON +%RDGIN + DBLOC="Ridgway" +#A=UNCOMPAHGRE B=RIDGWAY +%RDFIN + DBLOC="Red Fleet" +#A=BRUSH CR B=RED FLEET +%STRIN + DBLOC="Starvation" +#A=STRAWBERRY B=STARVATION +## +## +## Define Daily Flow +## +## +## +%MAQR +DATE=%BASDATE+7H VALUE=NOMISS + DBLOC="Muddy Cr-abv Paonia Res" DBPAR=Flow DBVER=Calc-usgs +#FILE=/dat0/rtsc7db.dss TYPE=DSS +#A=MUDDY CR B=NR PAONIA C=FLOW E=1DAY F= +PICTURE=NNNNNNNZ MISSTR=" -NR-" +%NGQR + DBLOC="NF Gunnison-nr Somerset" +#A=NF GUNNISON B=NR SOMERSET +%TYQR + DBLOC="Taylor Park" +#A=TAYLOR B=BLW TAYLOR PARK +%EAQR + DBLOC="East R-Almont" +#A=EAST B=AT ALMONT +%TAQR + DBLOC="Taylor R-Almont" +#A=TAYLOR B=AT ALMONT +%GUQR + DBLOC="Gunnison R-nr Gunnison" +#A=GUNNISON B=NR GUNNISON +%CCQR + DBLOC="Gunnison R-at Delta" +#A=GUNNISON B=AT DELTA +%STQR + DBLOC="Colorado R-nr CO-UT State Line" +#A=COLORADO B=NR STATELINE +%GBQR + DBLOC="Gunnison R-blw Gunnison Tunnel" +#A=GUNNISON B=BLW GUNNISON TUN +%GJQR + DBLOC="Gunnison R-nr Grand Junction" +#A=GUNNISON B=NR GRAND JCT +%UAQR + DBLOC="Uncompahgre R-Nr Ridgway" +#A=UNCOMPAHGRE B=NR RIDGEWAY +%UBQR + DBLOC="Ridgway" +#A=UNCOMPAHGRE B=BLW RIDGWAY +%UCQR + DBLOC="Uncompahgre R-at Colona" +#A=UNCOMPAHGRE B=AT COLOMA +%URQR + DBLOC="Uncompahgre R-at Delta" +#A=UNCOMPAHGRE B=NR DELTA +%DAQR + DBLOC="Dallas Cr-nr Ridgway" +#A=DALLAS CR B=NR RIDGEWAY +%VCQR + DBLOC="Vallecito-nr Bayfield" +%PIQR + DBLOC="Los Pinos R-nr Ignacio" +%BRQR + DBLOC="Big Brush Cr-abv Red Fleet Res" +%GRQR + DBLOC="Green R-nr Jensen" +%SPQR + DBLOC="Strawberry R-Pinnacles nr Fruitland" +%CFQR + DBLOC="Currant Cr-nr Fruitland" +%SDQR + DBLOC="Strawberry R-nr Duchesne" +%DTQR + DBLOC="Duchesne R-nr Tabiona" +%RMQR + DBLOC="Rock Cr-nr Mountain Home" +## +## +## +## Define Daily Maximum Flow +## +## +## +%MAQX +DATE=%BASDATE+7H VALUE=NOMISS + DBLOC="Muddy Cr-abv Paonia Res" DBPTYP=Max +#FILE=/dat0/rtsc7db.dss TYPE=DSS +#A=MUDDY CR B=NR PAONIA C=FLOW MAX E=1DAY F= +PICTURE=NNNNNNNZ MISSTR=" -NR-" +#%MDQX +#A=MUDDY CR B=NR SOMERSET +%NGQX + DBLOC="NF Gunnison-nr Somerset" +#A=NF GUNNISON B=NR SOMERSET +%TYQX + DBLOC="Taylor Park" +#A=TAYLOR B=BLW TAYLOR PARK +%EAQX + DBLOC="East R-Almont" +#A=EAST B=AT ALMONT +%TAQX + DBLOC="Taylor R-Almont" +#A=TAYLOR B=AT ALMONT +%GUQX + DBLOC="Gunnison R-nr Gunnison" +#A=GUNNISON B=NR GUNNISON +%CCQX + DBLOC="Gunnison R-at Delta" +#A=GUNNISON B=AT DELTA +%STQX + DBLOC="Colorado R-nr CO-UT State Line" +#A=COLORADO B=NR STATELINE +%GBQX + DBLOC="Gunnison R-blw Gunnison Tunnel" +#A=GUNNISON B=BLW GUNNISON TUN +%GJQX + DBLOC="Gunnison R-nr Grand Junction" +#A=GUNNISON B=NR GRAND JCT +#%GDQX +#A=GUNNISON B=TUN DIV S CANAL +#%LPQX +#A=LOS PINOS B=NR BAYFIELD +#%FAQX +#A=FLORIDA B=ABV LEMON +#%FBQX +#A=FLORIDA B=BLW LEMON +%UAQX + DBLOC="Uncompahgre R-Nr Ridgway" +#A=UNCOMPAHGRE B=NR RIDGEWAY +%UBQX + DBLOC="Ridgway" +#A=UNCOMPAHGRE B=BLW RIDGWAY +%UCQX + DBLOC="Uncompahgre R-at Colona" +#A=UNCOMPAHGRE B=AT COLOMA +%URQX + DBLOC="Uncompahgre R-at Delta" +#A=UNCOMPAHGRE B=NR DELTA +#%UNQX +#A=UNCOMPAHGRE B=NR OLATHE +%DAQX + DBLOC="Dallas Cr-nr Ridgway" +#A=DALLAS CR B=NR RIDGEWAY +%VCQX + DBLOC="Vallecito-nr Bayfield" +%PIQX + DBLOC="Los Pinos R-nr Ignacio" +%BRQX + DBLOC="Big Brush Cr-abv Red Fleet Res" +%GRQX + DBLOC="Green R-nr Jensen" +%SPQX + DBLOC="Strawberry R-Pinnacles nr Fruitland" +%CFQX + DBLOC="Currant Cr-nr Fruitland" +%SDQX + DBLOC="Strawberry R-nr Duchesne" +%DTQX + DBLOC="Duchesne R-nr Tabiona" +%RMQX + DBLOC="Rock Cr-nr Mountain Home" + +## +## +## Define Daily Minimum Flow +## +## +## +## +%MAQN +DATE=%BASDATE+7H VALUE=NOMISS +#FILE=/dat0/rtsc7db.dss TYPE=DSS + DBLOC="Muddy Cr-abv Paonia Res" DBPTYP=Min +#A=MUDDY CR B=NR PAONIA C=FLOW MIN E=1DAY F= +PICTURE=NNNNNNNZ MISSTR=" -NR-" +#%MDQN +#A=MUDDY CR B=NR SOMERSET +%NGQN + DBLOC="NF Gunnison-nr Somerset" +#A=NF GUNNISON B=NR SOMERSET +%TYQN + DBLOC="Taylor Park" +#A=TAYLOR B=BLW TAYLOR PARK +%EAQN + DBLOC="East R-Almont" +#A=EAST B=AT ALMONT +%TAQN + DBLOC="Taylor R-Almont" +#A=TAYLOR B=AT ALMONT +%GUQN + DBLOC="Gunnison R-nr Gunnison" +#A=GUNNISON B=NR GUNNISON +%CCQN + DBLOC="Gunnison R-at Delta" +#A=GUNNISON B=AT DELTA +%STQN + DBLOC="Colorado R-nr CO-UT State Line" +#A=COLORADO B=NR STATELINE +%GBQN + DBLOC="Gunnison R-blw Gunnison Tunnel" +#A=GUNNISON B=BLW GUNNISON TUN +%GJQN + DBLOC="Gunnison R-nr Grand Junction" +#A=GUNNISON B=NR GRAND JCT +#%GDQN +#A=GUNNISON B=TUN DIV S CANAL +#%LPQN +#A=LOS PINOS B=NR BAYFIELD +#%FAQN +#A=FLORIDA B=ABV LEMON +#%FBQN +#A=FLORIDA B=BLW LEMON +%UAQN + DBLOC="Uncompahgre R-Nr Ridgway" +#A=UNCOMPAHGRE B=NR RIDGEWAY +%UBQN + DBLOC="Ridgway" +#A=UNCOMPAHGRE B=BLW RIDGWAY +%UCQN + DBLOC="Uncompahgre R-at Colona" +#A=UNCOMPAHGRE B=AT COLOMA +%URQN + DBLOC="Uncompahgre R-at Delta" +#A=UNCOMPAHGRE B=NR DELTA +#%UNQN +#A=UNCOMPAHGRE B=NR OLATHE +%DAQN + DBLOC="Dallas Cr-nr Ridgway" +#A=DALLAS CR B=NR RIDGEWAY +%VCQN + DBLOC="Vallecito-nr Bayfield" +%PIQN + DBLOC="Los Pinos R-nr Ignacio" +%BRQN + DBLOC="Big Brush Cr-abv Red Fleet Res" +%GRQN + DBLOC="Green R-nr Jensen" +%SPQN + DBLOC="Strawberry R-Pinnacles nr Fruitland" +%CFQN + DBLOC="Currant Cr-nr Fruitland" +%SDQN + DBLOC="Strawberry R-nr Duchesne" +%DTQN + DBLOC="Duchesne R-nr Tabiona" +%RMQN + DBLOC="Rock Cr-nr Mountain Home" + +## +## +## +## +## +## Define SNOTEL WEQV @ or before 0700 +# +%SMH +TIME=%BASDATE VALUE=NOMISS PICTURE=NNNNNZ.Z MISSTR=" -NR-" +DBLOC="North Lost Trail" DBPAR=Depth-SWE DBPTYP=Inst DBINT=1Hour DBDUR=0 DBVER="NRCS-raw" + DBUNITS=in +#FILE=/dat0/slcdcol.dss TYPE=DSS +#A=COLORADO B=NORTH LOST TRAIL C=SNOW-WEQV E=IR-MONTH F= +%BCD +DBLOC="Mc Clure Pass" +#A=GUNNISON B=MCCLURE +%CC1 +DBLOC="Butte Snow Gage" +#A=GUNNISON B=BUTTE +%CC2 +DBLOC="Park Cone" +#A=GUNNISON B=PARK CONE +%PCS +DBLOC="Vallecito" +#A=LOS PINOS B=VALLECITO +%BLP +DBLOC="Cascade #2" +#A=ANIMAS B=CASCADE +%BLT +DBLOC="Mineral Cr" +#A=ANIMAS B=MINERAL CR +%DBP +DBLOC="Molas Lake" +#A=ANIMAS B=MOLAS LAKE +%PPP +DBLOC="Park Reservoir" +#A=GUNNISON B=PARK +%PRC +DBLOC="Porphyry Cr" +#A=GUNNISON B=PORPHYRY CR +%SLG +DBLOC="Slumgullion" +#A=GUNNISON B=SLUMGULLION +%BRT +DBLOC="Beartown" +#A=RIO GRANDE B=BEARTOWN +%RMP +DBLOC="Red MountainPass" +#A=ANIMAS B=RED MTN PASS +%SPU +DBLOC="Spud Mountain" +#A=ANIMAS B=SPUD MTN +%IDA +DBLOC="Idarado" +#A=GUNNISON B=IDARANDO +%COL +DBLOC="Columbine Pass" +#A=GUNNISON B=COLUMBINE +%STD +DBLOC="StrawberryDivide" +#A=UINTAH B=STRAWBERRY DIV +%DAN +DBLOC="Daniels-Strawberry" +#A=UINTAH B=DANIELS-STRWBERY +%CUC +DBLOC="Currant Cr" +#A=UINTAH B=CURRANT CR +%IND +DBLOC="Indian Canyon" +#A=UINTAH B=INDIAN CANYON +%OVR +DBLOC="Overland Res" +#A=GUNNISON B=OVERLAND +%CAB +DBLOC="Kings Cabin" +#A=UINTAH B=KINGS CABIN +%MOS +DBLOC="Mosby Mountain" +#A=UINTAH B=MOSBY MTN +%CLB +DBLOC="Columbine" +#A=GUNNISON B=COLUMBINE +%MSL +DBLOC="Mesa Lake" +#A=GUNNISON B=MESA LAKE +%CHA +DBLOC="Chamita" +#A=SAN JUAN B=CHAMITA +%HPW +DBLOC="Hopewell" +#A=RIO CHAMA B=HOPEWELL +%MDL +DBLOC="Middle Cr" +#A=RIO GRANDE B=MIDDLE DR +%URG +DBLOC="Upper Rio Grande" +#A=RIO GRANDE B=UPPER RIO GRANDE +%CUM +DBLOC="Cumbres Trestle" +#A=SAN JUAN B=CUMBRES TRESTLE +%LNC +DBLOC="Lone Cone" +#A=SAN MIGUEL B=LONE CONE +%WCS +DBLOC="Wolf Cr Summit" +#A=SAN JUAN B=WOLF CR SUMMIT +%EDP +DBLOC="El Diente Peak" +#A=DOLORES B=EL DIENTE PEAK +%LZH +DBLOC="Lizard Head" +#A=DOLORES B=LIZZARD HEAD +%STC +DBLOC="Scotch Cr" +#A=DOLORES B=SCOTCH CR +%HFK +DBLOC="Hayden Fork" +#A=BEAR B=HAYDEN FORK +%MCR +DBLOC="Monte Cristo" +#A=BEAR B=MONTE CRISTO +%TRC +DBLOC="Trout Cr" +#A=GREEN B=TROUT CR +# +## +# +%DMOS=DATATIME(%MOS) PICTURE=ZDAAAZZZYB@BZZ:ZT +%DOVR=DATATIME(%OVR) +%DSMH=DATATIME(%SMH) +%DBCD=DATATIME(%BCD) +%DCC1=DATATIME(%CC1) +%DCC2=DATATIME(%CC2) +%DPCS=DATATIME(%PCS) +%DBLP=DATATIME(%BLP) +%DDBP=DATATIME(%DBP) +%DBLT=DATATIME(%BLT) +%DPPP=DATATIME(%PPP) +%DPRC=DATATIME(%PRC) +%DSLG=DATATIME(%SLG) +%DBRT=DATATIME(%BRT) +%DRMP=DATATIME(%RMP) +%DSPU=DATATIME(%SPU) +%DIDA=DATATIME(%IDA) +%DCOL=DATATIME(%COL) +%DSTD=DATATIME(%STD) +%DDAN=DATATIME(%DAN) +%DCUC=DATATIME(%CUC) +%DIND=DATATIME(%IND) +%DCAB=DATATIME(%CAB) +%DCLB=DATATIME(%CLB) +%DMSL=DATATIME(%MSL) +%DCHA=DATATIME(%CHA) +%DHPW=DATATIME(%HPW) +%DMDL=DATATIME(%MDL) +%DURG=DATATIME(%URG) +%DCUM=DATATIME(%CUM) +%DLNC=DATATIME(%LNC) +%DWCS=DATATIME(%WCS) +%DEDP=DATATIME(%EDP) +%DLZH=DATATIME(%LZH) +%DSTC=DATATIME(%STC) +%DHFK=DATATIME(%HFK) +%DMCR=DATATIME(%MCR) +%DTRC=DATATIME(%TRC) +# +## Define SNOTEL INCREMENTAL WEQV +# +%SMHSWES +DBLOC="North Lost Trail" DBPAR="Depth-SWE" DBVER="NRCS-raw" +STIME=%BASDATE-7D ETIME=%BASDATE PICTURE=NNNNZ.Z MISSTR=" -NR-" +DBUNITS=in +#FILE=/dat0/slcdcol.dss TYPE=DSS +#A=COLORADO B=NORTH LOST TRAIL C=SNOW-WEQV INC E=1DAY F= +%BCDSWES +DBLOC="Mc Clure Pass" +#A=GUNNISON B=MCCLURE +%CC1SWES +DBLOC="Butte Snow Gage" +#A=GUNNISON B=BUTTE +%CC2SWES +DBLOC="Park Cone" +#A=GUNNISON B=PARK CONE +%PCSSWES +DBLOC="Vallecito" +#A=LOS PINOS B=VALLECITO +%BLPSWES +DBLOC="Cascade #2" +#A=ANIMAS B=CASCADE +%BLTSWES +DBLOC="Mineral Cr" +#A=ANIMAS B=MINERAL CR +%DBPSWES +DBLOC="Molas Lake" +#A=ANIMAS B=MOLAS LAKE +%PPPSWES +DBLOC="Park Reservoir" +#A=GUNNISON B=PARK +%PRCSWES +DBLOC="Porphyry Cr" +#A=GUNNISON B=PORPHYRY CR +%SLGSWES +DBLOC="Slumgullion" +#A=GUNNISON B=SLUMGULLION +%BRTSWES +DBLOC="Beartown" +#A=RIO GRANDE B=BEARTOWN +%RMPSWES +DBLOC="Red MountainPass" +#A=ANIMAS B=RED MTN PASS +%SPUSWES +DBLOC="Spud Mountain" +#A=ANIMAS B=SPUD MTN +%IDASWES +DBLOC="Idarado" +#A=GUNNISON B=IDARANDO +%COLSWES +DBLOC="Columbine Pass" +#A=GUNNISON B=COLUMBINE +%STDSWES +DBLOC="StrawberryDivide" +#A=UINTAH B=STRAWBERRY DIV +%DANSWES +DBLOC="Daniels-Strawberry" +#A=UINTAH B=DANIELS-STRWBERY +%CUCSWES +DBLOC="Currant Cr" +#A=UINTAH B=CURRANT CR +%INDSWES +DBLOC="Indian Canyon" +#A=UINTAH B=INDIAN CANYON +%OVRSWES +DBLOC="Overland Res" +#A=GUNNISON B=OVERLAND +%CABSWES +DBLOC="Kings Cabin" +#A=UINTAH B=KINGS CABIN +%MOSSWES +DBLOC="Mosby Mountain" +#A=UINTAH B=MOSBY MTN +%CLBSWES +DBLOC="Columbine" +#A=GUNNISON B=COLUMBINE +%MSLSWES +DBLOC="Mesa Lake" +#A=GUNNISON B=MESA LAKE +%CHASWES +DBLOC="Chamita" +#A=SAN JUAN B=CHAMITA +%HPWSWES +DBLOC="Hopewell" +#A=RIO CHAMA B=HOPEWELL +%MDLSWES +DBLOC="Middle Cr" +#A=RIO GRANDE B=MIDDLE DR +%URGSWES +DBLOC="Upper Rio Grande" +#A=RIO GRANDE B=UPPER RIO GRANDE +%CUMSWES +DBLOC="Cumbres Trestle" +#A=SAN JUAN B=CUMBRES TRESTLE +%LNCSWES +DBLOC="Lone Cone" +#A=SAN MIGUEL B=LONE CONE +%WCSSWES +DBLOC="Wolf Cr Summit" +#A=SAN JUAN B=WOLF CR SUMMIT +%EDPSWES +DBLOC="El Diente Peak" +#A=DOLORES B=EL DIENTE PEAK +%LZHSWES +DBLOC="Lizard Head" +#A=DOLORES B=LIZZARD HEAD +%STCSWES +DBLOC="Scotch Cr" +#A=DOLORES B=SCOTCH CR +%HFKSWES +DBLOC="Hayden Fork" +#A=BEAR B=HAYDEN FORK +%MCRSWES +DBLOC="Monte Cristo" +#A=BEAR B=MONTE CRISTO +%TRCSWES +DBLOC="Trout Cr" +#A=GREEN B=TROUT CR +# +#Define end value +%SMHSWEE = %SMHSWES(END) +UNDEF=" -NR-" PICTURE=NNNNZ.Z MISSTR=" -NR-" +%BCDSWEE = %BCDSWES(END) +%CC1SWEE = %CC1SWES(END) +%CC2SWEE = %CC2SWES(END) +%PCSSWEE = %PCSSWES(END) +%BLPSWEE = %BLPSWES(END) +%BLTSWEE = %BLTSWES(END) +%DBPSWEE = %DBPSWES(END) +%PPPSWEE = %PPPSWES(END) +%PRCSWEE = %PRCSWES(END) +%SLGSWEE = %SLGSWES(END) +%BRTSWEE = %BRTSWES(END) +%RMPSWEE = %RMPSWES(END) +%SPUSWEE = %SPUSWES(END) +%IDASWEE = %IDASWES(END) +%COLSWEE = %COLSWES(END) +%STDSWEE = %STDSWES(END) +%DANSWEE = %DANSWES(END) +%CUCSWEE = %CUCSWES(END) +%INDSWEE = %INDSWES(END) +%OVRSWEE = %OVRSWES(END) +%CABSWEE = %CABSWES(END) +%MOSSWEE = %MOSSWES(END) +%CLBSWEE = %CLBSWES(END) +%MSLSWEE = %MSLSWES(END) +%CHASWEE = %CHASWES(END) +%HPWSWEE = %HPWSWES(END) +%MDLSWEE = %MDLSWES(END) +%URGSWEE = %URGSWES(END) +%CUMSWEE = %CUMSWES(END) +%LNCSWEE = %LNCSWES(END) +%WCSSWEE = %WCSSWES(END) +%EDPSWEE = %EDPSWES(END) +%LZHSWEE = %LZHSWES(END) +%STCSWEE = %STCSWES(END) +%HFKSWEE = %HFKSWES(END) +%MCRSWEE = %MCRSWES(END) +%TRCSWEE = %TRCSWES(END) +# +#Calculate 24 Hour Change +%SMHI = %SMHSWEE - %SMHSWES(%BASDATE-1D) +UNDEF=" -NR-" PICTURE=NNNNZ.Z MISSTR=" -NR-" +%BCDI = %BCDSWEE - %BCDSWES(%BASDATE-1D) +%CC1I = %CC1SWEE - %CC1SWES(%BASDATE-1D) +%CC2I = %CC2SWEE - %CC2SWES(%BASDATE-1D) +%PCSI = %PCSSWEE - %PCSSWES(%BASDATE-1D) +%BLPI = %BLPSWEE - %BLPSWES(%BASDATE-1D) +%BLTI = %BLTSWEE - %BLTSWES(%BASDATE-1D) +%DBPI = %DBPSWEE - %DBPSWES(%BASDATE-1D) +%PPPI = %PPPSWEE - %PPPSWES(%BASDATE-1D) +%PRCI = %PRCSWEE - %PRCSWES(%BASDATE-1D) +%SLGI = %SLGSWEE - %SLGSWES(%BASDATE-1D) +%BRTI = %BRTSWEE - %BRTSWES(%BASDATE-1D) +%RMPI = %RMPSWEE - %RMPSWES(%BASDATE-1D) +%SPUI = %SPUSWEE - %SPUSWES(%BASDATE-1D) +%IDAI = %IDASWEE - %IDASWES(%BASDATE-1D) +%COLI = %COLSWEE - %COLSWES(%BASDATE-1D) +%STDI = %STDSWEE - %STDSWES(%BASDATE-1D) +%DANI = %DANSWEE - %DANSWES(%BASDATE-1D) +%CUCI = %CUCSWEE - %CUCSWES(%BASDATE-1D) +%INDI = %INDSWEE - %INDSWES(%BASDATE-1D) +%OVRI = %OVRSWEE - %OVRSWES(%BASDATE-1D) +%CABI = %CABSWEE - %CABSWES(%BASDATE-1D) +%MOSI = %MOSSWEE - %MOSSWES(%BASDATE-1D) +%CLBI = %CLBSWEE - %CLBSWES(%BASDATE-1D) +%MSLI = %MSLSWEE - %MSLSWES(%BASDATE-1D) +%CHAI = %CHASWEE - %CHASWES(%BASDATE-1D) +%HPWI = %HPWSWEE - %HPWSWES(%BASDATE-1D) +%MDLI = %MDLSWEE - %MDLSWES(%BASDATE-1D) +%URGI = %URGSWEE - %URGSWES(%BASDATE-1D) +%CUMI = %CUMSWEE - %CUMSWES(%BASDATE-1D) +%LNCI = %LNCSWEE - %LNCSWES(%BASDATE-1D) +%WCSI = %WCSSWEE - %WCSSWES(%BASDATE-1D) +%EDPI = %EDPSWEE - %EDPSWES(%BASDATE-1D) +%LZHI = %LZHSWEE - %LZHSWES(%BASDATE-1D) +%STCI = %STCSWEE - %STCSWES(%BASDATE-1D) +%HFKI = %HFKSWEE - %HFKSWES(%BASDATE-1D) +%MCRI = %MCRSWEE - %MCRSWES(%BASDATE-1D) +%TRCI = %TRCSWEE - %TRCSWES(%BASDATE-1D) +# +## Define DAILY INCREMENTAL PRECIP +## %BLMPPT +## TIME=%BASDATE PICTURE=NNNNZ.ZZ MISSTR=" -NR-" +## FILE=/dat0/rtsc7db.dss TYPE=DSS +## A=GUNNISON B=BLUE MESA C=PRECIP-INC E=1DAY F= +## %VALPPT +## A=LOS PINOS B=VALLECITO +## %PAOPPT +## A=MUDDY CR B=PAONIA +#ENDDEF \ No newline at end of file diff --git a/tests/test_converter.py b/tests/test_converter.py index 645294b..4407731 100644 --- a/tests/test_converter.py +++ b/tests/test_converter.py @@ -5,10 +5,10 @@ from converter import convert_report; -INPUT_DIR = os.path.normpath(os.path.join(os.path.dirname(os.path.realpath(__file__)), "testfiles")) -EXPECT_DIR = os.path.normpath(os.path.join(os.path.dirname(os.path.realpath(__file__)), "expect")) -ACTUAL_DIR = os.path.normpath(os.path.join(os.path.dirname(os.path.realpath(__file__)), "actual")) -LOG_DIR = os.path.normpath(os.path.join(os.path.dirname(os.path.realpath(__file__)), "output")) +INPUT_DIR = os.path.normpath(os.path.join(os.path.dirname(os.path.realpath(__file__)), "spk", "testfiles")) +EXPECT_DIR = os.path.normpath(os.path.join(os.path.dirname(os.path.realpath(__file__)), "spk", "expect")) +ACTUAL_DIR = os.path.normpath(os.path.join(os.path.dirname(os.path.realpath(__file__)), "spk", "actual")) +LOG_DIR = os.path.normpath(os.path.join(os.path.dirname(os.path.realpath(__file__)), "spk", "output")) os.makedirs(ACTUAL_DIR, exist_ok=True) os.makedirs(LOG_DIR, exist_ok=True) From 5bd49fb7f906b89b9ac7edd6ca237946783d8e52 Mon Sep 17 00:00:00 2001 From: krowvin Date: Sun, 21 Jul 2024 14:24:22 -0500 Subject: [PATCH 12/21] Update workflow to ensure shell script is executable. Add SWT test for repgen CDA calls and includes tests for parallel. Locked test form date to ensure expected output should always be the same. --- .github/workflows/tests.yml | 14 +++---- tests/swt/actual/test.frm | 29 ++++++++++++++ tests/swt/expect/test.frm | 29 ++++++++++++++ tests/swt/output/test.txt | 50 ++++++++++++------------ tests/swt/testfiles/test.frm | 2 +- tests/test_run_swt.py | 74 ++++++++++++++++++++++++++++++++++++ 6 files changed, 165 insertions(+), 33 deletions(-) create mode 100644 tests/swt/actual/test.frm create mode 100644 tests/swt/expect/test.frm create mode 100644 tests/test_run_swt.py diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 50a5dbc..b4253e0 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -3,7 +3,6 @@ on: pull_request: branches: [ main ] - jobs: tests: runs-on: ubuntu-20.04 @@ -16,9 +15,11 @@ jobs: with: python-version: ${{ matrix.python-version}} architecture: x64 - - name: install requirements + - name: Install requirements run: pip3 install -r tests/requirements.txt - - name: run tests + - name: Make shell script executable + run: chmod +x tests/swt/scripts/run.sh + - name: Run tests run: pytest -v canpackage: runs-on: ubuntu-20.04 @@ -31,10 +32,9 @@ jobs: with: python-version: ${{ matrix.python-version}} architecture: x64 - - name: install requirements + - name: Install requirements run: pip3 install -r tests/requirements.txt - - name: package + - name: Package run: ./package.sh - - name: run package + - name: Run package run: python build/repgen.zip -i test.manual/test.if - diff --git a/tests/swt/actual/test.frm b/tests/swt/actual/test.frm new file mode 100644 index 0000000..7ae2bd0 --- /dev/null +++ b/tests/swt/actual/test.frm @@ -0,0 +1,29 @@ + Tulsa District + US Army Corps of Engineers + Elevation Fetch Example 8am to 8am +DATE ALTU ARBU ARCA BIGH BIRC BROK CANT CHEN COPA COUN DENI ELDR ELKC EUFA FALL FCOB FGIB FOSS FSUP GSAL HEYB HUDS HUGO HULA JOHN KAWL KEMP KEYS MARI MCGE MERE OOLO PATM PENS PINE SARD SKIA TENK THUN TOMS TORO WAUR WIST +20Jun2024 0800 1543.58 873.43 1006.08 857.95 750.07 602.38 1615.80 1415.68 710.66 1276.36 620.39 1337.65 796.08 586.48 948.96 1341.75 559.02 1640.90 2004.83 1125.14 761.49 620.22 404.92 733.62 1044.39 1010.78 1148.76 724.73 1351.01 578.12 2890.12 640.82 454.61 744.61 441.54 598.94 709.23 632.46 1039.76 1405.41 902.14 951.00 478.07 +20Jun2024 0900 1543.57 873.43 1006.08 857.94 750.06 602.38 1615.79 1415.67 710.66 1276.36 620.40 1337.64 796.08 586.47 948.96 1341.75 558.96 1640.90 2004.83 1125.17 761.49 620.31 404.87 733.63 1044.42 1010.79 1148.75 724.73 1351.02 578.12 2890.13 640.80 454.61 744.60 441.54 598.94 709.21 632.46 1039.76 1405.41 902.14 951.00 478.06 +20Jun2024 1000 1543.57 873.43 1006.08 857.95 750.06 602.38 1615.79 1415.67 710.65 1276.35 620.41 1337.64 796.08 586.47 948.95 1341.75 558.89 1640.90 2004.84 1125.23 761.49 620.42 404.83 733.63 1044.41 1010.78 1148.75 724.74 1351.02 578.11 2890.12 640.78 454.60 744.58 441.54 598.94 709.22 632.46 1039.76 1405.41 902.14 950.99 478.06 +20Jun2024 1100 1543.58 873.43 1006.08 857.95 750.06 602.38 1615.79 1415.67 710.66 1276.35 620.41 1337.64 796.08 586.47 948.96 1341.75 558.88 1640.90 2004.84 1125.23 761.49 620.45 404.78 733.63 1044.36 1010.79 1148.75 724.75 1351.03 578.11 2890.14 640.77 454.59 744.56 441.53 598.94 709.21 632.46 1039.75 1405.41 902.15 951.01 478.07 +20Jun2024 1200 1543.57 873.43 1006.08 857.95 750.06 602.38 1615.80 1415.67 710.66 1276.34 620.39 1337.64 796.08 586.46 948.96 1341.75 558.84 1640.90 2004.84 1125.22 761.49 620.34 404.77 733.63 1044.34 1010.78 1148.75 724.76 1351.03 578.12 2890.11 640.77 454.58 744.55 441.54 598.94 709.21 632.46 1039.75 1405.42 902.15 951.00 478.06 +20Jun2024 1300 1543.57 873.43 1006.08 857.95 750.06 602.37 1615.80 1415.67 710.66 1276.33 620.40 1337.64 796.08 586.46 948.96 1341.75 558.78 1640.89 2004.84 1125.23 761.48 620.26 404.74 733.63 1044.32 1010.78 1148.73 724.76 1351.04 578.11 2890.15 640.77 454.58 744.54 441.53 598.94 709.21 632.46 1039.76 1405.41 902.16 951.01 478.06 +20Jun2024 1400 1543.58 873.43 1006.07 857.95 750.06 602.33 1615.79 1415.67 710.67 1276.33 620.39 1337.65 796.08 586.46 948.96 1341.75 558.73 1640.89 2004.84 1125.19 761.48 620.13 404.72 733.63 1044.28 1010.76 1148.73 724.75 1351.03 578.11 2890.16 640.77 454.57 744.53 441.54 598.96 709.21 632.47 1039.76 1405.42 902.16 951.00 478.05 +20Jun2024 1500 1543.57 873.43 1006.07 857.94 750.05 602.29 1615.79 1415.67 710.66 1276.32 620.39 1337.64 796.08 586.44 948.96 1341.75 558.82 1640.89 2004.84 1125.17 761.48 619.98 404.68 733.63 1044.21 1010.72 1148.72 724.72 1351.03 578.11 2890.15 640.75 454.52 744.51 441.55 598.95 709.20 632.47 1039.75 1405.42 902.16 951.00 478.05 +20Jun2024 1600 1543.57 873.43 1006.07 857.94 750.05 602.25 1615.79 1415.67 710.67 1276.31 620.38 1337.64 796.08 586.42 948.96 1341.76 558.94 1640.89 2004.84 1125.18 761.48 619.85 404.67 733.63 1044.19 1010.69 1148.71 724.72 1351.03 578.11 2890.16 640.73 454.50 744.50 441.53 598.93 709.20 632.47 1039.75 1405.42 902.17 951.00 478.05 +20Jun2024 1700 1543.57 873.44 1006.07 857.95 750.05 602.23 1615.79 1415.66 710.66 1276.30 620.38 1337.64 796.08 586.41 948.96 1341.75 558.99 1640.88 2004.84 1125.13 761.48 619.73 404.65 733.63 1044.13 1010.66 1148.70 724.70 1351.03 578.12 2890.17 640.71 454.49 744.48 441.53 598.95 709.20 632.47 1039.75 1405.41 902.16 951.00 478.03 +20Jun2024 1800 1543.57 873.44 1006.07 857.94 750.05 602.21 1615.79 1415.66 710.65 1276.29 620.37 1337.63 796.08 586.41 948.96 1341.75 559.04 1640.89 2004.84 1125.15 761.48 619.61 404.65 733.63 1044.07 1010.64 1148.69 724.68 1351.03 578.11 2890.20 640.70 454.49 744.46 441.53 598.95 709.20 632.48 1039.75 1405.42 902.16 950.99 478.03 +20Jun2024 1900 1543.57 873.44 1006.07 857.94 750.05 602.21 1615.79 1415.65 710.66 1276.29 620.36 1337.64 796.08 586.39 948.95 1341.75 559.12 1640.89 2004.85 1125.12 761.48 619.46 404.66 733.63 1044.04 1010.61 1148.68 724.66 1351.04 578.11 2890.16 640.68 454.48 744.44 441.53 598.95 709.19 632.47 1039.75 1405.41 902.17 950.99 478.03 +20Jun2024 2000 1543.57 873.44 1006.07 857.94 750.05 602.21 1615.79 1415.65 710.65 1276.28 620.35 1337.63 796.08 586.40 948.96 1341.74 559.20 1640.89 2004.85 1125.15 761.48 619.65 404.65 733.63 1043.99 1010.60 1148.68 724.64 1351.04 578.11 2890.16 640.68 454.47 744.42 441.53 598.94 709.19 632.47 1039.75 1405.41 902.18 950.99 478.03 +20Jun2024 2100 1543.56 873.44 1006.07 857.94 750.05 602.22 1615.79 1415.66 710.66 1276.27 620.34 1337.63 796.08 586.41 948.96 1341.74 559.26 1640.88 2004.85 1125.19 761.48 619.64 404.66 733.64 1043.96 1010.59 1148.68 724.65 1351.05 578.11 2890.16 640.67 454.46 744.41 441.54 598.94 709.22 632.47 1039.75 1405.41 902.18 950.99 478.04 +20Jun2024 2200 1543.57 873.44 1006.06 857.93 750.05 602.21 1615.79 1415.66 710.66 1276.26 620.33 1337.63 796.08 586.39 948.96 1341.74 559.29 1640.89 2004.85 1125.18 761.48 619.73 404.65 733.64 1043.92 1010.60 1148.67 724.65 1351.05 578.11 2890.15 640.65 454.45 744.39 441.54 598.94 709.19 632.48 1039.75 1405.41 902.19 951.00 478.04 +20Jun2024 2300 1543.56 873.44 1006.07 857.93 750.05 602.20 1615.79 1415.66 710.66 1276.25 620.33 1337.64 796.08 586.37 948.96 1341.74 559.15 1640.88 2004.85 1125.16 761.48 619.86 404.64 733.64 1043.87 1010.60 1148.67 724.67 1351.05 578.11 2890.15 640.64 454.44 744.38 441.53 598.94 709.19 632.48 1039.75 1405.41 902.19 950.99 478.03 +20Jun2024 2400 1543.55 873.44 1006.06 857.93 750.04 602.20 1615.79 1415.66 710.66 1276.24 620.33 1337.64 796.08 586.37 948.96 1341.74 559.03 1640.89 2004.85 1125.18 761.47 619.98 404.65 733.64 1043.83 1010.61 1148.66 724.68 1351.06 578.11 2890.15 640.62 454.43 744.36 441.53 598.94 709.19 632.48 1039.74 1405.41 902.19 950.99 478.03 +21Jun2024 0100 1543.56 873.43 1006.06 857.93 750.04 602.21 1615.79 1415.66 710.66 1276.24 620.30 1337.63 796.08 586.37 948.96 1341.74 559.02 1640.88 2004.85 1125.18 761.47 620.06 404.65 733.64 1043.79 1010.62 1148.65 724.69 1351.06 578.10 2890.15 640.62 454.42 744.38 441.53 598.94 709.18 632.48 1039.74 1405.40 902.19 950.98 478.03 +21Jun2024 0200 1543.56 873.43 1006.06 857.93 750.04 602.21 1615.79 1415.66 710.66 1276.23 620.31 1337.63 796.08 586.36 948.96 1341.74 559.03 1640.88 2004.85 1125.18 761.47 620.11 404.65 733.64 1043.74 1010.61 1148.65 724.70 1351.05 578.11 2890.15 640.60 454.41 744.43 441.54 598.94 709.18 632.48 1039.74 1405.41 902.20 950.99 478.02 +21Jun2024 0300 1543.57 873.43 1006.06 857.93 750.04 602.20 1615.79 1415.66 710.66 1276.21 620.30 1337.63 796.08 586.35 948.96 1341.74 558.95 1640.89 2004.85 1125.18 761.47 620.00 404.66 733.64 1043.71 1010.62 1148.64 724.71 1351.06 578.10 2890.13 640.57 454.40 744.38 441.53 598.94 709.18 632.48 1039.74 1405.40 902.20 950.98 478.03 +21Jun2024 0400 1543.56 873.43 1006.06 857.93 750.04 602.20 1615.79 1415.66 710.65 1276.21 620.32 1337.63 796.08 586.35 948.96 1341.74 558.86 1640.88 2004.84 1125.19 761.47 619.92 404.66 733.64 1043.68 1010.62 1148.63 724.72 1351.05 578.10 2890.13 640.56 454.39 744.38 441.53 598.94 709.18 632.48 1039.74 1405.40 902.21 950.99 478.02 +21Jun2024 0500 1543.56 873.43 1006.05 857.93 750.04 602.21 1615.79 1415.66 710.65 1276.19 620.31 1337.63 796.08 586.34 948.97 1341.74 558.79 1640.88 2004.84 1125.18 761.47 620.00 404.65 733.65 1043.63 1010.62 1148.63 724.73 1351.05 578.10 2890.11 640.56 454.38 744.40 441.54 598.94 709.18 632.48 1039.74 1405.40 902.21 950.98 478.02 +21Jun2024 0600 1543.56 873.42 1006.05 857.93 750.04 602.20 1615.79 1415.66 710.65 1276.18 620.32 1337.62 796.08 586.34 948.96 1341.73 558.76 1640.88 2004.84 1125.17 761.47 620.02 404.66 733.65 1043.60 1010.63 1148.62 724.74 1351.06 578.10 2890.12 640.53 454.37 744.39 441.53 598.94 709.19 632.48 1039.74 1405.40 902.21 950.98 478.02 +21Jun2024 0700 1543.56 873.42 1006.06 857.92 750.04 602.21 1615.79 1415.66 710.65 1276.18 620.31 1337.62 796.08 586.34 948.96 1341.74 558.74 1640.88 2004.84 1125.19 761.47 619.98 404.66 733.64 1043.54 1010.62 1148.61 724.74 1351.06 578.10 2890.12 640.54 454.36 744.41 441.54 598.94 709.18 632.48 1039.74 1405.40 902.22 950.98 478.02 +21Jun2024 0800 1543.56 873.42 1006.06 857.93 750.04 602.21 1615.79 1415.66 710.65 1276.16 620.32 1337.62 796.09 586.34 948.96 1341.73 558.67 1640.88 2004.84 1125.18 761.47 619.95 404.66 733.65 1043.56 1010.64 1148.61 724.75 1351.06 578.10 2890.11 640.52 454.35 744.41 441.53 598.93 709.17 632.48 1039.74 1405.40 902.23 950.98 478.02 diff --git a/tests/swt/expect/test.frm b/tests/swt/expect/test.frm new file mode 100644 index 0000000..7ae2bd0 --- /dev/null +++ b/tests/swt/expect/test.frm @@ -0,0 +1,29 @@ + Tulsa District + US Army Corps of Engineers + Elevation Fetch Example 8am to 8am +DATE ALTU ARBU ARCA BIGH BIRC BROK CANT CHEN COPA COUN DENI ELDR ELKC EUFA FALL FCOB FGIB FOSS FSUP GSAL HEYB HUDS HUGO HULA JOHN KAWL KEMP KEYS MARI MCGE MERE OOLO PATM PENS PINE SARD SKIA TENK THUN TOMS TORO WAUR WIST +20Jun2024 0800 1543.58 873.43 1006.08 857.95 750.07 602.38 1615.80 1415.68 710.66 1276.36 620.39 1337.65 796.08 586.48 948.96 1341.75 559.02 1640.90 2004.83 1125.14 761.49 620.22 404.92 733.62 1044.39 1010.78 1148.76 724.73 1351.01 578.12 2890.12 640.82 454.61 744.61 441.54 598.94 709.23 632.46 1039.76 1405.41 902.14 951.00 478.07 +20Jun2024 0900 1543.57 873.43 1006.08 857.94 750.06 602.38 1615.79 1415.67 710.66 1276.36 620.40 1337.64 796.08 586.47 948.96 1341.75 558.96 1640.90 2004.83 1125.17 761.49 620.31 404.87 733.63 1044.42 1010.79 1148.75 724.73 1351.02 578.12 2890.13 640.80 454.61 744.60 441.54 598.94 709.21 632.46 1039.76 1405.41 902.14 951.00 478.06 +20Jun2024 1000 1543.57 873.43 1006.08 857.95 750.06 602.38 1615.79 1415.67 710.65 1276.35 620.41 1337.64 796.08 586.47 948.95 1341.75 558.89 1640.90 2004.84 1125.23 761.49 620.42 404.83 733.63 1044.41 1010.78 1148.75 724.74 1351.02 578.11 2890.12 640.78 454.60 744.58 441.54 598.94 709.22 632.46 1039.76 1405.41 902.14 950.99 478.06 +20Jun2024 1100 1543.58 873.43 1006.08 857.95 750.06 602.38 1615.79 1415.67 710.66 1276.35 620.41 1337.64 796.08 586.47 948.96 1341.75 558.88 1640.90 2004.84 1125.23 761.49 620.45 404.78 733.63 1044.36 1010.79 1148.75 724.75 1351.03 578.11 2890.14 640.77 454.59 744.56 441.53 598.94 709.21 632.46 1039.75 1405.41 902.15 951.01 478.07 +20Jun2024 1200 1543.57 873.43 1006.08 857.95 750.06 602.38 1615.80 1415.67 710.66 1276.34 620.39 1337.64 796.08 586.46 948.96 1341.75 558.84 1640.90 2004.84 1125.22 761.49 620.34 404.77 733.63 1044.34 1010.78 1148.75 724.76 1351.03 578.12 2890.11 640.77 454.58 744.55 441.54 598.94 709.21 632.46 1039.75 1405.42 902.15 951.00 478.06 +20Jun2024 1300 1543.57 873.43 1006.08 857.95 750.06 602.37 1615.80 1415.67 710.66 1276.33 620.40 1337.64 796.08 586.46 948.96 1341.75 558.78 1640.89 2004.84 1125.23 761.48 620.26 404.74 733.63 1044.32 1010.78 1148.73 724.76 1351.04 578.11 2890.15 640.77 454.58 744.54 441.53 598.94 709.21 632.46 1039.76 1405.41 902.16 951.01 478.06 +20Jun2024 1400 1543.58 873.43 1006.07 857.95 750.06 602.33 1615.79 1415.67 710.67 1276.33 620.39 1337.65 796.08 586.46 948.96 1341.75 558.73 1640.89 2004.84 1125.19 761.48 620.13 404.72 733.63 1044.28 1010.76 1148.73 724.75 1351.03 578.11 2890.16 640.77 454.57 744.53 441.54 598.96 709.21 632.47 1039.76 1405.42 902.16 951.00 478.05 +20Jun2024 1500 1543.57 873.43 1006.07 857.94 750.05 602.29 1615.79 1415.67 710.66 1276.32 620.39 1337.64 796.08 586.44 948.96 1341.75 558.82 1640.89 2004.84 1125.17 761.48 619.98 404.68 733.63 1044.21 1010.72 1148.72 724.72 1351.03 578.11 2890.15 640.75 454.52 744.51 441.55 598.95 709.20 632.47 1039.75 1405.42 902.16 951.00 478.05 +20Jun2024 1600 1543.57 873.43 1006.07 857.94 750.05 602.25 1615.79 1415.67 710.67 1276.31 620.38 1337.64 796.08 586.42 948.96 1341.76 558.94 1640.89 2004.84 1125.18 761.48 619.85 404.67 733.63 1044.19 1010.69 1148.71 724.72 1351.03 578.11 2890.16 640.73 454.50 744.50 441.53 598.93 709.20 632.47 1039.75 1405.42 902.17 951.00 478.05 +20Jun2024 1700 1543.57 873.44 1006.07 857.95 750.05 602.23 1615.79 1415.66 710.66 1276.30 620.38 1337.64 796.08 586.41 948.96 1341.75 558.99 1640.88 2004.84 1125.13 761.48 619.73 404.65 733.63 1044.13 1010.66 1148.70 724.70 1351.03 578.12 2890.17 640.71 454.49 744.48 441.53 598.95 709.20 632.47 1039.75 1405.41 902.16 951.00 478.03 +20Jun2024 1800 1543.57 873.44 1006.07 857.94 750.05 602.21 1615.79 1415.66 710.65 1276.29 620.37 1337.63 796.08 586.41 948.96 1341.75 559.04 1640.89 2004.84 1125.15 761.48 619.61 404.65 733.63 1044.07 1010.64 1148.69 724.68 1351.03 578.11 2890.20 640.70 454.49 744.46 441.53 598.95 709.20 632.48 1039.75 1405.42 902.16 950.99 478.03 +20Jun2024 1900 1543.57 873.44 1006.07 857.94 750.05 602.21 1615.79 1415.65 710.66 1276.29 620.36 1337.64 796.08 586.39 948.95 1341.75 559.12 1640.89 2004.85 1125.12 761.48 619.46 404.66 733.63 1044.04 1010.61 1148.68 724.66 1351.04 578.11 2890.16 640.68 454.48 744.44 441.53 598.95 709.19 632.47 1039.75 1405.41 902.17 950.99 478.03 +20Jun2024 2000 1543.57 873.44 1006.07 857.94 750.05 602.21 1615.79 1415.65 710.65 1276.28 620.35 1337.63 796.08 586.40 948.96 1341.74 559.20 1640.89 2004.85 1125.15 761.48 619.65 404.65 733.63 1043.99 1010.60 1148.68 724.64 1351.04 578.11 2890.16 640.68 454.47 744.42 441.53 598.94 709.19 632.47 1039.75 1405.41 902.18 950.99 478.03 +20Jun2024 2100 1543.56 873.44 1006.07 857.94 750.05 602.22 1615.79 1415.66 710.66 1276.27 620.34 1337.63 796.08 586.41 948.96 1341.74 559.26 1640.88 2004.85 1125.19 761.48 619.64 404.66 733.64 1043.96 1010.59 1148.68 724.65 1351.05 578.11 2890.16 640.67 454.46 744.41 441.54 598.94 709.22 632.47 1039.75 1405.41 902.18 950.99 478.04 +20Jun2024 2200 1543.57 873.44 1006.06 857.93 750.05 602.21 1615.79 1415.66 710.66 1276.26 620.33 1337.63 796.08 586.39 948.96 1341.74 559.29 1640.89 2004.85 1125.18 761.48 619.73 404.65 733.64 1043.92 1010.60 1148.67 724.65 1351.05 578.11 2890.15 640.65 454.45 744.39 441.54 598.94 709.19 632.48 1039.75 1405.41 902.19 951.00 478.04 +20Jun2024 2300 1543.56 873.44 1006.07 857.93 750.05 602.20 1615.79 1415.66 710.66 1276.25 620.33 1337.64 796.08 586.37 948.96 1341.74 559.15 1640.88 2004.85 1125.16 761.48 619.86 404.64 733.64 1043.87 1010.60 1148.67 724.67 1351.05 578.11 2890.15 640.64 454.44 744.38 441.53 598.94 709.19 632.48 1039.75 1405.41 902.19 950.99 478.03 +20Jun2024 2400 1543.55 873.44 1006.06 857.93 750.04 602.20 1615.79 1415.66 710.66 1276.24 620.33 1337.64 796.08 586.37 948.96 1341.74 559.03 1640.89 2004.85 1125.18 761.47 619.98 404.65 733.64 1043.83 1010.61 1148.66 724.68 1351.06 578.11 2890.15 640.62 454.43 744.36 441.53 598.94 709.19 632.48 1039.74 1405.41 902.19 950.99 478.03 +21Jun2024 0100 1543.56 873.43 1006.06 857.93 750.04 602.21 1615.79 1415.66 710.66 1276.24 620.30 1337.63 796.08 586.37 948.96 1341.74 559.02 1640.88 2004.85 1125.18 761.47 620.06 404.65 733.64 1043.79 1010.62 1148.65 724.69 1351.06 578.10 2890.15 640.62 454.42 744.38 441.53 598.94 709.18 632.48 1039.74 1405.40 902.19 950.98 478.03 +21Jun2024 0200 1543.56 873.43 1006.06 857.93 750.04 602.21 1615.79 1415.66 710.66 1276.23 620.31 1337.63 796.08 586.36 948.96 1341.74 559.03 1640.88 2004.85 1125.18 761.47 620.11 404.65 733.64 1043.74 1010.61 1148.65 724.70 1351.05 578.11 2890.15 640.60 454.41 744.43 441.54 598.94 709.18 632.48 1039.74 1405.41 902.20 950.99 478.02 +21Jun2024 0300 1543.57 873.43 1006.06 857.93 750.04 602.20 1615.79 1415.66 710.66 1276.21 620.30 1337.63 796.08 586.35 948.96 1341.74 558.95 1640.89 2004.85 1125.18 761.47 620.00 404.66 733.64 1043.71 1010.62 1148.64 724.71 1351.06 578.10 2890.13 640.57 454.40 744.38 441.53 598.94 709.18 632.48 1039.74 1405.40 902.20 950.98 478.03 +21Jun2024 0400 1543.56 873.43 1006.06 857.93 750.04 602.20 1615.79 1415.66 710.65 1276.21 620.32 1337.63 796.08 586.35 948.96 1341.74 558.86 1640.88 2004.84 1125.19 761.47 619.92 404.66 733.64 1043.68 1010.62 1148.63 724.72 1351.05 578.10 2890.13 640.56 454.39 744.38 441.53 598.94 709.18 632.48 1039.74 1405.40 902.21 950.99 478.02 +21Jun2024 0500 1543.56 873.43 1006.05 857.93 750.04 602.21 1615.79 1415.66 710.65 1276.19 620.31 1337.63 796.08 586.34 948.97 1341.74 558.79 1640.88 2004.84 1125.18 761.47 620.00 404.65 733.65 1043.63 1010.62 1148.63 724.73 1351.05 578.10 2890.11 640.56 454.38 744.40 441.54 598.94 709.18 632.48 1039.74 1405.40 902.21 950.98 478.02 +21Jun2024 0600 1543.56 873.42 1006.05 857.93 750.04 602.20 1615.79 1415.66 710.65 1276.18 620.32 1337.62 796.08 586.34 948.96 1341.73 558.76 1640.88 2004.84 1125.17 761.47 620.02 404.66 733.65 1043.60 1010.63 1148.62 724.74 1351.06 578.10 2890.12 640.53 454.37 744.39 441.53 598.94 709.19 632.48 1039.74 1405.40 902.21 950.98 478.02 +21Jun2024 0700 1543.56 873.42 1006.06 857.92 750.04 602.21 1615.79 1415.66 710.65 1276.18 620.31 1337.62 796.08 586.34 948.96 1341.74 558.74 1640.88 2004.84 1125.19 761.47 619.98 404.66 733.64 1043.54 1010.62 1148.61 724.74 1351.06 578.10 2890.12 640.54 454.36 744.41 441.54 598.94 709.18 632.48 1039.74 1405.40 902.22 950.98 478.02 +21Jun2024 0800 1543.56 873.42 1006.06 857.93 750.04 602.21 1615.79 1415.66 710.65 1276.16 620.32 1337.62 796.09 586.34 948.96 1341.73 558.67 1640.88 2004.84 1125.18 761.47 619.95 404.66 733.65 1043.56 1010.64 1148.61 724.75 1351.06 578.10 2890.11 640.52 454.35 744.41 441.53 598.93 709.17 632.48 1039.74 1405.40 902.23 950.98 478.02 diff --git a/tests/swt/output/test.txt b/tests/swt/output/test.txt index 5f857d8..7ae2bd0 100644 --- a/tests/swt/output/test.txt +++ b/tests/swt/output/test.txt @@ -2,28 +2,28 @@ US Army Corps of Engineers Elevation Fetch Example 8am to 8am DATE ALTU ARBU ARCA BIGH BIRC BROK CANT CHEN COPA COUN DENI ELDR ELKC EUFA FALL FCOB FGIB FOSS FSUP GSAL HEYB HUDS HUGO HULA JOHN KAWL KEMP KEYS MARI MCGE MERE OOLO PATM PENS PINE SARD SKIA TENK THUN TOMS TORO WAUR WIST -20Jul2024 0800 1543.54 872.87 1006.75 857.66 750.45 600.12 1615.84 1415.02 710.49 1274.84 618.73 1336.96 795.72 584.59 948.59 1341.15 554.35 1640.44 2004.99 1125.67 761.06 620.20 403.73 733.51 1041.51 1010.39 1146.50 723.72 1350.72 576.92 2889.59 638.11 451.37 744.21 440.80 598.60 707.90 632.73 1039.66 1404.86 902.05 950.38 477.89 -20Jul2024 0900 1543.54 872.87 1006.76 857.66 750.45 600.13 1615.87 1415.02 710.50 1274.83 618.72 1336.97 795.71 584.59 948.57 1341.18 554.32 1640.44 2004.99 1125.71 761.06 620.20 403.74 733.51 1041.51 1010.37 1146.49 723.75 1350.76 576.93 2889.57 638.10 451.37 744.21 440.79 598.59 707.91 632.73 1039.66 1404.86 902.05 950.38 477.89 -20Jul2024 1000 1543.53 872.87 1006.76 857.66 750.45 600.12 1615.86 1415.02 710.49 1274.82 618.74 1336.97 795.72 584.60 948.57 1341.15 554.29 1640.43 2004.99 1125.70 761.06 620.22 403.73 733.51 1041.49 1010.42 1146.49 723.74 1350.74 576.92 2889.60 638.10 451.37 744.21 440.80 598.60 707.89 632.72 1039.67 1404.85 902.05 950.40 477.89 -20Jul2024 1100 1543.52 872.87 1006.77 857.66 750.44 600.13 1615.85 1415.02 710.49 1274.81 618.74 1336.97 795.71 584.60 948.57 1341.17 554.31 1640.44 2004.99 1125.62 761.06 620.26 403.73 733.51 1041.51 1010.40 1146.49 723.75 1350.74 576.92 2889.58 638.09 451.37 744.18 440.79 598.59 707.88 632.72 1039.67 1404.85 902.04 950.38 477.89 -20Jul2024 1200 1543.53 872.87 1006.77 857.66 750.44 600.12 1615.87 1415.02 710.50 1274.80 618.74 1336.98 795.72 584.61 948.57 1341.18 554.34 1640.44 2004.99 1125.68 761.06 620.24 403.72 733.51 1041.52 1010.37 1146.49 723.76 1350.74 576.92 2889.56 638.10 451.37 744.19 440.79 598.59 707.89 632.72 1039.67 1404.85 902.04 950.38 477.88 -20Jul2024 1300 1543.52 872.87 1006.77 857.66 750.44 600.12 1615.87 1415.02 710.50 1274.80 618.74 1336.97 795.71 584.62 948.57 1341.16 554.33 1640.44 2004.99 1125.65 761.06 620.26 403.72 733.51 1041.51 1010.36 1146.48 723.77 1350.73 576.92 2889.57 638.13 451.37 744.21 440.78 598.59 707.88 632.72 1039.67 1404.85 902.04 950.36 477.89 -20Jul2024 1400 1543.52 872.87 1006.77 857.65 750.44 600.12 1615.87 1415.02 710.49 1274.80 618.74 1336.98 795.71 584.60 948.57 1341.17 554.32 1640.43 2004.99 1125.67 761.06 620.29 403.72 733.50 1041.50 1010.36 1146.48 723.78 1350.74 576.92 2889.57 638.11 451.37 744.22 440.78 598.59 707.88 632.72 1039.68 1404.85 902.04 950.38 477.89 -20Jul2024 1500 1543.52 872.87 1006.77 857.65 750.44 600.11 1615.87 1415.02 710.49 1274.79 618.75 1336.98 795.71 584.60 948.57 1341.17 554.32 1640.44 2004.99 1125.69 761.05 620.34 403.72 733.49 1041.50 1010.34 1146.48 723.78 1350.73 576.91 2889.58 638.11 451.36 744.22 440.78 598.59 707.89 632.71 1039.67 1404.85 902.03 950.38 477.87 -20Jul2024 1600 1543.52 872.87 1006.77 857.65 750.43 600.11 1615.87 1415.01 710.49 1274.78 618.73 1336.97 795.71 584.61 948.57 1341.17 554.29 1640.44 2004.99 1125.62 761.06 620.27 403.71 733.50 1041.52 1010.33 1146.48 723.80 1350.73 576.91 2889.56 638.16 451.37 744.21 440.78 598.59 707.87 632.71 1039.67 1404.85 902.04 950.39 477.87 -20Jul2024 1700 1543.52 872.87 1006.77 857.66 750.43 600.10 1615.87 1415.01 710.49 1274.77 618.72 1336.98 795.71 584.60 948.57 1341.17 554.25 1640.44 2004.99 1125.62 761.05 620.30 403.70 733.49 1041.53 1010.30 1146.47 723.80 1350.74 576.90 2889.57 638.14 451.35 744.20 440.77 598.59 707.87 632.70 1039.67 1404.85 902.04 950.37 477.87 -20Jul2024 1800 1543.52 872.87 1006.78 857.66 750.43 600.10 1615.87 1415.01 710.49 1274.76 618.70 1336.97 795.71 584.59 948.57 1341.17 554.25 1640.44 2004.99 1125.67 761.05 620.38 403.70 733.49 1041.52 1010.29 1146.47 723.82 1350.73 576.90 2889.58 638.13 451.35 744.21 440.78 598.59 707.87 632.71 1039.66 1404.85 902.04 950.38 477.87 -20Jul2024 1900 1543.52 872.87 1006.78 857.65 750.43 600.07 1615.87 1415.01 710.49 1274.75 618.71 1336.97 795.71 584.58 948.56 1341.17 554.23 1640.43 2004.99 1125.55 761.05 620.30 403.69 733.49 1041.52 1010.26 1146.47 723.82 1350.73 576.89 2889.57 638.13 451.35 744.18 440.77 598.59 707.87 632.70 1039.66 1404.85 902.04 950.37 477.87 -20Jul2024 2000 1543.52 872.87 1006.79 857.65 750.43 600.07 1615.87 1415.01 710.50 1274.74 618.69 1336.98 795.71 584.58 948.57 1341.18 554.26 1640.43 2004.99 1125.65 761.05 620.25 403.69 733.49 1041.51 1010.26 1146.45 723.83 1350.73 576.89 2889.55 638.13 451.35 744.17 440.77 598.58 707.85 632.69 1039.66 1404.85 902.04 950.36 477.86 -20Jul2024 2100 1543.52 872.87 1006.78 857.65 750.43 600.06 1615.87 1415.01 710.49 1274.74 618.71 1336.97 795.70 584.57 948.57 1341.17 554.33 1640.43 2004.99 1125.69 761.04 620.26 403.69 733.49 1041.50 1010.26 1146.47 723.83 1350.73 576.88 2889.55 638.13 451.35 744.20 440.77 598.58 707.87 632.70 1039.66 1404.84 902.04 950.37 477.86 -20Jul2024 2200 1543.52 872.87 1006.79 857.65 750.43 600.06 1615.87 1415.01 710.50 1274.73 618.68 1336.97 795.70 584.57 948.57 1341.26 554.38 1640.43 2004.99 1125.59 761.04 620.20 403.69 733.48 1041.51 1010.26 1146.46 723.84 1350.73 576.88 2889.57 638.13 451.35 744.19 440.76 598.59 707.87 632.70 1039.66 1404.84 902.04 950.37 477.86 -20Jul2024 2300 1543.57 872.87 1006.79 857.65 750.42 600.06 1615.87 1415.01 710.50 1274.72 618.69 1336.96 795.70 584.58 948.57 1341.24 554.44 1640.43 2004.99 1125.60 761.04 620.17 403.69 733.49 1041.52 1010.29 1146.50 723.85 1350.74 576.88 2889.57 638.11 451.35 744.19 440.77 598.58 707.87 632.69 1039.66 1404.84 902.04 950.36 477.87 -20Jul2024 2400 1543.52 872.87 1006.80 857.65 750.42 600.06 1615.87 1415.01 710.49 1274.71 618.68 1336.96 795.69 584.58 948.56 1341.26 554.46 1640.43 2004.99 1125.59 761.04 620.22 403.69 733.50 1041.52 1010.28 1146.46 723.86 1350.74 576.88 2889.57 638.13 451.35 744.22 440.76 598.58 707.87 632.69 1039.66 1404.84 902.04 950.37 477.86 -21Jul2024 0100 1543.53 872.86 1006.79 857.65 750.51 600.06 1615.87 1415.01 710.52 1274.70 618.68 1336.96 795.69 584.58 948.57 1341.24 554.42 1640.43 2004.99 1125.59 761.04 620.23 403.69 733.50 1041.54 1010.31 1146.46 723.88 1350.73 576.87 2889.57 638.16 451.34 744.19 440.76 598.58 707.86 632.69 1039.66 1404.84 902.04 950.36 477.86 -21Jul2024 0200 1543.54 872.86 1006.79 857.65 750.51 600.06 1615.87 1415.01 710.49 1274.70 618.70 1336.96 795.69 584.57 948.56 1341.24 554.41 1640.43 2004.99 1125.62 761.04 620.16 403.69 733.51 1041.53 1010.31 1146.46 723.94 1350.73 576.87 2889.54 638.11 451.34 744.19 440.77 598.57 707.86 632.69 1039.65 1404.84 902.03 950.36 477.85 -21Jul2024 0300 1543.53 872.86 1006.80 857.65 750.50 600.06 1615.87 1415.01 710.51 1274.69 618.69 1336.96 795.68 584.57 948.56 1341.24 554.44 1640.43 2004.99 1125.59 761.06 620.13 403.69 733.50 1041.55 1010.31 1146.47 723.90 1350.74 576.87 2889.53 638.10 451.34 744.18 440.76 598.57 707.87 632.69 1039.66 1404.84 902.03 950.36 477.85 -21Jul2024 0400 1543.51 872.86 1006.80 857.65 750.51 600.06 1615.87 1415.01 710.51 1274.68 618.68 1336.95 795.69 584.57 948.55 1341.22 554.47 1640.43 2004.99 1125.58 761.11 620.11 403.69 733.50 1041.55 1010.32 1146.46 723.96 1350.74 576.86 2889.54 638.10 451.33 744.20 440.76 598.58 707.87 632.68 1039.67 1404.84 902.03 950.37 477.83 -21Jul2024 0500 1543.52 872.86 1006.80 857.65 750.52 600.06 1615.87 1415.01 710.51 1274.67 618.67 1336.95 795.68 584.58 948.55 1341.23 554.55 1640.43 2004.99 1125.61 761.14 620.13 403.68 733.50 1041.56 1010.33 1146.44 723.93 1350.73 576.86 2889.52 638.13 451.33 744.19 440.76 598.58 707.88 632.68 1039.67 1404.84 902.03 950.36 477.84 -21Jul2024 0600 1543.52 872.85 1006.80 857.65 750.52 600.06 1615.88 1415.01 710.52 1274.67 618.66 1336.94 795.73 584.60 948.55 1341.21 554.50 1640.43 2004.99 1125.64 761.15 620.04 403.69 733.49 1041.55 1010.31 1146.45 723.99 1350.74 576.86 2889.53 638.11 451.33 744.20 440.76 598.58 707.87 632.68 1039.68 1404.84 902.03 950.37 477.84 -21Jul2024 0700 1543.52 872.85 1006.82 857.64 750.53 600.06 1615.88 1415.01 710.53 1274.66 618.83 1336.94 795.71 584.61 948.55 1341.22 554.48 1640.43 2004.99 1125.61 761.16 620.03 403.68 733.49 1041.56 1010.33 1146.45 723.97 1350.74 576.85 2889.53 638.09 451.34 744.22 440.75 598.59 707.89 632.70 1039.67 1404.84 902.03 950.36 477.85 -21Jul2024 0800 1543.53 872.85 1006.85 857.64 750.53 600.06 1615.88 1415.00 710.53 1274.65 618.67 1336.95 795.71 584.61 948.55 1341.22 554.51 1640.43 2004.99 1125.64 761.17 620.09 403.68 733.51 1041.56 1010.33 1146.46 724.02 1350.74 576.87 2889.53 638.13 451.34 744.24 440.76 598.59 707.88 632.72 1039.67 1404.84 902.03 950.37 477.87 +20Jun2024 0800 1543.58 873.43 1006.08 857.95 750.07 602.38 1615.80 1415.68 710.66 1276.36 620.39 1337.65 796.08 586.48 948.96 1341.75 559.02 1640.90 2004.83 1125.14 761.49 620.22 404.92 733.62 1044.39 1010.78 1148.76 724.73 1351.01 578.12 2890.12 640.82 454.61 744.61 441.54 598.94 709.23 632.46 1039.76 1405.41 902.14 951.00 478.07 +20Jun2024 0900 1543.57 873.43 1006.08 857.94 750.06 602.38 1615.79 1415.67 710.66 1276.36 620.40 1337.64 796.08 586.47 948.96 1341.75 558.96 1640.90 2004.83 1125.17 761.49 620.31 404.87 733.63 1044.42 1010.79 1148.75 724.73 1351.02 578.12 2890.13 640.80 454.61 744.60 441.54 598.94 709.21 632.46 1039.76 1405.41 902.14 951.00 478.06 +20Jun2024 1000 1543.57 873.43 1006.08 857.95 750.06 602.38 1615.79 1415.67 710.65 1276.35 620.41 1337.64 796.08 586.47 948.95 1341.75 558.89 1640.90 2004.84 1125.23 761.49 620.42 404.83 733.63 1044.41 1010.78 1148.75 724.74 1351.02 578.11 2890.12 640.78 454.60 744.58 441.54 598.94 709.22 632.46 1039.76 1405.41 902.14 950.99 478.06 +20Jun2024 1100 1543.58 873.43 1006.08 857.95 750.06 602.38 1615.79 1415.67 710.66 1276.35 620.41 1337.64 796.08 586.47 948.96 1341.75 558.88 1640.90 2004.84 1125.23 761.49 620.45 404.78 733.63 1044.36 1010.79 1148.75 724.75 1351.03 578.11 2890.14 640.77 454.59 744.56 441.53 598.94 709.21 632.46 1039.75 1405.41 902.15 951.01 478.07 +20Jun2024 1200 1543.57 873.43 1006.08 857.95 750.06 602.38 1615.80 1415.67 710.66 1276.34 620.39 1337.64 796.08 586.46 948.96 1341.75 558.84 1640.90 2004.84 1125.22 761.49 620.34 404.77 733.63 1044.34 1010.78 1148.75 724.76 1351.03 578.12 2890.11 640.77 454.58 744.55 441.54 598.94 709.21 632.46 1039.75 1405.42 902.15 951.00 478.06 +20Jun2024 1300 1543.57 873.43 1006.08 857.95 750.06 602.37 1615.80 1415.67 710.66 1276.33 620.40 1337.64 796.08 586.46 948.96 1341.75 558.78 1640.89 2004.84 1125.23 761.48 620.26 404.74 733.63 1044.32 1010.78 1148.73 724.76 1351.04 578.11 2890.15 640.77 454.58 744.54 441.53 598.94 709.21 632.46 1039.76 1405.41 902.16 951.01 478.06 +20Jun2024 1400 1543.58 873.43 1006.07 857.95 750.06 602.33 1615.79 1415.67 710.67 1276.33 620.39 1337.65 796.08 586.46 948.96 1341.75 558.73 1640.89 2004.84 1125.19 761.48 620.13 404.72 733.63 1044.28 1010.76 1148.73 724.75 1351.03 578.11 2890.16 640.77 454.57 744.53 441.54 598.96 709.21 632.47 1039.76 1405.42 902.16 951.00 478.05 +20Jun2024 1500 1543.57 873.43 1006.07 857.94 750.05 602.29 1615.79 1415.67 710.66 1276.32 620.39 1337.64 796.08 586.44 948.96 1341.75 558.82 1640.89 2004.84 1125.17 761.48 619.98 404.68 733.63 1044.21 1010.72 1148.72 724.72 1351.03 578.11 2890.15 640.75 454.52 744.51 441.55 598.95 709.20 632.47 1039.75 1405.42 902.16 951.00 478.05 +20Jun2024 1600 1543.57 873.43 1006.07 857.94 750.05 602.25 1615.79 1415.67 710.67 1276.31 620.38 1337.64 796.08 586.42 948.96 1341.76 558.94 1640.89 2004.84 1125.18 761.48 619.85 404.67 733.63 1044.19 1010.69 1148.71 724.72 1351.03 578.11 2890.16 640.73 454.50 744.50 441.53 598.93 709.20 632.47 1039.75 1405.42 902.17 951.00 478.05 +20Jun2024 1700 1543.57 873.44 1006.07 857.95 750.05 602.23 1615.79 1415.66 710.66 1276.30 620.38 1337.64 796.08 586.41 948.96 1341.75 558.99 1640.88 2004.84 1125.13 761.48 619.73 404.65 733.63 1044.13 1010.66 1148.70 724.70 1351.03 578.12 2890.17 640.71 454.49 744.48 441.53 598.95 709.20 632.47 1039.75 1405.41 902.16 951.00 478.03 +20Jun2024 1800 1543.57 873.44 1006.07 857.94 750.05 602.21 1615.79 1415.66 710.65 1276.29 620.37 1337.63 796.08 586.41 948.96 1341.75 559.04 1640.89 2004.84 1125.15 761.48 619.61 404.65 733.63 1044.07 1010.64 1148.69 724.68 1351.03 578.11 2890.20 640.70 454.49 744.46 441.53 598.95 709.20 632.48 1039.75 1405.42 902.16 950.99 478.03 +20Jun2024 1900 1543.57 873.44 1006.07 857.94 750.05 602.21 1615.79 1415.65 710.66 1276.29 620.36 1337.64 796.08 586.39 948.95 1341.75 559.12 1640.89 2004.85 1125.12 761.48 619.46 404.66 733.63 1044.04 1010.61 1148.68 724.66 1351.04 578.11 2890.16 640.68 454.48 744.44 441.53 598.95 709.19 632.47 1039.75 1405.41 902.17 950.99 478.03 +20Jun2024 2000 1543.57 873.44 1006.07 857.94 750.05 602.21 1615.79 1415.65 710.65 1276.28 620.35 1337.63 796.08 586.40 948.96 1341.74 559.20 1640.89 2004.85 1125.15 761.48 619.65 404.65 733.63 1043.99 1010.60 1148.68 724.64 1351.04 578.11 2890.16 640.68 454.47 744.42 441.53 598.94 709.19 632.47 1039.75 1405.41 902.18 950.99 478.03 +20Jun2024 2100 1543.56 873.44 1006.07 857.94 750.05 602.22 1615.79 1415.66 710.66 1276.27 620.34 1337.63 796.08 586.41 948.96 1341.74 559.26 1640.88 2004.85 1125.19 761.48 619.64 404.66 733.64 1043.96 1010.59 1148.68 724.65 1351.05 578.11 2890.16 640.67 454.46 744.41 441.54 598.94 709.22 632.47 1039.75 1405.41 902.18 950.99 478.04 +20Jun2024 2200 1543.57 873.44 1006.06 857.93 750.05 602.21 1615.79 1415.66 710.66 1276.26 620.33 1337.63 796.08 586.39 948.96 1341.74 559.29 1640.89 2004.85 1125.18 761.48 619.73 404.65 733.64 1043.92 1010.60 1148.67 724.65 1351.05 578.11 2890.15 640.65 454.45 744.39 441.54 598.94 709.19 632.48 1039.75 1405.41 902.19 951.00 478.04 +20Jun2024 2300 1543.56 873.44 1006.07 857.93 750.05 602.20 1615.79 1415.66 710.66 1276.25 620.33 1337.64 796.08 586.37 948.96 1341.74 559.15 1640.88 2004.85 1125.16 761.48 619.86 404.64 733.64 1043.87 1010.60 1148.67 724.67 1351.05 578.11 2890.15 640.64 454.44 744.38 441.53 598.94 709.19 632.48 1039.75 1405.41 902.19 950.99 478.03 +20Jun2024 2400 1543.55 873.44 1006.06 857.93 750.04 602.20 1615.79 1415.66 710.66 1276.24 620.33 1337.64 796.08 586.37 948.96 1341.74 559.03 1640.89 2004.85 1125.18 761.47 619.98 404.65 733.64 1043.83 1010.61 1148.66 724.68 1351.06 578.11 2890.15 640.62 454.43 744.36 441.53 598.94 709.19 632.48 1039.74 1405.41 902.19 950.99 478.03 +21Jun2024 0100 1543.56 873.43 1006.06 857.93 750.04 602.21 1615.79 1415.66 710.66 1276.24 620.30 1337.63 796.08 586.37 948.96 1341.74 559.02 1640.88 2004.85 1125.18 761.47 620.06 404.65 733.64 1043.79 1010.62 1148.65 724.69 1351.06 578.10 2890.15 640.62 454.42 744.38 441.53 598.94 709.18 632.48 1039.74 1405.40 902.19 950.98 478.03 +21Jun2024 0200 1543.56 873.43 1006.06 857.93 750.04 602.21 1615.79 1415.66 710.66 1276.23 620.31 1337.63 796.08 586.36 948.96 1341.74 559.03 1640.88 2004.85 1125.18 761.47 620.11 404.65 733.64 1043.74 1010.61 1148.65 724.70 1351.05 578.11 2890.15 640.60 454.41 744.43 441.54 598.94 709.18 632.48 1039.74 1405.41 902.20 950.99 478.02 +21Jun2024 0300 1543.57 873.43 1006.06 857.93 750.04 602.20 1615.79 1415.66 710.66 1276.21 620.30 1337.63 796.08 586.35 948.96 1341.74 558.95 1640.89 2004.85 1125.18 761.47 620.00 404.66 733.64 1043.71 1010.62 1148.64 724.71 1351.06 578.10 2890.13 640.57 454.40 744.38 441.53 598.94 709.18 632.48 1039.74 1405.40 902.20 950.98 478.03 +21Jun2024 0400 1543.56 873.43 1006.06 857.93 750.04 602.20 1615.79 1415.66 710.65 1276.21 620.32 1337.63 796.08 586.35 948.96 1341.74 558.86 1640.88 2004.84 1125.19 761.47 619.92 404.66 733.64 1043.68 1010.62 1148.63 724.72 1351.05 578.10 2890.13 640.56 454.39 744.38 441.53 598.94 709.18 632.48 1039.74 1405.40 902.21 950.99 478.02 +21Jun2024 0500 1543.56 873.43 1006.05 857.93 750.04 602.21 1615.79 1415.66 710.65 1276.19 620.31 1337.63 796.08 586.34 948.97 1341.74 558.79 1640.88 2004.84 1125.18 761.47 620.00 404.65 733.65 1043.63 1010.62 1148.63 724.73 1351.05 578.10 2890.11 640.56 454.38 744.40 441.54 598.94 709.18 632.48 1039.74 1405.40 902.21 950.98 478.02 +21Jun2024 0600 1543.56 873.42 1006.05 857.93 750.04 602.20 1615.79 1415.66 710.65 1276.18 620.32 1337.62 796.08 586.34 948.96 1341.73 558.76 1640.88 2004.84 1125.17 761.47 620.02 404.66 733.65 1043.60 1010.63 1148.62 724.74 1351.06 578.10 2890.12 640.53 454.37 744.39 441.53 598.94 709.19 632.48 1039.74 1405.40 902.21 950.98 478.02 +21Jun2024 0700 1543.56 873.42 1006.06 857.92 750.04 602.21 1615.79 1415.66 710.65 1276.18 620.31 1337.62 796.08 586.34 948.96 1341.74 558.74 1640.88 2004.84 1125.19 761.47 619.98 404.66 733.64 1043.54 1010.62 1148.61 724.74 1351.06 578.10 2890.12 640.54 454.36 744.41 441.54 598.94 709.18 632.48 1039.74 1405.40 902.22 950.98 478.02 +21Jun2024 0800 1543.56 873.42 1006.06 857.93 750.04 602.21 1615.79 1415.66 710.65 1276.16 620.32 1337.62 796.09 586.34 948.96 1341.73 558.67 1640.88 2004.84 1125.18 761.47 619.95 404.66 733.65 1043.56 1010.64 1148.61 724.75 1351.06 578.10 2890.11 640.52 454.35 744.41 441.53 598.93 709.17 632.48 1039.74 1405.40 902.23 950.98 478.02 diff --git a/tests/swt/testfiles/test.frm b/tests/swt/testfiles/test.frm index fd2c82c..7acd67f 100644 --- a/tests/swt/testfiles/test.frm +++ b/tests/swt/testfiles/test.frm @@ -83,7 +83,7 @@ CUR_YEAR = BASDATE.value.year CUR_MONTH = BASDATE.value.month CUR_DAY = BASDATE.value.day -BASDATE_8AM = BASDATE.value.replace(hour=8, minute=0, second=0, microsecond=0) +BASDATE_8AM = BASDATE.value.replace(year=2024, month=6, day=21, hour=8, minute=0, second=0, microsecond=0) BASDATE_8AM_YESTERDAY = BASDATE_8AM - datetime.timedelta(hours=24) for project in PROJECTS: diff --git a/tests/test_run_swt.py b/tests/test_run_swt.py new file mode 100644 index 0000000..ae0586c --- /dev/null +++ b/tests/test_run_swt.py @@ -0,0 +1,74 @@ +import os +import sys +import pytest +import subprocess +import platform + +sys.path.append("../") + +INPUT_DIR = os.path.normpath( + os.path.join(os.path.dirname(os.path.realpath(__file__)), "swt", "testfiles") +) +EXPECT_DIR = os.path.normpath( + os.path.join(os.path.dirname(os.path.realpath(__file__)), "swt", "expect") +) +ACTUAL_DIR = os.path.normpath( + os.path.join(os.path.dirname(os.path.realpath(__file__)), "swt", "actual") +) +LOG_DIR = os.path.normpath( + os.path.join(os.path.dirname(os.path.realpath(__file__)), "swt", "output") +) +SCRIPT_DIR = os.path.normpath( + os.path.join(os.path.dirname(os.path.realpath(__file__)), "swt", "scripts") +) + +os.makedirs(ACTUAL_DIR, exist_ok=True) +os.makedirs(LOG_DIR, exist_ok=True) + + +@pytest.mark.parametrize( + "reportname", + [ + ("test.frm"), + ], +) +def test_repgen(capsys, reportname: str): + actualname = os.path.join( + ACTUAL_DIR, reportname + ) # Assuming output is .txt + expectname = os.path.join(EXPECT_DIR, reportname ) + outputname = os.path.join(LOG_DIR, reportname + ".out.log") + errname = os.path.join(LOG_DIR, reportname + ".err.log") + + # Determine the operating system and choose the script accordingly + if platform.system() == "Windows": + script = os.path.join(SCRIPT_DIR, "run.bat") + cmd = ["cmd.exe", "/c", script] + else: + script = os.path.join(SCRIPT_DIR, "run.sh") + cmd = [script] + + # Run the command and capture the output + result = subprocess.run(cmd, capture_output=True, text=True) + + # Write captured output to files + if result.stdout: + with open(outputname, "wt") as output_fd: + output_fd.write(result.stdout) + + if result.stderr: + with open(errname, "wt") as output_fd: + output_fd.write(result.stderr) + + # Read expected and actual output + with open(expectname, "+rt") as expect_fd: + expect_content = expect_fd.readlines() + + with open(actualname, "+rt") as actual_fd: + actual_content = actual_fd.readlines() + + # Assert that the expected and actual output match + assert len(actual_content) == len(expect_content) + + for x in range(len(expect_content)): + assert expect_content[x] == actual_content[x] From d8f04d7ec7911a7a3a627b03b4e38db8d8e01d83 Mon Sep 17 00:00:00 2001 From: Charles Graham Date: Thu, 8 Aug 2024 12:02:43 -0500 Subject: [PATCH 13/21] Fix issue where queue was not properly being passed to thread workers. Correct issue where queue workers were not properly being released. Pass parallel flag to Report to prevent queue waiting for jobs that don't exist. --- __main__.py | 13 ++++------ repgen/__init__.py | 11 +++++++-- repgen/data/value.py | 7 +++--- repgen/report/report.py | 16 ++++++++----- repgen/workers/http.py | 17 ++++++------- tests/swt/output/test.txt | 50 +++++++++++++++++++-------------------- 6 files changed, 62 insertions(+), 52 deletions(-) diff --git a/__main__.py b/__main__.py index 558fef2..cdda55d 100644 --- a/__main__.py +++ b/__main__.py @@ -6,8 +6,7 @@ from repgen import __version__, THREAD_COUNT from repgen.workers.http import processSiteWorker import threading -from queue import Queue - +from repgen import queue, threads # setup base time, ex # default formats @@ -103,7 +102,6 @@ def parse_vars(items): start_time = time.time() config = parseArgs() kwargs = parse_vars(config.set)[0] - if config.show_ver == True: print(__version__) sys.exit(0) @@ -133,19 +131,18 @@ def parse_vars(items): # set some of the default values Value(1, host=host, path=path, tz=tz, ucformat=config.compat, timeout=config.timeout, althost=althost, altpath=altpath, dbofc=config.office, **kwargs) - kwargs["queue"] = None # Enable IO bound process multi-threading # if the user has a need for speed - threads = [] if config.parallel: # Initialize the task queue - kwargs["queue"] = Queue() + print("Creating ", THREAD_COUNT, ' threads') # Setup worker threads for _ in range(THREAD_COUNT): - thread = threading.Thread(target=processSiteWorker, args=(kwargs["queue"], )) + thread = threading.Thread(target=processSiteWorker, args=(queue, )) thread.daemon = True thread.start() threads.append(thread) + print("Created ", len(threads)) # read the report file if report_file == '-': report_file = sys.stdin.name @@ -207,7 +204,7 @@ def parse_vars(items): f_d.close() # exec the definitions - report = Report(report_data, report_file, config.compat, **kwargs) + report = Report(report_data, report_file, config.compat, config.parallel, **kwargs) report.run(basedate, local_vars) output = None diff --git a/repgen/__init__.py b/repgen/__init__.py index 6bc0409..0522866 100644 --- a/repgen/__init__.py +++ b/repgen/__init__.py @@ -1,11 +1,18 @@ +from queue import Queue + __version__ = "5.1.0" # =========================================== # # THREADING VARS # # =========================================== # -THREAD_COUNT = 50 +THREAD_COUNT = 15 THREAD_TIMEOUT = 120 # Seconds to consider thread is still alive MAX_CALL_SIZE = 200 # if the threads exceed this, kill it! # =========================================== # REPGEN_GITHUB_ISSUES_URL = "https://github.com/USACE-WaterManagement/repgen5/issues" # CDA Constants -PARAM_DT_FMT = "%Y-%m-%dT%H:%M:%S" \ No newline at end of file +PARAM_DT_FMT = "%Y-%m-%dT%H:%M:%S" +# =========================================== # +# Global Variables Shared Between Classes # +# =========================================== # +queue = Queue() +threads = [] diff --git a/repgen/data/value.py b/repgen/data/value.py index f611d4a..27bb815 100644 --- a/repgen/data/value.py +++ b/repgen/data/value.py @@ -7,6 +7,7 @@ import math from decimal import Decimal,DivisionByZero,DecimalException,getcontext import ssl +from repgen import queue import re from repgen.util import extra_operator, filterAddress @@ -136,7 +137,6 @@ def processDateTime(value, key, extra_part=None): value = value + timedelta(days=+1) return (value, is_24) - self.queue = kwargs.get("queue", None) self.index = None self.type="SCALAR" self.value = None @@ -402,9 +402,10 @@ def parse_slice(value): except Exception as err: print( repr(err) + " : " + str(err), file=sys.stderr ) elif self.dbtype.upper() in ["JSON", "RADAR"]: - if self.queue: - self.queue.put((self)) + if queue: + queue.put((self)) else: + print("no queue") try: fetchTimeseriesCDA(self) except Exception as err: diff --git a/repgen/report/report.py b/repgen/report/report.py index 52a2b00..ffc13ae 100644 --- a/repgen/report/report.py +++ b/repgen/report/report.py @@ -1,5 +1,7 @@ import sys,time,datetime,pytz,tempfile,shutil,os,operator,calendar,re from repgen.data.value import Value +from repgen import queue, threads + try: # Relativedelta supports months and years, but is external library from dateutil.relativedelta import relativedelta as timedelta @@ -8,16 +10,15 @@ from datetime import timedelta class Report: - def __init__(self, report, file_name, compatibility, *args, **kwargs): + def __init__(self, report, file_name, compatibility, parallel=False, *args, **kwargs): self.data = {} self.datadef = "" self.replines = [] self.repfile = report self.repfilename = file_name self.compatibility = compatibility - self.queue = kwargs.get("queue", None) + self.parallel = parallel self.thread = kwargs.get("thread", None) - lines = map(lambda s: s.strip('\r'), report.split(sep='\n')) deflines = [] state="none" @@ -125,13 +126,16 @@ def run( self, basedate, local_vars: dict = None ): print("CURDATE: %s" % repr(my_locals["CURDATE"]), file=sys.stderr) print("CTM: %s" % repr(my_locals["CTM"]), file=sys.stderr) - max_call_size = 0 # Compile the report, so source and line number information can be reported to the user exec(compile(self.datadef, self.repfilename, "exec"), globals(), my_locals) - if self.queue: + if self.parallel: print("Waiting for all tasks to be processed. . .") - self.queue.join() + queue.join() print("All tasks processed!") + for _ in range(len(threads)): + queue.put(None) + for thread in threads: + thread.join() # loop through my_locals and add them # to a dictionary with the % in front of the them # to mark location on the report diff --git a/repgen/workers/http.py b/repgen/workers/http.py index 3bab602..7562483 100644 --- a/repgen/workers/http.py +++ b/repgen/workers/http.py @@ -213,14 +213,15 @@ def processSiteWorker(queue): results (list) """ while True: - v_self = queue.get(timeout=THREAD_TIMEOUT) - lock = threading.Lock() + value_self = queue.get(timeout=THREAD_TIMEOUT) + # lock = threading.Lock() try: - lock.acquire() - fetchTimeseriesCDA(v_self) + if value_self is None: + break + # lock.acquire() + fetchTimeseriesCDA(value_self) except Exception as err: - print( repr(err) + " : " + str(err), file=sys.stderr ) + print( 'Thread Error:\n\t' + repr(err) + " : " + str(err), file=sys.stderr ) finally: - lock.release() - queue.task_done() - break \ No newline at end of file + # lock.release() + queue.task_done() \ No newline at end of file diff --git a/tests/swt/output/test.txt b/tests/swt/output/test.txt index 7ae2bd0..4a4e97a 100644 --- a/tests/swt/output/test.txt +++ b/tests/swt/output/test.txt @@ -2,28 +2,28 @@ US Army Corps of Engineers Elevation Fetch Example 8am to 8am DATE ALTU ARBU ARCA BIGH BIRC BROK CANT CHEN COPA COUN DENI ELDR ELKC EUFA FALL FCOB FGIB FOSS FSUP GSAL HEYB HUDS HUGO HULA JOHN KAWL KEMP KEYS MARI MCGE MERE OOLO PATM PENS PINE SARD SKIA TENK THUN TOMS TORO WAUR WIST -20Jun2024 0800 1543.58 873.43 1006.08 857.95 750.07 602.38 1615.80 1415.68 710.66 1276.36 620.39 1337.65 796.08 586.48 948.96 1341.75 559.02 1640.90 2004.83 1125.14 761.49 620.22 404.92 733.62 1044.39 1010.78 1148.76 724.73 1351.01 578.12 2890.12 640.82 454.61 744.61 441.54 598.94 709.23 632.46 1039.76 1405.41 902.14 951.00 478.07 -20Jun2024 0900 1543.57 873.43 1006.08 857.94 750.06 602.38 1615.79 1415.67 710.66 1276.36 620.40 1337.64 796.08 586.47 948.96 1341.75 558.96 1640.90 2004.83 1125.17 761.49 620.31 404.87 733.63 1044.42 1010.79 1148.75 724.73 1351.02 578.12 2890.13 640.80 454.61 744.60 441.54 598.94 709.21 632.46 1039.76 1405.41 902.14 951.00 478.06 -20Jun2024 1000 1543.57 873.43 1006.08 857.95 750.06 602.38 1615.79 1415.67 710.65 1276.35 620.41 1337.64 796.08 586.47 948.95 1341.75 558.89 1640.90 2004.84 1125.23 761.49 620.42 404.83 733.63 1044.41 1010.78 1148.75 724.74 1351.02 578.11 2890.12 640.78 454.60 744.58 441.54 598.94 709.22 632.46 1039.76 1405.41 902.14 950.99 478.06 -20Jun2024 1100 1543.58 873.43 1006.08 857.95 750.06 602.38 1615.79 1415.67 710.66 1276.35 620.41 1337.64 796.08 586.47 948.96 1341.75 558.88 1640.90 2004.84 1125.23 761.49 620.45 404.78 733.63 1044.36 1010.79 1148.75 724.75 1351.03 578.11 2890.14 640.77 454.59 744.56 441.53 598.94 709.21 632.46 1039.75 1405.41 902.15 951.01 478.07 -20Jun2024 1200 1543.57 873.43 1006.08 857.95 750.06 602.38 1615.80 1415.67 710.66 1276.34 620.39 1337.64 796.08 586.46 948.96 1341.75 558.84 1640.90 2004.84 1125.22 761.49 620.34 404.77 733.63 1044.34 1010.78 1148.75 724.76 1351.03 578.12 2890.11 640.77 454.58 744.55 441.54 598.94 709.21 632.46 1039.75 1405.42 902.15 951.00 478.06 -20Jun2024 1300 1543.57 873.43 1006.08 857.95 750.06 602.37 1615.80 1415.67 710.66 1276.33 620.40 1337.64 796.08 586.46 948.96 1341.75 558.78 1640.89 2004.84 1125.23 761.48 620.26 404.74 733.63 1044.32 1010.78 1148.73 724.76 1351.04 578.11 2890.15 640.77 454.58 744.54 441.53 598.94 709.21 632.46 1039.76 1405.41 902.16 951.01 478.06 -20Jun2024 1400 1543.58 873.43 1006.07 857.95 750.06 602.33 1615.79 1415.67 710.67 1276.33 620.39 1337.65 796.08 586.46 948.96 1341.75 558.73 1640.89 2004.84 1125.19 761.48 620.13 404.72 733.63 1044.28 1010.76 1148.73 724.75 1351.03 578.11 2890.16 640.77 454.57 744.53 441.54 598.96 709.21 632.47 1039.76 1405.42 902.16 951.00 478.05 -20Jun2024 1500 1543.57 873.43 1006.07 857.94 750.05 602.29 1615.79 1415.67 710.66 1276.32 620.39 1337.64 796.08 586.44 948.96 1341.75 558.82 1640.89 2004.84 1125.17 761.48 619.98 404.68 733.63 1044.21 1010.72 1148.72 724.72 1351.03 578.11 2890.15 640.75 454.52 744.51 441.55 598.95 709.20 632.47 1039.75 1405.42 902.16 951.00 478.05 -20Jun2024 1600 1543.57 873.43 1006.07 857.94 750.05 602.25 1615.79 1415.67 710.67 1276.31 620.38 1337.64 796.08 586.42 948.96 1341.76 558.94 1640.89 2004.84 1125.18 761.48 619.85 404.67 733.63 1044.19 1010.69 1148.71 724.72 1351.03 578.11 2890.16 640.73 454.50 744.50 441.53 598.93 709.20 632.47 1039.75 1405.42 902.17 951.00 478.05 -20Jun2024 1700 1543.57 873.44 1006.07 857.95 750.05 602.23 1615.79 1415.66 710.66 1276.30 620.38 1337.64 796.08 586.41 948.96 1341.75 558.99 1640.88 2004.84 1125.13 761.48 619.73 404.65 733.63 1044.13 1010.66 1148.70 724.70 1351.03 578.12 2890.17 640.71 454.49 744.48 441.53 598.95 709.20 632.47 1039.75 1405.41 902.16 951.00 478.03 -20Jun2024 1800 1543.57 873.44 1006.07 857.94 750.05 602.21 1615.79 1415.66 710.65 1276.29 620.37 1337.63 796.08 586.41 948.96 1341.75 559.04 1640.89 2004.84 1125.15 761.48 619.61 404.65 733.63 1044.07 1010.64 1148.69 724.68 1351.03 578.11 2890.20 640.70 454.49 744.46 441.53 598.95 709.20 632.48 1039.75 1405.42 902.16 950.99 478.03 -20Jun2024 1900 1543.57 873.44 1006.07 857.94 750.05 602.21 1615.79 1415.65 710.66 1276.29 620.36 1337.64 796.08 586.39 948.95 1341.75 559.12 1640.89 2004.85 1125.12 761.48 619.46 404.66 733.63 1044.04 1010.61 1148.68 724.66 1351.04 578.11 2890.16 640.68 454.48 744.44 441.53 598.95 709.19 632.47 1039.75 1405.41 902.17 950.99 478.03 -20Jun2024 2000 1543.57 873.44 1006.07 857.94 750.05 602.21 1615.79 1415.65 710.65 1276.28 620.35 1337.63 796.08 586.40 948.96 1341.74 559.20 1640.89 2004.85 1125.15 761.48 619.65 404.65 733.63 1043.99 1010.60 1148.68 724.64 1351.04 578.11 2890.16 640.68 454.47 744.42 441.53 598.94 709.19 632.47 1039.75 1405.41 902.18 950.99 478.03 -20Jun2024 2100 1543.56 873.44 1006.07 857.94 750.05 602.22 1615.79 1415.66 710.66 1276.27 620.34 1337.63 796.08 586.41 948.96 1341.74 559.26 1640.88 2004.85 1125.19 761.48 619.64 404.66 733.64 1043.96 1010.59 1148.68 724.65 1351.05 578.11 2890.16 640.67 454.46 744.41 441.54 598.94 709.22 632.47 1039.75 1405.41 902.18 950.99 478.04 -20Jun2024 2200 1543.57 873.44 1006.06 857.93 750.05 602.21 1615.79 1415.66 710.66 1276.26 620.33 1337.63 796.08 586.39 948.96 1341.74 559.29 1640.89 2004.85 1125.18 761.48 619.73 404.65 733.64 1043.92 1010.60 1148.67 724.65 1351.05 578.11 2890.15 640.65 454.45 744.39 441.54 598.94 709.19 632.48 1039.75 1405.41 902.19 951.00 478.04 -20Jun2024 2300 1543.56 873.44 1006.07 857.93 750.05 602.20 1615.79 1415.66 710.66 1276.25 620.33 1337.64 796.08 586.37 948.96 1341.74 559.15 1640.88 2004.85 1125.16 761.48 619.86 404.64 733.64 1043.87 1010.60 1148.67 724.67 1351.05 578.11 2890.15 640.64 454.44 744.38 441.53 598.94 709.19 632.48 1039.75 1405.41 902.19 950.99 478.03 -20Jun2024 2400 1543.55 873.44 1006.06 857.93 750.04 602.20 1615.79 1415.66 710.66 1276.24 620.33 1337.64 796.08 586.37 948.96 1341.74 559.03 1640.89 2004.85 1125.18 761.47 619.98 404.65 733.64 1043.83 1010.61 1148.66 724.68 1351.06 578.11 2890.15 640.62 454.43 744.36 441.53 598.94 709.19 632.48 1039.74 1405.41 902.19 950.99 478.03 -21Jun2024 0100 1543.56 873.43 1006.06 857.93 750.04 602.21 1615.79 1415.66 710.66 1276.24 620.30 1337.63 796.08 586.37 948.96 1341.74 559.02 1640.88 2004.85 1125.18 761.47 620.06 404.65 733.64 1043.79 1010.62 1148.65 724.69 1351.06 578.10 2890.15 640.62 454.42 744.38 441.53 598.94 709.18 632.48 1039.74 1405.40 902.19 950.98 478.03 -21Jun2024 0200 1543.56 873.43 1006.06 857.93 750.04 602.21 1615.79 1415.66 710.66 1276.23 620.31 1337.63 796.08 586.36 948.96 1341.74 559.03 1640.88 2004.85 1125.18 761.47 620.11 404.65 733.64 1043.74 1010.61 1148.65 724.70 1351.05 578.11 2890.15 640.60 454.41 744.43 441.54 598.94 709.18 632.48 1039.74 1405.41 902.20 950.99 478.02 -21Jun2024 0300 1543.57 873.43 1006.06 857.93 750.04 602.20 1615.79 1415.66 710.66 1276.21 620.30 1337.63 796.08 586.35 948.96 1341.74 558.95 1640.89 2004.85 1125.18 761.47 620.00 404.66 733.64 1043.71 1010.62 1148.64 724.71 1351.06 578.10 2890.13 640.57 454.40 744.38 441.53 598.94 709.18 632.48 1039.74 1405.40 902.20 950.98 478.03 -21Jun2024 0400 1543.56 873.43 1006.06 857.93 750.04 602.20 1615.79 1415.66 710.65 1276.21 620.32 1337.63 796.08 586.35 948.96 1341.74 558.86 1640.88 2004.84 1125.19 761.47 619.92 404.66 733.64 1043.68 1010.62 1148.63 724.72 1351.05 578.10 2890.13 640.56 454.39 744.38 441.53 598.94 709.18 632.48 1039.74 1405.40 902.21 950.99 478.02 -21Jun2024 0500 1543.56 873.43 1006.05 857.93 750.04 602.21 1615.79 1415.66 710.65 1276.19 620.31 1337.63 796.08 586.34 948.97 1341.74 558.79 1640.88 2004.84 1125.18 761.47 620.00 404.65 733.65 1043.63 1010.62 1148.63 724.73 1351.05 578.10 2890.11 640.56 454.38 744.40 441.54 598.94 709.18 632.48 1039.74 1405.40 902.21 950.98 478.02 -21Jun2024 0600 1543.56 873.42 1006.05 857.93 750.04 602.20 1615.79 1415.66 710.65 1276.18 620.32 1337.62 796.08 586.34 948.96 1341.73 558.76 1640.88 2004.84 1125.17 761.47 620.02 404.66 733.65 1043.60 1010.63 1148.62 724.74 1351.06 578.10 2890.12 640.53 454.37 744.39 441.53 598.94 709.19 632.48 1039.74 1405.40 902.21 950.98 478.02 -21Jun2024 0700 1543.56 873.42 1006.06 857.92 750.04 602.21 1615.79 1415.66 710.65 1276.18 620.31 1337.62 796.08 586.34 948.96 1341.74 558.74 1640.88 2004.84 1125.19 761.47 619.98 404.66 733.64 1043.54 1010.62 1148.61 724.74 1351.06 578.10 2890.12 640.54 454.36 744.41 441.54 598.94 709.18 632.48 1039.74 1405.40 902.22 950.98 478.02 -21Jun2024 0800 1543.56 873.42 1006.06 857.93 750.04 602.21 1615.79 1415.66 710.65 1276.16 620.32 1337.62 796.09 586.34 948.96 1341.73 558.67 1640.88 2004.84 1125.18 761.47 619.95 404.66 733.65 1043.56 1010.64 1148.61 724.75 1351.06 578.10 2890.11 640.52 454.35 744.41 441.53 598.93 709.17 632.48 1039.74 1405.40 902.23 950.98 478.02 +~~ 1543.58 873.43 1006.08 857.95 750.07 602.38 1615.80 1415.68 710.66 1276.36 620.39 1337.65 796.08 586.48 948.96 1341.75 559.02 1640.90 2004.83 1125.14 761.49 620.22 404.92 733.62 1044.39 1010.78 1148.76 724.73 1351.01 578.12 2890.12 640.82 454.61 744.61 441.54 598.94 709.23 632.46 1039.76 1405.41 902.14 951.00 478.07 +~~ 1543.57 873.43 1006.08 857.94 750.06 602.38 1615.79 1415.67 710.66 1276.36 620.40 1337.64 796.08 586.47 948.96 1341.75 558.96 1640.90 2004.83 1125.17 761.49 620.31 404.87 733.63 1044.42 1010.79 1148.75 724.73 1351.02 578.12 2890.13 640.80 454.61 744.60 441.54 598.94 709.21 632.46 1039.76 1405.41 902.14 951.00 478.06 +~~ 1543.57 873.43 1006.08 857.95 750.06 602.38 1615.79 1415.67 710.65 1276.35 620.41 1337.64 796.08 586.47 948.95 1341.75 558.89 1640.90 2004.84 1125.23 761.49 620.42 404.83 733.63 1044.41 1010.78 1148.75 724.74 1351.02 578.11 2890.12 640.78 454.60 744.58 441.54 598.94 709.22 632.46 1039.76 1405.41 902.14 950.99 478.06 +~~ 1543.58 873.43 1006.08 857.95 750.06 602.38 1615.79 1415.67 710.66 1276.35 620.41 1337.64 796.08 586.47 948.96 1341.75 558.88 1640.90 2004.84 1125.23 761.49 620.45 404.78 733.63 1044.36 1010.79 1148.75 724.75 1351.03 578.11 2890.14 640.77 454.59 744.56 441.53 598.94 709.21 632.46 1039.75 1405.41 902.15 951.01 478.07 +~~ 1543.57 873.43 1006.08 857.95 750.06 602.38 1615.80 1415.67 710.66 1276.34 620.39 1337.64 796.08 586.46 948.96 1341.75 558.84 1640.90 2004.84 1125.22 761.49 620.34 404.77 733.63 1044.34 1010.78 1148.75 724.76 1351.03 578.12 2890.11 640.77 454.58 744.55 441.54 598.94 709.21 632.46 1039.75 1405.42 902.15 951.00 478.06 +~~ 1543.57 873.43 1006.08 857.95 750.06 602.37 1615.80 1415.67 710.66 1276.33 620.40 1337.64 796.08 586.46 948.96 1341.75 558.78 1640.89 2004.84 1125.23 761.48 620.26 404.74 733.63 1044.32 1010.78 1148.73 724.76 1351.04 578.11 2890.15 640.77 454.58 744.54 441.53 598.94 709.21 632.46 1039.76 1405.41 902.16 951.01 478.06 +~~ 1543.58 873.43 1006.07 857.95 750.06 602.33 1615.79 1415.67 710.67 1276.33 620.39 1337.65 796.08 586.46 948.96 1341.75 558.73 1640.89 2004.84 1125.19 761.48 620.13 404.72 733.63 1044.28 1010.76 1148.73 724.75 1351.03 578.11 2890.16 640.77 454.57 744.53 441.54 598.96 709.21 632.47 1039.76 1405.42 902.16 951.00 478.05 +~~ 1543.57 873.43 1006.07 857.94 750.05 602.29 1615.79 1415.67 710.66 1276.32 620.39 1337.64 796.08 586.44 948.96 1341.75 558.82 1640.89 2004.84 1125.17 761.48 619.98 404.68 733.63 1044.21 1010.72 1148.72 724.72 1351.03 578.11 2890.15 640.75 454.52 744.51 441.55 598.95 709.20 632.47 1039.75 1405.42 902.16 951.00 478.05 +~~ 1543.57 873.43 1006.07 857.94 750.05 602.25 1615.79 1415.67 710.67 1276.31 620.38 1337.64 796.08 586.42 948.96 1341.76 558.94 1640.89 2004.84 1125.18 761.48 619.85 404.67 733.63 1044.19 1010.69 1148.71 724.72 1351.03 578.11 2890.16 640.73 454.50 744.50 441.53 598.93 709.20 632.47 1039.75 1405.42 902.17 951.00 478.05 +~~ 1543.57 873.44 1006.07 857.95 750.05 602.23 1615.79 1415.66 710.66 1276.30 620.38 1337.64 796.08 586.41 948.96 1341.75 558.99 1640.88 2004.84 1125.13 761.48 619.73 404.65 733.63 1044.13 1010.66 1148.70 724.70 1351.03 578.12 2890.17 640.71 454.49 744.48 441.53 598.95 709.20 632.47 1039.75 1405.41 902.16 951.00 478.03 +~~ 1543.57 873.44 1006.07 857.94 750.05 602.21 1615.79 1415.66 710.65 1276.29 620.37 1337.63 796.08 586.41 948.96 1341.75 559.04 1640.89 2004.84 1125.15 761.48 619.61 404.65 733.63 1044.07 1010.64 1148.69 724.68 1351.03 578.11 2890.20 640.70 454.49 744.46 441.53 598.95 709.20 632.48 1039.75 1405.42 902.16 950.99 478.03 +~~ 1543.57 873.44 1006.07 857.94 750.05 602.21 1615.79 1415.65 710.66 1276.29 620.36 1337.64 796.08 586.39 948.95 1341.75 559.12 1640.89 2004.85 1125.12 761.48 619.46 404.66 733.63 1044.04 1010.61 1148.68 724.66 1351.04 578.11 2890.16 640.68 454.48 744.44 441.53 598.95 709.19 632.47 1039.75 1405.41 902.17 950.99 478.03 +~~ 1543.57 873.44 1006.07 857.94 750.05 602.21 1615.79 1415.65 710.65 1276.28 620.35 1337.63 796.08 586.40 948.96 1341.74 559.20 1640.89 2004.85 1125.15 761.48 619.65 404.65 733.63 1043.99 1010.60 1148.68 724.64 1351.04 578.11 2890.16 640.68 454.47 744.42 441.53 598.94 709.19 632.47 1039.75 1405.41 902.18 950.99 478.03 +~~ 1543.56 873.44 1006.07 857.94 750.05 602.22 1615.79 1415.66 710.66 1276.27 620.34 1337.63 796.08 586.41 948.96 1341.74 559.26 1640.88 2004.85 1125.19 761.48 619.64 404.66 733.64 1043.96 1010.59 1148.68 724.65 1351.05 578.11 2890.16 640.67 454.46 744.41 441.54 598.94 709.22 632.47 1039.75 1405.41 902.18 950.99 478.04 +~~ 1543.57 873.44 1006.06 857.93 750.05 602.21 1615.79 1415.66 710.66 1276.26 620.33 1337.63 796.08 586.39 948.96 1341.74 559.29 1640.89 2004.85 1125.18 761.48 619.73 404.65 733.64 1043.92 1010.60 1148.67 724.65 1351.05 578.11 2890.15 640.65 454.45 744.39 441.54 598.94 709.19 632.48 1039.75 1405.41 902.19 951.00 478.04 +~~ 1543.56 873.44 1006.07 857.93 750.05 602.20 1615.79 1415.66 710.66 1276.25 620.33 1337.64 796.08 586.37 948.96 1341.74 559.15 1640.88 2004.85 1125.16 761.48 619.86 404.64 733.64 1043.87 1010.60 1148.67 724.67 1351.05 578.11 2890.15 640.64 454.44 744.38 441.53 598.94 709.19 632.48 1039.75 1405.41 902.19 950.99 478.03 +~~ 1543.55 873.44 1006.06 857.93 750.04 602.20 1615.79 1415.66 710.66 1276.24 620.33 1337.64 796.08 586.37 948.96 1341.74 559.03 1640.89 2004.85 1125.18 761.47 619.98 404.65 733.64 1043.83 1010.61 1148.66 724.68 1351.06 578.11 2890.15 640.62 454.43 744.36 441.53 598.94 709.19 632.48 1039.74 1405.41 902.19 950.99 478.03 +~~ 1543.56 873.43 1006.06 857.93 750.04 602.21 1615.79 1415.66 710.66 1276.24 620.30 1337.63 796.08 586.37 948.96 1341.74 559.02 1640.88 2004.85 1125.18 761.47 620.06 404.65 733.64 1043.79 1010.62 1148.65 724.69 1351.06 578.10 2890.15 640.62 454.42 744.38 441.53 598.94 709.18 632.48 1039.74 1405.40 902.19 950.98 478.03 +~~ 1543.56 873.43 1006.06 857.93 750.04 602.21 1615.79 1415.66 710.66 1276.23 620.31 1337.63 796.08 586.36 948.96 1341.74 559.03 1640.88 2004.85 1125.18 761.47 620.11 404.65 733.64 1043.74 1010.61 1148.65 724.70 1351.05 578.11 2890.15 640.60 454.41 744.43 441.54 598.94 709.18 632.48 1039.74 1405.41 902.20 950.99 478.02 +~~ 1543.57 873.43 1006.06 857.93 750.04 602.20 1615.79 1415.66 710.66 1276.21 620.30 1337.63 796.08 586.35 948.96 1341.74 558.95 1640.89 2004.85 1125.18 761.47 620.00 404.66 733.64 1043.71 1010.62 1148.64 724.71 1351.06 578.10 2890.13 640.57 454.40 744.38 441.53 598.94 709.18 632.48 1039.74 1405.40 902.20 950.98 478.03 +~~ 1543.56 873.43 1006.06 857.93 750.04 602.20 1615.79 1415.66 710.65 1276.21 620.32 1337.63 796.08 586.35 948.96 1341.74 558.86 1640.88 2004.84 1125.19 761.47 619.92 404.66 733.64 1043.68 1010.62 1148.63 724.72 1351.05 578.10 2890.13 640.56 454.39 744.38 441.53 598.94 709.18 632.48 1039.74 1405.40 902.21 950.99 478.02 +~~ 1543.56 873.43 1006.05 857.93 750.04 602.21 1615.79 1415.66 710.65 1276.19 620.31 1337.63 796.08 586.34 948.97 1341.74 558.79 1640.88 2004.84 1125.18 761.47 620.00 404.65 733.65 1043.63 1010.62 1148.63 724.73 1351.05 578.10 2890.11 640.56 454.38 744.40 441.54 598.94 709.18 632.48 1039.74 1405.40 902.21 950.98 478.02 +~~ 1543.56 873.42 1006.05 857.93 750.04 602.20 1615.79 1415.66 710.65 1276.18 620.32 1337.62 796.08 586.34 948.96 1341.73 558.76 1640.88 2004.84 1125.17 761.47 620.02 404.66 733.65 1043.60 1010.63 1148.62 724.74 1351.06 578.10 2890.12 640.53 454.37 744.39 441.53 598.94 709.19 632.48 1039.74 1405.40 902.21 950.98 478.02 +~~ 1543.56 873.42 1006.06 857.92 750.04 602.21 1615.79 1415.66 710.65 1276.18 620.31 1337.62 796.08 586.34 948.96 1341.74 558.74 1640.88 2004.84 1125.19 761.47 619.98 404.66 733.64 1043.54 1010.62 1148.61 724.74 1351.06 578.10 2890.12 640.54 454.36 744.41 441.54 598.94 709.18 632.48 1039.74 1405.40 902.22 950.98 478.02 +~~ 1543.56 873.42 1006.06 857.93 750.04 602.21 1615.79 1415.66 710.65 1276.16 620.32 1337.62 796.09 586.34 948.96 1341.73 558.67 1640.88 2004.84 1125.18 761.47 619.95 404.66 733.65 1043.56 1010.64 1148.61 724.75 1351.06 578.10 2890.11 640.52 454.35 744.41 441.53 598.93 709.17 632.48 1039.74 1405.40 902.23 950.98 478.02 From 84a0f3462390fb2a7cabbc15b8349c1e4c4eabbe Mon Sep 17 00:00:00 2001 From: Charles Graham Date: Thu, 8 Aug 2024 12:05:53 -0500 Subject: [PATCH 14/21] 120 seconds was too generous for an HTTP call in the thread --- repgen/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repgen/__init__.py b/repgen/__init__.py index 0522866..02d40ef 100644 --- a/repgen/__init__.py +++ b/repgen/__init__.py @@ -5,7 +5,7 @@ # THREADING VARS # # =========================================== # THREAD_COUNT = 15 -THREAD_TIMEOUT = 120 # Seconds to consider thread is still alive +THREAD_TIMEOUT = 30 # Seconds to consider thread is still alive MAX_CALL_SIZE = 200 # if the threads exceed this, kill it! # =========================================== # REPGEN_GITHUB_ISSUES_URL = "https://github.com/USACE-WaterManagement/repgen5/issues" From d6ab576e05aee5f027e86a331a7eca8f2599700c Mon Sep 17 00:00:00 2001 From: Charles Graham Date: Thu, 8 Aug 2024 12:07:55 -0500 Subject: [PATCH 15/21] No need to lock since we don't try to access these threads from elsewhere --- repgen/__init__.py | 1 - repgen/workers/http.py | 10 +--------- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/repgen/__init__.py b/repgen/__init__.py index 02d40ef..9f5e019 100644 --- a/repgen/__init__.py +++ b/repgen/__init__.py @@ -6,7 +6,6 @@ # =========================================== # THREAD_COUNT = 15 THREAD_TIMEOUT = 30 # Seconds to consider thread is still alive -MAX_CALL_SIZE = 200 # if the threads exceed this, kill it! # =========================================== # REPGEN_GITHUB_ISSUES_URL = "https://github.com/USACE-WaterManagement/repgen5/issues" # CDA Constants diff --git a/repgen/workers/http.py b/repgen/workers/http.py index 7562483..4061c65 100644 --- a/repgen/workers/http.py +++ b/repgen/workers/http.py @@ -1,4 +1,4 @@ -from repgen import THREAD_TIMEOUT, PARAM_DT_FMT, MAX_CALL_SIZE, REPGEN_GITHUB_ISSUES_URL +from repgen import THREAD_TIMEOUT, PARAM_DT_FMT, REPGEN_GITHUB_ISSUES_URL import time import json import sys @@ -103,11 +103,6 @@ def fetchTimeseriesCDA(v_self): # Test if the connection is valid v_self._conn.getresponse().read() - # locals().update({'max_call_size': locals().get('max_call_size', 0) + 1}) - # print(locals().get("max_call_size")) - # if int(locals().get("max_call_size")) > MAX_CALL_SIZE: - # print(f"CALL STACK EXCEEDED. Submit ticket via: {REPGEN_GITHUB_ISSUES_URL}") - # sys.exit(1) v_self._conn.request("GET", query+params, None, headers ) r1 = v_self._conn.getresponse() @@ -214,14 +209,11 @@ def processSiteWorker(queue): """ while True: value_self = queue.get(timeout=THREAD_TIMEOUT) - # lock = threading.Lock() try: if value_self is None: break - # lock.acquire() fetchTimeseriesCDA(value_self) except Exception as err: print( 'Thread Error:\n\t' + repr(err) + " : " + str(err), file=sys.stderr ) finally: - # lock.release() queue.task_done() \ No newline at end of file From f6cfbe1e08af377d8a31956597633da514dd1a21 Mon Sep 17 00:00:00 2001 From: Charles Graham Date: Thu, 8 Aug 2024 12:10:50 -0500 Subject: [PATCH 16/21] Fixed - to _ in test form --- tests/swt/testfiles/test.frm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/swt/testfiles/test.frm b/tests/swt/testfiles/test.frm index 7acd67f..217ac2f 100644 --- a/tests/swt/testfiles/test.frm +++ b/tests/swt/testfiles/test.frm @@ -88,6 +88,7 @@ BASDATE_8AM_YESTERDAY = BASDATE_8AM - datetime.timedelta(hours=24) for project in PROJECTS: # Fetch the Elev from CDA via Value() + print("get elev") elev = Value( dbtype="radar", DBTZ="US/CENTRAL", @@ -105,6 +106,7 @@ for project in PROJECTS: UNDEF="~~", DBUNITS="ft", ) + print('get datetime') # This will end up being the last elev to get looped. # TODO: Consider creating a sep value for just the date range that should always exist DT = Value(elev.datatimes(), @@ -113,9 +115,9 @@ for project in PROJECTS: # Dynamically add the project to the locals for printing to the form locals().update( { - project + "-elev": elev + project + "_elev": elev } ) - print(project + "-elev") + print(project + "_elev") # ENDDEF From cbc10ec4d6d997ed8d52bdc4ba6c2f01d604eb0a Mon Sep 17 00:00:00 2001 From: "Charles Graham, SWT" Date: Thu, 8 Aug 2024 22:05:41 -0500 Subject: [PATCH 17/21] Rename tests, make the test files targetable, attempt to fix race condition with Value that rely on each other --- __main__.py | 15 +- repgen/__init__.py | 4 +- repgen/data/value.py | 12 +- repgen/report/report.py | 10 +- repgen/workers/http.py | 7 +- tests/swt/actual/{test.frm => bulk_test.frm} | 0 tests/swt/actual/sequential_test.frm | 0 tests/swt/expect/{test.frm => bulk_test.frm} | 0 tests/swt/expect/sequential_test.frm | 0 tests/swt/output/{test.txt => bulk_test.out} | 0 .../test.frm => output/bulk_test.txt} | 144 +++--------------- tests/swt/output/sequential_test.out | 29 ++++ tests/swt/scripts/run.bat | 26 +++- tests/swt/testfiles/bulk_test.frm | 122 +++++++++++++++ tests/swt/testfiles/sequential_test.frm | 118 ++++++++++++++ tests/test_run_swt.py | 2 +- 16 files changed, 342 insertions(+), 147 deletions(-) rename tests/swt/actual/{test.frm => bulk_test.frm} (100%) create mode 100644 tests/swt/actual/sequential_test.frm rename tests/swt/expect/{test.frm => bulk_test.frm} (100%) create mode 100644 tests/swt/expect/sequential_test.frm rename tests/swt/output/{test.txt => bulk_test.out} (100%) rename tests/swt/{testfiles/test.frm => output/bulk_test.txt} (76%) create mode 100644 tests/swt/output/sequential_test.out create mode 100644 tests/swt/testfiles/bulk_test.frm create mode 100644 tests/swt/testfiles/sequential_test.frm diff --git a/__main__.py b/__main__.py index cdda55d..650653f 100644 --- a/__main__.py +++ b/__main__.py @@ -1,12 +1,15 @@ import sys, pytz, datetime, tempfile, shutil, os, time +import repgen from repgen.data.value import Value from repgen.report import Report from repgen.util import filterAddress from repgen import __version__, THREAD_COUNT from repgen.workers.http import processSiteWorker + import threading -from repgen import queue, threads +from queue import Queue + # setup base time, ex # default formats @@ -132,17 +135,16 @@ def parse_vars(items): Value(1, host=host, path=path, tz=tz, ucformat=config.compat, timeout=config.timeout, althost=althost, altpath=altpath, dbofc=config.office, **kwargs) # Enable IO bound process multi-threading + print ("parallel", config.parallel) # if the user has a need for speed if config.parallel: - # Initialize the task queue - print("Creating ", THREAD_COUNT, ' threads') + repgen.queue = Queue() # Setup worker threads for _ in range(THREAD_COUNT): - thread = threading.Thread(target=processSiteWorker, args=(queue, )) + thread = threading.Thread(target=processSiteWorker, args=(repgen.queue, )) thread.daemon = True thread.start() - threads.append(thread) - print("Created ", len(threads)) + repgen.threads.append(thread) # read the report file if report_file == '-': report_file = sys.stdin.name @@ -152,7 +154,6 @@ def parse_vars(items): f = open(report_file, 'rt') report_data = f.read() f.close() - base_date = kwargs.get("DATE", config.base_date) base_time = kwargs.get("TIME", config.base_time) delta = datetime.timedelta() diff --git a/repgen/__init__.py b/repgen/__init__.py index 9f5e019..441b408 100644 --- a/repgen/__init__.py +++ b/repgen/__init__.py @@ -1,5 +1,3 @@ -from queue import Queue - __version__ = "5.1.0" # =========================================== # # THREADING VARS # @@ -13,5 +11,5 @@ # =========================================== # # Global Variables Shared Between Classes # # =========================================== # -queue = Queue() threads = [] +queue = None \ No newline at end of file diff --git a/repgen/data/value.py b/repgen/data/value.py index 27bb815..f418148 100644 --- a/repgen/data/value.py +++ b/repgen/data/value.py @@ -1,4 +1,4 @@ -from repgen import __version__, THREAD_COUNT +from repgen import __version__ import datetime import sys import operator @@ -7,13 +7,13 @@ import math from decimal import Decimal,DivisionByZero,DecimalException,getcontext import ssl -from repgen import queue import re from repgen.util import extra_operator, filterAddress import signal # 3rd Party Libs import pytz +import repgen try: # Relativedelta supports months and years, but is external library @@ -402,10 +402,10 @@ def parse_slice(value): except Exception as err: print( repr(err) + " : " + str(err), file=sys.stderr ) elif self.dbtype.upper() in ["JSON", "RADAR"]: - if queue: - queue.put((self)) + print("queue", repgen.queue) + if repgen.queue: + repgen.queue.put((self)) else: - print("no queue") try: fetchTimeseriesCDA(self) except Exception as err: @@ -941,7 +941,7 @@ def apply( function, *args, **kwargs ): values = [] typ = Value.shared["dbtype"] for i in range(0,returns): - # If the first argument is a Value object, copy it so the properties apply + # # If the first argument is a Value object, copy it so the properties apply if len(args) > 0 and isinstance(args[0], Value): tmp = Value(args[0], copyshared=False) else: diff --git a/repgen/report/report.py b/repgen/report/report.py index ffc13ae..584907c 100644 --- a/repgen/report/report.py +++ b/repgen/report/report.py @@ -1,6 +1,6 @@ import sys,time,datetime,pytz,tempfile,shutil,os,operator,calendar,re from repgen.data.value import Value -from repgen import queue, threads +import repgen try: # Relativedelta supports months and years, but is external library @@ -130,11 +130,11 @@ def run( self, basedate, local_vars: dict = None ): exec(compile(self.datadef, self.repfilename, "exec"), globals(), my_locals) if self.parallel: print("Waiting for all tasks to be processed. . .") - queue.join() + repgen.queue.join() print("All tasks processed!") - for _ in range(len(threads)): - queue.put(None) - for thread in threads: + for _ in range(len(repgen.threads)): + repgen.queue.put(None) + for thread in repgen.threads: thread.join() # loop through my_locals and add them # to a dictionary with the % in front of the them diff --git a/repgen/workers/http.py b/repgen/workers/http.py index 4061c65..11a3244 100644 --- a/repgen/workers/http.py +++ b/repgen/workers/http.py @@ -196,7 +196,7 @@ def fetchTimeseriesCDA(v_self): print( repr(err) + " : " + str(err), file=sys.stderr ) break -def processSiteWorker(queue): +def processSiteWorker(_queue): """ Process site worker function that continuously retrieves tasks from a queue and processes them. ALL of these will terminate gracefully when self.queue.join() is called at the end of report.py @@ -208,12 +208,13 @@ def processSiteWorker(queue): results (list) """ while True: - value_self = queue.get(timeout=THREAD_TIMEOUT) + value_self = _queue.get(timeout=THREAD_TIMEOUT) try: if value_self is None: break + print("Fetching", value_self.dbloc, value_self.dbpar, value_self.dbptyp, value_self.dbint, value_self.dbdur, value_self.dbver) fetchTimeseriesCDA(value_self) except Exception as err: print( 'Thread Error:\n\t' + repr(err) + " : " + str(err), file=sys.stderr ) finally: - queue.task_done() \ No newline at end of file + _queue.task_done() \ No newline at end of file diff --git a/tests/swt/actual/test.frm b/tests/swt/actual/bulk_test.frm similarity index 100% rename from tests/swt/actual/test.frm rename to tests/swt/actual/bulk_test.frm diff --git a/tests/swt/actual/sequential_test.frm b/tests/swt/actual/sequential_test.frm new file mode 100644 index 0000000..e69de29 diff --git a/tests/swt/expect/test.frm b/tests/swt/expect/bulk_test.frm similarity index 100% rename from tests/swt/expect/test.frm rename to tests/swt/expect/bulk_test.frm diff --git a/tests/swt/expect/sequential_test.frm b/tests/swt/expect/sequential_test.frm new file mode 100644 index 0000000..e69de29 diff --git a/tests/swt/output/test.txt b/tests/swt/output/bulk_test.out similarity index 100% rename from tests/swt/output/test.txt rename to tests/swt/output/bulk_test.out diff --git a/tests/swt/testfiles/test.frm b/tests/swt/output/bulk_test.txt similarity index 76% rename from tests/swt/testfiles/test.frm rename to tests/swt/output/bulk_test.txt index 217ac2f..b571927 100644 --- a/tests/swt/testfiles/test.frm +++ b/tests/swt/output/bulk_test.txt @@ -1,123 +1,29 @@ -#FORM Tulsa District US Army Corps of Engineers Elevation Fetch Example 8am to 8am DATE ALTU ARBU ARCA BIGH BIRC BROK CANT CHEN COPA COUN DENI ELDR ELKC EUFA FALL FCOB FGIB FOSS FSUP GSAL HEYB HUDS HUGO HULA JOHN KAWL KEMP KEYS MARI MCGE MERE OOLO PATM PENS PINE SARD SKIA TENK THUN TOMS TORO WAUR WIST -%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -%DT %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev -#ENDFORM - -#DEF - -PROJECTS = [ - "ALTU", - "ARBU", - "ARCA", - "BIGH", - "BIRC", - "BROK", - "CANT", - "CHEN", - "COPA", - "COUN", - "DENI", - "ELDR", - "ELKC", - "EUFA", - "FALL", - "FCOB", - "FGIB", - "FOSS", - "FSUP", - "GSAL", - "HEYB", - "HUDS", - "HUGO", - "HULA", - "JOHN", - "KAWL", - "KEMP", - "KEYS", - "MARI", - "MCGE", - "MERE", - "OOLO", - "PATM", - "PENS", - "PINE", - "SARD", - "SKIA", - "TENK", - "THUN", - "TOMS", - "TORO", - "WAUR", - "WIST", -] -BASDATE.value = BASDATE.value.replace(hour=8, minute=0, second=0, microsecond=0) -BASDATE.picture = "%Y-%m-%d" -CUR_YEAR = BASDATE.value.year -CUR_MONTH = BASDATE.value.month -CUR_DAY = BASDATE.value.day - -BASDATE_8AM = BASDATE.value.replace(year=2024, month=6, day=21, hour=8, minute=0, second=0, microsecond=0) -BASDATE_8AM_YESTERDAY = BASDATE_8AM - datetime.timedelta(hours=24) - -for project in PROJECTS: - # Fetch the Elev from CDA via Value() - print("get elev") - elev = Value( - dbtype="radar", - DBTZ="US/CENTRAL", - tz="US/CENTRAL", - DBLOC=project, - DBPAR="Elev", - DBPTYP="Inst", - DBINT="1Hour", - DBDUR="0", - DBVER="Ccp-Rev", - start=BASDATE_8AM_YESTERDAY, - end=BASDATE_8AM, - PICTURE="%3.2f", - MISSTR="--", - UNDEF="~~", - DBUNITS="ft", - ) - print('get datetime') - # This will end up being the last elev to get looped. - # TODO: Consider creating a sep value for just the date range that should always exist - DT = Value(elev.datatimes(), - PICTURE="%d%b%Y %K%M", - ) - # Dynamically add the project to the locals for printing to the form - locals().update( - { - project + "_elev": elev - } - ) - print(project + "_elev") - -# ENDDEF +~~ %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +~~ %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +~~ %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +~~ %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +~~ %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +~~ %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +~~ %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +~~ %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +~~ %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +~~ %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +~~ %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +~~ %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +~~ %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +~~ %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +~~ %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +~~ %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +~~ %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +~~ %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +~~ %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +~~ %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +~~ %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +~~ %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +~~ %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +~~ %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev +~~ %ALTU-elev %ARBU-elev %ARCA-elev %BIGH-elev %BIRC-elev %BROK-elev %CANT-elev %CHEN-elev %COPA-elev %COUN-elev %DENI-elev %ELDR-elev %ELKC-elev %EUFA-elev %FALL-elev %FCOB-elev %FGIB-elev %FOSS-elev %FSUP-elev %GSAL-elev %HEYB-elev %HUDS-elev %HUGO-elev %HULA-elev %JOHN-elev %KAWL-elev %KEMP-elev %KEYS-elev %MARI-elev %MCGE-elev %MERE-elev %OOLO-elev %PATM-elev %PENS-elev %PINE-elev %SARD-elev %SKIA-elev %TENK-elev %THUN-elev %TOMS-elev %TORO-elev %WAUR-elev %WIST-elev diff --git a/tests/swt/output/sequential_test.out b/tests/swt/output/sequential_test.out new file mode 100644 index 0000000..2cf65e4 --- /dev/null +++ b/tests/swt/output/sequential_test.out @@ -0,0 +1,29 @@ + Tulsa District + US Army Corps of Engineers + Keystone Lake Report +DATE Elevation Storage Inflow Outflow Precip +%DT 724.73724.73 724.73 724.73 724.73 +%DT 724.75724.73 724.73 724.73 724.74 +%DT 724.76724.74 724.74 724.74 724.76 +%DT 724.72724.75 724.75 724.75 724.75 +%DT 724.70724.76 724.76 724.76 724.72 +%DT 724.66724.76 724.76 724.76 724.68 +%DT 724.65724.75 724.75 724.75 724.64 +%DT 724.67724.72 724.72 724.72 724.65 +%DT 724.69724.72 724.72 724.72 724.68 +%DT 724.71724.70 724.70 724.70 724.70 +%DT 724.73724.68 724.68 724.68 724.72 +%DT 724.74724.66 724.66 724.66 724.74 +%DT ~~ 724.64 724.64 724.64 724.75 +%DT ~~ 724.65 724.65 724.65 ~~ +%DT ~~ 724.65 724.65 724.65 ~~ +%DT ~~ 724.67 724.67 724.67 ~~ +%DT ~~ 724.68 724.68 724.68 ~~ +%DT ~~ 724.69 724.69 724.69 ~~ +%DT ~~ 724.70 724.70 724.70 ~~ +%DT ~~ 724.71 724.71 724.71 ~~ +%DT ~~ 724.72 724.72 724.72 ~~ +%DT ~~ 724.73 724.73 724.73 ~~ +%DT ~~ 724.74 724.74 724.74 ~~ +%DT ~~ 724.74 724.74 724.74 ~~ +%DT ~~ 724.75 724.75 724.75 ~~ diff --git a/tests/swt/scripts/run.bat b/tests/swt/scripts/run.bat index cfa6549..abed5f6 100644 --- a/tests/swt/scripts/run.bat +++ b/tests/swt/scripts/run.bat @@ -1,9 +1,29 @@ @echo off +@REM Get the first argument, which is the report name +set reportname=%1 +echo %reportname% + +@REM Check if no input is provided +if "%1"=="" ( + echo No input provided. Listing files in the 'tests/swt/testfiles' directory: + + @REM Loop through files and list those without extension + for %%f in (tests\swt\testfiles\*.*) do ( + echo run.bat %%~nf + ) + exit /b 1 +) + + +@REM If a file extension is present, remove it +if "%reportname:~-4%" == ".frm" set reportname=%reportname:~0,-4% +if "%reportname:~-4%" == ".out" set reportname=%reportname:~0,-4% + + python.exe . ^ -a https://cwms-data.usace.army.mil/cwms-data ^ - -i tests/swt/testfiles/test.frm ^ + -i tests/swt/testfiles/%reportname%.frm ^ -O SWT ^ - -p ^ - -o tests/swt/output/test.txt ^ + -o tests/swt/output/%reportname%.out ^ %* \ No newline at end of file diff --git a/tests/swt/testfiles/bulk_test.frm b/tests/swt/testfiles/bulk_test.frm new file mode 100644 index 0000000..c07c703 --- /dev/null +++ b/tests/swt/testfiles/bulk_test.frm @@ -0,0 +1,122 @@ +#FORM + Tulsa District + US Army Corps of Engineers + Elevation Fetch Example 8am to 8am +DATE ALTU ARBU ARCA BIGH BIRC BROK CANT CHEN COPA COUN DENI ELDR ELKC EUFA FALL FCOB FGIB FOSS FSUP GSAL HEYB HUDS HUGO HULA JOHN KAWL KEMP KEYS MARI MCGE MERE OOLO PATM PENS PINE SARD SKIA TENK THUN TOMS TORO WAUR WIST +%DT %ALTU_elev %ARBU_elev %ARCA_elev %BIGH_elev %BIRC_elev %BROK_elev %CANT_elev %CHEN_elev %COPA_elev %COUN_elev %DENI_elev %ELDR_elev %ELKC_elev %EUFA_elev %FALL_elev %FCOB_elev %FGIB_elev %FOSS_elev %FSUP_elev %GSAL_elev %HEYB_elev %HUDS_elev %HUGO_elev %HULA_elev %JOHN_elev %KAWL_elev %KEMP_elev %KEYS_elev %MARI_elev %MCGE_elev %MERE_elev %OOLO_elev %PATM_elev %PENS_elev %PINE_elev %SARD_elev %SKIA_elev %TENK_elev %THUN_elev %TOMS_elev %TORO_elev %WAUR_elev %WIST_elev +%DT %ALTU_elev %ARBU_elev %ARCA_elev %BIGH_elev %BIRC_elev %BROK_elev %CANT_elev %CHEN_elev %COPA_elev %COUN_elev %DENI_elev %ELDR_elev %ELKC_elev %EUFA_elev %FALL_elev %FCOB_elev %FGIB_elev %FOSS_elev %FSUP_elev %GSAL_elev %HEYB_elev %HUDS_elev %HUGO_elev %HULA_elev %JOHN_elev %KAWL_elev %KEMP_elev %KEYS_elev %MARI_elev %MCGE_elev %MERE_elev %OOLO_elev %PATM_elev %PENS_elev %PINE_elev %SARD_elev %SKIA_elev %TENK_elev %THUN_elev %TOMS_elev %TORO_elev %WAUR_elev %WIST_elev +%DT %ALTU_elev %ARBU_elev %ARCA_elev %BIGH_elev %BIRC_elev %BROK_elev %CANT_elev %CHEN_elev %COPA_elev %COUN_elev %DENI_elev %ELDR_elev %ELKC_elev %EUFA_elev %FALL_elev %FCOB_elev %FGIB_elev %FOSS_elev %FSUP_elev %GSAL_elev %HEYB_elev %HUDS_elev %HUGO_elev %HULA_elev %JOHN_elev %KAWL_elev %KEMP_elev %KEYS_elev %MARI_elev %MCGE_elev %MERE_elev %OOLO_elev %PATM_elev %PENS_elev %PINE_elev %SARD_elev %SKIA_elev %TENK_elev %THUN_elev %TOMS_elev %TORO_elev %WAUR_elev %WIST_elev +%DT %ALTU_elev %ARBU_elev %ARCA_elev %BIGH_elev %BIRC_elev %BROK_elev %CANT_elev %CHEN_elev %COPA_elev %COUN_elev %DENI_elev %ELDR_elev %ELKC_elev %EUFA_elev %FALL_elev %FCOB_elev %FGIB_elev %FOSS_elev %FSUP_elev %GSAL_elev %HEYB_elev %HUDS_elev %HUGO_elev %HULA_elev %JOHN_elev %KAWL_elev %KEMP_elev %KEYS_elev %MARI_elev %MCGE_elev %MERE_elev %OOLO_elev %PATM_elev %PENS_elev %PINE_elev %SARD_elev %SKIA_elev %TENK_elev %THUN_elev %TOMS_elev %TORO_elev %WAUR_elev %WIST_elev +%DT %ALTU_elev %ARBU_elev %ARCA_elev %BIGH_elev %BIRC_elev %BROK_elev %CANT_elev %CHEN_elev %COPA_elev %COUN_elev %DENI_elev %ELDR_elev %ELKC_elev %EUFA_elev %FALL_elev %FCOB_elev %FGIB_elev %FOSS_elev %FSUP_elev %GSAL_elev %HEYB_elev %HUDS_elev %HUGO_elev %HULA_elev %JOHN_elev %KAWL_elev %KEMP_elev %KEYS_elev %MARI_elev %MCGE_elev %MERE_elev %OOLO_elev %PATM_elev %PENS_elev %PINE_elev %SARD_elev %SKIA_elev %TENK_elev %THUN_elev %TOMS_elev %TORO_elev %WAUR_elev %WIST_elev +%DT %ALTU_elev %ARBU_elev %ARCA_elev %BIGH_elev %BIRC_elev %BROK_elev %CANT_elev %CHEN_elev %COPA_elev %COUN_elev %DENI_elev %ELDR_elev %ELKC_elev %EUFA_elev %FALL_elev %FCOB_elev %FGIB_elev %FOSS_elev %FSUP_elev %GSAL_elev %HEYB_elev %HUDS_elev %HUGO_elev %HULA_elev %JOHN_elev %KAWL_elev %KEMP_elev %KEYS_elev %MARI_elev %MCGE_elev %MERE_elev %OOLO_elev %PATM_elev %PENS_elev %PINE_elev %SARD_elev %SKIA_elev %TENK_elev %THUN_elev %TOMS_elev %TORO_elev %WAUR_elev %WIST_elev +%DT %ALTU_elev %ARBU_elev %ARCA_elev %BIGH_elev %BIRC_elev %BROK_elev %CANT_elev %CHEN_elev %COPA_elev %COUN_elev %DENI_elev %ELDR_elev %ELKC_elev %EUFA_elev %FALL_elev %FCOB_elev %FGIB_elev %FOSS_elev %FSUP_elev %GSAL_elev %HEYB_elev %HUDS_elev %HUGO_elev %HULA_elev %JOHN_elev %KAWL_elev %KEMP_elev %KEYS_elev %MARI_elev %MCGE_elev %MERE_elev %OOLO_elev %PATM_elev %PENS_elev %PINE_elev %SARD_elev %SKIA_elev %TENK_elev %THUN_elev %TOMS_elev %TORO_elev %WAUR_elev %WIST_elev +%DT %ALTU_elev %ARBU_elev %ARCA_elev %BIGH_elev %BIRC_elev %BROK_elev %CANT_elev %CHEN_elev %COPA_elev %COUN_elev %DENI_elev %ELDR_elev %ELKC_elev %EUFA_elev %FALL_elev %FCOB_elev %FGIB_elev %FOSS_elev %FSUP_elev %GSAL_elev %HEYB_elev %HUDS_elev %HUGO_elev %HULA_elev %JOHN_elev %KAWL_elev %KEMP_elev %KEYS_elev %MARI_elev %MCGE_elev %MERE_elev %OOLO_elev %PATM_elev %PENS_elev %PINE_elev %SARD_elev %SKIA_elev %TENK_elev %THUN_elev %TOMS_elev %TORO_elev %WAUR_elev %WIST_elev +%DT %ALTU_elev %ARBU_elev %ARCA_elev %BIGH_elev %BIRC_elev %BROK_elev %CANT_elev %CHEN_elev %COPA_elev %COUN_elev %DENI_elev %ELDR_elev %ELKC_elev %EUFA_elev %FALL_elev %FCOB_elev %FGIB_elev %FOSS_elev %FSUP_elev %GSAL_elev %HEYB_elev %HUDS_elev %HUGO_elev %HULA_elev %JOHN_elev %KAWL_elev %KEMP_elev %KEYS_elev %MARI_elev %MCGE_elev %MERE_elev %OOLO_elev %PATM_elev %PENS_elev %PINE_elev %SARD_elev %SKIA_elev %TENK_elev %THUN_elev %TOMS_elev %TORO_elev %WAUR_elev %WIST_elev +%DT %ALTU_elev %ARBU_elev %ARCA_elev %BIGH_elev %BIRC_elev %BROK_elev %CANT_elev %CHEN_elev %COPA_elev %COUN_elev %DENI_elev %ELDR_elev %ELKC_elev %EUFA_elev %FALL_elev %FCOB_elev %FGIB_elev %FOSS_elev %FSUP_elev %GSAL_elev %HEYB_elev %HUDS_elev %HUGO_elev %HULA_elev %JOHN_elev %KAWL_elev %KEMP_elev %KEYS_elev %MARI_elev %MCGE_elev %MERE_elev %OOLO_elev %PATM_elev %PENS_elev %PINE_elev %SARD_elev %SKIA_elev %TENK_elev %THUN_elev %TOMS_elev %TORO_elev %WAUR_elev %WIST_elev +%DT %ALTU_elev %ARBU_elev %ARCA_elev %BIGH_elev %BIRC_elev %BROK_elev %CANT_elev %CHEN_elev %COPA_elev %COUN_elev %DENI_elev %ELDR_elev %ELKC_elev %EUFA_elev %FALL_elev %FCOB_elev %FGIB_elev %FOSS_elev %FSUP_elev %GSAL_elev %HEYB_elev %HUDS_elev %HUGO_elev %HULA_elev %JOHN_elev %KAWL_elev %KEMP_elev %KEYS_elev %MARI_elev %MCGE_elev %MERE_elev %OOLO_elev %PATM_elev %PENS_elev %PINE_elev %SARD_elev %SKIA_elev %TENK_elev %THUN_elev %TOMS_elev %TORO_elev %WAUR_elev %WIST_elev +%DT %ALTU_elev %ARBU_elev %ARCA_elev %BIGH_elev %BIRC_elev %BROK_elev %CANT_elev %CHEN_elev %COPA_elev %COUN_elev %DENI_elev %ELDR_elev %ELKC_elev %EUFA_elev %FALL_elev %FCOB_elev %FGIB_elev %FOSS_elev %FSUP_elev %GSAL_elev %HEYB_elev %HUDS_elev %HUGO_elev %HULA_elev %JOHN_elev %KAWL_elev %KEMP_elev %KEYS_elev %MARI_elev %MCGE_elev %MERE_elev %OOLO_elev %PATM_elev %PENS_elev %PINE_elev %SARD_elev %SKIA_elev %TENK_elev %THUN_elev %TOMS_elev %TORO_elev %WAUR_elev %WIST_elev +%DT %ALTU_elev %ARBU_elev %ARCA_elev %BIGH_elev %BIRC_elev %BROK_elev %CANT_elev %CHEN_elev %COPA_elev %COUN_elev %DENI_elev %ELDR_elev %ELKC_elev %EUFA_elev %FALL_elev %FCOB_elev %FGIB_elev %FOSS_elev %FSUP_elev %GSAL_elev %HEYB_elev %HUDS_elev %HUGO_elev %HULA_elev %JOHN_elev %KAWL_elev %KEMP_elev %KEYS_elev %MARI_elev %MCGE_elev %MERE_elev %OOLO_elev %PATM_elev %PENS_elev %PINE_elev %SARD_elev %SKIA_elev %TENK_elev %THUN_elev %TOMS_elev %TORO_elev %WAUR_elev %WIST_elev +%DT %ALTU_elev %ARBU_elev %ARCA_elev %BIGH_elev %BIRC_elev %BROK_elev %CANT_elev %CHEN_elev %COPA_elev %COUN_elev %DENI_elev %ELDR_elev %ELKC_elev %EUFA_elev %FALL_elev %FCOB_elev %FGIB_elev %FOSS_elev %FSUP_elev %GSAL_elev %HEYB_elev %HUDS_elev %HUGO_elev %HULA_elev %JOHN_elev %KAWL_elev %KEMP_elev %KEYS_elev %MARI_elev %MCGE_elev %MERE_elev %OOLO_elev %PATM_elev %PENS_elev %PINE_elev %SARD_elev %SKIA_elev %TENK_elev %THUN_elev %TOMS_elev %TORO_elev %WAUR_elev %WIST_elev +%DT %ALTU_elev %ARBU_elev %ARCA_elev %BIGH_elev %BIRC_elev %BROK_elev %CANT_elev %CHEN_elev %COPA_elev %COUN_elev %DENI_elev %ELDR_elev %ELKC_elev %EUFA_elev %FALL_elev %FCOB_elev %FGIB_elev %FOSS_elev %FSUP_elev %GSAL_elev %HEYB_elev %HUDS_elev %HUGO_elev %HULA_elev %JOHN_elev %KAWL_elev %KEMP_elev %KEYS_elev %MARI_elev %MCGE_elev %MERE_elev %OOLO_elev %PATM_elev %PENS_elev %PINE_elev %SARD_elev %SKIA_elev %TENK_elev %THUN_elev %TOMS_elev %TORO_elev %WAUR_elev %WIST_elev +%DT %ALTU_elev %ARBU_elev %ARCA_elev %BIGH_elev %BIRC_elev %BROK_elev %CANT_elev %CHEN_elev %COPA_elev %COUN_elev %DENI_elev %ELDR_elev %ELKC_elev %EUFA_elev %FALL_elev %FCOB_elev %FGIB_elev %FOSS_elev %FSUP_elev %GSAL_elev %HEYB_elev %HUDS_elev %HUGO_elev %HULA_elev %JOHN_elev %KAWL_elev %KEMP_elev %KEYS_elev %MARI_elev %MCGE_elev %MERE_elev %OOLO_elev %PATM_elev %PENS_elev %PINE_elev %SARD_elev %SKIA_elev %TENK_elev %THUN_elev %TOMS_elev %TORO_elev %WAUR_elev %WIST_elev +%DT %ALTU_elev %ARBU_elev %ARCA_elev %BIGH_elev %BIRC_elev %BROK_elev %CANT_elev %CHEN_elev %COPA_elev %COUN_elev %DENI_elev %ELDR_elev %ELKC_elev %EUFA_elev %FALL_elev %FCOB_elev %FGIB_elev %FOSS_elev %FSUP_elev %GSAL_elev %HEYB_elev %HUDS_elev %HUGO_elev %HULA_elev %JOHN_elev %KAWL_elev %KEMP_elev %KEYS_elev %MARI_elev %MCGE_elev %MERE_elev %OOLO_elev %PATM_elev %PENS_elev %PINE_elev %SARD_elev %SKIA_elev %TENK_elev %THUN_elev %TOMS_elev %TORO_elev %WAUR_elev %WIST_elev +%DT %ALTU_elev %ARBU_elev %ARCA_elev %BIGH_elev %BIRC_elev %BROK_elev %CANT_elev %CHEN_elev %COPA_elev %COUN_elev %DENI_elev %ELDR_elev %ELKC_elev %EUFA_elev %FALL_elev %FCOB_elev %FGIB_elev %FOSS_elev %FSUP_elev %GSAL_elev %HEYB_elev %HUDS_elev %HUGO_elev %HULA_elev %JOHN_elev %KAWL_elev %KEMP_elev %KEYS_elev %MARI_elev %MCGE_elev %MERE_elev %OOLO_elev %PATM_elev %PENS_elev %PINE_elev %SARD_elev %SKIA_elev %TENK_elev %THUN_elev %TOMS_elev %TORO_elev %WAUR_elev %WIST_elev +%DT %ALTU_elev %ARBU_elev %ARCA_elev %BIGH_elev %BIRC_elev %BROK_elev %CANT_elev %CHEN_elev %COPA_elev %COUN_elev %DENI_elev %ELDR_elev %ELKC_elev %EUFA_elev %FALL_elev %FCOB_elev %FGIB_elev %FOSS_elev %FSUP_elev %GSAL_elev %HEYB_elev %HUDS_elev %HUGO_elev %HULA_elev %JOHN_elev %KAWL_elev %KEMP_elev %KEYS_elev %MARI_elev %MCGE_elev %MERE_elev %OOLO_elev %PATM_elev %PENS_elev %PINE_elev %SARD_elev %SKIA_elev %TENK_elev %THUN_elev %TOMS_elev %TORO_elev %WAUR_elev %WIST_elev +%DT %ALTU_elev %ARBU_elev %ARCA_elev %BIGH_elev %BIRC_elev %BROK_elev %CANT_elev %CHEN_elev %COPA_elev %COUN_elev %DENI_elev %ELDR_elev %ELKC_elev %EUFA_elev %FALL_elev %FCOB_elev %FGIB_elev %FOSS_elev %FSUP_elev %GSAL_elev %HEYB_elev %HUDS_elev %HUGO_elev %HULA_elev %JOHN_elev %KAWL_elev %KEMP_elev %KEYS_elev %MARI_elev %MCGE_elev %MERE_elev %OOLO_elev %PATM_elev %PENS_elev %PINE_elev %SARD_elev %SKIA_elev %TENK_elev %THUN_elev %TOMS_elev %TORO_elev %WAUR_elev %WIST_elev +%DT %ALTU_elev %ARBU_elev %ARCA_elev %BIGH_elev %BIRC_elev %BROK_elev %CANT_elev %CHEN_elev %COPA_elev %COUN_elev %DENI_elev %ELDR_elev %ELKC_elev %EUFA_elev %FALL_elev %FCOB_elev %FGIB_elev %FOSS_elev %FSUP_elev %GSAL_elev %HEYB_elev %HUDS_elev %HUGO_elev %HULA_elev %JOHN_elev %KAWL_elev %KEMP_elev %KEYS_elev %MARI_elev %MCGE_elev %MERE_elev %OOLO_elev %PATM_elev %PENS_elev %PINE_elev %SARD_elev %SKIA_elev %TENK_elev %THUN_elev %TOMS_elev %TORO_elev %WAUR_elev %WIST_elev +%DT %ALTU_elev %ARBU_elev %ARCA_elev %BIGH_elev %BIRC_elev %BROK_elev %CANT_elev %CHEN_elev %COPA_elev %COUN_elev %DENI_elev %ELDR_elev %ELKC_elev %EUFA_elev %FALL_elev %FCOB_elev %FGIB_elev %FOSS_elev %FSUP_elev %GSAL_elev %HEYB_elev %HUDS_elev %HUGO_elev %HULA_elev %JOHN_elev %KAWL_elev %KEMP_elev %KEYS_elev %MARI_elev %MCGE_elev %MERE_elev %OOLO_elev %PATM_elev %PENS_elev %PINE_elev %SARD_elev %SKIA_elev %TENK_elev %THUN_elev %TOMS_elev %TORO_elev %WAUR_elev %WIST_elev +%DT %ALTU_elev %ARBU_elev %ARCA_elev %BIGH_elev %BIRC_elev %BROK_elev %CANT_elev %CHEN_elev %COPA_elev %COUN_elev %DENI_elev %ELDR_elev %ELKC_elev %EUFA_elev %FALL_elev %FCOB_elev %FGIB_elev %FOSS_elev %FSUP_elev %GSAL_elev %HEYB_elev %HUDS_elev %HUGO_elev %HULA_elev %JOHN_elev %KAWL_elev %KEMP_elev %KEYS_elev %MARI_elev %MCGE_elev %MERE_elev %OOLO_elev %PATM_elev %PENS_elev %PINE_elev %SARD_elev %SKIA_elev %TENK_elev %THUN_elev %TOMS_elev %TORO_elev %WAUR_elev %WIST_elev +%DT %ALTU_elev %ARBU_elev %ARCA_elev %BIGH_elev %BIRC_elev %BROK_elev %CANT_elev %CHEN_elev %COPA_elev %COUN_elev %DENI_elev %ELDR_elev %ELKC_elev %EUFA_elev %FALL_elev %FCOB_elev %FGIB_elev %FOSS_elev %FSUP_elev %GSAL_elev %HEYB_elev %HUDS_elev %HUGO_elev %HULA_elev %JOHN_elev %KAWL_elev %KEMP_elev %KEYS_elev %MARI_elev %MCGE_elev %MERE_elev %OOLO_elev %PATM_elev %PENS_elev %PINE_elev %SARD_elev %SKIA_elev %TENK_elev %THUN_elev %TOMS_elev %TORO_elev %WAUR_elev %WIST_elev +%DT %ALTU_elev %ARBU_elev %ARCA_elev %BIGH_elev %BIRC_elev %BROK_elev %CANT_elev %CHEN_elev %COPA_elev %COUN_elev %DENI_elev %ELDR_elev %ELKC_elev %EUFA_elev %FALL_elev %FCOB_elev %FGIB_elev %FOSS_elev %FSUP_elev %GSAL_elev %HEYB_elev %HUDS_elev %HUGO_elev %HULA_elev %JOHN_elev %KAWL_elev %KEMP_elev %KEYS_elev %MARI_elev %MCGE_elev %MERE_elev %OOLO_elev %PATM_elev %PENS_elev %PINE_elev %SARD_elev %SKIA_elev %TENK_elev %THUN_elev %TOMS_elev %TORO_elev %WAUR_elev %WIST_elev +#ENDFORM + +#DEF + +PROJECTS = [ + "ALTU", + "ARBU", + "ARCA", + "BIGH", + "BIRC", + "BROK", + "CANT", + "CHEN", + "COPA", + "COUN", + "DENI", + "ELDR", + "ELKC", + "EUFA", + "FALL", + "FCOB", + "FGIB", + "FOSS", + "FSUP", + "GSAL", + "HEYB", + "HUDS", + "HUGO", + "HULA", + "JOHN", + "KAWL", + "KEMP", + "KEYS", + "MARI", + "MCGE", + "MERE", + "OOLO", + "PATM", + "PENS", + "PINE", + "SARD", + "SKIA", + "TENK", + "THUN", + "TOMS", + "TORO", + "WAUR", + "WIST", +] +BASDATE.value = BASDATE.value.replace(hour=8, minute=0, second=0, microsecond=0) +BASDATE.picture = "%Y-%m-%d" +CUR_YEAR = BASDATE.value.year +CUR_MONTH = BASDATE.value.month +CUR_DAY = BASDATE.value.day + +BASDATE_8AM = BASDATE.value.replace(year=2024, month=6, day=21, hour=8, minute=0, second=0, microsecond=0) +BASDATE_8AM_YESTERDAY = BASDATE_8AM - datetime.timedelta(hours=24) + +for project in PROJECTS: + # Fetch the Elev from CDA via Value() + elev = Value( + dbtype="radar", + DBTZ="US/CENTRAL", + tz="US/CENTRAL", + DBLOC=project, + DBPAR="Elev", + DBPTYP="Inst", + DBINT="1Hour", + DBDUR="0", + DBVER="Ccp-Rev", + start=BASDATE_8AM_YESTERDAY, + end=BASDATE_8AM, + PICTURE="%3.2f", + MISSTR="--", + UNDEF="~~", + DBUNITS="ft", + ) + # This will end up being the last elev to get looped. + # TODO: Consider creating a sep value for just the date range that should always exist + print("datatimes", str(elev.values)) + DT = Value(elev.datatimes(), + PICTURE="%d%b%Y %K%M", + ) + # Dynamically add the project to the locals for printing to the form + locals().update( + { + project + "_elev": elev + } + ) + print(project + "_elev") + +# ENDDEF diff --git a/tests/swt/testfiles/sequential_test.frm b/tests/swt/testfiles/sequential_test.frm new file mode 100644 index 0000000..cb240e2 --- /dev/null +++ b/tests/swt/testfiles/sequential_test.frm @@ -0,0 +1,118 @@ +#FORM + Tulsa District + US Army Corps of Engineers + Keystone Lake Report +DATE Elevation Storage Inflow Outflow Precip +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +#ENDFORM + +#DEF +PROJECT = "KEYS" +PARAM_TSIDS = [ + "Elev.Inst.1Hour.0.Ccp-Rev", + "Stor.Inst.1Hour.0.Ccp-Rev", + "Flow-Res In.Ave.1Hour.1Hour.Rev-Regi-Computed", + "Flow-Res Out.Ave.1Hour.1Hour.Rev-Regi-Flowgroup", + "Precip-Inc.Total.1Hour.1Hour.Ccp-Rev", +] + +UNIT_MAP = { + "precip_inc": {"units": "in", "picture": "%3.3f"}, + "flow_res_in": {"units": "cfs", "picture": "%4.0f"}, + "flow_res_out": {"units": "cfs", "picture": "%4.0f"}, + "elev": {"units": "ft", "picture": "%3.2f"}, + "stor": {"units": "ac-ft", "picture": "%5.0f"}, +} + +PARAM_TSIDS = [p.split(".") for p in PARAM_TSIDS] + +BASDATE.value = BASDATE.value.replace(hour=8, minute=0, second=0, microsecond=0) +BASDATE.picture = "%Y-%m-%d" +CUR_YEAR = BASDATE.value.year +CUR_MONTH = BASDATE.value.month +CUR_DAY = BASDATE.value.day + +BASDATE_8AM = BASDATE.value.replace(year=2024, month=6, day=21, hour=8, minute=0, second=0, microsecond=0) +BASDATE_8AM_YESTERDAY = BASDATE_8AM - datetime.timedelta(hours=24) + +for dbpar, dbptyp, dbint, dbdur, dbver in PARAM_TSIDS: + print("GET " + '.'.join([PROJECT,dbpar, dbptyp, dbint, dbdur, dbver])) + # Create a variable friendly name for the parameter + dbpar_norm = dbpar.replace(" ", "_").replace("-", "_").lower() + # Dynamically add the project to the locals for printing to the form + print(UNIT_MAP.get(dbpar_norm, "ft")) + param = UNIT_MAP.get(dbpar_norm, "ft") + # _value = Value( + # dbtype="radar", + # DBTZ="US/CENTRAL", + # tz="US/CENTRAL", + # DBLOC=PROJECT, + # DBPAR=dbpar, + # DBPTYP=dbptyp, + # DBINT=dbint, + # DBDUR=dbdur, + # DBVER=dbver, + # start=BASDATE_8AM_YESTERDAY, + # end=BASDATE_8AM, + # PICTURE=param["picture"], + # MISSTR="--", + # UNDEF="~~", + # DBUNITS=param["units"], + # ) + elev = Value( + dbtype="radar", + DBTZ="US/CENTRAL", + tz="US/CENTRAL", + DBLOC=PROJECT, + DBPAR="Elev", + DBPTYP="Inst", + DBINT="1Hour", + DBDUR="0", + DBVER="Ccp-Rev", + start=BASDATE_8AM_YESTERDAY, + end=BASDATE_8AM, + PICTURE="%3.2f", + MISSTR="--", + UNDEF="~~", + DBUNITS="ft", + ) + print(param) + print(elev.values) + locals().update( + { + dbpar_norm: elev + } + ) + +# This will end up being the last elev to get looped. +# TODO: Consider creating a sep value for just the date range that should always exist +# DT = Value(elev.datatimes(), +# PICTURE="%d%b%Y %K%M", +# ) + + +# ENDDEF diff --git a/tests/test_run_swt.py b/tests/test_run_swt.py index ae0586c..68cbe41 100644 --- a/tests/test_run_swt.py +++ b/tests/test_run_swt.py @@ -29,7 +29,7 @@ @pytest.mark.parametrize( "reportname", [ - ("test.frm"), + ("bulk_test.frm,sequential_test.frm"), ], ) def test_repgen(capsys, reportname: str): From 308931782f21776276b9297fc7660145714761c8 Mon Sep 17 00:00:00 2001 From: "Charles Graham, SWT" Date: Thu, 8 Aug 2024 22:13:19 -0500 Subject: [PATCH 18/21] Update form to be dynamic again --- tests/swt/testfiles/sequential_test.frm | 37 +++++++------------------ 1 file changed, 10 insertions(+), 27 deletions(-) diff --git a/tests/swt/testfiles/sequential_test.frm b/tests/swt/testfiles/sequential_test.frm index cb240e2..6f551b9 100644 --- a/tests/swt/testfiles/sequential_test.frm +++ b/tests/swt/testfiles/sequential_test.frm @@ -66,45 +66,28 @@ for dbpar, dbptyp, dbint, dbdur, dbver in PARAM_TSIDS: # Dynamically add the project to the locals for printing to the form print(UNIT_MAP.get(dbpar_norm, "ft")) param = UNIT_MAP.get(dbpar_norm, "ft") - # _value = Value( - # dbtype="radar", - # DBTZ="US/CENTRAL", - # tz="US/CENTRAL", - # DBLOC=PROJECT, - # DBPAR=dbpar, - # DBPTYP=dbptyp, - # DBINT=dbint, - # DBDUR=dbdur, - # DBVER=dbver, - # start=BASDATE_8AM_YESTERDAY, - # end=BASDATE_8AM, - # PICTURE=param["picture"], - # MISSTR="--", - # UNDEF="~~", - # DBUNITS=param["units"], - # ) - elev = Value( + _value = Value( dbtype="radar", DBTZ="US/CENTRAL", tz="US/CENTRAL", DBLOC=PROJECT, - DBPAR="Elev", - DBPTYP="Inst", - DBINT="1Hour", - DBDUR="0", - DBVER="Ccp-Rev", + DBPAR=dbpar, + DBPTYP=dbptyp, + DBINT=dbint, + DBDUR=dbdur, + DBVER=dbver, start=BASDATE_8AM_YESTERDAY, end=BASDATE_8AM, - PICTURE="%3.2f", + PICTURE=param["picture"], MISSTR="--", UNDEF="~~", - DBUNITS="ft", + DBUNITS=param["units"], ) print(param) - print(elev.values) + print(_value.values) locals().update( { - dbpar_norm: elev + dbpar_norm: _value } ) From 7126e781851306e01f2eba0ad3d2a0354bc2f576 Mon Sep 17 00:00:00 2001 From: "Charles Graham, SWT" Date: Fri, 9 Aug 2024 07:51:21 -0500 Subject: [PATCH 19/21] Fix spacing on sequential form --- tests/swt/output/bulk_test.out | 50 +++++++++---------- tests/swt/output/sequential_test.out | 52 ++++++++++---------- tests/swt/testfiles/sequential_test.frm | 64 ++++++++++++------------- 3 files changed, 83 insertions(+), 83 deletions(-) diff --git a/tests/swt/output/bulk_test.out b/tests/swt/output/bulk_test.out index 4a4e97a..7ae2bd0 100644 --- a/tests/swt/output/bulk_test.out +++ b/tests/swt/output/bulk_test.out @@ -2,28 +2,28 @@ US Army Corps of Engineers Elevation Fetch Example 8am to 8am DATE ALTU ARBU ARCA BIGH BIRC BROK CANT CHEN COPA COUN DENI ELDR ELKC EUFA FALL FCOB FGIB FOSS FSUP GSAL HEYB HUDS HUGO HULA JOHN KAWL KEMP KEYS MARI MCGE MERE OOLO PATM PENS PINE SARD SKIA TENK THUN TOMS TORO WAUR WIST -~~ 1543.58 873.43 1006.08 857.95 750.07 602.38 1615.80 1415.68 710.66 1276.36 620.39 1337.65 796.08 586.48 948.96 1341.75 559.02 1640.90 2004.83 1125.14 761.49 620.22 404.92 733.62 1044.39 1010.78 1148.76 724.73 1351.01 578.12 2890.12 640.82 454.61 744.61 441.54 598.94 709.23 632.46 1039.76 1405.41 902.14 951.00 478.07 -~~ 1543.57 873.43 1006.08 857.94 750.06 602.38 1615.79 1415.67 710.66 1276.36 620.40 1337.64 796.08 586.47 948.96 1341.75 558.96 1640.90 2004.83 1125.17 761.49 620.31 404.87 733.63 1044.42 1010.79 1148.75 724.73 1351.02 578.12 2890.13 640.80 454.61 744.60 441.54 598.94 709.21 632.46 1039.76 1405.41 902.14 951.00 478.06 -~~ 1543.57 873.43 1006.08 857.95 750.06 602.38 1615.79 1415.67 710.65 1276.35 620.41 1337.64 796.08 586.47 948.95 1341.75 558.89 1640.90 2004.84 1125.23 761.49 620.42 404.83 733.63 1044.41 1010.78 1148.75 724.74 1351.02 578.11 2890.12 640.78 454.60 744.58 441.54 598.94 709.22 632.46 1039.76 1405.41 902.14 950.99 478.06 -~~ 1543.58 873.43 1006.08 857.95 750.06 602.38 1615.79 1415.67 710.66 1276.35 620.41 1337.64 796.08 586.47 948.96 1341.75 558.88 1640.90 2004.84 1125.23 761.49 620.45 404.78 733.63 1044.36 1010.79 1148.75 724.75 1351.03 578.11 2890.14 640.77 454.59 744.56 441.53 598.94 709.21 632.46 1039.75 1405.41 902.15 951.01 478.07 -~~ 1543.57 873.43 1006.08 857.95 750.06 602.38 1615.80 1415.67 710.66 1276.34 620.39 1337.64 796.08 586.46 948.96 1341.75 558.84 1640.90 2004.84 1125.22 761.49 620.34 404.77 733.63 1044.34 1010.78 1148.75 724.76 1351.03 578.12 2890.11 640.77 454.58 744.55 441.54 598.94 709.21 632.46 1039.75 1405.42 902.15 951.00 478.06 -~~ 1543.57 873.43 1006.08 857.95 750.06 602.37 1615.80 1415.67 710.66 1276.33 620.40 1337.64 796.08 586.46 948.96 1341.75 558.78 1640.89 2004.84 1125.23 761.48 620.26 404.74 733.63 1044.32 1010.78 1148.73 724.76 1351.04 578.11 2890.15 640.77 454.58 744.54 441.53 598.94 709.21 632.46 1039.76 1405.41 902.16 951.01 478.06 -~~ 1543.58 873.43 1006.07 857.95 750.06 602.33 1615.79 1415.67 710.67 1276.33 620.39 1337.65 796.08 586.46 948.96 1341.75 558.73 1640.89 2004.84 1125.19 761.48 620.13 404.72 733.63 1044.28 1010.76 1148.73 724.75 1351.03 578.11 2890.16 640.77 454.57 744.53 441.54 598.96 709.21 632.47 1039.76 1405.42 902.16 951.00 478.05 -~~ 1543.57 873.43 1006.07 857.94 750.05 602.29 1615.79 1415.67 710.66 1276.32 620.39 1337.64 796.08 586.44 948.96 1341.75 558.82 1640.89 2004.84 1125.17 761.48 619.98 404.68 733.63 1044.21 1010.72 1148.72 724.72 1351.03 578.11 2890.15 640.75 454.52 744.51 441.55 598.95 709.20 632.47 1039.75 1405.42 902.16 951.00 478.05 -~~ 1543.57 873.43 1006.07 857.94 750.05 602.25 1615.79 1415.67 710.67 1276.31 620.38 1337.64 796.08 586.42 948.96 1341.76 558.94 1640.89 2004.84 1125.18 761.48 619.85 404.67 733.63 1044.19 1010.69 1148.71 724.72 1351.03 578.11 2890.16 640.73 454.50 744.50 441.53 598.93 709.20 632.47 1039.75 1405.42 902.17 951.00 478.05 -~~ 1543.57 873.44 1006.07 857.95 750.05 602.23 1615.79 1415.66 710.66 1276.30 620.38 1337.64 796.08 586.41 948.96 1341.75 558.99 1640.88 2004.84 1125.13 761.48 619.73 404.65 733.63 1044.13 1010.66 1148.70 724.70 1351.03 578.12 2890.17 640.71 454.49 744.48 441.53 598.95 709.20 632.47 1039.75 1405.41 902.16 951.00 478.03 -~~ 1543.57 873.44 1006.07 857.94 750.05 602.21 1615.79 1415.66 710.65 1276.29 620.37 1337.63 796.08 586.41 948.96 1341.75 559.04 1640.89 2004.84 1125.15 761.48 619.61 404.65 733.63 1044.07 1010.64 1148.69 724.68 1351.03 578.11 2890.20 640.70 454.49 744.46 441.53 598.95 709.20 632.48 1039.75 1405.42 902.16 950.99 478.03 -~~ 1543.57 873.44 1006.07 857.94 750.05 602.21 1615.79 1415.65 710.66 1276.29 620.36 1337.64 796.08 586.39 948.95 1341.75 559.12 1640.89 2004.85 1125.12 761.48 619.46 404.66 733.63 1044.04 1010.61 1148.68 724.66 1351.04 578.11 2890.16 640.68 454.48 744.44 441.53 598.95 709.19 632.47 1039.75 1405.41 902.17 950.99 478.03 -~~ 1543.57 873.44 1006.07 857.94 750.05 602.21 1615.79 1415.65 710.65 1276.28 620.35 1337.63 796.08 586.40 948.96 1341.74 559.20 1640.89 2004.85 1125.15 761.48 619.65 404.65 733.63 1043.99 1010.60 1148.68 724.64 1351.04 578.11 2890.16 640.68 454.47 744.42 441.53 598.94 709.19 632.47 1039.75 1405.41 902.18 950.99 478.03 -~~ 1543.56 873.44 1006.07 857.94 750.05 602.22 1615.79 1415.66 710.66 1276.27 620.34 1337.63 796.08 586.41 948.96 1341.74 559.26 1640.88 2004.85 1125.19 761.48 619.64 404.66 733.64 1043.96 1010.59 1148.68 724.65 1351.05 578.11 2890.16 640.67 454.46 744.41 441.54 598.94 709.22 632.47 1039.75 1405.41 902.18 950.99 478.04 -~~ 1543.57 873.44 1006.06 857.93 750.05 602.21 1615.79 1415.66 710.66 1276.26 620.33 1337.63 796.08 586.39 948.96 1341.74 559.29 1640.89 2004.85 1125.18 761.48 619.73 404.65 733.64 1043.92 1010.60 1148.67 724.65 1351.05 578.11 2890.15 640.65 454.45 744.39 441.54 598.94 709.19 632.48 1039.75 1405.41 902.19 951.00 478.04 -~~ 1543.56 873.44 1006.07 857.93 750.05 602.20 1615.79 1415.66 710.66 1276.25 620.33 1337.64 796.08 586.37 948.96 1341.74 559.15 1640.88 2004.85 1125.16 761.48 619.86 404.64 733.64 1043.87 1010.60 1148.67 724.67 1351.05 578.11 2890.15 640.64 454.44 744.38 441.53 598.94 709.19 632.48 1039.75 1405.41 902.19 950.99 478.03 -~~ 1543.55 873.44 1006.06 857.93 750.04 602.20 1615.79 1415.66 710.66 1276.24 620.33 1337.64 796.08 586.37 948.96 1341.74 559.03 1640.89 2004.85 1125.18 761.47 619.98 404.65 733.64 1043.83 1010.61 1148.66 724.68 1351.06 578.11 2890.15 640.62 454.43 744.36 441.53 598.94 709.19 632.48 1039.74 1405.41 902.19 950.99 478.03 -~~ 1543.56 873.43 1006.06 857.93 750.04 602.21 1615.79 1415.66 710.66 1276.24 620.30 1337.63 796.08 586.37 948.96 1341.74 559.02 1640.88 2004.85 1125.18 761.47 620.06 404.65 733.64 1043.79 1010.62 1148.65 724.69 1351.06 578.10 2890.15 640.62 454.42 744.38 441.53 598.94 709.18 632.48 1039.74 1405.40 902.19 950.98 478.03 -~~ 1543.56 873.43 1006.06 857.93 750.04 602.21 1615.79 1415.66 710.66 1276.23 620.31 1337.63 796.08 586.36 948.96 1341.74 559.03 1640.88 2004.85 1125.18 761.47 620.11 404.65 733.64 1043.74 1010.61 1148.65 724.70 1351.05 578.11 2890.15 640.60 454.41 744.43 441.54 598.94 709.18 632.48 1039.74 1405.41 902.20 950.99 478.02 -~~ 1543.57 873.43 1006.06 857.93 750.04 602.20 1615.79 1415.66 710.66 1276.21 620.30 1337.63 796.08 586.35 948.96 1341.74 558.95 1640.89 2004.85 1125.18 761.47 620.00 404.66 733.64 1043.71 1010.62 1148.64 724.71 1351.06 578.10 2890.13 640.57 454.40 744.38 441.53 598.94 709.18 632.48 1039.74 1405.40 902.20 950.98 478.03 -~~ 1543.56 873.43 1006.06 857.93 750.04 602.20 1615.79 1415.66 710.65 1276.21 620.32 1337.63 796.08 586.35 948.96 1341.74 558.86 1640.88 2004.84 1125.19 761.47 619.92 404.66 733.64 1043.68 1010.62 1148.63 724.72 1351.05 578.10 2890.13 640.56 454.39 744.38 441.53 598.94 709.18 632.48 1039.74 1405.40 902.21 950.99 478.02 -~~ 1543.56 873.43 1006.05 857.93 750.04 602.21 1615.79 1415.66 710.65 1276.19 620.31 1337.63 796.08 586.34 948.97 1341.74 558.79 1640.88 2004.84 1125.18 761.47 620.00 404.65 733.65 1043.63 1010.62 1148.63 724.73 1351.05 578.10 2890.11 640.56 454.38 744.40 441.54 598.94 709.18 632.48 1039.74 1405.40 902.21 950.98 478.02 -~~ 1543.56 873.42 1006.05 857.93 750.04 602.20 1615.79 1415.66 710.65 1276.18 620.32 1337.62 796.08 586.34 948.96 1341.73 558.76 1640.88 2004.84 1125.17 761.47 620.02 404.66 733.65 1043.60 1010.63 1148.62 724.74 1351.06 578.10 2890.12 640.53 454.37 744.39 441.53 598.94 709.19 632.48 1039.74 1405.40 902.21 950.98 478.02 -~~ 1543.56 873.42 1006.06 857.92 750.04 602.21 1615.79 1415.66 710.65 1276.18 620.31 1337.62 796.08 586.34 948.96 1341.74 558.74 1640.88 2004.84 1125.19 761.47 619.98 404.66 733.64 1043.54 1010.62 1148.61 724.74 1351.06 578.10 2890.12 640.54 454.36 744.41 441.54 598.94 709.18 632.48 1039.74 1405.40 902.22 950.98 478.02 -~~ 1543.56 873.42 1006.06 857.93 750.04 602.21 1615.79 1415.66 710.65 1276.16 620.32 1337.62 796.09 586.34 948.96 1341.73 558.67 1640.88 2004.84 1125.18 761.47 619.95 404.66 733.65 1043.56 1010.64 1148.61 724.75 1351.06 578.10 2890.11 640.52 454.35 744.41 441.53 598.93 709.17 632.48 1039.74 1405.40 902.23 950.98 478.02 +20Jun2024 0800 1543.58 873.43 1006.08 857.95 750.07 602.38 1615.80 1415.68 710.66 1276.36 620.39 1337.65 796.08 586.48 948.96 1341.75 559.02 1640.90 2004.83 1125.14 761.49 620.22 404.92 733.62 1044.39 1010.78 1148.76 724.73 1351.01 578.12 2890.12 640.82 454.61 744.61 441.54 598.94 709.23 632.46 1039.76 1405.41 902.14 951.00 478.07 +20Jun2024 0900 1543.57 873.43 1006.08 857.94 750.06 602.38 1615.79 1415.67 710.66 1276.36 620.40 1337.64 796.08 586.47 948.96 1341.75 558.96 1640.90 2004.83 1125.17 761.49 620.31 404.87 733.63 1044.42 1010.79 1148.75 724.73 1351.02 578.12 2890.13 640.80 454.61 744.60 441.54 598.94 709.21 632.46 1039.76 1405.41 902.14 951.00 478.06 +20Jun2024 1000 1543.57 873.43 1006.08 857.95 750.06 602.38 1615.79 1415.67 710.65 1276.35 620.41 1337.64 796.08 586.47 948.95 1341.75 558.89 1640.90 2004.84 1125.23 761.49 620.42 404.83 733.63 1044.41 1010.78 1148.75 724.74 1351.02 578.11 2890.12 640.78 454.60 744.58 441.54 598.94 709.22 632.46 1039.76 1405.41 902.14 950.99 478.06 +20Jun2024 1100 1543.58 873.43 1006.08 857.95 750.06 602.38 1615.79 1415.67 710.66 1276.35 620.41 1337.64 796.08 586.47 948.96 1341.75 558.88 1640.90 2004.84 1125.23 761.49 620.45 404.78 733.63 1044.36 1010.79 1148.75 724.75 1351.03 578.11 2890.14 640.77 454.59 744.56 441.53 598.94 709.21 632.46 1039.75 1405.41 902.15 951.01 478.07 +20Jun2024 1200 1543.57 873.43 1006.08 857.95 750.06 602.38 1615.80 1415.67 710.66 1276.34 620.39 1337.64 796.08 586.46 948.96 1341.75 558.84 1640.90 2004.84 1125.22 761.49 620.34 404.77 733.63 1044.34 1010.78 1148.75 724.76 1351.03 578.12 2890.11 640.77 454.58 744.55 441.54 598.94 709.21 632.46 1039.75 1405.42 902.15 951.00 478.06 +20Jun2024 1300 1543.57 873.43 1006.08 857.95 750.06 602.37 1615.80 1415.67 710.66 1276.33 620.40 1337.64 796.08 586.46 948.96 1341.75 558.78 1640.89 2004.84 1125.23 761.48 620.26 404.74 733.63 1044.32 1010.78 1148.73 724.76 1351.04 578.11 2890.15 640.77 454.58 744.54 441.53 598.94 709.21 632.46 1039.76 1405.41 902.16 951.01 478.06 +20Jun2024 1400 1543.58 873.43 1006.07 857.95 750.06 602.33 1615.79 1415.67 710.67 1276.33 620.39 1337.65 796.08 586.46 948.96 1341.75 558.73 1640.89 2004.84 1125.19 761.48 620.13 404.72 733.63 1044.28 1010.76 1148.73 724.75 1351.03 578.11 2890.16 640.77 454.57 744.53 441.54 598.96 709.21 632.47 1039.76 1405.42 902.16 951.00 478.05 +20Jun2024 1500 1543.57 873.43 1006.07 857.94 750.05 602.29 1615.79 1415.67 710.66 1276.32 620.39 1337.64 796.08 586.44 948.96 1341.75 558.82 1640.89 2004.84 1125.17 761.48 619.98 404.68 733.63 1044.21 1010.72 1148.72 724.72 1351.03 578.11 2890.15 640.75 454.52 744.51 441.55 598.95 709.20 632.47 1039.75 1405.42 902.16 951.00 478.05 +20Jun2024 1600 1543.57 873.43 1006.07 857.94 750.05 602.25 1615.79 1415.67 710.67 1276.31 620.38 1337.64 796.08 586.42 948.96 1341.76 558.94 1640.89 2004.84 1125.18 761.48 619.85 404.67 733.63 1044.19 1010.69 1148.71 724.72 1351.03 578.11 2890.16 640.73 454.50 744.50 441.53 598.93 709.20 632.47 1039.75 1405.42 902.17 951.00 478.05 +20Jun2024 1700 1543.57 873.44 1006.07 857.95 750.05 602.23 1615.79 1415.66 710.66 1276.30 620.38 1337.64 796.08 586.41 948.96 1341.75 558.99 1640.88 2004.84 1125.13 761.48 619.73 404.65 733.63 1044.13 1010.66 1148.70 724.70 1351.03 578.12 2890.17 640.71 454.49 744.48 441.53 598.95 709.20 632.47 1039.75 1405.41 902.16 951.00 478.03 +20Jun2024 1800 1543.57 873.44 1006.07 857.94 750.05 602.21 1615.79 1415.66 710.65 1276.29 620.37 1337.63 796.08 586.41 948.96 1341.75 559.04 1640.89 2004.84 1125.15 761.48 619.61 404.65 733.63 1044.07 1010.64 1148.69 724.68 1351.03 578.11 2890.20 640.70 454.49 744.46 441.53 598.95 709.20 632.48 1039.75 1405.42 902.16 950.99 478.03 +20Jun2024 1900 1543.57 873.44 1006.07 857.94 750.05 602.21 1615.79 1415.65 710.66 1276.29 620.36 1337.64 796.08 586.39 948.95 1341.75 559.12 1640.89 2004.85 1125.12 761.48 619.46 404.66 733.63 1044.04 1010.61 1148.68 724.66 1351.04 578.11 2890.16 640.68 454.48 744.44 441.53 598.95 709.19 632.47 1039.75 1405.41 902.17 950.99 478.03 +20Jun2024 2000 1543.57 873.44 1006.07 857.94 750.05 602.21 1615.79 1415.65 710.65 1276.28 620.35 1337.63 796.08 586.40 948.96 1341.74 559.20 1640.89 2004.85 1125.15 761.48 619.65 404.65 733.63 1043.99 1010.60 1148.68 724.64 1351.04 578.11 2890.16 640.68 454.47 744.42 441.53 598.94 709.19 632.47 1039.75 1405.41 902.18 950.99 478.03 +20Jun2024 2100 1543.56 873.44 1006.07 857.94 750.05 602.22 1615.79 1415.66 710.66 1276.27 620.34 1337.63 796.08 586.41 948.96 1341.74 559.26 1640.88 2004.85 1125.19 761.48 619.64 404.66 733.64 1043.96 1010.59 1148.68 724.65 1351.05 578.11 2890.16 640.67 454.46 744.41 441.54 598.94 709.22 632.47 1039.75 1405.41 902.18 950.99 478.04 +20Jun2024 2200 1543.57 873.44 1006.06 857.93 750.05 602.21 1615.79 1415.66 710.66 1276.26 620.33 1337.63 796.08 586.39 948.96 1341.74 559.29 1640.89 2004.85 1125.18 761.48 619.73 404.65 733.64 1043.92 1010.60 1148.67 724.65 1351.05 578.11 2890.15 640.65 454.45 744.39 441.54 598.94 709.19 632.48 1039.75 1405.41 902.19 951.00 478.04 +20Jun2024 2300 1543.56 873.44 1006.07 857.93 750.05 602.20 1615.79 1415.66 710.66 1276.25 620.33 1337.64 796.08 586.37 948.96 1341.74 559.15 1640.88 2004.85 1125.16 761.48 619.86 404.64 733.64 1043.87 1010.60 1148.67 724.67 1351.05 578.11 2890.15 640.64 454.44 744.38 441.53 598.94 709.19 632.48 1039.75 1405.41 902.19 950.99 478.03 +20Jun2024 2400 1543.55 873.44 1006.06 857.93 750.04 602.20 1615.79 1415.66 710.66 1276.24 620.33 1337.64 796.08 586.37 948.96 1341.74 559.03 1640.89 2004.85 1125.18 761.47 619.98 404.65 733.64 1043.83 1010.61 1148.66 724.68 1351.06 578.11 2890.15 640.62 454.43 744.36 441.53 598.94 709.19 632.48 1039.74 1405.41 902.19 950.99 478.03 +21Jun2024 0100 1543.56 873.43 1006.06 857.93 750.04 602.21 1615.79 1415.66 710.66 1276.24 620.30 1337.63 796.08 586.37 948.96 1341.74 559.02 1640.88 2004.85 1125.18 761.47 620.06 404.65 733.64 1043.79 1010.62 1148.65 724.69 1351.06 578.10 2890.15 640.62 454.42 744.38 441.53 598.94 709.18 632.48 1039.74 1405.40 902.19 950.98 478.03 +21Jun2024 0200 1543.56 873.43 1006.06 857.93 750.04 602.21 1615.79 1415.66 710.66 1276.23 620.31 1337.63 796.08 586.36 948.96 1341.74 559.03 1640.88 2004.85 1125.18 761.47 620.11 404.65 733.64 1043.74 1010.61 1148.65 724.70 1351.05 578.11 2890.15 640.60 454.41 744.43 441.54 598.94 709.18 632.48 1039.74 1405.41 902.20 950.99 478.02 +21Jun2024 0300 1543.57 873.43 1006.06 857.93 750.04 602.20 1615.79 1415.66 710.66 1276.21 620.30 1337.63 796.08 586.35 948.96 1341.74 558.95 1640.89 2004.85 1125.18 761.47 620.00 404.66 733.64 1043.71 1010.62 1148.64 724.71 1351.06 578.10 2890.13 640.57 454.40 744.38 441.53 598.94 709.18 632.48 1039.74 1405.40 902.20 950.98 478.03 +21Jun2024 0400 1543.56 873.43 1006.06 857.93 750.04 602.20 1615.79 1415.66 710.65 1276.21 620.32 1337.63 796.08 586.35 948.96 1341.74 558.86 1640.88 2004.84 1125.19 761.47 619.92 404.66 733.64 1043.68 1010.62 1148.63 724.72 1351.05 578.10 2890.13 640.56 454.39 744.38 441.53 598.94 709.18 632.48 1039.74 1405.40 902.21 950.99 478.02 +21Jun2024 0500 1543.56 873.43 1006.05 857.93 750.04 602.21 1615.79 1415.66 710.65 1276.19 620.31 1337.63 796.08 586.34 948.97 1341.74 558.79 1640.88 2004.84 1125.18 761.47 620.00 404.65 733.65 1043.63 1010.62 1148.63 724.73 1351.05 578.10 2890.11 640.56 454.38 744.40 441.54 598.94 709.18 632.48 1039.74 1405.40 902.21 950.98 478.02 +21Jun2024 0600 1543.56 873.42 1006.05 857.93 750.04 602.20 1615.79 1415.66 710.65 1276.18 620.32 1337.62 796.08 586.34 948.96 1341.73 558.76 1640.88 2004.84 1125.17 761.47 620.02 404.66 733.65 1043.60 1010.63 1148.62 724.74 1351.06 578.10 2890.12 640.53 454.37 744.39 441.53 598.94 709.19 632.48 1039.74 1405.40 902.21 950.98 478.02 +21Jun2024 0700 1543.56 873.42 1006.06 857.92 750.04 602.21 1615.79 1415.66 710.65 1276.18 620.31 1337.62 796.08 586.34 948.96 1341.74 558.74 1640.88 2004.84 1125.19 761.47 619.98 404.66 733.64 1043.54 1010.62 1148.61 724.74 1351.06 578.10 2890.12 640.54 454.36 744.41 441.54 598.94 709.18 632.48 1039.74 1405.40 902.22 950.98 478.02 +21Jun2024 0800 1543.56 873.42 1006.06 857.93 750.04 602.21 1615.79 1415.66 710.65 1276.16 620.32 1337.62 796.09 586.34 948.96 1341.73 558.67 1640.88 2004.84 1125.18 761.47 619.95 404.66 733.65 1043.56 1010.64 1148.61 724.75 1351.06 578.10 2890.11 640.52 454.35 744.41 441.53 598.93 709.17 632.48 1039.74 1405.40 902.23 950.98 478.02 diff --git a/tests/swt/output/sequential_test.out b/tests/swt/output/sequential_test.out index 2cf65e4..4ab0389 100644 --- a/tests/swt/output/sequential_test.out +++ b/tests/swt/output/sequential_test.out @@ -1,29 +1,29 @@ Tulsa District US Army Corps of Engineers Keystone Lake Report -DATE Elevation Storage Inflow Outflow Precip -%DT 724.73724.73 724.73 724.73 724.73 -%DT 724.75724.73 724.73 724.73 724.74 -%DT 724.76724.74 724.74 724.74 724.76 -%DT 724.72724.75 724.75 724.75 724.75 -%DT 724.70724.76 724.76 724.76 724.72 -%DT 724.66724.76 724.76 724.76 724.68 -%DT 724.65724.75 724.75 724.75 724.64 -%DT 724.67724.72 724.72 724.72 724.65 -%DT 724.69724.72 724.72 724.72 724.68 -%DT 724.71724.70 724.70 724.70 724.70 -%DT 724.73724.68 724.68 724.68 724.72 -%DT 724.74724.66 724.66 724.66 724.74 -%DT ~~ 724.64 724.64 724.64 724.75 -%DT ~~ 724.65 724.65 724.65 ~~ -%DT ~~ 724.65 724.65 724.65 ~~ -%DT ~~ 724.67 724.67 724.67 ~~ -%DT ~~ 724.68 724.68 724.68 ~~ -%DT ~~ 724.69 724.69 724.69 ~~ -%DT ~~ 724.70 724.70 724.70 ~~ -%DT ~~ 724.71 724.71 724.71 ~~ -%DT ~~ 724.72 724.72 724.72 ~~ -%DT ~~ 724.73 724.73 724.73 ~~ -%DT ~~ 724.74 724.74 724.74 ~~ -%DT ~~ 724.74 724.74 724.74 ~~ -%DT ~~ 724.75 724.75 724.75 ~~ +DATE Elevation Storage Inflow Outflow Precip +~~ 724.73 429926 1659 0 0.000 +~~ 724.73 429926 830 0 0.000 +~~ 724.74 430098 2074 0 0.000 +~~ 724.75 430269 1699 0 0.000 +~~ 724.76 430441 2088 0 0.000 +~~ 724.76 430441 924 200 0.000 +~~ 724.75 430269 3650 6100 0.000 +~~ 724.72 429754 1667 6200 0.000 +~~ 724.72 429754 4579 6200 0.000 +~~ 724.70 429411 2148 6300 0.000 +~~ 724.68 429068 2148 6300 0.000 +~~ 724.66 428725 2174 6300 0.000 +~~ 724.64 428382 1744 6300 0.000 +~~ 724.65 428554 2196 200 0.000 +~~ 724.65 428554 1246 0 0.000 +~~ 724.67 428897 3321 0 0.000 +~~ 724.68 429068 2076 0 0.000 +~~ 724.69 429240 2076 0 0.000 +~~ 724.70 429411 2076 0 0.000 +~~ 724.71 429583 2076 0 0.000 +~~ 724.72 429754 2076 0 0.000 +~~ 724.73 429926 1661 0 0.000 +~~ 724.74 430098 1661 0 0.000 +~~ 724.74 430098 830 0 0.000 +~~ 724.75 430269 2075 0 0.000 diff --git a/tests/swt/testfiles/sequential_test.frm b/tests/swt/testfiles/sequential_test.frm index 6f551b9..b31712b 100644 --- a/tests/swt/testfiles/sequential_test.frm +++ b/tests/swt/testfiles/sequential_test.frm @@ -2,32 +2,32 @@ Tulsa District US Army Corps of Engineers Keystone Lake Report -DATE Elevation Storage Inflow Outflow Precip -%DT %elev %stor %flow_res_in %flow_res_out %precip_inc -%DT %elev %stor %flow_res_in %flow_res_out %precip_inc -%DT %elev %stor %flow_res_in %flow_res_out %precip_inc -%DT %elev %stor %flow_res_in %flow_res_out %precip_inc -%DT %elev %stor %flow_res_in %flow_res_out %precip_inc -%DT %elev %stor %flow_res_in %flow_res_out %precip_inc -%DT %elev %stor %flow_res_in %flow_res_out %precip_inc -%DT %elev %stor %flow_res_in %flow_res_out %precip_inc -%DT %elev %stor %flow_res_in %flow_res_out %precip_inc -%DT %elev %stor %flow_res_in %flow_res_out %precip_inc -%DT %elev %stor %flow_res_in %flow_res_out %precip_inc -%DT %elev %stor %flow_res_in %flow_res_out %precip_inc -%DT %elev %stor %flow_res_in %flow_res_out %precip_inc -%DT %elev %stor %flow_res_in %flow_res_out %precip_inc -%DT %elev %stor %flow_res_in %flow_res_out %precip_inc -%DT %elev %stor %flow_res_in %flow_res_out %precip_inc -%DT %elev %stor %flow_res_in %flow_res_out %precip_inc -%DT %elev %stor %flow_res_in %flow_res_out %precip_inc -%DT %elev %stor %flow_res_in %flow_res_out %precip_inc -%DT %elev %stor %flow_res_in %flow_res_out %precip_inc -%DT %elev %stor %flow_res_in %flow_res_out %precip_inc -%DT %elev %stor %flow_res_in %flow_res_out %precip_inc -%DT %elev %stor %flow_res_in %flow_res_out %precip_inc -%DT %elev %stor %flow_res_in %flow_res_out %precip_inc -%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +DATE Elevation Storage Inflow Outflow Precip +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc +%DT %elev %stor %flow_res_in %flow_res_out %precip_inc #ENDFORM #DEF @@ -90,12 +90,12 @@ for dbpar, dbptyp, dbint, dbdur, dbver in PARAM_TSIDS: dbpar_norm: _value } ) - -# This will end up being the last elev to get looped. -# TODO: Consider creating a sep value for just the date range that should always exist -# DT = Value(elev.datatimes(), -# PICTURE="%d%b%Y %K%M", -# ) + # This will end up being the last elev to get looped. + # TODO: Consider creating a sep value for just the date range that should always exist + print("datatimes", str(_value.values)) + DT = Value(_value.datatimes(), + PICTURE="%d%b%Y %K%M", + ) # ENDDEF From 9ce2770efc68e69341741bb2f80f220b020a59e8 Mon Sep 17 00:00:00 2001 From: "Charles Graham, SWT" Date: Fri, 9 Aug 2024 08:03:01 -0500 Subject: [PATCH 20/21] Convert the batch to a shell script for automation tests --- tests/swt/scripts/run.sh | 23 ++++++++++++++++++++--- tests/test_run_swt.py | 2 +- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/tests/swt/scripts/run.sh b/tests/swt/scripts/run.sh index 1789708..85b7704 100755 --- a/tests/swt/scripts/run.sh +++ b/tests/swt/scripts/run.sh @@ -1,8 +1,25 @@ #!/bin/bash +reportname="$1" +echo "$reportname" + +if [ -z "$1" ]; then + echo "No input provided. Listing files in the 'tests/swt/testfiles' directory:" + for f in tests/swt/testfiles/*.*; do + filename=$(basename "$f") + echo "./run.sh ${filename%.*}" + done + exit 1 +fi + +case "$reportname" in + *.frm) reportname="${reportname%.frm}" ;; + *.out) reportname="${reportname%.out}" ;; +esac + python3 . \ -a https://cwms-data.usace.army.mil/cwms-data \ - -i tests/swt/testfiles/test.frm \ + -i tests/swt/testfiles/"$reportname".frm \ -O SWT \ - -o tests/swt/output/test.txt \ - $@ \ No newline at end of file + -o tests/swt/output/"$reportname".out \ + "$@" diff --git a/tests/test_run_swt.py b/tests/test_run_swt.py index 68cbe41..b34db34 100644 --- a/tests/test_run_swt.py +++ b/tests/test_run_swt.py @@ -46,7 +46,7 @@ def test_repgen(capsys, reportname: str): cmd = ["cmd.exe", "/c", script] else: script = os.path.join(SCRIPT_DIR, "run.sh") - cmd = [script] + cmd = [script, reportname] # Run the command and capture the output result = subprocess.run(cmd, capture_output=True, text=True) From b1ec50e6551f39c45274eddf390a0e1401e9daa7 Mon Sep 17 00:00:00 2001 From: "Charles Graham, SWT" Date: Fri, 9 Aug 2024 08:08:08 -0500 Subject: [PATCH 21/21] Fixed report name in pytest for ci/cd --- tests/swt/output/bulk_test.out | 50 +++++++++++++++++----------------- tests/test_run_swt.py | 5 ++-- 2 files changed, 28 insertions(+), 27 deletions(-) diff --git a/tests/swt/output/bulk_test.out b/tests/swt/output/bulk_test.out index 7ae2bd0..4a4e97a 100644 --- a/tests/swt/output/bulk_test.out +++ b/tests/swt/output/bulk_test.out @@ -2,28 +2,28 @@ US Army Corps of Engineers Elevation Fetch Example 8am to 8am DATE ALTU ARBU ARCA BIGH BIRC BROK CANT CHEN COPA COUN DENI ELDR ELKC EUFA FALL FCOB FGIB FOSS FSUP GSAL HEYB HUDS HUGO HULA JOHN KAWL KEMP KEYS MARI MCGE MERE OOLO PATM PENS PINE SARD SKIA TENK THUN TOMS TORO WAUR WIST -20Jun2024 0800 1543.58 873.43 1006.08 857.95 750.07 602.38 1615.80 1415.68 710.66 1276.36 620.39 1337.65 796.08 586.48 948.96 1341.75 559.02 1640.90 2004.83 1125.14 761.49 620.22 404.92 733.62 1044.39 1010.78 1148.76 724.73 1351.01 578.12 2890.12 640.82 454.61 744.61 441.54 598.94 709.23 632.46 1039.76 1405.41 902.14 951.00 478.07 -20Jun2024 0900 1543.57 873.43 1006.08 857.94 750.06 602.38 1615.79 1415.67 710.66 1276.36 620.40 1337.64 796.08 586.47 948.96 1341.75 558.96 1640.90 2004.83 1125.17 761.49 620.31 404.87 733.63 1044.42 1010.79 1148.75 724.73 1351.02 578.12 2890.13 640.80 454.61 744.60 441.54 598.94 709.21 632.46 1039.76 1405.41 902.14 951.00 478.06 -20Jun2024 1000 1543.57 873.43 1006.08 857.95 750.06 602.38 1615.79 1415.67 710.65 1276.35 620.41 1337.64 796.08 586.47 948.95 1341.75 558.89 1640.90 2004.84 1125.23 761.49 620.42 404.83 733.63 1044.41 1010.78 1148.75 724.74 1351.02 578.11 2890.12 640.78 454.60 744.58 441.54 598.94 709.22 632.46 1039.76 1405.41 902.14 950.99 478.06 -20Jun2024 1100 1543.58 873.43 1006.08 857.95 750.06 602.38 1615.79 1415.67 710.66 1276.35 620.41 1337.64 796.08 586.47 948.96 1341.75 558.88 1640.90 2004.84 1125.23 761.49 620.45 404.78 733.63 1044.36 1010.79 1148.75 724.75 1351.03 578.11 2890.14 640.77 454.59 744.56 441.53 598.94 709.21 632.46 1039.75 1405.41 902.15 951.01 478.07 -20Jun2024 1200 1543.57 873.43 1006.08 857.95 750.06 602.38 1615.80 1415.67 710.66 1276.34 620.39 1337.64 796.08 586.46 948.96 1341.75 558.84 1640.90 2004.84 1125.22 761.49 620.34 404.77 733.63 1044.34 1010.78 1148.75 724.76 1351.03 578.12 2890.11 640.77 454.58 744.55 441.54 598.94 709.21 632.46 1039.75 1405.42 902.15 951.00 478.06 -20Jun2024 1300 1543.57 873.43 1006.08 857.95 750.06 602.37 1615.80 1415.67 710.66 1276.33 620.40 1337.64 796.08 586.46 948.96 1341.75 558.78 1640.89 2004.84 1125.23 761.48 620.26 404.74 733.63 1044.32 1010.78 1148.73 724.76 1351.04 578.11 2890.15 640.77 454.58 744.54 441.53 598.94 709.21 632.46 1039.76 1405.41 902.16 951.01 478.06 -20Jun2024 1400 1543.58 873.43 1006.07 857.95 750.06 602.33 1615.79 1415.67 710.67 1276.33 620.39 1337.65 796.08 586.46 948.96 1341.75 558.73 1640.89 2004.84 1125.19 761.48 620.13 404.72 733.63 1044.28 1010.76 1148.73 724.75 1351.03 578.11 2890.16 640.77 454.57 744.53 441.54 598.96 709.21 632.47 1039.76 1405.42 902.16 951.00 478.05 -20Jun2024 1500 1543.57 873.43 1006.07 857.94 750.05 602.29 1615.79 1415.67 710.66 1276.32 620.39 1337.64 796.08 586.44 948.96 1341.75 558.82 1640.89 2004.84 1125.17 761.48 619.98 404.68 733.63 1044.21 1010.72 1148.72 724.72 1351.03 578.11 2890.15 640.75 454.52 744.51 441.55 598.95 709.20 632.47 1039.75 1405.42 902.16 951.00 478.05 -20Jun2024 1600 1543.57 873.43 1006.07 857.94 750.05 602.25 1615.79 1415.67 710.67 1276.31 620.38 1337.64 796.08 586.42 948.96 1341.76 558.94 1640.89 2004.84 1125.18 761.48 619.85 404.67 733.63 1044.19 1010.69 1148.71 724.72 1351.03 578.11 2890.16 640.73 454.50 744.50 441.53 598.93 709.20 632.47 1039.75 1405.42 902.17 951.00 478.05 -20Jun2024 1700 1543.57 873.44 1006.07 857.95 750.05 602.23 1615.79 1415.66 710.66 1276.30 620.38 1337.64 796.08 586.41 948.96 1341.75 558.99 1640.88 2004.84 1125.13 761.48 619.73 404.65 733.63 1044.13 1010.66 1148.70 724.70 1351.03 578.12 2890.17 640.71 454.49 744.48 441.53 598.95 709.20 632.47 1039.75 1405.41 902.16 951.00 478.03 -20Jun2024 1800 1543.57 873.44 1006.07 857.94 750.05 602.21 1615.79 1415.66 710.65 1276.29 620.37 1337.63 796.08 586.41 948.96 1341.75 559.04 1640.89 2004.84 1125.15 761.48 619.61 404.65 733.63 1044.07 1010.64 1148.69 724.68 1351.03 578.11 2890.20 640.70 454.49 744.46 441.53 598.95 709.20 632.48 1039.75 1405.42 902.16 950.99 478.03 -20Jun2024 1900 1543.57 873.44 1006.07 857.94 750.05 602.21 1615.79 1415.65 710.66 1276.29 620.36 1337.64 796.08 586.39 948.95 1341.75 559.12 1640.89 2004.85 1125.12 761.48 619.46 404.66 733.63 1044.04 1010.61 1148.68 724.66 1351.04 578.11 2890.16 640.68 454.48 744.44 441.53 598.95 709.19 632.47 1039.75 1405.41 902.17 950.99 478.03 -20Jun2024 2000 1543.57 873.44 1006.07 857.94 750.05 602.21 1615.79 1415.65 710.65 1276.28 620.35 1337.63 796.08 586.40 948.96 1341.74 559.20 1640.89 2004.85 1125.15 761.48 619.65 404.65 733.63 1043.99 1010.60 1148.68 724.64 1351.04 578.11 2890.16 640.68 454.47 744.42 441.53 598.94 709.19 632.47 1039.75 1405.41 902.18 950.99 478.03 -20Jun2024 2100 1543.56 873.44 1006.07 857.94 750.05 602.22 1615.79 1415.66 710.66 1276.27 620.34 1337.63 796.08 586.41 948.96 1341.74 559.26 1640.88 2004.85 1125.19 761.48 619.64 404.66 733.64 1043.96 1010.59 1148.68 724.65 1351.05 578.11 2890.16 640.67 454.46 744.41 441.54 598.94 709.22 632.47 1039.75 1405.41 902.18 950.99 478.04 -20Jun2024 2200 1543.57 873.44 1006.06 857.93 750.05 602.21 1615.79 1415.66 710.66 1276.26 620.33 1337.63 796.08 586.39 948.96 1341.74 559.29 1640.89 2004.85 1125.18 761.48 619.73 404.65 733.64 1043.92 1010.60 1148.67 724.65 1351.05 578.11 2890.15 640.65 454.45 744.39 441.54 598.94 709.19 632.48 1039.75 1405.41 902.19 951.00 478.04 -20Jun2024 2300 1543.56 873.44 1006.07 857.93 750.05 602.20 1615.79 1415.66 710.66 1276.25 620.33 1337.64 796.08 586.37 948.96 1341.74 559.15 1640.88 2004.85 1125.16 761.48 619.86 404.64 733.64 1043.87 1010.60 1148.67 724.67 1351.05 578.11 2890.15 640.64 454.44 744.38 441.53 598.94 709.19 632.48 1039.75 1405.41 902.19 950.99 478.03 -20Jun2024 2400 1543.55 873.44 1006.06 857.93 750.04 602.20 1615.79 1415.66 710.66 1276.24 620.33 1337.64 796.08 586.37 948.96 1341.74 559.03 1640.89 2004.85 1125.18 761.47 619.98 404.65 733.64 1043.83 1010.61 1148.66 724.68 1351.06 578.11 2890.15 640.62 454.43 744.36 441.53 598.94 709.19 632.48 1039.74 1405.41 902.19 950.99 478.03 -21Jun2024 0100 1543.56 873.43 1006.06 857.93 750.04 602.21 1615.79 1415.66 710.66 1276.24 620.30 1337.63 796.08 586.37 948.96 1341.74 559.02 1640.88 2004.85 1125.18 761.47 620.06 404.65 733.64 1043.79 1010.62 1148.65 724.69 1351.06 578.10 2890.15 640.62 454.42 744.38 441.53 598.94 709.18 632.48 1039.74 1405.40 902.19 950.98 478.03 -21Jun2024 0200 1543.56 873.43 1006.06 857.93 750.04 602.21 1615.79 1415.66 710.66 1276.23 620.31 1337.63 796.08 586.36 948.96 1341.74 559.03 1640.88 2004.85 1125.18 761.47 620.11 404.65 733.64 1043.74 1010.61 1148.65 724.70 1351.05 578.11 2890.15 640.60 454.41 744.43 441.54 598.94 709.18 632.48 1039.74 1405.41 902.20 950.99 478.02 -21Jun2024 0300 1543.57 873.43 1006.06 857.93 750.04 602.20 1615.79 1415.66 710.66 1276.21 620.30 1337.63 796.08 586.35 948.96 1341.74 558.95 1640.89 2004.85 1125.18 761.47 620.00 404.66 733.64 1043.71 1010.62 1148.64 724.71 1351.06 578.10 2890.13 640.57 454.40 744.38 441.53 598.94 709.18 632.48 1039.74 1405.40 902.20 950.98 478.03 -21Jun2024 0400 1543.56 873.43 1006.06 857.93 750.04 602.20 1615.79 1415.66 710.65 1276.21 620.32 1337.63 796.08 586.35 948.96 1341.74 558.86 1640.88 2004.84 1125.19 761.47 619.92 404.66 733.64 1043.68 1010.62 1148.63 724.72 1351.05 578.10 2890.13 640.56 454.39 744.38 441.53 598.94 709.18 632.48 1039.74 1405.40 902.21 950.99 478.02 -21Jun2024 0500 1543.56 873.43 1006.05 857.93 750.04 602.21 1615.79 1415.66 710.65 1276.19 620.31 1337.63 796.08 586.34 948.97 1341.74 558.79 1640.88 2004.84 1125.18 761.47 620.00 404.65 733.65 1043.63 1010.62 1148.63 724.73 1351.05 578.10 2890.11 640.56 454.38 744.40 441.54 598.94 709.18 632.48 1039.74 1405.40 902.21 950.98 478.02 -21Jun2024 0600 1543.56 873.42 1006.05 857.93 750.04 602.20 1615.79 1415.66 710.65 1276.18 620.32 1337.62 796.08 586.34 948.96 1341.73 558.76 1640.88 2004.84 1125.17 761.47 620.02 404.66 733.65 1043.60 1010.63 1148.62 724.74 1351.06 578.10 2890.12 640.53 454.37 744.39 441.53 598.94 709.19 632.48 1039.74 1405.40 902.21 950.98 478.02 -21Jun2024 0700 1543.56 873.42 1006.06 857.92 750.04 602.21 1615.79 1415.66 710.65 1276.18 620.31 1337.62 796.08 586.34 948.96 1341.74 558.74 1640.88 2004.84 1125.19 761.47 619.98 404.66 733.64 1043.54 1010.62 1148.61 724.74 1351.06 578.10 2890.12 640.54 454.36 744.41 441.54 598.94 709.18 632.48 1039.74 1405.40 902.22 950.98 478.02 -21Jun2024 0800 1543.56 873.42 1006.06 857.93 750.04 602.21 1615.79 1415.66 710.65 1276.16 620.32 1337.62 796.09 586.34 948.96 1341.73 558.67 1640.88 2004.84 1125.18 761.47 619.95 404.66 733.65 1043.56 1010.64 1148.61 724.75 1351.06 578.10 2890.11 640.52 454.35 744.41 441.53 598.93 709.17 632.48 1039.74 1405.40 902.23 950.98 478.02 +~~ 1543.58 873.43 1006.08 857.95 750.07 602.38 1615.80 1415.68 710.66 1276.36 620.39 1337.65 796.08 586.48 948.96 1341.75 559.02 1640.90 2004.83 1125.14 761.49 620.22 404.92 733.62 1044.39 1010.78 1148.76 724.73 1351.01 578.12 2890.12 640.82 454.61 744.61 441.54 598.94 709.23 632.46 1039.76 1405.41 902.14 951.00 478.07 +~~ 1543.57 873.43 1006.08 857.94 750.06 602.38 1615.79 1415.67 710.66 1276.36 620.40 1337.64 796.08 586.47 948.96 1341.75 558.96 1640.90 2004.83 1125.17 761.49 620.31 404.87 733.63 1044.42 1010.79 1148.75 724.73 1351.02 578.12 2890.13 640.80 454.61 744.60 441.54 598.94 709.21 632.46 1039.76 1405.41 902.14 951.00 478.06 +~~ 1543.57 873.43 1006.08 857.95 750.06 602.38 1615.79 1415.67 710.65 1276.35 620.41 1337.64 796.08 586.47 948.95 1341.75 558.89 1640.90 2004.84 1125.23 761.49 620.42 404.83 733.63 1044.41 1010.78 1148.75 724.74 1351.02 578.11 2890.12 640.78 454.60 744.58 441.54 598.94 709.22 632.46 1039.76 1405.41 902.14 950.99 478.06 +~~ 1543.58 873.43 1006.08 857.95 750.06 602.38 1615.79 1415.67 710.66 1276.35 620.41 1337.64 796.08 586.47 948.96 1341.75 558.88 1640.90 2004.84 1125.23 761.49 620.45 404.78 733.63 1044.36 1010.79 1148.75 724.75 1351.03 578.11 2890.14 640.77 454.59 744.56 441.53 598.94 709.21 632.46 1039.75 1405.41 902.15 951.01 478.07 +~~ 1543.57 873.43 1006.08 857.95 750.06 602.38 1615.80 1415.67 710.66 1276.34 620.39 1337.64 796.08 586.46 948.96 1341.75 558.84 1640.90 2004.84 1125.22 761.49 620.34 404.77 733.63 1044.34 1010.78 1148.75 724.76 1351.03 578.12 2890.11 640.77 454.58 744.55 441.54 598.94 709.21 632.46 1039.75 1405.42 902.15 951.00 478.06 +~~ 1543.57 873.43 1006.08 857.95 750.06 602.37 1615.80 1415.67 710.66 1276.33 620.40 1337.64 796.08 586.46 948.96 1341.75 558.78 1640.89 2004.84 1125.23 761.48 620.26 404.74 733.63 1044.32 1010.78 1148.73 724.76 1351.04 578.11 2890.15 640.77 454.58 744.54 441.53 598.94 709.21 632.46 1039.76 1405.41 902.16 951.01 478.06 +~~ 1543.58 873.43 1006.07 857.95 750.06 602.33 1615.79 1415.67 710.67 1276.33 620.39 1337.65 796.08 586.46 948.96 1341.75 558.73 1640.89 2004.84 1125.19 761.48 620.13 404.72 733.63 1044.28 1010.76 1148.73 724.75 1351.03 578.11 2890.16 640.77 454.57 744.53 441.54 598.96 709.21 632.47 1039.76 1405.42 902.16 951.00 478.05 +~~ 1543.57 873.43 1006.07 857.94 750.05 602.29 1615.79 1415.67 710.66 1276.32 620.39 1337.64 796.08 586.44 948.96 1341.75 558.82 1640.89 2004.84 1125.17 761.48 619.98 404.68 733.63 1044.21 1010.72 1148.72 724.72 1351.03 578.11 2890.15 640.75 454.52 744.51 441.55 598.95 709.20 632.47 1039.75 1405.42 902.16 951.00 478.05 +~~ 1543.57 873.43 1006.07 857.94 750.05 602.25 1615.79 1415.67 710.67 1276.31 620.38 1337.64 796.08 586.42 948.96 1341.76 558.94 1640.89 2004.84 1125.18 761.48 619.85 404.67 733.63 1044.19 1010.69 1148.71 724.72 1351.03 578.11 2890.16 640.73 454.50 744.50 441.53 598.93 709.20 632.47 1039.75 1405.42 902.17 951.00 478.05 +~~ 1543.57 873.44 1006.07 857.95 750.05 602.23 1615.79 1415.66 710.66 1276.30 620.38 1337.64 796.08 586.41 948.96 1341.75 558.99 1640.88 2004.84 1125.13 761.48 619.73 404.65 733.63 1044.13 1010.66 1148.70 724.70 1351.03 578.12 2890.17 640.71 454.49 744.48 441.53 598.95 709.20 632.47 1039.75 1405.41 902.16 951.00 478.03 +~~ 1543.57 873.44 1006.07 857.94 750.05 602.21 1615.79 1415.66 710.65 1276.29 620.37 1337.63 796.08 586.41 948.96 1341.75 559.04 1640.89 2004.84 1125.15 761.48 619.61 404.65 733.63 1044.07 1010.64 1148.69 724.68 1351.03 578.11 2890.20 640.70 454.49 744.46 441.53 598.95 709.20 632.48 1039.75 1405.42 902.16 950.99 478.03 +~~ 1543.57 873.44 1006.07 857.94 750.05 602.21 1615.79 1415.65 710.66 1276.29 620.36 1337.64 796.08 586.39 948.95 1341.75 559.12 1640.89 2004.85 1125.12 761.48 619.46 404.66 733.63 1044.04 1010.61 1148.68 724.66 1351.04 578.11 2890.16 640.68 454.48 744.44 441.53 598.95 709.19 632.47 1039.75 1405.41 902.17 950.99 478.03 +~~ 1543.57 873.44 1006.07 857.94 750.05 602.21 1615.79 1415.65 710.65 1276.28 620.35 1337.63 796.08 586.40 948.96 1341.74 559.20 1640.89 2004.85 1125.15 761.48 619.65 404.65 733.63 1043.99 1010.60 1148.68 724.64 1351.04 578.11 2890.16 640.68 454.47 744.42 441.53 598.94 709.19 632.47 1039.75 1405.41 902.18 950.99 478.03 +~~ 1543.56 873.44 1006.07 857.94 750.05 602.22 1615.79 1415.66 710.66 1276.27 620.34 1337.63 796.08 586.41 948.96 1341.74 559.26 1640.88 2004.85 1125.19 761.48 619.64 404.66 733.64 1043.96 1010.59 1148.68 724.65 1351.05 578.11 2890.16 640.67 454.46 744.41 441.54 598.94 709.22 632.47 1039.75 1405.41 902.18 950.99 478.04 +~~ 1543.57 873.44 1006.06 857.93 750.05 602.21 1615.79 1415.66 710.66 1276.26 620.33 1337.63 796.08 586.39 948.96 1341.74 559.29 1640.89 2004.85 1125.18 761.48 619.73 404.65 733.64 1043.92 1010.60 1148.67 724.65 1351.05 578.11 2890.15 640.65 454.45 744.39 441.54 598.94 709.19 632.48 1039.75 1405.41 902.19 951.00 478.04 +~~ 1543.56 873.44 1006.07 857.93 750.05 602.20 1615.79 1415.66 710.66 1276.25 620.33 1337.64 796.08 586.37 948.96 1341.74 559.15 1640.88 2004.85 1125.16 761.48 619.86 404.64 733.64 1043.87 1010.60 1148.67 724.67 1351.05 578.11 2890.15 640.64 454.44 744.38 441.53 598.94 709.19 632.48 1039.75 1405.41 902.19 950.99 478.03 +~~ 1543.55 873.44 1006.06 857.93 750.04 602.20 1615.79 1415.66 710.66 1276.24 620.33 1337.64 796.08 586.37 948.96 1341.74 559.03 1640.89 2004.85 1125.18 761.47 619.98 404.65 733.64 1043.83 1010.61 1148.66 724.68 1351.06 578.11 2890.15 640.62 454.43 744.36 441.53 598.94 709.19 632.48 1039.74 1405.41 902.19 950.99 478.03 +~~ 1543.56 873.43 1006.06 857.93 750.04 602.21 1615.79 1415.66 710.66 1276.24 620.30 1337.63 796.08 586.37 948.96 1341.74 559.02 1640.88 2004.85 1125.18 761.47 620.06 404.65 733.64 1043.79 1010.62 1148.65 724.69 1351.06 578.10 2890.15 640.62 454.42 744.38 441.53 598.94 709.18 632.48 1039.74 1405.40 902.19 950.98 478.03 +~~ 1543.56 873.43 1006.06 857.93 750.04 602.21 1615.79 1415.66 710.66 1276.23 620.31 1337.63 796.08 586.36 948.96 1341.74 559.03 1640.88 2004.85 1125.18 761.47 620.11 404.65 733.64 1043.74 1010.61 1148.65 724.70 1351.05 578.11 2890.15 640.60 454.41 744.43 441.54 598.94 709.18 632.48 1039.74 1405.41 902.20 950.99 478.02 +~~ 1543.57 873.43 1006.06 857.93 750.04 602.20 1615.79 1415.66 710.66 1276.21 620.30 1337.63 796.08 586.35 948.96 1341.74 558.95 1640.89 2004.85 1125.18 761.47 620.00 404.66 733.64 1043.71 1010.62 1148.64 724.71 1351.06 578.10 2890.13 640.57 454.40 744.38 441.53 598.94 709.18 632.48 1039.74 1405.40 902.20 950.98 478.03 +~~ 1543.56 873.43 1006.06 857.93 750.04 602.20 1615.79 1415.66 710.65 1276.21 620.32 1337.63 796.08 586.35 948.96 1341.74 558.86 1640.88 2004.84 1125.19 761.47 619.92 404.66 733.64 1043.68 1010.62 1148.63 724.72 1351.05 578.10 2890.13 640.56 454.39 744.38 441.53 598.94 709.18 632.48 1039.74 1405.40 902.21 950.99 478.02 +~~ 1543.56 873.43 1006.05 857.93 750.04 602.21 1615.79 1415.66 710.65 1276.19 620.31 1337.63 796.08 586.34 948.97 1341.74 558.79 1640.88 2004.84 1125.18 761.47 620.00 404.65 733.65 1043.63 1010.62 1148.63 724.73 1351.05 578.10 2890.11 640.56 454.38 744.40 441.54 598.94 709.18 632.48 1039.74 1405.40 902.21 950.98 478.02 +~~ 1543.56 873.42 1006.05 857.93 750.04 602.20 1615.79 1415.66 710.65 1276.18 620.32 1337.62 796.08 586.34 948.96 1341.73 558.76 1640.88 2004.84 1125.17 761.47 620.02 404.66 733.65 1043.60 1010.63 1148.62 724.74 1351.06 578.10 2890.12 640.53 454.37 744.39 441.53 598.94 709.19 632.48 1039.74 1405.40 902.21 950.98 478.02 +~~ 1543.56 873.42 1006.06 857.92 750.04 602.21 1615.79 1415.66 710.65 1276.18 620.31 1337.62 796.08 586.34 948.96 1341.74 558.74 1640.88 2004.84 1125.19 761.47 619.98 404.66 733.64 1043.54 1010.62 1148.61 724.74 1351.06 578.10 2890.12 640.54 454.36 744.41 441.54 598.94 709.18 632.48 1039.74 1405.40 902.22 950.98 478.02 +~~ 1543.56 873.42 1006.06 857.93 750.04 602.21 1615.79 1415.66 710.65 1276.16 620.32 1337.62 796.09 586.34 948.96 1341.73 558.67 1640.88 2004.84 1125.18 761.47 619.95 404.66 733.65 1043.56 1010.64 1148.61 724.75 1351.06 578.10 2890.11 640.52 454.35 744.41 441.53 598.93 709.17 632.48 1039.74 1405.40 902.23 950.98 478.02 diff --git a/tests/test_run_swt.py b/tests/test_run_swt.py index b34db34..f46d74c 100644 --- a/tests/test_run_swt.py +++ b/tests/test_run_swt.py @@ -29,7 +29,8 @@ @pytest.mark.parametrize( "reportname", [ - ("bulk_test.frm,sequential_test.frm"), + ("bulk_test.frm"), + ("sequential_test.frm"), ], ) def test_repgen(capsys, reportname: str): @@ -46,7 +47,7 @@ def test_repgen(capsys, reportname: str): cmd = ["cmd.exe", "/c", script] else: script = os.path.join(SCRIPT_DIR, "run.sh") - cmd = [script, reportname] + cmd = [script, reportname, '-p'] # Run the command and capture the output result = subprocess.run(cmd, capture_output=True, text=True)