mirror of
https://github.com/retro-software/B5500-software.git
synced 2026-03-02 17:44:40 +00:00
1. Commit library tape images, directories, and extracted text files. 2. Commit additional utilities under Unisys-Emode-Tools.
192 lines
15 KiB
Plaintext
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
|