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

1038 lines
75 KiB
Plaintext

LABEL 0000000000XXXXXX0010000001
$ CARD LIST
BEGIN TEST 1
TEST 2
COMMENT TEST PROGRAM FOR FLASHW PROCEDURE. TEST 3
BY A. PAUL OLESON TEST 4
PROFESSIONAL SERVICES GROUP, BURROUGHS CORP. TEST 5
CARD SEQUENCE STARTS WITH TEST0001. TEST 6
DATE OF FIRST ISSUE 12-1-63 ; TEST 7
FILE IN FLIN (1,10) ; TEST 8
FILE OUT FIL1 (1,15) ; TEST 9
BOOLEAN CALCPDC ; TEST 10
BOOLEAN ARRAY B[0:10] ; TEST 11
INTEGER I, J, N ; TEST 12
INTEGER ARRAY PICKK[0:8], KC7[0:20], KC11[0:20,0:2] ; TEST 13
REAL T, P, VDF, S ; TEST 14
REAL ARRAY KC1[0:20,0:28], KC2[0:20,0:3], KC3[0:3], KC4[0:5], TEST 15
KC5[0:2,0:3], KC6[0:3],KC8[0:20,0:2,0:2], TEST 16
KC9[0:20,0:2,0:2], KC10[0:20,0:5], KC12[0:20], K[0:20], TEST 17
PK[0:20], Z[0:20], X[0:20], Y[0:20], LIMITFW[0:4] ; TEST 18
TEST 19
LABEL ENDPROB, ERRORFW ; TEST 20
FORMAT IN F2 (E17.8,3E16.8) , TEST 21
F3 (X4,2F6.1,F4.1,3F6.3,4I2) ; TEST 22
TEST 23
FORMAT OUT FO1 (2F9.5,2E16.8) , TEST 24
FO2 (3E16.8) ; TEST 25
TEST 26
LIST LI1(FOR I ~ 1,2 DO FOR J ~ 1 STEP 1 UNTIL 28 DO TEST 27
KC1[I,J]), TEST 28
LI2(T, P, VDF, Z[1], Z[2], Z[3], B[1], B[2], B[3], B[4]), TEST 29
LI3(T, P, VDF, S) , TEST 30
L4 (FOR I ~ 1,2,3 DO [Z[I], X[I], Y[I]]) ; TEST 31
REAL LOGP ; TEST 32
COMMENT GLOBAL ARRAYS FOR KNGAA PROCEDURE ; TEST 33
ARRAY TR1S1[0:4], PDC[0:8,0:4], LOGP1[0:7] ; TEST 34
COMMENT GLOBAL ARRAYS FOR PHIPART PROCEDURE ; TEST 35
INTEGER ARRAY TADD, ADD[0:5], DEGREE[0:4] ; TEST 36
ARRAY POLY[0:25], TT[0:4] ; TEST 37
TEST 38
PROCEDURE KNGAA (T, P, N, CALCPDC, CALCPT, CALCPP, K, PKT, PKP) ; KNGP001
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
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
PROCEDURE PHIPART (V, DATA, ALEPH, BETA, COEFF, P, S, PHI, SUM) ; SFSB 1
COMMENT THIS PROCEDURE COMPUTES POINTS ON AN N-DIMENSIONAL SURFACESFSB 2
AND, BY OPTION, THE PARTIAL DERIVATIVES OF ANY OF THE SFSB 3
VARIABLES AT THE POINTS IN QUESTION ; SFSB 4
VALUE V ; SFSB 5
INTEGER V ; SFSB 6
INTEGER ARRAY P[0] ; SFSB 7
BOOLEAN ARRAY S[0] ; SFSB 8
REAL ARRAY DATA[0], ALEPH[0,0], BETA[0,0], COEFF[0], SUM[0] ; SFSB 9
REAL PHI ; SFSB 10
BEGIN SFSB 11
INTEGER KV, M, T, I, D, PV ; SFSB 12
BOOLEAN B ; SFSB 14
REAL DATUM ; SFSB 15
COMMENT THE SIZE OF POLY IS SUM(P[I]+1), I ~ 1 STEP 1 UNTIL V. IT SFSB 17
HAS BEEN SET TO A VALUE SO AS NOT TO REQUIRE CALCULATION SFSB 18
WITH EACH PASS THROUGH PHIPART, BUT IT MAY BE ALTERED. ; SFSB 19
LABEL POLYCOMPUTE, PARTCOMPUTE, D2, BACK, HERE, FINI, DEPENDENT;SFSB 20
TADD[1] ~ ADD[1] ~ T ~ 1 ; SFSB 21
FOR M ~ 1 STEP 1 UNTIL V DO SFSB 22
BEGIN SFSB 23
DATUM ~ DATA[M] ; SUM[M] ~ 0 ; SFSB 24
COMMENT EVALUATE THE POLYNOMIALS ; SFSB 25
POLYCOMPUTE : SFSB 26
BEGIN SFSB 27
POLY[T] ~ 1.0 ; SFSB 28
POLY[T+1] ~ DATUM + ALEPH[M,1] ; T ~ T + 2 ; SFSB 29
FOR I ~ 2 STEP 1 UNTIL P[M] DO SFSB 30
BEGIN SFSB 31
POLY[T] ~ (ALEPH[M,I] + DATUM) | POLY[T-1] + SFSB 32
BETA[M,I] | POLY[T-2] ; SFSB 33
T ~ T + 1 SFSB 34
END SFSB 35
END POLYCOMPUTE ; SFSB 36
TADD[M+1] ~ ADD[M+1] ~ T SFSB 37
END ; SFSB 38
B ~ FALSE ; SFSB 39
COMMENT COMPUTE THE DEPENDENT VARIABLE OR THE PARTIAL ; SFSB 40
DEPENDENT : SFSB 41
BEGIN SFSB 42
D ~ 1 ; SFSB 43
FOR M ~ 1 STEP 1 UNTIL V DO SFSB 44
BEGIN SFSB 45
DEGREE[M] ~ TADD[M] ; TT[M] ~ 0 SFSB 46
END ; SFSB 47
PV ~ TADD[V] + P[V] ; SFSB 48
BACK : FOR I ~ TADD[V] STEP 1 UNTIL PV DO SFSB 49
BEGIN SFSB 50
TT[V] ~ COEFF[D] | POLY[I] + TT[V] ; SFSB 51
D ~ D + 1 SFSB 52
END ; SFSB 53
IF V = 1 THEN GO TO FINI ; SFSB 54
M ~ V - 1 ; SFSB 55
HERE : TT[M] ~ POLY[DEGREE[M]] | TT[M+1] + TT[M] ; SFSB 56
TT[M+1] ~ 0 ; SFSB 57
DEGREE[M] ~ DEGREE[M] + 1 ; SFSB 58
IF DEGREE[M] { TADD[M] + P[M] THEN GO TO BACK ; SFSB 60
IF M = 1 THEN GO TO FINI ; SFSB 61
DEGREE[M] ~ TADD[M] ; M ~ M - 1 ; SFSB 62
GO TO HERE ; SFSB 63
FINI : IF B THEN SFSB 64
BEGIN SFSB 65
SUM[KV] ~ TT[1] ; GO TO D2 SFSB 66
END ; SFSB 67
PHI ~ TT[1] SFSB 68
END DEPENDENT ; SFSB 69
FOR KV ~ 1 STEP 1 UNTIL V DO SFSB 70
BEGIN SFSB 71
M ~ KV ; SFSB 72
IF S[M] THEN SFSB 73
BEGIN SFSB 74
DATUM ~ DATA[M] ; SFSB 75
COMMENT EVALUATE THE PARTIAL POLYNOMIALS ; SFSB 76
PARTCOMPUTE : SFSB 77
BEGIN SFSB 78
POLY[T] ~ 0 ; POLY[T+1] ~ 1.0 ; SFSB 79
T ~ T + 2 ; SFSB 80
FOR I ~ 2 STEP 1 UNTIL P[M] DO SFSB 81
BEGIN SFSB 82
POLY[T] ~ (ALEPH[M,I] + DATUM) | POLY[T-1] + SFSB 83
POLY[ADD[M]+I-1] + BETA[M,I] | POLY[T-2] ; SFSB 84
T ~ T + 1 SFSB 85
END SFSB 86
END PARTCOMPUTE ; SFSB 87
T ~ TADD[M] ~ ADD[V+1] ; B ~ TRUE ; SFSB 88
GO TO DEPENDENT ; SFSB 89
D2 : TADD[KV] ~ ADD[KV] SFSB 90
END SFSB 91
END SFSB 92
END PHIPART ; SFSB 93
PROCEDURE ANT1 (X, CALCPX, ANTC, ANT, PANTX) ; ANTP 1
COMMENT ANTOINE EQUATION PROCEDURE. ANTP 2
BY DONALD L. VOSS ANTP 3
PROFESSIONAL SERVICES GROUP, BURROUGHS CORPORATION ANTP 4
FIRST RELEASE DATE: 11-1-62 ANTP 5
THIS PROCEDURE EVALUATES THE 3-CONSTANT ANTOINE EQUATION. ANTP 6
THE INPUT PARAMETERS ARE ANTP 7
X - INDEPENDENT VARIABLE - REAL ANTP 8
CALCPX - BOOLEAN. IF TRUE, CALCULATE PANTX. ANTP 9
ANTC - ANTOINE EQUATION COEFFICIENTS - REAL ARRAY [0:3] ANTP 10
THE OUTPUT PARAMETERS ARE ANTP 11
ANT - VALUE OF THE ANTOINE EQUATION AT X - REAL ANTP 12
PANTX - X DERIVATIVE OF ANT - REAL ; ANTP 13
VALUE X, CALCPX ; ANTP 14
BOOLEAN CALCPX ; ANTP 15
REAL X, ANT, PANTX ; ANTP 16
ARRAY ANTC[0] ; ANTP 17
BEGIN ANTP 18
REAL TRS1 ; ANTP 19
COMMENT EVALUATE THE ANTOINE EQUATION ; ANTP 20
TRS1 ~ ANTC[3] + X ; ANTP 21
ANT ~ EXP (-ANTC[2]/TRS1 + ANTC[1] ) ; ANTP 22
COMMENT IF CALCPX IS TRUE, CALCULATE THE DERIVATIVE OF THE ANTP 23
ANTOINE EQUATION WITH RESPECT TO X. ; ANTP 24
IF CALCPX THEN ANTP 25
PANTX ~ ANTC[2]/TRS1*2 | ANT ANTP 26
END ANT1 ; ANTP 27
PROCEDURE KIDEAL (T, P, N, CALCPT, CALCPP, K, PKT, PKP) ; KIDP0001
COMMENT IDEAL K-RATIO PROCEDURE. KIDP0002
BY DONALD L. VOSS KIDP0003
PROFESSIONAL SERVICES GROUP, BURROUGHS CORPORATION KIDP0004
FIRST RELEASE DATE: 5-5-63 KIDP0005
THIS PROCEDURE CALCULATES VAPOR-LIQUID EQUILIBRIUM RATIOS KIDP0006
(Y/X), AND THEIR DERIVATIVES WITH RESPECT TO TEMPERATURE KIDP0007
AND PRESSURE. IDEAL LIQUID AND VAPOR BEHAVIOR IS ASSUMED.KIDP0008
THE INPUT PARAMETERS ARE KIDP0009
T - TEMPERATURE, F - REAL KIDP0010
P - PRESSURE, PSIA - REAL KIDP0011
N - NUMBER OF COMPONENTS - INTEGER KIDP0012
CALCPT - BOOLEAN. IF TRUE, CALCULATE PKT. KIDP0013
CALCPP - BOOLEAN. IF TRUE, CALCULATE PKP. KIDP0014
ALSO, THE VARIABLE KC2 IS NON-LOCAL. KIDP0015
KC2 - COMPONENT VAPOR PRESSURE COEFFICIENTS - REAL ARRAY KIDP0016
[0:N,0:3]. KC2 IS USED AS ANTC IN THE ANT1 KIDP0017
PROCEDURE. KIDP0018
THE OUTPUT PARAMETERS ARE KIDP0019
K - COMPONENT VAPOR-LIQUID EQUILIBRIUM RATIOS (Y/X) - KIDP0020
REAL ARRAY [0:N] KIDP0021
PKT - COMPONENT T DERIVATIVES OF K - REAL ARRAY [0:N] KIDP0022
PKP - COMPONENT P DERIVATIVES OF K - REAL ARRAY [0:N] KIDP0023
THE PROCEDURE ANT1 MUST BE DECLARED PRIOR TO KIDEAL. ; KIDP0024
VALUE T, P, N, CALCPT, CALCPP ; KIDP0025
INTEGER N ; KIDP0026
BOOLEAN CALCPT, CALCPP ; KIDP0027
REAL T, P ; KIDP0028
ARRAY K[0], PKT[0], PKP[0] ; KIDP0029
BEGIN KIDP0030
INTEGER I ; KIDP0031
REAL TRS1 ; KIDP0032
TRS1 ~ 1.0/P ; KIDP0033
FOR I ~ 1 STEP 1 UNTIL N DO KIDP0034
BEGIN KIDP0035
COMMENT ENTER THE ANT1 PROCEDURE TO CALCULATE THE VAPOR PRESSURE KIDP0036
AND ITS TEMPERATURE DERIVATIVE FOR EACH COMPONENT. ; KIDP0037
ANT1 (T, CALCPT, KC2[I,*], K[I], PKT[I] ) ; KIDP0038
COMMENT CALCULATE THE COMPONENT K-RATIOS. ; KIDP0039
K[I] ~ K[I] | TRS1 ; KIDP0040
COMMENT IF CALCPT IS TRUE, CALCULATE THE COMPONENT T DERIVATIVES KIDP0041
OF THE K-RATIOS. ; KIDP0042
IF CALCPT THEN KIDP0043
PKT[I] ~ PKT[I] | TRS1 ; KIDP0044
COMMENT IF CALCPP IS TRUE, CALCULATE THE COMPONENT P DERIVATIVES KIDP0045
OF THE K-RATIOS. ; KIDP0046
IF CALCPP THEN KIDP0047
PKP[I] ~ -K[I] | TRS1 KIDP0048
END KIDP0049
END KIDEAL ; KIDP0050
PROCEDURE KPOLY (T, N, CALCPT, K, PKT) ; KPYP0001
COMMENT RELATIVE VOLATILITY K-RATIO PROCEDURE. KPYP0002
BY DONALD L. VOSS KPYP0003
PROFESSIONAL SERVICES GROUP, BURROUGHS CORPORATION KPYP0004
CARD SEQUENCE CODE STARTS WITH KPYP0001 KPYP0005
FIRST RELEASE DATE: 5-5-63 KPYP0006
THIS PROCEDURE CALCULATES VAPOR-LIQUID EQUILIBRIUM KPYP0007
K-RATIOS (Y/X) AND THEIR DERIVATIVES WITH RESPECT TO KPYP0008
TEMPERATURE BY MEANS OF A RELATIVE VOLATILITY EQUATION. KPYP0009
THE REFERENCE COMPONENT K-RATIO IS CALCULATED BY MEANS KPYP0010
OF A FOURTH DEGREE POLYNOMIAL IN TEMPERATURE. A SECOND KPYP0011
DEGREE POLYNOMIAL IS USED FOR THE RELATIVE VOLATILITIES KPYP0012
OF THE OTHER COMPONENTS. KPYP0013
THE INPUT PARAMETERS ARE KPYP0014
T - TEMPERATURE, F. - REAL KPYP0015
N - NUMBER OF COMPONENTS - INTEGER KPYP0016
CALCPT - BOOLEAN. IF TRUE, CALCULATE PKT. KPYP0017
IN ADDITION, THE VARIABLES KC4 AND KC5 ARE NON-LOCAL TO KPYP0018
KPOLY. KPYP0019
KC4 - REFERENCE COMPONENT K-RATIO COEFFICIENTS - REAL KPYP0020
ARRAY [0:5] KPYP0021
KC5 - RELATIVE VOLATILITY COEFFICIENTS OF COMPONENTS - KPYP0022
REAL ARRAY [0:N,0:3] KPYP0023
THE OUTPUT PARAMETERS ARE KPYP0024
K - COMPONENT K-RATIO - REAL ARRAY [0:N] KPYP0025
PKT - T DERIVATIVE OF K - REAL ARRAY [0:N] ; KPYP0026
VALUE T, N, CALCPT ; KPYP0027
INTEGER N ; KPYP0028
BOOLEAN CALCPT ; KPYP0029
REAL T ; KPYP0030
ARRAY K[0], PKT[0] ; KPYP0031
BEGIN KPYP0032
INTEGER I ; KPYP0033
REAL TRS1, KR, PKRT1, RV ; KPYP0034
COMMENT CALCULATE THE K-RATIO OF THE REFERENCE COMPONENT, KR. ; KPYP0035
TRS1 ~ 0.01 | T ; KPYP0036
KR ~ (((KC4[5] | TRS1 + KC4[4]) | TRS1 + KC4[3]) | TRS1 + KPYP0037
KC4[2]) | TRS1 + KC4[1] ; KPYP0038
COMMENT CALCULATE THE TEMPERATURE DERIVATIVE OF KR, MULTIPLIED BY KPYP0039
100.0, IF CALCPT IS TRUE. ; KPYP0040
IF CALCPT THEN KPYP0041
PKRT1 ~ ((KC4[5] | TRS1 | 4.0 + KC4[4] | 3.0) | TRS1 + KPYP0042
KC4[3] | 2.0) | TRS1 + KC4[2] ; KPYP0043
COMMENT CALCULATE THE COMPONENT K-RATIOS AND, IF CALCPT IS TRUE, KPYP0044
THEIR TEMPERATURE DERIVATIVES. ; KPYP0045
FOR I ~ 1 STEP 1 UNTIL N DO KPYP0046
BEGIN KPYP0047
RV ~ (KC5[I,3] | TRS1 + KC5[I,2]) | TRS1 + KC5[I,1] ; KPYP0048
K[I] ~ KR | RV ; KPYP0049
IF CALCPT THEN KPYP0050
PKT[I] ~ ((KC5[I,3] | TRS1 | 2.0 + KC5[I,2]) | KR + KPYP0051
RV | PKRT1) | 0.01 KPYP0052
END KPYP0053
END KPOLY ; KPYP0054
PROCEDURE KWATER (T, P, CALCPT, CALCPP, KW, PVW, XW, PKWT, PKWP, KWRP0001
PPVWT, PXWT) ; KWRP0002
COMMENT PROCEDURE FOR K-RATIO OF WATER DISSOLVED IN HYDROCARBONS. KWRP0003
BY A. PAUL OLESON AND DONALD L. VOSS KWRP0004
PROFESSIONAL SERVICES GROUP, BURROUGHS CORPORATION KWRP0005
FIRST RELEASE DATE: 5-5-63 KWRP0006
THIS PROCEDURE CALCULATES THE FOLLOWING QUANTITIES FOR KWRP0007
WATER: VAPOR-LIQUID EQUILIBRIUM RATIO (KW OR Y/X), VAPOR KWRP0008
PRESSURE, MOLE FRACTION OF WATER DISSOLVED IN THE HYDRO- KWRP0009
CARBON PHASE, THE DERIVATIVES OF THESE QUANTITIES WITH KWRP0010
RESPECT TO TEMPERATURE, AND THE DERIVATIVE OF KW WITH KWRP0011
RESPECT TO PRESSURE. THE K-RATIO OF WATER IS CALCULATED KWRP0012
BY ASSUMING IDEAL VAPOR BEHAVIOR AND USING AN EMPIRICAL KWRP0013
CORRELATION FOR THE WATER SOLUBILITY. KWRP0014
THE INPUT PARAMETERS ARE KWRP0015
T - TEMPERATURE, F. - REAL KWRP0016
P - PRESSURE, PSIA - REAL KWRP0017
CALCPT - BOOLEAN. IF TRUE, CALCULATE PKWT, PPVWT, AND KWRP0018
PXWT. KWRP0019
CALCPP - BOOLEAN. IF TRUE, CALCULATE PKWP. KWRP0020
ALSO, THE VARIABLES KC3 AND KC6 ARE NON-LOCAL. KWRP0021
KC3 - WATER VAPOR PRESSURE COEFFIENTS - REAL ARRAY [0:3].KWRP0022
KC3 IS USED AS ANTC IN THE ANT1 PROCEDURE. KWRP0023
KC6 - COEFFICIENTS FOR THE SOLUBILITY OF WATER IN HYDRO- KWRP0024
CARBONS - REAL ARRAY [0:3]. KC6 IS USED AS ANTC KWRP0025
IN THE ANT1 PROCEDURE. KWRP0026
THE OUTPUT PARAMETERS ARE KWRP0027
KW - VAPOR-LIQUID EQUILIBRIUM RATIO (Y/X) OF WATER - KWRP0028
REAL KWRP0029
PVW - VAPOR PRESSURE OF WATER, PSIA KWRP0030
XW - MOLE FRACTION OF WATER DISSOLVED IN HYDROCARBON KWRP0031
PHASE - REAL KWRP0032
PKWT - T DERIVATIVE OF KW - REAL KWRP0033
PKWP - P DERIVATIVE OF KW - REAL KWRP0034
PPVWT - T DERIVATIVE OF PVW - REAL KWRP0035
PXWT - T DERIVATIVE OF XW - REAL KWRP0036
THE ANT1 PROCEDURE MUST BE DECLARED PRIOR TO KWATER ; KWRP0037
VALUE T, P, CALCPT, CALCPP ; KWRP0038
BOOLEAN CALCPT, CALCPP ; KWRP0039
REAL T, P, KW, PVW, XW, PKWT, PKWP, PPVWT, PXWT ; KWRP0040
BEGIN KWRP0041
COMMENT ENTER THE ANT1 PROCEDURE TO CALCULATE THE VAPOR PRESSURE KWRP0042
OF WATER, AND ITS TEMPERATURE DERIVATIVE. ; KWRP0043
ANT1 (T, CALCPT, KC3, PVW, PPVWT) ; KWRP0044
COMMENT ENTER THE ANT1 PROCEDURE TO CALCULATE THE SOLUBILITY OF KWRP0045
WATER IN HYDROCARBONS, AND ITS TEMPERATURE DERIVATIVE. ; KWRP0046
ANT1 (T, CALCPT, KC6, XW, PXWT) ; KWRP0047
COMMENT CALCULATE THE K-RATIO OF WATER. ; KWRP0048
KW ~ PVW/(P | XW) ; KWRP0049
COMMENT IF CALCPT IS TRUE, CALCULATE THE T DERIVATIVE OF KW. ; KWRP0050
IF CALCPT THEN KWRP0051
PKWT ~ (-PXWT/XW + PPVWT/PVW) | KW ; KWRP0052
COMMENT IF CALCPP IS TRUE, CALCULATE THE P DERIVATIVE OF KW. ; KWRP0053
IF CALCPP THEN KWRP0054
PKWP ~ -KW/P KWRP0055
END KWATER ; KWRP0056
PROCEDURE KPICKW (T, P, PICKK, CALCPT, CALCPP, CALCPDC, K, PKT, PKP,KPWP0001
PVW, XW, PPVWT, PXWT) ; KPWP0002
COMMENT THIS PROCEDURE TIES TOGETHER THE PROCEDURES KNGAA, KIDEAL,KPWP0003
KPOLY, PHIPART, AND KWATER FOR THE PURPOSE OF CALCULATING KPWP0004
K-RATIOS AND THEIR DERIVATIVES. KPWP0005
BY DONALD L. VOSS KPWP0006
PROFESSIONAL SERVICES GROUP, BURROUGHS CORPORATION KPWP0007
CARD SEQUENCE CODE STARTS WITH KPWP0001. KPWP0008
FIRST RELEASE DATE 5-5-63 KPWP0009
THE INPUT PARAMETERS ARE KPWP0010
T - TEMPERATURE, F - REAL KPWP0011
P - PRESSURE, PSIA - REAL KPWP0012
PICKK - NO. OF COMPONENTS FOR EACH OPTION - INTEGER ARRAY KPWP0013
[0:6]. KPWP0014
PICKK[1] - NO. USING KNGAA KPWP0015
PICKK[2] - NO. USING KIDEAL KPWP0016
PICKK[3] - NO. USING KPOLY KPWP0017
PICKK[4] - NO. USING PHIPART KPWP0018
PICKK[5] - NO. WHOSE K VALUES ARE GIVEN IN KC12[] KPWP0019
PICKK[6] - =1 TO CALCULATE FOR WATER DISSOLVED IN A KPWP0020
HYDROCARBON PHASE. =0 IF NOT. KPWP0021
CALCPT - BOOLEAN. IF TRUE, CALCULATE PKT. KPWP0022
CALCPP - BOOLEAN. IF TRUE, CALCULATE PKP. KPWP0023
CALCPDC - BOOLEAN. IF TRUE, CALCULATE THE PRESSURE KPWP0024
DEPENDENT COEFFICIENTS IN KNGAA. FOR CALCPDC = TRUE,KPWP0025
P(LAST ENTRY) MUST EQUAL P(PRESENT ENTRY). KPWP0026
IN ADDITION, THE KC- VARIABLES ARE NON-LOCAL TO KPICK. KPWP0027
KC1 - N.G.A.A. COEFFICIENTS FOR KNGAA - REAL ARRAY [0: KPWP0028
PICKK[1],0:28] KPWP0029
KC2 - VAPOR PRESSURE COEFFICIENTS FOR KIDEAL - REAL KPWP0030
ARRAY[0:PICKK[2],0:3] KPWP0031
KC3 - WATER VAPOR PRESSURE COEFFICIENTS FOR KWATER - KPWP0032
REAL ARRAY [0:3] KPWP0033
KC6 - COEFFICIENTS FOR THE SOLUBILITY OF WATER IN KPWP0034
HYDROCARBONS FOR KWATER - REAL ARRAY [0:3] KPWP0035
KC4 - REFERENCE COMPONENT K COEFFICIENTS FOR KPOLY - KPWP0036
REAL ARRAY [0:5] KPWP0037
KC5 - RELATIVE VOLATILITY COEFFICIENTS FOR KPOLY - REAL KPWP0038
ARRAY [0:PICKK[3],0:3] KPWP0039
KC7 - COMPONENT V VALUES IN PHIPART - INTEGER ARRAY KPWP0040
[0:PICKK[4]] KPWP0041
KC8 - COMPONENT ALEPH VALUES IN PHIPART - REAL ARRAY KPWP0042
[0:PICKK[4],0:MAX KC7[],0:MAX KC11[] ] KPWP0043
KC9 - COMPONENT BETA VALUES IN PHIPART - REAL ARRAY KPWP0044
[0:PICKK[4],0:MAX KC7[],0:MAX KC11[] ] KPWP0045
KC10 - COMPONENT COEFF VALUES IN PHIPART - REAL ARRAY KPWP0046
[0:PICKK[4],0:MAX (KC11[I]+1) ... (KC11[V]+1) ] KPWP0047
KC11 - COMPONENT P VALUES IN PHIPART - INTEGER ARRAY KPWP0048
[0:PICKK[4],0:MAX KC7[] ] KPWP0049
IN PHIPART, THE INDEPENDENT VARIABLES ARE T OR T AND P. KPWP0050
KC12 - GIVEN VALUES OF COMPONENT K RATIOS - REAL ARRAY KPWP0051
[0:PICKK[5] ] KPWP0052
THE OUTPUT PARAMETERS ARE KPWP0053
K - COMPONENT K-RATIOS (Y/X) - REAL ARRAY [0:N], KPWP0054
WHERE N IS THE TOTAL NUMBER OF COMPONENTS. KPWP0055
PKT - COMPONENT T DERIVATIVES OF K - REAL ARRAY [0:N] KPWP0056
PKP - COMPONENT P DERIVATIVES OF K - REAL ARRAY [0:N] - KPWP0057
(NOT INCLUDED FOR KPOLY) KPWP0058
PVW - VAPOR PRESSURE OF WATER, PSIA - REAL KPWP0059
XW - MOLE FRACTION OF WATER DISSOLVED IN HYDROCARBON KPWP0060
PHASE - REAL KPWP0061
PPVWT - T DERIVATIVE OF PVW - REAL KPWP0062
PXWT - T DERIVATIVE OF XW - REAL KPWP0063
THE INPUT AND OUTPUT COMPONENT ARRAYS ARE ARRANGED KPWP0064
ACCORDING TO THE PICKK[] ORDER. KPWP0065
THE PROCEDURES KNGAA, KIDEAL, KPOLY, PHIPART, ANT1, AND KPWP0066
KWATER MUST BE DECLARED PRIOR TO KPICKW. KPWP0067
THE PROCEDURE ANT1 MUST BE DECLARED PRIOR TO KIDEAL AND KPWP0068
KWATER. ; KPWP0069
VALUE T, P, CALCPT, CALCPP, CALCPDC ; KPWP0070
REAL T, P, PVW, XW, PPVWT, PXWT ; KPWP0071
BOOLEAN CALCPT, CALCPP, CALCPDC ; KPWP0072
ARRAY K[0], PKT[0], PKP[0] ; KPWP0073
INTEGER ARRAY PICKK[0] ; KPWP0074
BEGIN KPWP0075
INTEGER NF1, NF2, NF3, NF4, NF5, I, E, J, U, KC7E, KC11E ; KPWP0076
BOOLEAN ARRAY S[0:2] ; KPWP0077
REAL ARRAY DATA, SUM[0:2] ; KPWP0078
COMMENT SET UP ITERATION LIST VARIABLES ; KPWP0079
NF1 ~ PICKK[1] + PICKK[2] ; NF2 ~ PICKK[3] + NF1 ; KPWP0080
NF3 ~ PICKK[4] + NF2 ; NF4 ~ PICKK[5] + NF3 ; KPWP0081
NF5 ~ PICKK[6] + NF4 ; KPWP0082
COMMENT KWATER VALUES ; KPWP0083
IF PICKK[6] = 1 THEN KPWP0084
KWATER (T, P, CALCPT, CALCPP, K[NF5], PVW, XW, PKT[NF5], KPWP0085
PKP[NF5], PPVWT, PXWT) ; KPWP0086
COMMENT K-RATIOS GIVEN IN KC12[] ; KPWP0087
IF PICKK[5] > 0 THEN KPWP0088
FOR I ~ NF3+1 STEP 1 UNTIL NF4 DO KPWP0089
BEGIN KPWP0090
E ~ I - NF3 ; K[I] ~ KC12[E] KPWP0091
END ; KPWP0092
COMMENT PHIPART VALUES ; KPWP0093
IF PICKK[4] > 0 THEN KPWP0094
BEGIN KPWP0095
DATA[1] ~ T ; DATA[2] ~ P ; KPWP0096
S[1] ~ S[2] ~ FALSE ; KPWP0097
IF CALCPT THEN S[1] ~ TRUE ; KPWP0098
IF CALCPP THEN S[2] ~ TRUE ; KPWP0099
FOR I ~ NF2 + 1 STEP 1 UNTIL NF3 DO KPWP0100
BEGIN KPWP0101
E ~ I - NF2 ; KC7E ~ KC7[E] ; KPWP0102
IF KC11[E,1] > KC11[E,2] THEN KC11E ~ KC11[E,1] KPWP0103
ELSE KC11E ~ KC11[E,2] ; KPWP0104
BEGIN KPWP0105
REAL ARRAY ALEPH, BETA[0:2,0:KC11E] ; KPWP0106
FOR J ~ 1 STEP 1 UNTIL KC7E DO KPWP0107
FOR U ~ 1 STEP 1 UNTIL KC11E DO KPWP0108
BEGIN KPWP0109
ALEPH[J,U] ~ KC8[E,J,U] ; BETA[J,U] ~ KC9[E,J,U] KPWP0110
END ; KPWP0111
PHIPART (KC7[E], DATA, ALEPH, BETA, KC10[E,*], KC11[E,*], KPWP0112
S, K[I], SUM) ; KPWP0113
IF CALCPT THEN PKT[I] ~ SUM[1] ; KPWP0114
IF CALCPP THEN PKP[I] ~ SUM[2] KPWP0115
END KPWP0116
END KPWP0117
END ; KPWP0118
COMMENT KPOLY VALUES ; KPWP0119
IF PICKK[3] > 0 THEN KPWP0120
BEGIN KPWP0121
KPOLY (T, PICKK[3], CALCPT, K, PKT) ; KPWP0122
FOR I ~ NF1+1 STEP 1 UNTIL NF2 DO KPWP0123
BEGIN KPWP0124
E ~ I - NF1 ; K[I] ~ K[E] ; KPWP0125
IF CALCPT THEN PKT[I] ~ PKT[E] KPWP0126
END KPWP0127
END ; KPWP0128
COMMENT KIDEAL VALUES ; KPWP0129
IF PICKK[2] > 0 THEN KPWP0130
BEGIN KPWP0131
KIDEAL (T, P, PICKK[2], CALCPT, CALCPP, K, PKT, PKP) ; KPWP0132
FOR I ~ PICKK[1]+1 STEP 1 UNTIL NF1 DO KPWP0133
BEGIN KPWP0134
E ~ I - PICKK[1] ; K[I] ~ K[E] ; KPWP0135
IF CALCPT THEN PKT[I] ~ PKT[E] ; KPWP0136
IF CALCPP THEN PKP[I] ~ PKP[E] KPWP0137
END KPWP0138
END ; KPWP0139
COMMENT KNGAA VALUES ; KPWP0140
IF PICKK[1] > 0 THEN KPWP0141
KNGAA (T, P, PICKK[1], CALCPDC, CALCPT, CALCPP, K, PKT, KPWP0142
PKP) KPWP0143
END KPICKW ; KPWP0144
PROCEDURE FLASHW (Z, PICKK, B, LIMITFW, CALCPDC, T, P, VDF, S, FLHW 1
X, Y) ; FLHW 2
FLHW 3
COMMENT PROCEDURE FOR GENERAL NONADIABATIC FLASH CALCULATIONS FLHW 4
FOR HYDROCARBON MIXTURES CONTAINING WATER. A SEPARATE FLHW 5
PURE LIQUID WATER PHASE IS CONSIDERED. FLHW 6
THIS PROCEDURE COMPUTES THE TEMPERATURE OR PRESSURE OR FLHW 7
THE VAPOR-TO-FEED MOL RATIO FOR SPECIFIED VALUES OF THE FLHW 8
OTHER TWO VARIABLES. THE FRACTION OF LIQUID WATER, S, FLHW 9
IS CALCULATED AS A FUNCTION OF THESE VARIABLES. FLHW 10
FLHW 11
A. PAUL OLESON FLHW 12
PROFESSIONAL SERVICES GROUP, BURROUGHS CORP. FLHW 13
CARD SEQUENCE STARTS WITH FLHW0001. FLHW 14
DATE OF FIRST ISSUE 12-1-63 . FLHW 15
FLHW 16
THE INPUT PARAMETERS ARE FLHW 17
FLHW 18
T - TEMPERATURE, F., REAL. FLHW 19
P - PRESSURE, PSIA, REAL. FLHW 20
VDF - VAPOR TO FEED MOL RATIO, REAL. FLHW 21
Z - FEED COMPOSITION, MOL FRACTIONS, REAL ARRAY. FLHW 22
PICKK - SELECTORS OF K-RATIO CORRELATIONS, INTEGER ARRAYFLHW 23
SEE KPICKW PROCEDURE, PTS- . FLHW 24
CALCPDC - INSTRUCTION TO CALCULATE PRESSURE DEPENDENT FLHW 25
COEFFICIENTS IN NGAA K-RATIO PROCEDURE (PTS- ), FLHW 26
BOOLEAN. TRUE IF REQUIRED. FLHW 27
B - PROBLEM TYPE, BOOLEAN ARRAY, FLHW 28
B[1] - TRUE IF WATER IS PRESENT, FLHW 29
B[2] - TRUE IF CALCULATING TEMPERATURE. FLHW 30
B[3] - TRUE IF CALCULATING PRESSURE. FLHW 31
B[4] - TRUE IF CALCULATING VAPOR TO FEED RATIO. FLHW 32
LIMITFW - BOUNDS ON TEMPERATURE AND PRESSURE, ARRAY FLHW 33
LIMITFW[1] - MIN. T FLHW 34
LIMITFW[2] - MAX. T FLHW 35
LIMITFW[3] - MIN. P FLHW 36
LIMITFW[4] - MAX. P FLHW 37
FLHW 38
GLOBAL INPUT PARAMETERS INCLUDE FLHW 39
KC1 THROUGH KC12, COEFFIENTS FOR THE VARIOUS K-RATIO FLHW 40
CORRELATIONS. SEE PTS-041 FOR DETAILS. FLHW 41
FLHW 42
OUTPUT PARAMETERS ARE FLHW 43
T - TEMPERATURE, F., REAL, FLHW 44
P - PRESSURE, PSIA, REAL. FLHW 45
VDF - VAPOR TO FEED MOL RATIO, REAL. FLHW 46
S - MOL RATIO OF PURE LIQUID WATER TO FEED. FLHW 47
X - COMPOSITION OF LIQUID HYDROCARBON PHASE, MOL FLHW 48
FRACTION, REAL ARRAY. FLHW 49
Y - COMPOSITION OF VAPOR PHASE, MOL FRACTIONS, REAL FLHW 50
ARRAY. FLHW 51
THE REFERENCE LABEL IS FLHW 52
ERRORFW - LABEL OUTSIDE PROCEDURE ; FLHW 53
FLHW 54
VALUE Z, PICKK, B, LIMITFW, CALCPDC ; FLHW 55
BOOLEAN CALCPDC ; FLHW 56
BOOLEAN ARRAY B[0] ; FLHW 57
INTEGER ARRAY PICKK[0] ; FLHW 58
REAL T, P, VDF, S ; FLHW 59
ARRAY Z, LIMITFW, X, Y[0] ; FLHW 60
FLHW 61
BEGIN FLHW 62
LABEL FLW1, L1, L2, L3, FLW2, FLW3 ; FLHW 63
INTEGER NW, I, NL ; FLHW 64
BOOLEAN B0, B1, B2, B3, B4, B5, B6, B7, B8 ; FLHW 65
REAL STS1, STS2, XW, XW1, PVW, PVW1, G, ER, E, PGE, PGS, PSE, FLHW 66
FLHW 67
PXWT ; FLHW 68
ARRAY HK, PKT, PKP, K[0:20] ; FLHW 69
FLHW 70
REAL PROCEDURE FT (A) ; FLHW 71
VALUE A ; FLHW 72
REAL A ; FLHW 73
BEGIN FLHW 74
FT ~ - KC3[2] / (LN(A) - KC3[1]) - KC3[3] FLHW 75
END FT ; FLHW 76
FLHW 77
REAL PROCEDURE FUNC (I,EA,EB,EC,HK,Z,VDF,S) ; FLHW 78
VALUE I, EA, EB, EC, Z, HK, VDF, S ; FLHW 79
INTEGER I, EA, EB, EC ; FLHW 80
REAL VDF, S ; FLHW 81
ARRAY Z, HK[0] ; FLHW 82
BEGIN FLHW 83
FUNC ~ HK[I]*EA | Z[I]*EC / (HK[I] | VDF + 1.0 - S)*EB FLHW 84
END FUNC ; FLHW 85
FLHW 86
COMMENT SUM NUMBER OF COMPONENTS FROM PICKK ARRAY ; FLHW 87
FLHW 88
NW ~ 0 ; FOR I ~ 1 STEP 1 UNTIL 6 DO NW ~ PICKK[I] + NW ;FLHW 89
B0 ~ (VDF = 0.0) ; B1 ~ (VDF = 1.0) ; FLHW 90
B2 ~ B3 ~ B4 ~ B5 ~ B6 ~ B7 ~ B8 ~ FALSE ; FLHW 91
FLW1: KPICKW (T, P, PICKK, B[2], B[3], CALCPDC, K, PK, PK, FLHW 92
PVW, XW, STS1, PXWT) ; FLHW 93
IF B[2] THEN CALCPDC ~ FALSE ELSE CALCPDC ~ TRUE ; FLHW 94
XW1 ~ 1.0 - XW ; FLHW 95
FOR I ~ 1 STEP 1 UNTIL NW DO HK[I] ~ K[I] - 1.0 ; FLHW 96
FLHW 97
COMMENT IF CALCULATING VDF, CHECK IF 0 { VDF { (1 - S) ; FLHW 98
FLHW 99
L1 : IF B[4] THEN FLHW 100
BEGIN FLHW 101
STS1 ~ STS2 ~ 0 ; FLHW 102
FOR I ~ 1 STEP 1 UNTIL NW DO FLHW 103
BEGIN FLHW 104
STS1 ~ Z[I] / K[I] + STS1 ; STS2 ~ Z[I] | K[I] + STS2 FLHW 105
END ; FLHW 106
IF B[1] AND (Z[NW] > XW) THEN FLHW 107
BEGIN FLHW 108
S ~ (Z[NW] - XW) / XW1 ; FLHW 109
STS2 ~ -HK[NW] | S + STS2 FLHW 110
END FLHW 111
ELSE S ~ 0 ; FLHW 112
B0 ~ (STS2 { 1.0) ; B1 ~ (STS1 { 1.0) ; FLHW 113
L2 : IF B1 THEN FLHW 114
BEGIN FLHW 115
FLHW 116
COMMENT TEST IF ONLY VAPOR AND LIQUID WATER ARE PRESENT ; FLHW 117
FLHW 118
L3 : IF B[1] AND (Z[NW] > (PVW / P)) THEN FLHW 119
BEGIN FLHW 120
STS1 ~ HK[NW] | (Z[NW] | P - PVW) / (K[NW] | (P - PVW)) FLHW 121
+ STS1 ; FLHW 122
B2 ~ B1 ~ (STS1 < 1.0) ; FLHW 123
IF B1 THEN FLHW 124
BEGIN FLHW 125
S ~ (Z[NW] | P - PVW) / (P - PVW) ; VDF ~ 1.0 - S FLHW 126
END FLHW 127
FLHW 128
COMMENT OTHERWISE LIQUID WATER CANNOT BE PRESENT ; FLHW 129
FLHW 130
END FLHW 131
ELSE FLHW 132
BEGIN FLHW 133
S ~ 0 ; VDF ~ 1.0 FLHW 134
END ; FLHW 135
FLHW 136
COMMENT TEST IF VAPOR IS NOT PRESENT ; FLHW 137
FLHW 138
END ; FLHW 139
IF B0 THEN VDF ~ 0.0 ; FLHW 140
FLHW 141
COMMENT END L2 ; FLHW 142
FLHW 143
IF (B1 OR B0) THEN GO TO FLW3 FLHW 144
END L1 ; FLHW 145
FLHW 146
COMMENT COMPUTE MOL RATIO OF LIQUID WATER TO FEED ; FLHW 147
FLHW 148
FLW2 : IF B1 OR NOT B[1] THEN S ~ 0 ELSE FLHW 149
S ~ (-(HK[NW] | VDF + 1.0) | XW + Z[NW]) / XW1 ; FLHW 150
B8 ~ (S > 0) ; IF NOT B8 THEN S ~ 0 ; FLHW 151
IF (NOT B2 AND NOT B[4] AND ((S + VDF) > 1.0)) THEN FLHW 152
BEGIN FLHW 153
S ~ 1.0 - VDF ; FLHW 154
IF B[2] THEN T ~ FT ((Z[NW] - S) | P / VDF) FLHW 155
ELSE P ~ VDF | PVW / (Z[NW] - S) ; FLHW 156
B2 ~ TRUE ; GO TO FLW1 FLHW 157
END ; FLHW 158
FLHW 159
COMMENT EVALUATE FUNCTION G ; FLHW 160
FLHW 161
G ~ 0 ; FLHW 162
FOR I ~ 1 STEP 1 UNTIL NW DO G ~ FUNC(I,1,1,1,HK,Z,VDF,S) FLHW 163
+ G ; FLHW 164
IF B8 THEN G ~ - FUNC(NW,1,1,0,HK,Z,VDF,S) | S + G ; FLHW 165
FLHW 166
COMMENT TEST IF TWO OR THREE PHASES ARE PRESENT ; FLHW 167
FLHW 168
IF B2 THEN FLHW 169
BEGIN FLHW 170
IF G > 0 THEN FLHW 171
BEGIN FLHW 172
B1 ~ TRUE ; GO TO FLW3 FLHW 173
END FLHW 174
ELSE B2 ~ FALSE FLHW 175
END ; FLHW 176
FLHW 177
COMMENT TEST IF TOLERANCE ON G IS MET ; FLHW 178
FLHW 179
IF B[4] THEN ER ~ 10.0*(-6) ELSE ER ~ 10.0*(-3) ; FLHW 180
IF ABS(G) < ER THEN FLHW 181
BEGIN FLHW 182
FLHW 183
COMMENT COMPARE DEW POINTS WITH RESPECT TO LIQUID WATER AND FLHW 184
LIQUID HYDROCARBON PHASES. SELECT LOWER PRESSURE OR FLHW 185
HIGHER TEMPERATURE ; FLHW 186
FLHW 187
IF B[1] AND B1 THEN FLHW 188
BEGIN FLHW 189
IF B[2] THEN FLHW 190
BEGIN FLHW 191
T ~ FT (Z[NW] | P) ; FLHW 192
IF T < E THEN T ~ E FLHW 193
END FLHW 194
ELSE FLHW 195
BEGIN FLHW 196
P ~ PVW / Z[NW] ; IF P > E THEN P ~ E FLHW 197
END FLHW 198
END ; FLHW 199
GO TO FLW3 FLHW 200
END ; FLHW 201
FLHW 202
COMMENT ADJUST E USING THE NEWTON-RAPHSON METHOD. CALCULATE THE FLHW 203
DERIVATIVES FIRST ; FLHW 204
FLHW 205
PGE ~ 0 ; FLHW 206
IF B[4] THEN FLHW 207
BEGIN FLHW 208
E ~ VDF ; FLHW 209
FOR I ~ 1 STEP 1 UNTIL NW DO FLHW 210
PGE ~ - FUNC(I,2,2,1,HK,Z,VDF,S) + PGE FLHW 211
END FLHW 212
ELSE FLHW 213
BEGIN FLHW 214
IF B[2] THEN E ~ T ELSE E ~ P ; FLHW 215
FOR I ~ 1 STEP 1 UNTIL NW DO FLHW 216
PGE ~ FUNC(I,0,2,1,HK,Z,VDF,S) | PK[I] + PGE ; FLHW 217
PGE ~ (1.0 - S) | PGE FLHW 218
END ; FLHW 219
FLHW 220
COMMENT ADJUST PGE FOR S-DEPENDENT TERMS ; FLHW 221
FLHW 222
IF B8 THEN FLHW 223
BEGIN FLHW 224
PGS ~ 0 ; FLHW 225
FOR I ~ 1 STEP 1 UNTIL NW DO FLHW 226
PGS ~ FUNC(I,1,2,1,HK,Z,VDF,S) + PGS ; FLHW 227
PGS ~ - FUNC(NW,1,2,0,HK,Z,VDF,S) | (HK[NW] | VDF + 1.0) FLHW 228
+ PGS ; FLHW 229
IF B[4] THEN FLHW 230
BEGIN FLHW 231
PSE ~ -HK[NW] | XW / XW1 ; FLHW 232
PGE ~ FUNC(NW,2,2,0,HK,Z,VDF,S) | S + PGE FLHW 233
END FLHW 234
ELSE FLHW 235
BEGIN FLHW 236
PGE ~ FUNC(NW,0,2,0,HK,Z,VDF,S) | PK[NW] | (S - 1.0) | S FLHW 237
+ PGE ; FLHW 238
PSE ~ -PK[NW] | XW | VDF / XW1 ; FLHW 239
IF B[2] THEN PSE ~ -(HK[NW] | VDF + 1.0 - S) |PXWT / XW1 FLHW 240
+ PSE FLHW 241
END ; FLHW 242
FLHW 243
COMMENT ADJUST DERIVATIVE OF G ; FLHW 244
FLHW 245
PGE ~ PGS | PSE + PGE FLHW 246
END ; FLHW 247
FLHW 248
COMMENT ADJUST VALUE OF E FOR NEXT ITERATION ; FLHW 249
FLHW 250
E ~ E - G / PGE ; FLHW 251
FLHW 252
COMMENT TEST LIMITS. IF EXCEEDED EXIT TO REFERENCE LABEL ERRORFLW FLHW 253
IN MAIN PROGRAM ; FLHW 254
FLHW 255
IF NOT B[4] THEN FLHW 256
BEGIN FLHW 257
IF B[2] THEN NL ~ 0 ELSE NL ~ 2 ; FLHW 258
IF E < LIMITFW[NL+1] THEN FLHW 259
BEGIN FLHW 260
IF B7 THEN GO TO ERRORFW ; FLHW 261
E ~ LIMITFW[NL+1] ; FLHW 262
IF B[3] AND B4 THEN E ~ LIMITFW[4] - 50.0 ; FLHW 263
IF B[2] OR B4 THEN B7 ~ B4 ~ TRUE FLHW 264
END ; FLHW 265
FLHW 266
COMMENT TEST IF UPPER LIMITS ARE EXCEEDED ; FLHW 267
FLHW 268
IF E > LIMITFW[NL+2] THEN FLHW 269
BEGIN FLHW 270
IF B5 THEN GO TO ERRORFW ; FLHW 271
E ~ LIMITFW[NL+2] ; FLHW 272
IF B[3] AND B6 THEN E ~ LIMITFW[3] + 50.0 ; FLHW 273
IF B6 OR B[2] THEN B5 ~ B6 ~ TRUE FLHW 274
END FLHW 275
END ; FLHW 276
FLHW 277
COMMENT RETURN TO FLW1 OR FLW2 TO CONTINUE ITERATIONS IF THE FLHW 278
FUNCTION G IS NOT WITHIN TOLERANCE ; FLHW 279
FLHW 280
IF B[2] THEN T ~ E FLHW 281
ELSE IF B[3] THEN P ~ E FLHW 282
ELSE FLHW 283
BEGIN FLHW 284
VDF ~ E ; GO TO FLW2 FLHW 285
END ; FLHW 286
GO TO FLW1 ; FLHW 287
FLHW 288
COMMENT COMPUTE COMPOSITIONS OF PHASES PRESENT AT SOLUTION ; FLHW 289
FLHW 290
FLW3 : FOR I ~ 1 STEP 1 UNTIL NW DO FLHW 291
BEGIN FLHW 292
X[I] ~ FUNC(I,0,1,1,HK,Z,VDF,S) ; Y[I] ~ K[I] | X[I] FLHW 293
END ; FLHW 294
IF B0 OR B1 THEN FLHW 295
FOR I ~ 1 STEP 1 UNTIL NW DO FLHW 296
BEGIN FLHW 297
IF B1 THEN X[I] ~ 0 ELSE Y[I] ~ 0 FLHW 298
END ; FLHW 299
IF B[1] AND NOT B1 THEN FLHW 300
BEGIN FLHW 301
X[NW] ~ - FUNC(NW,0,1,0,HK,Z,VDF,S) | S + X[NW] ; FLHW 302
IF NOT B0 THEN Y[NW] ~ K[NW] | X[NW] FLHW 303
END ; FLHW 304
IF B2 THEN Y[NW] ~ Y[NW] - S / VDF ; FLHW 305
END FLASHW ; FLHW 306
TEST 39
KC3[1] ~ 14.40555 ; KC3[2] ~ 6936.5635 ; TEST 40
KC3[3] ~ 379.92103 ; KC6[1] ~ 6.1556551 ; TEST 41
KC6[2] ~ 6691.9779 ; KC6[3] ~ 420.42673 ; TEST 42
FOR I ~ 1 STEP 1 UNTIL 8 DO PICKK[I] ~ 0 ; TEST 43
PICKK[1] ~ 2 ; PICKK[6] ~ 1 ; TEST 44
LIMITFW[1] ~ 0.0 ; LIMITFW[2] ~ 500.0 ; TEST 45
LIMITFW[3] ~ 10.0 ; LIMITFW[4] ~ 1600.0 ; TEST 46
READ (FLIN, F2, LI1)[ENDPROB] ; TEST 47
CALCPDC ~ TRUE ; TEST 48
TEST 49
FOR N ~ 1 STEP 1 UNTIL 19 DO TEST 50
BEGIN TEST 51
READ (FLIN,F3,LI2) ; TEST 52
FLASHW (Z, PICKK, B, LIMITFW, CALCPDC, T, P, VDF, S, TEST 53
X, Y) ; TEST 54
WRITE (FIL1,FO1,LI3) ; TEST 55
WRITE (FIL1, FO2, L4) ; TEST 56
END ; TEST 57
TEST 58
ENDPROB: ; TEST 59
ERRORFW: END . TEST 60
TEST 61
LABEL 000000000FILE1 0010000001
-0.14609524@ 03 0.17442830@ 04 -0.88504047@ 04 0.23172909@ 05*CP# 5000NC4 1
-0.32904241@ 05 0.24047149@ 05 -0.70717229@ 04 0.51791307@ 03*CP# 5000NC4 2
-0.60967471@ 04 0.30280354@ 05 -0.77393885@ 05 0.10670547@ 06*CP# 5000NC4 3
-0.75224715@ 05 0.21217935@ 05 -0.63796025@ 03 0.75662458@ 04*CP# 5000NC4 4
-0.36863956@ 05 0.92089775@ 05 -0.12320518@ 06 0.83414815@ 05*CP# 5000NC4 5
-0.22305445@ 05 0.28216774@ 03 -0.33359564@ 04 0.16069058@ 05*CP# 5000NC4 6
-0.39576618@ 05 0.51906262@ 05 -0.34121151@ 05 0.87318732@ 04*CP# 5000NC4 7
-0.21348786@ 03 0.25474323@ 04 -0.12798200@ 05 0.33160386@ 05*CP# 5000NC7 1
-0.46617734@ 05 0.33733453@ 05 -0.98179094@ 04 0.75259770@ 03*CP# 5000NC7 2
-0.90661037@ 04 0.45105376@ 05 -0.11567362@ 06 0.16082237@ 06*CP# 5000NC7 3
-0.11494396@ 06 0.33049039@ 05 -0.83874040@ 03 0.10204559@ 05*CP# 5000NC7 4
-0.50087083@ 05 0.12659472@ 06 -0.17312184@ 06 0.12128248@ 06*CP# 5000NC7 5
-0.34048056@ 05 0.31865699@ 03 -0.38575857@ 04 0.18652295@ 05*CP# 5000NC7 6
-0.46388321@ 05 0.62285187@ 05 -0.42635868@ 05 0.11615321@ 05*CP# 5000NC7 7
280.0 75.0 0.5 0.250 0.250 0.500 1 0 0 1
220.0 50.0 0.5 0.250 0.250 0.500 1 0 0 1
150.0 75.0 0.5 0.490 0.490 0.020 1 0 0 1
175.0 75.0 0.5 0.300 0.300 0.400 1 0 0 1
225.0 75.0 0.5 0.299 0.699 0.002 1 0 0 1
200.0 80.0 0.0 0.400 0.400 0.200 1 1 0 0
200.0 60.0 0.0 0.499 0.499 0.002 1 1 0 0
200.0 70.0 1.0 0.300 0.500 0.200 1 1 0 0
200.0 100.0 1.0 0.150 0.150 0.700 1 1 0 0
200.0 50.0 0.4 0.100 0.100 0.800 1 1 0 0
200.0 75.0 0.5 0.300 0.300 0.400 1 1 0 0
200.0 75.0 0.5 0.499 0.499 0.002 1 1 0 0
100.0 100.0 0.0 0.600 0.200 0.200 1 0 1 0
160.0 100.0 0.0 0.500 0.496 0.004 1 0 1 0
300.0 100.0 1.0 0.100 0.700 0.200 1 0 1 0
200.0 100.0 1.0 0.100 0.100 0.800 1 0 1 0
200.0 100.0 0.4 0.100 0.100 0.800 1 0 1 0
120.0 100.0 0.6 0.500 0.200 0.300 1 0 1 0
250.0 100.0 0.5 0.290 0.690 0.020 1 0 1 0