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 >
BASIC Source File  |  1985-09-18  |  6KB  |  166 lines

  1. 1    REM  MODIFIED FOR THE BRONCO 10/27/80 FOR IBM PC 8/84
  2. 2    REM  WRITTEN BY WALLY MARUSENKO
  3. 10   DIM A,A1,A2,ET,N,P,P1,P2,Q,Q1,Q2,R,R1,R2,S,S1,S2,S3,V,V1,V2,W
  4. 20   DIM X,X1,X2,X3,Y,Y1,Y2,Y5,Y9,Z1,Z2,Z3                                    
  5. 30   FORMAT1$="GUTTER WIDTH=###.##  FT.     PROFILE GRADE=####.###-"
  6. 40   FORMAT2$="MANNINGS N=###.####"
  7. 50   FORMAT3$="LANE SLOPE=###.####    GUTTER SLOPE=###.####    CURBFACE SLOPE=###.####"
  8. 60   FORMAT4$="MIN DEPTH =###.###  FT.   MAX DEPTH=###.###     INCRMNT=        ###.###"
  9. 70   FORMAT5$="GUTTER ONLY#####.#### ####.#### ####.#### ####.#### ####.#### ####.####"
  10. 80   FORMAT6$="LANE ONLY  #####.#### ####.#### ####.#### ####.#### ####.#### ####.####"
  11. 90   FORMAT7$="TOTAL      #####.#### ####.####          #####.####        #####.#### TOTAL"
  12. 100  C1LEAR$=CHR$(12)
  13. 110  FORMFEED$=CHR$(12)
  14. 120  PI=3.14159
  15. 130  DEF FNCOMM(ARG)=65535!-ARG
  16. 150  ON ERROR GOTO 1280
  17. 160  PRINT C1LEAR$
  18. 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
  19. 171 CLOSE #2:
  20. 175 NA$="scrn:":IF Q9=1 THEN NA$="lpt1:":OPEN "O",#1,NA$:ELSE OPEN "O",#1,NA$
  21. 176 IF Q9=2 THEN OPEN "O",#2,"LPT1:"
  22. 180  REM PRINT #1,FORMFEED$
  23. 190  PRINT #1," "
  24. 195 IF Q9=2 THEN PRINT #2," "
  25. 200  PRINT #1," "
  26. 205 IF Q9=2 THEN PRINT #2," "
  27. 210  PRINT #1,TAB(30);"GUTTER FLOW  PROGRAM"
  28. 215 IF Q9=2 THEN PRINT #2,TAB(30);"GUTTER FLOW PROGRAM"
  29. 220  PRINT #1," " 
  30. 225 IF Q9=2 THEN PRINT #2," "
  31. 240  PRINT #1,"          RUN  DATE ";DATE$
  32. 245 IF Q9=2 THEN PRINT #2,"        RUN   DATE  ";DATE$
  33. 250  ON ERROR GOTO 1280
  34. 260  PRINT #1," " 
  35. 265 IF Q9=2 THEN PRINT #2," "
  36. 270  PRINT C1LEAR$
  37. 280  PRINT "GUTTER FLOW PROGRAM"
  38. 290  PRINT
  39. 320  PRINT
  40. 330  PRINT "ENTER GUTTER WIDTH IN FEET";
  41. 340  INPUT W : IF NOT(W>0) THEN 330
  42. 350  PRINT "ENTER  GUTR PROF. GRADE (AS .01)";
  43. 360  INPUT S
  44. 370  PRINT "ENTER MANNING N";
  45. 380  INPUT N
  46. 390  PRINT "ENTER  LANE SLOPE (AS .O1)";
  47. 400  INPUT S1
  48. 410  PRINT "ENTER GUTTER SLOPE  (AS .01)";
  49. 420  INPUT S2
  50. 430  PRINT "ENTER CURB FACE SLOPE (AS .5)";
  51. 440  INPUT S3
  52. 450  PRINT "ENTER MINIMUM DEPTH  (FT.)";
  53. 460  INPUT Y
  54. 470  PRINT "ENTER MAXIMUM DEPTH  (FT.)";
  55. 480  INPUT Y9
  56. 490  PRINT "ENTER DEPTH INCREMENT";
  57. 500  INPUT Y5
  58. 510  PRINT #1, "*****INPUT DATA*****"
  59. 515 IF Q9=2 THEN PRINT #2, "*****INPUT DATA*****"
  60. 520  PRINT #1," " 
  61. 525 IF Q9=2 THEN PRINT #2," "
  62. 530  PRINT #1,USING FORMAT1$;W,100*S
  63. 535 IF Q9=2 THEN PRINT #2,USING FORMAT1$;W,100*S
  64. 540  PRINT #1,USING FORMAT2$;N
  65. 545 IF Q9=2 THEN PRINT #2,USING FORMAT2$;N
  66. 550  PRINT #1,USING FORMAT3$;S1,S2,S3
  67. 555 IF Q9=2 THEN PRINT #2,USING FORMAT3$;S1,S2,S3
  68. 560  PRINT #1,USING FORMAT4$;Y,Y9,Y5
  69. 565 IF Q9=2 THEN PRINT #2,USING FORMAT4$;Y,Y9,Y5
  70. 570  PRINT #1," " 
  71. 575 IF Q9=2 THEN PRINT #2," "
  72. 580  PRINT #1,"///// OUTPUT /////"
  73. 585 IF Q9=2 THEN PRINT #2,"///// OUTPUT /////"
  74. 590  PRINT #1," " 
  75. 595 IF Q9=2 THEN PRINT #2," "
  76. 600  PRINT #1," " 
  77. 605 IF Q9=2 THEN PRINT #2," "
  78. 610  PRINT #1,TAB(15);"DEPTH     AREA     HYD R  FLOW WIDTH  VELOCITY  DISCHARGE"
  79. 615 IF Q9=2 THEN PRINT #2,TAB(15);"DEPTH     AREA     HYD R  FLOW WIDTH  VELOCITY  DISCHARGE"
  80. 620  PRINT #1,TAB(15);"FT.(MAX)  SQ FT                FT.     FT/SEC      CFS"
  81. 625 IF Q9=2 THEN PRINT #2,TAB(15);"FT.(MAX)  SQ FT                FT      FT/SEC      CFS"
  82. 630  PRINT #1,TAB(15);"--------  ------    ------    ------  --------  ---------"
  83. 635 IF Q9=2 THEN PRINT #2,TAB(15);"--------  ------    ------    ------  -------   ---------"
  84. 640  X2=W
  85. 650  Y1=X2*S2
  86. 660  IF Y>Y1 THEN 880
  87. 670  IF S2>0 THEN 690
  88. 680  S2=.00001
  89. 690  X2=Y/S2
  90. 700  Z2=1/S2
  91. 710  IF S3>0 THEN 750
  92. 720  X3=0
  93. 730  Z3=0
  94. 740  GOTO 770
  95. 750  X3=Y/S3
  96. 760  Z3=1/S3
  97. 770  A=.5*X2*Y+.5*X3*Y
  98. 780  P=SQR(X2^2+Y^2)+SQR(Y^2+X3^2)
  99. 790  R=A/P
  100. 800  Q=.56*Z2/N*Y^(8/3)*SQR(S)+.56*Z3/N*Y^(8/3)*SQR(S)
  101. 810  V=Q/A
  102. 820  X=X2+X3
  103. 830  PRINT #1,USING FORMAT5$;Y,A,R,X,V,Q
  104. 835 IF Q9=2 THEN PRINT #2,USING FORMAT5$;Y,A,R,X,V,Q
  105. 840  PRINT #1," " 
  106. 845 IF Q9=2 THEN PRINT #2," "
  107. 850  IF Y>Y9 THEN 1230
  108. 860  Y=Y+Y5
  109. 870  GOTO 640
  110. 880  Y2=Y-Y1
  111. 890  IF S1>0 THEN 910
  112. 900  S1=.00001
  113. 910  X1=Y2/S1
  114. 920  Z1=1/S1
  115. 930  IF S3>0 THEN 970
  116. 940  Z3=0
  117. 950  X3=0
  118. 960  GOTO 990
  119. 970  X3=Y/S3
  120. 980  Z3=1/S3
  121. 990  A1=Y2*X2+.5*X2*Y1+.5*Y*X3
  122. 1000 Z2=1/S2
  123. 1010 A=A1+.5*X1*Y2
  124. 1020 P1=SQR(X2^2+Y1^2)+SQR(Y^2+X3^2)+Y2
  125. 1030 P=P1+SQR(X1^2+Y2^2)
  126. 1040 R=A/P
  127. 1050 X=X1+X2+X3
  128. 1060 Q=(1.49*A*R^.6667*SQR(S))/N
  129. 1070 R1=A1/P1
  130. 1080 Q1=.56*Z2/N*SQR(S)*(Y^(8/3)-Y2^(8/3))+.56*Z3/N*SQR(S)*Y2^(8/3)
  131. 1090 V1=Q1/A1
  132. 1100 V=Q/A
  133. 1110 A2=.5*X1*Y2
  134. 1120 P2=SQR(X1^2+Y2^2)+Y2
  135. 1130 R2=A2/P2
  136. 1140 Q2=.56*Z1/N*SQR(S)*Y2^(8/3)
  137. 1150 V2=Q2/A2
  138. 1160 PRINT #1,USING FORMAT5$;Y,A1,R1,X2+X3,V1,Q1
  139. 1165 IF Q9=2 THEN PRINT #2,USING FORMAT5$;Y,A1,R1,X2+X3,V1,Q1
  140. 1170 PRINT #1,USING FORMAT6$;Y2,A2,R2,X1,V2,Q2
  141. 1175 IF Q9=2 THEN PRINT #2,USING FORMAT6$;Y2,A2,R2,X1,V2,Q2
  142. 1180 PRINT #1,USING FORMAT7$;Y,A1+A2,X,Q1+Q2
  143. 1185 IF Q9=2 THEN PRINT #2,USING FORMAT7$;Y,A1+A2,X,Q1+Q2
  144. 1190 PRINT #1," " 
  145. 1195 IF Q9=2 THEN PRINT #2," "
  146. 1200 IF Y>(Y9-Y5) THEN 1230
  147. 1210 Y=Y+Y5
  148. 1220 GOTO 640
  149. 1230 PRINT
  150. 1240 PRINT "COMPUTE ANOTHER GUTTER?  YES=0, NO=1";
  151. 1250 INPUT Q
  152. 1260 IF Q=0 THEN 170
  153. 1270 CHAIN "MENU"
  154. 1280 REM **************    ERROR   TRAPING   ROUTINE    ******************************************************************************                         '
  155. 1290 ET=ERR :EL=ERL
  156. 1300 PRINT:PRINT:PRINT
  157. 1310 IF ET=25 THEN PRINT"PRINTER IS NOT READY":GOTO 1330
  158. 1315 IF ET=24 THEN PRINT "PRINTER IS OUT OF PAPER. REPLACE PAPER ":GOTO 1330
  159. 1317 IF ET>=70 AND ET<=72 THEN PRINT"DISK ERROR < not ready , media error , etc. > ":PRINT"PRESS ANY KEY TO CONTINUE":GOTO 1340
  160. 1320 IF ET=53 THEN PRINT"MENU NOT ON DEFAULT DRIVE DISK":RESUME 1370:ELSE PRINT"ERROR # " ET " ON LINE # " EL:RESUME 1370
  161. 1330 PRINT "Turn on printer. Make sure  'ON LINE '  light is on.":PRINT:PRINT:PRINT "PRESS ANY KEY TO CONTINUE"
  162. 1340 AA$=INKEY$:IF AA$="" THEN 1340
  163. 1350 RESUME
  164. 1360 REM **********************************************************************
  165. 1370 ON ERROR GOTO 0:END
  166.