10 PI=3.14 18 KEY OFF 20 SCREEN 9:CLS:COLOR 11 30 LOCATE 4,15:PRINT "G A S - G A S H E X A N D G A S C O O L E R" 40 'E212/D212 50 COLOR 10:LINE(200,280)-(400,280) 'e212 baseline 60 LINE(200,250)-(240,250):LINE(270,250)-(330,250):LINE(360,250)-(400,250) 'e212 top lines 70 LINE(240,250)-(240,210):LINE-(180,210) 80 LINE(270,250)-(270,210):LINE-(330,210):LINE-(330,250) 90 LINE(360,250)-(360,210):LINE-(415,210) 100 LINE(180,180)-(415,180) 110 CIRCLE(400,265),20,,1.5*PI,PI/2 120 CIRCLE(200,265),20,,PI/2,1.5*PI 130 CIRCLE(180,195),20,,PI/2,1.5*PI 140 CIRCLE(415,195),20,,1.5*PI,PI/2 150 LOCATE 15,35:PRINT "D 212" 160 LOCATE 20,35:PRINT "E 212" 170 'e211 180 LINE(500,80)-(500,180) 190 LINE(550,80)-(550,180) 200 CIRCLE(525,180),25,,PI,2*PI,.2 210 CIRCLE(525,80),25,,0,PI,.2 220 LOCATE 10,64:PRINT "E 211" 230 'streams 240 COLOR 13:LINE(300,180)-(300,140):LINE-(50,140) 250 LINE(60,137)-(50,140):LINE-(60,143) 260 LOCATE 9,1:PRINT "MP STEAM" 270 LINE(50,230)-(200,230):LINE-(200,210) 280 LINE(197,220)-(200,210):LINE-(203,220) 290 LOCATE 16,1:PRINT "HP COND" 300 COLOR 14:LINE(50,265)-(180,265) 310 LINE(170,262)-(180,265):LINE-(170,268) 320 LOCATE 19,1:PRINT "R 210" 330 LINE(420,265)-(460,265):LINE-(460,130):LINE-(500,130) 340 LINE(525,75)-(525,50):LINE-(600,50) 350 LINE(590,47)-(600,50):LINE-(590,53) 360 LOCATE 3,72:PRINT "R 210" 370 LINE(525,185)-(525,220):LINE-(600,220) 380 LINE(590,217)-(600,220):LINE-(590,223) 390 LOCATE 15,72:PRINT "H 210" 400 LINE(550,130)-(600,130) 410 LINE(590,127)-(600,130):LINE-(590,133) 420 LOCATE 11,73:PRINT "T 210" 430 'indicators 440 CIRCLE(150,230),2:CIRCLE(142,230),2:CIRCLE(146,225),1:CIRCLE(146,235),1 450 CIRCLE(190,140),2:CIRCLE(182,140),2:CIRCLE(186,135),1:CIRCLE(186,145),1 460 LINE(460,250)-(470,250) 470 CIRCLE(474,250),4 480 LINE(525,65)-(535,65) 490 CIRCLE(539,65),4 500 LINE(575,130)-(575,122) 510 CIRCLE(575,118),4 520 LINE(550,220)-(550,230) 530 CIRCLE(550,234),4 540 LINE(380,180)-(380,170) 550 CIRCLE(380,166),4 560 BDP=1:M1=2.04:M2=1180:M3=15000:M4=15000:T1=165:T2=195:T3=228:T4=220!:PD212=12.7:T5=190.2:T6=55:T7=85!:T8=195:CP1=.9:CP2=1.5469:CP3=.3465:CP4=.3:CP5=.27:CP6=.2515:CP7=.26:CP8=.9 570 U212=208:A212=105 580 LOCATE 9,20:PRINT M2;"KG/H " 590 LOCATE 18,10:PRINT M1;"M3/H " 600 LOCATE 20,60:PRINT T4;CHR$(248);"C " 610 'LOCATE 18,10:PRINT M1;"M3/H " 620 'LOCATE 18,10:PRINT M1;"M3/H " 630 LOCATE 1,1:PRINT SPC(70):LOCATE 1,1:INPUT "Enter the stream no :";I 640 IF I<1 OR I>8 THEN 630 650 ON I GOSUB 660,1240,2500 660 LOCATE 1,1 :PRINT SPC(70):LOCATE 1,1:INPUT "Vary Flow or Temp(F/T) :";A$ 670 IF A$="f" OR A$="F" THEN 680 ELSE 770 680 LOCATE 1,1 :PRINT SPC(70):LOCATE 1,1:INPUT "Enter the new flow for stream # 1 (M3/H):";M1 690 K=M1*1000*CP1/(U212*A212) 700 K1=T2-T1-T3 710 K2=K*(T2-T1) 720 K3=(T2-T1) 721 K4=K2*LOG(K3)-K1 730 DEF FNA(X)=K4-K2*LOG(T3-X)-X 'M8=BDP*M1*1000/100 740 TAG$="1F":A=T3-1:B=0:GOSUB 4000 'M2=M1*1000-M8 741 T4=ROOT 750 'T4=((M1*CP1*(T1-25)+M3*CP3*(T3-25)-M2*CP2*(T2-25)-M8*CP8*(T8-25))/(CP4*M4))+25 751 M8=M1*1000*BDP/100 752 M2=M1*1000-M8 760 RETURN 580 770 IF A$="t" OR A$="T" THEN 780 ELSE 660 780 LOCATE 1,1:PRINT SPC(70):LOCATE 1,1:PRINT "Enter new temperature for stream #";I":":LOCATE 1,40:INPUT T1 790 K=M3*CP3/(U212*A212) 800 K1=T1+T3-T2 810 K2=K*T3*LOG(T2-T1) 820 K3=K*LOG(T2-T1) 830 K4=1+K3 840 K5=K4/K 850 K6=K2/K 860 K7=K1/K:K8=K6+K7 870 K8=K6+K7 880 'Bisection Method 890 DEF FNA(X)=(T3-X)*LOG(T3-X)+K5*X-K8 900 A=100:B=T3-1:CTR=0 910 'LOCATE 10,15:PRINT "Enter the two guesses now" 920 FUNA=FNA(A):FUNB=FNA(B) 930 IF FUNA=0 THEN ROOT=A:GOTO 1040 940 IF FUNB=0 THEN ROOT=B:GOTO 1040 950 IF FUNA >0 AND FUNB>0 THEN 970 ELSE 960 960 IF FUNA<0 AND FUNB<0 THEN 970 ELSE 990 970 'CLS:LOCATE 10,13:PRINT "The function must have different sign values at a and b" 980 'IF INKEY$="" THEN 950 ELSE 800 990 X1=(A+B)/2 1000 CTR=CTR+1 1010 FUNX1=FNA(X1) 1020 IF FUNX1<.01 AND FUNX1>-.01 THEN 1030 ELSE 1070 1030 ROOT=X1 1040 'CLS:LOCATE 10,20:PRINT "The root of the equation is :";ROOT 1050 'LOCATE 13,20:PRINT "Number of iterations :";CTR 1060 T4=ROOT :GOTO 1220 'end 1070 IF FUNA >0 AND FUNX1>0 THEN A=X1 1080 IF FUNA <0 AND FUNX1<0 THEN A=X1 1090 IF FUNB >0 AND FUNX1>0 THEN B=X1 1100 IF FUNB <0 AND FUNX1<0 THEN B=X1 1110 FUNA=FNA(A):FUNB=FNA(B):GOTO 990 1120 ' 1130 ' 1140 ' 1150 ' 1160 ' 1170 ' 1180 ' 1190 ' 1200 ' 1210 ' 1220 M2=(M1*CP1*(T1-25)+M3*CP3*(T3-25)-M4*CP4*(T4-25)-M8*CP8*(T8-25))/(CP2*(T2-25)) 1230 RETURN 580 1240 'stream # 2 1242 LOCATE 1,1:INPUT "Want to vary Flow or Temp (F/T) :";A$ 1244 IF A$="f" OR A$="F" THEN 1245 ELSE 1246 1245 LOCATE 1,1:INPUT "Enter the new flow for stream #2 :";M2:GOTO 1250 1246 IF A$="t" OR A$="T" THEN 1247 ELSE 1242 1247 LOCATE 1,1:INPUT "Enter the new temperature for stream #2 :";T2 1250 LOCATE 1,1:INPUT "Whether you want to cause change from stream #1 or #2 :";I1 1260 IF I1=1 THEN 1270 ELSE 1400 1270 LOCATE 1,1:PRINT "Want to cause the change from flow or Temp(F/T) of stream #";I1;" :":LOCATE 1,65:INPUT A$ 1280 IF A$="f" OR A$="F" THEN 1290 ELSE 1340 1290 M1=M2/(1000-BDP*10) 1300 RETURN 580 1340 IF A$="t" OR A$="T" THEN 1350 ELSE 1270 1350 K=M1*CP1/(U212*A212) 1352 K1=M4*CP4/(M1*CP1) 1354 K2=K/(M1*CP1) 1356 K3=K2+25-(K1*25) 1358 K4=T2-T3-K3 1360 K5=T2-K3 1362 DEF FNA(X)=(((K*K5-X*(K^2))*(LOG(K5-K*X)-LOG(T3-X)))-((1-K)*X)-K4 1364 TAG$="21T":A=0:B=T3-1:GOSUB 4000 1366 T4=ROOT 1368 T1=K*T4+K3 1370 RETURN 580 1400 IF I2=2 THEN 1410 ELSE 1250 1410 ' 2500 ' stream # 3 2510 LOCATE 1,1 :PRINT SPC(70):LOCATE 1,1:INPUT "Vary Flow or Temp(F/T) :";A$ 2520 IF A$="f" OR A$="F" THEN 2530 ELSE 2900 2530 LOCATE 1,1 :PRINT SPC(70):LOCATE 1,1:INPUT "Enter the new flow for stream # 3 (M3/H):";M1 2540 K=M3*CP3*1000/(U212*A212) 2550 K1=T1+T3-T2 2560 K2=K*T3*LOG(T2-T1) 2570 K4=1+K3 2580 K5=K4/K 2590 K6=K2/K 2600 K7=K1/K 2610 K8=K6+K7 2620 DEF FNA(X)=((T3-T4)*LOG(T3-T4))+K5*T4-K8 2630 TAG$="3F":A=T3-1:B=0:GOSUB 4000 2640 T4=ROOT 2900 'temp for stream #3 4000 'Bisection Method 4090 FUNA=FNA(A):FUNB=FNA(B) 4100 IF FUNA=0 THEN ROOT=A:GOTO 4220 4110 IF FUNB=0 THEN ROOT=B:GOTO 4220 4120 'IF FUNA >0 AND FUNB>0 THEN 4140 ELSE 4130 4130 'IF FUNA<0 AND FUNB<0 THEN 4140 ELSE 4170 4140 'CLS:LOCATE 10,13:PRINT "The function must have different sign values at a and b" 4150 'LOCATE 20,25:PRINT "PRESS ANY KEY TO CONTINUE" 4160 'IF INKEY$="" THEN 4160 ELSE 4010 4170 X1=(A+B)/2 4180 CTR=CTR+1 4190 FUNX1=FNA(X1) 4200 IF FUNX1<.00001 AND FUNX1>-.00001 THEN 4210 ELSE 4260 4210 ROOT=X1 4215 IF TAG$="1F" THEN RETURN 741 4217 IF TAG$="21T" THEN RETURN 1366 4218 IF TAG$="3F" THEN RETURN 2640 4220 'CLS:LOCATE 10,20:PRINT "The root of the equation is :";ROOT 4230 'LOCATE 13,20:PRINT "Number of iterations :";CTR 4240 'LOCATE 20 4250 'END 4260 IF FUNA >0 AND FUNX1>0 THEN A=X1 4270 IF FUNA <0 AND FUNX1<0 THEN A=X1 4280 IF FUNB >0 AND FUNX1>0 THEN B=X1 4290 IF FUNB <0 AND FUNX1<0 THEN B=X1 4300 FUNA=FNA(A):FUNB=FNA(B):GOTO 4170