1 'Club 100 library - 415/939-1246 BBS 937-5039 NEWSLETTER, 932-8856 VOICE 5 ONERRORGOTO40000 10 'GEOROM - V1.1 - STS 1987 20 DEFSNG A-Z 100 GOSUB 1000 200 ONKEYGOSUB310,320,330,340,350,360,370,380 300 GOTO300 310 GOSUB8000:GOSUB1000:RETURN 320 GOSUB9000:GOSUB1000:RETURN 330 GOSUB10000:GOSUB1000:RETURN 340 GOSUB11000:GOSUB1000:RETURN 350 GOSUB12000:GOSUB1000:RETURN 360 GOTO2000 370 RETURN 380 CLS:PRINT"***FINISHED***":CALL23164,0,23366:CALL27795:MENU 1000 CLS:CALL17001:PRINT" General Utility Programs [GEOROM 1.1] ";:CALL17006 1010 PRINT" Water Saturation" 1020 PRINT" Oil & Gas Reserves" 1030 PRINT" Micrologs/Microlaterologs" 1040 PRINT" Rw from SP curve" 1050 PRINT" DIL/DLL Rt correction" 1060 PRINT" POROSITY MENU"; 1070 KEY1," SW":KEY2," VR":KEY3,"MCL":KEY4,"RWSP":KEY5,"RTCR":KEY6,"PORm":KEY7,"":KEY8,"EXIT" 1080 KEYON:SCREEN 0,1:RETURN 2000 GOSUB3000 2010 ONKEYGOSUB2100,2120,2130,2140,2150,2150,2150,2160 2020 IFEX<>0THEN100ELSE2020 2100 GOSUB13000:GOSUB3000:RETURN 2120 GOSUB14000:GOSUB3000:RETURN 2130 GOSUB15000:GOSUB3000:RETURN 2140 GOTO4000 2150 RETURN 2160 EX=100:RETURN 3000 CLS:EX=0:CALL17001:PRINT" Single Porosity Logs [GEOROM 1.1] ";:CALL17006:PRINT 3010 PRINT" Sonic log porosity" 3020 PRINT" Density log porosity" 3030 PRINT" Neutron log porosity" 3040 PRINT" CROSSPLOT MENU" 3050 KEY1,"SPOR":KEY2,"DPOR":KEY3,"NPOR":KEY4,"XPm":KEY5,"":KEY6,"":KEY7,"":KEY 8,"EXIT" 3060 KEYON:SCREEN 0,1:RETURN 4000 GOSUB5000 4010 ONKEYGOSUB4100,4110,4120,4130,4140,4150,4150,4160 4020 IFEX<>0THEN2000ELSE4020 4100 GOSUB16000:GOSUB5000:RETURN 4110 GOSUB17000:GOSUB5000:RETURN 4120 GOSUB18000:GOSUB5000:RETURN 4130 GOSUB19000:GOSUB5000:RETURN 4140 GOSUB20000:GOSUB5000:RETURN 4150 RETURN 4160 EX=2000:RETURN 5000 CLS:EX=0:CALL17001:PRINT" Porosity/Lithology Xplots [GEOROM 1.1] ";:CALL17006 5010 PRINT" Neutron/Density xplot" 5020 PRINT" Sonic/Neutron xplot" 5030 PRINT" Sonic/Density xplot" 5040 PRINT" Sonic/Neutron/Density (MN) xplot"; 5050 PRINT" Lithodensity/Pe, MIP xplots" 5060 KEY1,"NDXP":KEY2,"SNXP":KEY3,"SDXP":KEY4,"MNXP":KEY5,"LDXP":KEY6,"":KEY7,"":KEY8,"EXIT" 5070 KEYON:SCREEN0,1:RETURN 8000 GOSUB37000:CLS:PRINT"SW - water saturation" 8010 PRINT:PRINT"Archie, Humble or Optional Sw model?" 8020 PRINT"(A/H/O)?":L1$="A":L2$="H":L3$="O":GOSUB36000:IFZ$="A"THENGOSUB8250ELSEIFZ$="H"THENGOSUB8240ELSEGOSUB8260 8050 K=0 8060 K=K+1 8070 PRINT"Point #";K:INPUT"%Porosity=";P:INPUT"Rw=";B:INPUT"Rt=";C:GOSUB34000 8120 IFV$<>"N"ANDK=1THENINPUT"Rshale=";R1 8130 IFV1$="N"ANDK<>1THENV=V*100 8140 IFV$<>"N"THENE1=V*B/(.4*R1*P/100):E$="(corr)"ELSEE1=0:E$="" 8150 F=A/(P/100)^M:PRINT"F=";F 8170 E=((F*B/C)^(1/N7)-E1)*100:PRINTX$+E$+"=";E 8190 RW=C/F:PRINT"Rwa=";RW 8200 BV=P*E/100:PRINT"%BVW=";BV 8210 PRINT"AGAIN? (Y/N)":L1$="Y":L2$="N":L3$="Y":GOSUB36000:IFZ$="Y"THEN8060ELSEPRINT"***FINISHED***":RETURN 8240 N7=2:A=.62:M=2.15:X$="%HSw":RETURN 8250 N7=2:A=1:M=2:X$="%ASw":RETURN 8260 PRINT"Define Sw relation:":INPUT"Correlation coefficient, a=";A:INPUT"Cementation factor, m=";M:INPUT"Saturation exponent, n=";N7:X$="%OSw":RETURN 9000 GOSUB37000:CLS:PRINT"VR - oil & gas reserves" 9010 PRINT"English or Metric? (E/M)":L1$="E":L2$="M":L3$="E":GOSUB36000:UN$=Z$ 9040 PRINT"Oil or Gas? (O/G)":L1$="O":L2$="G":L3$="O":GOSUB36000:IFZ$="O"THENGOSUB9230ELSEGOSUB9240 9065 IFUN$="E"THENGOSUB9250ELSEGOSUB9260 9070 PRINTX$:INPUT"%Porosity=";P1:INPUT"%Sw=";S1:PRINT F$;"=";:INPUTF:INPUT"%Recovery Factor=";R3 9130 R4=C1*P1/100*(1-S1/100)*F^J1*R3/100 9140 PRINTZ1$;"/"+A$+P1$;"=";R4 9150 PRINTP$+" of pay=";:INPUTF1 9160 PRINT"Drainage(";A$;"s)=";:INPUTD1 9170 RR=R4*F1*D1:PRINT"Reserve=";RR;Z1$ 9180 PRINT"AGAIN? (Y/N)":L1$="Y":L2$="N":L3$="Y":GOSUB36000:IFZ$="Y"THEN9070ELSEPRINT"***FINISHED***":RETURN 9230 X$="OIL":F$="Bo":C1=7758:Z1$="bbls":J1=-1:RETURN 9240 X$="GAS":F$="1/Bg":C1=43560:Z1$="cfg":J1=1:RETURN 9250 A$="Acre":P$="Feet":P1$=P$:RETURN 9260 A$="Hectare":P$="meters":P1$="Meter":Z1$="m^3":C1=10000:RETURN 10000 GOSUB37000:CLS:PRINT"MCL - Microlog/Microlaterologs" 10010 PRINT"English or Metric? (E/M)":L1$="E":L2$="M":L3$="E":GOSUB36000:IFZ$="M"THENC=1/.3048:T$="¦C/100m":E$="M"ELSEC=1:T$="¦F/100'" 10040 PRINT"Microlog or microLaterolog? (M/L)":L1$="M":L2$="L":L3$="M":GOSUB36000:M$=Z$:IFM$="M"THENPRINT"Microlog":GOSUB10710ELSEPRINT"Microlaterolog":Y2=0 10070 PRINT"Define optional Sw? (Y/N)":L1$="Y":L2$="N":L3$="Y":GOSUB36000:O$=Z$:IFO$="Y"THENGOSUB10440 10100 GOSUB10490:IFD2=0THENRETURN 10118 GOSUB10630 10120 IF M$="M"THEN10350 10130 FA=1:INPUT"Rxo=";X1:INPUT"Rw=";W1 10160 IFFB=1THEN10200ELSEFB=1 10170 PRINT"Rt from Induction or Lateral log? (I/L)":L1$="I":L2$="L":L3$="I":GOSUB36000:L$=Z$ 10200 IFL$="I"THENINPUT"RIL=";R5:GOTO10260 10220 PRINT"R";L$;"L=";:INPUTR4 10230 R5=1.67*R4-.67*X1 10240 PRINT"RLL(corr)=";R5 10250 GOSUB10800 10270 S1=(X1*W1/(R6*R5))^(5/8) 10280 PRINT"%Sw=";S1*100 10290 P1=(W1/(S1^2*R5))^.5 10300 PRINT"%POR(Humble)=";P1*100 10305 AS=100*SQR(1/(.62/P1^2.15)) 10310 PRINT"%POR(Archie)=";AS 10320 IFO$="N"THEN10340 10325 OS=100*(A*P1^2.15/.62)^(1/M) 10330 PRINT"%POR(Option)=";OS 10340 GOTO10100 10350 FA=1:INPUT"R, micro normal=";R7 10380 P1=60.19*(R3/R7^1.2458)^.6515/100+Y2 10390 PRINT"%POR(Humble)=";P1*100 10395 AS=100*SQR(1/(.62/P1^2.15)) 10400 PRINT"%POR(Archie)=";AS 10410 IFO$="N"THEN10430 10415 OS=100*(A*P1^2.15/.62)^(1/M) 10420 PRINT"%POR(Option)=";OS 10430 GOTO10100 10440 PRINT"Define Sw relation:" 10460 INPUT"correlation coefficient, a=";A:INPUT"cementation factor, m=";M 10480 RETURN 10490 IFFA=1THEN10570 10510 INPUT"Total depth=";D1:INPUT"Bottom hole temp=";T1:INPUT"Surface temp=";T0 10540 T4=100*(T1-T0)/D1:PRINT"TempGradient=";T4;T$ 10560 T4=T4/100 10570 INPUT"Zone depth (0=END) =";D2 10590 IFD2=0THENPRINT"***FINISHED***":RETURN 10600 F1=T4*D2+T0:PRINT"Formation temp=";F1;LEFT$(T$,2):IFE$="M"THENF1=1.8*F1+32 10620 RETURN 10630 IFFA=1THEN10670 10650 INPUT"Rm=";R2:INPUT"Rm temp=";T2:IFE$="M"THENT2=1.8*T2+32 10670 R3=R2*((T2+7)/(F1+7)):PRINT"Rm at formaion temp=";R3 10700 RETURN 10710 PRINT"Choose type of Microlog:" 10750 PRINT"S=solid pad, mid-1950's or older" 10760 PRINT"H=hydraulic pad, mid-1950's or younger" 10770 PRINT"[check log header...]" 10772 PRINT"Type S or H? (S/H)":L1$="S":L2$="H":L3$="S":GOSUB36000:IFZ$="S"THENY2=0ELSEY2=.06 10790 RETURN 10800 PRINT"Input an Rmf? (Y/N)":L1$="Y":L2$="N":L3$="Y":GOSUB36000:Y3$=Z$ 10840 IFY3$="N"THENR6=.7336*R3^.9863:GOTO10880 10850 INPUT"Rmf=";R9:INPUT"Rmf temp=";T9:IFE$="M"THENT9=1.8*T9+32 10870 R6=R9*((T9+7)/(T4+7)) 10880 PRINT"Rmf at formation temp=";R6 10890 RETURN 11000 GOSUB37000:CLS:PRINT"Rw from Sp curve" 11010 PRINT"English or Metric? (E/M)":L1$="E":L2$="M":L3$="E":GOSUB36000:E$=Z$:IFE$="M"THENC=1/.3048:T$="¦C/100m"ELSE C=1:T$="¦F/100'" 11040 INPUT"Total depth=";D1:INPUT"Bottom hole temp=";T1:INPUT"Surface temp=";T0 11070 T2=100*(T1-T0)/D1:PRINT"Temp Gradient=";T2;T$ 11090 T2=T2/100 11100 INPUT"Zone depth=";D2 11110 F1=T2*D2+T0:PRINT"Formation temp=";F1;LEFT$(T$,2):IFE$="M"THENF1=1.8*F1+32 11130 INPUT"Rm=";R2:INPUT"Rm temp=";T3:IFE$="M"THENT3=1.8*T3+32 11150 R3=R2*((T3+7)/(F1+7)):PRINT"Rm at formation temp=";R3 11170 PRINT"Input Rmf? (Y/N)":L1$="Y":L2$="N":L3$="Y":GOSUB36000:IFZ$="N"THEN11380 11200 INPUT"Rmf=";R4:INPUT"Rmf temp=";T4:IFE$="M"THENT4=1.8*T4+32 11220 R5=R4*((T4+7)/(F1+7)) 11230 PRINT"Rmf at formation temp=";R5 11240 INPUT"SP(+-millivolts)=";S1:INPUT"Ri(shallow resistivity)=";R6:INPUT"Bed thickness=";H1:H1=H1*C 11270 S2=.95+((4*(R6/R3+2))^(1/3.65)-1.5)/(H1-((R6/R3+11)/.65)^(1/6.05)-.1) 11280 PRINT"correction factor=";S2 11290 S3=S1*S2:PRINT"SSP=";S3 11310 W1=R5*10^(S3/(60+.133*F1)):PRINT"Rwe=";W1 11330 W2=(W1+.131*10^(1/(.4342945*LOG(F1/19.9))-2))/(-(.5*W1)+10^(.0426/(.4342945*LOG(F1/50.8)))) 11340 PRINT"Rw from SP=";W2 11350 PRINT"AGAIN? (Y/N)":L1$="Y":L2$="N":L3$="Y":GOSUB36000:IFZ$="Y"THEN11100ELSEPRINT"***FINISHED***":RETURN 11380 R5=.7336*R3^.9863:R7=1.1942*R3^.901 11400 PRINT"Rmc at formation temp=";R7 11410 GOTO11230 12000 GOSUB37000:CLS:PRINT"DIL/DLL Rt correction":PRINT"DIL or DLL? (I/L)":L1$="I":L2$="L":L3$="I":GOSUB36000:LG$=Z$ 12030 PRINT:IFLG$="L"THEN12130 12040 PRINT"Dual Induction Log":INPUT"RILDeep=";R1:INPUT"RILMedium=";R2:INPUT"RILShallow=";R3 12080 IFR3/R1<2.5ORR2/R1<1THENR5=R1:GOTO12120 12090 R4=1-((R2/R1-1.1)^2*(.4*R3/R1)*(R3/R1+3)-1)/(R3/R1-1)^2 12100 IFR4<.4THENR5=R1:GOTO12270 12110 R5=R4*R1 12120 GOTO12270 12130 PRINT"Dual Laterolog":INPUT"RLLDeep=";R1:INPUT"RLLShallow=";R2:INPUT"Rxo (ENTER to ignore)=";R$ 12170 IFR$=""THEN12210ELSER3=VAL(R$) 12180 IFR1<=R2ORR1<=R3THENR5=R1:GOTO12270 12190 R5=(R1-.29*R3)/.71*(R1/R2)^.1 12200 GOTO12270 12210 INPUT"20' or 28' DLL";R4 12230 IFR4<>28ANDR4<>20THENR4=20 12240 IFR2=>R1THENR5=2.4*R1-1.4*R2 12250 IFR1>R2ANDR4=28THENR5=1.6*R1-.6*R2 12260 IFR1>R2ANDR4=20THENR5=1.7*R1-.7*R2 12270 PRINT"Rt(corr)=";R5 12280 PRINT"AGAIN? (Y/N)":L1$="Y":L2$="N":L3$="Y":GOSUB36000:IFZ$="Y"THEN12030ELSEPRINT"***FINISHED***":RETURN 13000 GOSUB37000:CLS:PRINT"Sonic Log Porosity" 13030 K=0 13040 K=K+1 13060 PRINT"Point #";K:GOSUB33000 13090 IFK=1THENINPUT"Matrix travel time=";T0 13100 S=100*(T1-T0)/(T2-T0):PRINT"%SPOR=";S 13120 GOSUB34000 13130 IFV$<>"N"ANDK=1THENINPUT"Shale travel time=";S1 13140 IFV1$="N"ANDK<>1THENV=V*100 13150 IFV$="N"THEN13170 13160 S2=100*(S1-T0)/(T2-T0) 13170 IFK<>1THEN13190 13180 PRINT"Consolidated rock? (Y/N)":L1$="Y":L2$="N":L3$="Y":GOSUB36000:C$=Z$:IFC$<>"N"THENB=1:GOTO13220 13200 IFV$="N"THENINPUT"Shale travel time=";S1 13220 B=100/S1:IFV$="N"ANDC$<>"N"THEN13240 13225 S3=(S-V*S2)*B:PRINT"%SPOR(corr)=";S3 13240 PRINT"AGAIN? (Y/N)":L1$="Y":L2$="N":L3$="N":GOSUB36000:IFZ$<>"N"THEN13040 13270 PRINT"***FINISHED***":RETURN 14000 GOSUB37000:CLS:PRINT"Density Log Porosity" 14040 K=0 14050 K=K+1 14070 PRINT"Point #";K 14090 IFK=1THENINPUT"Matrix density=";R1 14100 IFK=1THENINPUT"Fluid density (:1)=";R3$ 14110 IFR3$=""THENR3=1ELSER3=VAL(R3$) 14120 INPUT"Bulk density=";R2 14130 D1=100*(R1-R2)/(R1-R3):PRINT"%DPOR=";D1 14150 GOSUB 34000 14160 IFV$<>"N"ANDK=1THENINPUT"Shale density=";S1:S1=(R1-R2)/(R1-R3) 14170 IFV1$="N"ANDK<>1THENV=V*100 14180 IFV$="N"THEN14200 14185 DC=D1-V*S1*100:PRINT"%DPOR(corr)=";DC 14200 PRINT"AGAIN? (Y/N)":L1$="Y":L2$="N":L3$="Y":GOSUB36000:IFZ$="Y"THEN14050 14230 PRINT"***FINISHED***":RETURN 15000 GOSUB37000:CLS:PRINT"Neutron Log Porosity" 15040 K=0 15050 K=K+1 15070 PRINT"Point #";K:GOSUB30000 15100 IFC$="L"THENPRINT"%NPOR(L)=";P1*100 15110 GOSUB34000 15120 IFV$<>"N"ANDK=1THENINPUT"Shale %porosity=";S1 15130 IFV1$="N"ANDK<>1THENV=V*100 15140 IFV$="N"THEN15160 15145 NP=P1*100-V*S1:PRINT"%NPOR("+C$+")corr=";NP 15160 PRINT"AGAIN? (Y/N)":L1$="Y":L2$="N":L3$="Y":GOSUB36000:IFZ$="Y"THEN15050 15190 PRINT"***FINISHED***":RETURN 16000 GOSUB37000:CLS:PRINT"Neutron/Density Crossplot" 16060 K=0 16070 K=K+1 16090 PRINT"Point #";K:GOSUB30000:GOSUB32000 16120 IFP1<.1ANDR1<2.1THENPRINT"POSSIBLE SULFUR/SALT" 16130 IFP1<.06ANDR1>2.88THENPRINT"POSSIBLE ANHYDRITE" 16140 DATA 2.71,2.87,2.71,2.65,2.65,2.87 16150 RESTORE16140 16152 CLS:PRINT" PASS #1 PASS #2 PASS #3" 16154 PRINT" vLS= vLS= vSS=" 16156 PRINT" vDO= vSS= vDO=" 16158 PRINT" XPOR= XPOR= XPOR=" 16160 FORQ=1TO3 16180 READ R3,R4 16220 C(1,1)=R3:C(1,2)=R4:C(1,3)=R2:C(2,1)=0:C(2,3)=1 16230 C(3,1)=1:C(3,2)=1:C(3,3)=1 16240 C(1,4)=R1:C(2,4)=P1:C(3,4)=1 16250 IFQ=1THENC(2,2)=P1-P3 16260 IFQ=2THENC(2,2)=P1-P2 16270 IFQ=3THENC(2,2)=P2-P3:C(2,4)=P2 16280 N=3:GOSUB35000 16290 PRINT@46+13*(Q-1),INT((S(1)*10000+5)/10)/1000 16300 PRINT@86+13*(Q-1),INT((S(2)*10000+5)/10)/1000 16310 PRINT@126+13*(Q-1),INT((S(3)*10000+5)/10)/1000 16320 IFS(1)<-.01ORS(1)>1.01ORS(2)<-.01ORS(1)>1.01ORS(3)<-.01ORS(3)>.41THEN16390 16360 PRINT@161+13*(Q-1),"[ok]":GOTO16420 16390 IFS(1)<-.01ANDQ<>2ORS(1)>-.01ANDQ=2THENPRINT@161+13*(Q-1),"[shale]" 16400 IFS(1)<-.01ANDQ=2ORS(1)>-.01ANDQ<>2THENPRINT@161+13*(Q-1),"[gas/gyp]":PRINT@201+13*(Q-1),"[sulf/salt]" 16410 IFS(3)<-.01ORS(3)>.41THENPRINT@241+13*(Q-1),"[invalid por]"; 16420 NEXTQ 16430 PRINT@280,"AGAIN? (Y/N)";:L1$="Y":L2$="N":L3$="Y":GOSUB36000:IFZ$="Y"THENPRINT:GOTO16070 16460 PRINT:PRINT"***FINISHED***":RETURN 17000 GOSUB37000:CLS:PRINT"Sonic/Neutron Crossplot" 17060 K=0 17070 K=K+1 17090 PRINT"Point #";K:GOSUB33000:GOSUB30000 17120 IFP1<.1ANDT12ORS(1)>-.01ANDQ=2THENPRINT@161+13*(Q-1),"[shale]":PRINT@201+13*(Q-1),"[uncompac]" 17400 IFS(1)<-.01ANDQ=2ORS(1)>-.01ANDQ<>2THENPRINT@161+13*(Q-1),"[gas/gyp]":PRINT@201+13*(Q-1),"[sec por]" 17410 IFS(3)<-.01ORS(3)>.41THENPRINT@241+13*(Q-1),"[invalid por]"; 17420 NEXTQ 17430 PRINT@280,"AGAIN? (Y/N)";:L1$="Y":L2$="N":L3$="Y":GOSUB36000:IFZ$="Y"THENPRINT:GOTO17070 17460 PRINT:PRINT"***FINISHED***":RETURN 18000 GOSUB37000:CLS:PRINT"Sonic/Density Crossplot" 18060 K=0 18070 K=K+1 18090 PRINT"Point #";K:GOSUB33000:GOSUB32000 18130 IFT12.88THENPRINT"POSSIBLE ANHYDRITE" 18140 DATA 2.71,2.65,47.5,55.5,2.71,2.87,47.5,43.5,2.65,2.87,55.5,43.5 18150 RESTORE18140 18152 CLS:PRINT" PASS #1 PASS #2 PASS #3" 18154 PRINT" vLS= vLS= vSS=" 18156 PRINT" vSS= vDO= vDO=" 18158 PRINT" XPOR= XPOR= XPOR=" 18160 FORQ=1TO3 18180 READ R3,R4,T3,T4:T3=T3*AA:T4=T4*AA 18220 C(1,1)=R3:C(1,2)=R4:C(1,3)=R2 18222 C(2,1)=T3:C(2,2)=T4:C(2,3)=T2 18230 C(3,1)=1:C(3,2)=1:C(3,3)=1 18240 C(1,4)=R1:C(2,4)=T1:C(3,4)=1 18280 N=3:GOSUB35000 18290 PRINT@46+13*(Q-1),INT((S(1)*10000+5)/10)/1000 18300 PRINT@86+13*(Q-1),INT((S(2)*10000+5)/10)/1000 18310 PRINT@126+13*(Q-1),INT((S(3)*10000+5)/10)/1000 18320 IFS(1)<-.01ORS(1)>1.01ORS(2)<-.01ORS(1)>1.01ORS(3)<-.01ORS(3)>.41THEN18390 18360 PRINT@161+13*(Q-1),"[ok]":GOTO18420 18390 IFS(1)<-.01THEN18400ELSEPRINT@161+13*(Q-1),"[gas/lt min]":PRINT@201+13*(Q-1),"[sec por]" 18400 IFS(2)<-.01THEN18410ELSEPRINT@161+13*(Q-1),"[sh/dns min]":PRINT@201+13*(Q-1),"[uncompact]" 18410 IFS(3)<-.01ORS(3)>.41THENPRINT@241+13*(Q-1),"[invalid por]"; 18420 NEXTQ 18430 PRINT@280,"AGAIN? (Y/N)";:L1$="Y":L2$="N":L3$="Y":GOSUB36000:IFZ$="Y"THENPRINT:GOTO18070 18460 PRINT:PRINT"***FINISHED***":RETURN 19000 GOSUB37000:CLS:PRINT"Sonic/Neutron/Density (M/N) Crossplot" 19060 K=0 19070 K=K+1 19090 PRINT"Point #";K:GOSUB33000:GOSUB30000:GOSUB32000 19120 M5=.01*(T2-T1)/(R1-R2):N5=(1-P1)/(R1-R2):PRINT"M=";M5;", N=";N5 19125 PRINT:PRINT"-Quaternary Calculation-" 19127 PRINT"Q=quartz, D=dolomite, C=calcite" 19128 PRINT"A=anhydrite, G=gypsum":PRINT 19130 INPUT"Choose 3 (Q,D,C,A,G):";E1$,E2$,E3$ 19140 EC$=E1$:GOSUB19500:IFE$=""THEN19125 19150 C(1,1)=R6:C(2,1)=N6:C(3,1)=T6*AA:E1$=EC$ 19152 EC$=E2$:GOSUB19500:IFE$=""THEN19125 19154 C(1,2)=R6:C(2,2)=N6:C(3,2)=T6*AA:E2$=EC$ 19156 EC$=E3$:GOSUB19500:IFE$=""THEN19125 19158 C(1,3)=R6:C(2,3)=N6:C(3,3)=T6*AA:E3$=EC$ 19160 C(1,4)=R2:C(2,4)=1:C(3,4)=T2 19180 C(4,1)=1:C(4,2)=1:C(4,3)=1:C(4,4)=1:C(4,5)=1 19220 C(1,5)=R1:C(2,5)=P1:C(3,5)=T1 19280 N=4:GOSUB35000 19285 PRINT:PRINT"ROCK COMPOSITION:" 19290 PRINT" v"+E1$+"=";INT((S(1)*10000+5)/10)/1000 19300 PRINT" v"+E2$+"=";INT((S(2)*10000+5)/10)/1000 19310 PRINT" v"+E3$+"=";INT((S(3)*10000+5)/10)/1000 19315 PRINT" XPorosity=";INT((S(4)*10000+5)/10)/1000 19320 IFS(1)<-.01ORS(1)>1.01ORS(2)<-.01ORS(2)>1.01ORS(3)<-.01ORS(3)>1.01ORS(4)<-.01ORS(4)>.41THENPRINT"[unlikely]"ELSEPRINT"[ok]" 19330 PRINT"RECALCULATE? (Y/N)":L1$="Y":L2$="N":L3$="Y":GOSUB36000:IFZ$="Y"THEN19125 19430 PRINT"AGAIN? (Y/N)";:L1$="Y":L2$="N":L3$="Y":GOSUB36000:IFZ$="Y"THENPRINT:GOTO19070 19460 PRINT:PRINT"***FINISHED***":RETURN 19500 EC$=CHR$(ASC(EC$)AND95):IFINSTR(1,"QDCGA",EC$)=0THENPRINT"invalid choice":GOTO19125 19510 IFEC$="Q"THENR6=2.65:N6=P1-P2:T6=55.5:EC$="QUARTZ":RETURN 19520 IFEC$="D"THENR6=2.87:N6=P1-P3:T6=43.5:EC$="Dolomite":RETURN 19530 IFEC$="C"THENR6=2.71:N6=0:T6=47.5:EC$="Calcite":RETURN 19540 IFEC$="A"THENR6=2.98:N6=-.005:T6=50:EC$="Anhydrite" 19550 IFEC$="Anhydrite"ANDA$="C"THENN6=-.002 19560 IFEC$="Anhydrite"THENRETURN 19570 IFEC$="G"THENR6=2.35:N6=.49:T6=52:EC$="Gypsum":RETURN 19580 PRINT"invalid choice":EC$="":RETURN 20000 GOSUB37000:CLS:PRINT"Lithodensity/Pe, MIP Crossplots" 20060 K=0 20070 K=K+1 20090 PRINT"Point #";K 20092 IFK=1THENPRINT"use Neutron log? (Y/N)"ELSE20098 20094 L1$="Y":L2$="N":L3$="Y":GOSUB36000:N2$=Z$ 20098 IFN2$="Y"THENGOSUB30000 20100 GOSUB32000:INPUT"Pe=";PE 20120 IFR2>1THENU4=1.36ELSEU4=.398 20130 IFR1<2.17ANDPE>4.5THENPRINT"POSSIBLE SALT" 20135 IFR1>2.86ANDPE>4.8THENPRINT"POSSIBLE ANHYDRITE" 20140 DATA 2.65,2.87,4.78,9,2.71,2.87,13.8,9,2.65,2.71,4.78,13.3 20150 RESTORE20140 20152 CLS:PRINT" PASS #1 PASS #2 PASS #3" 20154 PRINT" vSS= vLS= vSS=" 20156 PRINT" vDO= vDO= vLS=" 20158 PRINT" XPOR= XPOR= XPOR=" 20160 FORQ=1TO3 20180 READ R7,R3,U1,U2 20220 C(1,1)=R2:C(1,2)=R7:C(1,3)=R3:C(2,1)=U4:C(2,2)=U1:C(2,3)=U2 20230 C(3,1)=1:C(3,2)=1:C(3,3)=1 20240 C(1,4)=R1:C(2,4)=PE*(R1+.1833)/1.0704:C(3,4)=1 20280 N=3:GOSUB35000 20290 PRINT@46+13*(Q-1),INT((S(2)*10000+5)/10)/1000 20300 PRINT@86+13*(Q-1),INT((S(3)*10000+5)/10)/1000 20310 PRINT@126+13*(Q-1),INT((S(1)*10000+5)/10)/1000:X(Q)=S(1) 20320 IFS(2)<-.01ORS(2)>1.01ORS(3)<-.01ORS(3)>1.01ORS(1)<-.01ORS(1)>.41THEN20390 20360 PRINT@161+13*(Q-1),"[ok]":GOTO20420 20390 PRINT@161+13*(Q-1),"[unlikely]" 20410 IFS(1)<-.01 OR S(1)>.41THENPRINT@201+13*(Q-1),"[invalid por]"; 20420 NEXTQ 20430 INPUT"use which porosity for MIP (1,2,3)";PJ 20440 L1=X(PJ):PRINT"LD XPOR CHOSEN=";L1 20450 U5=(PE*(R1+.1883)/1.0704-L1*U4)/(1-L1):PRINT"Umaa=";U5 20460 L5=(R1-L1*R2)/(1-L1) 20470 IFN2$="N"THEN20510 20480 D5=(R1-N2*R2)/(1-N2) 20490 IFD51THEN30110 30010 PRINT"Compensated or Sidewall Neutron? (C/S)":L1$="C":L2$="S":L3$="C":GOSUB36000:A$=Z$ 30040 PRINT"Schlumberger or Dresser? (S/D)":L1$="S":L2$="D":L3$="S":GOSUB36000:B$=Z$ 30070 PRINT"Sandstone/Limestone/Dolomite matrix?":PRINT"(S/L/D)":L1$="S":L2$="L":L3$="D":GOSUB36000:C$=Z$ 30110 PRINT"%NPOR(";C$;")=";:INPUTL1 30120 GOSUB31000 30130 IFA$="C"THEN30250 30150 IFB$="S"THEN30210 30170 P2=2.696+1.106*P1-.00311*P1^2:P3=-1.24+.824*P1+.00384*P1^2:GOTO30350 30210 P2=1.7+1.15*P1-.00309*P1^2:P3=-.61+.779*P1+.00539*P1^2:GOTO30350 30250 IFB$="S"THEN30310 30270 P2=P1+4 30280 IFP1>=12THENP3=P1-6:GOTO30350 30290 P3=.0714*P1+.0476*P1^2:GOTO30350 30310 IFP1>10THENP2=P1+4.247:GOTO30330 30320 P2=2.547+1.42*P1-.025*P1^2 30330 IFP1>27THENP3=1.244*P1-13.33:GOTO30350 30340 P3=-1.148+.3305*P1+.01713*P1^2 30350 P1=P1/100:P2=P2/100:P3=P3/100:P4=1:RETURN 31000 IFC$="L"THENP1=L1:RETURN 31050 IFB$<>"S"THEN31160 31060 IFA$<>"C"THEN31130 31080 IFC$="S"ANDL1<=10THENA1=-.025:B1=1.42:C1=2.547:GOTO31240 31090 IFC$="S"ANDL1>10THENP1=L1-4.247:GOTO31250 31100 IFC$="D"ANDL1<=27THENA1=.0173:B1=.3305:C1=-1.148:GOTO31240 31110 IFC$="D"ANDL1>27THENP1=(L1+13.33)/1.244:GOTO31250 31130 IFC$="S"THENA1=-.00309:B1=1.15:C1=1.7:GOTO31240 31140 IFC$="D"THENA1=.00539:B1=.779:C1=-.61:GOTO31240 31160 IFA$<>"C"THEN31220 31180 IFC$="S"THENP1=L1-4:GOTO31250 31190 IFC$="D"ANDL1>=12THENP1=L1+6:GOTO31250 31200 IFC$="D"ANDL1<12THENA1=.0476:B1=-.0714:C1=0:GOTO31240 31220 IFC$="S"THENA1=-.00311:B1=1.106:C1=2.696:GOTO31240 31230 IFC$="D"THENA1=.00384:B1=.824:C1=-1.24 31240 P1=(-B1+SQR(B1^2-4*A1*(C1-L1)))/(2*A1) 31250 PRINT"%NPOR(L)=";P1:RETURN 32000 IFK<>1THEN32070 32030 PRINT"use Bulk density or Porosity? (B/P)":L1$="B":L2$="P":L3$="B":GOSUB36000:D1$=Z$ 32060 IFD1$="P"THENINPUT"Matrix density, g/cc=";D2 32070 IFD1$="P"THENINPUT"Density %Porosity=";D1 32080 IFD1$="B"THENINPUT"Bulk density=";R1 32090 IFK<>1THEN32120 32100 IFK=1THENINPUT"Fluid Density (:1)=";R2$ 32110 IFK=1ANDR2$=""THENR2=1ELSER2=VAL(R2$) 32120 IFD1$="P"THENR1=D2-D1/100*(D2-R2):PRINT"Bulk Density=";R1 32130 IFD1$="B"THEND1=100*(2.71-R1)/(2.71-R2):PRINT"%DPOR(L)=";D1 32140 RETURN 33000 IFK<>1THEN33060 33010 PRINT"English or Metric? (E/M)":L1$="E":L2$="M":L3$="E":GOSUB36000:E$=Z$ 33050 IFE$="E"THENAA=1ELSEAA=3.28 33060 INPUT"Log travel time=";T1 33070 IFK<>1THEN33110 33080 IFE$="E"THENT2=189ELSET2=620 33090 PRINT"Fluid travel time (:";T2;")=";:INPUTT2$ 33100 IFT2$<>""THENT2=VAL(T2$) 33110 RETURN 34000 IFK<>1THEN34030 34010 PRINT"SHALEcorrection? (Y/N)":L1$="Y":L2$="N":L3$="Y":GOSUB36000:V$=Z$ 34030 IFV$="N"THENV=0:RETURN 34040 IFK<>1THEN34070 34050 PRINT"Use GR? (Y/N)":L1$="Y":L2$="N":L3$="Y":GOSUB36000:V1$=Z$ 34070 IFV1$="N"THENINPUT"%Vshale=";V:V=V/100:RETURN 34080 IFK<>1THEN34120 34090 INPUT"GRshale=";G1:INPUT"GRclean=";G2:INPUT"GRlog=";G3 34120 I=(G3-G2)/(G1-G2):PRINT"GRindex=";I 34130 IFK<>1THEN34160 34140 PRINT"Tertiary age? (Y/N)":L1$="Y":L2$="N":L3$="Y":GOSUB36000:V2$=Z$ 34160 IFV2$="Y"THENV=.083*2^(3.7*I-1)ELSEV=.33*2^(2*I-1) 34170 PRINT"%Vshale=";V*100:RETURN 35000 FORK1=1TON-1:J=K1:B=ABS(C(K1,K1)) 35050 FORI=K1+1TON:B1=ABS(C(I,K1)) 35070 IFB-B1>=0THEN35100 35080 B=B1:J=I 35100 NEXTI 35110 IFJ-K1=0THEN35170 35120 FORJ1=K1TON+1:T7=C(J,J1):C(J,J1)=C(K1,J1):C(K1,J1)=T7 35160 NEXTJ1 35170 FORI=K1+1TON:Q1=C(I,K1)/C(K1,K1) 35190 FORJ=K1+1TON+1:C(I,J)=C(I,J)-Q1*C(K1,J) 35210 NEXTJ:NEXTI 35230 FORI=K1+1TON:C(I,K1)=0:NEXTI 35260 NEXTK1 35270 S(N)=C(N,N+1)/C(N,N) 35280 FORN1=1TON-1:M1=0:I=N-N1 35310 FORJ=I+1TON:M1=M1+C(I,J)*S(J):NEXTJ 35340 S(I)=(C(I,N+1)-M1)/C(I,I) 35350 NEXTN1 35360 RETURN 36000 AN=ASC(INPUT$(1))AND95 36010 IFAN=ASC(L1$)THENZ$=L1$:RETURNELSEIFAN=ASC(L2$)THENZ$=L2$:RETURNELSEIFAN=ASC(L3$)THENZ$=L3$:RETURNELSE36000 37000 KEY(1)OFF:KEY(2)OFF:KEY(3)OFF:KEY(4)OFF:KEY(5)OFF:KEY(6)OFF:KEY(7)OFF:KEY(8)OFF:SCREEN0,0:RETURN 40000 PRINT"DATA ERROR":RESUMENEXT