000100 IDENTIFICATION DIVISION. OPTB 000200 PROGRAM ID. OPTB 000300 OPTB. OPTB 000400 AUTHOR. OPTB 000500 MARINA JANET ALVAREZ ( MODIFIED BY STEVE RUBIN). OPTB 000600 DATE COMPILED. OPTB 000700 ENVIRONMENT DIVISION. OPTB 000800 CONFIGURATION SECTION. OPTB 000900* SOURCE COMPUTER. IBM 3090 WITH DEBUGGING MODE. OPTB 001000 INPUT OUTPUT SECTION. OPTB 001100 FILE CONTROL. OPTB 001200 SELECT SAS FILE ASSIGN TO UT S SASB. OPTB 001300 SELECT PCS FILE ASSIGN TO UT S PCS. OPTB 001400 SELECT PCS GRP EST FILE ASSIGN TO UT S PGRPEST. OPTB 001500 SELECT LIMITS FILE ASSIGN TO UT S PARM. OPTB 001600 SELECT SIC FILE ASSIGN TO UT S SIC. OPTB 001700 SELECT BASIN FILE ASSIGN TO UT S BASIN. OPTB 001800 SELECT STBC FILE ASSIGN TO UT S FT60F001. OPTB 001900 SELECT PARM GROUP FILE ASSIGN TO UT S PARMGRP. OPTB 002000 SELECT DATE FILE ASSIGN TO UT S DATES. OPTB 002100 SELECT REPORT FILE ASSIGN TO UT S REPORTB. OPTB 002200 SELECT GRAPH FILE ASSIGN TO UT S GRAPH. OPTB 002300 SELECT CODE FILE ASSIGN TO UT S CODE. OPTB 002400 SELECT SORT FILE ASSIGN TO UT S SORTWK01. OPTB 002500 SELECT SORT PRINT FILE ASSIGN TO UT S SORTWK02. OPTB 002600 SELECT SORT PARM FILE ASSIGN TO UT S SORTWK03. OPTB 002700 SELECT TITLE FILE ASSIGN TO UT S TITLES. OPTB 002800************************************************************* OPTB 002900* THIS PROGRAM IS A SUBPROGRAM TO PCS. MAIN. AN EFFLUENT * OPTB 003000* DISCHARGE REPORT OF QUANITITY DATA WILL BE PRODUCED FROM * OPTB 003100* IT. THE USER MAY REQUEST ONE REPORT FROM A CHOICE OF * OPTB 003200* SEVENTEEN FROM THE FOLLOWING LIST: * OPTB 003300* 1. HYDROLOGICAL LISTING BY FACILITY * OPTB 003400* 2. HYDROLOGICAL LISTING BY OUTFALL * OPTB 003500* 3. HYDROLOGICAL LISTING BY BASIN * OPTB 003600* 4. HYDROLOGICAL LISTING BY STATE * OPTB 003700* 5. HYDROLOGICAL LISTING BY COUNTY * OPTB 003800* 6. HYDROLOGICAL LISTING BY CITY * OPTB 003900* 7. GEOGRAPHICAL LISTING BY FACILITY * OPTB 004000* 8. GEOGRAPHICAL LISTING BY OUTFALL * OPTB 004100* 9. GEOGRAPHICAL LISTING BY STATE * OPTB 004200* 10. GEOGRAPHICAL LISTING BY COUNTY * OPTB 004300* 11. GEOGRAPHICAL LISTING BY CITY * OPTB 004400* 12. LISTING FOR ENTIRE REPORT * OPTB 004500* 13. WORST CASE REPORT * OPTB 004600* 14. FACILITY LOCATION REPORT * OPTB 004700* 15. SIC2 REPORT * OPTB 004800* 16. PARAMETER REPORT * OPTB 004900* 17. SAS DATA * OPTB 005000* * OPTB 005100* THE USER MAY ADD A USER DEFINED HEADING THROUGH A 20 * OPTB 005200* CARD TO GIVE MORE MEANING TO THE REPORT. ( NOTE: FOR MORE * OPTB 005300* DETAILS ON THIS CONSULT THE PCS EFFLUENT DATA STATISTICS * OPTB 005400* USER'S GUIDE). OPTB 005500* FOR EACH INDIVIDUAL REPORT, A UNIQUE SORT OF THE PCS * OPTB 005600* FILE MUST BE PERFORMED BEFORE ANY DATA IS PROCESSED. * OPTB 005700* EACH SORT WILL MAINTAIN THE DATA IN THE PROPER ORDER FOR * OPTB 005800* THE LISTING AND FOR THE NECESSARY CONTROL BREAKS. * OPTB 005900************************************************************* OPTB 006000 DATA DIVISION. OPTB 006100 FILE SECTION. OPTB 006200 FD TITLE FILE OPTB 006300 BLOCK CONTAINS 0 CHARACTERS OPTB 006400* RECORD CONTAINS 74 CHARACTERS OPTB 006500 LABEL RECORDS ARE STANDARD. OPTB 006600* OPTB 006700 01 TITLE RECORD. OPTB 006800 05 FILLER PIC X( 74). OPTB 006900 OPTB 007000 FD PCS FILE OPTB 007100 BLOCK CONTAINS 0 CHARACTERS OPTB 007200* RECORD CONTAINS 597 CHARACTERS OPTB 007300 LABEL RECORDS ARE STANDARD. OPTB 007400* OPTB 007500 01 PCS RECORD. OPTB 007600 05 FACILITY INFO. OPTB 007700 10 NPID PIC X( 9). OPTB 007800 10 STATE PIC XX. OPTB 007900 10 IACC PIC X. OPTB 008000 10 NAME PIC X( 30). OPTB 008100 10 MADI PIC X. OPTB 008200 10 SIC2 PIC X( 4). OPTB 008300 10 CYNM PIC X( 20). OPTB 008400 10 CNTN PIC X( 20). OPTB 008500 10 TYPO PIC XXX. OPTB 008600 10 SUBR PIC XX. OPTB 008700 10 CNTY PIC XXX. OPTB 008800 10 FFID PIC X( 12). OPTB 008900 10 CSDN PIC X( 12). OPTB 009000 10 BAS. OPTB 009100 15 BAS4 PIC X( 4). OPTB 009200 15 RSEG PIC XX. OPTB 009300 10 FHBC PIC X( 8). OPTB 009400 10 FSEG PIC X( 4). OPTB 009500 10 CITY PIC X( 5). OPTB 009600* 10 RWAT PIC X( 28). OPTB 009700 10 RWAT. OPTB 009800 15 RWAT GW PIC X( 2). OPTB 009900 15 PIC X( 26). OPTB 010000 10 FILLER PIC X( 7). OPTB 010100 10 FLAT. OPTB 010200 15 FLAT NUM PIC 9( 7). OPTB 010300 15 FLAT DIRECTION PIC X. OPTB 010400 10 FLON. OPTB 010500 15 FLON NUM PIC 9( 8). OPTB 010600 15 FLON DIRECTION PIC X. OPTB 010700 10 FLLC PIC X. OPTB 010800 10 ATNY PIC XXX. OPTB 010900 10 ENGI PIC XXX. OPTB 011000 05 PIPE INFO. OPTB 011100 10 DSDG. OPTB 011200 15 DSCH PIC X( 3). OPTB 011300 15 FILLER PIC X. OPTB 011400 10 NRPU PIC XXX. OPTB 011500 10 PLAT. OPTB 011600 15 PLAT NUM PIC X( 7). OPTB 011700 15 PLAT DIRECTION PIC X. OPTB 011800 10 PLON. OPTB 011900 15 PLON NUM PIC X( 8). OPTB 012000 15 PLON DIRECTION PIC X. OPTB 012100 10 PLLC PIC X. OPTB 012200 10 PLRD PIC X. OPTB 012300* 10 PIPE PIC X( 30). OPTB 012400 10 LNTP PIC X. OPTB 012500 05 PCS PARM INFO. OPTB 012600 10 PARM PIC X( 5). OPTB 012700 88 FLOW PARAMETER VALUE ' 00056' ' 00058' ' 50050' OPTB 012800 ' 74060' ' 74076' ' FLOW'. OPTB 012900 88 CHLORINE VALUE ' 00183' ' 00208' ' 00370' OPTB 013000 ' 50058' ' 50059' ' 50060' OPTB 013100 ' 50064' ' 50066' ' 81400' OPTB 013200 ' 82605' ' 85790'. OPTB 013300 10 MLOC PIC X. OPTB 013400 10 SEAN PIC X. OPTB 013500 10 GRP LQSC. OPTB 013600 15 MODN PIC X. OPTB 013700 15 LIPQ PIC X. OPTB 013800 10 ALLS PIC X( 12). OPTB 013900 10 LCMX PIC +. 999999E+ 99. OPTB 014000 10 LCAV PIC +. 999999E+ 99. OPTB 014100 10 LCMN PIC +. 999999E+ 99. OPTB 014200 10 LQMX PIC +. 999999E+ 99. OPTB 014300 10 LQAV PIC +. 999999E+ 99. OPTB 014400 10 FILLER PIC X( 8). OPTB 014500 10 LCSC PIC 99. OPTB 014600 10 LCSC REDEFINED REDEFINES LCSC PIC XX. OPTB 014700 10 FILLER PIC X( 16). OPTB 014800 10 LQSC PIC 99. OPTB 014900 10 LQSC REDEFINED REDEFINES LQSC PIC XX. OPTB 015000 10 ELSD PIC X( 6). OPTB 015100 10 ELED PIC X( 6). OPTB 015200 10 STAT PIC X( 5). OPTB 015300 10 FRAN PIC X( 5). OPTB 015400 10 SAMP PIC XX. OPTB 015500 10 COLS PIC XXX. OPTB 015600 10 STBA PIC X. OPTB 015700 10 CONP PIC X. OPTB 015800 10 DMR1 PIC X. OPTB 015900 10 DMR2 PIC X( 6). OPTB 016000 10 DMR3 PIC X( 6). OPTB 016100 05 PCS DMR INFO. OPTB 016200 10 MVDT. OPTB 016300 15 M YRMNTH. OPTB 016400 20 M YEAR PIC 99. OPTB 016500 20 M MONTH PIC 99. OPTB 016600 15 FILLER PIC XX. OPTB 016700 10 MVDT INFO. OPTB 016800 15 MVIO PIC XXX. OPTB 016900 15 NODI PIC X. OPTB 017000 88 NO DATA VALUE ' D' ' E' ' F' ' G' ' H' ' K' ' 5' ' 8'. OPTB 017100 15 DMRL PIC X. OPTB 017200 15 MQAV PIC +. 99999999E+ 99. OPTB 017300 15 MQMX PIC +. 99999999E+ 99. OPTB 017400 15 MCMN PIC +. 99999999E+ 99. OPTB 017500 15 MCAV PIC +. 99999999E+ 99. OPTB 017600 15 MCMX PIC +. 99999999E+ 99. OPTB 017700 15 LMQAV PIC X. OPTB 017800 15 LMQMX PIC X. OPTB 017900 15 LMCMN PIC X. OPTB 018000 15 LMCAV PIC X. OPTB 018100 15 LMCMX PIC X. OPTB 018200 15 PIC X( 39). OPTB 018300 15 RUNT PIC XX. OPTB 018400 15 RCUN PIC XX. OPTB 018500 15 RSAM PIC XX. OPTB 018600 10 LOAD INFO REDEFINES MVDT INFO. OPTB 018700 15 LOAD YEAR PIC XX. OPTB 018800 15 LOAD COUNT PIC 99. OPTB 018900 15 LOAD EST SYMBOL PIC X. OPTB 019000 15 LOAD AMOUNT PIC +. 99999999E+ 99. OPTB 019100 10 FLOW INFO. OPTB 019200 15 F PRAM PIC X( 5). OPTB 019300 15 F MLOC PIC X. OPTB 019400 15 F STAT PIC X( 5). OPTB 019500 15 F LQUC PIC XX. OPTB 019600 15 F LQSC PIC XX. OPTB 019700 15 F LCUC PIC XX. OPTB 019800 15 F LCSC PIC XX. OPTB 019900 15 F MQAV PIC +. 99999999E+ 99. OPTB 020000 15 F MQMX PIC +. 99999999E+ 99. OPTB 020100 15 F MCMN PIC +. 99999999E+ 99. OPTB 020200 15 F MCAV PIC +. 99999999E+ 99. OPTB 020300 15 F MCMX PIC +. 99999999E+ 99. OPTB 020400 15 F RUNT PIC XX. OPTB 020500 15 F RCUN PIC XX. OPTB 020600* OPTB 020700 FD PCS GRP EST FILE OPTB 020800 BLOCK CONTAINS 0 RECORDS. OPTB 020900* RECORD CONTAINS 597 CHARACTERS. OPTB 021000* OPTB 021100 01 PCS GRP EST RECORD PIC X( 603). OPTB 021200* OPTB 021300 SD SORT FILE OPTB 021400 BLOCK CONTAINS 0 RECORDS. OPTB 021500* RECORD CONTAINS 597 CHARACTERS. OPTB 021600* OPTB 021700 01 SORT RECORD. OPTB 021800 05 S FACILITY INFO. OPTB 021900 10 S NPID PIC X( 9). OPTB 022000 10 S STATE PIC XX. OPTB 022100 10 FILLER PIC X( 32). OPTB 022200 10 S SIC2 PIC X( 4). OPTB 022300 10 FILLER PIC X( 45). OPTB 022400 10 S CNTY PIC XXX. OPTB 022500 10 FILLER PIC X( 24). OPTB 022600 10 S BAS PIC X( 6). OPTB 022700 10 S FHBC PIC X( 8). OPTB 022800 10 FILLER PIC X( 4). OPTB 022900 10 S CITY PIC X( 5). OPTB 023000 10 FILLER PIC X( 59). OPTB 023100 05 S PIPE INFO. OPTB 023200 10 S DSCH PIC X( 3). OPTB 023300 10 FILLER PIC X( 24). OPTB 023400 05 S PARM INFO. OPTB 023500 10 S PARM PIC X( 5). OPTB 023600 10 S MLOC PIC X. OPTB 023700 10 FILLER PIC X( 145). OPTB 023800 05 S MVDT PIC X( 6). OPTB 023900 05 S YEAR INFO PIC X( 218). OPTB 024000* OPTB 024100 FD LIMITS FILE OPTB 024200 BLOCK CONTAINS 0 RECORDS OPTB 024300* RECORD CONTAINS 80 CHARACTERS OPTB 024400 LABEL RECORDS ARE STANDARD. OPTB 024500 01 LIMITS RECORD. OPTB 024600 05 PARM CODE PIC X( 5). OPTB 024700 05 FILLER PIC X( 5). OPTB 024800 05 PARM DESC PIC X( 20). OPTB 024900 05 FILLER PIC X( 50). OPTB 025000* OPTB 025100 FD SIC FILE OPTB 025200 BLOCK CONTAINS 0 RECORDS OPTB 025300* RECORD CONTAINS 80 CHARACTERS OPTB 025400 LABEL RECORDS ARE STANDARD. OPTB 025500 01 SIC RECORD. OPTB 025600 05 SIC CODE PIC X( 4). OPTB 025700 05 FILLER PIC X( 6). OPTB 025800 05 SIC DESC PIC X( 30). OPTB 025900 05 FILLER PIC X( 40). OPTB 026000* OPTB 026100 FD BASIN FILE OPTB 026200 BLOCK CONTAINS 0 RECORDS OPTB 026300* RECORD CONTAINS 80 CHARACTERS OPTB 026400 LABEL RECORDS ARE STANDARD. OPTB 026500 01 BASIN RECORD. OPTB 026600 05 BASIN CODE PIC X( 8). OPTB 026700* 10 BASIN 2 PIC XX. OPTB 026800* 10 BASIN 4 PIC XX. OPTB 026900 05 FILLER PIC X( 2). OPTB 027000 05 BASIN DESC PIC X( 20). OPTB 027100 05 FILLER PIC X( 50). OPTB 027200* OPTB 027300 FD STBC FILE OPTB 027400 BLOCK CONTAINS 0 RECORDS OPTB 027500* RECORD CONTAINS 80 CHARACTERS OPTB 027600 LABEL RECORDS ARE STANDARD. OPTB 027700 01 STBC RECORD. OPTB 027800 05 STBC CODE PIC XX. OPTB 027900 05 STBC VALUES PIC X( 5). OPTB 028000 05 FILLER PIC X( 73). OPTB 028100* OPTB 028200 FD PARM GROUP FILE OPTB 028300 BLOCK CONTAINS 0 RECORDS OPTB 028400* RECORD CONTAINS 80 CHARACTERS OPTB 028500 LABEL RECORDS ARE STANDARD. OPTB 028600 01 PARM GROUP RECORD PIC X( 80). OPTB 028700* OPTB 028800 FD SAS FILE OPTB 028900 BLOCK CONTAINS 0 RECORDS OPTB 029000* RECORD CONTAINS 154 CHARACTERS OPTB 029100 LABEL RECORD ARE STANDARD. OPTB 029200 01 SAS RECORD PIC X( 154). OPTB 029300* OPTB 029400 FD DATE FILE OPTB 029500 BLOCK CONTAINS 0 RECORDS OPTB 029600* RECORD CONTAINS 80 CHARACTERS OPTB 029700 LABEL RECORDS ARE STANDARD. OPTB 029800 01 DATE RECORD PIC X( 80). OPTB 029900* OPTB 030000 FD GRAPH FILE OPTB 030100 BLOCK CONTAINS 0 RECORDS OPTB 030200* RECORD CONTAINS 63 CHARACTERS OPTB 030300 LABEL RECORDS ARE STANDARD. OPTB 030400 01 BGRAPH RECORD PIC X( 63). OPTB 030500* OPTB 030600 FD CODE FILE OPTB 030700 BLOCK CONTAINS 0 RECORDS OPTB 030800* RECORD CONTAINS 5 CHARACTERS OPTB 030900 LABEL RECORDS ARE STANDARD. OPTB 031000 01 CODE RECORD PIC X( 5). OPTB 031100* OPTB 031200 FD REPORT FILE OPTB 031300 BLOCK CONTAINS 0 RECORDS OPTB 031400* RECORD CONTAINS 133 CHARACTERS OPTB 031500 LABEL RECORDS ARE OMITTED. OPTB 031600 01 REPORT RECORD PIC X( 133). OPTB 031700* OPTB 031800 SD SORT PRINT FILE. OPTB 031900 01 SORT PRINT RECORD. OPTB 032000 05 SORT PRINT LINE PIC X( 133). OPTB 032100 05 SORT PRINT KEY. OPTB 032200 10 SORT PRINT NPID PIC X( 9). OPTB 032300 10 SORT PRINT STATE PIC X( 9). OPTB 032400 10 SORT PRINT PARM PIC X( 5). OPTB 032500 10 SORT PRINT TOTAL PIC +. 99999999E+ 99. OPTB 032600 10 FILLER REDEFINES SORT PRINT TOTAL. OPTB 032700 15 SORT PRINT TOTAL 1 PIC X( 10). OPTB 032800 15 FILLER PIC X. OPTB 032900 15 SORT PRINT SIGN PIC X. OPTB 033000 15 SORT PRINT TOTAL 2 PIC XX. OPTB 033100 10 SORT PRINT YEAR PIC 99. OPTB 033200 10 SORT PRINT LINE NO PIC 99. OPTB 033300* OPTB 033400 SD SORT PARM FILE. OPTB 033500 01 SORT PARM RECORD. OPTB 033600 05 SORT PARM KEY PIC X( 7). OPTB 033700 05 PIC X( 1890). OPTB 033800 WORKING STORAGE SECTION. OPTB 033900* OPTB 034000 01 SWITCHES. OPTB 034100 05 PCS EOF PIC XXX VALUE SPACES. OPTB 034200 88 END PCS VALUE ' YES'. OPTB 034300 88 MORE PCS VALUE ' NO'. OPTB 034400* OPTB 034500 05 FIRST INIT SW PIC XXX VALUE ' YES'. OPTB 034600 88 FIRST INITIALIZATION VALUE ' YES'. OPTB 034700* OPTB 034800 05 EOF SW PIC XXX VALUE ' NO'. OPTB 034900 88 END OF FILE VALUE ' YES'. OPTB 035000 88 MORE RECORDS VALUE ' NO'. OPTB 035100* OPTB 035200 05 JOB EOF PIC XXX VALUE SPACES. OPTB 035300 88 JOB FINISHED VALUE ' YES'. OPTB 035400 88 JOB NOT FINISHED VALUE ' NO'. OPTB 035500* OPTB 035600 05 WORST REPORT SW PIC XXX VALUE ' NO'. OPTB 035700 88 WORST REPORT VALUE ' YES'. OPTB 035800 88 NOT WORST REPORT VALUE ' NO'. OPTB 035900* OPTB 036000 05 MNEMONIC SW PIC XXX VALUE SPACES. OPTB 036100 88 MNEMONIC FOUND VALUE ' YES'. OPTB 036200 88 MNEMONIC MISSING VALUE ' NO'. OPTB 036300* OPTB 036400 05 FIELD WANTED SW PIC X VALUE SPACES. OPTB 036500 88 MQAV WANTED VALUE ' 1'. OPTB 036600 88 MQMX WANTED VALUE ' 2'. OPTB 036700 88 MCMN WANTED VALUE ' 3'. OPTB 036800 88 MCAV WANTED VALUE ' 4'. OPTB 036900 88 MCMX WANTED VALUE ' 5'. OPTB 037000* OPTB 037100 05 SIC SW PIC XXX VALUE SPACES. OPTB 037200 88 SIC FOUND VALUE ' YES'. OPTB 037300 88 SIC NOT FOUND VALUE ' NO'. OPTB 037400* OPTB 037500 05 BASIN SW PIC XXX VALUE SPACES. OPTB 037600 88 BASIN FOUND VALUE ' YES'. OPTB 037700 88 BASIN NOT FOUND VALUE ' NO'. OPTB 037800* OPTB 037900 05 BAS2 SW PIC XXX VALUE SPACES. OPTB 038000 88 BAS2 FOUND VALUE ' YES'. OPTB 038100 88 BAS2 NOT FOUND VALUE ' NO'. OPTB 038200* OPTB 038300 05 SEARCH SW PIC XXX VALUE SPACES. OPTB 038400 88 DO SEARCH VALUE ' YES'. OPTB 038500 88 NO SEARCH VALUE ' NO'. OPTB 038600* OPTB 038700 05 RANGE PIC 9 VALUE 0. OPTB 038800 88 PERIOD TOTAL VALUE 0. OPTB 038900 88 ANNUAL TOTALS VALUE 1. OPTB 039000* OPTB 039100 05 PAGE BREAK SW PIC X VALUE SPACES. OPTB 039200 88 FACILITY BREAK VALUE ' 1'. OPTB 039300 88 OUTFALL BREAK VALUE ' 2'. OPTB 039400 88 STATE BREAK VALUE ' 3'. OPTB 039500 88 COUNTY BREAK VALUE ' 4'. OPTB 039600 88 CITY BREAK VALUE ' 5'. OPTB 039700 88 BASIN BREAK VALUE ' 6'. OPTB 039800 88 REPORT BREAK VALUE ' 7'. OPTB 039900 88 SIC2 BREAK VALUE ' 8'. OPTB 040000* 88 SAS BREAK VALUE ' 9'. OPTB 040100* OPTB 040200 05 PAGE OUTFALL SW PIC X VALUE ' N'. OPTB 040300 88 PAGE OUTFALL VALUE ' Y'. OPTB 040400* OPTB 040500 01 PERIOD BREAKDOWN. OPTB 040600 05 YYMM1. OPTB 040700 10 YY1 PIC 99. OPTB 040800 10 MM1 PIC 99. OPTB 040900 05 DD1 PIC XX. OPTB 041000 05 DASH PIC X. OPTB 041100 05 YY2 PIC 99. OPTB 041200 05 MM2 PIC 99. OPTB 041300 05 DD2 PIC XX. OPTB 041400 05 FILLER PIC X( 67). OPTB 041500* OPTB 041600 01 YEAR INDICATOR PIC 99 VALUE 0. OPTB 041700* OPTB 041800 01 YEAR HIGH PIC 99 VALUE 0. OPTB 041900* OPTB 042000 01 M YYMM. OPTB 042100 05 M YY PIC 99. OPTB 042200 05 M MM PIC 99. OPTB 042300* OPTB 042400 01 DATE IN. OPTB 042500 05 YEAR IN PIC XX. OPTB 042600 05 MONTH IN PIC XX. OPTB 042700 05 DAY IN PIC XX. OPTB 042800* OPTB 042900 01 COUNTS. OPTB 043000 05 PAGE CTR PIC 9( 4) VALUE 0. OPTB 043100 05 LINES USED PIC 99 VALUE 0. OPTB 043200 05 RECORD COUNT PIC 9( 5) VALUE 0. OPTB 043300 05 COUNT 1 PIC S9 VALUE + 0. OPTB 043400 05 COUNT 2 PIC S9 VALUE + 0. OPTB 043500 05 COUNT 3 PIC S9 VALUE + 0. OPTB 043600 05 COUNT 4 PIC S9 VALUE + 0. OPTB 043700 05 COUNT 5 PIC S9 VALUE + 0. OPTB 043800* OPTB 043900 01 WS HOLD AREA. OPTB 044000 05 HOLD REPORT PIC XX. OPTB 044100 88 SAS VALUE ' 17'. OPTB 044200 05 HOLD CONC PIC +. 99999999E+ 99. OPTB 044300 05 HOLD FLOW PIC +. 99999999E+ 99. OPTB 044400 05 HOLD LOAD PIC +. 99999999E+ 99. OPTB 044500 05 HOLD QUAN PIC +. 99999999E+ 99. OPTB 044600 05 HOLD COUNT PIC 999 VALUE 0. OPTB 044700 05 HOLD TCOUNT PIC 999 VALUE 12. OPTB 044800 05 HOLD MEASUREMENT PIC +. 99999999E+ 99. OPTB 044900 05 HOLD MULTIPLIER PIC S9. OPTB 045000 05 HOLD SIGN PIC X. OPTB 045100 05 HOLD MLOC PIC X. OPTB 045200 05 HOLD DSCH PIC X( 3). OPTB 045300 05 HOLD PIPE PIC X( 30). OPTB 045400 05 HOLD PLAT PIC X( 8). OPTB 045500 05 HOLD PLON PIC X( 9). OPTB 045600 05 HOLD F UNIT1 PIC X( 2). OPTB 045700 05 HOLD F UNIT2 PIC X( 3). OPTB 045800 05 HOLD F U S PIC 9. OPTB 045900 05 HOLD YEAR INDEX INDEX. OPTB 046000 05 HOLD MONTH INDEX INDEX. OPTB 046100 05 HOLD PARM INDEX INDEX. OPTB 046200 05 PREV FIELDS. OPTB 046300 10 PREV NPID PIC X( 9). OPTB 046400 10 PREV STATE PIC XX. OPTB 046500 10 PREV CNTY PIC X( 3). OPTB 046600 10 PREV CITY PIC X( 5). OPTB 046700 10 PREV YEAR PIC XX. OPTB 046800 10 PREV YRMNTH PIC X( 4). OPTB 046900 10 PREV PARM PIC X( 5). OPTB 047000 10 PREV FHBC PIC X( 8). OPTB 047100 10 PREV SIC2 PIC X( 4). OPTB 047200 10 PREV DSCH PIC X( 3). OPTB 047300 10 PREV MVDT PIC X( 6). OPTB 047400 05 CONTROL PARM PIC X( 5). OPTB 047500 05 BAS4 HOLD. OPTB 047600 10 BAS2 PIC XX. OPTB 047700 10 BAS2 REST PIC XX. OPTB 047800* OPTB 047900 01 OPTBSORT PIC X( 8) VALUE ' OPTBSORT'. OPTB 048000* OPTB 048100 01 WS YEAR PIC 99. OPTB 048200* OPTB 048300 01 WS NRPU PIC 9( 3). OPTB 048400* OPTB 048500 01 WS TCOUNT PIC 9( 3). OPTB 048600* OPTB 048700 01 WS MEASUREMENT PIC +. 99999999E+ 99. OPTB 048800* OPTB 048900 01 WS PRINT SYMBOL PIC X. OPTB 049000* OPTB 049100 01 WS STATE CNTY CODE. OPTB 049200 05 WS STATE PIC XX. OPTB 049300 05 WS CNTY PIC XXX. OPTB 049400* OPTB 049500 01 C F UNITS. OPTB 049600 05 C UNIT PIC XX. OPTB 049700 05 F UNIT PIC XX. OPTB 049800* OPTB 049900 01 C F FACTOR PIC +. 99999999E+ 99. OPTB 050000* 01 CONC LABEL PIC X( 4). OPTB 050100******************************************************* OPTB 050200 01 WS SAS RECORD. OPTB 050300 05 SAS RWAT PIC X( 28). OPTB 050400 05 SAS NAME PIC X( 30). OPTB 050500 05 SAS NPID PIC X( 9). OPTB 050600 05 SAS PRAM PIC X( 5). OPTB 050700 05 SAS PRAM DESC PIC X( 20). OPTB 050800 05 SAS CONC PIC +. 99999999E+ 99. OPTB 050900 05 SAS FLOW PIC +. 99999999E+ 99. OPTB 051000 05 SAS LOAD PIC +. 99999999E+ 99. OPTB 051100 05 SAS C F FACT PIC +. 99999999E+ 99. OPTB 051200 05 SAS MVDT PIC X( 6). OPTB 051300*************** GRAPH DATA RECORD LAYOUT ************* OPTB 051400 01 WS BGRAPH RECORD. OPTB 051500 05 BG NPID PIC X( 9). OPTB 051600 05 BG LAT PIC X( 8). OPTB 051700 05 BG LONG PIC X( 9). OPTB 051800 05 BG DSCH PIC X( 3). OPTB 051900 05 BG MLOC PIC X. OPTB 052000 05 PARAMETER DATA. OPTB 052100 10 BG PARM PIC X( 5). OPTB 052200 10 BG YEAR PIC XX. OPTB 052300 10 BG TOTAL PIC +. 99999999E+ 99. OPTB 052400 05 BG PERIOD. OPTB 052500 10 BG YEAR1 PIC XX. OPTB 052600 10 BG MONTH1 PIC XX. OPTB 052700 10 BG DASH PIC X. OPTB 052800 10 BG YEAR2 PIC XX. OPTB 052900 10 BG MONTH2 PIC XX. OPTB 053000 05 BG CNTY PIC X( 3). OPTB 053100 01 WS TOTAL RECORD REDEFINES WS BGRAPH RECORD. OPTB 053200 05 TL STATE PIC XX. OPTB 053300 05 TL CNTY PIC X( 4). OPTB 053400 05 TL CITY PIC X( 5). OPTB 053500 05 TL FHBC PIC X( 8). OPTB 053600 05 TL SIC2 PIC X( 4). OPTB 053700***************** REPORT HEADINGS ********************* OPTB 053800 01 OPTIONAL HEADING. OPTB 053900 05 FILLER OCCURS 74 TIMES. OPTB 054000 10 CHAR PIC X. OPTB 054100 05 FILLER PIC X( 6) VALUE SPACES. OPTB 054200* OPTB 054300 01 OPTIONAL HEADING PRINT. OPTB 054400 05 FILLER PIC X VALUE SPACE. OPTB 054500 05 FILLER OCCURS 132 TIMES. OPTB 054600 10 CHARS PIC X. OPTB 054700* OPTB 054800 01 PCS HEADING. OPTB 054900 05 FILLER PIC X. OPTB 055000 05 FILLER PIC X( 54) VALUE SPACES. OPTB 055100 05 FILLER PIC X( 7) VALUE ' PERMIT'. OPTB 055200 05 FILLER PIC X( 11) VALUE ' COMPLIANCE'. OPTB 055300 05 FILLER PIC X( 6) VALUE ' SYSTEM'. OPTB 055400 05 FILLER PIC X( 22) VALUE SPACES. OPTB 055500 05 FILLER PIC X( 10) VALUE ' RUN DATE:'. OPTB 055600 05 DATE OUT. OPTB 055700 07 MONTH OUT PIC XX. OPTB 055800 07 FILLER PIC X VALUE '/'. OPTB 055900 07 DAY OUT PIC XX. OPTB 056000 07 FILLER PIC X VALUE '/'. OPTB 056100 07 YEAR OUT PIC XX. OPTB 056200 05 FILLER PIC X( 4) VALUE SPACES. OPTB 056300 05 FILLER PIC X( 5) VALUE ' PAGE:'. OPTB 056400 05 FILLER PIC X VALUE SPACES. OPTB 056500 05 PAGE NO PIC ZZZ9. OPTB 056600* OPTB 056700 01 REPORT HEADING. OPTB 056800 05 FILLER PIC X. OPTB 056900 05 FILLER PIC X( 47) VALUE SPACES. OPTB 057000 05 FILLER PIC X( 38) OPTB 057100 VALUE ' EFFLUENT DISCHARGE MASS LOADING REPORT'. OPTB 057200 05 FILLER PIC X( 47) VALUE SPACES. OPTB 057300* OPTB 057400 01 REPORT EXCD HEADING. OPTB 057500 05 FILLER PIC X. OPTB 057600 05 FILLER PIC X( 41) VALUE SPACES. OPTB 057700 05 FILLER PIC X( 49) OPTB 057800 VALUE ' EFFLUENT DISCHARGE MASS LOADING EXCEEDENCE REPORT'. OPTB 057900 05 FILLER PIC X( 42) VALUE SPACES. OPTB 058000* OPTB 058100 01 REPORT UNDER HEADING. OPTB 058200 05 FILLER PIC X. OPTB 058300 05 FILLER PIC X( 41) VALUE SPACES. OPTB 058400 05 FILLER PIC X( 50) OPTB 058500 VALUE ' EFFLUENT DISCHARGE MASS LOADING BELOW LIMIT REPORT'. OPTB 058600 05 FILLER PIC X( 41) VALUE SPACES. OPTB 058700* OPTB 058800 01 REPORT EXCD UNDER HEADING. OPTB 058900 05 FILLER PIC X. OPTB 059000 05 FILLER PIC X( 34) VALUE SPACES. OPTB 059100 05 FILLER PIC X( 47) OPTB 059200 VALUE ' EFFLUENT DISCHARGE MASS LOADING EXCEEDENCE AND'. OPTB 059300 05 FILLER PIC X( 18) OPTB 059400 VALUE ' BELOW LIMIT REPORT'. OPTB 059500 05 FILLER PIC X( 33) VALUE SPACES. OPTB 059600* OPTB 059700 01 REPORT ALLOW HEADING. OPTB 059800 05 FILLER PIC X. OPTB 059900 05 FILLER PIC X( 42) VALUE SPACES. OPTB 060000 05 FILLER PIC X( 48) OPTB 060100 VALUE ' ALLOWABLE EFFLUENT DISCHARGE MASS LOADING REPORT'. OPTB 060200 05 FILLER PIC X( 42) VALUE SPACES. OPTB 060300* OPTB 060400 01 HYDRO BASIN HEADING. OPTB 060500 05 FILLER PIC X. OPTB 060600 05 FILLER PIC X( 51) VALUE SPACES. OPTB 060700 05 FILLER PIC X( 29) OPTB 060800 VALUE ' HYDROLOGICAL LISTING BY BASIN'. OPTB 060900 05 FILLER PIC X( 52) VALUE SPACES. OPTB 061000* OPTB 061100 01 HYDRO STATE HEADING. OPTB 061200 05 FILLER PIC X. OPTB 061300 05 FILLER PIC X( 51) VALUE SPACES. OPTB 061400 05 FILLER PIC X( 29) OPTB 061500 VALUE ' HYDROLOGICAL LISTING BY STATE'. OPTB 061600 05 FILLER PIC X( 52) VALUE SPACES. OPTB 061700* OPTB 061800 01 HYDRO COUNTY HEADING. OPTB 061900 05 FILLER PIC X. OPTB 062000 05 FILLER PIC X( 51) VALUE SPACES. OPTB 062100 05 FILLER PIC X( 30) OPTB 062200 VALUE ' HYDROLOGICAL LISTING BY COUNTY'. OPTB 062300 05 FILLER PIC X( 51) VALUE SPACES. OPTB 062400* OPTB 062500 01 HYDRO CITY HEADING. OPTB 062600 05 FILLER PIC X. OPTB 062700 05 FILLER PIC X( 52) VALUE SPACES. OPTB 062800 05 FILLER PIC X( 28) OPTB 062900 VALUE ' HYDROLOGICAL LISTING BY CITY'. OPTB 063000 05 FILLER PIC X( 52) VALUE SPACES. OPTB 063100* OPTB 063200 01 HYDRO FACILITY HEADING. OPTB 063300 05 FILLER PIC X. OPTB 063400 05 FILLER PIC X( 50) VALUE SPACES. OPTB 063500 05 FILLER PIC X( 32) OPTB 063600 VALUE ' HYDROLOGICAL LISTING BY FACILITY'. OPTB 063700 05 FILLER PIC X( 50) VALUE SPACES. OPTB 063800* OPTB 063900 01 HYDRO OUTFALL HEADING. OPTB 064000 05 FILLER PIC X. OPTB 064100 05 FILLER PIC X( 50) VALUE SPACES. OPTB 064200 05 FILLER PIC X( 31) OPTB 064300 VALUE ' HYDROLOGICAL LISTING BY OUTFALL'. OPTB 064400 05 FILLER PIC X( 51) VALUE SPACES. OPTB 064500* OPTB 064600 01 GEO STATE HEADING. OPTB 064700 05 FILLER PIC X. OPTB 064800 05 FILLER PIC X( 51) VALUE SPACES. OPTB 064900 05 FILLER PIC X( 29) OPTB 065000 VALUE ' GEOGRAPHICAL LISTING BY STATE'. OPTB 065100 05 FILLER PIC X( 52) VALUE SPACES. OPTB 065200* OPTB 065300 01 GEO COUNTY HEADING. OPTB 065400 05 FILLER PIC X. OPTB 065500 05 FILLER PIC X( 51) VALUE SPACES. OPTB 065600 05 FILLER PIC X( 30) OPTB 065700 VALUE ' GEOGRAPHICAL LISTING BY COUNTY'. OPTB 065800 05 FILLER PIC X( 51) VALUE SPACES. OPTB 065900* OPTB 066000 01 GEO CITY HEADING. OPTB 066100 05 FILLER PIC X. OPTB 066200 05 FILLER PIC X( 52) VALUE SPACES. OPTB 066300 05 FILLER PIC X( 28) OPTB 066400 VALUE ' GEOGRAPHICAL LISTING BY CITY'. OPTB 066500 05 FILLER PIC X( 52) VALUE SPACES. OPTB 066600* OPTB 066700 01 GEO FACILITY HEADING. OPTB 066800 05 FILLER PIC X. OPTB 066900 05 FILLER PIC X( 50) VALUE SPACES. OPTB 067000 05 FILLER PIC X( 32) OPTB 067100 VALUE ' GEOGRAPHICAL LISTING BY FACILITY'. OPTB 067200 05 FILLER PIC X( 50) VALUE SPACES. OPTB 067300* OPTB 067400 01 GEO OUTFALL HEADING. OPTB 067500 05 FILLER PIC X. OPTB 067600 05 FILLER PIC X( 50) VALUE SPACES. OPTB 067700 05 FILLER PIC X( 31) OPTB 067800 VALUE ' GEOGRAPHICAL LISTING BY OUTFALL'. OPTB 067900 05 FILLER PIC X( 51) VALUE SPACES. OPTB 068000* OPTB 068100 01 SIC2 REPORT HEADING. OPTB 068200 05 FILLER PIC X. OPTB 068300 05 FILLER PIC X( 43) VALUE SPACES. OPTB 068400 05 FILLER PIC X( 45) OPTB 068500 VALUE ' LISTING BY STANDARD INDUSTRIAL CLASSIFICATION'. OPTB 068600 05 FILLER PIC X( 44) VALUE SPACES. OPTB 068700* OPTB 068800 01 PARM REPORT HEADING. OPTB 068900 05 FILLER PIC X. OPTB 069000 05 FILLER PIC X( 50) VALUE SPACES. OPTB 069100 05 FILLER PIC X( 32) OPTB 069200 VALUE ' LISTING BY STORET PARAMETER CODE'. OPTB 069300 05 FILLER PIC X( 50) VALUE SPACES. OPTB 069400* OPTB 069500 01 WORST CASE HEADING. OPTB 069600 05 FILLER PIC X. OPTB 069700 05 FILLER PIC X( 56) VALUE SPACES. OPTB 069800 05 H WORST COUNT PIC Z9. OPTB 069900 05 FILLER PIC X( 18) OPTB 070000 VALUE ' WORST DISCHARGERS'. OPTB 070100 05 FILLER PIC X( 56) VALUE SPACES. OPTB 070200* OPTB 070300 01 WORST CASE HEADING 1. OPTB 070400 05 FILLER PIC X. OPTB 070500 05 FILLER PIC X( 57) VALUE SPACES. OPTB 070600 05 FILLER PIC X( 18) OPTB 070700 VALUE ' WORST DISCHARGER'. OPTB 070800 05 FILLER PIC X( 57) VALUE SPACES. OPTB 070900* OPTB 071000 01 ENTIRE REPORT HEADING. OPTB 071100 05 FILLER PIC X. OPTB 071200 05 FILLER PIC X( 53) VALUE SPACES. OPTB 071300 05 FILLER PIC X( 25) OPTB 071400 VALUE ' LISTING FOR ENTIRE REPORT'. OPTB 071500 05 FILLER PIC X( 54) VALUE SPACES. OPTB 071600* OPTB 071700 01 FAC LOC REPORT HEADING. OPTB 071800 05 FILLER PIC X. OPTB 071900 05 FILLER PIC X( 55) VALUE SPACES. OPTB 072000 05 FILLER PIC X( 23) OPTB 072100 VALUE ' FACILITY MAPPING REPORT'. OPTB 072200 05 FILLER PIC X( 54) VALUE SPACES. OPTB 072300* OPTB 072400 01 BEG DATE HEADING. OPTB 072500 05 FILLER PIC X. OPTB 072600 05 FILLER PIC X( 8) VALUE ' BEG DATE'. OPTB 072700 05 BASIN HEADING PIC X( 124) VALUE SPACES. OPTB 072800 05 FILLER REDEFINES BASIN HEADING. OPTB 072900 10 FILLER PIC X( 9). OPTB 073000 10 B STATE PIC X( 5). OPTB 073100 10 FILLER PIC X( 7). OPTB 073200 10 B COUNTY PIC X( 6). OPTB 073300 10 FILLER PIC X( 16). OPTB 073400 10 B CITY PIC X( 4). OPTB 073500 10 FILLER PIC X( 77). OPTB 073600 05 SIC2 HEADING REDEFINES BASIN HEADING. OPTB 073700 10 FILLER PIC X( 9). OPTB 073800 10 B SIC2 PIC X( 4). OPTB 073900 10 FILLER PIC X( 3). OPTB 074000 10 B SIC2 DESC PIC X( 16). OPTB 074100 10 FILLER PIC X( 92). OPTB 074200* OPTB 074300 01 BEG DATE HEADING 2. OPTB 074400 05 FILLER PIC X. OPTB 074500 05 FILLER PIC X( 8) VALUE ' BEG DATE'. OPTB 074600 05 FILLER PIC X VALUE SPACES. OPTB 074700 05 FILLER PIC X( 13) VALUE ' FACILITY NAME'. OPTB 074800 05 FILLER PIC X( 18) VALUE SPACES. OPTB 074900 05 FILLER PIC X( 8) VALUE ' NPDES ID'. OPTB 075000 05 FILLER PIC XX VALUE SPACES. OPTB 075100 05 FILLER PIC X( 9) VALUE ' MAJOR IND'. OPTB 075200 05 FILLER PIC X( 2) VALUE SPACES. OPTB 075300 05 FILLER PIC X( 4) VALUE ' SIC2'. OPTB 075400 05 FILLER PIC XXX VALUE SPACES. OPTB 075500 05 FILLER PIC X( 9) VALUE ' SIC2 DESC'. OPTB 075600 05 FILLER PIC X( 23) VALUE SPACES. OPTB 075700 05 FILLER PIC X( 6) VALUE ' COUNTY'. OPTB 075800 05 FILLER PIC X( 11) VALUE SPACES. OPTB 075900 05 FILLER PIC X( 4) VALUE ' CITY'. OPTB 076000 05 FILLER PIC X( 11) VALUE SPACES. OPTB 076100 01 FL BEG DATE HEADING 2 REDEFINES BEG DATE HEADING 2. OPTB 076200 05 FILLER PIC X( 8). OPTB 076300 05 FL BEG DATE HEADING. OPTB 076400 10 FL CHAR CONTROL BD PIC X. OPTB 076500 10 FILLER PIC X( 124). OPTB 076600* OPTB 076700 01 END DATE HEADING. OPTB 076800 05 FILLER PIC X. OPTB 076900 05 FILLER PIC X( 8) VALUE ' END DATE'. OPTB 077000 05 FILLER PIC X( 124) VALUE SPACES. OPTB 077100* OPTB 077200 01 END DATE HEADING 2. OPTB 077300 05 FILLER PIC X. OPTB 077400 05 FILLER PIC X( 8) VALUE ' END DATE'. OPTB 077500 05 FILLER PIC X VALUE SPACES. OPTB 077600 05 FILLER PIC X( 5) VALUE ' BASIN'. OPTB 077700 05 FILLER PIC X( 5) VALUE SPACES. OPTB 077800 05 FILLER PIC X( 10) VALUE ' BASIN DESC'. OPTB 077900 05 FILLER PIC X( 34) VALUE SPACES. OPTB 078000 05 FILLER PIC X( 18) OPTB 078100 VALUE ' RECEIVING WATERWAY'. OPTB 078200 05 FILLER PIC X( 21) VALUE SPACES. OPTB 078300 05 FILLER PIC X( 8) VALUE ' LATITUDE'. OPTB 078400 05 FILLER PIC X( 9) VALUE SPACES. OPTB 078500 05 FILLER PIC X( 9) VALUE ' LONGITUDE'. OPTB 078600 05 FILLER PIC X( 6) VALUE SPACES. OPTB 078700 01 FL END DATE HEADING 2 REDEFINES END DATE HEADING 2. OPTB 078800 05 FILLER PIC X( 8). OPTB 078900 05 FL END DATE HEADING. OPTB 079000 10 FL CHAR CONTROL ED PIC X. OPTB 079100 10 FILLER PIC X( 124). OPTB 079200* OPTB 079300 01 END DATE HEADING 3. OPTB 079400 05 FILLER PIC X. OPTB 079500 05 FILLER PIC X( 8) VALUE ' END DATE'. OPTB 079600 05 FILLER PIC X VALUE SPACES. OPTB 079700 05 FILLER PIC X( 5) VALUE ' BASIN'. OPTB 079800 05 FILLER PIC X( 5) VALUE SPACES. OPTB 079900 05 FILLER PIC X( 10) VALUE ' BASIN DESC'. OPTB 080000 05 FILLER PIC X( 105) VALUE SPACES. OPTB 080100* OPTB 080200 01 STAR HEADING. OPTB 080300 05 FILLER PIC X VALUE SPACES. OPTB 080400 05 FILLER PIC X( 132) VALUE ALL '*'. OPTB 080500* OPTB 080600 01 SHORT STAR HEADING. OPTB 080700 05 FILLER PIC X VALUE SPACES. OPTB 080800 05 FILLER PIC X( 10) VALUE SPACES. OPTB 080900 05 FILLER PIC X( 122) VALUE ALL '*'. OPTB 081000********* BEGINNING DATE HEADING PRINTLINE *********** OPTB 081100 01 PRINTLINE 1. OPTB 081200 05 FILLER PIC X VALUE SPACES. OPTB 081300 05 BEG DATE. OPTB 081400 10 BEG MONTH PIC XX. OPTB 081500 10 FILLER PIC X VALUE '/'. OPTB 081600 10 BEG DAY PIC XX. OPTB 081700 10 FILLER PIC X VALUE '/'. OPTB 081800 10 BEG YEAR PIC XX. OPTB 081900 05 PRINT 1 PIC X( 124) VALUE SPACES. OPTB 082000 05 FILLER REDEFINES PRINT 1. OPTB 082100 10 FILLER PIC X. OPTB 082200 10 FAC NAME PIC X( 30). OPTB 082300 10 FILLER PIC X. OPTB 082400 10 FAC NPID PIC X( 9). OPTB 082500 10 FILLER PIC X. OPTB 082600 10 FAC MADI PIC X( 5). OPTB 082700 10 FILLER PIC X( 6). OPTB 082800 10 FAC SIC2 PIC X( 4). OPTB 082900 10 FILLER PIC X( 3). OPTB 083000 10 FAC SIC2 DESC PIC X( 30). OPTB 083100 10 FILLER PIC XX. OPTB 083200 10 FAC CNTN PIC X( 15). OPTB 083300 10 FILLER PIC XX. OPTB 083400 10 FAC CITY PIC X( 15). OPTB 083500 05 FILLER REDEFINES PRINT 1. OPTB 083600 10 FILLER PIC X( 9). OPTB 083700 10 P STATE PIC XX. OPTB 083800 10 FILLER PIC X( 10). OPTB 083900 10 P CNTN PIC X( 20). OPTB 084000 10 FILLER PIC XX. OPTB 084100 10 P CITY PIC X( 20). OPTB 084200 10 FILLER PIC X( 61). OPTB 084300 05 FILLER REDEFINES PRINT 1. OPTB 084400 10 FILLER PIC X( 9). OPTB 084500 10 P SIC2 PIC X( 4). OPTB 084600 10 FILLER PIC X( 3). OPTB 084700 10 P SIC2 DESC PIC X( 30). OPTB 084800 10 FILLER PIC X( 78). OPTB 084900 01 FL PRINTLINE 1 REDEFINES PRINTLINE 1. OPTB 085000 05 FILLER PIC X( 8). OPTB 085100 05 FL PRINT 1. OPTB 085200 10 FL CHAR CONTROL 1 PIC X. OPTB 085300 10 FILLER PIC X( 124). OPTB 085400********** ENDING DATE HEADING PRINTLINE ************* OPTB 085500 01 PRINTLINE 2. OPTB 085600 05 FILLER PIC X VALUE SPACES. OPTB 085700 05 END DATE. OPTB 085800 10 END MONTH PIC XX. OPTB 085900 10 FILLER PIC X VALUE '/'. OPTB 086000 10 END DAY PIC XX. OPTB 086100 10 FILLER PIC X VALUE '/'. OPTB 086200 10 END YEAR PIC XX. OPTB 086300 05 PRINT 2 PIC X( 124) VALUE SPACES. OPTB 086400 05 FILLER REDEFINES PRINT 2. OPTB 086500 10 FILLER PIC X. OPTB 086600 10 P BASIN CODE PIC X( 8). OPTB 086700 10 FILLER PIC XX. OPTB 086800 10 P BASIN DESC PIC X( 20). OPTB 086900 10 FILLER PIC X( 24). OPTB 087000 10 P RWAT PIC X( 28). OPTB 087100 10 FILLER PIC X( 11). OPTB 087200 10 P FLAT PIC X( 8). OPTB 087300 10 FILLER PIC X( 9). OPTB 087400 10 P FLON PIC X( 9). OPTB 087500 01 FL PRINTLINE 2 REDEFINES PRINTLINE 2. OPTB 087600 05 FILLER PIC X( 8). OPTB 087700 05 FL PRINT 2. OPTB 087800 10 FL CHAR CONTROL 2 PIC X. OPTB 087900 10 FILLER PIC X( 124). OPTB 088000****************** PRINTLINES *********************** OPTB 088100 01 MNEMONIC LINE. OPTB 088200 05 FILLER PIC X VALUE SPACES. OPTB 088300 05 MNEM OUTFALL. OPTB 088400 10 M OUTFALL PIC X( 7). OPTB 088500 10 FILLER PIC X( 14) VALUE SPACES. OPTB 088600 05 FILLER REDEFINES MNEM OUTFALL. OPTB 088700 10 M BLANKS PIC X. OPTB 088800 10 M DSCH PIC X( 3). OPTB 088900 10 M MORE BLANKS PIC X. OPTB 089000 10 M PIPE DESC PIC X( 16). OPTB 089100 05 FILLER REDEFINES MNEM OUTFALL. OPTB 089200 10 M PLAT PIC X( 8). OPTB 089300 10 M CHAR PIC X. OPTB 089400 10 M PLON PIC X( 9). OPTB 089500 05 FILLER PIC X VALUE SPACE. OPTB 089600 05 M PRINTS OCCURS 5 TIMES. OPTB 089700 10 MNEM CODE. OPTB 089800 15 M CODE PIC X( 5). OPTB 089900 15 M BLANK PIC X. OPTB 090000 15 M TYPE PIC X( 8). OPTB 090100 15 M 6 BLANKS PIC X( 6). OPTB 090200 10 FILLER REDEFINES MNEM CODE. OPTB 090300 15 M MNEM PIC X( 20). OPTB 090400 10 FILLER REDEFINES MNEM CODE. OPTB 090500 15 M UNIT DESC PIC X( 11). OPTB 090600 15 M UNIT BLANKS PIC X( 9). OPTB 090700 10 MNEM BLANKS PIC XX. OPTB 090800* OPTB 090900 01 FINAL PRINT. OPTB 091000 05 FILLER PIC X VALUE SPACES. OPTB 091100 05 FILLER PIC X( 15) VALUE SPACES. OPTB 091200 05 P YEAR. OPTB 091300 10 PRINT CENTURY PIC XXX. OPTB 091400 10 PRINT YEAR PIC XX. OPTB 091500 05 PR TOTAL REDEFINES P YEAR OPTB 091600 PIC X( 5). OPTB 091700 05 FILLER PIC XX VALUE SPACES. OPTB 091800 05 P TOTALS OCCURS 5 TIMES. OPTB 091900 10 PRINT SYMBOL PIC X. OPTB 092000 10 PRINT TOTAL PIC ,, 9.99BB. OPTB 092100* 10 PRINT TOTAL PIC ZZZ, ZZZ, ZZ9.99BBB. OPTB 092200 10 GT TOTAL REDEFINES PRINT TOTAL. OPTB 092300 15 FILLER PIC X( 3). OPTB 092400 15 G TOTAL PIC . 99999999E+ 99. OPTB 092500 10 LT TOTAL REDEFINES PRINT TOTAL. OPTB 092600 15 FILLER PIC X( 10). OPTB 092700 15 L TOTAL PIC  9.9999. OPTB 092800 10 PRINT BLANKS PIC X( 4). OPTB 092900* OPTB 093000 01 TOTAL LINE. OPTB 093100 05 FILLER PIC X VALUE SPACES. OPTB 093200 05 FILLER PIC X( 15) VALUE SPACES. OPTB 093300 05 TOTAL NAME PIC X( 5) VALUE ' TOTAL'. OPTB 093400 05 FILLER PIC XX VALUE SPACES. OPTB 093500 05 TL TOTALS OCCURS 5 TIMES. OPTB 093600 10 TL SYMBOL PIC X. OPTB 093700 10 TL TOTAL PIC ,, 9.99BB. OPTB 093800* 10 TL TOTAL PIC ZZZ, ZZZ, ZZ9.99BBB. OPTB 093900 10 TL GT TOTAL REDEFINES TL TOTAL. OPTB 094000 15 FILLER PIC X( 3). OPTB 094100 15 TL G TOTAL PIC . 99999999E+ 99. OPTB 094200 10 TL LT TOTAL REDEFINES TL TOTAL. OPTB 094300 15 FILLER PIC X( 10). OPTB 094400 15 TL L TOTAL PIC  9.9999. OPTB 094500 10 TOT BLANKS PIC X( 4). OPTB 094600* OPTB 094700 01 S PRINT RECORD. OPTB 094800 05 S PRINT LINE PIC X( 133). OPTB 094900 05 S PRINT KEY. OPTB 095000 10 S PRINT NPID PIC X( 9). OPTB 095100 10 S PRINT STATE PIC X( 9). OPTB 095200 10 S PRINT PARM PIC X( 5). OPTB 095300 10 S PRINT TOTAL PIC +. 99999999E+ 99. OPTB 095400 10 FILLER REDEFINES S PRINT TOTAL. OPTB 095500 15 S PRINT TOTAL 1 PIC X( 10). OPTB 095600 15 S PRINT TOTAL 2 PIC X( 4). OPTB 095700 10 S PRINT YEAR PIC XX. OPTB 095800 10 S PRINT LINE NO PIC 99 VALUE 0. OPTB 095900********************* TABLES ************************ OPTB 096000 01 PARM DESC TABLE. OPTB 096100 05 PARM DESC INFO OCCURS 4000 TIMES OPTB 096200 ASCENDING KEY IS IN PARM CODE OPTB 096300 INDEXED BY LIMITS INDEX. OPTB 096400 10 IN PARM CODE PIC X( 5). OPTB 096500 10 IN PARM DESC PIC X( 20). OPTB 096600** ** ** OPTB 096700 01 PARM GROUP TABLE. OPTB 096800 05 PARM GROUP INFO OCCURS 1500 TIMES OPTB 096900 ASCENDING KEY IS PARM GROUP CODE OPTB 097000 INDEXED BY GROUP INDEX. OPTB 097100 10 PARM GROUP CODE PIC X( 5). OPTB 097200 10 PARM GROUP NUM PIC X( 5). OPTB 097300 10 PARM GROUP HEIR PIC 9. OPTB 097400* OPTB 097500 01 SIC TABLE. OPTB 097600 05 SIC INFO OCCURS 1200 TIMES OPTB 097700 ASCENDING KEY IS SIC2 CODE OPTB 097800 INDEXED BY SIC INDEX. OPTB 097900 10 SIC2 CODE PIC X( 4). OPTB 098000 10 SIC2 DESC PIC X( 30). OPTB 098100* OPTB 098200 01 BASIN TABLE. OPTB 098300 05 BASIN INFO OCCURS 2500 TIMES OPTB 098400 ASCENDING KEY IS IN FHBC OPTB 098500 INDEXED BY BASIN INDEX. OPTB 098600 10 IN FHBC PIC X( 8). OPTB 098700 10 IN FHBC DESC PIC X( 20). OPTB 098800* OPTB 098900* 01 BAS2 TABLE REDEFINES BASIN TABLE. OPTB 099000* 05 BAS2 INFO OCCURS 500 TIMES OPTB 099100* ASCENDING KEY IS IN BAS2 OPTB 099200* INDEXED BY BAS2 INDEX. OPTB 099300* 10 IN BAS2 PIC XX. OPTB 099400* 10 IN BAS2 REST PIC XX. OPTB 099500* 10 IN BAS2 DESC PIC X( 20). OPTB 099600* OPTB 099700 01 STBC TABLE. OPTB 099800 05 STBC INFO OCCURS 200 TIMES OPTB 099900 ASCENDING KEY IS T STBC OPTB 100000 INDEXED BY STBC INDEX. OPTB 100100 10 T STBC PIC XX. OPTB 100200 10 T STBC VALUES PIC X( 5). OPTB 100300* OPTB 100400 01 PARM TABLE. OPTB 100500 05 PARM SUB PIC S999 COMP SYNC VALUE + 0. OPTB 100600 05 PARM INFO OCCURS 500 TIMES OPTB 100700 INDEXED BY PARM INDEX. OPTB 100800 10 PARM NUM MLOC. OPTB 100900 15 PARM NUM. OPTB 101000 20 PARM NUM X PIC X. OPTB 101100 20 PIC X( 4). OPTB 101200 15 PARM MLOC PIC X. OPTB 101300 10 PARM HEIR PIC X. OPTB 101400 10 PARM LQSC PIC XX. OPTB 101500 10 PARM EST SYMBOL PIC X. OPTB 101600 10 TOTAL PIC +. 99999999E+ 99. OPTB 101700 10 TCOUNT PIC 999. OPTB 101800 10 PCOUNT PIC 99. OPTB 101900* 10 MFACTOR PIC 99. OPTB 102000 10 YEAR INFO OCCURS 10 TIMES OPTB 102100 INDEXED BY YEAR INDEX. OPTB 102200 15 TB YEAR PIC XX. OPTB 102300 15 TB COUNT PIC 99. OPTB 102400 15 EST SYMBOL PIC X. OPTB 102500 15 MEASUREMENT PIC +. 99999999E+ 99. OPTB 102600 15 TABLE MONTHS OCCURS 12 TIMES OPTB 102700 INDEXED BY MONTH INDEX. OPTB 102800 20 MONTH LOAD PIC +. 99999999E+ 99. OPTB 102900* OPTB 103000 01 CODE TABLE. OPTB 103100 05 STATE CNTY CODE TBL OCCURS 3500 TIMES OPTB 103200 INDEXED BY CODE INDEX. OPTB 103300 10 STATE CNTY CODE PIC X( 5). OPTB 103400* OPTB 103500 01 CONC FLOW CONVERSION FACTORS. OPTB 103600 05 FILLER PIC X( 18) VALUE ' 1903+. 37850000E+ 01'. OPTB 103700 05 FILLER PIC X( 18) VALUE ' 1907+. 37850000E 05'. OPTB 103800 05 FILLER PIC X( 18) VALUE ' 1916+. 10000000E 02'. OPTB 103900 05 FILLER PIC X( 18) VALUE ' 1978+. 54504000E 02'. OPTB 104000 05 FILLER PIC X( 18) VALUE ' 2003+. 37850000E+ 01'. OPTB 104100 05 FILLER PIC X( 18) VALUE ' 2007+. 37850000E 05'. OPTB 104200 05 FILLER PIC X( 18) VALUE ' 2016+. 10000000E 02'. OPTB 104300 05 FILLER PIC X( 18) VALUE ' 2078+. 54504000E 02'. OPTB 104400 05 FILLER PIC X( 18) VALUE ' 2103+. 37850000E 02'. OPTB 104500 05 FILLER PIC X( 18) VALUE ' 2107+. 37850000E 08'. OPTB 104600 05 FILLER PIC X( 18) VALUE ' 2116+. 10000000E 05'. OPTB 104700 05 FILLER PIC X( 18) VALUE ' 2178+. 54504000E 05'. OPTB 104800 05 FILLER PIC X( 18) VALUE ' 2203+. 37850000E 05'. OPTB 104900 05 FILLER PIC X( 18) VALUE ' 2207+. 37850000E 11'. OPTB 105000 05 FILLER PIC X( 18) VALUE ' 2216+. 10000000E 08'. OPTB 105100 05 FILLER PIC X( 18) VALUE ' 2278+. 54504000E 08'. OPTB 105200 05 FILLER PIC X( 18) VALUE ' 2803+. 37850000E 02'. OPTB 105300 05 FILLER PIC X( 18) VALUE ' 2807+. 37850000E 08'. OPTB 105400 05 FILLER PIC X( 18) VALUE ' 2816+. 10000000E 05'. OPTB 105500 05 FILLER PIC X( 18) VALUE ' 2878+. 54504000E 05'. OPTB 105600 05 FILLER PIC X( 18) VALUE ' 3203+. 37850000E+ 04'. OPTB 105700 05 FILLER PIC X( 18) VALUE ' 3207+. 37850000E 02'. OPTB 105800 05 FILLER PIC X( 18) VALUE ' 3216+. 10000000E+ 01'. OPTB 105900 05 FILLER PIC X( 18) VALUE ' 3278+. 54504000E+ 01'. OPTB 106000 05 FILLER PIC X( 18) VALUE ' 3603+. 37850000E+ 04'. OPTB 106100 05 FILLER PIC X( 18) VALUE ' 3607+. 37850000E 02'. OPTB 106200 05 FILLER PIC X( 18) VALUE ' 3616+. 10000000E+ 01'. OPTB 106300 05 FILLER PIC X( 18) VALUE ' 3678+. 54504000E+ 01'. OPTB 106400 05 FILLER PIC X( 18) VALUE ' 3703+. 37850000E+ 07'. OPTB 106500 05 FILLER PIC X( 18) VALUE ' 3707+. 37850000E+ 01'. OPTB 106600 05 FILLER PIC X( 18) VALUE ' 3716+. 10000000E+ 04'. OPTB 106700 05 FILLER PIC X( 18) VALUE ' 3778+. 54504000E+ 04'. OPTB 106800 05 FILLER PIC X( 18) VALUE ' 6403+. 37850000E+ 07'. OPTB 106900 05 FILLER PIC X( 18) VALUE ' 6407+. 37850000E+ 01'. OPTB 107000 05 FILLER PIC X( 18) VALUE ' 6416+. 10000000E+ 04'. OPTB 107100 05 FILLER PIC X( 18) VALUE ' 6478+. 54504000E+ 04'. OPTB 107200* OPTB 107300 01 CONC FLOW CONVERSION TABLE REDEFINES OPTB 107400 CONC FLOW CONVERSION FACTORS. OPTB 107500 05 CF CONVERSION TABLE OCCURS 36 TIMES INDEXED BY CF INDEX. OPTB 107600 07 CF UNITS PIC X( 4). OPTB 107700 07 CF FACTOR PIC +. 99999999E+ 99. OPTB 107800* OPTB 107900 01 LINKSTAT. OPTB 108000 05 FILL1 OCCURS 5 TIMES PIC X. OPTB 108100****************** SUBSCRIPTS *********************** OPTB 108200 01 WS SUBSCRIPTS. OPTB 108300 05 SUB PIC S99 COMP SYNC VALUE + 0. OPTB 108400 05 CALL SUB PIC S9 COMP SYNC VALUE + 0. OPTB 108500 05 YEAR SUB PIC S99 COMP SYNC VALUE + 0. OPTB 108600* 05 PARM SUB PIC S999 COMP SYNC VALUE + 0. OPTB 108700 05 PARM DEX PIC S999 COMP SYNC VALUE + 0. OPTB 108800 05 MONTH DEX PIC 99. OPTB 108900 05 PARM START PIC S999 COMP SYNC VALUE + 0. OPTB 109000 05 PARM TEST PIC S999 COMP SYNC VALUE + 0. OPTB 109100 05 PRINT SUB PIC S99 COMP SYNC VALUE + 0. OPTB 109200 05 HEAD SUB PIC S999 COMP SYNC VALUE + 0. OPTB 109300* OPTB 109400 01 WS INDEX INDEX. OPTB 109500* OPTB 109600 01 FILLER1 PIC S9( 4). OPTB 109700* OPTB 109800* LINKAGE SECTION. OPTB 109900 01 REPORT TYPE. OPTB 110000 05 FORMAT WANTED PIC XX. OPTB 110100 88 HYDROL FACILITY VALUE ' 01'. OPTB 110200 88 HYDROL OUTFALL VALUE ' 02'. OPTB 110300 88 HYDROL BASIN VALUE ' 03'. OPTB 110400 88 HYDROL STATE VALUE ' 04'. OPTB 110500 88 HYDROL COUNTY VALUE ' 05'. OPTB 110600 88 HYDROL CITY VALUE ' 06'. OPTB 110700 88 GEOL FACILITY VALUE ' 07'. OPTB 110800 88 GEOL OUTFALL VALUE ' 08'. OPTB 110900 88 GEOL STATE VALUE ' 09'. OPTB 111000 88 GEOL COUNTY VALUE ' 10'. OPTB 111100 88 GEOL CITY VALUE ' 11'. OPTB 111200 88 ENTIRE REPORT VALUE ' 12'. OPTB 111300 88 WORST CASE VALUE ' 13'. OPTB 111400 88 FACILITY LOCATION VALUE ' 14'. OPTB 111500 88 SIC2 REPORT VALUE ' 15'. OPTB 111600 88 PARM REPORT VALUE ' 16'. OPTB 111700 88 SAS DATA VALUE ' 17'. OPTB 111800 88 GRAPH ONLY VALUE ' 18'. OPTB 111900 88 GRAPH REPORT VALUE ' 01' ' 02' ' 07' ' 08' OPTB 112000 ' 13' ' 14' ' 18'. OPTB 112100 05 ANNUAL PERIOD RPT PIC X. OPTB 112200 05 NON DETECT SWITCH PIC X. OPTB 112300 88 ND LIMIT VALUE ' ' ' 0'. OPTB 112400 88 ND ZERO VALUE ' 1'. OPTB 112500 88 ND ESTIMATE VALUE ' 2'. OPTB 112600 05 ESTIMATE SWITCH PIC X. OPTB 112700 88 ESTIMATE OFF VALUE ' ' ' 0'. OPTB 112800 88 ESTIMATE ON VALUE ' 1'. OPTB 112900 05 ZERO COUNT SWITCH PIC X. OPTB 113000 88 ZERO COUNT VALUE ' 1'. OPTB 113100 88 ZERO NOCOUNT VALUE ' ' ' 0'. OPTB 113200 05 GROUP SWITCH PIC X. OPTB 113300 88 GROUP OFF VALUE ' ' ' 0' ' 2'. OPTB 113400 88 GROUP ON VALUE ' 1'. OPTB 113500 88 GROUPING VALUE ' 2'. OPTB 113600 88 GROUPING ON VALUE ' 3'. OPTB 113700 05 LIMIT EXCD SWITCH PIC X. OPTB 113800 88 LIMIT EXCD OFF VALUE ' ' ' 0'. OPTB 113900 88 LIMIT EXCD ON VALUE ' 1' ' 3'. OPTB 114000 88 LIMIT UNDER ON VALUE ' 2'. OPTB 114100 88 LIMIT EXCD UNDER ON VALUE ' 3'. OPTB 114200 88 LIMIT ALLOW ON VALUE ' 4'. OPTB 114300 88 LIMIT EXCD VALUE ' 1' ' 2' ' 3'. OPTB 114400 05 INSUFFICIENT SWITCH PIC X. OPTB 114500 88 INSUFFICIENT OFF VALUE ' ' ' 0'. OPTB 114600 88 INSUFFICIENT ON VALUE ' 1'. OPTB 114700 05 AVG MAX SWITCH PIC X. OPTB 114800 88 AVG MAX OFF VALUE ' ' ' 0'. OPTB 114900 88 AVG ONLY VALUE ' 1'. OPTB 115000 88 AVG MAX EST VALUE ' 2'. OPTB 115100 05 GRAPH SWITCH PIC X. OPTB 115200 88 GRAPH OFF VALUE ' ' ' 0'. OPTB 115300 88 GRAPH ON VALUE ' 1'. OPTB 115400* OPTB 115500* 01 WORST COUNT PIC 99 COMP. OPTB 115600 01 WORST COUNT PIC 99. OPTB 115700* OPTB 115800* 01 EX LOAD PIC X( 6). OPTB 115900* OPTB 116000* PROCEDURE DIVISION USING REPORT TYPE WORST COUNT. OPTB 116100 PROCEDURE DIVISION. OPTB 116200* OPTB 116300* DECLARATIVES. OPTB 116400* DEBUG SECTION. OPTB 116500* USE FOR DEBUGGING ON 470 ADD NUMBERS. OPTB 116600* USE FOR DEBUGGING ON 200 DATA PROCESSING OPTB 116700* 600 PRINT REPORT OPTB 116800* 610 PRINT PARAGRAPH OPTB 116900* 620 PRINT NUMBERS OPTB 117000* 750 PRINT REPORT INFO. OPTB 117100* DEBUG DISPLAY. OPTB 117200* DISPLAY DEBUG NAME. OPTB 117300* DEBUG EXIT. OPTB 117400* EXIT. OPTB 117500* END DECLARATIVES. OPTB 117600* OPTB 117700 MAIN ROUTINE SECTION. OPTB 117800 PERFORM 100 INITIALIZATION. OPTB 117900 IF GROUP ON OR ESTIMATE ON OPTB 118000 OPEN OUTPUT PCS GRP EST FILE OPTB 118100 PERFORM 200 SORT PROCESSING OPTB 118200 CLOSE PCS GRP EST FILE OPTB 118300 SORT SORT FILE ASCENDING KEY S FACILITY INFO OPTB 118400 USING PCS GRP EST FILE OPTB 118500 GIVING PCS FILE OPTB 118600 MOVE ' 2' TO GROUP SWITCH OPTB 118700 MOVE ' 0' TO ESTIMATE SWITCH OPTB 118800 MOVE HOLD REPORT TO FORMAT WANTED OPTB 118900 GO TO MAIN ROUTINE OPTB 119000 ELSE OPTB 119100 IF WORST CASE OPTB 119200 SORT SORT PRINT FILE OPTB 119300 ON ASCENDING KEY SORT PRINT PARM OPTB 119400 SORT PRINT YEAR OPTB 119500 SORT PRINT SIGN OPTB 119600 ON DESCENDING KEY SORT PRINT TOTAL 2 OPTB 119700 SORT PRINT TOTAL 1 OPTB 119800 ON ASCENDING KEY SORT PRINT NPID OPTB 119900 SORT PRINT LINE NO OPTB 120000 INPUT PROCEDURE IS 200 SORT PROCESSING OPTB 120100 OUTPUT PROCEDURE IS 2000 PRINT REPORT OPTB 120200 ELSE OPTB 120300 IF FACILITY LOCATION OPTB 120400 WRITE BGRAPH RECORD FROM WS BGRAPH RECORD OPTB 120500 PERFORM 205 FL DATA PROCESSING OPTB 120600 UNTIL JOB FINISHED OPTB 120700 ELSE OPTB 120800 PERFORM 200 DATA PROCESSING OPTB 120900 UNTIL JOB FINISHED. OPTB 121000 SET WS INDEX TO CODE INDEX. OPTB 121100 SET CODE INDEX TO 1. OPTB 121200 IF GRAPH REPORT AND GRAPH ON OPTB 121300 OPEN OUTPUT CODE FILE OPTB 121400 PERFORM 1000 WRITE CODES OPTB 121500 VARYING CODE INDEX FROM 1 BY 1 OPTB 121600 UNTIL CODE INDEX GREATER WS INDEX. OPTB 121700 PERFORM 1000 END DATA. OPTB 121800 STOP RUN. OPTB 121900* GOBACK. OPTB 122000************************************************************* OPTB 122100* THIS MODULE OPENS ALL FILES EXCEPT FOR THE PCS FILE. * OPTB 122200* THREE TABLES ARE LOADED WHICH WILL BE SEARCHED FOR * OPTB 122300* DESCRIPTIONS OF THE PARAMETERS CHOSEN, SIC2 CODES, AND * OPTB 122400* FHBC CODES RESPECTIVELY. TWO TEMPORARY DATASETS ARE THEN * OPTB 122500* ACCEPTED THROUGH A SYSIN CARD. && SWITCH CONTAINS A SET * OPTB 122600* OF SWITCHES AND && DATE CONTAINS THE REPORTING PERIOD. * OPTB 122700* && SWITCH IS THEN CHECKED TO DETERMINE IF THE USER WANTS * OPTB 122800* DATA CALCULATED AND TOTALED FOR THE ENTIRE PERIOD OR * OPTB 122900* INDIVIDUAL YEARLY TOTALS FOR AS MANY AS TEN YEARS AND A * OPTB 123000* GRAND TOTAL OF THOSE YEARS. IF TOTALS ARE DESIRED FOR * OPTB 123100* THE ENTIRE PERIOD THEN 0 IS MOVED TO A SWITCH CALLED RANGE* OPTB 123200* OTHERWISE, TOTALS ARE FOR EACH YEAR AND RANGE IS SET TO 1.* OPTB 123300* TOTALS ARE ACCUMULATED FOR EACH PARAMETER SELECTED, * OPTB 123400* WHERE THERE MAY BE UP TO A MAXIMUM OF FIVE PARAMETERS. THE* OPTB 123500* TWO 700 MODULES PRINT THE FIRST 5 HEADINGS. THE PCS FILE * OPTB 123600* IS THEN SORTED BY MEANS OF THE SORT COMMAND, ONE OF TWELVE* OPTB 123700* DIFFERENT WAYS ACCORDING TO THE TYPE OF LISTING DESIRED. * OPTB 123800* SINCE THE SORT COMMAND OPENS AND CLOSES THE FILE, IT MUST * OPTB 123900* BE REOPENED FOR PROCESSING. ALL THE FIELDS WHICH MAY CAUSE* OPTB 124000* A CONTROL BREAK ARE MOVED TO PREVIOUS KEYS IN WORKING * OPTB 124100* STORAGE. MODULE 740 THEN PRINTS TWO LINES OF INFORMATION * OPTB 124200* WHICH CORRESPOND TO THE LAST TWO HEADINGS PRINTED. THESE * OPTB 124300* TWO LINES CONTAIN INFORMATION SUCH AS THE BEGINNING AND * OPTB 124400* ENDING DATES FOR THE REPORTING PERIOD AND OTHER PERTINENT * OPTB 124500* INFORMATION IN ACCORDANCE WITH THE TYPE OF LISTING. FOR * OPTB 124600* EXAMPLE, IF THE REPORT IS A HYDROLOGICAL LISTING BY FACIL* OPTB 124700* ITY, THEN THE NPDES NAME AND ID WOULD BE INCLUDED AS WELL * OPTB 124800* AS THE BASIN CODE, RECEIVING WATERWAY, LATITUDE AND LONG * OPTB 124900* ITUDE, ETC... MODULE 640 CLEARS OUT PARM TABLE PRIOR TO * OPTB 125000* PROCESSING DATA. PARM TABLE IS USED TO RETAIN THE MVDT * OPTB 125100* YEAR( S), THE PARAMETER CODE( S) AND TO ACCUMULATE TOTALS * OPTB 125200* FOR EACH PARAMETER UNTIL THERE IS A CONTROL BREAK. * OPTB 125300************************************************************* OPTB 125400 100 INITIALIZATION. OPTB 125500 IF FIRST INITIALIZATION OPTB 125600 MOVE ' NO' TO FIRST INIT SW. OPTB 125700 ACCEPT REPORT TYPE OPTB 125800 ACCEPT WORST COUNT. OPTB 125900 IF GROUP ON OR ESTIMATE ON OPTB 126000 MOVE FORMAT WANTED TO HOLD REPORT OPTB 126100 MOVE ' 08' TO FORMAT WANTED OPTB 126200 ELSE OPTB 126300 IF FACILITY LOCATION OPTB 126400 MOVE ' 0' TO GROUP SWITCH. OPTB 126500 MOVE SPACES TO HOLD F UNIT1. OPTB 126600 MOVE SPACES TO HOLD F UNIT2. OPTB 126700 MOVE 0 TO HOLD F U S. OPTB 126800 MOVE ' NO' TO PCS EOF EOF SW WORST REPORT SW. OPTB 126900 IF WORST CASE OPTB 127000 MOVE ' 1' TO PAGE BREAK SW OPTB 127100 MOVE ' YES' TO WORST REPORT SW OPTB 127200 ELSE OPTB 127300 IF HYDROL BASIN OPTB 127400 MOVE ' 6' TO PAGE BREAK SW OPTB 127500 ELSE OPTB 127600 IF HYDROL STATE OR GEOL STATE OPTB 127700 MOVE ' 3' TO PAGE BREAK SW OPTB 127800 ELSE OPTB 127900 IF HYDROL COUNTY OR GEOL COUNTY OPTB 128000 MOVE ' 4' TO PAGE BREAK SW OPTB 128100 ELSE OPTB 128200 IF HYDROL CITY OR GEOL CITY OPTB 128300 MOVE ' 5' TO PAGE BREAK SW OPTB 128400 ELSE OPTB 128500 IF HYDROL FACILITY OR GEOL FACILITY OR FACILITY LOCATION OPTB 128600 OR GRAPH ONLY OPTB 128700 MOVE ' 1' TO PAGE BREAK SW OPTB 128800 ELSE OPTB 128900 IF HYDROL OUTFALL OR GEOL OUTFALL OPTB 129000 MOVE ' 2' TO PAGE BREAK SW OPTB 129100 ELSE OPTB 129200 IF SIC2 REPORT OPTB 129300 MOVE ' 8' TO PAGE BREAK SW OPTB 129400 ELSE OPTB 129500 IF ENTIRE REPORT OR PARM REPORT OR SAS DATA OPTB 129600 MOVE ' 7' TO PAGE BREAK SW OPTB 129700* ELSE OPTB 129800* IF SAS DATA OPTB 129900* MOVE ' 9' TO PAGE BREAK SW OPTB 130000 ELSE OPTB 130100 DISPLAY '*** ERROR IN CALL ***' OPTB 130200 DISPLAY ' INVALID ARGUMENT PASSED = ' FORMAT WANTED. OPTB 130300 IF NOT GROUPING OPTB 130400 OPEN INPUT LIMITS FILE OPTB 130500 SIC FILE OPTB 130600 BASIN FILE OPTB 130700 STBC FILE OPTB 130800 DATE FILE OPTB 130900 TITLE FILE OPTB 131000 PARM GROUP FILE OPTB 131100 OUTPUT SAS FILE REPORT FILE GRAPH FILE OPTB 131200* OUTPUT SAS FILE REPORT FILE. OPTB 131300 MOVE HIGH VALUES TO STBC TABLE SIC TABLE BASIN TABLE OPTB 131400 PARM DESC TABLE PARM GROUP TABLE. OPTB 131500 MOVE SPACES TO JOB EOF MNEMONIC SW FIELD WANTED SW OPTB 131600 SIC SW BASIN SW BAS2 SW SEARCH SW. OPTB 131700* PAGE BREAK SW. OPTB 131800 MOVE 0 TO RANGE YEAR INDICATOR HOLD COUNT PAGE CTR OPTB 131900 LINES USED RECORD COUNT COUNT 1 OPTB 132000 COUNT 2 COUNT 3 COUNT 4 COUNT 5 OPTB 132100 S PRINT LINE NO WS SUBSCRIPTS. OPTB 132200 IF ANNUAL PERIOD RPT EQUAL 1 OPTB 132300 MOVE 1 TO RANGE. OPTB 132400 MOVE WORST COUNT TO H WORST COUNT. OPTB 132500 IF NOT GROUPING OPTB 132600 PERFORM 150 READ LIMITS INFO OPTB 132700 PERFORM 130 LOAD PARM DESC TABLE OPTB 132800 VARYING LIMITS INDEX FROM 1 BY 1 OPTB 132900 UNTIL LIMITS INDEX GREATER 4000 OPTB 133000 PERFORM 160 READ SIC INFO OPTB 133100 PERFORM 135 LOAD SIC TABLE OPTB 133200 VARYING SIC INDEX FROM 1 BY 1 OPTB 133300 UNTIL SIC INDEX GREATER 1200 OPTB 133400 PERFORM 180 READ BASIN INFO OPTB 133500 PERFORM 140 LOAD BASIN TABLE OPTB 133600 VARYING BASIN INDEX FROM 1 BY 1 OPTB 133700 UNTIL BASIN INDEX GREATER 2500 OPTB 133800 PERFORM 190 READ STBC INFO OPTB 133900 PERFORM 145 LOAD STBC TABLE OPTB 134000 VARYING STBC INDEX FROM 1 BY 1 OPTB 134100 UNTIL STBC INDEX GREATER 200 OPTB 134200 PERFORM 195 READ PARM GROUP INFO OPTB 134300 PERFORM 147 LOAD PARM GROUP TABLE OPTB 134400 VARYING GROUP INDEX FROM 1 BY 1 OPTB 134500 UNTIL GROUP INDEX GREATER 1500 OPTB 134600 ACCEPT DATE IN FROM DATE OPTB 134700 MOVE YEAR IN TO YEAR OUT OPTB 134800 MOVE MONTH IN TO MONTH OUT OPTB 134900 MOVE DAY IN TO DAY OUT OPTB 135000 READ TITLE FILE INTO OPTIONAL HEADING OPTB 135100 PERFORM 770 CREATE OPTIONAL HEADING OPTB 135200 PERFORM 170 READ DATE FILE. OPTB 135300 IF GROUPING ON OPTB 135400 MOVE ' 2' TO GROUP SWITCH. OPTB 135500 IF GROUP OFF AND ESTIMATE OFF OPTB 135600 PERFORM 210 DETERMINE SORT OPTB 135700 ELSE OPTB 135800 PERFORM 275 GEO OUTFALL SORT OPTB 135900 MOVE ' YES' TO SEARCH SW. OPTB 136000 MOVE SPACES TO WS BGRAPH RECORD. OPTB 136100 MOVE ZEROS TO BG TOTAL. OPTB 136200 OPEN INPUT PCS FILE. OPTB 136300 PERFORM 500 READ PCS INFO. OPTB 136400 MOVE NPID TO PREV NPID. OPTB 136500 MOVE STATE TO PREV STATE. OPTB 136600 MOVE CNTY TO PREV CNTY. OPTB 136700 MOVE CITY TO PREV CITY. OPTB 136800 MOVE M YEAR TO PREV YEAR BG YEAR. OPTB 136900 MOVE SPACES TO PREV YRMNTH. OPTB 137000 MOVE MVDT TO PREV MVDT. OPTB 137100 MOVE DSCH TO PREV DSCH. OPTB 137200 MOVE MLOC TO HOLD MLOC. OPTB 137300 MOVE PARM TO PREV PARM BG PARM. OPTB 137400 MOVE FHBC TO PREV FHBC. OPTB 137500 MOVE SIC2 TO PREV SIC2. OPTB 137600 IF GROUP OFF AND ESTIMATE OFF OPTB 137700 IF HYDROL BASIN OR HYDROL CITY OR HYDROL COUNTY OR OPTB 137800 HYDROL STATE OPTB 137900 MOVE FHBC TO TL FHBC OPTB 138000 ELSE OPTB 138100 IF HYDROL STATE OR GEOL STATE OPTB 138200 MOVE STATE TO TL STATE OPTB 138300 ELSE OPTB 138400 IF HYDROL COUNTY OR GEOL COUNTY OPTB 138500 MOVE CNTY TO TL CNTY OPTB 138600 MOVE STATE TO TL STATE OPTB 138700 ELSE OPTB 138800 IF HYDROL CITY OR GEOL CITY OPTB 138900 MOVE CITY TO TL CITY OPTB 139000 MOVE CNTY TO TL CNTY OPTB 139100 MOVE STATE TO TL STATE OPTB 139200 ELSE OPTB 139300 IF SIC2 REPORT OPTB 139400 MOVE SIC2 TO TL SIC2 OPTB 139500 END IF OPTB 139600 END IF OPTB 139700 END IF OPTB 139800 END IF OPTB 139900 END IF OPTB 140000 IF NOT WORST REPORT AND NOT ( SAS DATA OR GRAPH ONLY) OPTB 140100 MOVE ZEROS TO LINES USED OPTB 140200 PERFORM 700 PRINT TOP HEADINGS OPTB 140300 PERFORM 700 PRINT HEADINGS OPTB 140400 PERFORM 740 PRINT REPORT INFO OPTB 140500 END IF OPTB 140600 MOVE SPACES TO CODE TABLE OPTB 140700 IF ( FACILITY BREAK OR OUTFALL BREAK) AND GRAPH ON OPTB 140800 MOVE STATE TO WS STATE OPTB 140900 MOVE CNTY TO WS CNTY OPTB 141000 SET CODE INDEX TO 1 OPTB 141100 MOVE WS STATE CNTY CODE TO OPTB 141200 STATE CNTY CODE ( CODE INDEX) OPTB 141300 END IF OPTB 141400* IF GRAPH REPORT OPTB 141500 MOVE SPACES TO BGRAPH RECORD OPTB 141600 PERFORM 580 BGRAPH TEST. OPTB 141700 MOVE ' NO' TO JOB EOF. OPTB 141800 MOVE SPACES TO FINAL PRINT OPTB 141900 TOTAL LINE OPTB 142000 MNEMONIC LINE. OPTB 142100 PERFORM 640 BLANK OUT PARAMETERS OPTB 142200 VARYING PARM INDEX FROM 1 BY 1 OPTB 142300 UNTIL PARM INDEX GREATER 500. OPTB 142400 OPTB 142500* OPTB 142600 130 LOAD PARM DESC TABLE. OPTB 142700 MOVE PARM CODE TO IN PARM CODE( LIMITS INDEX). OPTB 142800 MOVE PARM DESC TO IN PARM DESC( LIMITS INDEX). OPTB 142900 PERFORM 150 READ LIMITS INFO. OPTB 143000* OPTB 143100 135 LOAD SIC TABLE. OPTB 143200 MOVE SIC CODE TO SIC2 CODE( SIC INDEX). OPTB 143300 MOVE SIC DESC TO SIC2 DESC( SIC INDEX). OPTB 143400 PERFORM 160 READ SIC INFO. OPTB 143500* OPTB 143600 140 LOAD BASIN TABLE. OPTB 143700 MOVE BASIN CODE TO IN FHBC( BASIN INDEX). OPTB 143800 MOVE BASIN DESC TO IN FHBC DESC( BASIN INDEX). OPTB 143900 PERFORM 180 READ BASIN INFO. OPTB 144000* OPTB 144100 145 LOAD STBC TABLE. OPTB 144200 MOVE STBC CODE TO T STBC( STBC INDEX). OPTB 144300 MOVE STBC VALUES TO T STBC VALUES( STBC INDEX). OPTB 144400 PERFORM 190 READ STBC INFO. OPTB 144500* OPTB 144600 147 LOAD PARM GROUP TABLE. OPTB 144700 MOVE PARM GROUP RECORD TO PARM GROUP INFO( GROUP INDEX). OPTB 144800 PERFORM 195 READ PARM GROUP INFO. OPTB 144900* OPTB 145000 150 READ LIMITS INFO. OPTB 145100 READ LIMITS FILE AT END OPTB 145200 SET LIMITS INDEX TO 4000. OPTB 145300* OPTB 145400 160 READ SIC INFO. OPTB 145500 READ SIC FILE AT END OPTB 145600 SET SIC INDEX TO 1200. OPTB 145700* OPTB 145800 170 READ DATE FILE. OPTB 145900 READ DATE FILE INTO PERIOD BREAKDOWN. OPTB 146000 IF PERIOD TOTAL OPTB 146100 COMPUTE HOLD TCOUNT = (( YY2  YY1) + 1) * 12 OPTB 146200 IF MM1 NOT = 1 OPTB 146300 COMPUTE HOLD TCOUNT = HOLD TCOUNT  ( MM1  1) OPTB 146400 END IF OPTB 146500 IF MM2 NOT = 12 OPTB 146600 COMPUTE HOLD TCOUNT = HOLD TCOUNT  ( 12  MM2) OPTB 146700 END IF OPTB 146800 ELSE OPTB 146900 MOVE 12 TO HOLD TCOUNT. OPTB 147000* OPTB 147100 180 READ BASIN INFO. OPTB 147200 READ BASIN FILE AT END OPTB 147300 SET BASIN INDEX TO 2500. OPTB 147400 OPTB 147500 190 READ STBC INFO. OPTB 147600 READ STBC FILE AT END OPTB 147700 SET STBC INDEX TO 200. OPTB 147800 OPTB 147900 195 READ PARM GROUP INFO. OPTB 148000 READ PARM GROUP FILE AT END OPTB 148100 SET GROUP INDEX TO 1500. OPTB 148200 OPTB 148300 200 SORT PROCESSING SECTION. OPTB 148400 PERFORM 200 DATA PROCESSING OPTB 148500 UNTIL JOB FINISHED. OPTB 148600 GO TO 200 EXIT. OPTB 148700 OPTB 148800************************************************************* OPTB 148900* THIS MODULE INITIALIZES PARM INDEX AND YEAR INDEX * OPTB 149000* WHICH ARE THE POINTERS USED IN PARM TABLE TO ACCUMULATE * OPTB 149100* TOTALS. MODULE 300 IS THEN PERFORMED UNTIL IT IS TIME * OPTB 149200* FOR A CONTROL BREAK, AND CONTROL BREAK FIELDS ARE MOVED TO* OPTB 149300* THEIR PREVIOUS KEYS. ALL OF THE INFORMATION AND TOTALS * OPTB 149400* WHICH HAVE BEEN ACCUMULATED IN PARM TABLE ARE THEN PRINTED* OPTB 149500* IN MODULE 600 PRINT REPORT. ONCE THIS IS DONE, MODULE * OPTB 149600* 590 CHECKS THE LINE COUNTER AND PRINTS THE APPROPRIATE * OPTB 149700* CONTROL BREAK HEADINGS BEFORE CONTINUING TO PROCESS ANY * OPTB 149800* MORE RECORDS. PARM TABLE IS THEN CLEARED OUT BEFORE ANY * OPTB 149900* FURTHER PROCESSING IS PERFORMED. WHEN 200 DATA PROCESSING* OPTB 150000* HITS THE EOF, ' YES' WILL BE MOVED TO THE SWITCH JOB EOF TO* OPTB 150100* TERMINATE DATA PROCESSING AND TRIGGER THE CLOSURE OF ALL * OPTB 150200* FILES, ONLY AFTER THE LAST REPORT HAS BEEN PRINTED. * OPTB 150300* CONTROL IS THEN RETURNED TO PCS. MAIN. * OPTB 150400************************************************************* OPTB 150500 200 DATA PROCESSING. OPTB 150600D DISPLAY ' 200 DATA PROCESSING'. OPTB 150700 SET PARM INDEX TO 1. OPTB 150800 MOVE ZEROS TO YEAR INDICATOR YEAR SUB YEAR HIGH. OPTB 150900 SUBTRACT YY1 FROM M YEAR OPTB 151000 GIVING YEAR INDICATOR. OPTB 151100 ADD 1 TO YEAR INDICATOR. OPTB 151200 IF YEAR INDICATOR > YEAR HIGH OPTB 151300 MOVE YEAR INDICATOR TO YEAR HIGH. OPTB 151400 SET YEAR INDEX TO YEAR INDICATOR. OPTB 151500 MOVE M YEAR TO PREV YEAR TB YEAR( PARM INDEX, YEAR INDEX) OPTB 151600 BG YEAR OPTB 151700 MOVE PARM TO PARM NUM( PARM INDEX) PREV PARM OPTB 151800 BG PARM. OPTB 151900 MOVE MLOC TO PARM MLOC( PARM INDEX) OPTB 152000 IF GROUPING OPTB 152100 MOVE GRP LQSC TO PARM LQSC( PARM INDEX) OPTB 152200 ELSE OPTB 152300 MOVE LQSC TO PARM LQSC( PARM INDEX). OPTB 152400 MOVE SPACES TO PREV YRMNTH. OPTB 152500 OPTB 152600 IF WORST REPORT OPTB 152700 MOVE NPID TO S PRINT NPID OPTB 152800 MOVE STATE TO S PRINT STATE OPTB 152900 MOVE MLOC TO HOLD MLOC OPTB 153000 PERFORM 745 CREATE REPORT INFO OPTB 153100 PERFORM 300 PARM ROUTINE THRU 305 PARM ROUTINE UNTIL OPTB 153200* M YEAR NOT EQUAL PREV YEAR OR OPTB 153300 NPID NOT EQUAL PREV NPID OPTB 153400 MOVE NPID TO PREV NPID OPTB 153500 MOVE M YEAR TO PREV YEAR OPTB 153600 MOVE SPACES TO PREV YRMNTH OPTB 153700 PERFORM 580 BGRAPH TEST OPTB 153800 ELSE OPTB 153900 IF FACILITY BREAK OPTB 154000 MOVE MLOC TO HOLD MLOC OPTB 154100 PERFORM 300 PARM ROUTINE THRU 305 PARM ROUTINE UNTIL OPTB 154200 NPID NOT EQUAL PREV NPID OPTB 154300 MOVE NPID TO PREV NPID OPTB 154400 PERFORM 580 BGRAPH TEST OPTB 154500 ELSE OPTB 154600 IF OUTFALL BREAK OR GROUP ON OR ESTIMATE ON OPTB 154700 MOVE MLOC TO HOLD MLOC OPTB 154800 MOVE DSCH TO HOLD DSCH OPTB 154900* MOVE PIPE TO HOLD PIPE OPTB 155000 MOVE PLAT TO HOLD PLAT OPTB 155100 MOVE PLON TO HOLD PLON OPTB 155200 IF GROUP ON OR ESTIMATE ON OPTB 155300 MOVE SPACES TO SORT RECORD OPTB 155400 MOVE FACILITY INFO TO S FACILITY INFO OPTB 155500 MOVE PIPE INFO TO S PIPE INFO OPTB 155600 END IF OPTB 155700 PERFORM 300 PARM ROUTINE THRU 305 PARM ROUTINE UNTIL OPTB 155800 DSCH NOT EQUAL PREV DSCH OR OPTB 155900 NPID NOT EQUAL PREV NPID OPTB 156000 PERFORM 580 BGRAPH TEST OPTB 156100 ELSE OPTB 156200 IF BASIN BREAK OPTB 156300 PERFORM 300 PARM ROUTINE THRU 305 PARM ROUTINE UNTIL OPTB 156400 FHBC NOT EQUAL PREV FHBC OPTB 156500 MOVE FHBC TO PREV FHBC TL FHBC OPTB 156600 PERFORM 580 BGRAPH TEST OPTB 156700 ELSE OPTB 156800 IF STATE BREAK AND HYDROL STATE OPTB 156900 PERFORM 300 PARM ROUTINE THRU 305 PARM ROUTINE UNTIL OPTB 157000 STATE NOT EQUAL PREV STATE OR OPTB 157100 FHBC NOT EQUAL PREV FHBC OPTB 157200 MOVE STATE TO PREV STATE TL STATE OPTB 157300 MOVE FHBC TO PREV FHBC TL FHBC OPTB 157400 PERFORM 580 BGRAPH TEST OPTB 157500 ELSE OPTB 157600 IF STATE BREAK OPTB 157700 PERFORM 300 PARM ROUTINE THRU 305 PARM ROUTINE UNTIL OPTB 157800 STATE NOT EQUAL PREV STATE OPTB 157900 MOVE STATE TO PREV STATE TL STATE OPTB 158000 PERFORM 580 BGRAPH TEST OPTB 158100 ELSE OPTB 158200 IF COUNTY BREAK AND HYDROL COUNTY OPTB 158300 PERFORM 300 PARM ROUTINE THRU 305 PARM ROUTINE UNTIL OPTB 158400 CNTY NOT EQUAL PREV CNTY OR OPTB 158500 STATE NOT EQUAL PREV STATE OR OPTB 158600 FHBC NOT EQUAL PREV FHBC OPTB 158700 MOVE CNTY TO PREV CNTY TL CNTY OPTB 158800 MOVE STATE TO PREV STATE TL STATE OPTB 158900 MOVE FHBC TO PREV FHBC TL FHBC OPTB 159000 PERFORM 580 BGRAPH TEST OPTB 159100 ELSE OPTB 159200 IF COUNTY BREAK OPTB 159300 PERFORM 300 PARM ROUTINE THRU 305 PARM ROUTINE UNTIL OPTB 159400 CNTY NOT EQUAL PREV CNTY OR OPTB 159500 STATE NOT EQUAL PREV STATE OPTB 159600 MOVE CNTY TO PREV CNTY TL CNTY OPTB 159700 MOVE STATE TO PREV STATE TL STATE OPTB 159800 PERFORM 580 BGRAPH TEST OPTB 159900 ELSE OPTB 160000 IF CITY BREAK AND HYDROL CITY OPTB 160100 PERFORM 300 PARM ROUTINE THRU 305 PARM ROUTINE UNTIL OPTB 160200 CITY NOT EQUAL PREV CITY OR OPTB 160300 CNTY NOT EQUAL PREV CNTY OR OPTB 160400 STATE NOT EQUAL PREV STATE OR OPTB 160500 FHBC NOT EQUAL PREV FHBC OPTB 160600 MOVE CITY TO PREV CITY TL CITY OPTB 160700 MOVE CNTY TO PREV CNTY TL CNTY OPTB 160800 MOVE STATE TO PREV STATE TL STATE OPTB 160900 MOVE FHBC TO PREV FHBC TL FHBC OPTB 161000 PERFORM 580 BGRAPH TEST OPTB 161100 ELSE OPTB 161200 IF CITY BREAK OPTB 161300 PERFORM 300 PARM ROUTINE THRU 305 PARM ROUTINE UNTIL OPTB 161400 CITY NOT EQUAL PREV CITY OR OPTB 161500 CNTY NOT EQUAL PREV CNTY OR OPTB 161600 STATE NOT EQUAL PREV STATE OPTB 161700 MOVE CITY TO PREV CITY TL CITY OPTB 161800 MOVE CNTY TO PREV CNTY TL CNTY OPTB 161900 MOVE STATE TO PREV STATE TL STATE OPTB 162000 PERFORM 580 BGRAPH TEST OPTB 162100 ELSE OPTB 162200 IF SIC2 BREAK OPTB 162300 PERFORM 300 PARM ROUTINE THRU 305 PARM ROUTINE UNTIL OPTB 162400 SIC2 NOT EQUAL PREV SIC2 OPTB 162500 MOVE SIC2 TO PREV SIC2 TL SIC2 OPTB 162600 PERFORM 580 BGRAPH TEST OPTB 162700 ELSE OPTB 162800* IF REPORT BREAK OR SAS BREAK OPTB 162900 IF REPORT BREAK OPTB 163000 PERFORM 300 PARM ROUTINE THRU 305 PARM ROUTINE UNTIL OPTB 163100 END PCS. OPTB 163200 IF PARM INDEX < 500 OPTB 163300 SET PARM SUB TO PARM INDEX OPTB 163400* SET YEAR SUB TO YEAR INDEX OPTB 163500 MOVE YEAR HIGH TO YEAR SUB OPTB 163600 ELSE OPTB 163700 MOVE 500 TO PARM SUB OPTB 163800 MOVE YEAR HIGH TO YEAR SUB. OPTB 163900 IF GROUP ON OPTB 164000 PERFORM 900 GROUP ROUTINE OPTB 164100 ELSE OPTB 164200 IF ESTIMATE ON OPTB 164300 PERFORM 990 RELEASE PARM INFO VARYING PARM INDEX OPTB 164400 FROM 1 BY 1 UNTIL PARM INDEX > PARM SUB AFTER OPTB 164500 YEAR INDEX FROM 1 BY 1 UNTIL YEAR INDEX > YEAR SUB OPTB 164600 ELSE OPTB 164700 IF NOT ( SAS DATA OR GRAPH ONLY) OPTB 164800 SET PARM INDEX TO 1 OPTB 164900 PERFORM 600 PRINT REPORT UNTIL PARM INDEX > PARM SUB. OPTB 165000 IF MORE PCS OPTB 165100 IF GROUP OFF AND ESTIMATE OFF OPTB 165200 PERFORM 590 CONTROL BREAK OPTB 165300 ELSE OPTB 165400 MOVE NPID TO PREV NPID OPTB 165500 MOVE DSCH TO PREV DSCH OPTB 165600 END IF OPTB 165700 PERFORM 640 BLANK OUT PARAMETERS OPTB 165800 VARYING PARM INDEX FROM 1 BY 1 OPTB 165900 UNTIL PARM INDEX GREATER 500 OPTB 166000 MOVE ZEROS TO BG TOTAL OPTB 166100 ELSE OPTB 166200 MOVE ' YES' TO JOB EOF OPTB 166300 IF GROUP ON OR ESTIMATE ON OPTB 166400 CLOSE PCS FILE. OPTB 166500* OPTB 166600 205 FL DATA PROCESSING. OPTB 166700D DISPLAY ' 205 FL DATA PROCESSING'. OPTB 166800 IF PREV NPID NOT = NPID OPTB 166900 MOVE NPID TO PREV NPID OPTB 167000 PERFORM 580 BGRAPH TEST OPTB 167100 WRITE BGRAPH RECORD FROM WS BGRAPH RECORD OPTB 167200 PERFORM 590 CONTROL BREAK. OPTB 167300 MOVE STATE TO WS STATE. OPTB 167400 MOVE CNTY TO WS CNTY. OPTB 167500 IF WS STATE CNTY CODE NOT = STATE CNTY CODE ( CODE INDEX) OPTB 167600 SET CODE INDEX UP BY 1 OPTB 167700 MOVE WS STATE CNTY CODE TO STATE CNTY CODE ( CODE INDEX). OPTB 167800 PERFORM 500 READ PCS INFO. OPTB 167900 IF END PCS OPTB 168000 MOVE ' YES' TO JOB EOF. OPTB 168100************************************************************* OPTB 168200* THIS MODULE SORTS THE PCS FILE AND SETS A SEARCH SWITCH ON* OPTB 168300* TO DETERMINE IF A SEARCH SHOULD BE MADE FOR THE FHBC * OPTB 168400* CODES FURTHER ON IN THE PROGRAM FOR SPECIFIC REPORTS. * OPTB 168500************************************************************* OPTB 168600 210 DETERMINE SORT. OPTB 168700 IF HYDROL FACILITY OPTB 168800 PERFORM 230 HYDRO FACILITY SORT OPTB 168900 MOVE ' YES' TO SEARCH SW OPTB 169000 ELSE OPTB 169100 IF HYDROL OUTFALL OPTB 169200 PERFORM 235 HYDRO OUTFALL SORT OPTB 169300 MOVE ' YES' TO SEARCH SW OPTB 169400 ELSE OPTB 169500 IF HYDROL BASIN OPTB 169600 PERFORM 240 HYDRO BASIN SORT OPTB 169700 MOVE ' YES' TO SEARCH SW OPTB 169800 ELSE OPTB 169900 IF HYDROL STATE OPTB 170000 PERFORM 245 HYDRO STATE SORT OPTB 170100 MOVE ' YES' TO SEARCH SW OPTB 170200 ELSE OPTB 170300 IF HYDROL COUNTY OPTB 170400 PERFORM 250 HYDRO COUNTY SORT OPTB 170500 MOVE ' YES' TO SEARCH SW OPTB 170600 ELSE OPTB 170700 IF HYDROL CITY OPTB 170800 PERFORM 255 HYDRO CITY SORT OPTB 170900 MOVE ' YES' TO SEARCH SW OPTB 171000 ELSE OPTB 171100 IF GEOL FACILITY OR WORST CASE OR FACILITY LOCATION OPTB 171200 OR GRAPH ONLY OPTB 171300 PERFORM 270 GEO FACILITY SORT OPTB 171400 MOVE ' YES' TO SEARCH SW OPTB 171500 ELSE OPTB 171600 IF GEOL OUTFALL OPTB 171700 PERFORM 275 GEO OUTFALL SORT OPTB 171800 MOVE ' YES' TO SEARCH SW OPTB 171900 ELSE OPTB 172000 IF GEOL STATE OPTB 172100 PERFORM 280 GEO STATE SORT OPTB 172200 MOVE ' NO' TO SEARCH SW OPTB 172300 ELSE OPTB 172400 IF GEOL COUNTY OPTB 172500 PERFORM 285 GEO COUNTY SORT OPTB 172600 MOVE ' NO' TO SEARCH SW OPTB 172700 ELSE OPTB 172800 IF GEOL CITY OPTB 172900 PERFORM 290 GEO CITY SORT OPTB 173000 MOVE ' NO' TO SEARCH SW OPTB 173100 ELSE OPTB 173200 IF SIC2 REPORT OPTB 173300 PERFORM 293 SIC2 SORT OPTB 173400 MOVE ' NO' TO SEARCH SW OPTB 173500 ELSE OPTB 173600 IF PARM REPORT OPTB 173700 PERFORM 294 PARM SORT OPTB 173800 MOVE ' NO' TO SEARCH SW OPTB 173900 ELSE OPTB 174000 IF ENTIRE REPORT OR SAS DATA OPTB 174100 PERFORM 295 ENTIRE REPORT SORT OPTB 174200 MOVE ' NO' TO SEARCH SW OPTB 174300 ELSE OPTB 174400 DISPLAY '* ERROR IN CALL  INCORRECT ARGUMENT PASSED*' OPTB 174500 MOVE ' YES' TO JOB EOF. OPTB 174600* OPTB 174700 230 HYDRO FACILITY SORT. OPTB 174800 SORT SORT FILE ASCENDING KEY S FHBC OPTB 174900 S STATE OPTB 175000 S CNTY OPTB 175100 S CITY OPTB 175200 S NPID OPTB 175300 S PARM OPTB 175400 S MVDT OPTB 175500 DESCENDING KEY S MLOC OPTB 175600 ASCENDING KEY S DSCH OPTB 175700 USING PCS FILE OPTB 175800 GIVING PCS FILE. OPTB 175900* OPTB 176000 235 HYDRO OUTFALL SORT. OPTB 176100 SORT SORT FILE ASCENDING KEY S FHBC OPTB 176200 S STATE OPTB 176300 S CNTY OPTB 176400 S CITY OPTB 176500 S NPID OPTB 176600 S DSCH OPTB 176700 S PARM OPTB 176800 DESCENDING KEY S MLOC OPTB 176900 ASCENDING KEY S MVDT OPTB 177000 USING PCS FILE OPTB 177100 GIVING PCS FILE. OPTB 177200* OPTB 177300 240 HYDRO BASIN SORT. OPTB 177400 SORT SORT FILE ASCENDING KEY S FHBC OPTB 177500 S PARM OPTB 177600 S MVDT OPTB 177700 S NPID OPTB 177800 DESCENDING KEY S MLOC OPTB 177900 ASCENDING KEY S DSCH OPTB 178000 USING PCS FILE OPTB 178100 GIVING PCS FILE. OPTB 178200* OPTB 178300 245 HYDRO STATE SORT. OPTB 178400 SORT SORT FILE ASCENDING KEY S FHBC OPTB 178500 S STATE OPTB 178600 S PARM OPTB 178700 S MVDT OPTB 178800 S NPID OPTB 178900 DESCENDING KEY S MLOC OPTB 179000 ASCENDING KEY S DSCH OPTB 179100 USING PCS FILE OPTB 179200 GIVING PCS FILE. OPTB 179300* OPTB 179400 250 HYDRO COUNTY SORT. OPTB 179500 SORT SORT FILE ASCENDING KEY S FHBC OPTB 179600 S STATE OPTB 179700 S CNTY OPTB 179800 S PARM OPTB 179900 S MVDT OPTB 180000 S NPID OPTB 180100 DESCENDING KEY S MLOC OPTB 180200 ASCENDING KEY S DSCH OPTB 180300 USING PCS FILE OPTB 180400 GIVING PCS FILE. OPTB 180500* OPTB 180600 255 HYDRO CITY SORT. OPTB 180700 SORT SORT FILE ASCENDING KEY S FHBC OPTB 180800 S STATE OPTB 180900 S CNTY OPTB 181000 S CITY OPTB 181100 S PARM OPTB 181200 S MVDT OPTB 181300 S NPID OPTB 181400 DESCENDING KEY S MLOC OPTB 181500 ASCENDING KEY S DSCH OPTB 181600 USING PCS FILE OPTB 181700 GIVING PCS FILE. OPTB 181800* OPTB 181900 270 GEO FACILITY SORT. OPTB 182000 SORT SORT FILE ASCENDING KEY S STATE OPTB 182100 S CNTY OPTB 182200 S CITY OPTB 182300 S NPID OPTB 182400 S PARM OPTB 182500 S MVDT OPTB 182600 DESCENDING KEY S MLOC OPTB 182700 ASCENDING KEY S DSCH OPTB 182800 USING PCS FILE OPTB 182900 GIVING PCS FILE. OPTB 183000* OPTB 183100 275 GEO OUTFALL SORT. OPTB 183200 SORT SORT FILE ASCENDING KEY S STATE OPTB 183300 S CNTY OPTB 183400 S CITY OPTB 183500 S NPID OPTB 183600 S DSCH OPTB 183700 S PARM OPTB 183800 DESCENDING KEY S MLOC OPTB 183900 ASCENDING KEY S MVDT OPTB 184000 USING PCS FILE OPTB 184100 GIVING PCS FILE. OPTB 184200* OPTB 184300 280 GEO STATE SORT. OPTB 184400 SORT SORT FILE ASCENDING KEY S STATE OPTB 184500 S PARM OPTB 184600 S MVDT OPTB 184700 S NPID OPTB 184800 DESCENDING KEY S MLOC OPTB 184900 ASCENDING KEY S DSCH OPTB 185000 USING PCS FILE OPTB 185100 GIVING PCS FILE. OPTB 185200* OPTB 185300 285 GEO COUNTY SORT. OPTB 185400 SORT SORT FILE ASCENDING KEY S STATE OPTB 185500 S CNTY OPTB 185600 S PARM OPTB 185700 S MVDT OPTB 185800 S NPID OPTB 185900 DESCENDING KEY S MLOC OPTB 186000 ASCENDING KEY S DSCH OPTB 186100 USING PCS FILE OPTB 186200 GIVING PCS FILE. OPTB 186300* OPTB 186400 290 GEO CITY SORT. OPTB 186500 SORT SORT FILE ASCENDING KEY S STATE OPTB 186600 S CNTY OPTB 186700 S CITY OPTB 186800 S PARM OPTB 186900 S MVDT OPTB 187000 S NPID OPTB 187100 DESCENDING KEY S MLOC OPTB 187200 ASCENDING KEY S DSCH OPTB 187300 USING PCS FILE OPTB 187400 GIVING PCS FILE. OPTB 187500* OPTB 187600 293 SIC2 SORT. OPTB 187700 SORT SORT FILE ASCENDING KEY S SIC2 OPTB 187800 S PARM OPTB 187900 S MVDT OPTB 188000 S NPID OPTB 188100 DESCENDING KEY S MLOC OPTB 188200 ASCENDING KEY S DSCH OPTB 188300 USING PCS FILE OPTB 188400 GIVING PCS FILE. OPTB 188500* OPTB 188600 294 PARM SORT. OPTB 188700 SORT SORT FILE ASCENDING KEY S PARM OPTB 188800 S MVDT OPTB 188900 S NPID OPTB 189000 DESCENDING KEY S MLOC OPTB 189100 ASCENDING KEY S DSCH OPTB 189200 USING PCS FILE OPTB 189300 GIVING PCS FILE. OPTB 189400* OPTB 189500 295 ENTIRE REPORT SORT. OPTB 189600 SORT SORT FILE ASCENDING KEY S PARM OPTB 189700 S MVDT OPTB 189800 S NPID OPTB 189900 DESCENDING KEY S MLOC OPTB 190000 ASCENDING KEY S DSCH OPTB 190100 USING PCS FILE OPTB 190200 GIVING PCS FILE. OPTB 190300************************************************************* OPTB 190400* THERE ARE TWO MONITORING LOCATIONS ( MLOC( S)) WHICH ARE* OPTB 190500* BEING PROCESSED IN THIS PROGRAM, 1 AND 2. THE PCS FILE IS* OPTB 190600* SORTED WITH MLOC IN DESCENDING ORDER FOR ALL SORTS IN * OPTB 190700* ORDER TO GROUP 2' S AND 1' S WITH IDENTICAL MVDT'S. ALL 2' S* OPTB 190800* GET PROCESSED REGARDLESS. IF BOTH THE 1 AND THE 2 EXIST * OPTB 190900* FOR THE SAME CONTROL BREAK ONLY THE 2 IS PROCESSED, AND IF* OPTB 191000* ONLY THE 1 EXISTS THEN IT ALONE IS PROCESSED. MODULE * OPTB 191100* 450 SEARCHES THE STBC TABLE USING THE STATISTICAL BASE * OPTB 191200* CODE TO FIND THE APPROPRIATE ARRAY OF SWITCHES NEEDED TO * OPTB 191300* DETERMINE THE FIELDS USED IN THE CALCULATIONS. THE ARRAY * OPTB 191400* CONSISTS OF 5 SWITCHES WHICH MAY BE ON OR OFF, EACH ONE * OPTB 191500* REPRESENTS ONE FIELD. THEY ARE USED FOR THE FOLLOW * OPTB 191600* ING FIELDS: MQAV, MQMX, MCMN, MCAV, AND MCMX. ONLY THE * OPTB 191700* FIRST TWO SWITCHES ARE CHECKED SINCE REPORTING HERE IS * OPTB 191800* ONLY CONCERNED WITH QUANTITY AND NOT CONCENTRATION DATA. * OPTB 191900* MODULE 410 COMPUTES THE CALCULATIONS FOR THE TWO QUANTITY * OPTB 192000* FIELDS BY MULTIPLYING EITHER MQAV OR MQMX ( WHICHEVER ONE * OPTB 192100* IS CHOSEN) BY THE FIELD NRPU AND THEN BY 30 TO OBTAIN THE * OPTB 192200* AVERAGE MONTHLY EFFLUENT DISCHARGE AMOUNT. THIS VALUE IS * OPTB 192300* THEN PLACED IN A HOLD AREA. MODULE 470 TAKE THIS FIELD * OPTB 192400* NAMED HOLD MEASUREMENT AND ADDS IT TO PARM TABLE IN ORDER * OPTB 192500* TO ACCUMULATE TOTALS. ( SEE MODULE 470 DOCUMENTATION FOR * OPTB 192600* FURTHER DETAILS ). THE SAME DATA WHICH IS PLACED INTO * OPTB 192700* PARM TABLE IS BUILT INTO A GRAPH RECORD FOR FACILITY AND * OPTB 192800* OUTFALL REPORTS ONLY. THIS DATA IS WRITTEN TO GRAPH FILE * OPTB 192900* AS A PLOT FILE FOR THE OPTION B GRAPH PROGRAM. THIS CON * OPTB 193000* CLUDES THE PROCESSING FOR A RECORD, THE NEXT RECORD IS * OPTB 193100* THEN READ. * OPTB 193200************************************************************* OPTB 193300 300 PARM ROUTINE. OPTB 193400 IF PARM EQUAL PREV PARM AND MVDT EQUAL PREV MVDT OPTB 193500 AND NPID EQUAL PREV NPID AND DSCH EQUAL PREV DSCH OPTB 193600 AND MLOC NOT EQUAL HOLD MLOC AND NOT OUTFALL BREAK OPTB 193700 GO TO 305 PARM ROUTINE. OPTB 193800 MOVE MVDT TO PREV MVDT. OPTB 193900 IF FACILITY BREAK OR OUTFALL BREAK OPTB 194000 MOVE STATE TO WS STATE OPTB 194100 MOVE CNTY TO WS CNTY. OPTB 194200* PERFORM 450 SEARCH STBC. OPTB 194300 IF NOT GROUPING OPTB 194400 MOVE STAT TO LINKSTAT OPTB 194500 IF NOT SAS DATA OPTB 194600 MOVE SPACES TO FIELD WANTED SW OPTB 194700 PERFORM 460 DETERMINE FIELD OPTB 194800 VARYING CALL SUB OPTB 194900 FROM 1 BY 1 OPTB 195000 UNTIL CALL SUB GREATER 5 OPTB 195100 PERFORM 405 QUANTITY ROUTINE OPTB 195200 END IF OPTB 195300 IF SAS DATA OR ( GROUP ON AND SAS) OPTB 195400 IF NOT FLOW PARAMETER OPTB 195500 PERFORM 440 DET DATA FIELD OPTB 195600 END IF OPTB 195700 END IF OPTB 195800 ELSE OPTB 195900 PERFORM 490 LOAD PARM INFO. OPTB 196000 IF PERIOD TOTAL OPTB 196100 MOVE SPACES TO BG YEAR S PRINT YEAR. OPTB 196200 305 PARM ROUTINE. OPTB 196300 MOVE NPID TO PREV NPID. OPTB 196400 MOVE DSCH TO PREV DSCH. OPTB 196500 MOVE PARM TO PREV PARM. OPTB 196600 MOVE MLOC TO HOLD MLOC. OPTB 196700 IF PARM INDEX NOT > 500 OPTB 196800 PERFORM 500 READ PCS INFO. OPTB 196900 IF PERIOD TOTAL OPTB 197000 MOVE PREV YEAR TO M YEAR. OPTB 197100 IF NOT SAS DATA AND GROUP OFF AND ESTIMATE OFF OPTB 197200 IF (( FACILITY BREAK AND (( NPID NOT = PREV NPID) OR OPTB 197300 ( M YEAR NOT = PREV YEAR) OR ( PARM NOT = PREV PARM))) OROPTB 197400 ( OUTFALL BREAK AND (( NPID NOT = PREV NPID) OR OPTB 197500 ( M YEAR NOT = PREV YEAR) OR ( PARM NOT = PREV PARM) OR OPTB 197600 ( DSCH NOT = PREV DSCH) OR ( MLOC NOT = HOLD MLOC))) OR OPTB 197700 ( CITY BREAK AND (( CITY NOT = PREV CITY) OR OPTB 197800 ( CNTY NOT = PREV CNTY) OR ( STATE NOT = PREV STATE) OR OPTB 197900 ( M YEAR NOT = PREV YEAR) OR ( PARM NOT = PREV PARM))) OROPTB 198000 ( COUNTY BREAK AND (( CNTY NOT = PREV CNTY) OR OPTB 198100 ( STATE NOT = PREV STATE) OR OPTB 198200 ( M YEAR NOT = PREV YEAR) OR ( PARM NOT = PREV PARM))) OROPTB 198300 ( STATE BREAK AND (( STATE NOT = PREV STATE) OR OPTB 198400 ( M YEAR NOT = PREV YEAR) OR ( PARM NOT = PREV PARM))) OROPTB 198500 ( BASIN BREAK AND (( FHBC NOT = PREV FHBC) OR OPTB 198600 ( M YEAR NOT = PREV YEAR) OR ( PARM NOT = PREV PARM))) OROPTB 198700 ( SIC2 BREAK AND (( SIC2 NOT = PREV SIC2) OR OPTB 198800 ( M YEAR NOT = PREV YEAR) OR ( PARM NOT = PREV PARM))) OROPTB 198900 ( REPORT BREAK AND (( M YEAR NOT = PREV YEAR) OR OPTB 199000 ( PARM NOT = PREV PARM)))) OPTB 199100* IF ESTIMATE ON AND ( BG TOTAL > 0) AND OPTB 199200* TB COUNT( PARM INDEX, YEAR INDEX) < HOLD TCOUNT / MFOPTB 199300* ACTOR( PARM INDEX) OPTB 199400* COMPUTE BG TOTAL = BG TOTAL * HOLD TCOUNT / ( TB COUNT( OPTB 199500* PARM INDEX, YEAR INDEX) * MFACTOR( PARM INDEX)) OPTB 199600* END IF OPTB 199700 IF BG TOTAL > 0 AND < +. 1E 10 OPTB 199800 IF INSUFFICIENT OFF OPTB 199900 MOVE ZERO TO BG TOTAL OPTB 200000 ELSE OPTB 200100 IF BG TOTAL >= +. 1E 30 OPTB 200200 MOVE ZERO TO BG TOTAL OPTB 200300 END IF OPTB 200400 END IF OPTB 200500 END IF OPTB 200600 MOVE WS BGRAPH RECORD TO BGRAPH RECORD OPTB 200700 WRITE BGRAPH RECORD OPTB 200800 MOVE ZEROS TO BG TOTAL OPTB 200900 IF OUTFALL BREAK OPTB 201000 MOVE MLOC TO BG MLOC OPTB 201100 END IF OPTB 201200 IF (( FACILITY BREAK AND WS STATE CNTY CODE NOT EQUAL OPTB 201300 STATE CNTY CODE( CODE INDEX)) OR OPTB 201400 ( OUTFALL BREAK AND WS STATE CNTY CODE NOT EQUAL OPTB 201500 STATE CNTY CODE( CODE INDEX))) AND GRAPH ON OPTB 201600 IF HYDROL FACILITY OR HYDROL OUTFALL OPTB 201700 SET WS INDEX TO CODE INDEX OPTB 201800 SET CODE INDEX TO 1 OPTB 201900 SEARCH STATE CNTY CODE TBL OPTB 202000 AT END SET CODE INDEX TO WS INDEX OPTB 202100 SET CODE INDEX UP BY 1 OPTB 202200 MOVE WS STATE CNTY CODE TO OPTB 202300 STATE CNTY CODE( CODE INDEX) OPTB 202400 WHEN WS STATE CNTY CODE = OPTB 202500 STATE CNTY CODE( CODE INDEX) OPTB 202600 SET CODE INDEX TO WS INDEX OPTB 202700 ELSE OPTB 202800 SET CODE INDEX UP BY 1 OPTB 202900 MOVE WS STATE CNTY CODE TO OPTB 203000 STATE CNTY CODE( CODE INDEX). OPTB 203100************************************************************* OPTB 203200* MODULE 310 DOES A BINARY SEARCH OF PARM DESC TABLE TO * OPTB 203300* OBTAIN THE PARAMETER DESCRIPTION FOR EACH PARAMETER USED. * OPTB 203400************************************************************* OPTB 203500 310 SEARCH PARM DESC TABLE. OPTB 203600 SEARCH ALL PARM DESC INFO OPTB 203700 AT END MOVE ' NO' TO MNEMONIC SW OPTB 203800* DISPLAY '** ERROR DESCRIPTION NOT FOUND FOR PARAMETER**' OPTB 203900* DISPLAY ' PARM CODE = ' CONTROL PARM OPTB 204000* DISPLAY ' RECORD COUNT = ' RECORD COUNT OPTB 204100* DISPLAY ' NPID = ' NPID OPTB 204200 MOVE ' DES MISSING' TO M MNEM( PRINT SUB) OPTB 204300 WHEN IN PARM CODE( LIMITS INDEX) EQUAL CONTROL PARM OPTB 204400 MOVE ' YES' TO MNEMONIC SW OPTB 204500 MOVE IN PARM DESC( LIMITS INDEX) TO OPTB 204600 M MNEM( PRINT SUB). OPTB 204700*************************************************************** OPTB 204800* MODULE 320 DOES A BINARY SEARCH OF BASIN TABLE FOR THE * OPTB 204900* DESCRIPTIONS OF FHBC ( RIVER BASIN) CODES. * OPTB 205000*************************************************************** OPTB 205100 320 SEARCH BASIN DESC TABLE. OPTB 205200 SEARCH ALL BASIN INFO OPTB 205300* AT END MOVE ' NO' TO BASIN SW OPTB 205400 AT END MOVE ' BASIN CODE MISSING' TO P BASIN DESC OPTB 205500 WHEN IN FHBC( BASIN INDEX) EQUAL FHBC OPTB 205600 MOVE ' YES' TO BASIN SW OPTB 205700 MOVE IN FHBC DESC( BASIN INDEX) TO P BASIN DESC. OPTB 205800*************************************************************** OPTB 205900* MODULE 325 DOES A BINARY SEARCH OF THE FIRST TWO BYTES OF * OPTB 206000* THE BAS4 CODES IN THE BASIN TABLE FOR THE DESCRIPTIONS OF * OPTB 206100* BAS4 CODES IN SPECIAL CASES WHERE BAS4 CODES ARE TWO BYTES * OPTB 206200* LONG. * OPTB 206300*************************************************************** OPTB 206400* 325 SEARCH BASIN DESC TABLE. OPTB 206500* SEARCH ALL BAS2 INFO OPTB 206600* AT END MOVE ' NO' TO BAS2 SW OPTB 206700* MOVE ' BASIN CODE MISSING' TO P BASIN DESC OPTB 206800** DISPLAY '** ERROR  BASIN CODE NOT FOUND**' OPTB 206900** DISPLAY ' BASIN CODE = ' BAS2 OPTB 207000** DISPLAY ' RECORD COUNT = ' RECORD COUNT OPTB 207100** DISPLAY ' NPID = ' NPID OPTB 207200* WHEN IN BAS2( BAS2 INDEX) EQUAL BAS2 OPTB 207300* MOVE ' YES' TO BAS2 SW OPTB 207400* MOVE IN BAS2 DESC( BAS2 INDEX) TO P BASIN DESC. OPTB 207500************************************************************* OPTB 207600* MODULE 330 DOES A BINARY SEARCH OF SIC TABLE FOR THE * OPTB 207700* DESCRIPTIONS OF SIC2 CODES. * OPTB 207800************************************************************* OPTB 207900 330 SEARCH SIC DESC. OPTB 208000 SEARCH ALL SIC INFO OPTB 208100 AT END MOVE ' NO' TO SIC SW OPTB 208200 MOVE ' SIC2 CODE MISSING' TO FAC SIC2 DESC OPTB 208300* DISPLAY '** ERROR IN SEARCH FOR SIC2 CODE**' OPTB 208400* DISPLAY ' SIC2 CODE = ' SIC2 OPTB 208500* DISPLAY ' RECORD COUNT = ' RECORD COUNT OPTB 208600* DISPLAY ' NPID = ' NPID OPTB 208700 WHEN SIC2 CODE( SIC INDEX) EQUAL SIC2 OPTB 208800 MOVE ' YES' TO SIC SW OPTB 208900 MOVE SIC2 DESC( SIC INDEX) TO FAC SIC2 DESC. OPTB 209000* OPTB 209100 405 QUANTITY ROUTINE. OPTB 209200 IF NODI NOT = SPACE OPTB 209300 MOVE +. 1E 30 TO MQAV MQMX MCMN MCAV MCMX OPTB 209400 ELSE OPTB 209500 IF NOT ND LIMIT OPTB 209600 PERFORM 410 NON DETECT RTN OPTB 209700 END IF OPTB 209800 IF LIMIT EXCD ON OPTB 209900* IF MQAV > ZEROS AND LQAV > ZEROS OPTB 210000* SUBTRACT LQAV FROM MQAV OPTB 210100* ELSE OPTB 210200* MOVE 0 TO MQAV OPTB 210300* END IF OPTB 210400* IF MQMX > ZEROS AND LQMX > ZEROS OPTB 210500* SUBTRACT LQMX FROM MQMX OPTB 210600* ELSE OPTB 210700* MOVE 0 TO MQMX OPTB 210800* END IF OPTB 210900* IF MCMN > ZEROS AND LCMN > ZEROS OPTB 211000* SUBTRACT LCMN FROM MCMN OPTB 211100* ELSE OPTB 211200* MOVE 0 TO MCMN OPTB 211300* END IF OPTB 211400* IF MCAV > ZEROS AND LCAV > ZEROS OPTB 211500* SUBTRACT LCAV FROM MCAV OPTB 211600* ELSE OPTB 211700* MOVE 0 TO MCAV OPTB 211800* END IF OPTB 211900* IF MCMX > ZEROS AND LCMX > ZEROS OPTB 212000* SUBTRACT LCMX FROM MCMX OPTB 212100* ELSE OPTB 212200* MOVE 0 TO MCMX. OPTB 212300 IF LQAV > ZEROS OPTB 212400 IF MQAV > +. 1E 30 OPTB 212500 IF FILL1( 1) = ' 4' OPTB 212600 SUBTRACT MQAV FROM LQAV GIVING MQAV OPTB 212700 ELSE OPTB 212800 SUBTRACT LQAV FROM MQAV OPTB 212900 END IF OPTB 213000* SUBTRACT LQAV FROM MQAV OPTB 213100 IF MQAV <= 0 OPTB 213200 IF MQAV < 0 AND LIMIT EXCD UNDER ON OPTB 213300 MULTIPLY MQAV BY  1 GIVING MQAV OPTB 213400 MOVE '' TO LMQAV OPTB 213500 ELSE OPTB 213600 MOVE +. 1E 30 TO MQAV OPTB 213700 END IF OPTB 213800 END IF OPTB 213900 ELSE OPTB 214000 MOVE +. 1E 30 TO MQAV OPTB 214100 END IF OPTB 214200 ELSE OPTB 214300 MOVE 0 TO MQAV OPTB 214400 END IF OPTB 214500 IF LQMX > ZEROS OPTB 214600 IF MQMX > +. 1E 30 OPTB 214700 IF FILL1( 2) = ' 4' OPTB 214800 SUBTRACT MQMX FROM LQMX GIVING MQMX OPTB 214900 ELSE OPTB 215000 SUBTRACT LQMX FROM MQMX OPTB 215100 END IF OPTB 215200* SUBTRACT LQMX FROM MQMX OPTB 215300 IF MQMX <= 0 OPTB 215400 IF MQMX < 0 AND LIMIT EXCD UNDER ON OPTB 215500 MULTIPLY MQMX BY  1 GIVING MQMX OPTB 215600 MOVE '' TO LMQMX OPTB 215700 ELSE OPTB 215800 MOVE +. 1E 30 TO MQMX OPTB 215900 END IF OPTB 216000 END IF OPTB 216100 ELSE OPTB 216200 MOVE +. 1E 30 TO MQMX OPTB 216300 END IF OPTB 216400 ELSE OPTB 216500 MOVE 0 TO MQMX OPTB 216600 END IF OPTB 216700 IF LCMN > ZEROS OPTB 216800 IF MCMN > +. 1E 30 OPTB 216900 IF FILL1( 3) = ' 4' OPTB 217000 SUBTRACT MCMN FROM LCMN GIVING MCMN OPTB 217100 ELSE OPTB 217200 SUBTRACT LCMN FROM MCMN OPTB 217300 END IF OPTB 217400 IF MCMN <= 0 OPTB 217500 IF MCMN < 0 AND LIMIT EXCD UNDER ON OPTB 217600 MULTIPLY MCMN BY  1 GIVING MCMN OPTB 217700 MOVE '' TO LMCMN OPTB 217800 ELSE OPTB 217900 MOVE +. 1E 30 TO MCMN OPTB 218000 END IF OPTB 218100 END IF OPTB 218200 ELSE OPTB 218300 MOVE +. 1E 30 TO MCMN OPTB 218400 END IF OPTB 218500 ELSE OPTB 218600 MOVE 0 TO MCMN OPTB 218700 END IF OPTB 218800 IF LCAV > ZEROS OPTB 218900 IF MCAV > +. 1E 30 OPTB 219000 IF FILL1( 4) = ' 4' OPTB 219100 SUBTRACT MCAV FROM LCAV GIVING MCAV OPTB 219200 ELSE OPTB 219300 SUBTRACT LCAV FROM MCAV OPTB 219400 END IF OPTB 219500* SUBTRACT LCAV FROM MCAV OPTB 219600 IF MCAV <= 0 OPTB 219700 IF MCAV < 0 AND LIMIT EXCD UNDER ON OPTB 219800 MULTIPLY MCAV BY  1 GIVING MCAV OPTB 219900 MOVE '' TO LMCAV OPTB 220000 ELSE OPTB 220100 MOVE +. 1E 30 TO MCAV OPTB 220200 END IF OPTB 220300 END IF OPTB 220400 ELSE OPTB 220500 MOVE +. 1E 30 TO MCAV OPTB 220600 END IF OPTB 220700 ELSE OPTB 220800 MOVE 0 TO MCAV OPTB 220900 END IF OPTB 221000 IF LCMX > ZEROS OPTB 221100 IF MCMX > +. 1E 30 OPTB 221200 IF FILL1( 5) = ' 4' OPTB 221300 SUBTRACT MCMX FROM LCMX GIVING MCMX OPTB 221400 ELSE OPTB 221500 SUBTRACT LCMX FROM MCMX OPTB 221600 END IF OPTB 221700* SUBTRACT LCMX FROM MCMX OPTB 221800 IF MCMX <= 0 OPTB 221900 IF MCMX < 0 AND LIMIT EXCD UNDER ON OPTB 222000 MULTIPLY MCMX BY  1 GIVING MCMX OPTB 222100 MOVE '' TO LMCMX OPTB 222200 ELSE OPTB 222300 MOVE +. 1E 30 TO MCMX OPTB 222400 END IF OPTB 222500 END IF OPTB 222600 ELSE OPTB 222700 MOVE +. 1E 30 TO MCMX OPTB 222800 END IF OPTB 222900 ELSE OPTB 223000 MOVE 0 TO MCMX OPTB 223100 END IF OPTB 223200 ELSE OPTB 223300 IF LIMIT UNDER ON OPTB 223400* IF MQAV > ZEROS AND LQAV > ZEROS OPTB 223500* SUBTRACT MQAV FROM LQAV GIVING MQAV OPTB 223600* ELSE OPTB 223700* MOVE 0 TO MQAV OPTB 223800* END IF OPTB 223900* IF MQMX > ZEROS AND LQMX > ZEROS OPTB 224000* SUBTRACT MQMX FROM LQMX GIVING MQMX OPTB 224100* ELSE OPTB 224200* MOVE 0 TO MQMX OPTB 224300* END IF OPTB 224400* IF MCMN > ZEROS AND LCMN > ZEROS OPTB 224500* SUBTRACT MCMN FROM LCMN GIVING MCMN OPTB 224600* ELSE OPTB 224700* MOVE 0 TO MCMN OPTB 224800* END IF OPTB 224900* IF MCAV > ZEROS AND LCAV > ZEROS OPTB 225000* SUBTRACT MCAV FROM LCAV GIVING MCAV OPTB 225100* ELSE OPTB 225200* MOVE 0 TO MCAV OPTB 225300* END IF OPTB 225400* IF MCMX > ZEROS AND LCMX > ZEROS OPTB 225500* SUBTRACT MCMX FROM LCMX GIVING MCMX OPTB 225600* ELSE OPTB 225700* MOVE 0 TO MCMX. OPTB 225800 IF LQAV > ZEROS OPTB 225900 IF MQAV > +. 1E 30 OPTB 226000 IF FILL1( 1) = ' 4' OPTB 226100 SUBTRACT LQAV FROM MQAV OPTB 226200 ELSE OPTB 226300 SUBTRACT MQAV FROM LQAV GIVING MQAV OPTB 226400 END IF OPTB 226500* SUBTRACT MQAV FROM LQAV GIVING MQAV OPTB 226600 IF MQAV <= 0 OPTB 226700 MOVE +. 1E 30 TO MQAV OPTB 226800 END IF OPTB 226900 ELSE OPTB 227000 MOVE +. 1E 30 TO MQAV OPTB 227100 END IF OPTB 227200 ELSE OPTB 227300 MOVE 0 TO MQAV OPTB 227400 END IF OPTB 227500 IF LQMX > ZEROS OPTB 227600 IF MQMX > +. 1E 30 OPTB 227700 IF FILL1( 2) = ' 4' OPTB 227800 SUBTRACT LQMX FROM MQMX OPTB 227900 ELSE OPTB 228000 SUBTRACT MQMX FROM LQMX GIVING MQMX OPTB 228100 END IF OPTB 228200* SUBTRACT MQMX FROM LQMX GIVING MQMX OPTB 228300 IF MQMX <= 0 OPTB 228400 MOVE +. 1E 30 TO MQMX OPTB 228500 END IF OPTB 228600 ELSE OPTB 228700 MOVE +. 1E 30 TO MQMX OPTB 228800 END IF OPTB 228900 ELSE OPTB 229000 MOVE 0 TO MQMX OPTB 229100 END IF OPTB 229200 IF LCMN > ZEROS OPTB 229300 IF MCMN > +. 1E 30 OPTB 229400 IF FILL1( 3) = ' 4' OPTB 229500 SUBTRACT LCMN FROM MCMN OPTB 229600 ELSE OPTB 229700 SUBTRACT MCMN FROM LCMN GIVING MCMN OPTB 229800 END IF OPTB 229900 IF MCMN <= 0 OPTB 230000 MOVE +. 1E 30 TO MCMN OPTB 230100 END IF OPTB 230200 ELSE OPTB 230300 MOVE +. 1E 30 TO MCMN OPTB 230400 END IF OPTB 230500 ELSE OPTB 230600 MOVE 0 TO MCMN OPTB 230700 END IF OPTB 230800 IF LCAV > ZEROS OPTB 230900 IF MCAV > +. 1E 30 OPTB 231000 IF FILL1( 4) = ' 4' OPTB 231100 SUBTRACT LCAV FROM MCAV OPTB 231200 ELSE OPTB 231300 SUBTRACT MCAV FROM LCAV GIVING MCAV OPTB 231400 END IF OPTB 231500* SUBTRACT MCAV FROM LCAV GIVING MCAV OPTB 231600 IF MCAV <= 0 OPTB 231700 MOVE +. 1E 30 TO MCAV OPTB 231800 END IF OPTB 231900 ELSE OPTB 232000 MOVE +. 1E 30 TO MCAV OPTB 232100 END IF OPTB 232200 ELSE OPTB 232300 MOVE 0 TO MCAV OPTB 232400 END IF OPTB 232500 IF LCMX > ZEROS OPTB 232600 IF MCMX > +. 1E 30 OPTB 232700 IF FILL1( 5) = ' 4' OPTB 232800 SUBTRACT LCMX FROM MCMX OPTB 232900 ELSE OPTB 233000 SUBTRACT MCMX FROM LCMX GIVING MCMX OPTB 233100 END IF OPTB 233200* SUBTRACT MCMX FROM LCMX GIVING MCMX OPTB 233300 IF MCMX <= 0 OPTB 233400 MOVE +. 1E 30 TO MCMX OPTB 233500 END IF OPTB 233600 ELSE OPTB 233700 MOVE +. 1E 30 TO MCMX OPTB 233800 END IF OPTB 233900 ELSE OPTB 234000 MOVE 0 TO MCMX. OPTB 234100 IF LIMIT ALLOW ON OPTB 234200 MOVE LQAV TO MQAV OPTB 234300 MOVE LQMX TO MQMX OPTB 234400 MOVE LCMN TO MCMN OPTB 234500 MOVE LCAV TO MCAV OPTB 234600 MOVE LCMX TO MCMX. OPTB 234700 MOVE SPACE TO HOLD SIGN. OPTB 234800 IF ( LIMIT EXCD ON OR LIMIT UNDER ON) AND OPTB 234900 ( MQAV = 0 AND MQMX = 0 AND MCMN = 0 OPTB 235000 AND MCAV = 0 AND MCMX = 0) OPTB 235100 COMPUTE HOLD MEASUREMENT = 0 OPTB 235200 ELSE OPTB 235300 IF WS NRPU = 0 OR SPACES OPTB 235400 DISPLAY '** INVALID NRPU (' WS NRPU ') FOR ' MVDT OPTB 235500 ' ( NPID: ' NPID ' DSCH: ' DSCH ' PRAM: ' PARM OPTB 235600 ' MLOC: ' MLOC ') **' OPTB 235700 MOVE 1 TO WS NRPU OPTB 235800 MOVE 0 TO HOLD MEASUREMENT OPTB 235900 IF INSUFFICIENT ON OPTB 236000 MOVE +. 1E 50 TO HOLD MEASUREMENT OPTB 236100 END IF OPTB 236200 ELSE OPTB 236300 IF MQAV WANTED OPTB 236400 IF MQAV > ZEROS OPTB 236500 MOVE LMQAV TO HOLD SIGN OPTB 236600 COMPUTE HOLD MEASUREMENT = MQAV * WS NRPU * 30 OPTB 236700 IF FILL1( 1) = ' 2' OPTB 236800 COMPUTE HOLD MEASUREMENT = MQAV OPTB 236900 END IF OPTB 237000 ELSE OPTB 237100 IF F PRAM NOT = SPACES OPTB 237200 PERFORM 415 DETERMINE FIELD OPTB 237300 IF HOLD MEASUREMENT >= +. 1E 30 AND NOT FLOW PARAMETEROPTB 237400 PERFORM 420 CALC QUANT OPTB 237500 ELSE OPTB 237600* NEXT SENTENCE OPTB 237700 DISPLAY '** NO CORRESPONDING MEASUREMENT DATA FOR ' OPTB 237800 MVDT ' ( NPID: ' NPID ' DSCH: ' DSCH ' PRAM: ' OPTB 237900 PARM ' MLOC: ' MLOC ') **' OPTB 238000 IF MQMX > ZEROS AND MQMX WANTED OPTB 238100 MOVE LMQMX TO HOLD SIGN OPTB 238200 COMPUTE HOLD MEASUREMENT = MQMX * WS NRPU * 30 OPTB 238300 IF FILL1( 2) = ' 2' OPTB 238400 COMPUTE HOLD MEASUREMENT = MQMX OPTB 238500 END IF OPTB 238600 ELSE OPTB 238700 IF MQMX > ZEROS AND NOT AVG ONLY OPTB 238800 MOVE LMQMX TO HOLD SIGN OPTB 238900 COMPUTE HOLD MEASUREMENT = MQMX * WS NRPU * 30 OPTB 239000 IF FILL1( 2) = ' 2' OPTB 239100 COMPUTE HOLD MEASUREMENT = MQMX OPTB 239200 ELSE OPTB 239300 IF CHLORINE AND LIMIT EXCD OPTB 239400 AND FILL1( 2) = ' 3' OPTB 239500 COMPUTE HOLD MEASUREMENT = MQMX * WS NRPUOPTB 239600 ELSE OPTB 239700 IF FILL1( 2) = ' 3' AND AVG MAX EST OPTB 239800 DIVIDE 1.5 INTO HOLD MEASUREMENT OPTB 239900 END IF OPTB 240000 END IF OPTB 240100 END IF OPTB 240200 ELSE OPTB 240300 MOVE 0 TO HOLD MEASUREMENT OPTB 240400 IF ( ZERO COUNT AND MQAV = 0) OR INSUFFICIENT ONOPTB 240500 MOVE +. 1E 50 TO HOLD MEASUREMENT OPTB 240600 END IF OPTB 240700 END IF OPTB 240800 END IF OPTB 240900 END IF OPTB 241000 ELSE OPTB 241100 DISPLAY '** NO CORRESPONDING FLOW DATA FOR ' MVDT OPTB 241200 ' ( NPID: ' NPID ' DSCH: ' DSCH ' PRAM: ' PARM OPTB 241300 ' MLOC: ' MLOC ') **' OPTB 241400 IF MQMX > ZEROS AND MQMX WANTED OPTB 241500 MOVE LMQMX TO HOLD SIGN OPTB 241600 COMPUTE HOLD MEASUREMENT = MQMX * WS NRPU * 30 OPTB 241700 IF FILL1( 2) = ' 2' OPTB 241800 COMPUTE HOLD MEASUREMENT = MQMX OPTB 241900 END IF OPTB 242000 ELSE OPTB 242100 IF MQMX > ZEROS AND NOT AVG ONLY OPTB 242200 MOVE LMQMX TO HOLD SIGN OPTB 242300 COMPUTE HOLD MEASUREMENT = MQMX * WS NRPU * 30 OPTB 242400 IF FILL1( 2) = ' 2' OPTB 242500 COMPUTE HOLD MEASUREMENT = MQMX OPTB 242600 ELSE OPTB 242700 IF CHLORINE AND LIMIT EXCD AND FILL1( 2) = ' 3' OPTB 242800 COMPUTE HOLD MEASUREMENT = MQMX * WS NRPU OPTB 242900 ELSE OPTB 243000 IF FILL1( 2) = ' 3' AND AVG MAX EST OPTB 243100 DIVIDE 1.5 INTO HOLD MEASUREMENT OPTB 243200 END IF OPTB 243300 END IF OPTB 243400 END IF OPTB 243500 ELSE OPTB 243600 MOVE 0 TO HOLD MEASUREMENT OPTB 243700 IF ( ZERO COUNT AND MQAV = 0) OR INSUFFICIENT ON OPTB 243800 MOVE +. 1E 50 TO HOLD MEASUREMENT OPTB 243900 END IF OPTB 244000 END IF OPTB 244100 END IF OPTB 244200 END IF OPTB 244300 END IF OPTB 244400 ELSE OPTB 244500 IF MQMX WANTED OPTB 244600 IF MQMX > ZEROS OPTB 244700 MOVE LMQMX TO HOLD SIGN OPTB 244800 COMPUTE HOLD MEASUREMENT = MQMX * WS NRPU * 30 OPTB 244900 IF FILL1( 2) = ' 2' OPTB 245000 COMPUTE HOLD MEASUREMENT = MQMX OPTB 245100 END IF OPTB 245200 ELSE OPTB 245300 IF F PRAM NOT = SPACES OPTB 245400 PERFORM 415 DETERMINE FIELD OPTB 245500 IF HOLD MEASUREMENT >= +. 1E 30 AND NOT FLOW PARAMETEROPTB 245600 PERFORM 420 CALC QUANT OPTB 245700 ELSE OPTB 245800* NEXT SENTENCE OPTB 245900 DISPLAY '** NO CORRESPONDING MEASUREMENT DATA FOR ' OPTB 246000 MVDT ' ( NPID: ' NPID ' DSCH: ' DSCH ' PRAM: ' OPTB 246100 PARM ' MLOC: ' MLOC ') **' OPTB 246200* IF MQAV > ZEROS OPTB 246300* MOVE LMQAV TO HOLD SIGN OPTB 246400* COMPUTE HOLD MEASUREMENT = MQAV * WS NRPU * 30 OPTB 246500 IF MQAV > ZEROS AND NOT AVG ONLY OPTB 246600 MOVE LMQAV TO HOLD SIGN OPTB 246700 COMPUTE HOLD MEASUREMENT = MQAV * WS NRPU * 30 OPTB 246800 ELSE OPTB 246900 MOVE 0 TO HOLD MEASUREMENT OPTB 247000 IF ( ZERO COUNT AND MQMX = 0) OR INSUFFICIENT ONOPTB 247100 MOVE +. 1E 50 TO HOLD MEASUREMENT OPTB 247200 END IF OPTB 247300 END IF OPTB 247400 END IF OPTB 247500 ELSE OPTB 247600 DISPLAY '** NO CORRESPONDING FLOW DATA FOR ' MVDT OPTB 247700 ' ( NPID: ' NPID ' DSCH: ' DSCH ' PRAM: ' PARM OPTB 247800 ' MLOC: ' MLOC ') **' OPTB 247900 IF MQAV > ZEROS AND NOT AVG ONLY OPTB 248000 MOVE LMQAV TO HOLD SIGN OPTB 248100 COMPUTE HOLD MEASUREMENT = MQAV * WS NRPU * 30 OPTB 248200 ELSE OPTB 248300 MOVE 0 TO HOLD MEASUREMENT OPTB 248400 IF ( ZERO COUNT AND MQMX = 0) OR INSUFFICIENT ON OPTB 248500 MOVE +. 1E 50 TO HOLD MEASUREMENT OPTB 248600 END IF OPTB 248700 END IF OPTB 248800 END IF OPTB 248900 ELSE OPTB 249000 IF MCMN WANTED OR MCAV WANTED OR MCMX WANTED OPTB 249100 IF F PRAM NOT = SPACES OPTB 249200 PERFORM 415 DETERMINE FIELD OPTB 249300 IF HOLD MEASUREMENT >= +. 1E 30 AND NOT FLOW PARAMETER OPTB 249400 PERFORM 420 CALC QUANT OPTB 249500 END IF OPTB 249600 ELSE OPTB 249700 DISPLAY '** NO CORRESPONDING FLOW DATA FOR ' MVDT OPTB 249800 ' ( NPID: ' NPID ' DSCH: ' DSCH ' PRAM: ' PARM OPTB 249900 ' MLOC: ' MLOC ') **' OPTB 250000 IF AVG ONLY OPTB 250100 MOVE 0 TO HOLD MEASUREMENT OPTB 250200 IF ( ZERO COUNT AND (( MCAV = 0) OR ( MCMX = 0) OPTB 250300 OR ( MCMN = 0))) OR INSUFFICIENT ON OPTB 250400 MOVE +. 1E 50 TO HOLD MEASUREMENT OPTB 250500 END IF OPTB 250600 ELSE OPTB 250700 IF MQAV > ZEROS OPTB 250800 MOVE LMQAV TO HOLD SIGN OPTB 250900 COMPUTE HOLD MEASUREMENT = MQAV * WS NRPU * 30 OPTB 251000 ELSE OPTB 251100 IF MQMX > ZEROS OPTB 251200 MOVE LMQMX TO HOLD SIGN OPTB 251300 COMPUTE HOLD MEASUREMENT = MQMX * WS NRPU * 30 OPTB 251400 IF CHLORINE AND LIMIT EXCD OPTB 251500 COMPUTE HOLD MEASUREMENT = MQAV * WS NRPU OPTB 251600 ELSE OPTB 251700 IF AVG MAX EST OPTB 251800 DIVIDE 1.5 INTO HOLD MEASUREMENT OPTB 251900 END IF OPTB 252000 END IF OPTB 252100 ELSE OPTB 252200 MOVE 0 TO HOLD MEASUREMENT OPTB 252300 IF ( ZERO COUNT AND (( MQAV = 0) OR ( MQMX = 0))) OROPTB 252400 INSUFFICIENT ON OPTB 252500 MOVE +. 1E 50 TO HOLD MEASUREMENT OPTB 252600 END IF OPTB 252700 END IF OPTB 252800 END IF OPTB 252900 END IF OPTB 253000 ELSE OPTB 253100* MOVE 0 TO HOLD MEASUREMENT OPTB 253200 DISPLAY '** STATISTICAL BASE CODE ' STAT OPTB 253300 ' INVALID FOR THIS OPTION ( NPID: ' NPID OPTB 253400 ' DSCH: ' DSCH ' PRAM: ' PARM ' MLOC: ' MLOC ') **' OPTB 253500 IF AVG ONLY OPTB 253600 MOVE 0 TO HOLD MEASUREMENT OPTB 253700 IF ( ZERO COUNT AND (( MQAV = 0) OR ( MQMX = 0))) OR OPTB 253800 INSUFFICIENT ON OPTB 253900 MOVE +. 1E 50 TO HOLD MEASUREMENT OPTB 254000 END IF OPTB 254100 ELSE OPTB 254200 IF MQAV > ZEROS OPTB 254300 MOVE LMQAV TO HOLD SIGN OPTB 254400 COMPUTE HOLD MEASUREMENT = MQAV * WS NRPU * 30 OPTB 254500 IF FILL1( 1) = ' 3' OPTB 254600 IF CHLORINE AND LIMIT EXCD OPTB 254700 COMPUTE HOLD MEASUREMENT = MQAV * WS NRPU OPTB 254800 ELSE OPTB 254900 IF AVG MAX EST OPTB 255000 DIVIDE 1.5 INTO HOLD MEASUREMENT OPTB 255100 END IF OPTB 255200 END IF OPTB 255300 END IF OPTB 255400 ELSE OPTB 255500 IF MQMX > ZEROS OPTB 255600 MOVE LMQMX TO HOLD SIGN OPTB 255700 COMPUTE HOLD MEASUREMENT = MQMX * WS NRPU * 30 OPTB 255800 IF FILL1( 2) = ' 3' OPTB 255900 IF CHLORINE AND LIMIT EXCD OPTB 256000 COMPUTE HOLD MEASUREMENT = MQMX * WS NRPU OPTB 256100 ELSE OPTB 256200 IF AVG MAX EST OPTB 256300 DIVIDE 1.5 INTO HOLD MEASUREMENT OPTB 256400 END IF OPTB 256500 END IF OPTB 256600 END IF OPTB 256700 ELSE OPTB 256800 IF F PRAM NOT = SPACES OPTB 256900 PERFORM 415 DETERMINE FIELD OPTB 257000 IF HOLD MEASUREMENT >= +. 1E 30 AND OPTB 257100 NOT FLOW PARAMETER OPTB 257200 PERFORM 420 CALC QUANT OPTB 257300 END IF OPTB 257400* ELSE OPTB 257500* NEXT SENTENCE OPTB 257600 ELSE OPTB 257700 MOVE 0 TO HOLD MEASUREMENT OPTB 257800* IF ZERO COUNT OR (( MCAV = 0) OR ( MCMX = 0) OPTB 257900 IF ( ZERO COUNT AND (( MCAV = 0) OR ( MCMX = 0) OPTB 258000 OR ( MCMN = 0))) OR INSUFFICIENT ON OPTB 258100 MOVE +. 1E 50 TO HOLD MEASUREMENT OPTB 258200 END IF OPTB 258300 DISPLAY '** NO CORRESPONDING FLOW DATA FOR ' MVDT OPTB 258400 ' ( NPID: ' NPID ' DSCH: ' DSCH ' PRAM: ' PARM OPTB 258500 ' MLOC: ' MLOC ') **'. OPTB 258600 IF FLOW PARAMETER OPTB 258700 PERFORM 430 CHECK FLOW. OPTB 258800 PERFORM 470 ADD NUMBERS. OPTB 258900* OPTB 259000 410 NON DETECT RTN. OPTB 259100 IF ND ZERO OPTB 259200 IF LMQAV = '<' OPTB 259300 MOVE +. 1E 30 TO MQAV OPTB 259400 END IF OPTB 259500 IF LMQMX = '<' OPTB 259600 MOVE +. 1E 30 TO MQMX OPTB 259700 END IF OPTB 259800 IF LMCMN = '<' OPTB 259900 MOVE +. 1E 30 TO MCMN OPTB 260000 END IF OPTB 260100 IF LMCAV = '<' OPTB 260200 MOVE +. 1E 30 TO MCAV OPTB 260300 END IF OPTB 260400 IF LMCMX = '<' OPTB 260500 MOVE +. 1E 30 TO MCMX OPTB 260600 END IF OPTB 260700 ELSE OPTB 260800 IF ND ESTIMATE OPTB 260900 IF LMQAV = '<' OPTB 261000 DIVIDE MQAV BY 2 GIVING MQAV OPTB 261100 END IF OPTB 261200 IF LMQMX = '<' OPTB 261300 DIVIDE MQMX BY 2 GIVING MQMX OPTB 261400 END IF OPTB 261500 IF LMCMN = '<' OPTB 261600 DIVIDE MCMN BY 2 GIVING MCMN OPTB 261700 END IF OPTB 261800 IF LMCAV = '<' OPTB 261900 DIVIDE MCAV BY 2 GIVING MCAV OPTB 262000 END IF OPTB 262100 IF LMCMX = '<' OPTB 262200 DIVIDE MCMX BY 2 GIVING MCMX OPTB 262300 END IF. OPTB 262400* OPTB 262500 415 DETERMINE FIELD. OPTB 262600 IF FILL1( 3) = ' 1' OR ' 2' OPTB 262700 IF MCMN > 0 OPTB 262800 MOVE LMCMN TO HOLD SIGN OPTB 262900 COMPUTE HOLD MEASUREMENT = MCMN * WS NRPU * 30 OPTB 263000 IF FLOW PARAMETER AND FILL1( 3) = ' 2' OPTB 263100 COMPUTE HOLD MEASUREMENT = MCMN OPTB 263200 END IF OPTB 263300 ELSE OPTB 263400 IF MCAV > 0 OPTB 263500 IF MCAV WANTED OPTB 263600 MOVE LMCAV TO HOLD SIGN OPTB 263700 COMPUTE HOLD MEASUREMENT = MCAV * WS NRPU * 30 OPTB 263800 IF FLOW PARAMETER AND FILL1( 4) = ' 2' OPTB 263900 COMPUTE HOLD MEASUREMENT = MCAV OPTB 264000 END IF OPTB 264100 ELSE OPTB 264200 IF NOT AVG ONLY OPTB 264300 MOVE LMCAV TO HOLD SIGN OPTB 264400 COMPUTE HOLD MEASUREMENT = MCAV * WS NRPU * 30 OPTB 264500 IF FILL1( 4) = ' 3' OPTB 264600 IF CHLORINE AND LIMIT EXCD OPTB 264700 COMPUTE HOLD MEASUREMENT = MCAV * WS NRPU OPTB 264800 ELSE OPTB 264900 IF AVG MAX EST OPTB 265000 DIVIDE 1.5 INTO HOLD MEASUREMENT OPTB 265100 END IF OPTB 265200 END IF OPTB 265300 END IF OPTB 265400 END IF OPTB 265500 END IF OPTB 265600 ELSE OPTB 265700 IF MCMX > 0 OPTB 265800 IF MCMX WANTED OPTB 265900 MOVE LMCMX TO HOLD SIGN OPTB 266000 COMPUTE HOLD MEASUREMENT = MCMX * WS NRPU * 30 OPTB 266100 IF FLOW PARAMETER AND FILL1( 5) = ' 2' OPTB 266200 COMPUTE HOLD MEASUREMENT = MCMX OPTB 266300 END IF OPTB 266400 ELSE OPTB 266500 IF NOT AVG ONLY OPTB 266600 MOVE LMCMX TO HOLD SIGN OPTB 266700 COMPUTE HOLD MEASUREMENT = MCMX * WS NRPU * 30 OPTB 266800 IF FILL1( 5) = ' 3' OPTB 266900 IF CHLORINE AND LIMIT EXCD OPTB 267000 COMPUTE HOLD MEASUREMENT = MCMX * WS NRPU OPTB 267100 ELSE OPTB 267200 IF AVG MAX EST OPTB 267300 DIVIDE 1.5 INTO HOLD MEASUREMENT OPTB 267400 END IF OPTB 267500 END IF OPTB 267600 END IF OPTB 267700 END IF OPTB 267800 END IF OPTB 267900 ELSE OPTB 268000 MOVE 0 TO HOLD MEASUREMENT OPTB 268100 IF ( ZERO COUNT AND MCMN = 0) OR INSUFFICIENT ON OPTB 268200 MOVE +. 1E 50 TO HOLD MEASUREMENT OPTB 268300 END IF OPTB 268400 END IF OPTB 268500 END IF OPTB 268600 END IF OPTB 268700 ELSE OPTB 268800 IF FILL1( 4) = ' 1' OR ' 2' OPTB 268900 IF MCAV > 0 OPTB 269000 MOVE LMCAV TO HOLD SIGN OPTB 269100 COMPUTE HOLD MEASUREMENT = MCAV * WS NRPU * 30 OPTB 269200 IF FLOW PARAMETER AND FILL1( 4) = ' 2' OPTB 269300 COMPUTE HOLD MEASUREMENT = MCAV OPTB 269400 END IF OPTB 269500 ELSE OPTB 269600 IF MCMX > 0 OPTB 269700 IF MCMX WANTED OPTB 269800 MOVE LMCMX TO HOLD SIGN OPTB 269900 COMPUTE HOLD MEASUREMENT = MCMX * WS NRPU * 30 OPTB 270000 IF FLOW PARAMETER AND FILL1( 5) = ' 2' OPTB 270100 COMPUTE HOLD MEASUREMENT = MCMX OPTB 270200 END IF OPTB 270300 ELSE OPTB 270400 IF NOT AVG ONLY OPTB 270500 MOVE LMCMX TO HOLD SIGN OPTB 270600 COMPUTE HOLD MEASUREMENT = MCMX * WS NRPU * 30 OPTB 270700 IF FILL1( 5) = ' 3' OPTB 270800 IF CHLORINE AND LIMIT EXCD OPTB 270900 COMPUTE HOLD MEASUREMENT = MCMX * WS NRPU OPTB 271000 ELSE OPTB 271100 IF AVG MAX EST OPTB 271200 DIVIDE 1.5 INTO HOLD MEASUREMENT OPTB 271300 END IF OPTB 271400 END IF OPTB 271500 END IF OPTB 271600 END IF OPTB 271700 END IF OPTB 271800 ELSE OPTB 271900 IF MCMN > 0 AND NOT AVG ONLY OPTB 272000 MOVE LMCMN TO HOLD SIGN OPTB 272100 COMPUTE HOLD MEASUREMENT = MCMN * WS NRPU * 30 OPTB 272200 ELSE OPTB 272300 MOVE 0 TO HOLD MEASUREMENT OPTB 272400 IF ( ZERO COUNT AND MCAV = 0) OR INSUFFICIENT ON OPTB 272500 MOVE +. 1E 50 TO HOLD MEASUREMENT OPTB 272600 END IF OPTB 272700 END IF OPTB 272800 END IF OPTB 272900 END IF OPTB 273000 ELSE OPTB 273100 IF FILL1( 5) = ' 1' OR ' 2' OPTB 273200 IF MCMX > 0 OPTB 273300 MOVE LMCMX TO HOLD SIGN OPTB 273400 COMPUTE HOLD MEASUREMENT = MCMX * WS NRPU * 30 OPTB 273500 IF FLOW PARAMETER AND FILL1( 5) = ' 2' OPTB 273600 COMPUTE HOLD MEASUREMENT = MCMX OPTB 273700 END IF OPTB 273800 ELSE OPTB 273900 IF MCAV > 0 AND NOT AVG ONLY OPTB 274000 MOVE LMCAV TO HOLD SIGN OPTB 274100 COMPUTE HOLD MEASUREMENT = MCAV * WS NRPU * 30 OPTB 274200 ELSE OPTB 274300 IF MCMN > 0 AND NOT AVG ONLY OPTB 274400 MOVE LMCMN TO HOLD SIGN OPTB 274500 COMPUTE HOLD MEASUREMENT = MCMN * WS NRPU * 30 OPTB 274600 ELSE OPTB 274700 MOVE 0 TO HOLD MEASUREMENT OPTB 274800 IF ( ZERO COUNT AND MCMX = 0) OR INSUFFICIENT ON OPTB 274900 MOVE +. 1E 50 TO HOLD MEASUREMENT OPTB 275000 END IF OPTB 275100 END IF OPTB 275200 END IF OPTB 275300 END IF OPTB 275400 ELSE OPTB 275500 IF AVG ONLY OPTB 275600 MOVE 0 TO HOLD MEASUREMENT OPTB 275700 IF ( ZERO COUNT AND (( MCMN = 0) OR ( MCAV = 0) OPTB 275800 OR ( MCMX = 0))) OR INSUFFICIENT ON OPTB 275900 MOVE +. 1E 50 TO HOLD MEASUREMENT OPTB 276000 END IF OPTB 276100 ELSE OPTB 276200 IF MCAV > 0 OPTB 276300 MOVE LMCAV TO HOLD SIGN OPTB 276400 COMPUTE HOLD MEASUREMENT = MCAV * WS NRPU * 30 OPTB 276500 IF FILL1( 4) = ' 3' OPTB 276600 IF CHLORINE AND LIMIT EXCD OPTB 276700 COMPUTE HOLD MEASUREMENT = MCAV * WS NRPU OPTB 276800 ELSE OPTB 276900 IF AVG MAX EST OPTB 277000 DIVIDE 1.5 INTO HOLD MEASUREMENT OPTB 277100 END IF OPTB 277200 END IF OPTB 277300 END IF OPTB 277400 ELSE OPTB 277500 IF MCMX > 0 OPTB 277600 MOVE LMCMX TO HOLD SIGN OPTB 277700 COMPUTE HOLD MEASUREMENT = MCMX * WS NRPU * 30 OPTB 277800 IF FILL1( 5) = ' 3' OPTB 277900 IF CHLORINE AND LIMIT EXCD OPTB 278000 COMPUTE HOLD MEASUREMENT = MCMX * WS NRPU OPTB 278100 ELSE OPTB 278200 IF AVG MAX EST OPTB 278300 DIVIDE 1.5 INTO HOLD MEASUREMENT OPTB 278400 END IF OPTB 278500 END IF OPTB 278600 END IF OPTB 278700 ELSE OPTB 278800 IF MCMN > 0 OPTB 278900 MOVE LMCMN TO HOLD SIGN OPTB 279000 COMPUTE HOLD MEASUREMENT = MCMN * WS NRPU * 30 OPTB 279100 IF FILL1( 3) = ' 3' OPTB 279200 IF CHLORINE AND LIMIT EXCD OPTB 279300 COMPUTE HOLD MEASUREMENT = MCMN * WS NRPU OPTB 279400 ELSE OPTB 279500 IF AVG MAX EST OPTB 279600 DIVIDE 1.5 INTO HOLD MEASUREMENT OPTB 279700 END IF OPTB 279800 END IF OPTB 279900 END IF OPTB 280000 ELSE OPTB 280100 MOVE 0 TO HOLD MEASUREMENT OPTB 280200 IF ( ZERO COUNT AND (( MCMN = 0) OR ( MCAV = 0) OPTB 280300 OR ( MCMX = 0))) OR INSUFFICIENT ON OPTB 280400 MOVE +. 1E 50 TO HOLD MEASUREMENT. OPTB 280500* OPTB 280600 420 CALC QUANT. OPTB 280700 MOVE F STAT TO LINKSTAT. OPTB 280800* PERFORM 450 SEARCH STBC. OPTB 280900* MOVE SPACES TO FIELD WANTED SW OPTB 281000* PERFORM 460 DETERMINE FIELD OPTB 281100* VARYING CALL SUB OPTB 281200* FROM 1 BY 1 OPTB 281300* UNTIL CALL SUB GREATER 5. OPTB 281400 MOVE LCSC TO C UNIT. OPTB 281500* IF (( MQAV WANTED OR MQMX WANTED) AND F LQSC NOT = SPACES) OPTB 281600* OR ( F LCSC = SPACES) OPTB 281700 IF F LQSC NOT = SPACES OPTB 281800 MOVE F LQSC TO F UNIT OPTB 281900 ELSE OPTB 282000 MOVE F LCSC TO F UNIT. OPTB 282100 SET CF INDEX TO 1. OPTB 282200 SEARCH CF CONVERSION TABLE OPTB 282300 AT END MOVE 0 TO C F FACTOR OPTB 282400 WHEN CF UNITS( CF INDEX) = C F UNITS OPTB 282500 MOVE CF FACTOR( CF INDEX) TO C F FACTOR. OPTB 282600 IF NOT FLOW PARAMETER OPTB 282700 IF ( FILL1( 1) EQUAL ' 1' OR ' 2') AND F MQAV > 0 OPTB 282800 MOVE F MQAV TO HOLD FLOW OPTB 282900 IF FILL1( 1) EQUAL ' 2' OPTB 283000 COMPUTE HOLD FLOW = HOLD FLOW / 30 OPTB 283100 END IF OPTB 283200 ELSE OPTB 283300 IF ( FILL1( 2) EQUAL ' 1' OR ' 2') AND F MQMX > 0 OPTB 283400 MOVE F MQMX TO HOLD FLOW OPTB 283500 IF FILL1( 2) EQUAL ' 2' OPTB 283600 COMPUTE HOLD FLOW = HOLD FLOW / 30 OPTB 283700 END IF OPTB 283800 ELSE OPTB 283900 IF ( FILL1( 3) EQUAL ' 1' OR ' 2') AND F MCMN > 0 OPTB 284000 MOVE F MCMN TO HOLD FLOW OPTB 284100 IF FILL1( 3) EQUAL ' 2' OPTB 284200 COMPUTE HOLD FLOW = HOLD FLOW / 30 OPTB 284300 END IF OPTB 284400 ELSE OPTB 284500 IF ( FILL1( 4) EQUAL ' 1' OR ' 2') AND F MCAV > 0 OPTB 284600 MOVE F MCAV TO HOLD FLOW OPTB 284700 IF FILL1( 4) EQUAL ' 2' OPTB 284800 COMPUTE HOLD FLOW = HOLD FLOW / 30 OPTB 284900 END IF OPTB 285000 ELSE OPTB 285100 IF ( FILL1( 5) EQUAL ' 1' OR ' 2') AND F MCMX > 0 OPTB 285200 MOVE F MCMX TO HOLD FLOW OPTB 285300 IF FILL1( 5) EQUAL ' 2' OPTB 285400 COMPUTE HOLD FLOW = HOLD FLOW / 30 OPTB 285500 END IF OPTB 285600 ELSE OPTB 285700 IF FILL1( 1) = ' 0' AND FILL1( 2) = ' 0' AND FILL1( 3) = ' 0' OPTB 285800 AND FILL1( 4) = ' 0' AND FILL1( 5) = ' 0' OPTB 285900 DISPLAY '** FLOW STATISTICAL BASE CODE ' F STAT OPTB 286000 ' INVALID FOR THIS OPTION ( NPID: ' NPID ' DSCH: ' OPTB 286100 DSCH ' PRAM: ' PARM ' MLOC: ' MLOC ') **' OPTB 286200 END IF OPTB 286300 IF F MQAV > 0 OPTB 286400 MOVE F MQAV TO HOLD FLOW OPTB 286500 ELSE OPTB 286600 IF F MQMX > 0 OPTB 286700 MOVE F MQMX TO HOLD FLOW OPTB 286800 ELSE OPTB 286900 IF F MCAV > 0 OPTB 287000 MOVE F MCAV TO HOLD FLOW OPTB 287100 ELSE OPTB 287200 IF F MCMX > 0 OPTB 287300 MOVE F MCMX TO HOLD FLOW OPTB 287400 ELSE OPTB 287500 IF F MCMN > 0 OPTB 287600 MOVE F MCMN TO HOLD FLOW OPTB 287700 ELSE OPTB 287800 IF INSUFFICIENT ON OPTB 287900 MOVE +. 1E 50 TO HOLD FLOW OPTB 288000 ELSE OPTB 288100 MOVE 0 TO HOLD FLOW OPTB 288200 END IF OPTB 288300 END IF OPTB 288400 END IF OPTB 288500 END IF OPTB 288600 END IF OPTB 288700 END IF OPTB 288800 END IF OPTB 288900 END IF OPTB 289000 END IF OPTB 289100 END IF OPTB 289200 END IF OPTB 289300 IF F PRAM = ' 50050' AND HOLD FLOW > 1300 OPTB 289400 DISPLAY '** PROBABLE FLOW ERROR ( NPID: ' NPID OPTB 289500 ' DSCH: ' DSCH ' PRAM: ' PARM ' MLOC: ' MLOC OPTB 289600 ' FLOW: ' HOLD FLOW ') **' OPTB 289700 COMPUTE HOLD FLOW = HOLD FLOW / 1000000 OPTB 289800 END IF OPTB 289900 COMPUTE HOLD MEASUREMENT = OPTB 290000 HOLD MEASUREMENT * C F FACTOR * HOLD FLOW. OPTB 290100* OPTB 290200 430 CHECK FLOW. OPTB 290300 IF ( PARM = ' 50050' OR ' FLOW') OPTB 290400 AND HOLD MEASUREMENT > 39000 * WS NRPU OPTB 290500 COMPUTE HOLD MEASUREMENT = HOLD MEASUREMENT / 1000000 OPTB 290600 COMPUTE HOLD FLOW = HOLD MEASUREMENT / ( WS NRPU * 30) OPTB 290700 DISPLAY '** PROBABLE FLOW ERROR ( NPID: ' NPID OPTB 290800 ' DSCH: ' DSCH ' PRAM: ' PARM ' MLOC: ' MLOC OPTB 290900 ' FLOW: ' HOLD FLOW ') **'. OPTB 291000* OPTB 291100 440 DET DATA FIELD. OPTB 291200 IF NOT ND LIMIT OPTB 291300 PERFORM 410 NON DETECT RTN. OPTB 291400 MOVE 0 TO HOLD LOAD. OPTB 291500 MOVE 0 TO HOLD CONC. OPTB 291600 MOVE 0 TO HOLD FLOW. OPTB 291700* OPTB 291800 IF ( FILL1( 1) = ' 1' OR ' 2') AND MQAV > 0 OPTB 291900 MOVE MQAV TO HOLD LOAD OPTB 292000 IF FILL1( 1) = ' 2' OPTB 292100 COMPUTE HOLD LOAD = HOLD LOAD / 30 OPTB 292200 END IF OPTB 292300 ELSE OPTB 292400 IF ( FILL1( 2) = ' 1' OR ' 2') AND MQMX > 0 OPTB 292500 MOVE MQMX TO HOLD LOAD OPTB 292600 IF FILL1( 2) = ' 2' OPTB 292700 COMPUTE HOLD LOAD = HOLD LOAD / 30 OPTB 292800 END IF OPTB 292900 ELSE OPTB 293000 IF MQAV > 0 OPTB 293100 MOVE MQAV TO HOLD LOAD OPTB 293200 ELSE OPTB 293300 IF MQMX > 0 OPTB 293400 MOVE MQMX TO HOLD LOAD. OPTB 293500* OPTB 293600 IF FILL1( 3) EQUAL ' 1' OPTB 293700 IF MCMN > 0 OPTB 293800 MOVE MCMN TO HOLD CONC OPTB 293900 ELSE OPTB 294000 IF MCAV > 0 OPTB 294100 MOVE MCAV TO HOLD CONC OPTB 294200 ELSE OPTB 294300 IF MCMX > 0 OPTB 294400 MOVE MCMX TO HOLD CONC OPTB 294500 ELSE OPTB 294600 MOVE 0 TO HOLD CONC OPTB 294700 ELSE OPTB 294800 IF FILL1( 4) EQUAL ' 1' OPTB 294900 IF MCAV > 0 OPTB 295000 MOVE MCAV TO HOLD CONC OPTB 295100 ELSE OPTB 295200 IF MCMX > 0 OPTB 295300 MOVE MCMX TO HOLD CONC OPTB 295400 ELSE OPTB 295500 IF MCMN > 0 OPTB 295600 MOVE MCMN TO HOLD CONC OPTB 295700 ELSE OPTB 295800 MOVE 0 TO HOLD CONC OPTB 295900 ELSE OPTB 296000 IF FILL1( 5) EQUAL ' 1' OPTB 296100 IF MCMX > 0 OPTB 296200 MOVE MCMX TO HOLD CONC OPTB 296300 ELSE OPTB 296400 IF MCAV > 0 OPTB 296500 MOVE MCAV TO HOLD CONC OPTB 296600 ELSE OPTB 296700 IF MCMN > 0 OPTB 296800 MOVE MCMN TO HOLD CONC OPTB 296900 ELSE OPTB 297000 MOVE 0 TO HOLD CONC OPTB 297100 ELSE OPTB 297200 IF MCAV > 0 OPTB 297300 MOVE MCAV TO HOLD CONC OPTB 297400 ELSE OPTB 297500 IF MCMX > 0 OPTB 297600 MOVE MCMX TO HOLD CONC OPTB 297700 ELSE OPTB 297800 IF MCMN > 0 OPTB 297900 MOVE MCMN TO HOLD CONC OPTB 298000 ELSE OPTB 298100 MOVE 0 TO HOLD CONC. OPTB 298200* OPTB 298300 MOVE F STAT TO LINKSTAT. OPTB 298400* PERFORM 450 SEARCH STBC. OPTB 298500* OPTB 298600 IF ( FILL1( 1) EQUAL ' 1' OR ' 2') AND F MQAV > 0 OPTB 298700 MOVE F MQAV TO HOLD FLOW OPTB 298800 IF FILL1( 1) EQUAL ' 2' OPTB 298900 COMPUTE HOLD FLOW = HOLD FLOW / 30 OPTB 299000 END IF OPTB 299100 ELSE OPTB 299200 IF ( FILL1( 2) EQUAL ' 1' OR ' 2') AND F MQMX > 0 OPTB 299300 MOVE F MQMX TO HOLD FLOW OPTB 299400 IF FILL1( 2) EQUAL ' 2' OPTB 299500 COMPUTE HOLD FLOW = HOLD FLOW / 30 OPTB 299600 END IF OPTB 299700 ELSE OPTB 299800 IF ( FILL1( 3) EQUAL ' 1' OR ' 2') AND F MCMN > 0 OPTB 299900 MOVE F MCMN TO HOLD FLOW OPTB 300000 IF FILL1( 3) EQUAL ' 2' OPTB 300100 COMPUTE HOLD FLOW = HOLD FLOW / 30 OPTB 300200 END IF OPTB 300300 ELSE OPTB 300400 IF ( FILL1( 4) EQUAL ' 1' OR ' 2') AND F MCAV > 0 OPTB 300500 MOVE F MCAV TO HOLD FLOW OPTB 300600 IF FILL1( 4) EQUAL ' 2' OPTB 300700 COMPUTE HOLD FLOW = HOLD FLOW / 30 OPTB 300800 END IF OPTB 300900 ELSE OPTB 301000 IF ( FILL1( 5) EQUAL ' 1' OR ' 2') AND F MCMX > 0 OPTB 301100 MOVE F MCMX TO HOLD FLOW OPTB 301200 IF FILL1( 5) EQUAL ' 2' OPTB 301300 COMPUTE HOLD FLOW = HOLD FLOW / 30 OPTB 301400 END IF OPTB 301500 ELSE OPTB 301600 IF F MQAV > 0 OPTB 301700 MOVE F MQAV TO HOLD FLOW OPTB 301800 ELSE OPTB 301900 IF F MQMX > 0 OPTB 302000 MOVE F MQMX TO HOLD FLOW OPTB 302100 ELSE OPTB 302200 IF F MCAV > 0 OPTB 302300 MOVE F MCAV TO HOLD FLOW OPTB 302400 ELSE OPTB 302500 IF F MCMX > 0 OPTB 302600 MOVE F MCMX TO HOLD FLOW OPTB 302700 ELSE OPTB 302800 IF F MCMN > 0 OPTB 302900 MOVE F MCMN TO HOLD FLOW OPTB 303000 ELSE OPTB 303100 MOVE 0 TO HOLD FLOW. OPTB 303200* OPTB 303300 MOVE LCSC TO C UNIT. OPTB 303400* IF ( FILL1( 1) EQUAL ' 1' OR FILL1( 2) EQUAL ' 1') OR OPTB 303500* F LCSC = SPACES OPTB 303600 IF F LQSC NOT = SPACES OPTB 303700 MOVE F LQSC TO F UNIT OPTB 303800 ELSE OPTB 303900 MOVE F LCSC TO F UNIT. OPTB 304000 SET CF INDEX TO 1. OPTB 304100 SEARCH CF CONVERSION TABLE OPTB 304200 AT END MOVE 0 TO C F FACTOR OPTB 304300 WHEN CF UNITS( CF INDEX) = C F UNITS OPTB 304400 MOVE CF FACTOR( CF INDEX) TO C F FACTOR. OPTB 304500* OPTB 304600* CONVERT THE C F FACTOR AND FLOW INTO STANDARD UNIT ( MGD). OPTB 304700* OPTB 304800 IF F UNIT EQUAL ' 07' OPTB 304900 COMPUTE C F FACTOR = C F FACTOR * +. 10000000E+ 07 OPTB 305000 COMPUTE HOLD FLOW = HOLD FLOW * +. 10000000E 05 OPTB 305100 ELSE OPTB 305200 IF F UNIT EQUAL ' 16' OPTB 305300 COMPUTE C F FACTOR = C F FACTOR * +. 37850000E+ 04 OPTB 305400 COMPUTE HOLD FLOW = HOLD FLOW * +. 26420000E 03 OPTB 305500 ELSE OPTB 305600 IF F UNIT EQUAL ' 78' OPTB 305700 COMPUTE C F FACTOR = C F FACTOR * +. 69444444E+ 03 OPTB 305800 COMPUTE HOLD FLOW = HOLD FLOW * +. 14400000E 02. OPTB 305900* OPTB 306000* CONVERT THE C F FACTOR AND CONC INTO STANDARD UNIT ( MG/ L). OPTB 306100* OPTB 306200 IF C UNIT EQUAL ' 21' OPTB 306300 COMPUTE C F FACTOR = C F FACTOR * +. 10000000E+ 04 OPTB 306400 COMPUTE HOLD CONC = HOLD CONC * +. 10000000E 02 OPTB 306500* MOVE ' PPB' TO CONC LABEL OPTB 306600 ELSE OPTB 306700 IF C UNIT EQUAL ' 22' OPTB 306800 COMPUTE C F FACTOR = C F FACTOR * +. 10000000E+ 07 OPTB 306900 COMPUTE HOLD CONC = HOLD CONC * +. 10000000E 05 OPTB 307000* MOVE ' PPT' TO CONC LABEL OPTB 307100 ELSE OPTB 307200 IF C UNIT EQUAL ' 28' OPTB 307300 COMPUTE C F FACTOR = C F FACTOR * +. 10000000E+ 04 OPTB 307400 COMPUTE HOLD CONC = HOLD CONC * +. 10000000E 02 OPTB 307500* MOVE ' UG/ L' TO CONC LABEL OPTB 307600 ELSE OPTB 307700 IF C UNIT EQUAL ' 32' OPTB 307800 COMPUTE C F FACTOR = C F FACTOR * +. 10000000E 02 OPTB 307900 COMPUTE HOLD CONC = HOLD CONC * +. 10000000E+ 04 OPTB 308000* MOVE ' PPTH' TO CONC LABEL OPTB 308100 ELSE OPTB 308200 IF C UNIT EQUAL ' 36' OPTB 308300 COMPUTE C F FACTOR = C F FACTOR * +. 10000000E 02 OPTB 308400 COMPUTE HOLD CONC = HOLD CONC * +. 10000000E+ 04 OPTB 308500* MOVE ' G/ L' TO CONC LABEL OPTB 308600 ELSE OPTB 308700 IF C UNIT EQUAL ' 37' OPTB 308800 COMPUTE C F FACTOR = C F FACTOR * +. 10000000E 05 OPTB 308900 COMPUTE HOLD CONC = HOLD CONC * +. 10000000E+ 07 OPTB 309000* MOVE ' KG/ L' TO CONC LABEL OPTB 309100 ELSE OPTB 309200 IF C UNIT EQUAL ' 64' OPTB 309300 COMPUTE C F FACTOR = C F FACTOR * +. 10000000E 05 OPTB 309400 COMPUTE HOLD CONC = HOLD CONC * +. 10000000E+ 07. OPTB 309500* MOVE ' G/ ML' TO CONC LABEL. OPTB 309600* OPTB 309700 IF HOLD LOAD EQUAL 0 AND HOLD CONC > 0 OPTB 309800 COMPUTE HOLD LOAD = HOLD CONC * HOLD FLOW * C F FACTOR. OPTB 309900* OPTB 310000 IF HOLD LOAD > 0 AND HOLD CONC EQUAL 0 AND HOLD FLOW > 0 AND OPTB 310100 C F FACTOR NOT EQUAL 0 OPTB 310200 COMPUTE HOLD CONC = HOLD LOAD / ( HOLD FLOW * C F FACTOR). OPTB 310300* OPTB 310400 IF HOLD LOAD > 0 AND HOLD FLOW EQUAL 0 AND HOLD CONC > 0 OPTB 310500 COMPUTE HOLD FLOW = HOLD LOAD / ( HOLD CONC * 3.785). OPTB 310600* OPTB 310700 PERFORM 3000 PRODUCE OUT. OPTB 310800* OPTB 310900 450 SEARCH STBC. OPTB 311000 SEARCH ALL STBC INFO OPTB 311100 AT END MOVE ' 00000' TO LINKSTAT OPTB 311200 WHEN T STBC( STBC INDEX) EQUAL STAT OPTB 311300 MOVE T STBC VALUES( STBC INDEX) TO LINKSTAT. OPTB 311400* OPTB 311500 460 DETERMINE FIELD. OPTB 311600 IF FILL1( CALL SUB) EQUAL ' 1' OR ' 2' OPTB 311700 MOVE CALL SUB TO FIELD WANTED SW OPTB 311800 MOVE 5 TO CALL SUB. OPTB 311900*************************************************************** OPTB 312000* MODULE 470 ADDS THE FIELD HOLD MEASUREMENT TO TWO FIELDS* OPTB 312100* IN PARM TABLE, MEASUREMENT AND TOTAL. MEASUREMENT IS USED * OPTB 312200* TO ACCUMULATE TOTALS FOR EACH YEAR AND TOTAL IS A GRAND * OPTB 312300* TOTAL FOR THE REPORTING PERIOD FOR EACH PARAMETER. * OPTB 312400* WHEN THE YEAR CHANGES BUT THE PARAMETER STAYS THE SAME, * OPTB 312500* THE YEAR INDEX IS SET UP BY 1 AND THE YEAR IS STORED INTO * OPTB 312600* PARM TABLE AND MOVED TO A PREVIOUS KEY FIELD. IF THE * OPTB 312700* PARAMETER CHANGES, PARM INDEX IS SET UP BY 1 AND YEAR INDEX * OPTB 312800* IS REINITIALIZED TO 1. SIMILARLY, THE PARAMETER CODE AND * OPTB 312900* THE YEAR ARE STORED IN PARM TABLE AND BOTH ARE MOVED TO PRE* OPTB 313000* VIOUS KEYS. * OPTB 313100*************************************************************** OPTB 313200 470 ADD NUMBERS. OPTB 313300 IF PARM = ' 00058' OPTB 313400 COMPUTE HOLD MEASUREMENT = HOLD MEASUREMENT * 1440. OPTB 313500* IF HOLD MEASUREMENT < +. 1E 03 OPTB 313600* MOVE 0 TO HOLD MEASUREMENT. OPTB 313700 SUBTRACT YY1 FROM M YEAR OPTB 313800 GIVING YEAR INDICATOR. OPTB 313900 ADD 1 TO YEAR INDICATOR. OPTB 314000 IF YEAR INDICATOR > YEAR HIGH OPTB 314100 MOVE YEAR INDICATOR TO YEAR HIGH. OPTB 314200 SET YEAR INDEX TO YEAR INDICATOR. OPTB 314300 IF YEAR SUB < YEAR INDICATOR OPTB 314400 MOVE YEAR INDICATOR TO YEAR SUB. OPTB 314500 IF ( PARM EQUAL PREV PARM) AND ( NOT OUTFALL BREAK OPTB 314600 OR ( OUTFALL BREAK AND MLOC = HOLD MLOC)) OPTB 314700 IF M YEAR EQUAL PREV YEAR OPTB 314800 SET MONTH INDEX TO M MONTH OPTB 314900D DISPLAY ' 1 ' ' PARM: ' PARM ' M YRMNTH: ' M YRMNTH OPTB 315000D ' PREV YRMNTH: ' PREV YRMNTH OPTB 315100 IF HOLD MEASUREMENT > 0 OPTB 315200 IF WS NRPU = 1 OPTB 315300 IF M YRMNTH NOT EQUAL PREV YRMNTH OPTB 315400 ADD 1 TO TB COUNT( PARM INDEX, YEAR INDEX) OPTB 315500 TCOUNT( PARM INDEX) WS TCOUNT OPTB 315600 END IF OPTB 315700* IF HOLD MEASUREMENT > +. 1E 10 OPTB 315800 IF HOLD SIGN = '' OPTB 315900 MULTIPLY HOLD MEASUREMENT BY  1 GIVING OPTB 316000 HOLD MEASUREMENT OPTB 316100 END IF OPTB 316200 ADD HOLD MEASUREMENT TO OPTB 316300 MEASUREMENT( PARM INDEX, YEAR INDEX) OPTB 316400 MONTH LOAD( PARM INDEX, YEAR INDEX, MONTH INDEX) OPTB 316500 TOTAL( PARM INDEX) BG TOTAL OPTB 316600* END IF OPTB 316700 ELSE OPTB 316800 PERFORM 475 ADJUST NRPU OPTB 316900 END IF OPTB 317000 MOVE M YRMNTH TO PREV YRMNTH OPTB 317100 ELSE OPTB 317200 MOVE SPACES TO PREV YRMNTH OPTB 317300 END IF OPTB 317400* IF WS NRPU < MFACTOR( PARM INDEX) OPTB 317500* MOVE WS NRPU TO MFACTOR( PARM INDEX) OPTB 317600* END IF OPTB 317700 ELSE OPTB 317800 MOVE M YEAR TO TB YEAR( PARM INDEX, YEAR INDEX) PREV YEAR OPTB 317900 BG YEAR OPTB 318000 MOVE SPACES TO PREV YRMNTH OPTB 318100* MOVE WS NRPU TO MFACTOR( PARM INDEX) OPTB 318200D DISPLAY ' 2 ' ' PARM: ' PARM ' M YRMNTH: ' M YRMNTH OPTB 318300D ' PREV YRMNTH: ' PREV YRMNTH OPTB 318400 SET MONTH INDEX TO M MONTH OPTB 318500 IF HOLD MEASUREMENT > 0 OPTB 318600 IF WS NRPU = 1 OPTB 318700 ADD 1 TO TB COUNT( PARM INDEX, YEAR INDEX) OPTB 318800 TCOUNT( PARM INDEX) WS TCOUNT OPTB 318900* IF HOLD MEASUREMENT > +. 1E 10 OPTB 319000 IF HOLD SIGN = '' OPTB 319100 MULTIPLY HOLD MEASUREMENT BY  1 GIVING OPTB 319200 HOLD MEASUREMENT OPTB 319300 END IF OPTB 319400 ADD HOLD MEASUREMENT TO OPTB 319500 MEASUREMENT( PARM INDEX, YEAR INDEX) OPTB 319600 MONTH LOAD( PARM INDEX, YEAR INDEX, MONTH INDEX) OPTB 319700 TOTAL( PARM INDEX) BG TOTAL OPTB 319800* END IF OPTB 319900 ELSE OPTB 320000 PERFORM 475 ADJUST NRPU OPTB 320100 END IF OPTB 320200 MOVE M YRMNTH TO PREV YRMNTH OPTB 320300 END IF OPTB 320400* IF WS NRPU < MFACTOR( PARM INDEX) OPTB 320500* MOVE WS NRPU TO MFACTOR( PARM INDEX) OPTB 320600* END IF OPTB 320700 ELSE OPTB 320800 SET PARM INDEX UP BY 1 OPTB 320900 IF PARM INDEX > 500 OPTB 321000 PERFORM 480 READ ROUTINE OPTB 321100 ELSE OPTB 321200 MOVE PARM TO PARM NUM( PARM INDEX) PREV PARM OPTB 321300 BG PARM OPTB 321400 MOVE MLOC TO PARM MLOC( PARM INDEX) OPTB 321500 MOVE LQSC TO PARM LQSC( PARM INDEX) OPTB 321600 IF OUTFALL BREAK OPTB 321700 MOVE MLOC TO HOLD MLOC OPTB 321800 END IF OPTB 321900 MOVE M YEAR TO TB YEAR( PARM INDEX, YEAR INDEX) OPTB 322000 PREV YEAR BG YEAR OPTB 322100 MOVE SPACES TO PREV YRMNTH OPTB 322200* MOVE WS NRPU TO MFACTOR( PARM INDEX) OPTB 322300D DISPLAY ' 3 ' ' PARM: ' PARM ' M YRMNTH: ' M YRMNTH OPTB 322400D ' PREV YRMNTH: ' PREV YRMNTH OPTB 322500 SET MONTH INDEX TO M MONTH OPTB 322600 IF HOLD MEASUREMENT > 0 OPTB 322700 IF WS NRPU = 1 OPTB 322800 ADD 1 TO TB COUNT( PARM INDEX, YEAR INDEX) OPTB 322900 TCOUNT( PARM INDEX) WS TCOUNT OPTB 323000* IF HOLD MEASUREMENT > +. 1E 10 OPTB 323100 IF HOLD SIGN = '' OPTB 323200 MULTIPLY HOLD MEASUREMENT BY  1 GIVING OPTB 323300 HOLD MEASUREMENT OPTB 323400 END IF OPTB 323500 ADD HOLD MEASUREMENT TO OPTB 323600 MEASUREMENT( PARM INDEX, YEAR INDEX) OPTB 323700 MONTH LOAD( PARM INDEX, YEAR INDEX, MONTH INDEX) OPTB 323800 TOTAL( PARM INDEX) BG TOTAL OPTB 323900* END IF OPTB 324000 ELSE OPTB 324100 PERFORM 475 ADJUST NRPU OPTB 324200 END IF OPTB 324300 MOVE M YRMNTH TO PREV YRMNTH OPTB 324400 END IF. OPTB 324500* OPTB 324600 475 ADJUST NRPU. OPTB 324700 IF HOLD SIGN = '' OPTB 324800 MULTIPLY HOLD MEASUREMENT BY  1 GIVING HOLD MEASUREMENT. OPTB 324900 COMPUTE HOLD MEASUREMENT = HOLD MEASUREMENT / WS NRPU. OPTB 325000 SET HOLD YEAR INDEX TO YEAR INDEX. OPTB 325100 SET HOLD MONTH INDEX TO MONTH INDEX. OPTB 325200 SET M MM TO MONTH INDEX. OPTB 325300 SET M YY TO YEAR INDEX. OPTB 325400 PERFORM 478 ADD MONTH DATA WS NRPU TIMES. OPTB 325500 SET YEAR INDEX TO HOLD YEAR INDEX. OPTB 325600 SET MONTH INDEX TO HOLD MONTH INDEX. OPTB 325700* OPTB 325800 478 ADD MONTH DATA. OPTB 325900 COMPUTE M YY = M YY + ( YY1  1). OPTB 326000 IF M MM < 1 OPTB 326100 ADD 12 TO M MM OPTB 326200 IF ANNUAL TOTALS OPTB 326300 SUBTRACT 1 FROM M YY. OPTB 326400 IF YYMM1 <= M YYMM OR PERIOD TOTAL OPTB 326500 COMPUTE M YY = ( M YY  YY1) + 1 OPTB 326600 SET YEAR INDEX TO M YY OPTB 326700 SET MONTH INDEX TO M MM OPTB 326800 SUBTRACT 1 FROM M MM OPTB 326900* IF HOLD MEASUREMENT > +. 1E 10 OPTB 327000 ADD HOLD MEASUREMENT TO OPTB 327100 MEASUREMENT( PARM INDEX, YEAR INDEX) OPTB 327200 MONTH LOAD( PARM INDEX, YEAR INDEX, MONTH INDEX) OPTB 327300 TOTAL( PARM INDEX) BG TOTAL OPTB 327400 IF M YRMNTH NOT EQUAL PREV YRMNTH OPTB 327500 ADD 1 TO TB COUNT( PARM INDEX, YEAR INDEX) OPTB 327600 TCOUNT( PARM INDEX) WS TCOUNT. OPTB 327700* OPTB 327800 480 READ ROUTINE. OPTB 327900 IF FACILITY BREAK OR WORST REPORT OPTB 328000 PERFORM 500 READ PCS INFO UNTIL OPTB 328100 NPID NOT EQUAL PREV NPID OPTB 328200 ELSE OPTB 328300 IF OUTFALL BREAK OPTB 328400 PERFORM 500 READ PCS INFO UNTIL OPTB 328500 DSCH NOT EQUAL PREV DSCH OR OPTB 328600 NPID NOT EQUAL PREV NPID OPTB 328700 ELSE OPTB 328800 IF BASIN BREAK OPTB 328900 PERFORM 500 READ PCS INFO UNTIL OPTB 329000 FHBC NOT EQUAL PREV FHBC OPTB 329100 ELSE OPTB 329200 IF STATE BREAK AND HYDROL STATE OPTB 329300 PERFORM 500 READ PCS INFO UNTIL OPTB 329400 STATE NOT EQUAL PREV STATE OR OPTB 329500 FHBC NOT EQUAL PREV FHBC OPTB 329600 ELSE OPTB 329700 IF STATE BREAK OPTB 329800 PERFORM 500 READ PCS INFO UNTIL OPTB 329900 STATE NOT EQUAL PREV STATE OPTB 330000 ELSE OPTB 330100 IF COUNTY BREAK AND HYDROL COUNTY OPTB 330200 PERFORM 500 READ PCS INFO UNTIL OPTB 330300 CNTY NOT EQUAL PREV CNTY OR OPTB 330400 FHBC NOT EQUAL PREV FHBC OPTB 330500 ELSE OPTB 330600 IF COUNTY BREAK OPTB 330700 PERFORM 500 READ PCS INFO UNTIL OPTB 330800 CNTY NOT EQUAL PREV CNTY OPTB 330900 ELSE OPTB 331000 IF CITY BREAK AND HYDROL CITY OPTB 331100 PERFORM 500 READ PCS INFO UNTIL OPTB 331200 CITY NOT EQUAL PREV CITY OR OPTB 331300 FHBC NOT EQUAL PREV FHBC OPTB 331400 ELSE OPTB 331500 IF CITY BREAK OPTB 331600 PERFORM 500 READ PCS INFO UNTIL OPTB 331700 CITY NOT EQUAL PREV CITY OPTB 331800 ELSE OPTB 331900 IF SIC2 BREAK OPTB 332000 PERFORM 500 READ PCS INFO UNTIL OPTB 332100 SIC2 NOT EQUAL PREV SIC2 OPTB 332200 ELSE OPTB 332300 IF REPORT BREAK OPTB 332400 PERFORM 500 READ PCS INFO UNTIL OPTB 332500 END PCS. OPTB 332600* OPTB 332700 490 LOAD PARM INFO. OPTB 332800 SUBTRACT YY1 FROM M YEAR OPTB 332900 GIVING YEAR INDICATOR. OPTB 333000 ADD 1 TO YEAR INDICATOR. OPTB 333100 IF YEAR INDICATOR > YEAR HIGH OPTB 333200 MOVE YEAR INDICATOR TO YEAR HIGH. OPTB 333300 SET YEAR INDEX TO YEAR INDICATOR. OPTB 333400 IF YEAR SUB < YEAR INDICATOR OPTB 333500 MOVE YEAR INDICATOR TO YEAR SUB. OPTB 333600 IF ( PARM EQUAL PREV PARM) AND ( NOT OUTFALL BREAK OPTB 333700 OR ( OUTFALL BREAK AND MLOC = HOLD MLOC)) OPTB 333800 IF M YEAR NOT = PREV YEAR OPTB 333900 MOVE M YEAR TO TB YEAR( PARM INDEX, YEAR INDEX) PREV YEAR OPTB 334000 BG YEAR OPTB 334100 END IF OPTB 334200* ADD LOAD AMOUNT TO OPTB 334300* MEASUREMENT( PARM INDEX, YEAR INDEX) OPTB 334400* TOTAL( PARM INDEX) BG TOTAL OPTB 334500* ELSE OPTB 334600* ADD LOAD AMOUNT TO OPTB 334700* MEASUREMENT( PARM INDEX, YEAR INDEX) OPTB 334800* TOTAL( PARM INDEX) BG TOTAL OPTB 334900 ELSE OPTB 335000 SET PARM INDEX UP BY 1 OPTB 335100 MOVE PARM TO PARM NUM( PARM INDEX) PREV PARM OPTB 335200 BG PARM OPTB 335300 MOVE MLOC TO PARM MLOC( PARM INDEX) OPTB 335400 MOVE GRP LQSC TO PARM LQSC( PARM INDEX) OPTB 335500 MOVE M YEAR TO TB YEAR( PARM INDEX, YEAR INDEX) OPTB 335600 PREV YEAR BG YEAR OPTB 335700* ADD LOAD AMOUNT TO OPTB 335800* MEASUREMENT( PARM INDEX, YEAR INDEX) OPTB 335900* TOTAL( PARM INDEX) BG TOTAL OPTB 336000 IF OUTFALL BREAK OPTB 336100 MOVE MLOC TO HOLD MLOC. OPTB 336200 ADD LOAD AMOUNT TO OPTB 336300 MEASUREMENT( PARM INDEX, YEAR INDEX) OPTB 336400 TOTAL( PARM INDEX) BG TOTAL OPTB 336500 MOVE LOAD EST SYMBOL TO EST SYMBOL( PARM INDEX, YEAR INDEX). OPTB 336600 IF LOAD EST SYMBOL = ' E' OPTB 336700 MOVE LOAD EST SYMBOL TO PARM EST SYMBOL( PARM INDEX). OPTB 336800* OPTB 336900 500 READ PCS INFO. OPTB 337000 READ PCS FILE AT END OPTB 337100 MOVE HIGH VALUES TO PREV FIELDS OPTB 337200* MOVE HIGH VALUES TO PCS RECORD OPTB 337300 MOVE ' YES' TO PCS EOF. OPTB 337400 IF END PCS AND RECORD COUNT = 0 OPTB 337500 MOVE ' ********************' TO REPORT RECORD OPTB 337600 PERFORM 720 WRITE SINGLE SPACED OPTB 337700 MOVE ' * NO DATA SELECTED *' TO REPORT RECORD OPTB 337800 PERFORM 720 WRITE SINGLE SPACED OPTB 337900 MOVE ' ********************' TO REPORT RECORD OPTB 338000 PERFORM 720 WRITE SINGLE SPACED OPTB 338100 MOVE ' NO' TO WORST REPORT SW OPTB 338200 PERFORM 1000 END DATA OPTB 338300 GOBACK. OPTB 338400 ADD 1 TO RECORD COUNT. OPTB 338500 IF NOT GROUPING OPTB 338600 IF MORE PCS AND NOT FACILITY LOCATION OPTB 338700 IF STATE = ' NY' AND RWAT GW = ' GW' OPTB 338800 GO TO 500 READ PCS INFO OPTB 338900 END IF OPTB 339000 IF M YEAR < YY1 OPTB 339100 GO TO 500 READ PCS INFO OPTB 339200 END IF OPTB 339300 IF