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
/
GUTTER.BAS
< prev
next >
Wrap
BASIC Source File
|
1985-09-18
|
6KB
|
166 lines
1 REM MODIFIED FOR THE BRONCO 10/27/80 FOR IBM PC 8/84
2 REM WRITTEN BY WALLY MARUSENKO
10 DIM A,A1,A2,ET,N,P,P1,P2,Q,Q1,Q2,R,R1,R2,S,S1,S2,S3,V,V1,V2,W
20 DIM X,X1,X2,X3,Y,Y1,Y2,Y5,Y9,Z1,Z2,Z3
30 FORMAT1$="GUTTER WIDTH=###.## FT. PROFILE GRADE=####.###-"
40 FORMAT2$="MANNINGS N=###.####"
50 FORMAT3$="LANE SLOPE=###.#### GUTTER SLOPE=###.#### CURBFACE SLOPE=###.####"
60 FORMAT4$="MIN DEPTH =###.### FT. MAX DEPTH=###.### INCRMNT= ###.###"
70 FORMAT5$="GUTTER ONLY#####.#### ####.#### ####.#### ####.#### ####.#### ####.####"
80 FORMAT6$="LANE ONLY #####.#### ####.#### ####.#### ####.#### ####.#### ####.####"
90 FORMAT7$="TOTAL #####.#### ####.#### #####.#### #####.#### TOTAL"
100 C1LEAR$=CHR$(12)
110 FORMFEED$=CHR$(12)
120 PI=3.14159
130 DEF FNCOMM(ARG)=65535!-ARG
150 ON ERROR GOTO 1280
160 PRINT C1LEAR$
170 CLOSE #1:INPUT "DO YOU WANT PRINTOUT ON (SCREEN=0 PRINTER=1 BOTH=2) ",Q9:IF Q9<>0 AND Q9<>1 AND Q9<>2 THEN 170
171 CLOSE #2:
175 NA$="scrn:":IF Q9=1 THEN NA$="lpt1:":OPEN "O",#1,NA$:ELSE OPEN "O",#1,NA$
176 IF Q9=2 THEN OPEN "O",#2,"LPT1:"
180 REM PRINT #1,FORMFEED$
190 PRINT #1," "
195 IF Q9=2 THEN PRINT #2," "
200 PRINT #1," "
205 IF Q9=2 THEN PRINT #2," "
210 PRINT #1,TAB(30);"GUTTER FLOW PROGRAM"
215 IF Q9=2 THEN PRINT #2,TAB(30);"GUTTER FLOW PROGRAM"
220 PRINT #1," "
225 IF Q9=2 THEN PRINT #2," "
240 PRINT #1," RUN DATE ";DATE$
245 IF Q9=2 THEN PRINT #2," RUN DATE ";DATE$
250 ON ERROR GOTO 1280
260 PRINT #1," "
265 IF Q9=2 THEN PRINT #2," "
270 PRINT C1LEAR$
280 PRINT "GUTTER FLOW PROGRAM"
290 PRINT
320 PRINT
330 PRINT "ENTER GUTTER WIDTH IN FEET";
340 INPUT W : IF NOT(W>0) THEN 330
350 PRINT "ENTER GUTR PROF. GRADE (AS .01)";
360 INPUT S
370 PRINT "ENTER MANNING N";
380 INPUT N
390 PRINT "ENTER LANE SLOPE (AS .O1)";
400 INPUT S1
410 PRINT "ENTER GUTTER SLOPE (AS .01)";
420 INPUT S2
430 PRINT "ENTER CURB FACE SLOPE (AS .5)";
440 INPUT S3
450 PRINT "ENTER MINIMUM DEPTH (FT.)";
460 INPUT Y
470 PRINT "ENTER MAXIMUM DEPTH (FT.)";
480 INPUT Y9
490 PRINT "ENTER DEPTH INCREMENT";
500 INPUT Y5
510 PRINT #1, "*****INPUT DATA*****"
515 IF Q9=2 THEN PRINT #2, "*****INPUT DATA*****"
520 PRINT #1," "
525 IF Q9=2 THEN PRINT #2," "
530 PRINT #1,USING FORMAT1$;W,100*S
535 IF Q9=2 THEN PRINT #2,USING FORMAT1$;W,100*S
540 PRINT #1,USING FORMAT2$;N
545 IF Q9=2 THEN PRINT #2,USING FORMAT2$;N
550 PRINT #1,USING FORMAT3$;S1,S2,S3
555 IF Q9=2 THEN PRINT #2,USING FORMAT3$;S1,S2,S3
560 PRINT #1,USING FORMAT4$;Y,Y9,Y5
565 IF Q9=2 THEN PRINT #2,USING FORMAT4$;Y,Y9,Y5
570 PRINT #1," "
575 IF Q9=2 THEN PRINT #2," "
580 PRINT #1,"///// OUTPUT /////"
585 IF Q9=2 THEN PRINT #2,"///// OUTPUT /////"
590 PRINT #1," "
595 IF Q9=2 THEN PRINT #2," "
600 PRINT #1," "
605 IF Q9=2 THEN PRINT #2," "
610 PRINT #1,TAB(15);"DEPTH AREA HYD R FLOW WIDTH VELOCITY DISCHARGE"
615 IF Q9=2 THEN PRINT #2,TAB(15);"DEPTH AREA HYD R FLOW WIDTH VELOCITY DISCHARGE"
620 PRINT #1,TAB(15);"FT.(MAX) SQ FT FT. FT/SEC CFS"
625 IF Q9=2 THEN PRINT #2,TAB(15);"FT.(MAX) SQ FT FT FT/SEC CFS"
630 PRINT #1,TAB(15);"-------- ------ ------ ------ -------- ---------"
635 IF Q9=2 THEN PRINT #2,TAB(15);"-------- ------ ------ ------ ------- ---------"
640 X2=W
650 Y1=X2*S2
660 IF Y>Y1 THEN 880
670 IF S2>0 THEN 690
680 S2=.00001
690 X2=Y/S2
700 Z2=1/S2
710 IF S3>0 THEN 750
720 X3=0
730 Z3=0
740 GOTO 770
750 X3=Y/S3
760 Z3=1/S3
770 A=.5*X2*Y+.5*X3*Y
780 P=SQR(X2^2+Y^2)+SQR(Y^2+X3^2)
790 R=A/P
800 Q=.56*Z2/N*Y^(8/3)*SQR(S)+.56*Z3/N*Y^(8/3)*SQR(S)
810 V=Q/A
820 X=X2+X3
830 PRINT #1,USING FORMAT5$;Y,A,R,X,V,Q
835 IF Q9=2 THEN PRINT #2,USING FORMAT5$;Y,A,R,X,V,Q
840 PRINT #1," "
845 IF Q9=2 THEN PRINT #2," "
850 IF Y>Y9 THEN 1230
860 Y=Y+Y5
870 GOTO 640
880 Y2=Y-Y1
890 IF S1>0 THEN 910
900 S1=.00001
910 X1=Y2/S1
920 Z1=1/S1
930 IF S3>0 THEN 970
940 Z3=0
950 X3=0
960 GOTO 990
970 X3=Y/S3
980 Z3=1/S3
990 A1=Y2*X2+.5*X2*Y1+.5*Y*X3
1000 Z2=1/S2
1010 A=A1+.5*X1*Y2
1020 P1=SQR(X2^2+Y1^2)+SQR(Y^2+X3^2)+Y2
1030 P=P1+SQR(X1^2+Y2^2)
1040 R=A/P
1050 X=X1+X2+X3
1060 Q=(1.49*A*R^.6667*SQR(S))/N
1070 R1=A1/P1
1080 Q1=.56*Z2/N*SQR(S)*(Y^(8/3)-Y2^(8/3))+.56*Z3/N*SQR(S)*Y2^(8/3)
1090 V1=Q1/A1
1100 V=Q/A
1110 A2=.5*X1*Y2
1120 P2=SQR(X1^2+Y2^2)+Y2
1130 R2=A2/P2
1140 Q2=.56*Z1/N*SQR(S)*Y2^(8/3)
1150 V2=Q2/A2
1160 PRINT #1,USING FORMAT5$;Y,A1,R1,X2+X3,V1,Q1
1165 IF Q9=2 THEN PRINT #2,USING FORMAT5$;Y,A1,R1,X2+X3,V1,Q1
1170 PRINT #1,USING FORMAT6$;Y2,A2,R2,X1,V2,Q2
1175 IF Q9=2 THEN PRINT #2,USING FORMAT6$;Y2,A2,R2,X1,V2,Q2
1180 PRINT #1,USING FORMAT7$;Y,A1+A2,X,Q1+Q2
1185 IF Q9=2 THEN PRINT #2,USING FORMAT7$;Y,A1+A2,X,Q1+Q2
1190 PRINT #1," "
1195 IF Q9=2 THEN PRINT #2," "
1200 IF Y>(Y9-Y5) THEN 1230
1210 Y=Y+Y5
1220 GOTO 640
1230 PRINT
1240 PRINT "COMPUTE ANOTHER GUTTER? YES=0, NO=1";
1250 INPUT Q
1260 IF Q=0 THEN 170
1270 CHAIN "MENU"
1280 REM ************** ERROR TRAPING ROUTINE ****************************************************************************** '
1290 ET=ERR :EL=ERL
1300 PRINT:PRINT:PRINT
1310 IF ET=25 THEN PRINT"PRINTER IS NOT READY":GOTO 1330
1315 IF ET=24 THEN PRINT "PRINTER IS OUT OF PAPER. REPLACE PAPER ":GOTO 1330
1317 IF ET>=70 AND ET<=72 THEN PRINT"DISK ERROR < not ready , media error , etc. > ":PRINT"PRESS ANY KEY TO CONTINUE":GOTO 1340
1320 IF ET=53 THEN PRINT"MENU NOT ON DEFAULT DRIVE DISK":RESUME 1370:ELSE PRINT"ERROR # " ET " ON LINE # " EL:RESUME 1370
1330 PRINT "Turn on printer. Make sure 'ON LINE ' light is on.":PRINT:PRINT:PRINT "PRESS ANY KEY TO CONTINUE"
1340 AA$=INKEY$:IF AA$="" THEN 1340
1350 RESUME
1360 REM **********************************************************************
1370 ON ERROR GOTO 0:END