1
0
mirror of https://github.com/retro-software/B5500-software.git synced 2026-03-02 17:44:40 +00:00
Files
Paul Kimpel 2c72f7fd1d Commit CUBE Library version 13 of February 1972.
1. Commit library tape images, directories, and extracted text files.
2. Commit additional utilities under Unisys-Emode-Tools.
2018-05-27 11:24:23 -07:00

192 lines
15 KiB
Plaintext

PROCEDURE KPICKW (T, P, PICKK, CALCPT, CALCPP, CALCPDC, K, PKT, PKP,KPWP0001
PVW, XW, PPVWT, PXWT) ; KPWP0002
KPWP0003
COMMENT THIS PROCEDURE TIES TOGETHER THE PROCEDURES KNGAA, KIDEAL,KPWP0004
KPOLY, PHIPART, AND KWATER FOR THE PURPOSE OF CALCULATING KPWP0005
K-RATIOS AND THEIR DERIVATIVES. KPWP0006
BY DONALD L. VOSS KPWP0007
PROFESSIONAL SERVICES GROUP, BURROUGHS CORPORATION KPWP0008
CARD SEQUENCE CODE STARTS WITH KPWP0001. KPWP0009
FIRST RELEASE DATE 10-15-63 KPWP0010
KPWP0011
THE INPUT PARAMETERS ARE KPWP0012
T - TEMPERATURE, F - REAL KPWP0013
P - PRESSURE, PSIA - REAL KPWP0014
PICKK - NO. OF COMPONENTS FOR EACH OPTION - INTEGER ARRAY KPWP0015
[0:7]. KPWP0016
PICKK[0] - TOTAL NO. OF COMPONENTS KPWP0017
PICKK[1] - NO. USING KNGAA KPWP0018
PICKK[2] - NO. USING KIDEAL KPWP0019
PICKK[3] - NO. USING KPOLY KPWP0020
PICKK[4] - NO. USING PHIPART KPWP0021
PICKK[5] - NO. WHOSE K VALUES ARE GIVEN IN KC12[] KPWP0022
PICKK[6] - =1 TO CALCULATE FOR WATER DISSOLVED IN A KPWP0023
HYDROCARBON PHASE. =0 IF NOT. KPWP0024
PICKK[7] - NO. USING THE INTERPOLATION METHOD. SEE KPWP0025
KC13 AND KC14. KPWP0026
CALCPT - BOOLEAN. IF TRUE, CALCULATE PKT. KPWP0027
CALCPP - BOOLEAN. IF TRUE, CALCULATE PKP. KPWP0028
CALCPDC - BOOLEAN. IF TRUE, CALCULATE THE PRESSURE KPWP0029
DEPENDENT COEFFICIENTS IN KNGAA. FOR CALCPDC = TRUE,KPWP0030
P(LAST ENTRY) MUST EQUAL P(PRESENT ENTRY). KPWP0031
KPWP0032
IN ADDITION, THE KC- VARIABLES ARE NON-LOCAL TO KPICK. KPWP0033
KC1 - N.G.A.A. COEFFICIENTS FOR KNGAA - REAL ARRAY [0: KPWP0034
PICKK[1],0:28] KPWP0035
KC2 - VAPOR PRESSURE COEFFICIENTS FOR KIDEAL - REAL KPWP0036
ARRAY[0:PICKK[2],0:3] KPWP0037
KC3 - WATER VAPOR PRESSURE COEFFICIENTS FOR KWATER - KPWP0038
REAL ARRAY [0:3] KPWP0039
KC6 - COEFFICIENTS FOR THE SOLUBILITY OF WATER IN KPWP0040
HYDROCARBONS FOR KWATER - REAL ARRAY [0:3] KPWP0041
KC4 - REFERENCE COMPONENT K COEFFICIENTS FOR KPOLY - KPWP0042
REAL ARRAY [0:5] KPWP0043
KC5 - RELATIVE VOLATILITY COEFFICIENTS FOR KPOLY - REAL KPWP0044
ARRAY [0:PICKK[3],0:3] KPWP0045
KC7 - COMPONENT V VALUES IN PHIPART - INTEGER ARRAY KPWP0046
[0:PICKK[4]] KPWP0047
KC8 - COMPONENT ALEPH VALUES IN PHIPART - REAL ARRAY KPWP0048
[0:PICKK[4],0:MAX KC7[],0:MAX KC11[,] ] KPWP0049
KC9 - COMPONENT BETA VALUES IN PHIPART - REAL ARRAY KPWP0050
[0:PICKK[4],0:MAX KC7[],0:MAX KC11[,] ] KPWP0051
KC10 - COMPONENT COEFF VALUES IN PHIPART - REAL ARRAY KPWP0052
[0:PICKK[4],0:MAX (KC11[,1]+1)......(KC11[,V]+1) ] KPWP0053
KC11 - COMPONENT P VALUES IN PHIPART - INTEGER ARRAY KPWP0054
[0:PICKK[4],0:MAX KC7[] ] KPWP0055
IN PHIPART, THE INDEPENDENT VARIABLES ARE T OR T AND P. KPWP0056
KC12 - GIVEN VALUES OF COMPONENT K RATIOS - REAL ARRAY KPWP0057
[0:PICKK[5] ] KPWP0058
KC13 - 1/T VALUES FOR INTERPOLATION METHOD - REAL KPWP0059
ARRAY [0:PICKK[7],0:MAX. M], WHERE KC13[I,0] = M AND KPWP0060
M = TOTAL NUMBER OF 1/T VALUES FOR COMPONENT I. THE KPWP0061
VALUES MUST BE STORED IN ORDER OF INCREASING T. T KPWP0062
IS DEGREES RANKINE. KPWP0063
KC14 - LN K VALUES CORRESPONDING TO KC13 - REAL ARRAY KPWP0064
[0:PICKK[7],0:MAX. M] KPWP0065
KPWP0066
THE OUTPUT PARAMETERS ARE KPWP0067
K - COMPONENT K-RATIOS (Y/X) - REAL ARRAY [0:N], KPWP0068
WHERE N IS THE TOTAL NUMBER OF COMPONENTS. KPWP0069
PKT - COMPONENT T DERIVATIVES OF K - REAL ARRAY [0:N] KPWP0070
PKP - COMPONENT P DERIVATIVES OF K - REAL ARRAY [0:N] - KPWP0071
(NOT INCLUDED FOR KPOLY AND INTERPOLATION METHOD) KPWP0072
PVW - VAPOR PRESSURE OF WATER, PSIA - REAL KPWP0073
XW - MOLE FRACTION OF WATER DISSOLVED IN HYDROCARBON KPWP0074
PHASE - REAL KPWP0075
PPVWT - T DERIVATIVE OF PVW - REAL KPWP0076
PXWT - T DERIVATIVE OF XW - REAL KPWP0077
KPWP0078
THE INPUT AND OUTPUT COMPONENT ARRAYS ARE ARRANGED KPWP0079
ACCORDING TO THE PICKK[] ORDER. KPWP0080
THE PROCEDURES KNGAA, KIDEAL, KPOLY, PHIPART, ANT1, AND KPWP0081
KWATER MUST BE DECLARED PRIOR TO KPICKW. KPWP0082
THE PROCEDURE ANT1 MUST BE DECLARED PRIOR TO KIDEAL AND KPWP0083
KWATER. ; KPWP0084
KPWP0085
VALUE T, P, CALCPT, CALCPP, CALCPDC ; KPWP0086
REAL T, P, PVW, XW, PPVWT, PXWT ; KPWP0087
BOOLEAN CALCPT, CALCPP, CALCPDC ; KPWP0088
ARRAY K[0], PKT[0], PKP[0] ; KPWP0089
INTEGER ARRAY PICKK[0] ; KPWP0090
KPWP0091
BEGIN KPWP0092
INTEGER NF1, NF2, NF3, NF4, NF5, NF6, I, E, J, M, U, KC7E, KC11E ;KPWP0093
REAL TR, T1, T2, K1, K2, SLOPE ; KPWP0094
LABEL KP1 ; KPWP0095
BOOLEAN ARRAY S[0:2] ; KPWP0096
REAL ARRAY DATA, SUM[0:2] ; KPWP0097
KPWP0098
COMMENT SET UP ITERATION LIST VARIABLES ; KPWP0099
NF1 ~ PICKK[1] + PICKK[2] ; NF2 ~ PICKK[3] + NF1 ; KPWP0100
NF3 ~ PICKK[4] + NF2 ; NF4 ~ PICKK[5] + NF3 ; KPWP0101
NF5 ~ PICKK[6] + NF4 ; NF6 ~ PICKK[7] + NF5 ; KPWP0102
KPWP0103
COMMENT LINEAR INTERPOLATION OF LN K VERSUS 1/T VALUES ; KPWP0104
IF PICKK[7] > 0 THEN KPWP0105
BEGIN KPWP0106
TR ~ 1/(T + 459.6) ; KPWP0107
FOR I ~ NF5 + 1 STEP 1 UNTIL NF6 DO KPWP0108
BEGIN KPWP0109
E ~ I - NF5 ; KPWP0110
M ~ KC13[E,0] ; KPWP0111
FOR J ~ 2 STEP 1 UNTIL M DO KPWP0112
IF TR > KC13[E,J] THEN GO TO KP1 ; KPWP0113
J ~ M ; KPWP0114
KP1: K1 ~ KC14[E,J-1] ; K2 ~ KC14[E,J] ; KPWP0115
T1 ~ KC13[E,J-1] ; T2 ~ KC13[E,J] ; KPWP0116
SLOPE ~ (K2 - K1)/(T2 - T1) ; KPWP0117
K[I] ~ EXP (K1 + SLOPE | (TR - T1)) ; KPWP0118
IF CALCPT THEN KPWP0119
PKT[I] ~ - K[I] | SLOPE | TR*2 KPWP0120
END KPWP0121
END ; KPWP0122
KPWP0123
COMMENT KWATER VALUES ; KPWP0124
IF PICKK[6] = 1 THEN KPWP0125
KWATER (T, P, CALCPT, CALCPP, K[NF5], PVW, XW, PKT[NF5], KPWP0126
PKP[NF5], PPVWT, PXWT) ; KPWP0127
KPWP0128
COMMENT K-RATIOS GIVEN IN KC12[] ; KPWP0129
IF PICKK[5] > 0 THEN KPWP0130
FOR I ~ NF3+1 STEP 1 UNTIL NF4 DO KPWP0131
BEGIN KPWP0132
E ~ I - NF3 ; K[I] ~ KC12[E] KPWP0133
END ; KPWP0134
KPWP0135
COMMENT PHIPART VALUES ; KPWP0136
IF PICKK[4] > 0 THEN KPWP0137
BEGIN KPWP0138
DATA[1] ~ T ; DATA[2] ~ P ; KPWP0139
S[1] ~ S[2] ~ FALSE ; KPWP0140
IF CALCPT THEN S[1] ~ TRUE ; KPWP0141
IF CALCPP THEN S[2] ~ TRUE ; KPWP0142
FOR I ~ NF2 + 1 STEP 1 UNTIL NF3 DO KPWP0143
BEGIN KPWP0144
E ~ I - NF2 ; KC7E ~ KC7[E] ; KPWP0145
IF KC11[E,1] > KC11[E,2] THEN KC11E ~ KC11[E,1] KPWP0146
ELSE KC11E ~ KC11[E,2] ; KPWP0147
BEGIN KPWP0148
REAL ARRAY ALEPH, BETA[0:2,0:KC11E] ; KPWP0149
FOR J ~ 1 STEP 1 UNTIL KC7E DO KPWP0150
FOR U ~ 1 STEP 1 UNTIL KC11E DO KPWP0151
BEGIN KPWP0152
ALEPH[J,U] ~ KC8[E,J,U] ; BETA[J,U] ~ KC9[E,J,U] KPWP0153
END ; KPWP0154
PHIPART (KC7[E], DATA, ALEPH, BETA, KC10[E,*], KC11[E,*], KPWP0155
S, K[I], SUM) ; KPWP0156
IF CALCPT THEN PKT[I] ~ SUM[1] ; KPWP0157
IF CALCPP THEN PKP[I] ~ SUM[2] KPWP0158
END KPWP0159
END KPWP0160
END ; KPWP0161
KPWP0162
COMMENT KPOLY VALUES ; KPWP0163
IF PICKK[3] > 0 THEN KPWP0164
BEGIN KPWP0165
KPOLY (T, PICKK[3], CALCPT, K, PKT) ; KPWP0166
FOR I ~ NF1+1 STEP 1 UNTIL NF2 DO KPWP0167
BEGIN KPWP0168
E ~ I - NF1 ; K[I] ~ K[E] ; KPWP0169
IF CALCPT THEN PKT[I] ~ PKT[E] KPWP0170
END KPWP0171
END ; KPWP0172
KPWP0173
COMMENT KIDEAL VALUES ; KPWP0174
IF PICKK[2] > 0 THEN KPWP0175
BEGIN KPWP0176
KIDEAL (T, P, PICKK[2], CALCPT, CALCPP, K, PKT, PKP) ; KPWP0177
FOR I ~ PICKK[1]+1 STEP 1 UNTIL NF1 DO KPWP0178
BEGIN KPWP0179
E ~ I - PICKK[1] ; K[I] ~ K[E] ; KPWP0180
IF CALCPT THEN PKT[I] ~ PKT[E] ; KPWP0181
IF CALCPP THEN PKP[I] ~ PKP[E] KPWP0182
END KPWP0183
END ; KPWP0184
KPWP0185
COMMENT KNGAA VALUES ; KPWP0186
IF PICKK[1] > 0 THEN KPWP0187
KNGAA (T, P, PICKK[1], CALCPDC, CALCPT, CALCPP, K, PKT, KPWP0188
PKP) KPWP0189
KPWP0190
END KPICKW ; KPWP0191