10 KEY OFF 20 SCREEN 0:CLS 30 COLOR 10:PRINT :LOCATE 2,20:PRINT "B R E A T H E R S C A L C U L A T I O N S P R O G R A M" 40 LOCATE 4,25:PRINT "Date developed : Jan. 20th, '97" 50 LOCATE 5,25:PRINT "Revision : 00" 60 LOCATE 6,25:PRINT "Reference : DCPP,vol 1,Ernest E.Ludwig" 70 LOCATE 7,25:PRINT "Developed by : AJ" 80 LOCATE 8,25:PRINT "Contributed by : AJ" 90 LOCATE 9,25:PRINT "Validated by : SS,NA" 100 LOCATE 15,10:COLOR 27:PRINT "Please make sure that this is the latest revision of the program" 110 LOCATE 20,30:COLOR 10:PRINT "Press any key to move ahead" 120 IF INKEY$="" THEN 120 130 'Calculations for Breather Valves 140 KEY OFF:SCREEN 0,0,0:CLS 150 TAG=0:COLUMN=47 160 DIM CAP(30),OUTBRLESS100F(30),OUTBRMORE100F(30),INBR(30),WETAREA(35),EMERVENT(35),X(25,55),X1$(25,55),ROWVALUE$(25),ROWVALUE(25) 170 FOR I=1 TO 26:READ CAP(I):CAP(I)=1000*CAP(I):NEXT 180 FOR I=1 TO 26:READ OUTBRMORE100F(I):OUTBRMORE100F(I)=1000*OUTBRMORE100F(I):NEXT 190 FOR I=1 TO 26:READ OUTBRLESS100F(I):OUTBRLESS100F(I)=1000*OUTBRLESS100F(I):INBR(I)=OUTBRLESS100F(I):NEXT 200 FOR I=1 TO 31:READ WETAREA(I):NEXT 210 FOR I=1 TO 31:READ EMERVENT(I):EMERVENT(I)=1000*EMERVENT(I):NEXT 220 COLOR 10:LOCATE 2,20:PRINT "Outbreathing Calculation" 230 LOCATE 4,15:INPUT "Enter the Maximum filling rate (m3/hr) :";FILLRATE 240 FILLRATE1=FILLRATE*1000/3.785 'gallons/hr 250 LOCATE 5,15:INPUT "Enter the flash point of the liquid (øC) :";FLASHPT 260 LOCATE 6,15:INPUT "Enter the tank capacity (m3) :";TANKCAP 270 LOCATE 7,15:INPUT "Enter the Latent Heat of liquid (Kcal/Kg):";LATENT:LATENT1=LATENT*.454/.252 280 LOCATE 8,15:INPUT "Enter the Molecular weight of the liquid :";MOLWT 290 LOCATE 9,15:INPUT "Enter the Relief temp. of the vapours :";RELTEMP:RELTEMP1=(RELTEMP*1.8)+32 300 TANKCAP1=TANKCAP*1000/3.785 'Gallons 310 FLASHPT1=(FLASHPT*1.8)+32 'øF 320 IF FLASHPT1<100 THEN 330 ELSE 450 330 FREEAIROUT=(1/3.5)*FILLRATE1 'for flashpoint <100øF 340 'thermal venting cap. requirements (Table 7-7) 350 FOR I=1 TO 26 360 DUMMY1=CAP(I):DUMMY2=CAP(I+1) 370 IF TANKCAP1=DUMMY1 THEN THERMOUT=OUTBRLESS100F(I):GOTO 560 380 IF TANKCAP1=DUMMY2 THEN THERMOUT=OUTBRLESS100F(I+1):GOTO 560 390 IF TANKCAP1>DUMMY1 AND TANKCAP1100 øF 460 'thermal venting cap. requirements (Table 7-7) 470 FOR I=1 TO 26 480 DUMMY1=CAP(I):DUMMY2=CAP(I+1) 490 IF TANKCAP1=DUMMY1 THEN THERMOUT=OUTBRMORE100F(I):GOTO 560 500 IF TANKCAP1=DUMMY2 THEN THERMOUT=OUTBRMORE100F(I+1):GOTO 560 510 IF TANKCAP1>DUMMY1 AND TANKCAP12800 THEN 800 ELSE 810 800 EMERVENT=1107*(WET1^.82):GOTO 920 810 IF ANS1$="y" OR ANS1$="Y" AND WET1=<2800 THEN 840 ELSE 820 820 IF ANS1$="n" OR ANS1$="N" THEN 830 ELSE 780 830 IF WET1>2800 THEN EMERVENT=EMERVENT(31) :GOTO 920 840 FOR I=1 TO 31 850 DUMMY1=WETAREA(I):DUMMY2=WETAREA(I+1) 860 IF WET1=DUMMY1 THEN EMERVENT=EMERVENT(I):GOTO 920 870 IF WET1=DUMMY2 THEN EMERVENT=EMERVENT(I+1):GOTO 920 880 IF WET1>DUMMY1 AND WET1DUMMY1 AND TANKCAP1 1 psig" 1330 GOTO 1350 1340 LOCATE 11,15:PRINT "Tank design pressure : >= 1 psig" 1350 LOCATE 12,15:PRINT USING "Wet Area : ###.## m2";WET 1360 COLOR 14,0:LOCATE 14,5:PRINT "R":LOCATE 15,5:PRINT "E" 1370 LOCATE 16,5:PRINT "S":LOCATE 17,5:PRINT "U" 1380 LOCATE 18,5:PRINT "L":LOCATE 19,5:PRINT "T":LOCATE 20,5:PRINT "S" 1390 COLOR 10:LOCATE 13,10:PRINT "Outbreathing Capacities :" 1400 LOCATE 14,10:PRINT " 1. Normal venting for maximum tank filling rate :";FREEAIROUT 1410 LOCATE 15,10:PRINT " 2. Thermal venting rate :";THERMOUT 1420 LOCATE 16,10:PRINT " 3. Emergency venting rate :";EMERVENT 1430 LOCATE 17,10:PRINT " Total outbreathing capacity :";TOTTHERMOUT 1440 LOCATE 18,10:PRINT " Total corrected outbreathing capacity :";CORRTOTTHERMOUT 1450 LOCATE 19,10:PRINT "Inbreathing Capacities :" 1460 LOCATE 20,10:PRINT " 1. Normal venting for maximum tank emptying rate :";FREEAIRIN 1470 LOCATE 21,10:PRINT " 2. Thermal Inbreathing rate :";THERMIN 1480 LOCATE 22,10:PRINT " 3. Corrected total Inbreathing rate :";CORRTOTTHERMIN 1490 TAG=0 1500 COLOR 12,0:LOCATE 23,20:INPUT "Want to edit any data (y/n):";ANS2$ 1510 COLOR 14,0:IF ANS2$="y" OR ANS2$="Y" THEN 1520 ELSE 1790 1520 LOCATE 23,20:PRINT SPACE$(40):LOCATE 23,20:COLOR 29:PRINT "Make Sure That Numeric Lock Is ON" 1530 COLOR 2,9:ROW=3:COLUMN=47:LOCATE ROW,47:PRINT " ":LOCATE ROW,47:COLOR 14:PRINT USING " ###.##";TANKCAP 1540 GOSUB 2480 1550 ON KEY(11) GOSUB 1850 1560 KEY (11) ON 1570 ON KEY(14) GOSUB 1920 1580 KEY (14) ON 1590 ON KEY(13) GOSUB 2040 1600 KEY (13) ON 1610 ON KEY(12) GOSUB 2100 1620 KEY (12) ON 1630 ON KEY(17) GOSUB 1990 1640 KEY 17,CHR$(&H20)+CHR$(&H39):KEY (17) ON 1650 ON KEY(16) GOSUB 2640 1660 KEY 16,CHR$(&H20)+CHR$(&H1C):KEY (16) ON 1670 A$=INKEY$ 1680 LOCATE ROW,COLUMN,1 1690 IF A$="" THEN 1550 1700 A=VAL(A$) 1710 IF A$=CHR$(46) THEN 1720 ELSE 1730 1720 LOCATE ROW,COLUMN,1:PRINT ".":GOTO 1750 1730 IF A<0 OR A>9 THEN 1550 1740 LOCATE ROW,COLUMN,1:PRINT USING "#";A 1750 IF COLUMN=53 THEN 1760 ELSE 1770 1760 COLUMN=47:GOTO 1550 1770 COLUMN=COLUMN+1 1780 GOTO 1550 1790 END 1800 DATA 2.5,4.2,21,42,84,126,168,210,420,630,840,1050,1260,1470,1680,1890,2100,2520,2940,3360,3780,4200,5040,5880,6720,7560 1810 DATA .04,.06,.3,.6,1.2,1.8,2.4,3,6,9,12,15,17,19,21,23,24,27,29,31,34,36,41,45,50,54 1820 DATA .06,.1,.5,1,2,3,4,5,10,15,20,24,28,31,34,37,40,44,48,52,56,60,68,75,82,90 1830 DATA 20,30,40,50,60,70,80,90,100,120,140,160,180,200,250,300,350,400,500,600,700,800,900,1000,1200,1400,1600,1800,2000,2400,2800 1840 DATA 21.1,31.6,42.1,52.7,63.2,73.7,84.2,94.8,105,126,147,168,190,211,239,265,288,312,354,392,428,462,493,524,557,587,614,639,662,704,742 1850 'routine for up arrow 1860 GOSUB 2480 1870 COLUMN=47 1880 IF ROW=11 THEN ROW=ROW-2:GOTO 1900 1890 ROW=ROW-1 1900 GOSUB 2150 1910 RETURN 1920 'routine for down arrow 1930 GOSUB 2480 1940 COLUMN=47 1950 IF ROW=9 THEN ROW=ROW+2:GOTO 1970 1960 ROW=ROW+1 1970 GOSUB 2150 1980 RETURN 1990 'for spacebar 2000 LOCATE ROW,COLUMN,1:PRINT " " 2010 COLUMN=COLUMN+1 2020 IF COLUMN>53 THEN COLUMN=47 2030 RETURN 2040 'for right arrow 2050 COLUMN=COLUMN+1 2060 IF COLUMN>53 THEN COLUMN=47 2070 'LOCATE ROW,COLUMN,1 2080 RETURN 2090 ' 2100 'for left arrow 2110 COLUMN=COLUMN-1 2120 IF COLUMN<47 THEN COLUMN=53 2130 'LOCATE ROW,COLUMN,1 2140 RETURN 2150 IF ROW>12 THEN 2160 ELSE 2170 2160 ROW=3:GOTO 2190 2170 IF ROW<3 THEN 2180 ELSE 2190 2180 ROW=12 2190 ONDASH=ROW-2 2200 COLOR 10,0 2210 FOR TEMPR=3 TO 12 2220 IF TEMPR=10 THEN 2240 2230 LOCATE TEMPR,47:PRINT " " 2240 NEXT 2250 LOCATE 3,15:PRINT "Tank Capacity :";TANKCAP 2260 LOCATE 4,15:PRINT "Maximum Filling Rate :";FILLRATE 2270 LOCATE 5,15:PRINT "Maximum Emptying Rate :";EMPTYRATE 2280 LOCATE 6,15:PRINT "Flash Point of the liquid :";FLASHPT 2290 LOCATE 7,15:PRINT "Molecular Weight of the liquid :";MOLWT 2300 LOCATE 8,15:PRINT "Latent heat of the liquid :";LATENT 2310 LOCATE 9,15:PRINT "Weak roof-to-shell attatchment : YES " 2320 LOCATE 10,15:PRINT "Emergency Venting required : NO" 2330 LOCATE 11,15:PRINT "Tank design pressure : >= 1 psig" 2340 LOCATE 12,15:PRINT "Wet Area :";WET 2350 LOCATE ROW,47:COLOR 2,9:PRINT " " 2360 COLOR 14,9 2370 ON ONDASH GOTO 2380,2390,2400,2410,2420,2430,2440,,2450,2460 2380 LOCATE 3,15:PRINT "Tank Capacity :":LOCATE 3,47:PRINT TANKCAP:GOTO 2470 2390 LOCATE 4,15:PRINT "Maximum Filling Rate :";FILLRATE:GOTO 2470 2400 LOCATE 5,15:PRINT "Maximum Emptying Rate :":LOCATE 5,47:PRINT EMPTYRATE:GOTO 2470 2410 LOCATE 6,15:PRINT "Flash Point of the liquid :":LOCATE 6,47:PRINT FLASHPT:GOTO 2470 2420 LOCATE 7,15:PRINT "Molecular Weight of the liquid :":LOCATE 7,47:PRINT MOLWT:GOTO 2470 2430 LOCATE 8,15:PRINT "Latent heat of the liquid :":LOCATE 8,47:PRINT LATENT:GOTO 2470 2440 LOCATE 9,15:PRINT "Weak roof-to-shell attatchment :";ANS$:GOTO 2470 2450 LOCATE 11,15:PRINT "Tank design pressure :";ANS1$:GOTO 2470 2460 LOCATE 12,15:PRINT "Wet Area :":LOCATE 12,47:PRINT WET 2470 RETURN 2480 'calculations routine 2490 FOR R=3 TO 12 2500 IF R=10 THEN 2590 2510 ROWVALUE$(R)="" 2520 FOR COL=47 TO 54 2530 X=SCREEN(R,COL) 2540 X(R,COL)=X 2550 X1$(R,COL)=CHR$(X(R,COL)) 2560 ROWVALUE$(R)=ROWVALUE$(R)+X1$(R,COL) 2570 NEXT 2580 ROWVALUE(R)=VAL(ROWVALUE$(R)) 2590 NEXT 2600 TANKCAP=ROWVALUE(3):FILLRATE=ROWVALUE(4):EMPTYRATE=ROWVALUE(5) 2610 FLASHPT=ROWVALUE(6):MOLWT=ROWVALUE(7):LATENT=ROWVALUE(8):WET=ROWVALUE(12) 2620 IF TAG=1 THEN RETURN 2660 2630 RETURN 2640 ' Edited Calculations module 2650 KEY (16) OFF:TAG=1:GOSUB 2480 2660 FILLRATE1=FILLRATE*1000/3.785 'gallons/hr 2670 LATENT1=LATENT*.454/.252:WET1=WET*10.76391 2680 COLOR 10,0:GOTO 300