10 KEY OFF 20 SCREEN 0:CLS 30 COLOR 10:PRINT :LOCATE 2,20:PRINT "T W O-P H A S E 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. 30th, '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 CLS 140 LOCATE 2,10:INPUT "Enter the pipe Dia (in.) :";PIPEID 150 LOCATE 3,10:INPUT "Enter the Liquid mass flow rate (Kg/hr) :";LIQMASSRATE 160 LOCATE 4,10:INPUT "Enter the Liquid density (Kg/m3) :";LIQDENS 170 LOCATE 5,10:INPUT "Enter the Gas density (Kg/m3) :";GASDENS 180 LOCATE 6,10:INPUT "Enter the surface tension of liq (dynes/cm) :";STENSION 190 LOCATE 7,10:INPUT "Enter the Liquid viscosity (cp) :";LIQVIS 200 LOCATE 8,10:INPUT "Enter the Gas Mass flow rate (Kg/hr) :";GASMASSRATE 202 LOCATE 9,10:INPUT "Enter the Gas Viscosity (cp) :";GASVIS 210 PIPEID1=PIPEID/12:AREA=3.14*(PIPEID1^2)/4:LIQMASSRATE1=LIQMASSRATE/(AREA*.454):LIQDENS1=LIQDENS*.06243:GASDENS1=GASDENS*.06243:STENSION1=STENSION:LIQVIS1=LIQVIS:GASMASSRATE1=GASMASSRATE/(AREA*.454) 220 LEMBDA=SQR(GASDENS1*LIQDENS1/(.075*62.3)) 230 XI=(73/STENSION1)*((LIQVIS1*((62.3/LIQDENS1)^2))^(1/3)) 240 FIG2.28.X=LIQMASSRATE1*LEMBDA*XI/GASMASSRATE1 250 FIG2.28.Y=GASMASSRATE1/LEMBDA 252 LIQVEL=LIQMASSRATE1/LIQDENS1/3600 253 NRELIQ=PIPEID1*LIQVEL*LIQDENS1/(LIQVIS/1488) 255 GASVEL=(GASMASSRATE/GASDENS)*.00981/AREA 256 NREGAS=PIPEID1*GASVEL*GASDENS1/(GASVIS/1488) 260 LOCATE 20,20:COLOR 25:PRINT "Press any key to continue" 270 IF INKEY$="" THEN 270 280 COLOR 10:CLS 282 GOSUB 1100 284 IF FLOWTYPE=0 THEN 290 ELSE 390 290 LOCATE 2,10:PRINT "Your flow could be one of the following types :" 300 LOCATE 4,15:PRINT "1. Bubble or froth" 310 LOCATE 5,15:PRINT "2. Plug" 320 LOCATE 6,15:PRINT "3. Stratified" 330 LOCATE 7,15:PRINT "4. Slug" 340 LOCATE 8,15:PRINT "5. Annular" 350 LOCATE 9,15:PRINT "6. Wave " 360 LOCATE 10,15:PRINT "7. Dispersed" 370 LOCATE 12,10:INPUT "Enter your type of flow :";FLOWTYPE 380 IF FLOWTYPE<1 OR FLOWTYPE>7 THEN 370 390 LOCATE 13,10:INPUT "Enter the length of pipe (m) :";PIPELENGTH 400 NRE=NRELIQ:D=PIPEID/12:GOSUB 2000 :CLS 'LOCATE 14,20:PRINT "Reynold number for Liquid is :";NRELIQ 401 E=ABSROUGHNESS:GOSUB 2500:FRICFACTLIQ=F 402 NRE=NREGAS 'LOCATE 15,20:PRINT "Reynold number for Gas is :";NREGAS 403 GOSUB 2500 :FRICFACTGAS=F 407 'LOCATE 16,10:INPUT "Enter the friction factor for Liq. :";FRICFACTLIQ 408 'LOCATE 17,10:INPUT "Enter the friction factor for Gas :";FRICFACTGAS 410 PIPELENGTH1=3.2808*PIPELENGTH 420 DELPLIQ=3.36*((LIQMASSRATE/.454)^2)*FRICFACTLIQ*.000001/((PIPEID^5)*LIQDENS1) 430 DELPGAS=3.36*((GASMASSRATE/.454)^2)*FRICFACTGAS*.000001/((PIPEID^5)*GASDENS1) 440 PARAMX=SQR(DELPLIQ/DELPGAS) 450 ON FLOWTYPE GOTO 460,470,480,490,500,540,540 460 PHI=14.2*(PARAMX^.75)/(LIQMASSRATE1^.1):GOTO 540 470 PHI=27.315*(PARAMX^.855)/(LIQMASSRATE1^.17):GOTO 540 480 PHI=15400*PARAMX/(LIQMASSRATE1^.8):GOTO 540 490 PHI=1190*(PARAMX^.185)/(LIQMASSRATE1^.5):GOTO 540 500 IF PIPEID>10 THEN PIPEIDDUMMY=10 ELSE PIPEIDDUMMY=PIPEID 510 PHI=(4.8-(.3125*PIPEIDDUMMY))*(PARAMX^(.343-(.021*PIPEIDDUMMY))):GOTO 540 520 ' 530 ' 540 ON FLOWTYPE GOTO 550,550,550,550,550,558,558 550 DELPTWOPHHORIZ=DELPGAS*(PHI^2):GOTO 590 558 LOCATE 16,20:COLOR 20,7:PRINT "Your flow type is :";FLOW$:COLOR 10,0 560 FRICFACTTWOPH=.0043*((LIQMASSRATE1*LIQVIS1/(GASMASSRATE1*GASVIS))^.214) 570 DELPTWOPHHORIZ=FRICFACTTWOPH*((GASMASSRATE1/3600)^2)/(193.2*GASDENS1):GOTO 590 580 ' 590 LOCATE 15,10:INPUT "Enter the no. of rises in piping :";NO.RISES 600 NO.RISES1=NO.RISES 610 LOCATE 16,10:INPUT "Enter the average height of these rises :";AVGHT.RISES 620 AVGHT.RISES1=3.2808*AVGHT.RISES 630 GASVEL=(GASMASSRATE/GASDENS)*.00981/AREA 640 IF GASVEL>10 THEN 650 ELSE 660 650 FACTF.E=.0097*(LIQMASSRATE1^.5)/(GASVEL^.7):GOTO 780 660 'fig 2-29 fit for factor Fe 670 DIM FIG2.29.X(35),FIG2.29.Y(35) 680 FOR I=1 TO 31:READ FIG2.29.X(I):NEXT 690 FOR I=1 TO 31:READ FIG2.29.Y(I):NEXT 700 FOR I=1 TO 31 710 DUMMY1=FIG2.29.X(I):DUMMY2=FIG2.29.X(I+1) 720 IF DUMMY1=GASVEL THEN FACF.E=FIG2.29.Y(I):GOTO 780 730 IF DUMMY2=GASVEL THEN FACF.E=FIG2.29.Y(I):GOTO 780 740 IF DUMMY1GASVEL THEN 750 ELSE 770 750 DUMMY3=((FIG2.29.Y(I+1)-FIG2.29.Y(I))/(DUMMY2-DUMMY1))*(GASVEL-DUMMY1) 760 FACTF.E=FIG2.29.Y(I)+DUMMY3:GOTO 780 770 NEXT 780 TOTDELPTWOPH=(DELPTWOPHHORIZ*PIPELENGTH1)+(NO.RISES1*AVGHT.RISES1*FACTF.E*LIQDENS1/144) 790 CLS 800 LOCATE 1,25:PRINT "TWO PHASE FLOW CALCULATIONS":LOCATE 1,60:PRINT "Date :";DATE$ 802 COLOR 14:LOCATE 2,20:PRINT "Inputs":COLOR 10 810 LOCATE 3,10:PRINT "Pipe Dia (in.) :";PIPEID 820 LOCATE 4,10:PRINT "Liquid mass flow rate (Kg/hr) :";LIQMASSRATE 830 LOCATE 5,10:PRINT "Liquid density (Kg/m3) :";LIQDENS 840 LOCATE 6,10:PRINT "Gas density (Kg/m3) :";GASDENS 850 LOCATE 7,10:PRINT "Surface tension of liq (dynes/cm) :";STENSION 860 LOCATE 8,10:PRINT "Liquid viscosity (cp) :";LIQVIS 870 LOCATE 9,10:PRINT "Gas Mass flow rate (Kg/hr) :";GASMASSRATE 872 LOCATE 10,10:PRINT "Gas viscosity (cp) :";GASVIS 880 ON FLOWTYPE GOTO 890,900,910,920,930,940,950 890 FLOWTYPE$="Froth or Bubble":GOTO 960 900 FLOWTYPE$="Plug":GOTO 960 910 FLOWTYPE$="Stratified":GOTO 960 920 FLOWTYPE$="Slug":GOTO 960 930 FLOWTYPE$="Annular":GOTO 960 940 FLOWTYPE$="Wave":GOTO 960 950 FLOWTYPE$="Dispersed":GOTO 960 960 ' 970 LOCATE 11,10:PRINT "Length of pipe (m) :";PIPELENGTH 980 'LOCATE 12,10:PRINT "Friction factor for Liquid :";FRICFACTLIQ 982 'LOCATE 13,10:PRINT "Friction factor for Gas :";FRICFACTGAS 990 LOCATE 12,10:PRINT "No. of rises in piping :";NO.RISES 1000 LOCATE 13,10:PRINT "Average height of these rises (m) :";AVGHT.RISES 1002 COLOR 14:LOCATE 14,20:PRINT "Outputs":COLOR 10 1003 LOCATE 15,10:PRINT "Type of flow :";FLOWTYPE$ 1004 LOCATE 16,10:PRINT "Absolute roughness (e) ,ft :";ABSROUGHNESS 1005 LOCATE 17,10:PRINT "Reynolds number for liquid :";NRELIQ 1006 LOCATE 18,10:PRINT "Reynolds number for gas :";NREGAS 1007 LOCATE 19,10:PRINT "Friction factor for liquid :";FRICFACTLIQ 1010 LOCATE 20,10:PRINT "Friction factor for gas :";FRICFACTGAS 1020 LOCATE 21,10:PRINT "Horizontal two phase pr. drop(psi) :";DELPTWOPHHORIZ*PIPELENGTH1 1030 LOCATE 22,10:PRINT "Vertical section Pr. drop (psi) :";TOTDELPTWOPH-(DELPTWOPHHORIZ*PIPELENGTH1) 1032 LOCATE 23,10:PRINT "Total Two pase pressure drop (psi) :";TOTDELPTWOPH 1040 'fig2-29 X (superficial gas velocity) 1050 DATA 0,.5,1,1.5,2,2.5,3,3.5,4,4.5,5,6,7,8,9,10,11,12,13,14,16,18,20,22,24,28,32,36,40,44,50 1060 'fig2-29 Y (Liquid head factor Fe) 1070 DATA 1,.87,.75,.68,.6,.55,.51,.47,.44,.41,.38,.34,.3,.27,.25,.24,.22,.2,.19,.18,.16,.145,.14,.13,.12,.1,.095,.09,.08,.07,.06 1080 END 1100 'routine for Flow Region Check 1110 'based on Baker graph (HP, Dec '86; pp. 46) 1120 WL=LIQMASSRATE/3600 'kg/s 1130 WG=GASMASSRATE/3600 'kg/s 1140 CAPITALD=PIPEID*2.54/100 'm 1150 BX=2.1039*(WL/WG)*(SQR(LIQDENS*GASDENS)/(LIQDENS^(2/3)))*((LIQVIS/1000)^(1/3))/(STENSION/1000) 1160 BY=25524.62*WG/((22/7)*(CAPITALD^2)/4)/SQR(LIQDENS*GASDENS) 1170 IF BX>10000 OR BX<.1 OR BY>100000! OR BY<100 THEN 1800 1180 L3=LOG(BX)/2.3025:L4=LOG(BY)/2.3025 1190 C1=3.698-.163*L3 1200 C2=4.261-.642*L3 1210 C3=4.959-.41*L3 1220 C4=4.477 1230 C5=4.019-.241*L3 1240 C6=1.935+1.057*L3 1250 C7=6.527-1.072*L3 1260 C8=3.301-.197*L3 1270 IF BX>15 THEN 1350 1280 IF L4C3 THEN FLOW$="Dispersed":FLOWTYPE=7:GOTO 1700 1310 IF BX>4.013 THEN 1330 1320 FLOW$="Annular":FLOWTYPE=5:GOTO 1700 1330 IF L4143.51 THEN 1430 1370 IF L4>C4 THEN FLOW$="Dispersed":FLOWTYPE=7:GOTO 1700 1380 IF BX>40.322 THEN 1410 1390 IF L4>C5 THEN FLOW$="Annular":FLOWTYPE=5:GOTO 1700 1400 FLOW$="Slug":FLOWTYPE=4:GOTO 1700 1410 IF L4>C6 THEN FLOW$="Annular":FLOWTYPE=5:GOTO 1700 1420 FLOW$="Slug":FLOWTYPE=4:GOTO 1700 1430 IF L4>C7 THEN FLOW$="Bubble":FLOWTYPE=1:GOTO 1700 1440 IF L4>C8 THEN FLOW$="Slug":FLOWTYPE=4:GOTO 1700 1450 FLOW$="Plug":FLOWTYPE=2:GOTO 1700 1700 RETURN 1800 PRINT "Data outside Baker graph for flow region check !" 1810 FLOWTYPE=0:RETURN 2000 'Module for Absolute Roughness for fluid flow in pipes 2010 ' Ref : E.Ludwig, vol 1, pp 50 ; Analysis and Design of Energy Systems - B K Hoodge , pp8 2020 'gives absolute roughness in ft 2030 SCREEN 0,0,0:CLS:KEY OFF 2040 COLOR 14:LOCATE 2,25:PRINT "Module for Absolute Roughness" 2050 COLOR 11:LOCATE 4,35:PRINT "MOC":COLOR 10 2060 LOCATE 6,10:PRINT "1. Brass, Lead, Glass, Centrifugally spun Cement,Bituminous" 2070 LOCATE 7,10:PRINT " linings, Transite, Drawn tubing etc." 2080 LOCATE 8,10:PRINT "2. Commercial Steel or Wrought Iron" 2090 LOCATE 9,10:PRINT "3. Asphalted Cast Iron" 2100 LOCATE 10,10:PRINT "4. Galvanized Iron" 2110 LOCATE 11,10:PRINT "5. Cast Iron - Uncoated" 2120 LOCATE 12,10:PRINT "6. Wood Stave " 2130 LOCATE 13,10:PRINT "7. Concrete" 2140 LOCATE 14,10:PRINT "8. Riveted Steel" 2150 LOCATE 16,20 :INPUT "Enter the number of your Pipe MOC :";ROUGHCHOICE 2160 IF ROUGHCHOICE>8 OR ROUGHCHOICE<1 THEN 2150 2170 IF ROUGHCHOICE=6 THEN A$="Wood Stave":RANGE$=".003-.0006 ft":GOTO 2270 2180 IF ROUGHCHOICE=7 THEN A$="Concrete":RANGE$=".01-.001 ft":GOTO 2270 2190 IF ROUGHCHOICE=8 THEN A$="Riveted Steel":RANGE$=".03-.003 ft":GOTO 2270 2200 ON ROUGHCHOICE GOTO 2210,2220,2230,2240,2250 2210 ABSROUGHNESS=.000005:GOTO 2260 2220 ABSROUGHNESS=.00015:GOTO 2260 2230 ABSROUGHNESS=.0004:GOTO 2260 2240 ABSROUGHNESS=.0005:GOTO 2260 2250 ABSROUGHNESS=.00085 2260 RETURN 2270 COLOR 25:LOCATE 16,15:PRINT "Absolute Roughness for ";A$;" ranges from ";RANGE$ 2280 COLOR 10:LOCATE 18,10:INPUT "Enter your absolute roughness value here :";ABSROUGHNESS 2290 IF ROUGHCHOICE=6 AND (ABSROUGHNESS>.003 OR ABSROUGHNESS<6.000001E-04) THEN 2270 2300 IF ROUGHCHOICE=7 AND (ABSROUGHNESS>.01 OR ABSROUGHNESS<.001) THEN 2270 2310 IF ROUGHCHOICE=8 AND (ABSROUGHNESS>.03 OR ABSROUGHNESS<.003) THEN 2270 2320 RETURN 2500 ' Module for friction factor calculation by Haaland equation 2510 'Analysis and Design of Energy Systems - B K Hoodge (pp 6-11) 2520 'f=friction factor, e=absolute roughness(ft or in.), d= pipe dia (ft or in.) 2560 IF NRE>2300 THEN 2580 2570 F=64/NRE:GOTO 2660 2580 IF E/D>.0001 THEN 2630 2590 N=3 2600 TEMP1=(7.7/NRE)^N 2610 TEMP2=(E/(3.7*D))^(1.11*N) 2620 F=.3086*N*N/(((LOG(TEMP1+TEMP2))/LOG(10))^2) 2630 TEMP1=(6.9/NRE) 2640 TEMP2=(E/(3.7*D))^1.11 2650 F=.3086/(((LOG(TEMP1+TEMP2))/LOG(10))^2):GOTO 2660 2660 RETURN