10 REM WRITTEN BY JOE LINN ROOM 718 C.O. MODIFIED 10/31/80
20 REM HYDRAULICS BY WALLY MARUSENKO ROOM 718 C.O.
30 DIM AX(255),FX(1,13),H(1,50),OX(1,19),RX(1,13),R1(1,13),R2(1,13),SX(1,19),TX(149),U(1,50),BX(255),CX(255),VX(249),NX(20),QX(19,2),XX(20),YX(20),A(255),TEMPX(255)
40 DIM A,A9,C,C1,C9,D,E,ET,F,F8,F9,FL0,FL1,FL2,FL3,FL4,FL6,I,I8,I9,J,K,N
50 DIM O,O1,O2,O8,Q,Q1,Q9,R,S,S8,S9,T,T0,T1,T9,V,V8,X,X9,Y
60 FORMAT1$=" RAINFALL DURATION =#####.## HOURS"
70 FORMAT2$=" TOTAL ACCUMULATED RAINFALL =#####.## INCHES"
80 FORMAT3$=" CURVE NUMBER =#####"
90 FORMAT4$=" DRAINAGE AREA =#####.## ACRES OR####.## SQ. MI."
100 FORMAT5$=" TIME OF CONCENTRATION =#####.## MINUTES OR####.## HOURS"
110 FORMAT6$=" TIME TO PEAK =#####.## MINUTES OR####.## HOURS"
120 FORMAT7$=" PEAK DISCHARGE =#####.# CFS"
130 FORMAT8$="####### #######.# I ######## #######.# I ######## #######.#"
140 FORMAT9$=" ### ###.## ###.##"
150 FORMAT10$=" ### ######.# #######.##"
160 FORMAT11$=" TOTAL ACCUMULATED RUNOFF =#####.## INCHES"
170 FORMAT12$=" INFLOW HYD. TIME INCRIMENT =#####.## MINUTES OR####.## HOURS"
480 FORMAT44$="HYDROGRAPH WAS TERMINATED AT ###.## HOURS"
490 DATA 0,.03,.1,.19,.31,.47,.66,.82,.93,.99,1,.99,.93,.86,.78,.68,.56,.46,.39,.33,.28,.2435,.207,.177,.147,.127,.107,.092,.077,.066,.055,.0475,.04,.0345,.029
491 DATA .025,.021,.018,.015,.013,.011,9.8E-03,8.6E-03,7.4E-03,6.2E-03,5E-03,4E-3,3E-03,2E-03,1E-03,0
500 DATA 0,6,9,10.5,11,11.5,11.75,12,12.5,13,13.5,15,18,24,0,.08,.147,.204,.235,.283,.387,.663,.735,.772,.799,.854,.921,1,0,6,8,8.5,9,9.5,9.75,10,10.5,11,12,14,18,24,0,.125,.194,.219,.254,.303,.373,.515,.583,.624,.682,.767,.882,1
510 FOR I=0 TO 50: U(0,I)=I/10: NEXT I
520 FOR I=0 TO 50 :READ U(1,I):NEXT I
530 FOR I=0 TO 1:FOR J=0 TO 13 :READ R1(I,J):NEXT J:NEXT I
540 FOR I=0 TO 1:FOR J=0 TO 13 :READ R2(I,J):NEXT J:NEXT I
550 C1LEAR$=CHR$(12)
560 FORMFEED$=CHR$(12)
570 PI=3.14159
580 DEF FNCOMM(ARG)=65535!-ARG
590 WIDTH "lpt1:",135 ' '
1000 REM ********** MENU ********** MENU ********** MENU ********** MENU ********** MENU ********** MENU ********** ' '
1010 N3$="scrn:":ON ERROR GOTO 25010
1020 PRINT C1LEAR$
1030 PRINT
1040 PRINT TAB(10);"MENU OF FLOOD ROUTING PROGRAMS"
1050 PRINT
1060 PRINT "1. FLOOD ROUTING AND INFLOW HYDROGRAPH"
1070 PRINT "2. FLOOD ROUTE HYDROGRAPH FROM DISK"
1080 PRINT "3. COMBINE HYDROGRAPHS"
1090 PRINT "4. CHANNEL ROUTING"
1100 PRINT "5. PRINT HYDROGRAPH FROM DISK"
1110 PRINT "6. TYPE IN HYDROGRAPH AND STORE IT ON DISK"
1120 PRINT "7. ";
1140 PRINT "FINISH"
1160 PRINT
1170 INPUT "ENTER THE NUMBER OF THE DESIRED PROGRAM ",Q6:Q6$=STR$(Q6)
1180 IF Q6$ > " 7 " OR Q6$ < " 0 " THEN 1020 ELSE IF Q6 >=7 THEN 1230
1190 CLOSE #1:INPUT "DO YOU WANT PRINTOUT ON (SCREEN=0 PRINTER=1) ",Q9:IF Q9<>0 AND Q9<>1 THEN 1190
1200 NA$="scrn:":IF Q9=1 THEN NA$="lpt1:":OPEN "O",#2,NA$:ELSE OPEN "O",#2,NA$
1210 PRINT #2,FORMFEED$: PRINT #2," RUN DATE ";DATE$: PRINT #2,"": PRINT #2,""
10770 PRINT #2," TIME OUTFLOW VOLUME I TIME OUTFLOW VOLUME I TIME OUTFLOW VOLUME"
10780 PRINT #2," HOURS (CFS) ACRE FT I HOURS (CFS) ACRE FT I HOURS (CFS) ACRE FT"
10790 FOR I=1 TO 80: I1=CX(253)+CX(252)*(I-1): I2=I1+CX(252)*80: I3=I2+CX(252)*80 : PRINT #2,USING FORMAT32$;I1,CX(I-1),VX(I-1),I2,CX(I+79),VX(I+79),I3,CX(I+159),VX(I+159): NEXT I
10800 RETURN
10810 PRINT #2," ":IF CX(249)=0 THEN 10830
10820 PRINT #2,USING FORMAT31$;CX(249): PRINT #2,"THEREFORE, COMBINED HYDROGRAPH WILL END AT THE SAME TIME.": PRINT #2," "
10830 RETURN '
11000 REM ************** SUBROUTINES FOR CHANNEL FLOW *********************************************************************** '
11010 FOR I=0 TO 20: XX(I)=0: YX(I)=0: NX(I)=0: NEXT I
11020 INPUT "ENTER NO. OF PTS. ON X-SECTION ",F: FOR I=1 TO F:PRINT "ENTER NO.";I;"X,Y,'N'";:INPUT XX(I-1),YX(I-1),NX(I-1):NEXT I
11920 PRINT #2,USING FORMAT42$;T1,AX(I-1),BX(I-2),T2,AX(I+T0-1),BX(I+T0-2),T3,AX(I+2*T0-1),BX(I+2*T0-2): NEXT I: PRINT
11930 RETURN
11940 IF BX(249)=0 THEN 11980
11950 PRINT #2,USING FORMAT22$;BX(249)
11960 PRINT #2,"THEREFORE, COMBINED HYDROGRAPH WILL END AT THE SAME TIME."
11970 PRINT #2," "
11980 RETURN '
12000 REM ************** SUBROUTINE FOR PRINTING HYDROGRAPH FROM DISK ******************************************************** '
12010 L=INT(AX(255)+.5):FOR I=L+1 TO 249:AX(I-1)=0:NEXT I:T=AX(253):K=INT((L+3)/3):BX(0)=AX(0)*AX(252)/24.2
12020 FOR I=1 TO L-1:BX(I)=BX(I-1)+(AX(I)+AX(I-1))*AX(252)/24.2:NEXT I
12030 PRINT #2," TIME OUTFLOW VOLUME I TIME OUTFLOW VOLUME I TIME OUTFLOW VOLUME":PRINT #2," HOURS (CFS) ACRE FT I HOURS (CFS) ACRE FT I HOURS (CFS) ACRE FT"
12040 FOR I=1 TO K:I1=AX(253)+AX(252)*(I-1):I2=I1+AX(252)*K:I3=I2+AX(252)*K
15000 REM ************** SUBROUTINES COMMON TO ALL PROGRAMS *************************************************************** '
15010 FOR II=0 TO 255:TEMPX(II) = AX(II):NEXT II:RETURN
15020 FOR II=0 TO 255:TEMPX(II) = BX(II):NEXT II:RETURN
15030 FOR II=0 TO 255:TEMPX(II) = CX(II):NEXT II:RETURN
15040 FOR II=0 TO 255:AX(II) = TEMPX(II):NEXT II:RETURN
15050 FOR II=0 TO 255:BX(II) = TEMPX(II):NEXT II:RETURN
15060 FOR I=0 TO 1:FOR J=0 TO 10:SX(I,J)=0:NEXT J:FOR J=0 TO 19:OX(I,J)=0:NEXT J:NEXT I:RETURN
15070 FOR I=0 TO 1:FOR J=0 TO 13:RX(I,J)=0:NEXT J:NEXT I:RETURN '
20000 REM ************** SUBROUTINES TO READ & WRITE DATA TO FILES *********************************************************** '
20010 OPEN "O",#1,N2$:FOR I=0 TO 255:WRITE #1,TEMPX(I):NEXT I:CLOSE #1:PRINT #2,"":PRINT #2,"HYDROGRAPH HAS BEEN STORED UNDER THE NAME ";N1$:PRINT #2,"":RETURN
20020 ON ERROR GOTO 25010:OPEN "I",#3,N2$:FOR I=0 TO 255:INPUT #3,TEMPX(I):NEXT I:CLOSE #3:RETURN
20030 ON ERROR GOTO 25010:OPEN "I",#3,N2$:INPUT #3,D,R,F8,C9,O8,S8:FOR I=0 TO 1:FOR J=0 TO 13:INPUT #3,RX(I,J):NEXT J:NEXT I:FOR I=0 TO 1:FOR J=0 TO 19:INPUT #3,SX(I,J),OX(I,J):NEXT J:NEXT I:CLOSE #3:RETURN
20040 OPEN "O",#1,N2$:WRITE #1,D,R,F8,C9,O8,S8:FOR I=0 TO 1:FOR J=0 TO 13:WRITE #1,RX(I,J):NEXT J:NEXT I:FOR I=0 TO 1:FOR J=0 TO 19:WRITE #1,SX(I,J),OX(I,J):NEXT J:NEXT I:CLOSE #1:RETURN
20050 ON ERROR GOTO 25010:OPEN "I",#3,N2$:FOR I=0 TO 20:INPUT #3,XX(I),YX(I),NX(I):NEXT I:INPUT #3,L,S:CLOSE #3:PRINT #2,"CROSS SECTION HAD BEEN STORED UNDER THE NAME ";N1$:PRINT #2," ":RETURN
20060 OPEN "O",#1,N2$:FOR I=0 TO 20:WRITE #1,XX(I),YX(I),NX(I):NEXT I:WRITE #1,L,S:CLOSE #1:PRINT #2,"CROSS SECTION HAS BEEN STORED UNDER THE NAME ";N1$:PRINT #2," ":RETURN
20070 PRINT C1LEAR$:PRINT:PRINT N4$
20080 PRINT:COLOR 24,7:PRINT" MAKE SURE DATA DISK IS IN DRIVE 2 ":COLOR 7,0
20090 PRINT:INPUT "WHAT IS THE NAME OF THE DATA FILE ",N1$:N2$="B:" + N1$ + ".DAT":RETURN '
25000 REM ************** ERROR TRAPING ROUTINE ****************************************************************************** '
25010 ET=ERR
25020 PRINT:PRINT:PRINT
25030 IF ET=52 OR ET=53 OR ET=67 THEN 25210:REM bad file name
25040 IF ET=61 THEN 25110:REM disk full
25050 IF ET>=70 AND ET <=72 THEN 25150:REM disk error (write prot.,not ready,media error)
25060 IF ET=25 THEN PRINT"PRINTER IS NOT READY":GOTO 25080
25070 ON ERROR GOTO 0:PRINT ET:GOTO 25260
25080 PRINT "Turn on printer. Make sure 'ON LINE ' light is on.":PRINT:PRINT:PRINT "PRESS ANY KEY TO CONTINUE"
25090 AA$=INKEY$:IF AA$="" THEN 25090
25100 GOTO 25260
25110 PRINT"DISK FULL REPLACE DATA DISK AND TRY AGAIN"
25120 PRINT:PRINT:PRINT "PRESS ANY KEY TO CONTINUE"
25130 AA$=INKEY$:IF AA$="" THEN 25130
25140 GOTO 25260
25150 PRINT"**************************** YOU HAVE A DISK ERROR *************************"
25160 PRINT"MAKE SURE THAT YOUR DATA DISK IS IN DRIVE 1 AND SEE IF DISK DOOR IS CLOSED"
25170 PRINT"IF DISK IS IN DRIVE 1 AND DOOR IS CLOSED YOUR DISK IS WRITE PROTECTED OR FAULTY"
25180 PRINT:PRINT:PRINT "REPLACE DISK AND PRESS ANY KEY TO CONTINUE"
25190 AA$=INKEY$:IF AA$="" THEN 25190
25200 GOTO 25260
25210 PRINT "FILE NOT FOUND OR NAME NOT VALID - MUST BE LETTERS A-Z AND DIGITS O-9"
25220 PRINT "FILE NAME CANNOT BE MORE THAN EIGHT DIGITS LONG"
25230 PRINT:PRINT:PRINT "PRESS ANY KEY TO CONTINUE"
25240 AA$=INKEY$:IF AA$="" THEN 25240
25250 GOSUB 20070
25260 RESUME
25270 REM **********************************************************************