home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
World_Of_Computer_Software-02-387-Vol-3of3.iso
/
c
/
civil-ab.zip
/
MNDOTHYD.ZIP
/
ARCHPIPE.BAS
next >
Wrap
BASIC Source File
|
1985-08-12
|
28KB
|
682 lines
1 REM WRITTEN BY JOE LINN MODIFIED 12/11/80 MODIFIED FOR IBM PC 8/84
2 REM HYDRAULICS BY WALLY MARUSENKO
10 DIM CX(3,6),AX(86,3),A,A8,A9,B,C,C8,D,D0,D6,D7,D8,D9,E,ET,E8,E9,F,H,H9,I,I0
20 DIM I1,I2,I7,I8,I9,J,J9,K,L,M,M5,M6,M7,N,NA$(40),O,O0,O9,P8,P9,Q,R1,R2,R3,R8
30 DIM R9,RAD,S,S0,S1,T,T0,T8,T9,V,V1,V8,V9,W,X,X0,X8,X9,Y,Y8,Y9,Z
40 FORMAT1$=" DISCHARGE= ######.## CFS SLOPE= ##.#####"
50 FORMAT2$=" 0.925 _* RISE =###.## FT."
60 FORMAT3$=" #####.## #####.## #####.### ##.## ##.## ##.###"
70 FORMAT4$=" #####.## #####.## ######.##- #######.##- ####.### ##.## ##.## ##.###"
80 FORMAT5$=" MANNING'S 'N'= #####.###"
90 FORMAT6$=" NORMAL DEPTH= #####.## FT VELOCITY= #####.## FT/SEC"
100 FORMAT7$=" WETTED PER= #####.## FT WATER WIDTH=####.## FT"
110 FORMAT8$=" LENGTH OF CULVERT ##### FEET"
120 FORMAT9$=" APPROACH VELOCITY ####.## FT/SEC"
130 FORMAT10$=" FULL FLOW VELOCITY ####.## FT/SEC"
140 FORMAT11$=" (DC+D)/2 =####.## FEET"
150 FORMAT12$=" INPUT VALUE (DC+D)/2 OR TW =####.## FEET"
160 FORMAT13$=" OUTLET CONTROL HW FOR FULL FLOW =####.## FEET"
170 FORMAT14$=" FLOW DEPTH AT INLET =####.## FEET"
180 FORMAT15$=" INLET VELOCITY =####.## FT/SEC"
190 FORMAT16$=" INLET LOSS COEFFICIENT (KE)=####.####"
200 FORMAT17$=" OUTLET CONTROL HW FOR PARTIAL FLOW =####.## FEET"
210 FORMAT18$=" INLET CONTROL HW =####.## FEET"
220 FORMAT19$=" TOTAL AREA=######.## SQ FT TOTAL PERIMETER=######.## FT"
230 FORMAT20$=" SPAN =####.# INCHES OR###.## FEET"
240 FORMAT21$=" RISE =####.# INCHES OR ##.## FEET"
250 FORMAT22$=" C.R. =####.# INCHES OR ##.## FEET"
255 FORMAT23$=" CRITICAL DEPTH=#####.## FT VELOCITY= ######.## FT/SEC"
260 C1LEAR$=CHR$(12):FORMFEED$=CHR$(12)
270 WIDTH "lpt1:",120
280 PI=3.14159
290 DEF FNCOMM(ARG)=65535!-ARG
300 DEF FNNCOMP(RAD)=N+(1-SGN(ABS(N)))*.0336/(RAD^.07)
320 PRINT C1LEAR$
330 GOTO 460
340 ON ERROR GOTO 55000
350 CLOSE #3:CLOSE #2:INPUT "DO YOU WANT PRINTOUT ON (SCREEN=0 PRINTER=1 BOTH=2) ",Q9
352 IF Q9<>0 AND Q9<>1 AND Q9<>2 THEN 170
355 NA$="scrn:":IF Q9=1 THEN NA$="lpt1:":OPEN "O",#3,NA$:ELSE OPEN "O",#3,NA$
357 IF Q9=2 THEN OPEN "O",#2,"LPT1:"
360 REM PRINT #3,FORMFEED$
370 PRINT #3," "
375 IF Q9=2 THEN PRINT #2," "
380 PRINT #3,"######################## CONCRETE AND METAL PIPE ARCH PROGRAM ########################"
385 IF Q9=2 THEN PRINT #2,"######################## CONCRETE AND METAL PIPE ARCH PROGRAM ########################"
390 PRINT #3," "
395 IF Q9=2 THEN PRINT #2," "
400 PRINT #3," "
405 IF Q9=2 THEN PRINT #2," "
420 PRINT #3," RUN DATE ";DATE$
425 IF Q9=2 THEN PRINT #2," RUN DATE ";DATE$
430 PRINT #3," "
435 IF Q9=2 THEN PRINT #2," "
440 ON ERROR GOTO 55000
450 RETURN
460 GOSUB 340
470 PRINT C1LEAR$
490 PRINT " RUN DATE ";DATE$
500 PRINT
510 INPUT "ENTER TYPE? METAL=0 CONCRETE=1 ",I1:IF I1<>0 AND I1<>1 THEN 510
520 IF I1=0 THEN 550
530 AX(0,0)=13.5: AX(0,1)=27.5: AX(0,2)=13.75: AX(0,3)=5.25 : AX(1,0)=18: AX(1,1)=40.6875: AX(1,2)=14.75: AX(1,3)=4.625 : AX(2,0)=22.5: AX(2,1)=51: AX(2,2)=18.75: AX(2,3)=6.125 : AX(3,0)=26.625: AX(3,1)=62: AX(3,2)=22.5: AX(3,3)=6.5
531 AX(4,0)=31.3125: AX(4,1)=73: AX(4,2)=26.25: AX(4,3)=7.75 : AX(5,0)=36: AX(5,1)=84: AX(5,2)=30: AX(5,3)=8.875 : AX(6,0)=40.125: AX(6,1)=92.5: AX(6,2)=33.375: AX(6,3)=10 : AX(7,0)=45: AX(7,1)=105: AX(7,2)=37.5: AX(7,3)=11
532 AX(8,0)=54: AX(8,1)=126: AX(8,2)=45: AX(8,3)=13.3125 : AX(9,0)=62: AX(9,1)=162.5: AX(9,2)=52: AX(9,3)=14.5 : AX(10,0)=72: AX(10,1)=183: AX(10,2)=59: AX(10,3)=18 : AX(11,0)=78: AX(11,1)=218: AX(11,2)=62: AX(11,3)=20
533 AX(12,0)=88: AX(12,1)=269: AX(12,2)=70: AX(12,3)=22 : AX(13,0)=96.875: AX(13,1)=301.375: AX(13,2)=78: AX(13,3)=24 : AX(14,0)=106.5: AX(14,1)=329: AX(14,2)=85.625: AX(14,3)=26.875 : AX(15,0)=0: AX(15,1)=0: AX(15,2)=0: AX(15,3)=0
540 GOTO 590
550 AX(0,0)=11: AX(0,1)=19.12: AX(0,2)=10.06: AX(0,3)=3.5 : AX(1,0)=13.3: AX(1,1)=37.06: AX(1,2)=11.87:AX(1,3)=4 : AX(2,0)=15.5: AX(2,1)=33.5: AX(2,2)=12.75: AX(2,3)=4: AX(3,0)=17.8 : AX(3,1)=55: AX(3,2)=14.75: AX(3,3)=4.5:
551 AX(4,0)=22.2:AX(4,1)=73.25:AX(4,2)=18.25:AX(4,3)=5 : AX(5,0)=26.6:AX(5,1)=91.56:AX(5,2)=21.56:AX(5,3)=5.5 : AX(6,0)=31.7:AX(6,1)=97.25:AX(6,2)=25.12:AX(6,3)=6 : AX(7,0)=35.5:AX(7,1)=115.69: AX(7,2)=29.12:AX(7,3)=7:
552 AX(8,0)=40:AX(8,1)=129.31:AX(8,2)=32.75:AX(8,3)=8 : AX(9,0)=44.4:AX(9,1)=142.94:AX(9,2)=36.31:AX(9,3)=9 : AX(10,0)=48.7:AX(10,1)=145.5:AX(10,2)=39.75:AX(10,3)=10 : AX(11,0)=54:AX(11,1)=154.5:AX(11,2)=42.625:AX(11,3)=11:
553 AX(12,0)=55:AX(12,1)=76.3:AX(12,2)=36.8:AX(12,3)=18 : AX(13,0)=57.1:AX(13,1)=98.6:AX(13,2)=38.1:AX(13,3)=18 : AX(14,0)=58.9:AX(14,1)=83.5:AX(14,2)=41:AX(14,3)=18 : AX(15,0)=61.1:AX(15,1)=104.2:AX(15,2)=42.3:AX(15,3)=18:
554 AX(16,0)=63.2:AX(16,1)=136.2:AX(16,2)=43.51:AX(16,3)=18 : AX(17,0)=65:AX(17,1)=109.8:AX(17,2)=46.5:AX(17,3)=18 : AX(18,0)=67.2:AX(18,1)=137.9:AX(18,2)=47.7:AX(18,3)=18 : AX(19,0)=69.4:AX(19,1)=182.9:AX(19,2)=48.91:AX(19,3)=18:
555 AX(20,0)=71.1:AX(20,1)=141:AX(20,2)=51.9:AX(20,3)=18 : AX(21,0)=73.3:AX(21,1)=178.7:AX(21,2)=53.01:AX(21,3)=18 : AX(22,0)=75.1:AX(22,1)=144.6:AX(22,2)=56.2:AX(22,3)=18 : AX(23,0)=77.3:AX(23,1)=177.5:AX(23,2)=57.3:AX(23,3)=18:
556 AX(24,0)=79.5:AX(24,1)=227.7:AX(24,2)=58.31:AX(24,3)=18 : AX(25,0)=81.2:AX(25,1)=178.3:AX(25,2)=61.5:AX(25,3)=18 : AX(26,0)=82.9:AX(26,1)=153.2:AX(26,2)=64.9:AX(26,3)=18 : AX(27,0)=85.1:AX(27,1)=180.4:AX(27,2)=65.9:AX(27,3)=18:
557 AX(28,0)=86.9:AX(28,1)=157.9:AX(28,2)=69.4:AX(28,3)=18 : AX(29,0)=89.1:AX(29,1)=183.2:AX(29,2)=70.2:AX(29,3)=18 : AX(30,0)=91.3:AX(30,1)=216.4:AX(30,2)=71.1:AX(30,3)=18 : AX(31,0)=93:AX(31,1)=186.5:AX(31,2)=74.7:AX(31,3)=18:
558 AX(32,0)=95.2:AX(32,1)=216.8:AX(32,2)=75.5:AX(32,3)=18 : AX(33,0)=97.4:AX(33,1)=257.4:AX(33,2)=76.4:AX(33,3)=18 : AX(34,0)=99.7:AX(34,1)=314.7:AX(34,2)=77.3:AX(34,3)=18 : AX(35,0)=101.3:AX(35,1)=254.8:AX(35,2)=80.7:AX(35,3)=18:
559 AX(36,0)=103:AX(36,1)=220.7:AX(36,2)=84.4:AX(36,3)=18 : AX(37,0)=105.2:AX(37,1)=254.1:AX(37,2)=85.1:AX(37,3)=18 : AX(38,0)=107.5:AX(38,1)=297.6:AX(38,2)=85.9:AX(38,3)=18 : AX(39,0)=109.2:AX(39,1)=254.3:AX(39,2)=89.6:AX(39,3)=18
560 AX(40,0)=110.8:AX(40,1)=226.8:AX(40,2)=93.4:AX(40,3)=18 : AX(41,0)=113.1:AX(41,1)=255.7:AX(41,2)=94:AX(41,3)=18 : AX(42,0)=115.3:AX(42,1)=291.5:AX(42,2)=94.7:AX(42,3)=18 : AX(43,0)=117.6:AX(43,1)=338.1:AX(43,2)=95.5:AX(43,3)=18
561 AX(44,0)=119.2:AX(44,1)=290.9:AX(44,2)=99.2 : AX(44,3)=18:AX(45,0)=121.5:AX(45,1)=332.7:AX(45,2)=99.9 : AX(45,3)=18:AX(46,0)=112.3:AX(46,1)=192.6:AX(46,2)=80.1:AX(46,3)=31 : AX(47,0)=114.4:AX(47,1)=220.8:AX(47,2)=81.3:AX(47,3)=31
562 AX(48,0)=116.2:AX(48,1)=197.9:AX(48,2)=84.4:AX(48,3)=31 : AX(49,0)=118.4:AX(49,1)=222.6:AX(49,2)=85.6:AX(49,3)=31 : AX(50,0)=120.5:AX(50,1)=256.6:AX(50,2)=86.6:AX(50,3)=31 : AX(51,0)=122.3:AX(51,1)=227.7:AX(51,2)=89.8:AX(51,3)=31
563 AX(52,0)=124.1:AX(52,1)=208.5:AX(52,2)=93.1:AX(52,3)=31 : AX(53,0)=126.3:AX(53,1)=232.1:AX(53,2)=94.1:AX(53,3)=31 : AX(54,0)=128.5:AX(54,1)=260.6:AX(54,2)=95.2:AX(54,3)=31 : AX(55,0)=130.2:AX(55,1)=236:AX(55,2)=98.5:AX(55,3)=31
564 AX(56,0)=132.4:AX(56,1)=263.2:AX(56,2)=99.5:AX(56,3)=31 : AX(57,0)=134.2:AX(57,1)=241:AX(57,2)=102.9:AX(57,3)=31 : AX(58,0)=136.3:AX(58,1)=266.8:AX(58,2)=103.8:AX(58,3)=31 : AX(59,0)=138.5:AX(59,1)=297.9:AX(59,2)=104.8:AX(59,3)=31
565 AX(60,0)=140.3:AX(60,1)=270.6:AX(60,2)=108.2:AX(60,3)=31 : AX(61,0)=142.4:AX(61,1)=299.7:AX(61,2)=109.1:AX(61,3)=31 : AX(62,0)=144.2:AX(62,1)=274.5:AX(62,2)=112.6:AX(62,3)=31 : AX(63,0)=146.4:AX(63,1)=302.3:AX(63,2)=113.5:AX(63,3)=31
566 AX(64,0)=148.1:AX(64,1)=278.6:AX(64,2)=117:AX(64,3)=31 : AX(65,0)=150.3:AX(65,1)=305.1:AX(65,2)=117.9:AX(65,3)=31 : AX(66,0)=152.5:AX(66,1)=336.5:AX(66,2)=118.8:AX(66,3)=31 : AX(67,0)=154.7:AX(67,1)=374.3:AX(67,2)=119.7:AX(67,3)=31
567 AX(68,0)=156.4:AX(68,1)=338.1:AX(68,2)=123.2:AX(68,3)=31 : AX(69,0)=158.6:AX(69,1)=373.5:AX(69,2)=124:AX(69,3)=31 : AX(70,0)=167:AX(70,1)=224.2:AX(70,2)=122.7:AX(70,3)=47 : AX(71,0)=171:AX(71,1)=256.4:AX(71,2)=124.9:AX(71,3)=47
568 AX(72,0)=175:AX(72,1)=237.3:AX(72,2)=131.7:AX(72,3)=47 : AX(73,0)=179:AX(73,1)=268.8:AX(73,2)=133.7:AX(73,3)=47 : AX(74,0)=183:AX(74,1)=274.9:AX(74,2)=138.2:AX(74,3)=47 : AX(75,0)=187:AX(75,1)=281:AX(75,2)=142.7:AX(75,3)=47:
569 AX(76,0)=190:AX(76,1)=262.8:AX(76,2)=150:AX(76,3)=47 : AX(77,0)=195:AX(77,1)=293:AX(77,2)=151.7:AX(77,3)=47 : AX(78,0)=199:AX(78,1)=299:AX(78,2)=156.2: AX(78,3)=47 : AX(79,0)=202:AX(79,1)=281.3:AX(79,2)=163.9:AX(79,3)=47
570 AX(80,0)=206:AX(80,1)=287.4:AX(80,2)=168.6:AX(80,3)=47 : AX(81,0)=210:AX(81,1)=293.5:AX(81,2)=173.3:AX(81,3)=47 : AX(82,0)=214:AX(82,1)=299.6:AX(82,2)=178:AX(82,3)=47 : AX(83,0)=218:AX(83,1)=286.7:AX(83,2)=186.6:AX(83,3)=47:
571 AX(84,0)=222:AX(84,1)=311.6:AX(84,2)=187.5:AX(84,3)=47:AX(85,0)=226:AX(85,1)=340.1:AX(85,2)=188.6:AX(85,3)=47:AX(86,0)=0:AX(86,1)=0:AX(86,2)=0:AX(86,3)=0
590 PRINT #3," "
595 IF Q9=2 THEN PRINT #2," "
600 R9=360/(2*PI)
610 I9=0
620 K=0
630 I7=0
640 O=1
650 PRINT "ENTER DISCHARGE";
660 INPUT Q
670 PRINT "ENTER SLOPE";
680 INPUT S
690 PRINT #3,USING FORMAT1$;Q,S
695 IF Q9=2 THEN PRINT #2,USING FORMAT1$;Q,S
700 PRINT #3," "
705 IF Q9=2 THEN PRINT #2," "
710 M=0
720 PRINT "ENTER DEPTH OF MATERIAL";
730 INPUT M
740 PRINT "ENTER ";
750 IF M=0 THEN 800
760 PRINT "COMPOSITE MANNING'S 'N'";
770 INPUT N
780 IF N<>0 THEN 890
790 GOTO 740
800 PRINT "MANNING'S N";
810 IF I1=1 THEN 830
820 PRINT " OR 0 (FOR CALCULATED `N`)";
830 INPUT N
840 IF I1=1 AND N=0 THEN 740
850 IF N<>0 THEN 880
860 PRINT #3,TAB(6);"DEPTH OF MATERIAL =";M
865 IF Q9=2 THEN PRINT #2,TAB(6);"DEPTH OF MATERIAL =";M
870 GOTO 930
880 IF M=0 THEN 910
890 PRINT #3,TAB(6);"COMPOSITE ";
895 IF Q9=2 THEN PRINT #2,TAB(6);"COMPOSITE ";
900 GOTO 920
910 PRINT #3," ";
915 IF Q9=2 THEN PRINT #2," ";
920 PRINT #3,"MANNING'S 'N'=";N,"DEPTH OF MATERIAL =";M
925 IF Q9=2 THEN PRINT #2,"MANNING'S 'N'=";N,"DEPTH OF MATERIAL =";M
930 PRINT #3," "
935 IF Q9=2 THEN PRINT #2," "
940 PRINT "IS DATA CORRECT? YES=0 NO=1";
950 INPUT T0
960 IF T0=1 THEN 650
970 ON O GOTO 980,1000
980 GOSUB 4730
990 GOTO 1010
1000 GOSUB 5160
1010 J9=0
1020 D6=H-M
1030 PRINT #3,USING FORMAT2$;.925*D6
1035 IF Q9=2 THEN PRINT #2,USING FORMAT2$;.925*D6
1040 PRINT #3," "
1045 IF Q9=2 THEN PRINT #2," "
1050 IF M=0 THEN 1140
1060 PRINT #3," NOTE: DEPTHS ARE ABOVE TOP OF BURIED MATERIAL"
1065 IF Q9=2 THEN PRINT #2," NOTE: DEPTHS ARE ABOVE TOP OF BURIED MATERIAL"
1070 PRINT #3," "
1075 IF Q9=2 THEN PRINT #2," "
1080 X0=M
1090 GOSUB 4370
1100 M5=A8
1110 M6=P8
1120 M7=C8
1130 O9=A9-M5
1140 I0=3
1150 IF M=0 THEN 1180
1160 X0=M+.1
1170 GOTO 1190
1180 X0=.1
1190 IF J9=1 THEN 1220
1200 T8=1.16*Q*Q/32.2
1210 GOTO 1230
1220 T8=Q/(1.49*SQR(S))
1230 GOSUB 4370
1240 IF M<>0 THEN 1260
1250 O9=A9
1260 IF J9=1 THEN 1310
1270 IF M=0 THEN 1290
1280 A8=A8-M5
1290 T9=A8^3/C8
1300 GOTO 1360
1310 IF M=0 THEN 1340
1320 A8=A8-M5
1330 P8=P8-M6+M7
1340 R8=A8/P8
1350 T9=A8*R8^.6667/FNNCOMP(R8)
1360 IF I0<.001 THEN 2740
1370 IF T9<T8 THEN 1420
1380 X0=X0-I0
1390 I0=.2*I0
1400 X0=X0+I0
1410 GOTO 1430
1420 X0=X0+I0
1430 IF X0 >= H THEN 1380
1440 IF J9=0 THEN 1230
1450 IF X0<(.925*D6+M) THEN 1230
1460 IF I0>.05 THEN 1230
1470 X0=H
1480 IF M=0 THEN 1520
1490 A8=A9-M5
1500 P8=P9-M6+M7
1510 GOTO 1540
1520 A8=A9
1530 P8=P9
1540 C8=0
1550 GOTO 2870
1560 PRINT "NEED WATER PROFILE? YES=0 NO=1";
1570 INPUT T0
1580 IF T0>0 THEN 2560
1590 PRINT "ENTER INITIAL DEPTH OVER FLOWLINE";
1600 INPUT D8
1610 IF D8 <= .925*D6 THEN 1640
1620 PRINT "MUST BE < 0.925 * RISE"
1630 GOTO 1590
1640 PRINT "ENTER FINAL DEPTH OVER FLOWLINE";
1650 INPUT D9
1660 PRINT "ENTER INCREMENT";
1670 INPUT D7
1680 PRINT #3," "
1685 IF Q9=2 THEN PRINT #2," "
1690 PRINT #3,TAB(5);"INITIAL DEPTH= ";D8;"FINAL DEPTH= ";D9;"INCREMENT= ";D7
1695 IF Q9=2 THEN PRINT #2,TAB(5);"INITIAL DEPTH= ";D8;"FINAL DEPTH= ";D9;"INCREMENT= ";D7
1700 PRINT #3," "
1705 IF Q9=2 THEN PRINT #2," "
1710 PRINT "IS DATA CORRECT? YES=0 NO=1 ";
1720 INPUT T0
1730 IF T0<1 THEN 1750
1740 GOTO 1590
1750 L=0
1760 IF ABS(D8-Y8)>.005 THEN 1790
1770 D8=Y8
1780 GOTO 1800
1790 IF ABS(D8-Y9)<.005 THEN 2290
1800 IF D8<H THEN 1840
1810 PRINT #3,"INITIAL DEPTH EXCEEDS RISE - TRY AGAIN"
1815 IF Q9=2 THEN PRINT #2,"INITIAL DEPTH EXCEEDS RISE - TRY AGAIN"
1820 PRINT #3," "
1825 IF Q9=2 THEN PRINT #2," "
1830 GOTO 1590
1840 PRINT #3," DEPTH-FT VELOCITY DELTA X SUM OF X'S-FT HYD WET WAT 'N'"
1845 IF Q9=2 THEN PRINT #2," DEPTH-FT VELOCITY DELTA X SUM OF X'S-FT HYD WET WAT 'N'"
1850 PRINT #3,TAB(14);"(CONTROL IS: NEG=DOWNSTREAM; POS=UPSTREAM) RAD PER SURF"
1855 IF Q9=2 THEN PRINT #2,TAB(14);"(CONTROL IS: NEG=DOWNSTREAM; POS=UPSTREAM) RAD PER SURF"
1860 X8=0
1870 X0=D8
1880 IF D8>D9 THEN 1910
1890 D7=ABS(D7)
1900 GOTO 1920
1910 D7=-ABS(D7)
1920 L=L+1
1930 IF M=0 THEN 1950
1940 X0=X0+M
1950 GOSUB 4370
1960 IF M=0 THEN 1990
1970 A8=A8-M5
1980 P8=P8+M7-M6
1990 R8=(A8/P8)^1.3333
2000 V1=Q/A8
2010 IF M=0 THEN 2030
2020 X0=X0-M
2030 E9=X0+1.16*V1*V1/64.4
2040 S1=Q^2*FNNCOMP(A8/P8)^2/(2.21*R8*A8^2)
2050 IF L<>1 THEN 2080
2060 PRINT #3,USING FORMAT3$;X0,V1,A8/P8,P8,C8,FNNCOMP(A8/P8)
2065 IF Q9=2 THEN PRINT #2,USING FORMAT3$;X0,V1,A8/P8,P8,C8,FNNCOMP(A8/P8)
2070 GOTO 2120
2080 X9=(E9-E8)/(S-((S0+S1)/2))
2090 X8=X8+X9
2100 T0=A8/P8
2110 PRINT #3,USING FORMAT4$;X0,V1,X9,X8,T0,P8,C8,FNNCOMP(A8/P8)
2115 IF Q9=2 THEN PRINT #2,USING FORMAT4$;X0,V1,X9,X8,T0,P8,C8,FNNCOMP(A8/P8)
2120 E8=E9
2130 S0=S1
2140 X0=X0+D7
2150 IF D7<0 THEN 2210
2160 IF X0<.925*D6 THEN 2190
2170 PRINT #3,TAB(10);"DEPTH EXCEEDS 0.925 * RISE THEREFORE FULL FLOW COND. EXISTS"
2175 IF Q9=2 THEN PRINT #2,TAB(10);"DEPTH EXCEEDS 0.925 * RISE THEREFORE FULL FLOW COND. EXISTS"
2180 GOTO 2560
2190 IF X0>D9 THEN 2560
2200 GOTO 2230
2210 IF X0<.05 THEN 2560
2220 IF X0<D9 THEN 2560
2230 IF Y8>Y9 THEN 2420
2240 IF D8>Y9 AND D7<0 THEN 2330
2250 IF D8>Y9 AND D7>0 THEN 2290
2260 IF D8<Y8 AND D7>0 THEN 2360
2270 IF D8<Y8 AND D7<0 THEN 2290
2280 IF D8 >= Y8 AND D7>0 THEN 2390
2290 PRINT #3,TAB(5);"+++IMPOSSIBLE PROFILE --- TRY AGAIN"
2295 IF Q9=2 THEN PRINT #2,TAB(5);"+++IMPOSSIBLE PROFILE --- TRY AGAIN"
2300 PRINT #3," "
2305 IF Q9=2 THEN PRINT #2," "
2310 PRINT #3," "
2315 IF Q9=2 THEN PRINT #2," "
2320 GOTO 1590
2330 IF X0 >= Y9 THEN 1920
2340 PRINT #3,TAB(10);"BACKWATER CURVE (M-1) GOES BELOW NORMAL DEPTH"
2345 IF Q9=2 THEN PRINT #2,TAB(10);"BACKWATER CURVE (M-1) GOES BELOW NORMAL DEPTH"
2350 GOTO 2560
2360 IF X0 <= Y8 THEN 1920
2370 PRINT #3,TAB(10);"SUPER-CRITICAL FLOW (M-3) EXCEEDS CRITICAL DEPTH"
2375 IF Q9=2 THEN PRINT #2,TAB(10);"SUPER-CRITICAL FLOW (M-3) EXCEEDS CRITICAL DEPTH"
2380 GOTO 2560
2390 IF X0 <= Y9 THEN 1920
2400 PRINT #3,TAB(10);"DROWDAWN CURVE (M-2) EXCEEDS NORMAL DEPTH"
2405 IF Q9=2 THEN PRINT #2,TAB(10);"DROWDAWN CURVE (M-2) EXCEEDS NORMAL DEPTH"
2410 GOTO 2560
2420 IF D8>Y8 AND D7<0 THEN 2480
2430 IF D8>Y8 AND D7>0 THEN 2290
2440 IF D8<Y9 AND D7>0 THEN 2510
2450 IF D8<Y9 AND D7<0 THEN 2290
2460 IF D8>Y9 AND D7<0 THEN 2540
2470 GOTO 2290
2480 IF X0 >= Y8 THEN 1920
2490 PRINT #3,TAB(10);"SUB-CRITICAL FLOW (S-1) GOES BELOW CRITICAL DEPTH"
2495 IF Q9=2 THEN PRINT #2,TAB(10);"SUB-CRITICAL FLOW (S-1) GOES BELOW CRITICAL DEPTH"
2500 GOTO 2560
2510 IF X0 <= Y9 THEN 1920
2520 PRINT #3,TAB(10);"SUPER-CRITICAL FLOW (S-3) EXCEEDS NORMAL DEPTH"
2525 IF Q9=2 THEN PRINT #2,TAB(10);"SUPER-CRITICAL FLOW (S-3) EXCEEDS NORMAL DEPTH"
2530 GOTO 2560
2540 IF X0 >= Y9 THEN 1920
2550 PRINT #3,TAB(10);"SUPER-CRITICAL FLOW (S-2) GOES BELOW NORMAL DEPTH"
2555 IF Q9=2 THEN PRINT #2,TAB(10);"SUPER-CRITICAL FLOW (S-2) GOES BELOW NORMAL DEPTH"
2560 PRINT
2570 PRINT "NEW?: SIZE=1 HYDRAULICS=2 PROFILE=3 HEAD WATER=4"
2580 PRINT " MATERIAL (METAL OR CONCRETE)=5 DONE=6"
2590 PRINT #3," "
2595 IF Q9=2 THEN PRINT #2," "
2600 INPUT T0
2610 IF O<>1 THEN 2630
2620 O=O+1
2630 IF T0<>1 AND T0<>4 THEN 2670
2640 PRINT #3," "
2645 IF Q9=2 THEN PRINT #2," "
2650 GOSUB 340
2660 GOSUB 4230
2670 ON T0 GOTO 2680,2690,1590,2960,460,2730
2680 I9=0
2690 ON T0 GOTO 980,2710
2700 GOTO 2560
2710 GOSUB 340
2720 GOTO 650
2730 CHAIN "MENU"
2740 IF J9=1 THEN 2870
2750 Y8=X0
2760 V8=Q/A8
2770 IF M=0 THEN 2790
2780 Y8=Y8-M
2790 PRINT #3,USING FORMAT23$;Y8,V8
2795 IF Q9=2 THEN PRINT #2,USING FORMAT23$;Y8,V8
2810 PRINT #3,USING FORMAT7$;P8,C8
2815 IF Q9=2 THEN PRINT #2,USING FORMAT7$;P8,C8
2830 PRINT #3,USING FORMAT5$;FNNCOMP(A8/P8)
2835 IF Q9=2 THEN PRINT #2,USING FORMAT5$;FNNCOMP(A8/P8)
2840 PRINT #3," "
2845 IF Q9=2 THEN PRINT #2," "
2850 J9=1
2860 GOTO 1140
2870 Y9=X0
2880 V9=Q/A8
2890 IF M=0 THEN 2910
2900 Y9=Y9-M
2910 PRINT #3,USING FORMAT6$;Y9,V9
2915 IF Q9=2 THEN PRINT #2,USING FORMAT6$;Y9,V9
2920 PRINT #3,USING FORMAT7$;P8,C8
2925 IF Q9=2 THEN PRINT #2,USING FORMAT7$;P8,C8
2930 PRINT #3,USING FORMAT5$;FNNCOMP(A8/P8)
2935 IF Q9=2 THEN PRINT #2,USING FORMAT5$;FNNCOMP(A8/P8)
2940 PRINT #3," "
2945 IF Q9=2 THEN PRINT #2," "
2950 GOTO 1560
2960 GOSUB 5160
2970 PRINT #3,USING FORMAT23$;Y8,V8
2975 IF Q9=2 THEN PRINT #2,USING FORMAT23$;Y8,V8
2980 PRINT #3," "
2985 IF Q9=2 THEN PRINT #2," "
2990 PRINT #3,USING FORMAT6$;Y9,V9
2995 IF Q9=2 THEN PRINT #2,USING FORMAT6$;Y9,V9
3000 PRINT #3," "
3005 IF Q9=2 THEN PRINT #2," "
3010 PRINT #3," "
3015 IF Q9=2 THEN PRINT #2," "
3020 PRINT #3,">>>>>>>>>> HEAD WATER CALCULATIONS <<<<<<<<<<"
3025 IF Q9=2 THEN PRINT #2,">>>>>>>>>> HEAD WATER CALCULATIONS <<<<<<<<<<"
3030 PRINT #3," "
3035 IF Q9=2 THEN PRINT #2," "
3040 PRINT #3," ///// OUTLET CONTROL /////"
3045 IF Q9=2 THEN PRINT #2," ///// OUTLET CONTROL /////"
3050 PRINT #3," "
3055 IF Q9=2 THEN PRINT #2," "
3060 PRINT "FULL FLOW CONDITION 1=YES 0=N0";
3070 INPUT T0
3080 IF T0=0 THEN 3360
3090 PRINT "ENTER LENGTH OF CULVERT";
3100 INPUT T0
3110 PRINT #3,USING FORMAT8$;T0
3115 IF Q9=2 THEN PRINT #2,USING FORMAT8$;T0
3120 PRINT "INLET LOSS COEFFICIENT (KE)";
3130 INPUT K
3140 PRINT #3,USING FORMAT16$;K
3145 IF Q9=2 THEN PRINT #2,USING FORMAT16$;K
3150 V1=Q/A9
3160 O0=A9/P9
3170 IF M=0 THEN 3200
3180 V1=Q/(A9-M5)
3190 O0=(A9-M5)/(P9-M6+M7)
3200 PRINT "ENTER APPROACH VELOCITY";
3210 INPUT X0
3220 PRINT #3,USING FORMAT9$;X0
3225 IF Q9=2 THEN PRINT #2,USING FORMAT9$;X0
3230 PRINT #3,USING FORMAT10$;V1
3235 IF Q9=2 THEN PRINT #2,USING FORMAT10$;V1
3240 V1=(1+K+29.13*(FNNCOMP(O0))^2*T0/O0^(4/3))*V1^2/64.3
3250 PRINT #3,USING FORMAT11$;(Y8+D6)/2
3255 IF Q9=2 THEN PRINT #2,USING FORMAT11$;(Y8+D6)/2
3260 PRINT #3," "
3265 IF Q9=2 THEN PRINT #2," "
3270 PRINT #3," "
3275 IF Q9=2 THEN PRINT #2," "
3280 PRINT "ENT. LARGER VALUE (DC+D)/2 OR TW";
3290 INPUT O0
3300 PRINT #3,USING FORMAT12$;O0
3305 IF Q9=2 THEN PRINT #2,USING FORMAT12$;O0
3310 PRINT #3," "
3315 IF Q9=2 THEN PRINT #2," "
3320 PRINT #3,USING FORMAT13$;V1+O0-S*T0-X0*X0/64.4
3325 IF Q9=2 THEN PRINT #2,USING FORMAT13$;V1+O0-S*T0-X0*X0/64.4
3330 PRINT #3," "
3335 IF Q9=2 THEN PRINT #2," "
3340 PRINT #3," "
3345 IF Q9=2 THEN PRINT #2," "
3350 GOTO 3600
3360 PRINT "FLOW DEPTH AT INLET";
3370 INPUT D0
3380 IF Y8<Y9 OR D0>Y8 THEN 3430
3390 PRINT "IMPROPER INLET DEPTH. CONINUE=0";
3400 INPUT O0
3410 PRINT "> YC FOR SUPER CRITICAL FLOW"
3420 GOTO 3360
3430 PRINT #3,USING FORMAT14$;D0
3435 IF Q9=2 THEN PRINT #2,USING FORMAT14$;D0
3440 PRINT "INLET VELOCITY";
3450 INPUT V
3460 PRINT #3,USING FORMAT15$;V
3465 IF Q9=2 THEN PRINT #2,USING FORMAT15$;V
3470 PRINT "INLET LOSS COEFFICIENT (KE)";
3480 INPUT K
3490 PRINT #3,USING FORMAT16$;K
3495 IF Q9=2 THEN PRINT #2,USING FORMAT16$;K
3500 PRINT "ENTER APPROACH VELOCITY";
3510 INPUT X0
3520 PRINT #3,USING FORMAT9$;X0
3525 IF Q9=2 THEN PRINT #2,USING FORMAT9$;X0
3530 PRINT "IS DATA CORRECT 0=YES 1=NO";
3540 INPUT O0
3550 IF O0=1 THEN 3140
3560 PRINT #3," "
3565 IF Q9=2 THEN PRINT #2," "
3570 PRINT #3,USING FORMAT17$;D0+(1+K)*(V^2)/64.4-X0*X0/64.4
3575 IF Q9=2 THEN PRINT #2,USING FORMAT17$;D0+(1+K)*(V^2)/64.4-X0*X0/64.4
3580 PRINT #3," "
3585 IF Q9=2 THEN PRINT #2," "
3590 PRINT #3," "
3595 IF Q9=2 THEN PRINT #2," "
3600 PRINT #3," ///// INLET CONTROL /////"
3605 IF Q9=2 THEN PRINT #2," ///// INLET CONTROL /////"
3610 PRINT #3," "
3615 IF Q9=2 THEN PRINT #2," "
3620 CX(1,1)=.0890527
3630 CX(1,2)=.712545
3640 CX(1,3)=-.270921
3650 CX(1,4)=.0792502
3660 CX(1,5)=-7.98048E-03
3670 CX(1,6)=2.93213E-04
3680 CX(2,1)=.0833006
3690 CX(2,2)=.795145
3700 CX(2,3)=-.434075
3710 CX(2,4)=.163774
3720 CX(2,5)=-.0249139
3730 CX(2,6)=1.41066E-03
3740 CX(3,1)=.111281
3750 CX(3,2)=.610579
3760 CX(3,3)=-.19437
3770 CX(3,4)=.0512893
3780 CX(3,5)=-4.80538E-03
3790 CX(3,6)=1.68547E-04
3800 PRINT "ENTER INLET TYPE:"
3810 PRINT " 1=PROJECTING, 2=MITERED, 3=APRON (OR HEADWALL)";
3820 INPUT I8
3830 PRINT #3,TAB(6);"INLET TYPE "
3835 IF Q9=2 THEN PRINT #2,TAB(6);"INLET TYPE "
3840 ON I8 GOTO 3870,3890,3910
3850 PRINT "MUST BE 1 - 3"
3860 GOTO 3800
3870 PRINT #3,TAB(6);"PROJECTING"
3875 IF Q9=2 THEN PRINT #2,TAB(6);"PROJECTING"
3880 GOTO 3920
3890 PRINT #3,TAB(6);"MITERED"
3895 IF Q9=2 THEN PRINT #2,TAB(6);"MITERED"
3900 GOTO 3920
3910 PRINT #3,TAB(6);"APRON (OR HEADWALL)"
3915 IF Q9=2 THEN PRINT #2,TAB(6);"APRON (OR HEADWALL)"
3920 X=Q/(W*H^1.5)
3930 Y=CX(I8,1)+CX(I8,2)*X+CX(I8,3)*X*X+CX(I8,4)*X*X*X+CX(I8,5)*X^4+CX(I8,6)*X^5-S/2
3940 IF I8<>2 THEN 3960
3950 Y=Y+S/2
3960 H9=H*Y
3970 IF I1=0 THEN 4180
3980 H=H*12
3990 IF H=13.5 THEN 4080
4000 IF H=36 OR H=78 THEN 4100
4010 IF H=40.125 THEN 4120
4020 IF H=45 THEN 4140
4030 IF H=54 OR H=62 THEN 4160
4040 IF H=72 THEN 4120
4050 IF H=88 OR H=96.875 THEN 4120
4060 H9=H9*.98
4070 GOTO 4170
4080 H9=H9*.9
4090 GOTO 4170
4100 H9=H9*1
4110 GOTO 4170
4120 H9=H9*.97
4130 GOTO 4170
4140 H9=H9*1.04
4150 GOTO 4170
4160 H9=H9*.93
4170 H=H/12
4180 PRINT #3," "
4185 IF Q9=2 THEN PRINT #2," "
4190 PRINT #3,USING FORMAT18$;H9
4195 IF Q9=2 THEN PRINT #2,USING FORMAT18$;H9
4200 PRINT #3," "
4205 IF Q9=2 THEN PRINT #2," "
4210 PRINT #3," "
4215 IF Q9=2 THEN PRINT #2," "
4220 GOTO 2560
4230 PRINT #3,USING FORMAT1$;Q,S
4235 IF Q9=2 THEN PRINT #2,USING FORMAT1$;Q,S
4240 PRINT #3," "
4245 IF Q9=2 THEN PRINT #2," "
4250 IF N<>0 THEN 4290
4260 PRINT #3,TAB(6);"DEPTH OF MATERIAL =";
4265 IF Q9=2 THEN PRINT #2,TAB(6);"DEPTH OF MATERIAL =";
4270 PRINT #3,M
4275 IF Q9=2 THEN PRINT #2,M
4280 GOTO 4350
4290 IF M=0 THEN 4320
4300 PRINT #3,TAB(6);"COMPOSITE ";
4305 IF Q9=2 THEN PRINT #2,TAB(6);"COMPOSITE ";
4310 GOTO 4330
4320 PRINT #3," ";
4325 IF Q9=2 THEN PRINT #2," ";
4330 PRINT #3,"MANNING'S 'N' =";N,"DEPTH OF MATERIAL =";
4335 IF Q9=2 THEN PRINT #2,"MANNING'S 'N' =";N,"DEPTH OF MATERIAL =";
4340 PRINT #3,M
4345 IF Q9=2 THEN PRINT #2,M
4350 PRINT #3," "
4355 IF Q9=2 THEN PRINT #2," "
4360 RETURN
4370 IF I9=12 THEN 4480
4380 E=SQR(Z*Z-C*C)
4390 B=E+H-R1
4400 F=ATN(C/(R3-B))
4410 I=PI-F-D
4420 J=PI/2-D
4430 A9=R3*R3*F-(R3-B)*C-C*E+R1*R1*D+R2*R2*I
4440 P9=2*(R3*F+R2*I+R1*D)
4450 PRINT #3,USING FORMAT19$;A9,P9
4455 IF Q9=2 THEN PRINT #2,USING FORMAT19$;A9,P9
4460 PRINT #3," "
4465 IF Q9=2 THEN PRINT #2," "
4470 I9=12
4480 IF X0>R3-R3*COS(F) THEN 4550
4490 T=(R3-X0)/R3
4500 T=2*ATN(SQR(1-T*T)/T)
4510 A8=R3*R3*(T-SIN(T))/2
4520 P8=R3*T
4530 C8=2*R3*SIN(T/2)
4540 GOTO 4720
4550 IF X0>B THEN 4610
4560 A8=(R2-(B-X0)*(R3-R2)/(R3-B))^2*(I-J)+R3*R3*F
4570 A8=A8-(R3-X0)*C/(R3-B)*(R3-X0)
4580 P8=2*(R3*F+(R2-(B-X0)*(R3-R2)/(R3-B))*(I-J))
4590 C8=2*((R2-(B-X0)*(R3-R2)/(R3-B)+(R3-X0)*C/(R3-B)))
4600 GOTO 4720
4610 IF X0>R2*SIN(J)+B THEN 4670
4620 T=(X0-B+E)/COS(D)
4630 A8=R3*R3*F-(R3-B)*C+(C*T/(R1-R2)+C)*(X0-B)+R2*R2*I-(R1-T)^2*J
4640 P8=2*(R3*F+R2*I-(R1-T)*J)
4650 C8=2*(C*T/(R1-R2)+R1-T)
4660 GOTO 4720
4670 T=(X0-B+E)/R1
4680 T=ATN(SQR(1-T*T)/T)
4690 A8=A9-.5*R1*R1*(2*T-SIN(2*T))
4700 P8=P9-R1*2*T
4710 C8=2*R1*SIN(T)
4720 RETURN
4730 PRINT "ENTER RISE IN INCHES EX. 77.3";
4740 INPUT H
4750 IF I1=0 THEN 4780
4760 I2=15
4770 GOTO 4800
4780 I2=12
4790 IF H>54 THEN 4870
4800 FOR A=1 TO I2
4810 IF INT(H+.5)=INT(AX(A-1,0)+.5) THEN 4910
4820 NEXT A
4830 PRINT "RISE OF";H;" INCHES NOT AN ALLOWABLE SIZE"
4840 PRINT
4850 GOTO 4730
4860 IF I1=1 THEN 4910
4870 FOR A=13 TO 86
4880 IF H=AX(A-1,0) THEN 4910
4890 NEXT A
4900 GOTO 4830
4910 H=AX(A-1,0)/12
4920 R1=AX(A-1,2)/12
4930 R2=AX(A-1,3)/12
4940 R3=AX(A-1,1)/12
4950 Y=R3-H+R1
4960 X=R3-R2
4970 Z=R1-R2
4980 D=(Y*Y+Z*Z-X*X)/(2*Y*Z)
4990 D=ATN(SQR(1-D*D)/D)
5000 C=Z*SIN(D)
5010 W=2*(R2+C)
5020 IF I1=0 THEN 5050
5030 PRINT #3," ---- CONCRETE";
5040 GOTO 5090
5050 IF R2<>47/12 THEN 5080
5060 PRINT #3," ---- ALUMINUM";
5065 IF Q9=2 THEN PRINT #2," ---- ALUMINUM";
5070 GOTO 5090
5080 PRINT #3," ---- STEEL";
5085 IF Q9=2 THEN PRINT #2," ---- STEEL";
5090 PRINT #3," ARCH ----"
5095 IF Q9=2 THEN PRINT #2," ARCH ----"
5100 PRINT #3," "
5105 IF Q9=2 THEN PRINT #2," "
5110 PRINT #3,USING FORMAT20$;12*W,W
5115 IF Q9=2 THEN PRINT #2,USING FORMAT20$;12*W,W
5120 PRINT #3,USING FORMAT21$;12*H,H
5125 IF Q9=2 THEN PRINT #2,USING FORMAT21$;12*H,H
5130 PRINT #3,USING FORMAT22$;AX(A-1,3),AX(A-1,3)/12
5135 IF Q9=2 THEN PRINT #2,USING FORMAT22$;AX(A-1,3),AX(A-1,3)/12
5140 PRINT #3," "
5145 IF Q9=2 THEN PRINT #2," "
5150 RETURN
5160 IF I1=0 THEN 5190
5170 PRINT #3," ---- CONCRETE";
5175 IF Q9=2 THEN PRINT #2," ---- CONCRETE";
5180 GOTO 5230
5190 IF AX(A-1,3)<>47 THEN 5220
5200 PRINT #3," ---- ALUMINUM";
5205 IF Q9=2 THEN PRINT #2," ---- ALUMINUM";
5210 GOTO 5230
5220 PRINT #3," ---- STEEL";
5225 IF Q9=2 THEN PRINT #2," ---- STEEL";
5230 PRINT #3," ARCH ----"
5235 IF Q9=2 THEN PRINT #2," ARCH ----"
5240 PRINT #3," "
5245 IF Q9=2 THEN PRINT #2," "
5250 PRINT #3,USING FORMAT20$;12*W,W
5255 IF Q9=2 THEN PRINT #2,USING FORMAT20$;12*W,W
5260 PRINT #3,USING FORMAT21$;12*H,H
5265 IF Q9=2 THEN PRINT #2,USING FORMAT21$;12*H,H
5270 PRINT #3,USING FORMAT22$;AX(A-1,3),AX(A-1,3)/12
5275 IF Q9=2 THEN PRINT #2,USING FORMAT22$;AX(A-1,3),AX(A-1,3)/12
5280 PRINT #3," "
5285 IF Q9=2 THEN PRINT #2," "
5290 PRINT #3,USING FORMAT19$;A9,P9
5295 IF Q9=2 THEN PRINT #2,USING FORMAT19$;A9,P9
5300 PRINT #3," "
5305 IF Q9=2 THEN PRINT #2," "
5310 RETURN
55000 REM ************** ERROR TRAPING ROUTINE ****************************************************************************** '
55010 ET=ERR :EL=ERL
55020 PRINT:PRINT:PRINT
55030 IF ET=25 THEN PRINT"PRINTER IS NOT READY":GOTO 55070
55040 IF ET=24 THEN PRINT "PRINTER IS OUT OF PAPER. REPLACE PAPER ":GOTO 55070
55050 IF ET>=70 AND ET<=72 THEN PRINT"DISK ERROR < not ready , media error , etc. > ":PRINT"PRESS ANY KEY TO CONTINUE":GOTO 55080
55060 IF ET=53 THEN PRINT"MENU NOT ON DEFAULT DRIVE DISK":RESUME 55110:ELSE PRINT"ERROR # " ET " ON LINE # " EL:RESUME 55110
55070 PRINT "Turn on printer. Make sure 'ON LINE ' light is on.":PRINT:PRINT:PRINT "PRESS ANY KEY TO CONTINUE"
55080 AA$=INKEY$:IF AA$="" THEN 55080
55090 RESUME
55100 REM **********************************************************************
55110 ON ERROR GOTO 0:END