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

154 lines
11 KiB
Plaintext

PROCEDURE KNGAA (T, P, N, CALCPDC, CALCPT, CALCPP, K, PKT, PKP) ; KNGP0001
COMMENT N.G.A.A. K-RATIO PROCEDURE. KNGP0002
BY A. PAUL OLESON AND DONALD L. VOSS KNGP0003
PROFESSIONAL SERVICES GROUP, BURROUGHS CORPORATION KNGP0004
FIRST RELEASE DATE: 5-5-63 KNGP0005
THIS PROCEDURE CALCULATES VAPOR-LIQUID EQUILIBRIUM RATIOS KNGP0006
(Y/X) FOR LIGHT HYDROCARBONS BY MEANS OF THE N.G.A.A. KNGP0007
CORRELATION. ALSO CALCULATED, BY OPTION, ARE THE KNGP0008
TEMPERATURE AND PRESSURE DERIVATIVES OF THE K-RATIOS. KNGP0009
COMPONENTS MAY BE REFERENCED TO ANY COMPONENT IN THE KNGP0010
SYSTEM BY K = K[R](A + B | T + C | T*2), WHERE KNGP0011
A = KC1[I,2] | P + KC1[I,3], KNGP0012
B = KC1[I,4] | P + KC1[I,5], KNGP0013
C = KC1[I,6] | P + KC1[I,7], KNGP0014
AND T IS DEGREES RANKINE/1000. KNGP0015
THE INPUT PARAMETERS ARE KNGP0016
T - TEMPERATURE, F - REAL KNGP0017
P - PRESSURE, PSIA - REAL KNGP0018
N - NUMBER OF COMPONENTS - INTEGER KNGP0019
CALCPDC - BOOLEAN. IF TRUE, CALCULATE P DEPENDENT KNGP0020
COEFFICIENTS. FOR CALCPDC = FALSE, P OF THE LAST KNGP0021
ENTRY MUST EQUAL P OF THE PRESENT ENTRY. KNGP0022
CALCPT - BOOLEAN. IF TRUE, CALCULATE THE T DERIVATIVE KNGP0023
OF K. KNGP0024
CALCPP - BOOLEAN. IF TRUE, CALCULATE THE P DERIVATIVE KNGP0025
OF K. KNGP0026
ALSO, THE VARIABLE KC1 IS NON-LOCAL. KNGP0027
KC1 - N.G.A.A. COEFFICIENTS - REAL ARRAY [0:N,0:28], KNGP0028
WHERE THE 28 COEFFICIENTS ARE ALTERNATELY 4 SETS KNGP0029
OF 7 P COEFFICIENTS. IF KC1[I,1] = 0, COMPONENT KNGP0030
I IS REFERENCED TO COMPONENT R AND KC1[I,8] = R. KNGP0031
R IS REAL AND MUST BE GREATER THAN I. KNGP0032
THE OUTPUT PARAMETERS ARE KNGP0033
K - COMPONENT VAPOR-LIQUID EQUILIBRIUM RATIOS (Y/X) - KNGP0034
REAL ARRAY [0:N] KNGP0035
PKT - COMPONENT T DERIVATIVES OF K - REAL ARRAY [0:N] KNGP0036
PKP - COMPONENT P DERIVATIVES OF K - REAL ARRAY [0:N] ; KNGP0037
VALUE T, P, N, CALCPDC, CALCPT, CALCPP ; KNGP0038
INTEGER N ; KNGP0039
BOOLEAN CALCPDC, CALCPT, CALCPP ; KNGP0040
REAL T, P ; KNGP0041
ARRAY K[0], PKT[0], PKP[0] ; KNGP0042
BEGIN KNGP0043
LABEL KNG1, KNG2, KNG3, KNG4, KNG5, KNG6, KNG7, KNG8, KNG9 ; KNGP0044
INTEGER I, J, U, E, G, TIS1, Q ; KNGP0045
REAL TRS1, TR1, TR12 ; KNGP0046
OWN REAL LOGP ; KNGP0047
ARRAY TR1S1[0:4] ; KNGP0048
OWN ARRAY PDC[0:N,0:4], LOGP1[0:7] ; KNGP0049
COMMENT CALCULATE PRESSURE DEPENDENT COEFFICIENTS IF CALCPDC = 1 ;KNGP0050
IF CALCPDC THEN KNGP0051
BEGIN KNGP0052
LOGP ~ LN(P) | 0.1 ; LOGP1[1] ~ 1.0 ; KNGP0053
FOR U ~ 2 STEP 1 UNTIL 7 DO KNGP0054
LOGP1[U] ~ LOGP1[U-1] | LOGP ; KNGP0055
LOGP ~ 10.0 | LOGP ; KNGP0056
FOR I ~ 1 STEP 1 UNTIL N DO KNGP0057
BEGIN KNGP0058
IF KC1[I,1] = 0 THEN GO TO KNG1 ; KNGP0059
FOR J ~ 1, 8, 15, 22 DO KNGP0060
BEGIN KNGP0061
Q ~ J + 6 ; KNGP0062
E ~ Q DIV 7 ; KNGP0063
PDC[I,E] ~ 0 ; KNGP0064
TIS1 ~ 1 - J ; KNGP0065
FOR U ~ J STEP 1 UNTIL Q DO KNGP0066
BEGIN KNGP0067
G ~ U + TIS1 ; KNGP0068
PDC[I,E] ~ KC1[I,U] | LOGP1[G] + PDC[I,E] KNGP0069
END KNGP0070
END ; KNGP0071
GO TO KNG2 ; KNGP0072
COMMENT CALCULATE PRESSURE DEPENDENT COEFFICIENTS OF REFERENCED KNGP0073
COMPONENTS ; KNGP0074
KNG1: PDC[I,1] ~ 0 ; KNGP0075
PDC[I,2] ~ KC1[I,2] | P + KC1[I,3] ; KNGP0076
PDC[I,3] ~ KC1[I,4] | P + KC1[I,5] ; KNGP0077
PDC[I,4] ~ KC1[I,6] | P + KC1[I,7] ; KNGP0078
KNG2: END KNGP0079
END ; KNGP0080
COMMENT CALCULATE K-RATIOS ; KNGP0081
KNG3: TR1 ~ (T + 459.7) | 0.001 ; TR12 ~ TR1*2 ; KNGP0082
FOR I ~ N STEP -1 UNTIL 1 DO KNGP0083
BEGIN KNGP0084
IF PDC[I,1] = 0 THEN GO TO KNG4 ; KNGP0085
K[I] ~ EXP (PDC[I,4] | TR12 + PDC[I,3] | TR1 + KNGP0086
PDC[I,1]/TR1 + PDC[I,2] - LOGP) ; KNGP0087
GO TO KNG5 ; KNGP0088
COMMENT CALCULATE K-RATIOS OF REFERENCED COMPONENTS ; KNGP0089
KNG4: K[I] ~ K[KC1[I,8]] | (PDC[I,3] | TR1 + PDC[I,2] + KNGP0090
PDC[I,4] | TR12) ; KNGP0091
KNG5: END ; KNGP0092
COMMENT CALCULATE TEMPERATURE DERIVATIVES OF K-RATIOS, IF CALCPT KNGP0093
IS TRUE ; KNGP0094
IF CALCPT THEN KNGP0095
FOR I ~ N STEP -1 UNTIL 1 DO KNGP0096
BEGIN KNGP0097
IF PDC[I,1] = 0 THEN GO TO KNG6 ; KNGP0098
PKT[I] ~ (-PDC[I,1]/TR12 + 2.0 | PDC[I,4] | TR1 + KNGP0099
PDC[I,3] ) | 0.001 | K[I] ; KNGP0100
GO TO KNG7 ; KNGP0101
COMMENT CALCULATE TEMPERATURE DERIVATIVES OF K-RATIOS FOR KNGP0102
REFERENCED COMPONENTS ; KNGP0103
KNG6: E ~ KC1[I,8] ; KNGP0104
PKT[I] ~ K[I]/K[E] | PKT[E] + (PDC[I,4] | 2.0 | TR1 + KNGP0105
PDC[I,3] ) | K[E] | 0.001 ; KNGP0106
KNG7: END ; KNGP0107
COMMENT CALCULATE PRESSURE DERIVATIVES OF K-RATIOS, IF CALCPP IS KNGP0108
TRUE ; KNGP0109
IF CALCPP THEN KNGP0110
FOR I ~ N STEP -1 UNTIL 1 DO KNGP0111
BEGIN KNGP0112
IF PDC[I,1] = 0 THEN GO TO KNG8 ; KNGP0113
FOR J ~ 1, 8, 15, 22 DO KNGP0114
BEGIN KNGP0115
Q ~ J + 5 ; KNGP0116
E ~ (J + 6) DIV 7 ; KNGP0117
TR1S1[E] ~ 0 ; TRS1 ~ 1.0 ; KNGP0118
TIS1 ~ 1 - J ; KNGP0119
FOR U ~ J STEP 1 UNTIL Q DO KNGP0120
BEGIN KNGP0121
G ~ U + TIS1 ; KNGP0122
TR1S1[E] ~ KC1[I,U+1] | LOGP1[G] | TRS1 + TR1S1[E] ; KNGP0123
TRS1 ~ TRS1 + 1.0 KNGP0124
END KNGP0125
END ; KNGP0126
PKP[I] ~ (TR1S1[4] | TR12 + TR1S1[3] | TR1 + TR1S1[1]/TR1 KNGP0127
+ TR1S1[2] - 10.0) | 0.1 | K[I]/P ; KNGP0128
GO TO KNG9 ; KNGP0129
COMMENT CALCULATE PRESSURE DERIVATIVES OF K-RATIOS FOR REFERENCED KNGP0130
COMPONENTS ; KNGP0131
KNG8: E ~ KC1[I,8] ; KNGP0132
PKP[I] ~ (KC1[I,6] | TR12 + KC1[I,4] | TR1 + KC1[I,2] ) | KNGP0133
K[E] + (PDC[I,4] | TR12 + PDC[I,3] | TR1 + PDC[I,2] ) | KNGP0134
PKP[E] ; KNGP0135
KNG9: END KNGP0136
END KNGAA ; KNGP0137