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.
146 lines
12 KiB
Plaintext
146 lines
12 KiB
Plaintext
PROCEDURE DEWBUB (Z, PICKK, CALCDEW, CALCT, LIMITDB, CALCPDC, T, P, DBPP0001
|
|
ERRORDB) ; DBPP0002
|
|
DBPP0003
|
|
COMMENT DEW-POINT AND BUBBLE-POINT PROCEDURE DBPP0004
|
|
BY DONALD L. VOSS DBPP0005
|
|
PROFESSIONAL SERVICES GROUP, BURROUGHS CORPORATION DBPP0006
|
|
CARD SEQUENCE CODE STARTS WITH DBPP0001. DBPP0007
|
|
FIRST RELEASE DATE 11-1-63 DBPP0008
|
|
DBPP0009
|
|
THIS PROCEDURE PERFORMS DEW-POINT AND BUBBLE-POINT DBPP0010
|
|
CALCULATIONS ON MULTICOMPONENT MIXTURES. EITHER DBPP0011
|
|
TEMPERATURE OR PRESSURE CAN BE DETERMINED. THE KPICK DBPP0012
|
|
PROCEDURE IS USED TO DETERMINE THE VAPOR-LIQUID DBPP0013
|
|
EQUILIBRIUM RATIOS (Y/X). DBPP0014
|
|
DBPP0015
|
|
THE INPUT PARAMETERS ARE DBPP0016
|
|
T - GIVEN OR ASSUMED TEMPERATURE, F - REAL DBPP0017
|
|
P - GIVEN OR ASSUMED PRESSURE, PSIA - REAL DBPP0018
|
|
Z - COMPONENT MOLE FRACTIONS - REAL ARRAY [0:N], WHERE DBPP0019
|
|
N IS THE TOTAL NUMBER OF COMPONENTS. THE ORDER OF DBPP0020
|
|
COMPONENTS MUST BE THE SAME AS THE PICKK[] ORDER. DBPP0021
|
|
PICKK - NO. OF COMPONENTS FOR EACH K-RATIO PROCEDURE - DBPP0022
|
|
INTEGER ARRAY [0:7] DBPP0023
|
|
PICKK[0] - TOTAL NUMBER OF COMPONENTS DBPP0024
|
|
PICKK[1] - NO. USING KNGAA DBPP0025
|
|
PICKK[2] - NO. USING KIDEAL DBPP0026
|
|
PICKK[3] - NO. USING KPOLY DBPP0027
|
|
PICKK[4] - NO. USING PHIPART DBPP0028
|
|
PICKK[5] - NO. WHOSE K-RATIOS ARE GIVEN IN KC12[]. DBPP0029
|
|
PICKK[7] - NO. USING THE INTERPOLATION METHOD. DBPP0030
|
|
CALCDEW - BOOLEAN. IF TRUE, CALCULATE FOR A DEW-POINT DBPP0031
|
|
CONDITION. IF FALSE, CALCULATE FOR A BUBBLE-POINT DBPP0032
|
|
CONDITION. DBPP0033
|
|
CALCT - BOOLEAN. IF TRUE, CALCULATE T. IF FALSE, DBPP0034
|
|
CALCULATE P. DBPP0035
|
|
LIMITDB - T AND P LIMITS - REAL ARRAY [0:4] DBPP0036
|
|
LIMITDB[1] - MINIMUM T, F. DBPP0037
|
|
LIMITDB[2] - MAXIMUM T, F. DBPP0038
|
|
LIMITDB[3] - MINIMUM P, PSIA DBPP0039
|
|
LIMITDB[4] - MAXIMUM P, PSIA DBPP0040
|
|
CALCPDC - BOOLEAN. IF TRUE, CALCULATE THE PRESSURE DBPP0041
|
|
DEPENDENT COEFFICIENTS IN THE KNGAA PROCEDURE. FOR DBPP0042
|
|
CALCPDC = FALSE, P OF PRESENT ENTRY MUST EQUAL P OF DBPP0043
|
|
LAST ENTRY TO THE KNGAA PROCEDURE. DBPP0044
|
|
DBPP0045
|
|
IN ADDITION, THE VARIABLES KC1, KC2, KC4, KC5, AND KC7 TO DBPP0046
|
|
KC14 ARE NON-LOCAL TO DEWBUB. THESE VARIABLES ARE DBPP0047
|
|
DEFINED IN THE KPICK PROCEDURE (PTS-41). DBPP0048
|
|
DBPP0049
|
|
THE OUTPUT PARAMETERS ARE DBPP0050
|
|
T - GIVEN OR CALCULATED TEMPERATURE, F. DBPP0051
|
|
P - GIVEN OR CALCULATED PRESSURE, PSIA DBPP0052
|
|
DBPP0053
|
|
THE REFERENCE PARAMETER IS DBPP0054
|
|
ERRORDB - REFERENCE STATEMENT LABEL TO WHICH CONTROL IS DBPP0055
|
|
CHANGED IF THE CALCULATED T OR P VIOLATE THE LIMITS DBPP0056
|
|
OF LIMITDB[]. DBPP0057
|
|
DBPP0058
|
|
THE PROCEDURES KNGAA, KIDEAL, KPOLY, PHIPART, ANT1, AND DBPP0059
|
|
KPICK MUST BE DECLARED PRIOR TO DEWBUB. DBPP0060
|
|
THE PROCEDURES KNGAA, KIDEAL, KPOLY, PHIPART, AND ANT1 DBPP0061
|
|
MUST BE DECLARED PRIOR TO KPICK. DBPP0062
|
|
THE PROCEDURE ANT1 MUST BE DECLARED PRIOR TO KIDEAL. ; DBPP0063
|
|
DBPP0064
|
|
VALUE CALCDEW, CALCT, CALCPDC ; DBPP0065
|
|
REAL T, P ; DBPP0066
|
|
BOOLEAN CALCDEW, CALCT, CALCPDC ; DBPP0067
|
|
INTEGER ARRAY PICKK[0] ; DBPP0068
|
|
REAL ARRAY Z[0], LIMITDB[0] ; DBPP0069
|
|
LABEL ERRORDB ; DBPP0070
|
|
DBPP0071
|
|
BEGIN DBPP0072
|
|
REAL TRS1, TRS2, TRS3, TRS4, TRS5, TRS6, TRS7, TRS8 ; DBPP0073
|
|
INTEGER I, N ; DBPP0074
|
|
BOOLEAN TBS1, CALCPT, CALCPP ; DBPP0075
|
|
REAL ARRAY K, TR1S1[0:PICKK[0]] ; DBPP0076
|
|
LABEL D1, D2, D3, D4, D5, D6 ; DBPP0077
|
|
DBPP0078
|
|
CALCPT ~ CALCPP ~ TBS1 ~ FALSE ; N ~ PICKK[0] ; DBPP0079
|
|
DBPP0080
|
|
COMMENT SET-UP OF VARIABLES FOR T CALCULATION IF CALCT = TRUE OR DBPP0081
|
|
FOR P CALCULATION IF CALCP = TRUE ; DBPP0082
|
|
IF CALCT THEN DBPP0083
|
|
BEGIN DBPP0084
|
|
TRS3 ~ LIMITDB[1] ; TRS4 ~ LIMITDB[2] ; DBPP0085
|
|
TRS5 ~ T ; CALCPT ~ TRUE DBPP0086
|
|
END DBPP0087
|
|
ELSE DBPP0088
|
|
BEGIN DBPP0089
|
|
TRS3 ~ LIMITDB[3] ; TRS4 ~ LIMITDB[4] ; DBPP0090
|
|
TRS5 ~ P ; CALCPP ~ TRUE DBPP0091
|
|
END ; DBPP0092
|
|
DBPP0093
|
|
COMMENT ITERATE HERE TO CALCULATE T OR P. ENTER THE KPICK DBPP0094
|
|
PROCEDURE TO CALCULATE THE K-RATIOS. ; DBPP0095
|
|
D1: KPICK (T, P, PICKK, CALCPT, CALCPP, CALCPDC, K, TR1S1, DBPP0096
|
|
TR1S1) ; DBPP0097
|
|
IF CALCT THEN CALCPDC ~ FALSE ; DBPP0098
|
|
TRS6 ~ TRS7 ~ 0 ; DBPP0099
|
|
FOR I ~ 1 STEP 1 UNTIL N DO DBPP0100
|
|
BEGIN DBPP0101
|
|
DBPP0102
|
|
COMMENT CALCULATIONS FOR DEW-POINT IF CALCDEW = TRUE OR FOR DBPP0103
|
|
BUBBLE-POINT IF CALCDEW = FALSE ; DBPP0104
|
|
IF CALCDEW THEN DBPP0105
|
|
BEGIN DBPP0106
|
|
TRS1 ~ Z[I]/K[I] ; TRS2 ~ -TR1S1[I] | TRS1/K[I] DBPP0107
|
|
END DBPP0108
|
|
ELSE DBPP0109
|
|
BEGIN DBPP0110
|
|
TRS1 ~ K[I] | Z[I] ; TRS2 ~ Z[I] | TR1S1[I] DBPP0111
|
|
END ; DBPP0112
|
|
TRS6 ~ TRS6 + TRS1 ; TRS7 ~ TRS7 + TRS2 DBPP0113
|
|
END ; DBPP0114
|
|
DBPP0115
|
|
COMMENT NEWTON-RAPHSON METHOD IS USED IN CONVERGENCE SCHEME. ; DBPP0116
|
|
TRS6 ~ TRS6 - 1.0 ; TRS8 ~ -TRS6/TRS7 + TRS5 ; DBPP0117
|
|
IF TRS8 < TRS3 THEN GO TO D3 ; DBPP0118
|
|
IF TRS8 > TRS4 THEN GO TO D5 ; DBPP0119
|
|
DBPP0120
|
|
COMMENT TEST IF TOLERANCE IS MET. RECYCLE IF NOT. ; DBPP0121
|
|
TRS5 ~ TRS8 ; DBPP0122
|
|
IF 0.001 > ABS(TRS6) THEN DBPP0123
|
|
BEGIN DBPP0124
|
|
IF CALCT THEN T ~ TRS5 ELSE P ~ TRS5 ; GO TO D6 DBPP0125
|
|
END ; DBPP0126
|
|
D2: IF CALCT THEN T ~ TRS5 ELSE P ~ TRS5 ; GO TO D1 ; DBPP0127
|
|
DBPP0128
|
|
COMMENT TEST IF T OR P EXCEED THEIR LIMITS ; DBPP0129
|
|
D3: IF TRS5 = TRS3 THEN DBPP0130
|
|
BEGIN DBPP0131
|
|
IF CALCT THEN GO TO ERRORDB ; DBPP0132
|
|
IF TBS1 THEN GO TO ERRORDB ; DBPP0133
|
|
TBS1 ~ TRUE ; TRS5 ~ TRS4 - 50.0 ; GO TO D2 DBPP0134
|
|
END ; DBPP0135
|
|
D4: TRS5 ~ TRS3 ; GO TO D2 ; DBPP0136
|
|
D5: IF TRS5 = TRS4 THEN DBPP0137
|
|
BEGIN DBPP0138
|
|
IF CALCT THEN GO TO ERRORDB ; DBPP0139
|
|
IF TBS1 THEN GO TO ERRORDB ; DBPP0140
|
|
TBS1 ~ TRUE ; TRS5 ~ TRS3 + 50.0 ; GO TO D2 DBPP0141
|
|
END ; DBPP0142
|
|
TRS5 ~ TRS4 ; GO TO D2 ; DBPP0143
|
|
DBPP0144
|
|
D6: END DEWBUB ; DBPP0145
|