mirror of
https://github.com/retro-software/B5500-software.git
synced 2026-02-28 08:57:42 +00:00
1. Commit library tape images, directories, and extracted text files. 2. Commit additional utilities under Unisys-Emode-Tools.
1159 lines
118 KiB
Plaintext
1159 lines
118 KiB
Plaintext
LABEL 000000000LINE 00188147?COMPILE PTS051/TEST ALGOL GO ALGOL /PTS051
|
||
|
||
|
||
|
||
|
||
|
||
BURROUGHS B-5700 ALGOL COMPILER MARK XIII.0 THURSDAY, 05/26/88, 4:14 PM.
|
||
|
||
|
||
|
||
|
||
|
||
BEGIN 35230001 C 0000
|
||
START OF SEGMENT ********** 2
|
||
35230002 C 0000
|
||
COMMENT TEST PROGRAM FOR FLASHW PROCEDURE. 35230003 C 0000
|
||
BY A. PAUL OLESON 35230004 C 0000
|
||
PROFESSIONAL SERVICES GROUP, BURROUGHS CORP. 35230005 C 0000
|
||
CARD SEQUENCE STARTS WITH TEST0001. 35230006 C 0000
|
||
DATE OF FIRST ISSUE 12-1-63 ; 35230007 C 0000
|
||
FILE IN FLIN (1,10) ; 35230008 C 0000
|
||
FILE OUT FIL1 (1,15) ; 35230009 C 0003
|
||
BOOLEAN CALCPDC ; 35230010 C 0007
|
||
BOOLEAN ARRAY B[0:10] ; 35230011 C 0007
|
||
INTEGER I, J, N ; 35230012 C 0008
|
||
INTEGER ARRAY PICKK[0:8], KC7[0:20], KC11[0:20,0:2] ; 35230013 C 0008
|
||
REAL T, P, VDF, S ; 35230014 C 0014
|
||
REAL ARRAY KC1[0:20,0:28], KC2[0:20,0:3], KC3[0:3], KC4[0:5], 35230015 C 0014
|
||
KC5[0:2,0:3], KC6[0:3],KC8[0:20,0:2,0:2], 35230016 C 0022
|
||
KC9[0:20,0:2,0:2], KC10[0:20,0:5], KC12[0:20], K[0:20], 35230017 C 0028
|
||
PK[0:20], Z[0:20], X[0:20], Y[0:20], LIMITFW[0:4] ; 35230018 C 0035
|
||
35230019 C 0044
|
||
LABEL ENDPROB, ERRORFW ; 35230020 C 0044
|
||
FORMAT IN F2 (E17.8,3E16.8) , 35230021 C 0044
|
||
START OF SEGMENT ********** 3
|
||
F3 (X4,2F6.1,F4.1,3F6.3,4I2) ; 35230022 C 0044
|
||
3 IS 13 LONG, NEXT SEG 2
|
||
35230023 C 0044
|
||
FORMAT OUT FO1 (2F9.5,2E16.8) , 35230024 C 0044
|
||
START OF SEGMENT ********** 4
|
||
FO2 (3E16.8) ; 35230025 C 0044
|
||
4 IS 9 LONG, NEXT SEG 2
|
||
35230026 C 0044
|
||
LIST LI1(FOR I ~ 1,2 DO FOR J ~ 1 STEP 1 UNTIL 28 DO 35230027 C 0044
|
||
KC1[I,J]), 35230028 C 0052
|
||
LI2(T, P, VDF, Z[1], Z[2], Z[3], B[1], B[2], B[3], B[4]), 35230029 C 0060
|
||
LI3(T, P, VDF, S) , 35230030 C 0078
|
||
L4 (FOR I ~ 1,2,3 DO [Z[I], X[I], Y[I]]) ; 35230031 C 0087
|
||
REAL LOGP ; 35230032 C 0103
|
||
COMMENT GLOBAL ARRAYS FOR KNGAA PROCEDURE ; 35230033 C 0103
|
||
ARRAY TR1S1[0:4], PDC[0:8,0:4], LOGP1[0:7] ; 35230034 C 0103
|
||
COMMENT GLOBAL ARRAYS FOR PHIPART PROCEDURE ; 35230035 C 0109
|
||
INTEGER ARRAY TADD, ADD[0:5], DEGREE[0:4] ; 35230036 C 0109
|
||
ARRAY POLY[0:25], TT[0:4] ; 35230037 C 0112
|
||
35230038 C 0116
|
||
PROCEDURE KNGAA (T, P, N, CALCPDC, CALCPT, CALCPP, K, PKT, PKP) ; 25770010 C 0116
|
||
00000000 C 0116
|
||
COMMENT N.G.A.A. K-RATIO PROCEDURE. 25770002 C 0116
|
||
BY A. PAUL OLESON AND DONALD L. VOSS 25770003 C 0116
|
||
PROFESSIONAL SERVICES GROUP, BURROUGHS CORPORATION 25770004 C 0116
|
||
FIRST RELEASE DATE: 5-5-63 25770005 C 0116
|
||
00000000 C 0116
|
||
THIS PROCEDURE CALCULATES VAPOR-LIQUID EQUILIBRIUM RATIOS 25770006 C 0116
|
||
(Y/X) FOR LIGHT HYDROCARBONS BY MEANS OF THE N.G.A.A. 25770007 C 0116
|
||
CORRELATION. ALSO CALCULATED, BY OPTION, ARE THE 25770008 C 0116
|
||
TEMPERATURE AND PRESSURE DERIVATIVES OF THE K-RATIOS. 25770009 C 0116
|
||
COMPONENTS MAY BE REFERENCED TO ANY COMPONENT IN THE 25770010 C 0116
|
||
SYSTEM BY K = K[R](A + B | T + C | T*2), WHERE 25770011 C 0116
|
||
A = KC1[I,2] | P + KC1[I,3], 25770012 C 0116
|
||
B = KC1[I,4] | P + KC1[I,5], 25770013 C 0116
|
||
C = KC1[I,6] | P + KC1[I,7], 25770014 C 0116
|
||
AND T IS DEGREES RANKINE/1000. 25770015 C 0116
|
||
00000000 C 0116
|
||
THE INPUT PARAMETERS ARE 25770016 C 0116
|
||
T - TEMPERATURE, F - REAL 25770017 C 0116
|
||
P - PRESSURE, PSIA - REAL 25770018 C 0116
|
||
N - NUMBER OF COMPONENTS - INTEGER 25770019 C 0116
|
||
CALCPDC - BOOLEAN. IF TRUE, CALCULATE P DEPENDENT 25770020 C 0116
|
||
COEFFICIENTS. FOR CALCPDC = FALSE, P OF THE LAST 25770021 C 0116
|
||
ENTRY MUST EQUAL P OF THE PRESENT ENTRY. 25770022 C 0116
|
||
CALCPT - BOOLEAN. IF TRUE, CALCULATE THE T DERIVATIVE 25770023 C 0116
|
||
OF K. 25770024 C 0116
|
||
CALCPP - BOOLEAN. IF TRUE, CALCULATE THE P DERIVATIVE 25770025 C 0116
|
||
OF K. 25770026 C 0116
|
||
00000000 C 0116
|
||
ALSO, THE VARIABLE KC1 IS NON-LOCAL. 25770027 C 0116
|
||
KC1 - N.G.A.A. COEFFICIENTS - REAL ARRAY [0:N,0:28], 25770028 C 0116
|
||
WHERE THE 28 COEFFICIENTS ARE ALTERNATELY 4 SETS 25770029 C 0116
|
||
OF 7 P COEFFICIENTS. IF KC1[I,1] = 0, COMPONENT 25770030 C 0116
|
||
I IS REFERENCED TO COMPONENT R AND KC1[I,8] = R. 25770031 C 0116
|
||
R IS REAL AND MUST BE GREATER THAN I. 25770032 C 0116
|
||
00000000 C 0116
|
||
THE OUTPUT PARAMETERS ARE 25770033 C 0116
|
||
K - COMPONENT VAPOR-LIQUID EQUILIBRIUM RATIOS (Y/X) - 25770034 C 0116
|
||
REAL ARRAY [0:N] 25770035 C 0116
|
||
PKT - COMPONENT T DERIVATIVES OF K - REAL ARRAY [0:N] 25770036 C 0116
|
||
PKP - COMPONENT P DERIVATIVES OF K - REAL ARRAY [0:N] ; 25770037 C 0116
|
||
00000000 C 0116
|
||
VALUE T, P, N, CALCPDC, CALCPT, CALCPP ; 25770038 C 0116
|
||
INTEGER N ; 25770039 C 0116
|
||
BOOLEAN CALCPDC, CALCPT, CALCPP ; 25770040 C 0116
|
||
REAL T, P ; 25770041 C 0116
|
||
ARRAY K[0], PKT[0], PKP[0] ; 25770042 C 0116
|
||
00000000 C 0116
|
||
BEGIN 25770043 C 0116
|
||
LABEL KNG1, KNG2, KNG3, KNG4, KNG5, KNG6, KNG7, KNG8, KNG9 ; 25770044 C 0116
|
||
START OF SEGMENT ********** 5
|
||
INTEGER I, J, U, E, G, TIS1, Q ; 25770045 C 0000
|
||
REAL TRS1, TR1, TR12 ; 25770046 C 0000
|
||
00000000 C 0000
|
||
COMMENT CALCULATE PRESSURE DEPENDENT COEFFICIENTS IF CALCPDC = 1 ; 25770050 C 0000
|
||
IF CALCPDC THEN 25770051 C 0000
|
||
BEGIN 25770052 C 0000
|
||
LOGP ~ LN(P) | 0.1 ; LOGP1[1] ~ 1.0 ; 25770053 C 0000
|
||
FOR U ~ 2 STEP 1 UNTIL 7 DO 25770054 C 0003
|
||
LOGP1[U] ~ LOGP1[U-1] | LOGP ; 25770055 C 0007
|
||
LOGP ~ 10.0 | LOGP ; 25770056 C 0011
|
||
FOR I ~ 1 STEP 1 UNTIL N DO 25770057 C 0013
|
||
BEGIN 25770058 C 0015
|
||
IF KC1[I,1] = 0 THEN GO TO KNG1 ; 25770059 C 0015
|
||
FOR J ~ 1, 8, 15, 22 DO 25770060 C 0017
|
||
BEGIN 25770061 C 0025
|
||
Q ~ J + 6 ; 25770062 C 0025
|
||
E ~ Q DIV 7 ; 25770063 C 0027
|
||
PDC[I,E] ~ 0 ; 25770064 C 0028
|
||
TIS1 ~ 1 - J ; 25770065 C 0030
|
||
FOR U ~ J STEP 1 UNTIL Q DO 25770066 C 0031
|
||
BEGIN 25770067 C 0033
|
||
G ~ U + TIS1 ; 25770068 C 0033
|
||
PDC[I,E] ~ KC1[I,U] | LOGP1[G] + PDC[I,E] 25770069 C 0034
|
||
END 25770070 C 0038
|
||
END ; 25770071 C 0039
|
||
GO TO KNG2 ; 25770072 C 0042
|
||
00000000 C 0042
|
||
COMMENT CALCULATE PRESSURE DEPENDENT COEFFICIENTS OF REFERENCED 25770073 C 0042
|
||
COMPONENTS ; 25770074 C 0042
|
||
KNG1: PDC[I,1] ~ 0 ; 25770075 C 0042
|
||
PDC[I,2] ~ KC1[I,2] | P + KC1[I,3] ; 25770076 C 0045
|
||
PDC[I,3] ~ KC1[I,4] | P + KC1[I,5] ; 25770077 C 0050
|
||
PDC[I,4] ~ KC1[I,6] | P + KC1[I,7] ; 25770078 C 0055
|
||
KNG2: END 25770079 C 0060
|
||
END ; 25770080 C 0060
|
||
00000000 C 0062
|
||
COMMENT CALCULATE K-RATIOS ; 25770081 C 0062
|
||
KNG3: TR1 ~ (T + 459.7) | 0.001 ; TR12 ~ TR1*2 ; 25770082 C 0062
|
||
FOR I ~ N STEP -1 UNTIL 1 DO 25770083 C 0066
|
||
BEGIN 25770084 C 0069
|
||
IF PDC[I,1] = 0 THEN GO TO KNG4 ; 25770085 C 0069
|
||
K[I] ~ EXP (PDC[I,4] | TR12 + PDC[I,3] | TR1 + 25770086 C 0071
|
||
PDC[I,1]/TR1 + PDC[I,2] - LOGP) ; 25770087 C 0075
|
||
GO TO KNG5 ; 25770088 C 0080
|
||
00000000 C 0081
|
||
COMMENT CALCULATE K-RATIOS OF REFERENCED COMPONENTS ; 25770089 C 0081
|
||
KNG4: K[I] ~ K[KC1[I,8]] | (PDC[I,3] | TR1 + PDC[I,2] + 25770090 C 0081
|
||
PDC[I,4] | TR12) ; 25770091 C 0086
|
||
KNG5: END ; 25770092 C 0089
|
||
00000000 C 0091
|
||
COMMENT CALCULATE TEMPERATURE DERIVATIVES OF K-RATIOS, IF CALCPT 25770093 C 0091
|
||
IS TRUE ; 25770094 C 0091
|
||
IF CALCPT THEN 25770095 C 0091
|
||
FOR I ~ N STEP -1 UNTIL 1 DO 25770096 C 0091
|
||
BEGIN 25770097 C 0093
|
||
IF PDC[I,1] = 0 THEN GO TO KNG6 ; 25770098 C 0093
|
||
PKT[I] ~ (-PDC[I,1]/TR12 + 2.0 | PDC[I,4] | TR1 + 25770099 C 0095
|
||
PDC[I,3] ) | 0.001 | K[I] ; 25770100 C 0100
|
||
GO TO KNG7 ; 25770101 C 0103
|
||
00000000 C 0106
|
||
COMMENT CALCULATE TEMPERATURE DERIVATIVES OF K-RATIOS FOR 25770102 C 0106
|
||
REFERENCED COMPONENTS ; 25770103 C 0106
|
||
KNG6: E ~ KC1[I,8] ; 25770104 C 0106
|
||
PKT[I] ~ K[I]/K[E] | PKT[E] + (PDC[I,4] | 2.0 | TR1 + 25770105 C 0107
|
||
PDC[I,3] ) | K[E] | 0.001 ; 25770106 C 0112
|
||
KNG7: END ; 25770107 C 0116
|
||
00000000 C 0118
|
||
COMMENT CALCULATE PRESSURE DERIVATIVES OF K-RATIOS, IF CALCPP IS 25770108 C 0118
|
||
TRUE ; 25770109 C 0118
|
||
IF CALCPP THEN 25770110 C 0118
|
||
FOR I ~ N STEP -1 UNTIL 1 DO 25770111 C 0118
|
||
BEGIN 25770112 C 0122
|
||
IF PDC[I,1] = 0 THEN GO TO KNG8 ; 25770113 C 0122
|
||
FOR J ~ 1, 8, 15, 22 DO 25770114 C 0124
|
||
BEGIN 25770115 C 0132
|
||
Q ~ J + 5 ; 25770116 C 0132
|
||
E ~ (J + 6) DIV 7 ; 25770117 C 0134
|
||
TR1S1[E] ~ 0 ; TRS1 ~ 1.0 ; 25770118 C 0135
|
||
TIS1 ~ 1 - J ; 25770119 C 0137
|
||
FOR U ~ J STEP 1 UNTIL Q DO 25770120 C 0139
|
||
BEGIN 25770121 C 0141
|
||
G ~ U + TIS1 ; 25770122 C 0141
|
||
TR1S1[E] ~ KC1[I,U+1] | LOGP1[G] | TRS1 + TR1S1[E] ; 25770123 C 0142
|
||
TRS1 ~ TRS1 + 1.0 25770124 C 0147
|
||
END 25770125 C 0147
|
||
END ; 25770126 C 0148
|
||
PKP[I] ~ (TR1S1[4] | TR12 + TR1S1[3] | TR1 + TR1S1[1]/TR1 25770127 C 0152
|
||
+ TR1S1[2] - 10.0) | 0.1 | K[I]/P ; 25770128 C 0155
|
||
GO TO KNG9 ; 25770129 C 0159
|
||
00000000 C 0162
|
||
COMMENT CALCULATE PRESSURE DERIVATIVES OF K-RATIOS FOR REFERENCED 25770130 C 0162
|
||
COMPONENTS ; 25770131 C 0162
|
||
KNG8: E ~ KC1[I,8] ; 25770132 C 0162
|
||
PKP[I] ~ (KC1[I,6] | TR12 + KC1[I,4] | TR1 + KC1[I,2] ) | 25770133 C 0163
|
||
K[E] + (PDC[I,4] | TR12 + PDC[I,3] | TR1 + PDC[I,2] ) | 25770134 C 0169
|
||
PKP[E] ; 25770135 C 0175
|
||
KNG9: END 25770136 C 0177
|
||
00000000 C 0177
|
||
END KNGAA ; 25770137 C 0177
|
||
5 IS 184 LONG, NEXT SEG 2
|
||
PROCEDURE PHIPART (V, DATA, ALEPH, BETA, COEFF, P, S, PHI, SUM) ; 26220001 C 0116
|
||
COMMENT THIS PROCEDURE COMPUTES POINTS ON AN N-DIMENSIONAL SURFACE 26220002 C 0116
|
||
AND, BY OPTION, THE PARTIAL DERIVATIVES OF ANY OF THE 26220003 C 0116
|
||
VARIABLES AT THE POINTS IN QUESTION ; 26220004 C 0116
|
||
VALUE V ; 26220005 C 0116
|
||
INTEGER V ; 26220006 C 0116
|
||
INTEGER ARRAY P[0] ; 26220007 C 0116
|
||
BOOLEAN ARRAY S[0] ; 26220008 C 0116
|
||
REAL ARRAY DATA[0], ALEPH[0,0], BETA[0,0], COEFF[0], SUM[0] ; 26220009 C 0116
|
||
REAL PHI ; 26220010 C 0116
|
||
BEGIN 26220011 C 0116
|
||
INTEGER KV, M, T, I, D, PV ; 26220012 C 0116
|
||
START OF SEGMENT ********** 6
|
||
BOOLEAN B ; 26220014 C 0000
|
||
REAL DATUM ; 26220015 C 0000
|
||
COMMENT THE SIZE OF POLY IS SUM(P[I]+1), I ~ 1 STEP 1 UNTIL V. IT 26220017 C 0000
|
||
HAS BEEN SET TO A VALUE SO AS NOT TO REQUIRE CALCULATION 26220018 C 0000
|
||
WITH EACH PASS THROUGH PHIPART, BUT IT MAY BE ALTERED. ; 26220019 C 0000
|
||
LABEL POLYCOMPUTE, PARTCOMPUTE, D2, BACK, HERE, FINI, DEPENDENT; 26220020 C 0000
|
||
TADD[1] ~ ADD[1] ~ T ~ 1 ; 26220021 C 0000
|
||
FOR M ~ 1 STEP 1 UNTIL V DO 26220022 C 0002
|
||
BEGIN 26220023 C 0004
|
||
DATUM ~ DATA[M] ; SUM[M] ~ 0 ; 26220024 C 0004
|
||
COMMENT EVALUATE THE POLYNOMIALS ; 26220025 C 0006
|
||
POLYCOMPUTE : 26220026 C 0006
|
||
BEGIN 26220027 C 0007
|
||
POLY[T] ~ 1.0 ; 26220028 C 0007
|
||
POLY[T+1] ~ DATUM + ALEPH[M,1] ; T ~ T + 2 ; 26220029 C 0008
|
||
FOR I ~ 2 STEP 1 UNTIL P[M] DO 26220030 C 0012
|
||
BEGIN 26220031 C 0016
|
||
POLY[T] ~ (ALEPH[M,I] + DATUM) | POLY[T-1] + 26220032 C 0016
|
||
BETA[M,I] | POLY[T-2] ; 26220033 C 0020
|
||
T ~ T + 1 26220034 C 0023
|
||
END 26220035 C 0023
|
||
END POLYCOMPUTE ; 26220036 C 0024
|
||
TADD[M+1] ~ ADD[M+1] ~ T 26220037 C 0027
|
||
END ; 26220038 C 0029
|
||
B ~ FALSE ; 26220039 C 0032
|
||
COMMENT COMPUTE THE DEPENDENT VARIABLE OR THE PARTIAL ; 26220040 C 0033
|
||
DEPENDENT : 26220041 C 0033
|
||
BEGIN 26220042 C 0034
|
||
D ~ 1 ; 26220043 C 0034
|
||
FOR M ~ 1 STEP 1 UNTIL V DO 26220044 C 0034
|
||
BEGIN 26220045 C 0036
|
||
DEGREE[M] ~ TADD[M] ; TT[M] ~ 0 26220046 C 0036
|
||
END ; 26220047 C 0038
|
||
PV ~ TADD[V] + P[V] ; 26220048 C 0041
|
||
BACK : FOR I ~ TADD[V] STEP 1 UNTIL PV DO 26220049 C 0042
|
||
BEGIN 26220050 C 0047
|
||
TT[V] ~ COEFF[D] | POLY[I] + TT[V] ; 26220051 C 0047
|
||
D ~ D + 1 26220052 C 0050
|
||
END ; 26220053 C 0050
|
||
IF V = 1 THEN GO TO FINI ; 26220054 C 0051
|
||
M ~ V - 1 ; 26220055 C 0053
|
||
HERE : TT[M] ~ POLY[DEGREE[M]] | TT[M+1] + TT[M] ; 26220056 C 0054
|
||
TT[M+1] ~ 0 ; 26220057 C 0058
|
||
DEGREE[M] ~ DEGREE[M] + 1 ; 26220058 C 0060
|
||
IF DEGREE[M] { TADD[M] + P[M] THEN GO TO BACK ; 26220060 C 0062
|
||
IF M = 1 THEN GO TO FINI ; 26220061 C 0065
|
||
DEGREE[M] ~ TADD[M] ; M ~ M - 1 ; 26220062 C 0066
|
||
GO TO HERE ; 26220063 C 0069
|
||
FINI : IF B THEN 26220064 C 0069
|
||
BEGIN 26220065 C 0070
|
||
SUM[KV] ~ TT[1] ; GO TO D2 26220066 C 0070
|
||
END ; 26220067 C 0072
|
||
PHI ~ TT[1] 26220068 C 0072
|
||
END DEPENDENT ; 26220069 C 0073
|
||
FOR KV ~ 1 STEP 1 UNTIL V DO 26220070 C 0074
|
||
BEGIN 26220071 C 0075
|
||
M ~ KV ; 26220072 C 0075
|
||
IF S[M] THEN 26220073 C 0075
|
||
BEGIN 26220074 C 0076
|
||
DATUM ~ DATA[M] ; 26220075 C 0076
|
||
COMMENT EVALUATE THE PARTIAL POLYNOMIALS ; 26220076 C 0077
|
||
PARTCOMPUTE : 26220077 C 0077
|
||
BEGIN 26220078 C 0078
|
||
POLY[T] ~ 0 ; POLY[T+1] ~ 1.0 ; 26220079 C 0078
|
||
T ~ T + 2 ; 26220080 C 0081
|
||
FOR I ~ 2 STEP 1 UNTIL P[M] DO 26220081 C 0082
|
||
BEGIN 26220082 C 0086
|
||
POLY[T] ~ (ALEPH[M,I] + DATUM) | POLY[T-1] + 26220083 C 0086
|
||
POLY[ADD[M]+I-1] + BETA[M,I] | POLY[T-2] ; 26220084 C 0089
|
||
T ~ T + 1 26220085 C 0095
|
||
END 26220086 C 0095
|
||
END PARTCOMPUTE ; 26220087 C 0096
|
||
T ~ TADD[M] ~ ADD[V+1] ; B ~ TRUE ; 26220088 C 0098
|
||
GO TO DEPENDENT ; 26220089 C 0101
|
||
D2 : TADD[KV] ~ ADD[KV] 26220090 C 0101
|
||
END 26220091 C 0102
|
||
END 26220092 C 0103
|
||
END PHIPART ; 26220093 C 0103
|
||
6 IS 109 LONG, NEXT SEG 2
|
||
PROCEDURE ANT1 (X, CALCPX, ANTC, ANT, PANTX) ; 15370001 C 0116
|
||
00000000 C 0116
|
||
COMMENT ANTOINE EQUATION PROCEDURE. 15370002 C 0116
|
||
BY DONALD L. VOSS 15370003 C 0116
|
||
PROFESSIONAL SERVICES GROUP, BURROUGHS CORPORATION 15370004 C 0116
|
||
FIRST RELEASE DATE: 11-1-62 15370005 C 0116
|
||
00000000 C 0116
|
||
THIS PROCEDURE EVALUATES THE 3-CONSTANT ANTOINE EQUATION. 15370006 C 0116
|
||
00000000 C 0116
|
||
THE INPUT PARAMETERS ARE 15370007 C 0116
|
||
X - INDEPENDENT VARIABLE - REAL 15370008 C 0116
|
||
CALCPX - BOOLEAN. IF TRUE, CALCULATE PANTX. 15370009 C 0116
|
||
ANTC - ANTOINE EQUATION COEFFICIENTS - REAL ARRAY [0:3] 15370010 C 0116
|
||
00000000 C 0116
|
||
THE OUTPUT PARAMETERS ARE 15370011 C 0116
|
||
ANT - VALUE OF THE ANTOINE EQUATION AT X - REAL 15370012 C 0116
|
||
PANTX - X DERIVATIVE OF ANT - REAL ; 15370013 C 0116
|
||
00000000 C 0116
|
||
VALUE X, CALCPX ; 15370014 C 0116
|
||
BOOLEAN CALCPX ; 15370015 C 0116
|
||
REAL X, ANT, PANTX ; 15370016 C 0116
|
||
ARRAY ANTC[0] ; 15370017 C 0116
|
||
00000000 C 0116
|
||
BEGIN 15370018 C 0116
|
||
REAL TRS1 ; 15370019 C 0116
|
||
START OF SEGMENT ********** 7
|
||
00000000 C 0000
|
||
COMMENT EVALUATE THE ANTOINE EQUATION ; 15370020 C 0000
|
||
TRS1 ~ ANTC[3] + X ; 15370021 C 0000
|
||
ANT ~ EXP (-ANTC[2]/TRS1 + ANTC[1] ) ; 15370022 C 0001
|
||
00000000 C 0004
|
||
COMMENT IF CALCPX IS TRUE, CALCULATE THE DERIVATIVE OF THE 15370023 C 0004
|
||
ANTOINE EQUATION WITH RESPECT TO X. ; 15370024 C 0004
|
||
IF CALCPX THEN 15370025 C 0004
|
||
PANTX ~ ANTC[2]/TRS1*2 | ANT 15370026 C 0005
|
||
END ANT1 ; 15370027 C 0007
|
||
7 IS 11 LONG, NEXT SEG 2
|
||
PROCEDURE KIDEAL (T, P, N, CALCPT, CALCPP, K, PKT, PKP) ; 29470001 C 0116
|
||
00000000 C 0116
|
||
COMMENT IDEAL K-RATIO PROCEDURE. 29470002 C 0116
|
||
BY DONALD L. VOSS 29470003 C 0116
|
||
PROFESSIONAL SERVICES GROUP, BURROUGHS CORPORATION 29470004 C 0116
|
||
FIRST RELEASE DATE: 5-5-63 29470005 C 0116
|
||
00000000 C 0116
|
||
THIS PROCEDURE CALCULATES VAPOR-LIQUID EQUILIBRIUM RATIOS 29470006 C 0116
|
||
(Y/X), AND THEIR DERIVATIVES WITH RESPECT TO TEMPERATURE 29470007 C 0116
|
||
AND PRESSURE. IDEAL LIQUID AND VAPOR BEHAVIOR IS ASSUMED. 29470008 C 0116
|
||
00000000 C 0116
|
||
THE INPUT PARAMETERS ARE 29470009 C 0116
|
||
T - TEMPERATURE, F - REAL 29470010 C 0116
|
||
P - PRESSURE, PSIA - REAL 29470011 C 0116
|
||
N - NUMBER OF COMPONENTS - INTEGER 29470012 C 0116
|
||
CALCPT - BOOLEAN. IF TRUE, CALCULATE PKT. 29470013 C 0116
|
||
CALCPP - BOOLEAN. IF TRUE, CALCULATE PKP. 29470014 C 0116
|
||
00000000 C 0116
|
||
ALSO, THE VARIABLE KC2 IS NON-LOCAL. 29470015 C 0116
|
||
KC2 - COMPONENT VAPOR PRESSURE COEFFICIENTS - REAL ARRAY 29470016 C 0116
|
||
[0:N,0:3]. KC2 IS USED AS ANTC IN THE ANT1 29470017 C 0116
|
||
PROCEDURE. 29470018 C 0116
|
||
00000000 C 0116
|
||
THE OUTPUT PARAMETERS ARE 29470019 C 0116
|
||
K - COMPONENT VAPOR-LIQUID EQUILIBRIUM RATIOS (Y/X) - 29470020 C 0116
|
||
REAL ARRAY [0:N] 29470021 C 0116
|
||
PKT - COMPONENT T DERIVATIVES OF K - REAL ARRAY [0:N] 29470022 C 0116
|
||
PKP - COMPONENT P DERIVATIVES OF K - REAL ARRAY [0:N] 29470023 C 0116
|
||
00000000 C 0116
|
||
THE PROCEDURE ANT1 MUST BE DECLARED PRIOR TO KIDEAL. ; 29470024 C 0116
|
||
00000000 C 0116
|
||
VALUE T, P, N, CALCPT, CALCPP ; 29470025 C 0116
|
||
INTEGER N ; 29470026 C 0116
|
||
BOOLEAN CALCPT, CALCPP ; 29470027 C 0116
|
||
REAL T, P ; 29470028 C 0116
|
||
ARRAY K[0], PKT[0], PKP[0] ; 29470029 C 0116
|
||
00000000 C 0116
|
||
BEGIN 29470030 C 0116
|
||
INTEGER I ; 29470031 C 0116
|
||
START OF SEGMENT ********** 8
|
||
REAL TRS1 ; 29470032 C 0000
|
||
00000000 C 0000
|
||
TRS1 ~ 1.0/P ; 29470033 C 0000
|
||
FOR I ~ 1 STEP 1 UNTIL N DO 29470034 C 0001
|
||
BEGIN 29470035 C 0003
|
||
00000000 C 0003
|
||
COMMENT ENTER THE ANT1 PROCEDURE TO CALCULATE THE VAPOR PRESSURE 29470036 C 0003
|
||
AND ITS TEMPERATURE DERIVATIVE FOR EACH COMPONENT. ; 29470037 C 0003
|
||
ANT1 (T, CALCPT, KC2[I,*], K[I], PKT[I] ) ; 29470038 C 0003
|
||
00000000 C 0011
|
||
COMMENT CALCULATE THE COMPONENT K-RATIOS. ; 29470039 C 0011
|
||
K[I] ~ K[I] | TRS1 ; 29470040 C 0011
|
||
00000000 C 0013
|
||
COMMENT IF CALCPT IS TRUE, CALCULATE THE COMPONENT T DERIVATIVES 29470041 C 0013
|
||
OF THE K-RATIOS. ; 29470042 C 0013
|
||
IF CALCPT THEN 29470043 C 0013
|
||
PKT[I] ~ PKT[I] | TRS1 ; 29470044 C 0013
|
||
00000000 C 0015
|
||
COMMENT IF CALCPP IS TRUE, CALCULATE THE COMPONENT P DERIVATIVES 29470045 C 0015
|
||
OF THE K-RATIOS. ; 29470046 C 0015
|
||
IF CALCPP THEN 29470047 C 0015
|
||
PKP[I] ~ -K[I] | TRS1 29470048 C 0016
|
||
END 29470049 C 0017
|
||
00000000 C 0018
|
||
END KIDEAL ; 29470050 C 0018
|
||
8 IS 24 LONG, NEXT SEG 2
|
||
PROCEDURE KPOLY (T, N, CALCPT, K, PKT) ; 27870001 C 0116
|
||
00000000 C 0116
|
||
COMMENT RELATIVE VOLATILITY K-RATIO PROCEDURE. 27870002 C 0116
|
||
BY DONALD L. VOSS 27870003 C 0116
|
||
PROFESSIONAL SERVICES GROUP, BURROUGHS CORPORATION 27870004 C 0116
|
||
CARD SEQUENCE CODE STARTS WITH KPYP0001 27870005 C 0116
|
||
FIRST RELEASE DATE: 5-5-63 27870006 C 0116
|
||
00000000 C 0116
|
||
THIS PROCEDURE CALCULATES VAPOR-LIQUID EQUILIBRIUM 27870007 C 0116
|
||
K-RATIOS (Y/X) AND THEIR DERIVATIVES WITH RESPECT TO 27870008 C 0116
|
||
TEMPERATURE BY MEANS OF A RELATIVE VOLATILITY EQUATION. 27870009 C 0116
|
||
THE REFERENCE COMPONENT K-RATIO IS CALCULATED BY MEANS 27870010 C 0116
|
||
OF A FOURTH DEGREE POLYNOMIAL IN TEMPERATURE. A SECOND 27870011 C 0116
|
||
DEGREE POLYNOMIAL IS USED FOR THE RELATIVE VOLATILITIES 27870012 C 0116
|
||
OF THE OTHER COMPONENTS. 27870013 C 0116
|
||
00000000 C 0116
|
||
THE INPUT PARAMETERS ARE 27870014 C 0116
|
||
T - TEMPERATURE, F. - REAL 27870015 C 0116
|
||
N - NUMBER OF COMPONENTS - INTEGER 27870016 C 0116
|
||
CALCPT - BOOLEAN. IF TRUE, CALCULATE PKT. 27870017 C 0116
|
||
00000000 C 0116
|
||
IN ADDITION, THE VARIABLES KC4 AND KC5 ARE NON-LOCAL TO 27870018 C 0116
|
||
KPOLY. 27870019 C 0116
|
||
KC4 - REFERENCE COMPONENT K-RATIO COEFFICIENTS - REAL 27870020 C 0116
|
||
ARRAY [0:5] 27870021 C 0116
|
||
KC5 - RELATIVE VOLATILITY COEFFICIENTS OF COMPONENTS - 27870022 C 0116
|
||
REAL ARRAY [0:N,0:3] 27870023 C 0116
|
||
00000000 C 0116
|
||
THE OUTPUT PARAMETERS ARE 27870024 C 0116
|
||
K - COMPONENT K-RATIO - REAL ARRAY [0:N] 27870025 C 0116
|
||
PKT - T DERIVATIVE OF K - REAL ARRAY [0:N] ; 27870026 C 0116
|
||
00000000 C 0116
|
||
VALUE T, N, CALCPT ; 27870027 C 0116
|
||
INTEGER N ; 27870028 C 0116
|
||
BOOLEAN CALCPT ; 27870029 C 0116
|
||
REAL T ; 27870030 C 0116
|
||
ARRAY K[0], PKT[0] ; 27870031 C 0116
|
||
00000000 C 0116
|
||
BEGIN 27870032 C 0116
|
||
INTEGER I ; 27870033 C 0116
|
||
START OF SEGMENT ********** 9
|
||
REAL TRS1, KR, PKRT1, RV ; 27870034 C 0000
|
||
00000000 C 0000
|
||
COMMENT CALCULATE THE K-RATIO OF THE REFERENCE COMPONENT, KR. ; 27870035 C 0000
|
||
TRS1 ~ 0.01 | T ; 27870036 C 0000
|
||
KR ~ (((KC4[5] | TRS1 + KC4[4]) | TRS1 + KC4[3]) | TRS1 + 27870037 C 0001
|
||
KC4[2]) | TRS1 + KC4[1] ; 27870038 C 0004
|
||
00000000 C 0007
|
||
COMMENT CALCULATE THE TEMPERATURE DERIVATIVE OF KR, MULTIPLIED BY 27870039 C 0007
|
||
100.0, IF CALCPT IS TRUE. ; 27870040 C 0007
|
||
IF CALCPT THEN 27870041 C 0007
|
||
PKRT1 ~ ((KC4[5] | TRS1 | 4.0 + KC4[4] | 3.0) | TRS1 + 27870042 C 0007
|
||
KC4[3] | 2.0) | TRS1 + KC4[2] ; 27870043 C 0011
|
||
00000000 C 0014
|
||
COMMENT CALCULATE THE COMPONENT K-RATIOS AND, IF CALCPT IS TRUE, 27870044 C 0014
|
||
THEIR TEMPERATURE DERIVATIVES. ; 27870045 C 0014
|
||
FOR I ~ 1 STEP 1 UNTIL N DO 27870046 C 0014
|
||
BEGIN 27870047 C 0019
|
||
RV ~ (KC5[I,3] | TRS1 + KC5[I,2]) | TRS1 + KC5[I,1] ; 27870048 C 0019
|
||
K[I] ~ KR | RV ; 27870049 C 0024
|
||
IF CALCPT THEN 27870050 C 0026
|
||
PKT[I] ~ ((KC5[I,3] | TRS1 | 2.0 + KC5[I,2]) | KR + 27870051 C 0026
|
||
RV | PKRT1) | 0.01 27870052 C 0032
|
||
END 27870053 C 0033
|
||
00000000 C 0034
|
||
END KPOLY ; 27870054 C 0034
|
||
9 IS 42 LONG, NEXT SEG 2
|
||
PROCEDURE KWATER (T, P, CALCPT, CALCPP, KW, PVW, XW, PKWT, PKWP, 26970001 C 0116
|
||
PPVWT, PXWT) ; 26970002 C 0116
|
||
00000000 C 0116
|
||
COMMENT PROCEDURE FOR K-RATIO OF WATER DISSOLVED IN HYDROCARBONS. 26970003 C 0116
|
||
BY A. PAUL OLESON AND DONALD L. VOSS 26970004 C 0116
|
||
PROFESSIONAL SERVICES GROUP, BURROUGHS CORPORATION 26970005 C 0116
|
||
FIRST RELEASE DATE: 5-5-63 26970006 C 0116
|
||
00000000 C 0116
|
||
THIS PROCEDURE CALCULATES THE FOLLOWING QUANTITIES FOR 26970007 C 0116
|
||
WATER: VAPOR-LIQUID EQUILIBRIUM RATIO (KW OR Y/X), VAPOR 26970008 C 0116
|
||
PRESSURE, MOLE FRACTION OF WATER DISSOLVED IN THE HYDRO- 26970009 C 0116
|
||
CARBON PHASE, THE DERIVATIVES OF THESE QUANTITIES WITH 26970010 C 0116
|
||
RESPECT TO TEMPERATURE, AND THE DERIVATIVE OF KW WITH 26970011 C 0116
|
||
RESPECT TO PRESSURE. THE K-RATIO OF WATER IS CALCULATED 26970012 C 0116
|
||
BY ASSUMING IDEAL VAPOR BEHAVIOR AND USING AN EMPIRICAL 26970013 C 0116
|
||
CORRELATION FOR THE WATER SOLUBILITY. 26970014 C 0116
|
||
00000000 C 0116
|
||
THE INPUT PARAMETERS ARE 26970015 C 0116
|
||
T - TEMPERATURE, F. - REAL 26970016 C 0116
|
||
P - PRESSURE, PSIA - REAL 26970017 C 0116
|
||
CALCPT - BOOLEAN. IF TRUE, CALCULATE PKWT, PPVWT, AND 26970018 C 0116
|
||
PXWT. 26970019 C 0116
|
||
CALCPP - BOOLEAN. IF TRUE, CALCULATE PKWP. 26970020 C 0116
|
||
00000000 C 0116
|
||
ALSO, THE VARIABLES KC3 AND KC6 ARE NON-LOCAL. 26970021 C 0116
|
||
KC3 - WATER VAPOR PRESSURE COEFFIENTS - REAL ARRAY [0:3]. 26970022 C 0116
|
||
KC3 IS USED AS ANTC IN THE ANT1 PROCEDURE. 26970023 C 0116
|
||
KC6 - COEFFICIENTS FOR THE SOLUBILITY OF WATER IN HYDRO- 26970024 C 0116
|
||
CARBONS - REAL ARRAY [0:3]. KC6 IS USED AS ANTC 26970025 C 0116
|
||
IN THE ANT1 PROCEDURE. 26970026 C 0116
|
||
00000000 C 0116
|
||
THE OUTPUT PARAMETERS ARE 26970027 C 0116
|
||
KW - VAPOR-LIQUID EQUILIBRIUM RATIO (Y/X) OF WATER - 26970028 C 0116
|
||
REAL 26970029 C 0116
|
||
PVW - VAPOR PRESSURE OF WATER, PSIA 26970030 C 0116
|
||
XW - MOLE FRACTION OF WATER DISSOLVED IN HYDROCARBON 26970031 C 0116
|
||
PHASE - REAL 26970032 C 0116
|
||
PKWT - T DERIVATIVE OF KW - REAL 26970033 C 0116
|
||
PKWP - P DERIVATIVE OF KW - REAL 26970034 C 0116
|
||
PPVWT - T DERIVATIVE OF PVW - REAL 26970035 C 0116
|
||
PXWT - T DERIVATIVE OF XW - REAL 26970036 C 0116
|
||
00000000 C 0116
|
||
THE ANT1 PROCEDURE MUST BE DECLARED PRIOR TO KWATER ; 26970037 C 0116
|
||
00000000 C 0116
|
||
VALUE T, P, CALCPT, CALCPP ; 26970038 C 0116
|
||
BOOLEAN CALCPT, CALCPP ; 26970039 C 0116
|
||
REAL T, P, KW, PVW, XW, PKWT, PKWP, PPVWT, PXWT ; 26970040 C 0116
|
||
00000000 C 0116
|
||
BEGIN 26970041 C 0116
|
||
00000000 C 0116
|
||
COMMENT ENTER THE ANT1 PROCEDURE TO CALCULATE THE VAPOR PRESSURE 26970042 C 0116
|
||
OF WATER, AND ITS TEMPERATURE DERIVATIVE. ; 26970043 C 0116
|
||
ANT1 (T, CALCPT, KC3, PVW, PPVWT) ; 26970044 C 0116
|
||
00000000 C 0119
|
||
COMMENT ENTER THE ANT1 PROCEDURE TO CALCULATE THE SOLUBILITY OF 26970045 C 0119
|
||
WATER IN HYDROCARBONS, AND ITS TEMPERATURE DERIVATIVE. ; 26970046 C 0119
|
||
ANT1 (T, CALCPT, KC6, XW, PXWT) ; 26970047 C 0119
|
||
00000000 C 0122
|
||
COMMENT CALCULATE THE K-RATIO OF WATER. ; 26970048 C 0122
|
||
KW ~ PVW/(P | XW) ; 26970049 C 0122
|
||
00000000 C 0124
|
||
COMMENT IF CALCPT IS TRUE, CALCULATE THE T DERIVATIVE OF KW. ; 26970050 C 0124
|
||
IF CALCPT THEN 26970051 C 0124
|
||
PKWT ~ (-PXWT/XW + PPVWT/PVW) | KW ; 26970052 C 0124
|
||
00000000 C 0128
|
||
COMMENT IF CALCPP IS TRUE, CALCULATE THE P DERIVATIVE OF KW. ; 26970053 C 0128
|
||
IF CALCPP THEN 26970054 C 0128
|
||
PKWP ~ -KW/P 26970055 C 0128
|
||
00000000 C 0130
|
||
END KWATER ; 26970056 C 0130
|
||
PROCEDURE KPICKW (T, P, PICKK, CALCPT, CALCPP, CALCPDC, K, PKT, PKP, 27670001 C 0131
|
||
PVW, XW, PPVWT, PXWT) ; 27670002 C 0131
|
||
00000000 C 0131
|
||
COMMENT THIS PROCEDURE TIES TOGETHER THE PROCEDURES KNGAA, KIDEAL, 27670003 C 0131
|
||
KPOLY, PHIPART, AND KWATER FOR THE PURPOSE OF CALCULATING 27670004 C 0131
|
||
K-RATIOS AND THEIR DERIVATIVES. 27670005 C 0131
|
||
BY DONALD L. VOSS 27670006 C 0131
|
||
PROFESSIONAL SERVICES GROUP, BURROUGHS CORPORATION 27670007 C 0131
|
||
CARD SEQUENCE CODE STARTS WITH KPWP0001. 27670008 C 0131
|
||
00000000 C 0131
|
||
FIRST RELEASE DATE 5-5-63 27670009 C 0131
|
||
THE INPUT PARAMETERS ARE 27670010 C 0131
|
||
T - TEMPERATURE, F - REAL 27670011 C 0131
|
||
P - PRESSURE, PSIA - REAL 27670012 C 0131
|
||
PICKK - NO. OF COMPONENTS FOR EACH OPTION - INTEGER ARRAY 27670013 C 0131
|
||
[0:6]. 27670014 C 0131
|
||
PICKK[1] - NO. USING KNGAA 27670015 C 0131
|
||
PICKK[2] - NO. USING KIDEAL 27670016 C 0131
|
||
PICKK[3] - NO. USING KPOLY 27670017 C 0131
|
||
PICKK[4] - NO. USING PHIPART 27670018 C 0131
|
||
PICKK[5] - NO. WHOSE K VALUES ARE GIVEN IN KC12[] 27670019 C 0131
|
||
PICKK[6] - =1 TO CALCULATE FOR WATER DISSOLVED IN A 27670020 C 0131
|
||
HYDROCARBON PHASE. =0 IF NOT. 27670021 C 0131
|
||
CALCPT - BOOLEAN. IF TRUE, CALCULATE PKT. 27670022 C 0131
|
||
CALCPP - BOOLEAN. IF TRUE, CALCULATE PKP. 27670023 C 0131
|
||
CALCPDC - BOOLEAN. IF TRUE, CALCULATE THE PRESSURE 27670024 C 0131
|
||
DEPENDENT COEFFICIENTS IN KNGAA. FOR CALCPDC = TRUE, 27670025 C 0131
|
||
P(LAST ENTRY) MUST EQUAL P(PRESENT ENTRY). 27670026 C 0131
|
||
00000000 C 0131
|
||
IN ADDITION, THE KC- VARIABLES ARE NON-LOCAL TO KPICK. 27670027 C 0131
|
||
KC1 - N.G.A.A. COEFFICIENTS FOR KNGAA - REAL ARRAY [0: 27670028 C 0131
|
||
PICKK[1],0:28] 27670029 C 0131
|
||
KC2 - VAPOR PRESSURE COEFFICIENTS FOR KIDEAL - REAL 27670030 C 0131
|
||
ARRAY[0:PICKK[2],0:3] 27670031 C 0131
|
||
KC3 - WATER VAPOR PRESSURE COEFFICIENTS FOR KWATER - 27670032 C 0131
|
||
REAL ARRAY [0:3] 27670033 C 0131
|
||
KC6 - COEFFICIENTS FOR THE SOLUBILITY OF WATER IN 27670034 C 0131
|
||
HYDROCARBONS FOR KWATER - REAL ARRAY [0:3] 27670035 C 0131
|
||
KC4 - REFERENCE COMPONENT K COEFFICIENTS FOR KPOLY - 27670036 C 0131
|
||
REAL ARRAY [0:5] 27670037 C 0131
|
||
KC5 - RELATIVE VOLATILITY COEFFICIENTS FOR KPOLY - REAL 27670038 C 0131
|
||
ARRAY [0:PICKK[3],0:3] 27670039 C 0131
|
||
KC7 - COMPONENT V VALUES IN PHIPART - INTEGER ARRAY 27670040 C 0131
|
||
[0:PICKK[4]] 27670041 C 0131
|
||
KC8 - COMPONENT ALEPH VALUES IN PHIPART - REAL ARRAY 27670042 C 0131
|
||
[0:PICKK[4],0:MAX KC7[],0:MAX KC11[] ] 27670043 C 0131
|
||
KC9 - COMPONENT BETA VALUES IN PHIPART - REAL ARRAY 27670044 C 0131
|
||
[0:PICKK[4],0:MAX KC7[],0:MAX KC11[] ] 27670045 C 0131
|
||
KC10 - COMPONENT COEFF VALUES IN PHIPART - REAL ARRAY 27670046 C 0131
|
||
[0:PICKK[4],0:MAX (KC11[I]+1) ... (KC11[V]+1) ] 27670047 C 0131
|
||
KC11 - COMPONENT P VALUES IN PHIPART - INTEGER ARRAY 27670048 C 0131
|
||
[0:PICKK[4],0:MAX KC7[] ] 27670049 C 0131
|
||
IN PHIPART, THE INDEPENDENT VARIABLES ARE T OR T AND P. 27670050 C 0131
|
||
KC12 - GIVEN VALUES OF COMPONENT K RATIOS - REAL ARRAY 27670051 C 0131
|
||
[0:PICKK[5] ] 27670052 C 0131
|
||
00000000 C 0131
|
||
THE OUTPUT PARAMETERS ARE 27670053 C 0131
|
||
K - COMPONENT K-RATIOS (Y/X) - REAL ARRAY [0:N], 27670054 C 0131
|
||
WHERE N IS THE TOTAL NUMBER OF COMPONENTS. 27670055 C 0131
|
||
PKT - COMPONENT T DERIVATIVES OF K - REAL ARRAY [0:N] 27670056 C 0131
|
||
PKP - COMPONENT P DERIVATIVES OF K - REAL ARRAY [0:N] - 27670057 C 0131
|
||
(NOT INCLUDED FOR KPOLY) 27670058 C 0131
|
||
PVW - VAPOR PRESSURE OF WATER, PSIA - REAL 27670059 C 0131
|
||
XW - MOLE FRACTION OF WATER DISSOLVED IN HYDROCARBON 27670060 C 0131
|
||
PHASE - REAL 27670061 C 0131
|
||
PPVWT - T DERIVATIVE OF PVW - REAL 27670062 C 0131
|
||
PXWT - T DERIVATIVE OF XW - REAL 27670063 C 0131
|
||
00000000 C 0131
|
||
THE INPUT AND OUTPUT COMPONENT ARRAYS ARE ARRANGED 27670064 C 0131
|
||
ACCORDING TO THE PICKK[] ORDER. 27670065 C 0131
|
||
THE PROCEDURES KNGAA, KIDEAL, KPOLY, PHIPART, ANT1, AND 27670066 C 0131
|
||
KWATER MUST BE DECLARED PRIOR TO KPICKW. 27670067 C 0131
|
||
THE PROCEDURE ANT1 MUST BE DECLARED PRIOR TO KIDEAL AND 27670068 C 0131
|
||
KWATER. ; 27670069 C 0131
|
||
00000000 C 0131
|
||
VALUE T, P, CALCPT, CALCPP, CALCPDC ; 27670070 C 0131
|
||
REAL T, P, PVW, XW, PPVWT, PXWT ; 27670071 C 0131
|
||
BOOLEAN CALCPT, CALCPP, CALCPDC ; 27670072 C 0131
|
||
ARRAY K[0], PKT[0], PKP[0] ; 27670073 C 0131
|
||
INTEGER ARRAY PICKK[0] ; 27670074 C 0131
|
||
00000000 C 0131
|
||
BEGIN 27670075 C 0131
|
||
INTEGER NF1, NF2, NF3, NF4, NF5, I, E, J, U, KC7E, KC11E ; 27670076 C 0131
|
||
START OF SEGMENT ********** 10
|
||
BOOLEAN ARRAY S[0:2] ; 27670077 C 0000
|
||
REAL ARRAY DATA, SUM[0:2] ; 27670078 C 0001
|
||
00000000 C 0003
|
||
COMMENT SET UP ITERATION LIST VARIABLES ; 27670079 C 0003
|
||
NF1 ~ PICKK[1] + PICKK[2] ; NF2 ~ PICKK[3] + NF1 ; 27670080 C 0003
|
||
NF3 ~ PICKK[4] + NF2 ; NF4 ~ PICKK[5] + NF3 ; 27670081 C 0007
|
||
NF5 ~ PICKK[6] + NF4 ; 27670082 C 0010
|
||
00000000 C 0011
|
||
COMMENT KWATER VALUES ; 27670083 C 0011
|
||
IF PICKK[6] = 1 THEN 27670084 C 0011
|
||
KWATER (T, P, CALCPT, CALCPP, K[NF5], PVW, XW, PKT[NF5], 27670085 C 0012
|
||
PKP[NF5], PPVWT, PXWT) ; 27670086 C 0020
|
||
00000000 C 0025
|
||
COMMENT K-RATIOS GIVEN IN KC12[] ; 27670087 C 0025
|
||
IF PICKK[5] > 0 THEN 27670088 C 0025
|
||
FOR I ~ NF3+1 STEP 1 UNTIL NF4 DO 27670089 C 0026
|
||
BEGIN 27670090 C 0030
|
||
E ~ I - NF3 ; K[I] ~ KC12[E] 27670091 C 0030
|
||
END ; 27670092 C 0032
|
||
00000000 C 0034
|
||
COMMENT PHIPART VALUES ; 27670093 C 0034
|
||
IF PICKK[4] > 0 THEN 27670094 C 0034
|
||
BEGIN 27670095 C 0035
|
||
DATA[1] ~ T ; DATA[2] ~ P ; 27670096 C 0035
|
||
S[1] ~ S[2] ~ FALSE ; 27670097 C 0038
|
||
IF CALCPT THEN S[1] ~ TRUE ; 27670098 C 0040
|
||
IF CALCPP THEN S[2] ~ TRUE ; 27670099 C 0042
|
||
FOR I ~ NF2 + 1 STEP 1 UNTIL NF3 DO 27670100 C 0044
|
||
BEGIN 27670101 C 0048
|
||
E ~ I - NF2 ; KC7E ~ KC7[E] ; 27670102 C 0048
|
||
IF KC11[E,1] > KC11[E,2] THEN KC11E ~ KC11[E,1] 27670103 C 0050
|
||
ELSE KC11E ~ KC11[E,2] ; 27670104 C 0055
|
||
BEGIN 27670105 C 0058
|
||
REAL ARRAY ALEPH, BETA[0:2,0:KC11E] ; 27670106 C 0058
|
||
START OF SEGMENT ********** 11
|
||
FOR J ~ 1 STEP 1 UNTIL KC7E DO 27670107 C 0004
|
||
FOR U ~ 1 STEP 1 UNTIL KC11E DO 27670108 C 0006
|
||
BEGIN 27670109 C 0007
|
||
ALEPH[J,U] ~ KC8[E,J,U] ; BETA[J,U] ~ KC9[E,J,U] 27670110 C 0007
|
||
END ; 27670111 C 0013
|
||
PHIPART (KC7[E], DATA, ALEPH, BETA, KC10[E,*], KC11[E,*], 27670112 C 0019
|
||
S, K[I], SUM) ; 27670113 C 0024
|
||
IF CALCPT THEN PKT[I] ~ SUM[1] ; 27670114 C 0028
|
||
IF CALCPP THEN PKP[I] ~ SUM[2] 27670115 C 0031
|
||
END 27670116 C 0032
|
||
END 27670117 C 0033
|
||
11 IS 37 LONG, NEXT SEG 10
|
||
END ; 27670118 C 0059
|
||
00000000 C 0059
|
||
COMMENT KPOLY VALUES ; 27670119 C 0059
|
||
IF PICKK[3] > 0 THEN 27670120 C 0059
|
||
BEGIN 27670121 C 0060
|
||
KPOLY (T, PICKK[3], CALCPT, K, PKT) ; 27670122 C 0061
|
||
FOR I ~ NF1+1 STEP 1 UNTIL NF2 DO 27670123 C 0064
|
||
BEGIN 27670124 C 0068
|
||
E ~ I - NF1 ; K[I] ~ K[E] ; 27670125 C 0068
|
||
IF CALCPT THEN PKT[I] ~ PKT[E] 27670126 C 0071
|
||
END 27670127 C 0072
|
||
END ; 27670128 C 0073
|
||
00000000 C 0073
|
||
COMMENT KIDEAL VALUES ; 27670129 C 0073
|
||
IF PICKK[2] > 0 THEN 27670130 C 0073
|
||
BEGIN 27670131 C 0074
|
||
KIDEAL (T, P, PICKK[2], CALCPT, CALCPP, K, PKT, PKP) ; 27670132 C 0075
|
||
FOR I ~ PICKK[1]+1 STEP 1 UNTIL NF1 DO 27670133 C 0079
|
||
BEGIN 27670134 C 0084
|
||
E ~ I - PICKK[1] ; K[I] ~ K[E] ; 27670135 C 0084
|
||
IF CALCPT THEN PKT[I] ~ PKT[E] ; 27670136 C 0087
|
||
IF CALCPP THEN PKP[I] ~ PKP[E] 27670137 C 0089
|
||
END 27670138 C 0090
|
||
END ; 27670139 C 0091
|
||
00000000 C 0092
|
||
COMMENT KNGAA VALUES ; 27670140 C 0092
|
||
IF PICKK[1] > 0 THEN 27670141 C 0092
|
||
KNGAA (T, P, PICKK[1], CALCPDC, CALCPT, CALCPP, K, PKT, 27670142 C 0093
|
||
PKP) 27670143 C 0097
|
||
00000000 C 0097
|
||
END KPICKW ; 27670144 C 0097
|
||
10 IS 105 LONG, NEXT SEG 2
|
||
00000000 C 0131
|
||
PROCEDURE FLASHW (Z, PICKK, B, LIMITFW, CALCPDC, T, P, VDF, S, 63860001 C 0131
|
||
X, Y) ; 63860002 C 0131
|
||
63860003 C 0131
|
||
COMMENT PROCEDURE FOR GENERAL NONADIABATIC FLASH CALCULATIONS 63860004 C 0131
|
||
FOR HYDROCARBON MIXTURES CONTAINING WATER. A SEPARATE 63860005 C 0131
|
||
PURE LIQUID WATER PHASE IS CONSIDERED. 63860006 C 0131
|
||
THIS PROCEDURE COMPUTES THE TEMPERATURE OR PRESSURE OR 63860007 C 0131
|
||
THE VAPOR-TO-FEED MOL RATIO FOR SPECIFIED VALUES OF THE 63860008 C 0131
|
||
OTHER TWO VARIABLES. THE FRACTION OF LIQUID WATER, S, 63860009 C 0131
|
||
IS CALCULATED AS A FUNCTION OF THESE VARIABLES. 63860010 C 0131
|
||
63860011 C 0131
|
||
A. PAUL OLESON 63860012 C 0131
|
||
PROFESSIONAL SERVICES GROUP, BURROUGHS CORP. 63860013 C 0131
|
||
CARD SEQUENCE STARTS WITH FLHW0001. 63860014 C 0131
|
||
DATE OF FIRST ISSUE 12-1-63 . 63860015 C 0131
|
||
63860016 C 0131
|
||
THE INPUT PARAMETERS ARE 63860017 C 0131
|
||
63860018 C 0131
|
||
T - TEMPERATURE, F., REAL. 63860019 C 0131
|
||
P - PRESSURE, PSIA, REAL. 63860020 C 0131
|
||
VDF - VAPOR TO FEED MOL RATIO, REAL. 63860021 C 0131
|
||
Z - FEED COMPOSITION, MOL FRACTIONS, REAL ARRAY. 63860022 C 0131
|
||
PICKK - SELECTORS OF K-RATIO CORRELATIONS, INTEGER ARRAY 63860023 C 0131
|
||
SEE KPICKW PROCEDURE, PTS- . 63860024 C 0131
|
||
CALCPDC - INSTRUCTION TO CALCULATE PRESSURE DEPENDENT 63860025 C 0131
|
||
COEFFICIENTS IN NGAA K-RATIO PROCEDURE (PTS- ), 63860026 C 0131
|
||
BOOLEAN. TRUE IF REQUIRED. 63860027 C 0131
|
||
B - PROBLEM TYPE, BOOLEAN ARRAY, 63860028 C 0131
|
||
B[1] - TRUE IF WATER IS PRESENT, 63860029 C 0131
|
||
B[2] - TRUE IF CALCULATING TEMPERATURE. 63860030 C 0131
|
||
B[3] - TRUE IF CALCULATING PRESSURE. 63860031 C 0131
|
||
B[4] - TRUE IF CALCULATING VAPOR TO FEED RATIO. 63860032 C 0131
|
||
LIMITFW - BOUNDS ON TEMPERATURE AND PRESSURE, ARRAY 63860033 C 0131
|
||
LIMITFW[1] - MIN. T 63860034 C 0131
|
||
LIMITFW[2] - MAX. T 63860035 C 0131
|
||
LIMITFW[3] - MIN. P 63860036 C 0131
|
||
LIMITFW[4] - MAX. P 63860037 C 0131
|
||
63860038 C 0131
|
||
GLOBAL INPUT PARAMETERS INCLUDE 63860039 C 0131
|
||
KC1 THROUGH KC12, COEFFIENTS FOR THE VARIOUS K-RATIO 63860040 C 0131
|
||
CORRELATIONS. SEE PTS-041 FOR DETAILS. 63860041 C 0131
|
||
63860042 C 0131
|
||
OUTPUT PARAMETERS ARE 63860043 C 0131
|
||
T - TEMPERATURE, F., REAL, 63860044 C 0131
|
||
P - PRESSURE, PSIA, REAL. 63860045 C 0131
|
||
VDF - VAPOR TO FEED MOL RATIO, REAL. 63860046 C 0131
|
||
S - MOL RATIO OF PURE LIQUID WATER TO FEED. 63860047 C 0131
|
||
X - COMPOSITION OF LIQUID HYDROCARBON PHASE, MOL 63860048 C 0131
|
||
FRACTION, REAL ARRAY. 63860049 C 0131
|
||
Y - COMPOSITION OF VAPOR PHASE, MOL FRACTIONS, REAL 63860050 C 0131
|
||
ARRAY. 63860051 C 0131
|
||
THE REFERENCE LABEL IS 63860052 C 0131
|
||
ERRORFW - LABEL OUTSIDE PROCEDURE ; 63860053 C 0131
|
||
63860054 C 0131
|
||
VALUE CALCPDC ; 63860055 0131
|
||
BOOLEAN CALCPDC ; 27720111 C 0131
|
||
BOOLEAN ARRAY B[0] ; 27720112 C 0131
|
||
INTEGER ARRAY PICKK[0] ; 27720113 C 0131
|
||
REAL T, P, VDF, S ; 27720114 C 0131
|
||
ARRAY Z, LIMITFW, X, Y[0] ; 27720115 C 0131
|
||
27720116 C 0131
|
||
BEGIN 27720117 C 0131
|
||
LABEL FLW1, L1, L2, L3, FLW2, FLW3 ; 27720118 C 0131
|
||
START OF SEGMENT ********** 12
|
||
INTEGER NW, I, NL ; 27720119 C 0000
|
||
BOOLEAN B0, B1, B2, B3, B4, B5, B6, B7, B8 ; 27720120 C 0000
|
||
REAL STS1, STS2, XW, XW1, PVW, PVW1, G, ER, E, PGE, PGS, PSE, 27720121 C 0000
|
||
27720122 C 0000
|
||
PXWT ; 27720123 C 0000
|
||
ARRAY HK, PKT, PKP, K[0:20] ; 27720124 C 0000
|
||
27720125 C 0002
|
||
REAL PROCEDURE FT (A) ; 27720126 C 0002
|
||
VALUE A ; 27720127 C 0002
|
||
REAL A ; 27720128 C 0002
|
||
BEGIN 27720129 C 0002
|
||
FT ~ - KC3[2] / (LN(A) - KC3[1]) - KC3[3] 27720130 C 0002
|
||
END FT ; 27720131 C 0005
|
||
27720132 C 0009
|
||
REAL PROCEDURE FUNC (I,EA,EB,EC,HK,Z,VDF,S) ; 27720133 C 0009
|
||
VALUE I, EA, EB, EC, VDF, S ; 63860079 0009
|
||
INTEGER I, EA, EB, EC ; 27720159 C 0009
|
||
REAL VDF, S ; 27720160 C 0009
|
||
ARRAY Z, HK[0] ; 27720161 C 0009
|
||
BEGIN 27720162 C 0009
|
||
FUNC ~ HK[I]*EA | Z[I]*EC / (HK[I] | VDF + 1.0 - S)*EB 27720163 C 0009
|
||
END FUNC ; 27720164 C 0017
|
||
27720165 C 0023
|
||
COMMENT SUM NUMBER OF COMPONENTS FROM PICKK ARRAY ; 27720166 C 0023
|
||
27720167 C 0023
|
||
NW ~ 0 ; FOR I ~ 1 STEP 1 UNTIL 6 DO NW ~ PICKK[I] + NW ; 27720168 C 0023
|
||
B0 ~ (VDF = 0.0) ; B1 ~ (VDF = 1.0) ; 27720169 C 0026
|
||
B2 ~ B3 ~ B4 ~ B5 ~ B6 ~ B7 ~ B8 ~ FALSE ; 27720170 C 0032
|
||
FLW1: KPICKW (T, P, PICKK, B[2], B[3], CALCPDC, K, PK, PK, 27720171 C 0036
|
||
PVW, XW, STS1, PXWT) ; 27720172 C 0041
|
||
IF B[2] THEN CALCPDC ~ FALSE ELSE CALCPDC ~ TRUE ; 27720173 C 0042
|
||
XW1 ~ 1.0 - XW ; 27720174 C 0046
|
||
FOR I ~ 1 STEP 1 UNTIL NW DO HK[I] ~ K[I] - 1.0 ; 27720175 C 0048
|
||
27720176 C 0054
|
||
COMMENT IF CALCULATING VDF, CHECK IF 0 { VDF { (1 - S) ; 27720177 C 0054
|
||
27720178 C 0054
|
||
L1 : IF B[4] THEN 27720179 C 0054
|
||
BEGIN 27720180 C 0055
|
||
STS1 ~ STS2 ~ 0 ; 27720181 C 0056
|
||
FOR I ~ 1 STEP 1 UNTIL NW DO 27720182 C 0057
|
||
BEGIN 27720183 C 0059
|
||
STS1 ~ Z[I] / K[I] + STS1 ; STS2 ~ Z[I] | K[I] + STS2 27720184 C 0059
|
||
END ; 27720185 C 0062
|
||
IF B[1] AND (Z[NW] > XW) THEN 27720186 C 0065
|
||
BEGIN 27720187 C 0067
|
||
S ~ (Z[NW] - XW) / XW1 ; 27720188 C 0068
|
||
STS2 ~ -HK[NW] | S + STS2 27720189 C 0070
|
||
END 27720190 C 0071
|
||
ELSE S ~ 0 ; 27720191 C 0072
|
||
B0 ~ (STS2 { 1.0) ; B1 ~ (STS1 { 1.0) ; 27720192 C 0074
|
||
L2 : IF B1 THEN 27720193 C 0076
|
||
BEGIN 27720194 C 0077
|
||
27720195 C 0077
|
||
COMMENT TEST IF ONLY VAPOR AND LIQUID WATER ARE PRESENT ; 27720196 C 0077
|
||
27720197 C 0077
|
||
L3 : IF B[1] AND (Z[NW] > (PVW / P)) THEN 27720198 C 0077
|
||
BEGIN 27720199 C 0080
|
||
STS1 ~ HK[NW] | (Z[NW] | P - PVW) / (K[NW] | (P - PVW)) 27720200 C 0080
|
||
+ STS1 ; 27720201 C 0084
|
||
B2 ~ B1 ~ (STS1 < 1.0) ; 27720202 C 0085
|
||
IF B1 THEN 27720203 C 0087
|
||
BEGIN 27720204 C 0087
|
||
S ~ (Z[NW] | P - PVW) / (P - PVW) ; VDF ~ 1.0 - S 27720205 C 0088
|
||
END 27720206 C 0092
|
||
27720207 C 0093
|
||
COMMENT OTHERWISE LIQUID WATER CANNOT BE PRESENT ; 27720208 C 0093
|
||
27720209 C 0093
|
||
END 27720210 C 0093
|
||
ELSE 27720211 C 0093
|
||
BEGIN 27720212 C 0093
|
||
S ~ 0 ; VDF ~ 1.0 27720213 C 0095
|
||
END ; 27720214 C 0096
|
||
27720215 C 0097
|
||
COMMENT TEST IF VAPOR IS NOT PRESENT ; 27720216 C 0097
|
||
27720217 C 0097
|
||
END ; 27720218 C 0097
|
||
IF B0 THEN VDF ~ 0.0 ; 27720219 C 0097
|
||
27720220 C 0098
|
||
COMMENT END L2 ; 27720221 C 0098
|
||
27720222 C 0098
|
||
IF (B1 OR B0) THEN GO TO FLW3 27720223 C 0098
|
||
END L1 ; 27720224 C 0099
|
||
27720225 C 0100
|
||
COMMENT COMPUTE MOL RATIO OF LIQUID WATER TO FEED ; 27720226 C 0100
|
||
27720227 C 0100
|
||
FLW2 : IF B1 OR NOT B[1] THEN S ~ 0 ELSE 27720228 C 0100
|
||
S ~ (-(HK[NW] | VDF + 1.0) | XW + Z[NW]) / XW1 ; 27720229 C 0103
|
||
B8 ~ (S > 0) ; IF NOT B8 THEN S ~ 0 ; 27720230 C 0110
|
||
IF (NOT B2 AND NOT B[4] AND ((S + VDF) > 1.0)) THEN 27720231 C 0113
|
||
BEGIN 27720232 C 0116
|
||
S ~ 1.0 - VDF ; 27720233 C 0117
|
||
IF B[2] THEN T ~ FT ((Z[NW] - S) | P / VDF) 27720234 C 0118
|
||
ELSE P ~ VDF | PVW / (Z[NW] - S) ; 27720235 C 0121
|
||
B2 ~ TRUE ; GO TO FLW1 27720236 C 0127
|
||
END ; 27720237 C 0129
|
||
27720238 C 0129
|
||
COMMENT EVALUATE FUNCTION G ; 27720239 C 0129
|
||
27720240 C 0129
|
||
G ~ 0 ; 27720241 C 0129
|
||
FOR I ~ 1 STEP 1 UNTIL NW DO G ~ FUNC(I,1,1,1,HK,Z,VDF,S) 27720242 C 0129
|
||
+ G ; 27720243 C 0134
|
||
IF B8 THEN G ~ - FUNC(NW,1,1,0,HK,Z,VDF,S) | S + G ; 27720244 C 0137
|
||
27720245 C 0143
|
||
COMMENT TEST IF TWO OR THREE PHASES ARE PRESENT ; 27720246 C 0143
|
||
27720247 C 0143
|
||
IF B2 THEN 27720248 C 0143
|
||
BEGIN 27720249 C 0144
|
||
IF G > 0 THEN 27720250 C 0144
|
||
BEGIN 27720251 C 0145
|
||
B1 ~ TRUE ; GO TO FLW3 27720252 C 0145
|
||
END 27720253 C 0147
|
||
ELSE B2 ~ FALSE 27720254 C 0147
|
||
END ; 27720255 C 0147
|
||
27720256 C 0148
|
||
COMMENT TEST IF TOLERANCE ON G IS MET ; 27720257 C 0148
|
||
27720258 C 0148
|
||
IF B[4] THEN ER ~ 10.0*(-6) ELSE ER ~ 10.0*(-3) ; 27720259 C 0148
|
||
IF ABS(G) < ER THEN 27720260 C 0156
|
||
BEGIN 27720261 C 0157
|
||
27720262 C 0158
|
||
COMMENT COMPARE DEW POINTS WITH RESPECT TO LIQUID WATER AND 27720263 C 0158
|
||
LIQUID HYDROCARBON PHASES. SELECT LOWER PRESSURE OR 27720264 C 0158
|
||
HIGHER TEMPERATURE ; 27720265 C 0158
|
||
27720266 C 0158
|
||
IF B[1] AND B1 THEN 27720267 C 0158
|
||
BEGIN 27720268 C 0159
|
||
IF B[2] THEN 27720269 C 0159
|
||
BEGIN 27720270 C 0160
|
||
T ~ FT (Z[NW] | P) ; 27720271 C 0160
|
||
IF T < E THEN T ~ E 27720272 C 0162
|
||
END 27720273 C 0164
|
||
ELSE 27720274 C 0165
|
||
BEGIN 27720275 C 0165
|
||
P ~ PVW / Z[NW] ; IF P > E THEN P ~ E 27720276 C 0167
|
||
END 27720277 C 0170
|
||
END ; 27720278 C 0171
|
||
GO TO FLW3 27720279 C 0171
|
||
END ; 27720280 C 0171
|
||
27720281 C 0171
|
||
COMMENT ADJUST E USING THE NEWTON-RAPHSON METHOD. CALCULATE THE 27720282 C 0171
|
||
DERIVATIVES FIRST ; 27720283 C 0171
|
||
27720284 C 0171
|
||
PGE ~ 0 ; 27720285 C 0171
|
||
IF B[4] THEN 27720286 C 0172
|
||
BEGIN 27720287 C 0172
|
||
E ~ VDF ; 27720288 C 0173
|
||
FOR I ~ 1 STEP 1 UNTIL NW DO 27720289 C 0174
|
||
PGE ~ - FUNC(I,2,2,1,HK,Z,VDF,S) + PGE 27720290 C 0175
|
||
END 27720291 C 0178
|
||
ELSE 27720292 C 0182
|
||
BEGIN 27720293 C 0182
|
||
IF B[2] THEN E ~ T ELSE E ~ P ; 27720294 C 0182
|
||
FOR I ~ 1 STEP 1 UNTIL NW DO 27720295 C 0185
|
||
PGE ~ FUNC(I,0,2,1,HK,Z,VDF,S) | PK[I] + PGE ; 27720296 C 0187
|
||
PGE ~ (1.0 - S) | PGE 27720297 C 0194
|
||
END ; 27720298 C 0195
|
||
27720299 C 0196
|
||
COMMENT ADJUST PGE FOR S-DEPENDENT TERMS ; 27720300 C 0196
|
||
27720301 C 0196
|
||
IF B8 THEN 27720302 C 0196
|
||
BEGIN 27720303 C 0196
|
||
PGS ~ 0 ; 27720304 C 0197
|
||
FOR I ~ 1 STEP 1 UNTIL NW DO 27720305 C 0197
|
||
PGS ~ FUNC(I,1,2,1,HK,Z,VDF,S) + PGS ; 27720306 C 0200
|
||
PGS ~ - FUNC(NW,1,2,0,HK,Z,VDF,S) | (HK[NW] | VDF + 1.0) 27720307 C 0206
|
||
+ PGS ; 27720308 C 0211
|
||
IF B[4] THEN 27720309 C 0213
|
||
BEGIN 27720310 C 0213
|
||
PSE ~ -HK[NW] | XW / XW1 ; 27720311 C 0214
|
||
PGE ~ FUNC(NW,2,2,0,HK,Z,VDF,S) | S + PGE 27720312 C 0216
|
||
END 27720313 C 0220
|
||
ELSE 27720314 C 0221
|
||
BEGIN 27720315 C 0221
|
||
PGE ~ FUNC(NW,0,2,0,HK,Z,VDF,S) | PK[NW] | (S - 1.0) | S 27720316 C 0223
|
||
+ PGE ; 27720317 C 0228
|
||
PSE ~ -PK[NW] | XW | VDF / XW1 ; 27720318 C 0229
|
||
IF B[2] THEN PSE ~ -(HK[NW] | VDF + 1.0 - S) |PXWT / XW1 27720319 C 0232
|
||
+ PSE 27720320 C 0236
|
||
END ; 27720321 C 0236
|
||
27720322 C 0237
|
||
COMMENT ADJUST DERIVATIVE OF G ; 27720323 C 0237
|
||
27720324 C 0237
|
||
PGE ~ PGS | PSE + PGE 27720325 C 0237
|
||
END ; 27720326 C 0238
|
||
27720327 C 0239
|
||
COMMENT ADJUST VALUE OF E FOR NEXT ITERATION ; 27720328 C 0239
|
||
27720329 C 0239
|
||
E ~ E - G / PGE ; 27720330 C 0239
|
||
27720331 C 0241
|
||
COMMENT TEST LIMITS. IF EXCEEDED EXIT TO REFERENCE LABEL ERRORFLW 27720332 C 0241
|
||
IN MAIN PROGRAM ; 27720333 C 0241
|
||
27720334 C 0241
|
||
IF NOT B[4] THEN 27720335 C 0241
|
||
BEGIN 27720336 C 0242
|
||
IF B[2] THEN NL ~ 0 ELSE NL ~ 2 ; 27720337 C 0242
|
||
IF E < LIMITFW[NL+1] THEN 27720338 C 0246
|
||
BEGIN 27720339 C 0248
|
||
IF B7 THEN GO TO ERRORFW ; 27720340 C 0248
|
||
E ~ LIMITFW[NL+1] ; 27720341 C 0251
|
||
IF B[3] AND B4 THEN E ~ LIMITFW[4] - 50.0 ; 27720342 C 0253
|
||
IF B[2] OR B4 THEN B7 ~ B4 ~ TRUE 27720343 C 0256
|
||
END ; 27720344 C 0258
|
||
27720345 C 0259
|
||
COMMENT TEST IF UPPER LIMITS ARE EXCEEDED ; 27720346 C 0259
|
||
27720347 C 0259
|
||
IF E > LIMITFW[NL+2] THEN 27720348 C 0259
|
||
BEGIN 27720349 C 0260
|
||
IF B5 THEN GO TO ERRORFW ; 27720350 C 0261
|
||
E ~ LIMITFW[NL+2] ; 27720351 C 0264
|
||
IF B[3] AND B6 THEN E ~ LIMITFW[3] + 50.0 ; 27720352 C 0265
|
||
IF B6 OR B[2] THEN B5 ~ B6 ~ TRUE 27720353 C 0268
|
||
END 27720354 C 0270
|
||
END ; 27720355 C 0271
|
||
27720356 C 0271
|
||
COMMENT RETURN TO FLW1 OR FLW2 TO CONTINUE ITERATIONS IF THE 27720357 C 0271
|
||
FUNCTION G IS NOT WITHIN TOLERANCE ; 27720358 C 0271
|
||
27720359 C 0271
|
||
IF B[2] THEN T ~ E 27720360 C 0271
|
||
ELSE IF B[3] THEN P ~ E 27720361 C 0272
|
||
ELSE 27720362 C 0276
|
||
BEGIN 27720363 C 0277
|
||
VDF ~ E ; GO TO FLW2 27720364 C 0277
|
||
END ; 27720365 C 0279
|
||
GO TO FLW1 ; 27720366 C 0279
|
||
27720367 C 0279
|
||
COMMENT COMPUTE COMPOSITIONS OF PHASES PRESENT AT SOLUTION ; 27720368 C 0279
|
||
27720369 C 0279
|
||
FLW3 : FOR I ~ 1 STEP 1 UNTIL NW DO 27720370 C 0279
|
||
BEGIN 27720371 C 0281
|
||
X[I] ~ FUNC(I,0,1,1,HK,Z,VDF,S) ; Y[I] ~ K[I] | X[I] 27720372 C 0281
|
||
END ; 27720373 C 0286
|
||
IF B0 OR B1 THEN 27720374 C 0290
|
||
FOR I ~ 1 STEP 1 UNTIL NW DO 27720375 C 0290
|
||
BEGIN 27720376 C 0292
|
||
IF B1 THEN X[I] ~ 0 ELSE Y[I] ~ 0 27720377 C 0292
|
||
END ; 27720378 C 0295
|
||
IF B[1] AND NOT B1 THEN 27720379 C 0298
|
||
BEGIN 27720380 C 0299
|
||
X[NW] ~ - FUNC(NW,0,1,0,HK,Z,VDF,S) | S + X[NW] ; 27720381 C 0299
|
||
IF NOT B0 THEN Y[NW] ~ K[NW] | X[NW] 27720382 C 0305
|
||
END ; 27720383 C 0308
|
||
IF B2 THEN Y[NW] ~ Y[NW] - S / VDF ; 27720384 C 0309
|
||
END FLASHW ; 27720385 C 0312
|
||
12 IS 323 LONG, NEXT SEG 2
|
||
99090118 C 0131
|
||
KC3[1] ~ 14.40555 ; KC3[2] ~ 6936.5635 ; 99090119 C 0131
|
||
KC3[3] ~ 379.92103 ; KC6[1] ~ 6.1556551 ; 99090120 C 0134
|
||
KC6[2] ~ 6691.9779 ; KC6[3] ~ 420.42673 ; 99090121 C 0137
|
||
FOR I ~ 1 STEP 1 UNTIL 8 DO PICKK[I] ~ 0 ; 99090122 C 0139
|
||
PICKK[1] ~ 2 ; PICKK[6] ~ 1 ; 99090123 C 0150
|
||
LIMITFW[1] ~ 0.0 ; LIMITFW[2] ~ 500.0 ; 99090124 C 0153
|
||
LIMITFW[3] ~ 10.0 ; LIMITFW[4] ~ 1600.0 ; 99090125 C 0155
|
||
READ (FLIN, F2, LI1)[ENDPROB] ; 99090126 C 0158
|
||
CALCPDC ~ TRUE ; 99090127 C 0162
|
||
99090128 C 0163
|
||
FOR N ~ 1 STEP 1 UNTIL 19 DO 99090129 C 0163
|
||
BEGIN 99090130 C 0168
|
||
READ (FLIN,F3,LI2) ; 99090131 C 0168
|
||
FLASHW (Z, PICKK, B, LIMITFW, CALCPDC, T, P, VDF, S, 99090132 C 0171
|
||
X, Y) ; 99090133 C 0176
|
||
WRITE (FIL1,FO1,LI3) ; 99090134 C 0178
|
||
WRITE (FIL1, FO2, L4) ; 99090135 C 0181
|
||
END ; 99090136 C 0184
|
||
99090137 C 0186
|
||
ENDPROB: ; 99090138 C 0186
|
||
ERRORFW: END . 99090139 C 0187
|
||
2 IS 190 LONG, NEXT SEG 1
|
||
PRT(106) = EXP INTRINSIC, SEGMENT NUMBER = 13.
|
||
PRT(105) = LN INTRINSIC, SEGMENT NUMBER = 14.
|
||
PRT(136) = OUTPUT(W) INTRINSIC, SEGMENT NUMBER = 15.
|
||
PRT(5) = BLOCK CONTROL INTRINSIC, SEGMENT NUMBER = 16.
|
||
PRT(135) = INPUT(W) INTRINSIC, SEGMENT NUMBER = 17.
|
||
PRT(130) = X TO THE I INTRINSIC, SEGMENT NUMBER = 18.
|
||
PRT(132) = GO TO SOLVER INTRINSIC, SEGMENT NUMBER = 19.
|
||
PRT(14) = ALGOL WRITE INTRINSIC, SEGMENT NUMBER = 20.
|
||
PRT(15) = ALGOL READ INTRINSIC, SEGMENT NUMBER = 21.
|
||
PRT(16) = ALGOL SELECT INTRINSIC, SEGMENT NUMBER = 22.
|
||
1 IS 2 LONG, NEXT SEG 0
|
||
23 IS 69 LONG, NEXT SEG 0
|
||
NUMBER OF ERRORS DETECTED = 0. COMPILATION TIME = 52 SECONDS.
|
||
|
||
PRT SIZE = 95; TOTAL SEGMENT SIZE = 1118 WORDS; DISK SIZE = 52 SEGS; NO. PGM. SEGS = 23
|
||
|
||
ESTIMATED CORE STORAGE REQUIRED = 6750 WORDS.
|
||
|
||
ESTIMATED AUXILIARY MEMORY REQUIRED = 0 WORDS.
|
||
|
||
|
||
|
||
LABEL 000000000LINE 00188147?COMPILE PTS051/TEST ALGOL GO ALGOL /PTS051
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
LABEL 0PTS051 0RESULTS00188147?COMPILE PTS051/TEST ALGOL GO PTS051 /TEST
|
||
|
||
|
||
|
||
|
||
|
||
280.00000 75.00000 1.00000000@+00 0.00000000@+00
|
||
2.50000000@-01 0.00000000@+00 2.50000000@-01
|
||
2.50000000@-01 0.00000000@+00 2.50000000@-01
|
||
5.00000000@-01 0.00000000@+00 5.00000000@-01
|
||
220.00000 50.00000 7.61468900@-01 2.38531100@-01
|
||
2.50000000@-01 0.00000000@+00 3.28312818@-01
|
||
2.50000000@-01 0.00000000@+00 3.28312818@-01
|
||
5.00000000@-01 0.00000000@+00 3.43374365@-01
|
||
150.00000 75.00000 0.00000000@+00 1.62734841@-02
|
||
4.90000000@-01 4.98105919@-01 0.00000000@+00
|
||
4.90000000@-01 4.98105919@-01 0.00000000@+00
|
||
2.00000000@-02 3.78816250@-03 0.00000000@+00
|
||
175.00000 75.00000 1.45501147@-02 3.95035624@-01
|
||
3.00000000@-01 4.87257880@-01 8.46453743@-01
|
||
3.00000000@-01 5.06542741@-01 6.39130436@-02
|
||
4.00000000@-01 6.19937949@-03 8.96332133@-02
|
||
225.00000 75.00000 3.15745904@-02 0.00000000@+00
|
||
2.99000000@-01 2.83424367@-01 7.76720804@-01
|
||
6.99000000@-01 7.15247186@-01 2.00681982@-01
|
||
2.00000000@-03 1.32844741@-03 2.25972138@-02
|
||
178.63852 80.00000 0.00000000@+00 1.94654652@-01
|
||
4.00000000@-01 4.96681332@-01 0.00000000@+00
|
||
4.00000000@-01 4.96681332@-01 0.00000000@+00
|
||
2.00000000@-01 6.63733672@-03 0.00000000@+00
|
||
160.50083 60.00000 0.00000000@+00 0.00000000@+00
|
||
4.99000000@-01 4.99000000@-01 0.00000000@+00
|
||
4.99000000@-01 4.99000000@-01 0.00000000@+00
|
||
2.00000000@-03 2.00000000@-03 0.00000000@+00
|
||
270.52313 70.00000 1.00000000@+00 0.00000000@+00
|
||
3.00000000@-01 0.00000000@+00 3.00000000@-01
|
||
5.00000000@-01 0.00000000@+00 5.00000000@-01
|
||
2.00000000@-01 0.00000000@+00 2.00000000@-01
|
||
303.00957100.00000 1.00000000@+00 0.00000000@+00
|
||
1.50000000@-01 0.00000000@+00 1.50000000@-01
|
||
1.50000000@-01 0.00000000@+00 1.50000000@-01
|
||
7.00000000@-01 0.00000000@+00 7.00000000@-01
|
||
240.15276 50.00000 4.00000000@-01 6.00000000@-01
|
||
1.00000000@-01 0.00000000@+00 2.50000000@-01
|
||
1.00000000@-01 0.00000000@+00 2.50000000@-01
|
||
8.00000000@-01 0.00000000@+00 5.00000000@-01
|
||
226.24518 75.00000 5.00000000@-01 2.67550356@-01
|
||
3.00000000@-01 1.85581970@-01 5.13723074@-01
|
||
3.00000000@-01 7.99392401@-01 2.28363041@-01
|
||
4.00000000@-01 1.51057405@-02 2.57876641@-01
|
||
236.48398 75.00000 5.00000000@-01 0.00000000@+00
|
||
4.99000000@-01 2.49490789@-01 7.48509211@-01
|
||
4.99000000@-01 7.50293967@-01 2.47706033@-01
|
||
2.00000000@-03 2.15400966@-04 3.78459903@-03
|
||
100.00000 38.23899 0.00000000@+00 1.99016995@-01
|
||
6.00000000@-01 7.49079564@-01 0.00000000@+00
|
||
2.00000000@-01 2.49693188@-01 0.00000000@+00
|
||
2.00000000@-01 1.22724811@-03 0.00000000@+00
|
||
160.00000 62.00906 0.00000000@+00 0.00000000@+00
|
||
5.00000000@-01 5.00000000@-01 0.00000000@+00
|
||
4.96000000@-01 4.96000000@-01 0.00000000@+00
|
||
4.00000000@-03 4.00000000@-03 0.00000000@+00
|
||
300.00000 74.64772 1.00000000@+00 0.00000000@+00
|
||
1.00000000@-01 0.00000000@+00 1.00000000@-01
|
||
7.00000000@-01 0.00000000@+00 7.00000000@-01
|
||
2.00000000@-01 0.00000000@+00 2.00000000@-01
|
||
200.00000 14.40352 1.00000000@+00 0.00000000@+00
|
||
1.00000000@-01 0.00000000@+00 1.00000000@-01
|
||
1.00000000@-01 0.00000000@+00 1.00000000@-01
|
||
8.00000000@-01 0.00000000@+00 8.00000000@-01
|
||
200.00000 23.04563 4.00000000@-01 6.00000000@-01
|
||
1.00000000@-01 0.00000000@+00 2.50000000@-01
|
||
1.00000000@-01 0.00000000@+00 2.50000000@-01
|
||
8.00000000@-01 0.00000000@+00 5.00000000@-01
|
||
120.00000 17.18754 6.00000000@-01 2.40362917@-01
|
||
5.00000000@-01 2.08254649@-01 7.77924726@-01
|
||
2.00000000@-01 7.89768147@-01 1.23206195@-01
|
||
3.00000000@-01 1.97514947@-03 9.88696260@-02
|
||
250.00000 52.45852 5.00000000@-01 0.00000000@+00
|
||
2.90000000@-01 1.04168744@-01 4.75831256@-01
|
||
6.90000000@-01 8.94345273@-01 4.85654727@-01
|
||
2.00000000@-02 1.47913471@-03 3.85208653@-02
|
||
|
||
|
||
LABEL 0PTS051 0RESULTS00188147?COMPILE PTS051/TEST ALGOL GO PTS051 /TEST
|
||
|
||
|
||
|
||
|
||
|