mirror of
https://github.com/retro-software/B5500-software.git
synced 2026-03-02 17:44:40 +00:00
1. Commit library tape images, directories, and extracted text files. 2. Commit additional utilities under Unisys-Emode-Tools.
93 lines
6.3 KiB
Plaintext
93 lines
6.3 KiB
Plaintext
PROCEDURE IFLASH (SUMF, N, Z, K, X, Y, L, V, SUML, SUMV) ; IFLP0001
|
|
|
|
COMMENT ISOTHERMAL-ISOBARIC FLASH PROCEDURE IFLP0002
|
|
BY DONALD L. VOSS IFLP0003
|
|
PROFESSIONAL SERVICES GROUP, BURROUGHS CORPORATION IFLP0004
|
|
CARD SEQUENCE CODE STARTS WITH IFLP0001. IFLP0005
|
|
FIRST RELEASE DATE 5-5-63 IFLP0006
|
|
|
|
THIS PROCEDURE CALCULATES THE PHASE COMPOSITIONS OF IFLP0007
|
|
VAPOR-LIQUID MIXTURES IN WHICH EQUILIBRIUM EXISTS BETWEEN IFLP0008
|
|
THE LIQUID AND VAPOR. IF THE CONDITIONS ARE SUCH THAT IFLP0009
|
|
THE MIXTURE IS ALL LIQUID OR ALL VAPOR, THE PROCEDURE IFLP0010
|
|
EXITS WITH THE APPROPRIATE OUTPUT RESULTS. FOR TWO PHASE IFLP0011
|
|
MIXTURES, A NEWTON-RAPHSON METHOD IS USED TO DETERMINE IFLP0012
|
|
THE PHASE COMPOSITIONS. IFLP0013
|
|
|
|
THE INPUT PARAMETERS ARE IFLP0014
|
|
SUMF - MOLES OF FEED - REAL IFLP0015
|
|
N - TOTAL NUMBER OF COMPONENTS - INTEGER IFLP0016
|
|
Z - MOLE FRACTIONS OF FEED COMPONENTS - REAL ARRAY IFLP0017
|
|
[0:N] IFLP0018
|
|
K - COMPONENT K-RATIOS - REAL ARRAY [0:N] IFLP0019
|
|
|
|
THE OUTPUT PARAMETERS ARE IFLP0020
|
|
X - COMPONENT LIQUID MOLE FRACTIONS - REAL ARRAY [0:N]IFLP0021
|
|
Y - COMPONENT VAPOR MOLE FRACTIONS - REAL ARRAY [0:N] IFLP0022
|
|
L - COMPONENT LIQUID MOLES - REAL ARRAY [0:N] IFLP0023
|
|
V - COMPONENT VAPOR MOLES - REAL ARRAY [0:N] IFLP0024
|
|
SUML - TOTAL MOLES OF LIQUID - REAL IFLP0025
|
|
SUMV - TOTAL MOLES OF VAPOR - REAL ; IFLP0026
|
|
|
|
VALUE SUMF, N ; IFLP0027
|
|
REAL SUMF, SUML, SUMV ; IFLP0028
|
|
INTEGER N ; IFLP0029
|
|
ARRAY Z[0], K[0], X[0], Y[0], L[0], V[0] ; IFLP0030
|
|
|
|
BEGIN IFLP0031
|
|
REAL TRS1, TRS2, TRS3, NRF, PNRF ; IFLP0032
|
|
INTEGER I ; IFLP0033
|
|
LABEL I1, I2, I3, I4, I5 ; IFLP0034
|
|
|
|
COMMENT DETERMINE IF TWO PHASES EXIST ; IFLP0035
|
|
TRS1 ~ TRS2 ~ 0 ; IFLP0036
|
|
FOR I ~ 1 STEP 1 UNTIL N DO IFLP0037
|
|
BEGIN IFLP0038
|
|
IF K[I] = 0 THEN IFLP0039
|
|
BEGIN IFLP0040
|
|
TRS1 ~ 1.1 ; GO TO I1 IFLP0041
|
|
END ; IFLP0042
|
|
TRS1 ~ Z[I]/K[I] + TRS1 ; IFLP0043
|
|
I1: TRS2 ~ Z[I] | K[I] + TRS2 IFLP0044
|
|
END ; IFLP0045
|
|
IF TRS1 > 1.0 THEN GO TO I2 ; IFLP0046
|
|
|
|
COMMENT VAPOR PHASE ONLY ; IFLP0047
|
|
TRS1 ~ 0 ; GO TO I5 ; IFLP0048
|
|
I2: IF TRS2 > 1.0 THEN GO TO I3 ; IFLP0049
|
|
|
|
COMMENT LIQUID PHASE ONLY ; IFLP0050
|
|
TRS1 ~ 1.0 ; GO TO I5 ; IFLP0051
|
|
|
|
COMMENT START CALCULATIONS WITH SUML/SUMF = 0.5 ; IFLP0052
|
|
I3: TRS1 ~ 0.5 ; IFLP0053
|
|
|
|
COMMENT ITERATE TO DETERMINE SUML/SUMF ; IFLP0054
|
|
I4: NRF ~ PNRF ~ 0 ; IFLP0055
|
|
FOR I ~ 1 STEP 1 UNTIL N DO IFLP0056
|
|
BEGIN IFLP0057
|
|
TRS2 ~ -K[I] + 1.0 ; IFLP0058
|
|
TRS3 ~ K[I] + TRS1 | TRS2 ; IFLP0059
|
|
NRF ~ Z[I] | TRS2/TRS3 + NRF ; IFLP0060
|
|
PNRF ~ -Z[I] | (TRS2/TRS3)*2 + PNRF IFLP0061
|
|
END ; IFLP0062
|
|
TRS2 ~ NRF/PNRF ; TRS1 ~ TRS1 - TRS2 ; IFLP0063
|
|
IF TRS1 < 0 THEN TRS1 ~ 0 IFLP0064
|
|
ELSE IF TRS1 > 1.0 THEN TRS1 ~ 1.0 ; IFLP0065
|
|
IF ABS(TRS2) > 1.0@-6 THEN GO TO I4 ; IFLP0066
|
|
|
|
COMMENT CALCULATE PHASE COMPOSITIONS ; IFLP0067
|
|
I5: SUML ~ TRS1 | SUMF ; SUMV ~ SUMF - SUML ; IFLP0068
|
|
FOR I ~ 1 STEP 1 UNTIL N DO IFLP0069
|
|
BEGIN IFLP0070
|
|
IF TRS1 ! 0 THEN IFLP0071
|
|
X[I] ~ Z[I] / (K[I] | (1.0 - TRS1) + TRS1) IFLP0072
|
|
ELSE X[I] ~ 0 ; IFLP0073
|
|
L[I] ~ X[I] | SUML ; IFLP0074
|
|
V[I] ~ Z[I] | SUMF - L[I] ; IFLP0075
|
|
IF TRS1 ! 1.0 THEN Y[I] ~ V[I]/SUMV IFLP0076
|
|
ELSE Y[I] ~ 0 IFLP0077
|
|
END IFLP0078
|
|
|
|
END IFLASH ; IFLP0079
|