Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
.... '
;_.,
... ~
n
w
BY To
e
ap
April )..976
w
quotation from it or information derived from it is to be
To
published without full acknowledgement of the source.
e
The thesis is to be used for private study or non-
ap
commercial research purposes only.
C
of
I~ '
(iii)
ABSTRACT
(iv)
TABLE OF CONT~NTS
2.1 INTRODUCTION 30
2.2 THEORY OF BINARY BATCH DISTILLATION 32
2.21 Vapour-liquid equilibria 32
2.22 Varying refl~x ratio operation 34
2.23 Constant reflux operation 36
2.3 DESCRIPTION OF PROGRAM BATCH 37
2.31 General structure of the program 37
2.32 Limitations of the program 38
2.33 bperating procedure and data input
specification 38
2.34 Calculation procedures 40
2.341 Varying reflux ratio 40
2.342 Constant reflux ratio 42
2. 4 GENERAL COMMENTS ON BATCH 43
---
2.5 SUBROUTINES ASSOCIATED WITH BATCH 44
2.51 Subroutine XDSTEP 44
2.52 Bubble point and Dew point cal~ulations 47
(v)
2.521 Subroutine BINBPT 47
2.522 Subroutine BINDPT. 49
2.53 Subroutine XYALFA 49
2.54 Subroutine SIMPS 50
2.55 Subroutine SEARCH 50
2.6 SUM.MARY OF BINARY BATCH DISTILLATION PROGRAM . 51
(vi)
3.518 Subroutine FFIND 87
3.519 Subroutine BINRES 88
3.6 SUMMARY OF BINARY CONTINUOUS DISTILLATION PROGRAM 88
(vii) .
CHAPTER 5 MULTICOMPONENT DISTILLATION 127
5.1 INTRODUCTION 127
5.2 THEORETICAL BACKGROUND TO THE THIELE-GEDDES
METHOD 128
5.21 Multicomponent systems 128
5.22 General Specifications 130
5.23 Initial Assumptions and Estimates 130
5.24 Description of the Thiele-Geddes algorithm 131
5.241 Feed tray analysis 134
5. 25 Holla.nd' s e method for convergence 137
5.251 The B method 137
5.252 Calculation of 8 · 138
.5.253 Convergence characteristics of the
e method 139
5.26 Supplementary Calculations· 143
5.261 Multicomponent vapour-liquid
equilibrium 143
5.262 Enthalpy calculations 144
5.263 Flash calculations 145
5.264 Bubble point, dew point and tray
efficiency calculations 148
5.3 DESCRIPTION OF MAINLINE PROGRAM MULCOM 149
5.31 General structure of .MULCOM 149 .
5.32 Operation of the program 150
5~33 Printout of results .152
5.34 Termination procedure and error messages 153
5.35 Limitations of MULCOM 153
5.36 Description of FORTRAN text 154
5.4 GENERAL COMMENTS ON MULCOM 156
5.5 SUBROUTINES ASSOCIATED WITH MULCOM 157
5.51 Subroutine READIN 157
5.52 II
EQUCON 159
5.53 II
ENERGY· 161
5.54 II
QFLASH. 162
5.55 Subroutines BUBCAL and DEWCAL 165
(viii)
5.56 Vapour and liquid flowrate profiles 167
5.561 Subroutine FLOWEQ 167
5.562 Subroutine FLOWNE 167
5.57 Thiele-Geddes tray-to-tray calculations 170
.5~58 Subroutine THECAL 172
5.59 Output procedures 175
5.591 Subroutine RUNRES 17.5
. 5.592 Subroutine OUTPUT 17~
(ix}
7.22 Operating the program 206
7.23 Input of problem specifications 210
7.24 Results table 218
7.25 Execution of BINARY in batch mode 219
7.26 Error messages 219
7.27 Dimension parameters and specification
limitations 222
7:. 3 BINARY CONTINUOUS DISTILLATION IN PACKED COLUMNS 224
7.31 Application 224
7.32 Operating the program 225
7.33 Optional data inputs 231
7.34 Physical property data package 235
7.35 Results tables 244
7.36 Error Messages 245
7.37 Dimension parameters and specification
limitations 245
7.4 . MULTICOMPONENT DISTILLATION 246
7.41 Application 246
7.42 Operating the program 248
7.43 Input options 255
7. 44 Result tables 263.
7.45 Optional enthalpy-calculation subroutine 264
7.46 Error messages 26~
(x)
CHAPTER 8 PROGRAM ANALYSIS AND APPLICATIONS 280
8.1 COMPUTER PROGRAMS AS TEACHING AIDS 280
8.2 PROGRAMMING CONVENTIONS 281
8.3 COMPUTE CORE REQUIREMENTS 284
8.4 CPU TIME REQUIREMENTS ·289
8.5 PROGRAM APPLICATIONS 293
8.6 CONCLUSIONS AND RECOMMENDATIONS . 320
REFERENCES 322
(xi)
CHAPTER l
1.1 INTRODUCTION
This study is concerried with the development of
comp.uter. programs to. be used as teaching aids in an under-
graduate course on Distillation at the University of Cape
Town.
1 -
- 2 -
L 12 Objectives
In this
.
time students
.
are taught the basic prindiples
of both binary and.multicomponent distillation, and must
apply these principles to- textbook problems. l\..s even ele-
mentary problems can be time-consuming, solution procedures
rire restricted to the graphical techniques of McCabe and
Thiele [7] and Ponchon and Savarit [8] for binary systems,
and to various short-cut methods for multicomponent problems.
2. Structure of Programs:
Modular, mainline-subroutine structure to be
adopted, with generalised subroutines for standard
calculatioris such as bubble ~oint or dew point.
Programs to be structured to minimise core storage
requirements.
3. Operation of Program:
Both Demand . . . and Batch'""mode operating facilities
to be provided, with emphasis on user-program inter-
action in Demand-mode.
4. Computer Algorithms:
Mathematical correlations and solution procedures
t:o c_orrespond to those discussed in the course
lectures.
5~ Data Collation:
Opt~onal data input facilities to be included
to.minimise the time required to set up problem
data tables.
6. Error messages:
Common solution errors, such as pinch points,
to be searched for, and r~medies suggested through
program error messages.
1. 2 LITERATURE SURVEY
y = K .. x .. (1.1)
i, 1,J . 1,J
li . +vi . - 1.
,] 1] 11]
·+i - v . .
1,J- 1
- f ..
11]
= O (1. 2)
j+l
v. Lj+l
J
q~- -
J .
- - j
F.
J
v.J- 1 L.
J
j-1
Fig. 1.1
c. Multicomponent Distillation
Continuous distillation of multicomponent solutions
is the most common distillation process encountered in indus-
try. Design methods are more complex beacuse the process
cannot be represented graphically. There are a number of
solution procedures available of which· one was chosen to meet
the requirements of this study. Friday [14] was the first to
analyse the possible combination of the four equations stated
previously, and to characterise the corresponding solution
procedure. He proposed a series of six "decisions" that
would lead to the correct choice for a given problem. Seppala
[18] applied sixteen different solution procedures to nine
problems and showed that no single technique was superior
in all cases. This supported Friday's contention that the
nature of the problem should determine the choice of solution
procedure.
as mentioned prev~ously.
L 26 Summary.
2.1 ·INTRODUCTION
- 30 -
- 31 -
G L
5 1------1
41--------1
31--------1
2-----1
1 t-------ir---t
G
L
Y1· = K.·x.
1 1
i = 1,2 (2 .1)
Y.1 ( 2. 2)
Y2
( 2. 3)
i=l,2 ( 2. 4)
( 2. 5)
p. P.x.
l l l
Yi = = i=l,2 ( 2. 6)
PT PT
Hence
pi
Ki - i=l,2 (2.7)
PT
and
P1
Cl 1 , 2 = P2 ( 2. 8)
i=l,2 ( 2. 9)
Mass balance·
Overall F = D + W ( 2 . 10)
Component FxF = DxD + Wxw (2.11)
(2.12)
L
R = D
(2.13)
( 2. 14)
L
(1--) (x -x )
2
G · D W
also G = L + D (2.16)
Jxp dxw
hence v = F(x0 -xF) (2.17)
XWf
(1-R~l) (xD-xW) 2
(2.18)
F
ln w = (2.19)
w
- 37 -
V = D (R+l). (2.20)
READ IN DATA,
SELECT OPTIONS
----'----+! BINEPT
VARIABLE CONSTANT
CHOOSE NEW
XW ESTIMATE
COMPUTE RESULTS COMPUTE RESULTS
(1) VAP BOILED UP (1) RESIDUE VOL
(2) CYCLE TIME (2) DIST WITHDRAWN
(3) RESIDUE VOL (3) VAP BOILED UP
(4) DIST WITHDRAWN (4) CYCLE. TIME
(5) AVE DIST COMP
Appendix C.
- 41 -
STORE STARTING
. POINT COORDINATES
X(l) = XD
Y(l) = XD
· SET LOOP
TERMINAT~ON
COUNTER
MSTOP = NP1*2
Y(I)
X(I) = -~---
(ALF+Y(I) (1-ALF)
NO YES
X(I)R + -·
XD- (I+l) 0.0
Y(I+l) =
R+l R+l
y =
X(I+l) = X(I)
X(I+l) = X(I) XNTC = X(I)
NTC = I+l
.:
- 47 -
Calculation procedure:
PTL:yi = L:P. x.
l l
hence PT = L:P. x.
l l
or
= Tn -
B.
1
(A'1 - C. +T)
where f (T) = SUMl = PT - L:P.x.
l l
and.for P.
l
= 10 1
SUM = Ia
b
+(fn-1+4fn+fn+1)]
Hence
n-.1
h
SUM - J L [fi+4£i+1+£i+2]
i=l,a,s, ...
4. Program Development:
(a) Computer used UNIVAC 1106 - Exec 8
(b) Minimum Coie requirements: 10 K
(c) Language - Standard FORTRAN IV
(d) Typical run time: Variable reflux: 7 secs
Constant reflux: 9 secs
CHAPTER 3
3.1 INTRODUCTION
- 53 -
- 54 -
Q·
c
D,xD
N
n+l
v L Rectifying Sectioh
n
F ,zF f
m+l
V' L' Stripping Section
m
QB 0
B,xB
DISILLATION SYSTEM
- 56 -
N N i-------t
~l
1. Vapour-liquid equilibrium.
The equations listed in section 2.21 apply to continu-
ous systems.
2. Material Balance.
On applying the McCabe-Thiele assumptions the general
material balance equation (1. 2) can be written around each
section of the column.
Rectifying Section:
Overall balance V = L + I) .(3.1)
Component balance Vyn = Lxn+l + 'DxD (3.2)
Resulting operating line,
R XD
Yn = R+l xn+l + R+l (3.3)'
Stripping section:
Overall balance L' = V' + B ( 3. 4)
Component balance L'xm+l = V'ym + BxB ( 3. 5)
F = D + B (3.6a)
Component balance
( 3. 6b)
Yq - __9_
q-1 q
x ( 3. 8)
(3.9)
( 3. 10)
Rectifying section:
(3.11)
Stripping section:
(3.12)
(3. 13)
L x .
m+l m+l
= Vmy m + Bx B (3.14)
h. vs
1
x.1
Enthalpy-Concentration Diagram
x,y diagram
(3.15)
h.
l
= fTB CpdT (3.17)
Tb
(3.19)
·[Tc -TJ
1
or F = 60 + 6B (3.2lb)
(3.22)
line LiDVN
R = (3.24)
line VNLD
where HvF and HLF are the enthalpies of the feed as a satu-
rated vapour .and liquid respectively.
Yq - z F
q - (3.27)
y q - xq
(b) x, y diagram.
The equilibrium curve on the x,y diagram.is determined
as described in section 2.21. The manual procedure described
in textbooks constructs the operating lines and the stepped
stages simultaneously. It is more convenient to perform
these constructions separately on a computer because, if the
operating lines are defined, the same basic stepping pro-
cedure may be used both for McCabe-Thiele and for Ponchon-
Sa vari t designs. _In addition, the design of a packed column
requires only the operating lines. Thus the s·ame computer
technique can be used for both types of column if stepping
~s not done simultaneously.
3.32 Limitations
CALL READBD
READ IN ALL CONDEN
PROBLEM DATA --~ FLASHB - - EQUIL
NOP=l ~WP=3
HTSOLN
SIMPLE 1-------=-- CALCULATE
FEED ENTHALPY
I
CALCULATE MIN
REFLUX RATIO I
COMPUTE 6
POINTS AND - - - - - HFnm
COMPLETE
ENTHALPY-CONC SEARCB
DIAGRAM I
I
CHEC
I
DETERMINE I
OPLINE OPERATING LINES I
STE PD ON X,Y DIAGRAM I
PSO~XY. STEPS OFF EQUIL
STAGES ON I
FFIND--- X,Y DIAGRAM
FLOWS
COMPUTE VAP & LIQ
FLOWS AT EACH
l
POINT ON OPERATING :
LINES I
BINRES.
L - -'- - - - - - - - - - - - -- :... - ·_ - - _J
WRITE DATA
. TO FILE FOF.
PLOTTING
49 302 CONTINUE
'.
- 71 -
• 3.58 Subroutine_HTCAP
a. McCabe-Thiele:
The program is limited to the following,
- 89 -
b. Ponchon-Savarit:
The program is limited to the following,
1) (2 ) , (4 ) , ( 6 ) and . ( 7 ) above .
2) Simple columns (one feed, no side streams).
3) Partial reboiler operation.
4. Program Development:
4.1 INTRODUCTION
- 90 :...
- 91 -
.for stepping off 'stages does not apply in packed column design
however.
L+dL V+dV
x+dx y+a:y
d..- - ..., -.:L-
dZ
L,x V,y
k
x
Slope
N
A
= k (x-x.)
x 1
= k
y
(y.-y)
1
( 4. 1)
ZR
dVy
f dZ = k a(y.-y)
y l
0
dLx ( 4. 3)
k ·a (x-x.)
·X l
Lx
a
L
Liquid phase HtL= k a
x
(4.4)
Vapour phase
Y2
ZR = HtV 1~
. yi-y
- HtV NtV
Ya
( 4. 5)
X2
dx
or = HtL
J
x
a
x-x.
l
= HtL NtL ( 4. 5)
( 4 • 6)
- 96 -
Y2
zR ~=
fYa y*-y
( 4. 6)
d L'
= 25 l(-s-)(} 145 (Sc)o,s (4.7)
I . µ'' L
L
FV = k y'· FL = k·x ( 4. 8)
( 4. 9)
( 4. 10)
- 100 -
= 1,195
[
as v , j- o, 3 6
(4.11)
µ" (1-e:o)
v
where .E:o = e:-cpt is the operat~ng void volume in the packing.
e: is the characteristic void volume of the dry packing and
<Pt' ·the total liquid hold-up, is defined in part (c) below.
The mass.transfer coefficient FV included in the relation-
ship is the local phase-interface value, and fr6m Equation·
( 4.. 8 ) ky = FV .
a= a h_ ( 4. 12)
AW <Pow
where <Po and <Pow account for the effect of liquid hold-up.
in the packing. In the original work of Shulman et al. [61],
three types of liquid hold-up are defined, namely total,
static and operating hold-up. These are related by the
expression
(4.13)
(4.14)
¢0 = ¢0
w.H* (4.15)
(4.16)
t Units of Pv - lb/ft 3 •
- 102 -
L'
ABCIS = V' (4.17)
2
ORD= [(V') C µ 1012 (4.18)
f L
4.32 Limitations
CALL PONSAV
P-S OPERATING
DIAGRAM
CALL PACTYP
DETERMINE TYPE
AND SIZE OF PACKING
CALL PAKING
EXTRACT RELEVANT
DATA FOR SYSTEM
COMPUTE HEIGHT OF
PACKING REQUIRED
IN FACH SECTION
CALL PACRES
FRINT RESULTS
232 ¢s computed
' .
(see Appendix A, Table 1.)
II II
233 ¢sw·
II
" II
"
234 ¢tw " II II·
" II II
253 H* computed.-
258 Eo = -
¢t (see section 3.232 (b) ) for use in
E
vapour phase mass transfer coefficient calcula-
tion.
285 kx = FL (converted
. to SI units).
385-389 1
rio 1
loop 43 defines the equations of the lines
of . slope -k x /k y joining points x,y and x.l ,y.l in
the rectifying section.
Data has been taken from the curves on the chart shown
in Figure 1, Appendix A. These data tables are automatically.
added to the runstream through the ERTRAN facility. The
user specifies the allowable working pressure drop and the
routine selects the corresponding correlation curve. The
user may supply data for other c6rrelation curves, if re-
quired. Full deta~ls on how this may be done are given in
ihe User's Manual, section 7.3.
The subroutine makes use of a UNIVAC library-routine
'GJR' to solve the simultaneous equations in the.least-
squares procedure. Polynomials Of orders one through ten
are tested by the routine and the best fitting polynomial
is selected for the required calculations.
Tc' -
(4.21)
[T
_c
I -
where T '.
c
= ·xAT CA + xBT
CB
(Kay's equation [58])
Tb = base temperature
Psb = solution density obtained from composition-density
data table by interpolation.
Variable. Program
Variable Program·
(4.22)
[P] (pL -
a = (4.23)
[ MW
- 120 -
(4.24)
= const. (4.25)
const.T'
µ ..
(4.26)
mL .
(4.27)
MWB + MWB
where b = MW 'MW
A B
where F
[72]
T = system temperature in K.
MW = molecular weight of component.
Willee and Lee [73] showed that the average and maximum
deviation obtained using this correlation are 8,4% and 20,5%
respectively. The subject of vapour phase diffusivity has
been more extensively investigated than liquid phase diffu-
siv~ty and the correl~tions may be applied with more confi-
dence [58]. Although the procedure described in section
4.553 achieves reasonable results, it can not be considered
as rigorous. as the above correlation. Nevertheless, both
procedures are suf f ic~ently accurate for the requi~ements of
the program PACKED.
(4.28)
where y =
B-(1-Tr)
Tr
and B is a viscosity constant.
L: y : µ . MW . o ' s
l l l
= ( 4. 30)
L: y i MW i o ' .s
For component i
1 5
2 7 , 0 • MW . o , 5 T '
l
=. 2/3
(4.31)
V. (T + 1,47 Tb )
l pi
4. Program Development:
MULTICOMPONENT DISTILLATION
5.1 INTRODUCTION
are met. A single solution will determine the top and bottom
compositions achieved in a given column configuration. The
program developed here will enable students to determine the
_effects of a number o"f parameters on a multicomponent system.
.• 127 -
- 128 -
Equilibrium constant K . . = y . . /x . . ( 5. 1)
J.,J J.,J l,J
. Overall balances:
VF NC LF NC
+ 2: h. Fx. F ( 5. 4)
where HF =·- 2:
F i=l H.l , FY·1, F F .l, l,
i=l
Rectifying section: ·
Enthalpy ( 5. 6)
h = l:x. ( 5. 8)
n i,n h.i,n
Stripping section:
i--_._-------1 NP...__--~----
D,x. D
l.'
NP-1
V L
n n
Recti~ying Section
F ,z. F.
l.'
TF
N -1
F
V L Stripping section
m m
0
B,x. B.
l. '
d. - Dx.l t D (S.l3)
l ..
v.
im
= vmy.i,m (m= O,l,2,; ... f-1} (5.14)
b. = Bx.l , B (5.16)
l
Fiom the above d~finitions, the liquid leaving the feed tray,
f, is included in the stripping section while the vapour
- 132 -
L
n
i,n = Vn K.i,n
1. . v. (5.17)
i,n
· LN+l
A . = (5.19)
i,N+l D Ki,N+l
. LN+l
A . = -- ( 5. 20)
i,N+l . . D
V K.
0 l,O
s.i,o = (5.23)
B
Rectifying section
1
Condenser Equilibrium · i,N+l_
d· =.A i,N+l (5.24)
. l
1. v.
1,n
Tray Equilibrium ~ = A.1,n d-:-
n=f+l,f+2 ... N (5.25)
d. 1 1
v. 1. .
Material balan~e i,n = i,n+l
d. + 1 n=f ,f+l, .... N (5.26)
d-:-
1 l
Strjpping section
v.
l,O (5.27)
Reboiler Equilibrium -b.- = S.i,o
l
v. 1.
. 1,m = s. i,m m= 1 , 2 , ••• , f-1 {5. 2 8)
Tray Equilibrium ~ i ,m ~
l 1
1.i,m+ 1 v.
Material balance b. = i,m +·1 m=0,1,2, .. f-l (5.29)
b.
l l
1.l I f = A.l I
f V.l ,·
f (5.30)
(5.31)
.and (5.32)
(5.33)
b. . b. f/d.
l =A i, i.
(5.34)
d.l i 1
f 1.l 1 f/b.l
b ..
l
b.
l
= d. (-d )
l .
(5.36)
l
1. .
x . . =~ ( 5. 37)
1,J l: 1. .
1,J
v ..
1,J (5.38)
l:v. .
1·, J
Product compositions:
d.
1
x.1, D = l:d.
(5.39)
1
b.
1
x. B = (5.40)
. 1, Eb .
1
l:d.
1
= D (5.41)
- 137 -
l:b.
l
= B (5.42)
2:1 . .
l,J
= L.J (5.43)
Iv.
l ,]
. = V.
J
(5.44)
[:~] ~ [:~] co . ca
• 8 (5~45)
FZ.l , F
(d
i
)
co
= 1 + e (b.i /d.l ) ·
(5.46)
ca
co
. (5.47)
L: (d. )
· i co = D
spec
(5.48)
i.e.
[
FZ.i,F. J D
spec =0 (5.49)
( 5. 50)
where
FZ.l ' F
8k· (b.i ·/d.)
i
J
ca
'"'" D (5.51)
f
., _
(Sk) -
_ .
2:
[(b.i /d.i ) ca FZ.i , F
(1 + 8 (b./d.) )2
J (5.52)
·. .
k .i i ca .
£(8)
I
I'
8
8'
k
e
FIGURE 5.2 NEWTON ITERATION FOR 8
(from Brian [12], p.245)
- 141 -
FZ. F
~ l,
Very heavy component (d.) (5.54)
. l. co 8(b./d.).
i i ca
v.
~. (d)
(d. ) i co
i ca i = l,NC (5.56)
Yi,n =
- 143 -
(5.57)
FZ.]. I F
.
(5.58)
- 147 -
z.l , F
(5.59)
K.l , F - ·qK.l , F + q
Hf - HF
q - .H - h (5.60)
f f
y *. .
E = ~ (5.61)
v l,J
.. y ..
l,J
L
n
. A.
· 1,n = EV K.
(5.62)
. 1,nV n
1,n
EV . K.1,mV m
1,m
s.1,m = (5.63}
*. .
Y1,J = Ev·. . K1,J
. .x. .
1,J
(5.64)
1,J
- 151 -
CALL READIN
READ IN DATA
CALL QFLASH
FEED FLASH CALC
CALL FLOWEQ
INI FLOV PROFILE
~-----'-----·CALL EQUCON
EQUIL CONSTS
NO
YES
CALL BUBCAL ENTHAL
AND DEWCAL CALL FLOWNE
COMPUTE NEW 14-------tADJUST FLOWS FOR
TEMP PROFILE ENTHALPY EFFECTS
THIELE-GEDDES-8
CALL VLRECT CALCULATIONS
AND VLSTRP CALL VBLB,VDLD,
COMPUTE COMP BDCALC;THECAL
OF EACH STREAM
YES
OUTPUT
------1READ NEW RUN,.__ _ ____......._.-< ')4------------"--1 RESULTS ON
VARIABLES LINEPRINTER
37
(2) K.
l,J
. = exp (a. - (b. /T.) + c. T.)
l J l J
T. in OR [18]
J. J
(3) K .
1,J
. = a . b . • Kb .
i- 'J ,J
2
where a. b . = a. + b.T. c.T.
l J + l J
1- I J l
T. in OF [21]
and =· c. + e.T. + f .T. 2
+ g.T. 3 J
Kb ,J. l l J l J l J
(4) K . .
l,J
= T.[a. + b.T. + c.T.
J l 1. J l J
2
+ d.T.!3] 3
l J
T. in OR [21]
J
- 160 -
option (1).
(l)' The bubble and dew points of the feed stream are
calculated at the feed tray pressure.
. - 163 -
( 1) Iso.baric flash
73 1
Ea . . x . .
1,J 1,J
da . .
l: 1, J
a.1,J' 'dT
74 f I (T) = E dKb +
v 1,J
. . -td (l:a . . x . . )
1,J 1,J
2
calculation sequence.
(C) These limits are reduced to 1,1 and 1/1,1, and 1,025
and 1/1,025 in the eighth and thirteenth cycle respectively.
(c) ~alculation
of v. /d. and 1. /d. ratios in the
i,n i i,n i
rectifying section of the column: Subroutine VDLD.
Subroutine ABSTRP:
5. Equation (5.20)
II
10 (5.19)
II
15 (5.18) including
(5.31) (.Flowrate values set
in FLOWEQ or FLOWNE)
20 Equation (5.22) and (5~23)
Subroutine VBLB: ·
II
5 (5.27)
9 II
(5.29)
II
10 (5.28)
Subroutine VDLD:
5 II
(5.24)
9. II
(5.25)
10 II
(5.26)
Subroutine BDCALC:
6 II
(5.34)
7 II
(5.35)
II
8 (5. 41) (yields Deale)
Subroutine BDCORR:
II
6 (5.45)
7 II
(5.46)
II
8 (5.4.7)
9 II
(5.48)
- 172 ....
Subroutine VLRECT:
5 v.
i,n
= (v.
· i,n
/d. )d.
~ i
6,8 Vn = Ev.i,n
11,18 Equation {5.38)
20 Equation (5.5) (for partial
condenser)
24 Composition normalization
39 Equation ( 5. 39)
40 " (5.40)
Subroutine VLSTRP:
7 v.
i,m
= (v i,m
. /b . ) b .
i i
12,13 ·Equation (5.44) (5.43)
15 " (5.37)
II
16 (5.38)
Allowing the program to run until criterion (1) was also met,
in examples where 8 did not oscillate, produced no discernible
change in the final results, and thus the extra computer time
required was not justified. Systems e~hibiting these charac~
10 Equation (5.51).
4. Program Development:
6.1 INTRODUCTION
A. Multicomponent system.
(1) Temperature profile through the column.
(2) Vapour and liquid flowrate profiles through the column.
(3) Distillate composition bar diagram.
(4) Composition profile through the column.
B. Binary system.
(1) McCabe-Thiele diagrams
(a) Batch distillation - Variable reflux ratio
(b) Batch distillation - Constant reflux ratio
(c) Continuous distillation.
- 178 -
- 179 -
profiles inserted.
(b) x, y diagram.
4. Program Development:
INTRODUCTION
- 191. -
- 192 -
· 7.11 Application
brium stage.
(d)· Hold-up effects in the column are.assumed to be
negligible.
Subroutine Purpose,
@MAP DISTFILE~BATCHM,.BATCH
"IN DISTFILE.BATCH
LIB DISTFILE.
@ASG,UP BDPLOT.
@USE 11,BDPLOT.
U: @XQT DISTFILE.BATCH
U: YES or NO
P: THIS IS A BINARY BATCH DISTILL~TION
SIMULATION PROGRAM.
SYSTEMS OPERATING UNDER EITHER VARIABLE OR
CONSTANT REFLUX.CONDI'J;'IONS CAN BE CONSIDERED.
THE PROGRAM IS LIMITED TO SYSTEMS FOR WHICH
NORMAL MCCABE-THIELE ASSUMPTIONS HOLD.
PLOTTING·ROUTINES ARE AVAILABLE FOR CONSTRUCT-
ING MCCABE-THIELE X-Y DIAGRAMS FOR EITHER
OPERATION MODE.
TABLE 7.1
EQUILIBRIUM-DATA ELEMENT
.X y
1 0.05,0.14
2 o.'10,0.25
.3 0.15,0.34
4 0.20,0.425
5 0.25,0.49
6 o.3o,o.55
7 0.35,0.595
8 0.40,0.645
9 0.45,0.69
10 0.50,0.725
11 0.55,0~755
12 0.60,0.79
13 0~65,0.82
14 0,70,0.85
15 0,75,0.877
16 0.80,0.90
17 0,85,0.925
18 0,90,0.95
19 0,95,0.975
- 198 -
(i) U: YES
(ii) U: NO
(a) U: ANT
(b) U: EQU
· ( i) U: YES.
(ii)· U: NO
U: @ADD DISTFILE.EQUDAT
where element EQUDAT contains the x,y data pairs, one per
line in free format in order of increasing concentration.
(See exa~ple element, Table 7.1.)
@ASG,AX DISTFILE.
@XQT DISTFILE.BATCH
@ADD DISTFILE.BATDATA
NPTC ~ 2(NT+2)+1
NPTC ~ 2(NT+l)+l
7.21 Application
Subroutine Purpose
@MAP DISTIFILE.BINARYM,.BINARY
1 SEG BINARYl.
2 IN BINARY
3 SEG READBDl*,(BINARYl)
4 IN READBD
.5 SEG SIMPLEl* I (BINARYl)
6 IN SIMPLE
7 SEG PONSAVl *, (BINARYl) .
8 IN PONSAV
9 SEG RMIN1* I (PONSAVl)
10 IN RMIN
11 SEG OPLINEl*, (PONSAVl)
12 IN OPLINE
. 13 SEG FLOWSl*, (PONSAVl)
14 IN FLOWS
·. 15 SEG CHECl*, (BINARYl)
16 IN CHEC
17 SEG STEPDl*, (BINARYl)
18 IN STEPD .
19 SEG PSOPXYl*, (STEPDl)
20 IN PSOPXY
·-21 SEG FFINDl*, (STEPDl)
22 IN FFIND
23 SEG BINRESl*, (BINARYl)
24 IN BINRES
25 LIB DISTFILE.
- 206 -
@ASG,UP BDPLOT.
@USE 11,BDPLOT.
U: @XQT DISTFILE.BINARY
TABLE 7.21
1 METHANOL.
Component names
2 WATER
3 760.0,l Column pressure and unit code.
4 ANT Antoine constants specified.
5 7.87863,1473.11,230.
Antoine. constants
6 7.96681,1668.21,228.
7 64.7,100. Pure component boiling points.
8 0.95,38.1 XD,DTOT
9 1.16 R
10 PAR Partial condenser specified.
11 0.4,0.6 Vap & Liq Fraction in 2 phase
'distillate
12 NO 'IS XD OVERALL COMPOSITION?'
13 LIQ Phase defined by·XD
14 1 No. of feed streams
15 0 No. of side streams
16 0.39,98.1 Z,FTOT
17 1.04 Q
18 .1 Open steam replaces reboiler
19 0.8 Efficiency factor (Murphree tray
efficiency)
.. - 208 -
U: R (real) ·
U: Zs k=l,NS (ZS)
k
- 209 -
U: QS . k=l,NS (QS)
k
P: ENTER SIDE STREAM WITHDRAWAL RATES.
U: Fs k=l,NS (STOTS)
k
The positions of the feed and side streams in the column
are determined by the program to minimise the total· number of
trays required. Hence the above data may be inserted in any
order.
U: Z,FTOT
U: Q
U: TF
U: o (partial reboiler)
or 1 (open steam) .
U: Ev ·(real)
m
This is the last entry required for McCabe-Thiele designs.
* McCabe-Thiele designs only ..
- 210 -
or U: NO
U: VAP
q = (7.21)
y - x
where y and x are the equilibrium concentrations at the feed
temperature.
(7.22)
h.
l
= (7.24)
L~ [-Tc_1_·---T_k ] o '3 a
= iBP. TC. TBP
(7.25)
l
= l:y.H.
l l
where H . - h 1. + LH . T (7.27)
l i, D
TABLE 7. 22
1 METHANOL
Component names
2 WATER
3 760.0,l. Column pressure and code
4 ANT Antoine constants specified
5 7.87863,1472.11,230
Antoine constants
6 7.96681,1668.21,228
7. 64.7,100. Pure component boiling points
8 0 .. 915,38.1 XD,DTOT
9 1.16 R
10 TOT Total condenser specified
11 0.36,98.1 ZF,FTOT
12 57.8 Feed temperature
13 1.0 Efficiency factor (for ideal trays}
14 @ADD DISTFILE.ENTHDAT Enthalpy data elemerit.
. 7.24 Results
U: YES or NO
@ASG,AZX DISTFILE
@XQT DISTFILE.BINARY
~ADD DLSTFILE.BINDATA
MULTFS ERROR ... TWO STREAMS HAVE Two stream~, feed or _side
SAME. COMPOSITION in complex columns have
been specified with equal
compositions.
READBD ERROR Ht DATA INPUT ... ERROR Data does not conform
TERMINATION to specified format or
limitations e.g. PT > 10
atm or a reply to a
question is illegal.
ARRAY DIMENSION SIZE.EXCEEDED Number of data points
exceeds dimension para-
meter.
ERROR IN OPLINE
LOOP 'n' EXCEEDED 500 Similar to search errors
ITERATIONS. in RMIN. Increase size
of ACC in OPLINE ..
FLOWS TOTAL NUMBER OF OPERATING NPPS shoul~ be increased.
LINE DATA POINTS EXCEEDS
DIMENSION SPECIFICATIONS
Calculations.
The COMMON section of block BINCOM is used both
.in BINARY and in PACKED. Arrays dimensioned NPPS are used in·
Ponchon-S_avarit and packed column calculations, where internal
counter NINT determines the number of points defining the top
operatintj line. The size of the interval between points is
kept the same for both operating lines to maintain a constant
level of accuracy in the integration procedur~ in PACKED.
Hence the number of points defining the bottom operating line·
could exceed NINT. Also, certain arrays contain data for
both operating lines. Thus to ensure that sufficient space
is available s~t_NPPS as follows:
NPPS ?: 3 x NINT
7.31 Application
Subroutine Purpose
@MAP DISTFILE.PACKEDM,.PACKED
1 SEG PACKEDl
2 IN PACKED
3 SEG READBDl*~ (PACKEDl)
4 IN READBD
5 SEG PONSAVl*, (PACKEDl)
6 IN PONSAV
7 SEG RMINl*, (PONSAVl)
8 IN RMIN
9 SEG OPLINEl *, (PONSAVl)
10 IN OPLINE
11 SEG FLOWSl*, (PONSAVl)
12. IN FLOWS
13 SEG PACTYPl*, (PACKEDl)
14 IN PACTYP.
15 SEG PAKINGl*, (PACKEril)
16 IN PAKING
17 SEG PACRESl*, (PACKEDl)
18 IN PACRES
19 LIB DISTFILE.
TABLE 7.3
1 METHANOL
2 WATER Component names
3 760.0,1 Column pressure and code
4 ANT Antoine constants specified
5 7.87863,1473.11,230
6 7.96681,1668.21,228 Antoine constants
7 64.7,100. Pure component boiling points
8 0.915,38.1 XD,DTOT
9 1.16 R
10 TOT Total condenser specified
11 0.36,98.1 Z,FTOT
12 57.8 Feed temperature
13 @ADD DISTFILE.ENTHDAT (See Table 7.22)
After the first data element has been read, or these dat~
inserted ~onversationally, the runstream.proceeds as follow~:
U: 1 or 2; for 2: ,
U: .l, 2 or 3
U: 1.0
U: NO
U: 0. 8
U: YES
{b)
U: 3
U: YES
U: YES
(a) U: NO .
or (b)
U: YES
ALBKGH - lb ft~ 2 + kg m- 2
ASFSM - ft + m
AMLCON,AMVCON - viscosity values, ·see sections
7.345 and 7.346.
DLCON,DVCON - diffusivity values, see sections
7.343 and 7.344.
RH OCON - density values, see section 7.231.
SIGCON - surface tension values, see section
7.342.
GC gravitational force constant (Fig-
ure 1, Appendix A} = 4,18 . 10 8
· lb rn /lbfsec 2
Compound EXP
Alcohols and Water 0,25
Saturated, Unsaturated and Aromatic
Hydrocarbons·and Ethers 0,29
Other Organic compounds 0,31
Inorganic compounds 0,33
( 2) Element "ROLDA2
(iii) NDATl and NDA~2 can take any value ~ 1 and need
not be equal. For linear interpolation the accuracy depends
on the number of data pairs available.
Element SIGDAl
1. NSIGM Counter specifying availability of
composition-surface tension·. data· for
.mixture.
NSIGM=l - pure component data to be
used.
NSIGM=2 - solution dat~ available.
' 0
TC in C, PARA 1 and 2 - Sugden
k=l,NDATl T in °c in ord~r of
increasing T. SIGl in dyne cm- 1
(b) SIGDA.4
As above.
- 240 -
Element SIGDA3
This element is only required if NSIGM=2 in SIGDAl.
Element FMUDA2
T 1 ,AMUlk k=l,NDATl. FMUDA2 is required
k .
only if B1 s 0. Viscosity data
in centipoise.
Element FMUDA3
T 2k,AMU2k k=l,NDAT2. FMUDA3 is required
only if B2 s O. Viscosity data
in centipoise.
Elements VMUDA2,VMUDA3
These data elements are analogous to FMUDA2 and FMUDA3
and need be set up only if data tables ar~ available. If
they are used the data are inserted as Tk,AMUk with the
table ~et out in order of increasing temperature values.
Vapour ~iscosity data must be supplied in micropoise, or
factor AMVCON 1n PACKED must be altered so that the units
are converted to lb ft- 1 hr- 1 •
7.35 Result·Table
U: YES or NO
U: YES or NO
PACKED PINCH POINT OCCURS AT POINT ... , ... Pinch point detected.
ON THE EQUILIBRIUM CURVE. THE
REFLUX RATIO OR THE DISTILLATE
AND BOTTOMS COMPOSITIONS SHOULD
BE ADJUSTED ACCORDINGLY.
7.4 MULTICOMPONENT.DISTILLATION
1.41 Application
The multicomponent di.stillation program MULCOM is a
simulatiori package based on the calculation procedure
proposed by Thiele and Geddes [2]. The e method of con-
vergence, proposed by Lyster et al. [3] is used to obtain
a converged solution.
Subroutine Purpose
@MAP DISTFILE.MULCOMM,.MULCOM
1 SEG MULCOMl
2 .IN MULCOM
3 SEG READINS*, (MULCOMl)
4 IN READIN
5 SEG QFLASHS*, (MULCOMl)
6 IN QFLASH
7. SEG FLOWEQS * I (MULCOMl)
8 IN FLOWEQ
9 SEG FLOWNES * , (MULCOMl)
10 IN FLOWNE
11 SEG ABSTRPS*, (MULCOMl)
12 . IN ABSTRP
13 SEG VBLBS*, (MULCOMl)
14 IN VBLB
15 · SEG VDLDS*, (MULCOMl)
16 IN VDLD
17 SEG BDCALCS*, (MULCOMl)
18 'IN BDCALC
19 SEG THECALS * , (MULCOMl)
20 IN THECAL
21 SEG BDCORRS * I (MULCOMl)
22 IN BDCORR
23 SEG VLSTRPS*, (MULCOMl)
24 IN VLSTRP
25 SEG VLRECTS * , {MULCOMl)
26 . IN VLRECT
27 SEG RUNRESS * , (MULCOMl)
28 IN RUNRES
29 SEG OUTPUTS*, (MULCOMl)
30 IN OUTPUT
31 LIB DISTFILE.
J.
- 249 -
@ADD DISTFILE.STARTMC
@ASG,UP .PRINTFILE.
@USE 16,PRINTFILE.
@XQT DISTFILE.MULCOM
TABLE 7.41
1 6 No. of components· · ·
2 14 *No.of trays
3 9 *Feed tray number
4 150~0,3 Condenser pressure and code.
5 10.0,l Tiay pressure drop and code.
6 2·5. 0, 1 Condenser pressure drop and
code
7 236.0,2,115.0,2 Estimate of reboiler and
condenser temperatures with
co~r~sponding codes.
8 METHANE
9 ETHANE
10 N-PROPANE Component names
11 N-BUTANE
12 N-PENTANE
13 N-HEXANE
14 100.0 . FTOT
15 0.03,0.07,0.15,0.33,
0. 30 ,o .12 J Zi i=l,NC
16 82.2 Tp
17 YES 'ARE ENTHALPY EFFECTS TO BE
CONSIDERED?'
18 NO 'IS FEED PRESSURE COLUMN
PRESSURE?'
19 PAR Partial condenser specified.
20 YES **'DO YOU WANT TO USE YOUR OWN
ENTHALPY ROUTINE?'
21 1 Antoine constants specified.
22 6.61184,389.93,266.0
23 6.80266,656.40,256.0
. 24 6.82973.,813.20,248.0 Antoine constants
25 6.83029,945.9,240.0
26 6.85221,1064.63,232.0
27 6.87776,1171.53,224.366
28
29
YES
0.0001
JConvergence limit.specification
30 'NO Efficiency data specification
31 2 (See section 7.434.)
32 0.91~0.92,0.95,0.98,
33
1.05,1.09
1.2,38~46
J R,DTOT
* Trays are numbered from the bottom, excluding the reboiler
and condenser
** See Table 7.42.
- 252 -
U: integer·value
u: inte.ger value
P: ENTER FEED TRAY POSN. (NO.FROM BOTTOM,REBOILER=O)
U: integer value
or NO
- 253 -
U: TOT or PAR
U: YES
U: GO
- 254 -
P: START OF COMPUTATION.
U: GO
U: END
P: SUCCESSFUL EXECUTION.COMPLETED.
U: NO or YES
U: real value
H.
J
= L:y . . H . .
l,J l,J
(7.4.4)
and h.
J
= L:x . . h . .
l,J l,J
(7.4.5)
U: 687.0,99.64,1.9395
The factor T./100 will set the decimal point correctly. This
J
procedure was proposed by HolLand [21].
The routine reads in its own data using the UNIVAC ERTRAN
facility, and communicates with the calling program through the
calling list. Data input is thus not considered in the run-
stream.
U: NO or YES
TABLE 7. '42
1 o.,2521.92,175.417
2 o., 3345 .. , 150.
. .
3 0. ,2960. ,400. Coefficients for liquid
4 o.,3681.33,293.334 ] enthalpy function a. ,b:,c.
1 ]; 1
·5 0.,3845.,250.
6 7488.65,1750.51,79.273
10
7
8
9
9592.01,1843.56,221.433
8002.89,4382.70,-401.587 Coefficients for vapour
11645.77,2770.55,156.345 enthal~y function a. ,b. ,c.
12004.88,3168.66,67.456
1 1 1 l
Calculation procedure:
(a) From Antoine's equation
p = lO[Ai+Bi/(Ci+Tj)J TJ· in oC (7.4.6)
v l,J
..
. . :: PV . . x.l,J./PT
y. l,J
. l, J .
1 (NEQUIL)
·A.l ,B.
. l
,C.l i=1,NC (Antoine constants, one set per line·
light-heavy component order)
T=Tj/100, (7.4.8)
. OR
T . in .
J
Data in free fo~mat, coefficients adjusted for.T=Tj/100.
2 (NEQUIL)
Calculation procedure:
K = a + bT + cT 2 + dT 3 · (7.4.9a)
bk .
T=T./100,T. in OF
- e i + f 1.T + g.T
a i,j- 2 J J. (7.4.9b)
1
3 (NEQUIL).
*The same READ statement is used for all three sets bf coef fi-
cients. The fo~rth array must therefore be filled in each
case with real values or .zeros as required.
E 1 I 0 I E2 0 I ~ .. (Reboiler stage)
. I
Four files are required and the name of each must be six
characters in length~ File names are typed in on one. line,
spaced with commas.
U:.DFILE1,DFILE2,DFILE3,DFILE4
@FREE PRINTFILE.
@DELETE PRINTFILE.
TABLE 7.43
1 4.750,1.200,0.303,-2.630
2 1.648,4.124,-1.530,1.74
3 -0.966,7.279,-3.755,7.580 Coefficients for Kobe
4 6.945,8.873,-4.38,8.36 function [ 5 5~ .. ·
5 1.618,10.85,-5.365,10.10
6 1.657,13.19,-6.844,13.78
7 -2,-5,-9 Exponents for coefficients*
8 121.87,-161~6,-82.5
9 11.87,-88.9,32.1
10 . 101.76,-42.1,96.8
11 92.09,-0.5,153.0
12 85.38,36.08,~197;2
13 80.48,68.74.234.8
14 1. 0' 16. 04
15 1. 0, 30.07
16 1. 0' 44.; 09 CPMW l. , LHMW
. l
.
17 1. 0' 58 .12
18 1. 0, 72 .15
19 1.0,86.17
20 1.8,1.8,273 .. CPCONV,LHCONV,TCONV
* See section 7.23 and Table 7.22
- 268 -
SUBROUTINE ENTHAL
DO 11 I=ld·lC 0022
BC< l >=aC< I H•1D.••Nl3CP 0023
CC ( l l =CC ( I l • 1 0 • *•~ICC P 002q
Dc<ll=DC(ll•lO.••NDCP 0025
11 CONTINUE 0026
100 CONTINUE 0027
NTIME=99 0028
IF<NEN.EQ.ll GO TO 200 0029
IF<NEN.EQ.2) GO TO 103 0030
c CALCULATION OF vApOuR AND LlQlJlD STREAM ENTHALPY•
DO 12 J=l •NP2 0031
SUMHL=0,0 0032
SUMHv=o.o 0033
T=Tp(Jl+TCONV 0034+
DO 13 l=l •Mc 0035
AFAcT=Ac (I)* ( T-TeASf.) 0036
BFACT=0c<Il•(T•*2.-TBASE**2 0 l/2, 0037
CFACT=cc< I l•(T••3.-TsAsE•·•3, l/3. 0038
DFACT=oc<I>•<T••4.-TBASE••q,)/q, 0039
Cp=AFAcT+BFACT•cFACT+DFACT ooqo
H=CP*CpMw<Il•CpcoNv ooq1
SuMHL=SUMHL+H•x<I•J) 004+2
TFACT=ITC< I l-Tp(Jl I/ITC( I l-H~P( Ill ooq3
LHT=LH(l)•(TfAcT••0.3B)•LHMW(l)•LHCONv OO'i'i
SUMHV=SUHHV+(H+LHTl•yll•Jl OO'iS
13 CONTINUE 004+6
HL l J l =SUMHL·•ENCON\/ 00'+7
HVlJl=SUMHV•ENCONV 00'+8
12 CONTINUE OO'f9
c CALCULATION OF CONDENSER ouTy,
HD=HL<NP2l 0050
IFINV,GT.ll GO TO 102 0051
C TOTAL CONDENSER OPERATION,
QC=VR1NPll*cHVtNPl)-HL1NP2J l 0052
GO TO 103 0053
102 CONTINUE OOSq
SUBROUTINE ENTHAL
C PARTIAL cONpENSER OPERATION,
QC=VRcNPl1•HVcNPl1-cVR(NPl1-D1•HL(NP21-D•HVcNP21 0055
HO=HV<NP2l 0056
103 CONTINUE 0057
C CALCULATION OF FEED STREAM ENTHALpy,
SUMFL=D. 0058
SUMFV=O, 0059
T=TF+TcONV 0060
DO llf I=l•NC 0061
AFACT=Ac<ll•(T-TsASEI 0062
BFACT=ec<I>•<T••2.-TeAsE••2.112. 0063
CFAcT=cc<I>•<T••3.-TaAsE••3,l/3, 006'+
DFACT=oc<I>•<T••q.-reAsE••q.11tt. 0065
Cp=AFAcT+BFACT+CFAcT+DFACT 0066
H=CP*CPMWII>•CPCONV 0067
SuMFL=SUMFL+H•xF!Il 0068
TFAcT=<Tc<Il-TFl/(TC(Il-TBP(l)) 0069
LHT=LHIIl•(TFAcT••0.38l•LHMWIIl•LHCDNv 0070
SUMFV=SUMFV+(H+LHT>•yF<ll 0071
1 't CONT HtuE 0072
HFEED=<Ay/F•SUMFV+AL/F•SUMFLl*ENCONV 0073
IFCNEN,EQ,2) GO TO 999 007q
QFTOT=F·•HFEED 0075
c CALCULATION OF REaOILER ouTy.
QR=D•l-ID+B*HL ( l )+QC•QFTOT 0076
DM=HD+QC/D 0077
BM=tlL < l l -QR/B 0078
C CONVERSION TO s.I. UNITS
QC=QC•CONFAC 0079
QR=QR*CONFAc 0080
QF=HFEED 0081
GO TO 999 0082
SUBROUTlNE ENTHAL
200 CuNTlNUE 0083
C CALCULATION OF ENTHALPY FOR Q yALUE DETERMINATION,
THOLD! l):TF OOB'f
THOLI) C 2 > =TF 0085
THOLD!Jl=TO 008~
THOLD!ttl=TB 0087
D0 21 J = l • 'f 0088
T=THDLDIJl+TCONV 0089
SL=O. 0090
sv=o. 0091
DO 22 I=l •MC 0092
AFACT=AC< I l•lT-TBASEl 0093
BFACT=BC<I>•CT••2.-TBASE••2,l/2, 009q
CFACT=cc<I>•CT••3.-TaAsE••3.l/3. 0095
DFACT=oc<Il•(T••~.-TBASE••q,1;q. 0096
cp=AFAcT+BFACT+cFAcT+OFACT 0097
H=CP*CPMW(l)•CPCONV 0098
SL,=SL+H•XF I I I 0099
TFAcT=<Tc< I l-THOL£1(j) )/ITC( I >-TSP( I I) 0100
LHT=LHIIl*lTFAcT••0.381*LHMWIIl•LHC0Nv 0101
SV=SV+!H+LHTl*YFII) 0102
22 CONTlflUE 0103
IF(J.EQ, 1 l Sl=Et!CONV•SV 01oq
IF<J•EQ,21 s2=ENcoNv•SL 0105
lf(J.Eo.31 53=ENCONv•sv 0106
lf(J.EQ.ql sq=ENCONv•SL 0107
21 CONTINuE 0108
999 CONTINUE 0109
RETURN 01 1 0
END 0 l 11
SUBROUTINE ENTHAL
- 269 -
. READIN ONLY TOT OR PAR IS ACCEP- This is the only data input
TABLE RETYPE NOW. error searched for. The
user is expected to ensure
that dimension parameters
and data formats are correct.
- 270 -
7.51 Application
1. Multicomponent systems
(a) Temperature profile.
{b) Liquid and vapour flowrate profiles.
(c) Bar diagram showing compositions of distillate
product.
- 271 -
2. Binary systems.
IN PLOTFILE.PLOTTER
IN PLOTFILE.PLOTTS
IN PLOTFILE.PLOTFS
IN PLOTFTLE.PLOTDS
IN ~LOTFILE.PLOTCS
IN J?LOTFILE. PLOTBT
IN ~LOTFILE.PLOTMT
IN PLOTFILE.AXIS
IN PLOTFILE.MAXIS
LIB CALCOMP*SUBR
@MAP PLOTFILE.PLOTNM,.PLOTTER
IN PLOTFILE.PLOTTER
IN PLOTFILE.PLOTTS
. IN PLOTFILE.PLOTFS
IN PLOTFILE.PLOTDS
.IN PLOTFILE.PLOTCS
IN PLOTFILE.PLOTBT
IN PLOTFILE.PLOTMT
IN PLOTFILE.AXIS
IN PLOTFILE.MAXIS
LIB TEKFAST*CALPREV,TEKFAST*TCSAG
@ASG,AZX BDPLOT.
U: @XQT PLOTFILE.PLOTTER.
(U: 1)
U: Integer value
P: . ENTER DATA FILE NAMES.
(U: 5)
U: 35000.,-22000.
U: @FIN.
@RUN card
@ASG,hX DISTFILE ..
@XQT DISTFILE.program name
Data cards, or @ADD DISTFILE. data element
@FIN
@RUN card
@ASG,AX BDPLOT (required for binary systems only)
@XQT PLOTFILE.PLOTTER
Data cards for required plotting procedure (see
section 7. 5) .•
CHAPTER . 8
- 280 -
- 281 -
II II II II II II
NG3 14*
II II II II II
NG4 15* II
Range . Application
1:...9 READ FORMAT statements
1000-9999 WRITE FORMAT statements
10-99 .DO LOOPS
100-999 GO TO and IF statement addresses.
Range Application
All other numbers are used in blocks for each stage of the
particular calculation procedure, e~g. in BATCH.
application.
B Bottoms product
D Distillate product
F . Feed stream
G Vapour or steam entering bottom
of column
H Enthalpy
L Liquid stream (real variables)
p Pressure
Q Feed q-value or heat duty
R Rectifying section
s Stripping section
T Temperature
v Vapour
x Liquid composition·
y Vapour composition
z Feed composition
TABLE 8.511
0.1
t:
ID
....
ii! 0.6
""
t..
.,~
-: o.s
...:c
a
...
:::.
~
"'....
0.)
o.t
0.1
a.a
a.1
..."'
ID
...a:
(.J
t..
0.6
~
ID
-: o.s
....:c
ID
(.J
0.4
""
~
..."'~ 0.)
o.t
0.1
TABLE 8.512
Problem 8.521
(System described by Figure 8.524.)
A solution of methanol and water containing 0,38 mole
fraction methanol is distilled at a rate of 100 kgmoles/hr
in a column fitted with a partial reboiler and a partial
condenser. A two phase distillate product is withdrawn with
/
- 298
BllfRRY C8MTlll\J8US ·orartLLATl81f
"CCRB(~THlfL£ DIRGRR"
Jee "°"B(R• I •26/4
1.0
0.9
0.11
0.1
'II:
..."'
...~"' 0.6
.,~
s; o.s
;..
:c
B
0.4
"'f
:::>
...a: 0.3
0.2
0.1
0.9
0.11
0.1
.,
'II:
;::
(J
a: 0.6
..."'
.,s;
·~
o.s
....
""
B
0.4
!i
...~ 0.3
o.t
0.1
o.9
0.11
0.7
'Z
...u
ID
......a: o.&
~
ID
': o.s
,;,,
"'
B
0.4
"'f
::a
...a: ii.,
0.2
. 0.7
'Z
...u
ID
......
a: 0.6
~
1D
": o.s
,;,,
"'
...B 0.4
,..fa:
o.,
0~2
a.1
TABLE 8.521
0.9
o.a
o.7
.'Z
.-..
I!)
~
as 0.6.
I&.
_,
laJ
I!)
z:;
o.s
II.
z:;
.~
as 0.4
=>
I!)
II.
a:
>
0.3
o.~
0 .1
f"
o.o~------.--~__.,.~~-.-~--1.-.--~~..-~---,.--~-,.~~--.-~~-.--~---t
TABLE.8.522
0 11.0
"
67.0
43.0
-n .o
~41.0
BlllRRY C811Tlll\J8\JS·OISTILLRTl811
·pallCHBtl-SR'IRRIT OES!Glf
X-Y DIRGROl1
...c
a
~ 69.6
69.0
"-26.0
o.e
0.1
2:
..."'
U.
......
er 0.6
"'
J
Cl
": o.s
.,uc
CL
It! 0.4
"'"'er
CL
>
Q.3
0.2
o.s
0.1 a.z a.J D.4 a.s ·a .tS a.1 CJ.8 o.9 s.o
LIGUIO ccn~ •• nOL! rnncrtc~
x v A KY KX x A KY KX
TABLE 8. 5.32
Table. codes:
Packing Type: R - Raschig rings; B = Berl saddles
Data used: basic - data specified for problem 9.11 in Treybal
[9] p.365.
Ant.const.- basic with Antoine constants used to generate
equilibrium data.
R - basic with reflux ratio changes.
q - basic with feed temperature changed.
Pressure drop: from Figure 1, Appendix A.
ZR' ,ZS : height of packing in rectifying and stripping section
respectively.
Problem 8. 541.
(Data f.rom· Example 9.13, Treybal [9] p.388)
The system considere.d consists of a six-component hydro-
carbon system in a column containing 14 trays. Table 8.541
shows the abbreviated result table printed on the terminal
in demand mode executions. Table 8.542 shows two sections
of the detailed r~sult table that may be obtained via PRINTFILE
(see section 7.422). The full table shows similar data for
each tray.in the column, and overall material and enthalpy
balance fig~res. Treybal's results are shown in parenthesis
in Table 8.541. The distillate .composition and temperature
profiles are in close agreement. The discrepancies in the
heat duties are due to the enthalpy data chosen.
TABLE 8.541·
11 68.72 29.60
10 68.06 28.98
FEED 67.44 93.93
8 32.39 99.18
7 37.64 95.99
6 34 .. 45 97.59
5 36.05 98.82
4 37.28 99.71
3 38.17 100. 30
2 38.76 100.58
1 39.04 100.39
RE BOILER 38.85 61. 54
Problem.8.542
A benzene-toluene-xylene column is considered. Figure
.8.542 shows the composition profiles for the saine system under
the following conditions:
7 I j{J
'· , l h 2 ·JO l + tli.I :, • t.n ,JOSB21-fll
3 I 'f, 9 'I ,.Jll r.~;?. 2+:1u 11, ?5 ,23'+1n8+uo
'I 1:1, .h1 • 3'1!l[)2'!+•10 t°rl. 71 • 71.1 oS3+uo
5 • J3 • 3 'f 't 2 ~~ 9 - D?. . , 11 , 21_71'fB..,.Q1
6 • ul.J. • l s ;., .• ~-, (:1 - :.I J
,00 ,289260-0'1
TOT•\L~S: ---------------------~--------------------------------------------
J:'"j. ttf. I. uOll·l Jll,77 1.0000
-------------------------------~----------------------------------·
c G 'l[1JCl•S '.: 1-. Tr.I Ir rr? i\ Tll fl r. = c;o,97 flEc• c
'• l 2. ~~ 'f ,JJlul7+:Ju ;1(1,76 , .)2906'..>+oo 2.7. 7.b ,'+11573+00 36,55 ,387bu7+uo
~ ~ •• j p • l 'l'i 77 'I .. ;J;J 7."Lf. {J ~ .• yi u 2 2 o +oc; I CT, 16 .1soA77+oo JS,75 ·,379'+7'1+uo
(> • Q<j , 2'j',9S3-J 1 11 .116 • t 75 22J+oo I, 'l'I .21.1'190-01 12.e3 , I J620'1+1JU
a.a
..
;:::"' a.e
~
~ a.4
"'
3 Ii 8 9 ID II 12
' 6
TIRY rllJllBER
13 Iii
"ULTICBllPBllEllT DISTILLRTl811
THl£LE-G£DO(S PRBGRAll
DISTii.i.RTE C811P8SITl811S
a.a
I;::: a.ts
....~
~ a.4
"'
a.2
2 3 4 5 6
Cll11'9NEllT 118.
~so.a
400.a
..,~ .
so.a
.;: 3aa.a
t!
e...
a:
112.a .. 2sa.o
~
...
A.
~
~· 74.Q ~ 200.a
1111.0
"'
:; 1sa.a
s11.o 1aa.a
so.a . so.a
e ta 24 !II
0
' 0 II It 15
O·!!··
0 l 4 e 13
. fltRY t1Ul13EI!
.
4 Ii II , e
t::-== I
9 10 11
I
l2
"1
' l:!il
TltAY MUli!'IER
a.r
o.oi0 __:=::,::=:=::::::2====.=3~·====~.=====11:;====;s=====.,!====~at"'-~-.!s~~1~a~~~11
TRRY Nlm8Ert
tutorial problems.
Problem 8.543
This problem, taken from Holland [21], involves a five
component hydrocarbon system. It is used here to compare
the use of Antoine constants and equilibrium constant poly-
nomials· ($ection 7. 433). Although polynomials in temperature
are widely used in industry to correlate equilibrium data,
the procedure is cumbersome for setting tutorial problems.
Antoine constants are readily available for a wide variety of
compounds and are thus easier to use. Figure 8.543 shows.
the composition and temperature profiles for the two systems.
The temperature profiles are superimposed for ease of compari-
son. It is noticeable that although the composition profiles
are very similar, the temperature profile generated by Antoine
constants is shallower than that for the temperature polynomials.
For standard tutorial problems this is not a serious disadvan-
tage, because the overall behaviour of the system is represen-
tative of a real column. The enthalpy data correlation
corresponding to NENTH=2 (see section 7.432) was used for both
runs. Coefficients were taken from Holland [21].
Ii 6 7 8 9 10
riAY NUl18ER
.2 3 Ii 6 7 8 9 10
rrAY NUl18ER
.
grams do not consider enthalpy effects in binary systems. The
program PACKED has proved useful in revealing certain errors
in published sample solutions. This has suggested that the
effect of holdup on the performance of packing materials should
be investigated more thoroughly.
- 322 -
- 323 -
14~ Friday, J .R. and Smith, B.D., "An. analysis of the equili-
brium stage separations problem-formulation and conver-
gence", A.I.Ch.E.J., 10, 5, 698-707, (1964).
63. Leva, M., "Tower packings and packed tower design", 2nd ed.,
U.S. ~toneware Co., Akron, (1953).
- .32 8 -
1.00
0.40
-
0.20
---
,...._
~
r-- r--....
1.224
a.
...:I
0.10
~ r--_ ""' ~oc ing
::>
c.
(.)
--=.....:: i-:::._ - -r-..
~
"- '--...
~~ ... ~
~r-..
-
bO 0.408 (
'-'
11 -- i----- .
- ,____
B -- i--
~
..........
~
,...._
a.::;;I a.H 0.04 ..._i-- -- ------
----;:~ ~
r-.. --
~~
'-' 0.204
"'.
0
-....:i
;:1
u
·~
0.02
0.01
O.Ol:SL
- ~ r-._
~ " ~~
r--- "- ~ ' ~
"- ' ~
"" ~
' :'\. "\. ~
N
,...._
- n_Q4l
...........
~ "" ~ '"\.
i\."
'-'
LJ
::>
0.004
'I -- - "" I'\ ~·
!'\"\
0.002
Vapou
~--- .
pl es SU re
.p.., -
~
~
!"--..... ~ ~\ \\
'~
~
!".... \' ~ I\
0.001
0.01 0.02 0.04 0.1 0.2 0.4 1.0 2 4 6 10
1, Pv o, s
V' (-)
PL
Broken lines:
A - upper limit of loading zone.[62]
B - lower limit of loading zone [62]
...: Al -
. - A2 -
kPaim Element
0.041 FLOODl
0.084 FLOOD2
0.204 FLOOD3
0. 408 FLOOD4
0.816 FLOODS
1. 224 FLOOD6
TABLE 1
(Data frcim Treybal [9] p.168)
PHTW(l0- 5 ) (L')BETA
Correlations: ¢tw = d 2
s
¢ = PHSW
sw (d ,swP
s
Raschig Rings Size (mm)
Berl Saddles
6 , 8 5 ( 10 .;. . s) µLo , o 2 0 , o , 9 9
Raschig rings
d1,21po,31
s L
(
11641 10 -4)µ'0,04 0 ,o,ss
L
Berl saddles
(b) H*
Ceramic Raschig rings
O 897 L10,s1µ,o,13
L
]Ji < +2,0 cp H* =
I
0 5 7 SL I 0 I 5 7 ]J L
I 0 I 31
]Ji > 12,0 cp H =
I
TABLE 2
TABLE 3
Packing Characteristics: .
NOMENCLATURE
Code Prograin
BAT BATCH
BIN BINARY
PAC PACKED
MUL MULCOM
PLO PLOTTER
SPL Special - variables falling in this
category are specific to the routine
in which they appear.
T Variable Type: R - real
I - integer
A - alphanumeric
DIM Dimension type 1 - single dimension
2 - two dimensional array
COM Common variable - variable appears in
COMMON block.
PARA Dimension parameters (see below) .
- Bl -
- B2 -
. Subscripts/Arguments:
i I component number
j J general tray number
k K general counter
m M tray number in· stripping section
n N tray number in rectifying section
MC Components
MP Trays
PROGRAM VARIABLE TEXT SYMBOL T
- DESCRIPTIOH BAT BIN PAC MUL ·PLO SPL DIM COM PARA
A R Absorption factors defined by Equ.5.18 * * 2 MC,MP
Ai , J. *
A,B,C Ai,Bi,Ci R Antoine constants • • * 1 2
*
AA,AAW · .· R ~pecific interfacial surface area for
a,aAW "*
mass transfer ft 2 ft- 3 (Equ.4.12,4.16)
. ABCIS ABC IS R x-axis coordinate on flooding
correlation
I equ.4.17) chart (·Fig .1 Appendix A
*
PROGRAM VARIABLE TEXT SYMBOL T DESCRIPTION BAT BIN PAC MUL PLO SPL DIM COM PARA
CB,SLOPB R c,m in y=mx+c for operation line in
bottom section of column for. open
*
steam operation.
CDLDV .. R Molar ratio of liquid and vapour in
two phase distillate product.
*
CF cf R Characterization factor of packing
(Table 3, Appendix A) ·
*
CFACT,SLOPE R c,m in ycmx~c used generally in
calculations.·
*
CFCT,SLPE R c,m in y:mx+c ftir each operatin~ 1 12
line on McCabe-Thiele diagram.
* *
CHEKL,CHEKV R Liquid and vapour fl6wrates from
previous iteration.
*
CHEKLU, .CHEKLL R Upper and lower limits constraining
new liquid flowrates.
*
CHEKVU,CHEKVL R Upper and lower limits constraining
new vapour flowrates.
*
CMAT R Array required by UNIVAC routine 1 20
GJR (see AMAT)
*
COE FF R Solution vector in least squares 1 20
curve fitting procedure.
*
COMPNO R Storage of component numbers 1-NC in ttl
* * 1 MC U1
real form for use by PLOTTER.
CONFAC . I
R Conversion factor: kJ/hr - kW
CP CPi R Heat capacity defined by Kobe [55]
correlation (equ. 3.19).
*
k:PCONV, R Cp conversion factors (see section
CPMW 7.235).
* * *
* * 1 * 2
CPJIO c R Molar density of heavy component
(liquid phase) (equ. 4. 9)
* ..
D di R Molal withc1.rawal rate of component i 1 MC
in the distillate (equ.5.13)
* *
DE:L R Gen~ral difference factor in
calculation
*
r>ELB,DELD llB 'llD R Enthalpy coordinates of Ponchon- * .I
Savarit ti points.
* *
DELBC,FACT, R Factors used in determing the number
NFACT. I of integration intervals in the
*
stripping s~ction based on the size
of the interval used in the rectifying
section (see subroutine OPLINE)
DELDM liDm R ti point defining minimum reflux
in subroutine Rl1IN (equ.3.25) *
DELTAC,DELTAP R Pressure drop across condenser and
trays respectively (in MULCOM)
* *
DIAM,DMI R Diameter of packed column (metres)
*
DIFUSL,DIFUSV DL,Dy R Calculated liquid and vapour
d:lffusivities. *
I
.l'..
PROGPAM VARIABLE .TEXT SYMBOL T DESCRIPTION BAT DIN PAC MUL PLO SPL DIM COM PARA
DL,DV R Liquid and vapour fractions of a two * *
phase distillate.
DLCON,DVCON R Conversion factors: cm 2 s.ec- 1 - ft 2 hr- 1 *
DS ds R Diameter of sphere. with same surface *
area as a packing particle! ft.
(see Appendix A,Table l). -
DTOT R Total molal Distillate product *
withdrawal rate.
* * * *
. .
E e: R Fractional void volume (dry bed)· *
equ. 4 .11 (see Appendix A, Table 3).
EFF EM R Murphree tray e~ficiency .factor for * *
Binary system (equ. 3. 7).
IEFFV Evi .. R Hollandfs vaporization efficiency 2 MC,MP
,J (equ.5.61),
* *
IENCONV R Conversion factor: Btu/lbmole - *
kJ/kgmole.
* *
~o e:o R e: for irrigated packing (equ. 4 .11) *
IERROR,ERRD R Errors in convergehce criteria
checks (see section 5.58)
*
IEVENS,ODDS R Simpson's Rule factors (see section tiJ
2. 54).
* O'\
td
!-'-'
00
APPENDIX C
XDSTEP 2.51
BINBPT 2.521
BINDPT 2.522
XYALFA 2.53
SIMPS 2.54
SEARCH 2.55
- Cl -
- C2 -
Subroutine section
HTSOLN 3.58
HF IND 3.510
RMIN 3.511
OP LINE 3.512
FLOWS 3.513
AVEMW 3.514
CHEC 3.515
STEPD 3.516
PSOPXY 3 .517
FF IND 3.518
BINRES 3.519
Subroutine section
PACRES 4.51
PACTYP 4.52
PAK ING 4.53
FDATA 4.54
VIS CL 4.555
VIS CV 4.556
RHOH20 4.557
Subroutine section
READ IN 5,51
EQUCON 5.52
ENERGY 5.53
QFLASH 5,54
BUBCAL,DEWCAL 5.55
FLOWEQ,FLOWNE 5.56
ABSTRP,VBLB, 5.57
VDLD,BDCALC, "
BDCORR,VLRECT, "
II
VLSTRP
THE CAL 5.58
RUNRES,OUTPUT 5.59
Subroutine section
PLOTTS 6.31
PLOTFS 6.32
PLOTDS 6.33
PLOT CS 6.34
· PLOTBT · 6.35
PLOTMT 6.36
SUFIROUTINE TEACH( I l 0001.
NTP;:S 0002
GO TO 1100,200,300,'fOOld 0003
1 U 0 C 0 NT I iJ U E 0004
WRITEINTP• 1000) ooos
1000 F0RMAT(/T2,•THIS rs A alNARy eATcH DisTILLATION SIMULATION pROGRAM 0006
1.•.1T2,•sysTEMS OpERATING UNDER EITHER vARJAaLE OR CONSTANT REFLUX 0007
2'•/T2•'CONDITioNs CAN RE CONSIDEREn.••/T2••THE pROGRAo IS LIMITED 0008
3TO SYSTEMS FOR ~HlCH NORMAL'1/T21'HCCABE-THIELE ASSUMpTIONS HOLD•' 0009
~·/T2t'pLOTTJNG ROUTINES ARE AvAlLABLE FOR coNsTRucTING MCcAaE-THlE 0010
5LE'•/T2•'x~v DIAGRAMS FOR EITHER QpERATioN MODE.•> 00 l l
WfHTEINTP• 1001 l 0012
1001 FORMATl/T2,•RF.:rER To Tt1E oisTILL.,ATION PACKAGE MANUAL•sEcTION 11•1/ 0013
JT2•'FOR FURTHER INFORMATION,') OQlq
GO TO 999 0015
200 CONT I rJuE 0016
rm I T E ( rH p ' 2 0 0 0 ) 0017
2000 FORMAT(/T2,•THIS IS A elNARy cONTlNuous oisTlLLATION DESIGN pROGRA 0018
1M.'•/T2•'1T WILL COMPUTE THE NUMBER OF THEORETlCAL STAGES REQUIRED 0019
2't/T2••To AcHIEvE A SpEClFIEo TOp pRooucT puRITy.•,1r2,•A MURPHREE 0020
3 PLATE EFFicl[f'lCY rAcTOR MAY BE SpEClFIEo.•dT2·'THE DIMENSIONS OF 0021
~ THE COLUMN REQUIRED ARE NOT cALcuLATEo.•/T2t•SySTEM5 FOR WHICH EI 0022
STHER 11ccAnE-THIELE OR pONcHON-SAvARIT•,/T2,•ASSUMPTIONS HOLOtMAY B 0023
6E cONSJOEREp.•.112.•pLOTTING ROUTINE~ ARE AVAILABLE FOR CONSTRucTl 002'1
7NG STANDARD••/T2,'DlAGRAMS FOR EITHER DESIGN TECHNIQUE•') 0025
Wf~ITE<!Hp120D1) 0026
2001 FORMAT(/T2,•REFER TO THE DISTILLATION PACKAGE MANUAL•SECTJON 2,•,/ 0027
1T2•'FOR FURTHER llJFORMATION.'l 0028
GO TO 999 0029
SUBROUTINE TEACH
300 CONTINUE oo3u
WRITE(NTP•3C001 0031
3000 FORMAT!/T2,•THIS rROGRAM DCSIGNS pACKED COLUMNS FOR DISTILLATION 0 0032
lF'1/T2,•elNARy SOLUTIONS.•11T2,•THE pONcHON•SAvARlT METHOD JS usEo 0033
2 To DETERMINE THE OpERATING'1/T21'DlAGRAM·'•/T2••THE HEIGHT OF pAc 003lf
3KING REQulREo IN EAcH sEcTION OF THE cOLuMN't/T2·'IS oETERHlNEo BY 0035
~ INTEGRATlON•USlNG SIMpSONS RuLE,•1/T2,•MASS TRANSFER cOEFFlCIENTS 0036
5 ARE COMpUTEo ustrJG SHULMAN5•1/T2•'CORRELATIONS ANO PACKING oATAo• 0037
61/T21'uATA FOR CERAMIC RASCHIG RINGS (~ slzES) AND BERL SADDLES' 0038
71/T2•'(3 SlzES! ARE INCLUDED IN THE PACKAGE,'> 0039
WRITEINTP•lOOll 00'+0
JOUl FORMAT</T2,•REFER To THE DISTILLATION pAcKAGE MANUAL1sEcTION 3,•,/ 00'+ 1
lT2,'F0R FURTHER INFORMATION,') 00lf2
GO TO 999 OO't3
qoo CONTINUE OO'H
WRITE<NTP•'+OOO) OO'tS
'+000 f0RMAT(/T2,•TliIS Is A HULTicOMpONENT oISTlLLATION SIMuLATION pROGR 00'+6
1AH•'•/T2,•THE CALCULATION pROctouRE usEo IS THAT FIRST pROpOSEo BY 00'+7
2' t/T2t•THIELE ANO GEooES,cOMelNEo wITH HOLLANDS THETA METHOD Of'' 00'+8
3/T2•'CONyERG£NcE.•,/T2o 1 THE pROGRAM Is LIMITED TO SySTEMS nlTH ONE 00'+9
't FEED AND'•/T2o'NO SIDE STREAMS.'l 0050
WRITECNTP•lfOOl) 0051
qoo1 FORMAT(/T2o•REFER To THE DISTllLATlON PACKAGE MANUAL•sEcTION q,•,; 0052
1T2, 1 FOR FURTHER INFORMATION.•> 0053
999 CONTINUE OOS't
RETURN 0055
END 0056
SUBROUTINE TEACH
/
C MAINLINE PROGRAM FOR RATING OF BINARY BATCH DISTILLATION SYSTEMS,
c EITHER c-ONSTANT OR yARIAaLE REFLUX OPERATIONS CAN BE cONSIDEREO,
PARAMETER NPE0=55 0001
PARAMETER tlPTC::::SS 0002
PARAMETER NPBS::::lQl 0003
DIMENSION A(21 •B(2) •c<2> •FutJc<Npss> •TITLE5(2,5) OOO't
DIMENSION XDATA<NPBSl•XEQUlL(NpEQ>•YDATA(NPBSl •YEQUIL(NPEQl oaos
COMMON ALFA(NpEQl•ALFCON,R 0006
COMMON MALFtNDATA•Npl•NTc 0007
COMMON X(NPTCI •XALF<NPEQ) •XD•XIHC•Y<NpTC:I .yALF(l~PEQ) 0008
1 FORMAT< l 0009
2 FORMATtA3l 0010
3 FORMAT(5A6) 0011
8001 FORMAT<2<2Xtf6.'t) l 0012
8002 FOIH1AT< IS) 0013
DATA HALF·~cAN1NcOnE.NINT•NSpEc/l•l•l•lOO•l/ 001 't
DAT.A NcR.tJGl tNTp/8, 11 •5/ 0015
DATA ATM•FACTPl•FACTp2/l4,696t5J,7lq752•7,S0061683/ 0016
C START OF PROGRAM •********************************************************
WRITE(NTpt5lOll 0017
5101 FORHAT(/T21•ANswER ALL QUESTIONS yES OR NQ.•t/T2t'ALL INpuT IN FRE 0018
IE F0RMAT•'•//T2•'00 yOu KNOW l~OW TO USE THIS PROGRAM?•> 0019
READ(NCR,2> ANAME 0020
IF<ANAME,EQ.'YES'l GO TO Sll 0021
CALL TEACH<NCOOEl 0022
511 CONTINUE 0023
WRITE<NTP•5102) 002'+
5102 FORMAT(/T2,•HODES OF OpERATION: (1) VARIABLE REFLUX'•/T22• 0025
1'<2> CONSTANT REFLUX'•/T2•'ENTER 1 OR 2 FOR REQUIRED pROCEOURE,'l 0026
READCNCRtll NOpl 0027
WRITE<NTP•5103l 0028
5103 FORMAT(/T2.•oo YOU wANT TO ADO A DATA ELEMENT?•) 0029
READ(NCR12l ANAHE 0030
lf(ANAHE.EQ,'NO'l GO TO 512 0031
MCAN=2 0032
WRITE(NTP•SlOql 0033
s1oq FORMATC/T21'ADD yOUR DATA ELEMENT,') 003't
MAINLINE aATCt!
•
512 CONTlNUE 0035
NINTC=NlNT+l 0036
IFININTC.GT.NrBS) GO TO 903 0037
C START OF DATA IfJpuT *************•*•*•«•**********************************
lFIMCAN.EQ.l) WRITE(NTp•SOQOl 0038
5000 FORMAT(/T2,•ENTER NAMES OF COHpONENTs ••• 1 pER LlNEtMAx 30 CHARAcTE 0039
lRS EACH,') OOlf O
REAo<NcR,3) ((TITLES(ltJI 'J=1.s1.1=1.21 00 't 1
IFlMCAN.EQoll WRITE(NTp•SOOll 00'+2
5001 FORMAT(Tq•'ACCEpTED pRESSuRE uNITs: l=HMHGt2=pSlG•3=psIAtq=KpAtS=A OO't3
1TM•'•/T2•'ENTER CONDENSER PRESSURE AND UNIT CODE, <EG. 760,0tll'I OO'+'t
READ(NCRtll PCONDA•NUNJTp OO't5
IFINUNITP,EQ.11 PT=PCONDA 00'+6
lflNUNJTp,EQ.2) pT=(pCONDA+ATMl*FACTPl OO't7
IFINUNJTp,[Q,3) pT=pcONDA*FACTPl OO't8
1FlNUNITP,EQt1l pT~pCONDA*FACTP2 OO't9
lf(NUNITp,EQ.5) pT=pcONDA*ATM*FAcTpl ooso
lfCpT.GT,7600,) GO TO 902 0051
lFIMCAN,EQoll WRITE<NTp•50021 0052
5002 FORMAT(/T2,•wlLL ANTOINE CONSTANTS OR EQUILIBRIUM oATA aE SUPPLIED 0053
l?•,/T2,'ENTER ANT OR EgU.'l OOS't
REAo<NcR12) ENAME 0055
lF(ENAME.NE.'ANT•.ANo.ENAME.NE.•EQU') GO To 902 0056
lFCENAME,EQ.'EQU'l GO TO 502 0057
IFCMCAN.EQ.1) WRITE<NTp•SOOJ) 0058
5003 FORMAT(/T2.•ENTER ANTOINE coNsTANTS.'l 0059
c ANTOINE CONSTANTS ********************************************************
NBDC=l 0060
REAO(NCRtll IA!I>•BII>•C(lld=l•2l 0061
IFIMCAN,EQ,ll WRITE<NTP•SOO'tl 0062
SOOlf FORMAT!/T2,•ENTER BUBBLE pT OF LIGHT COMpONENT.•> 0063
READ<NcR,ll TBL 006't
DELXAL=0,02 0065
XAL=J.O 0066
MAINLINE BATCH
DO 51 J=l•lOOO 0067
XAL=XAL+DELXAL \
0068
lF(ABScXAL-1.0J,LT.Q,DDll GO TO 501 0069
CALL BINBPT(A•B•C•Neoc.NoATA,pTtPAL•TALf•TBP•TBL•XALF.xAL1 0070
YAL=PAL•XAL/PT 0071
XALF(Jl=XAL 0072
YALf(Jl=yAL 0073
XEQUlL(J+ll=XAL OQ7q
YEQUIL(J+ll=YAL 0075
ALfA(J):yALf(Jl/XALf(Jl*<l.-XALF<Jl)/(1,-YALF<Jll 0076
51 CONTINUE 0077
501 NDATA=J-1 0078
NDAT=J+l . 0079
XEQUll(l)~o.o 0080
XEQUIL<NDAT>=l,O 0081
YEQUILCll=o.o 0082
YEQUILINOAT)=1.0 0083
GO TO 50~ oosq
502 CONTINUE 0085
lFlMCAN,EQ.l) WRITE(NTP•5005) 0086
5005 FORMATl/T2,•Is THE RELATivE VOLATILlTy A CONSTANT?•) 0087
READ(NCRt2l ANAME 00~8
lF<ANAHE,NE,'YES'.ANO.ANAME,NE,•NO'I GO TO 902 0089
IF<ANAME,EQ.'NO'> GO TO 503 0090
IFIHCAN,EQ,I) WRITE<NTP•5006) 0091
5006 FORMAT(/T2,•ENTER CONSTANT RELATivE VOLATILITY vALuE,•1 0092
c CONSTANT RELATIVE VOLATILITY ************•••******************************
READ<NcR,ll ALFCOU 0093
MALF=2 QQ9q
NDAT=Sl 0095
DELX=0.02 0096
XA=O.O 0097
DO 52 I=l•NOAT 0098
XEQUlLtll=XA 0099
YEQUlLIIl=XA*ALFCON/(l,+xA•IALFCON~l,ll 0100
XA=XA+DELX 0101
52 CONTINUE 0102
GO TO soq 0103
MAINLINE BATCH
503 CONTINUE OlOq
IF<HCAN.EQ.l) WRITEINTP~5007) 0105
5007 FORMAT(/T2.•ENTER No, OF SETS OF DATA TO BE SUPPLIED't!T2,•oo NOT 0106
lINCLUDE x=o.,y=O. OR x=l • .y=l.'J 0107
READINCR,ll NDATA 0108
IF(MCAN,EQol) WRITECNTp•5008) 0109
5008 FORMATC/T2,•Aoo EQUILleRluM-DATA ELEMENT,'! 0110
C EQUILIBRIUM DATA **********•**********************************************
NBDC=2 0111
REAo<NcR• l) (XALF< I) •YALF( I ) ' 1=1 •NDATA) 0112
DO 53 J=l•NoATA 0113
ALFA(J>=vALF(Jl/xALF(J)*ll@-xA~F(Jl )/(1,-YALF<JI l 011q
53 CONTINUE 0115
XEQUIL< l l=O,O Ol 16
YEQUILCll=O,O 0117
NOATl=NDATA+l 0118
NoAT=NoATA+2 0119
DO 5q I=2•NDAT1 0120
1
XE Q U I L < 1 l =XAL F ( l - l > 0l2l
YEQUlLIIl=YALF<I-lJ 0122
sq CONTINUE 0123
XEQUIL(NDATl=l.O 012q
YE Q U I L < !·JD AT ) = 1 , 0 0125
soq CONTINUE 0126
IFCNDAT.GT,NPEQ) GO TU 903 0127
c EI~ D 0 r E QU I L I 8 R I UM D A T A C A L CUL A T I ONS •
c PROBLEM SPEClFICATIONS,
IF(MCAN,EQ.l) WRlTEcNTP•5009) 0128
5009 FORMAT(/T2,•ENTER NO OF THEORETICAL TRAYS IN COLUMN, IMAX=26l'I 0129
READ<NcR,ll NP 0130
IFIMCAN.EQ·l> WRITE<NTP•5010) 0131
5010 FORMATC/T2,•ENTER COMPOSITION AND QUANTITY OF INITIAL CHARGE•'l 0132
READINCR,1) XFtFTOT 0133
Ir<xr.GT.1.o.oR.XF·LT.o,o> GO TO 902 oqq
MAINLINE BATCH
IF(MCAN,EQ.1) WRITE(NTP•Slll) 0135
5111 FoRMAT(/T2.'WILL (1) BATCH CYCLE TIME•OR (2) VAPOUR BotL~UP RATE'• 0136
l/T2••BE SPECIFIED. ENTER 1 OR 2•'1 01 37
READ(NCRtl) NTIM 0138
lflNTIMoNE•l•AND·HTlM•NE.2> GO TO 902 0139
lFCMCAN,EQ•ll WRITE<NTP•SDlll 01 'tO
5011 FORMAT!/T2,•ENTER BATCH TIME OR BOIL-up RATE,'l 0 l 't 1
READ(NCR.ll G 0 1 'f 2
lflMCAN,EQ•l•AND•NOpl,EQoll WRlTEINTP•5012l 0 1't3
5012 FORMAT(/T2,•ENTER DISTILLATE C0MpOSITION,'l Ol't't
lf!NOf'I,EC~oll REAo<NcRdl XO 01 '+5
IF<NOPI,EQ·ll GO TO SOS 0 1 't 6
lFIMCAfJ,EQ• l I WRITE< NTP •5112) 01'+7
5112 FORMAT(/T2.•oo you wANT TO SpEcify AN AvERAGE DISTILLATE cOMpOSITI 01 'tB
ION?') 01'+9
READ<NcR,21 DNAME 0150
lFCDNAHE•NE.'YES'.ANDoDNAME.NE,•No 1 l GO TO 902 0151
IFlDNAME.Ea.•No'J GO To 505 0152
IFIMCAN,EQ·ll WRITE<NTp•Sll3) 0153
5113 FORMAT<T2•'ENTER AVERAGE VALUE, 1 1 01 Sq
READINCR•l> XSPEC 0155
IFIXSPEC.GT.1.0.0R•XSPEC·LT,xF> GO To 902 0156
NSPEC=2 0157
505 CONTINUE 0158
lF<NSPEC.EQ,2) GO TO 506 0159
IFIMCAN.EQ.11 WRlTEINTp15013l 0160
5 0 1 3 FORM AT < IT 2 • ' ENTER F l NA L RES I OlJ E C0 NC E IH RAT I ON , ' I 0161
READ< NCR, l I XW 0162
IFIXW.GT.XF.OR.xw.LT.0.0) GO TO 902 0163
506 COMTitlUE 0 l 6 '+
lF(MCAN.EQ•l•AND.NOpl.EQ,21 WRITEtNTPtSOl'tJ 0165
501'+ FORMATt/T21•ENTER REFLUX RATI0! 1 1 0166
IFtNOPl,EQ.2) REAO(NCR1ll R 0167
lfCMCAN.EQ·l> WRITEINTP•50151 0168
5015,FORMAT(/T21•ls A Ill TOTAL OR <21 PARTIAL CONDENSER USED?'• 0169
l/T2• 'ENTER l 01~ 2. I) 0170
READ(NCR1ll NCOND 017 1
MAINl..,INE BATCH
NPCHEC=NP•NcONO+l 0172
lF(NPCHEC.GT.NpTCl GO TO 903 017.3
C START OF COMPUTATION •****•**********•************************************
IFINOPl.EQ.2) GO TO 200 017q
c
C VARIABLE REFLUX OPERATION ************************************************
c
C CALCULATION OF INITIAL REFLUX RATIO ***********************•*••••*********
C INITIAL ESTIMATE OF STARTING REFLUX RATIO.
R=l.1 0175
DELR=0,1 0176
MN=l 0177
Np1=NP+NCOND 0178
c 'GO TO• L00p 101 sEARet1Es FOR cORREcT STARTING REFLUX RATIO,
101 CONTINUE 0179
CALL XDSTEP 0180
lFIABSIXNTC .. XFl,LE·0,000011 GO TO 110 0181
IF<DELR1LT,Q,OOOOOll GO TO 110 0182
NCALL=2 0183
CALL SEARCH<xNTc•xF•R•oELRtHN•NcALL) 0 l 8'f
GO TO 101 0185
110 CONTINUE 0186
c wRITE INITIAL cONolTIONS To DATA ELEMENT FOR PLOTTING XWY DIAGRAM,
YINCPT:XD/1R•l•) 0187
WR1TEING1•8002) NDAT 0188
WRITE<NGl•BOOll <xEQUlL(Jl1yEQUIL(Il1I=l,NoAT) 0189
WRITEING1•B002l NTC 0190
WRITE(NGl•OOOll <x<Il•y<ll1l=l1NTC) a i 91
WRITE<NG1•8001) YINCPT1XD 0192
C CALCULATION OF DATA REQUIRED FOR INTEGRATING FUNCTION.
C FUNCTION: DtVAPl=FTOT•(XD•Xf)t(D(XWl•(R+l)/(XO•XW>•*2))
c LIMITS OF INTEGRATION: XF•xw •NO. Of lNTERyALS Of SlzE 'H•: NINT
H=IXF"XWl/NINT 0193
XSTEP=xw-H 0 l 91.i
XDATAtNINT+tl=XF 0195
YDATA<NINT+ll=R 0196
R=lO· 0197
MAINLINE BATCH
c 'DO' LOOp 11 COMpuTES NINT RESlouE C0MP0SITION~REFLUX RATlO DATA SETS.
DO 11 I=l •NINT 0198
XSTEP=XSTEP+H 0199
MN=l 0200
DELR=O,l 0201
c 'GO TO ' LOOp 102 SEARcHES FOR cORRF-cT R FOR EAcH xSTEp vALuE.
102 coNTINuE 0202
CALL XDSTEP 0203
IFCASS<XNTc-xsn:p).LE.0,00001) GO TO l20 020'+
IFIDELR.LT.0.0000011 GO TO 120 0205
NcALL=2 0206
CALL SEARCH<xNTc,xSTEptRtDELR,MN•NCALL> 0207
GO TO 102 0208
120 CONTINUE 0209
IF< I •GT, l) GO TO 103 0210
c WRITE FINAL CONDITIONS To DATA ELEMENT FOR pLOTTING x-y DIAGRAM,
YINCPT=XO/(R+l,) 0211
WRITEING1•80021 NTC 0212
WR I TE (NG 1 '800 l) ( X ( J l 'y (JI, J= l, NTC I 0213
WRITE(NG1•8001) yINcpT.xD 02 l 't
103 "coNT I NuE 0215
XDATA(Jl=XSTEP 0216
YDATA(Jl=R 0217
, 11 CONTINUE 0218
NINTl=NINT+I 0219
c •oo• LOOp 12 cALcuLATEs vALuEs OF THE FuNcTION To aE INTEGRATEo,
DO 12 ~J=l•NIMTl 0.220
FU NC I J l = ( 1 • +y DAT AI J) )I I CXD- XDAT A( J) ) **2 I 0221
12 CONTINUE 0222
C SIMPSONS RULE INTEGRATION OF THE FUNCTION.
CALL SIMPS1xF•xw.NINTJ,FUNC•SUMINT) 0223
VAP=FTOT•<XD-XFl•SUMINT 022'1
TIME=VAP/G 0225
W=FTOT•<xD-xFl/lxD~xw> 0226
DTOT=FTOT·~' 0227
GO TO 'tOO 0228
MAINLINE BATCH
200 CONTINUE " 0229
c
C CONSTANT REFLUX OPERATION ******************************************~*****
c
C INITIAL ESTIMATE OF DISTILLATE COMPOSITION XD•
XD=Q,99 0230
DELX=O.l 0231
MN=l 0232
NPl=NP+NCONO 0233
c 'GO TO• L00p 201 SEARCHES FOR cORREcT STARTING XD•
201 CONTINUE 023lf
CALL XDSTEP 0235
IF<ABS<XNTC-XFl.LE·~•OOOOll GO TO 210 0236
NcALL=l 0237
CALL SEARcH<xNTCtXf•xD1DELx•MN1NcALL) 0236
IF<xo.GT.1.0> xo=o,999 0239
IF<xo.GT,l.Q) oELx=o.000001 02lf O
GO TO 201 02'+1
210 CONTINUE 02'+2
c WRITE INITIAL CONDITIONS To DATA ELEMENT FOR PLOTTING x~v DIAGRAM,
YINCPT=XD/(R+l,) 02'+3
WRITE<NG1•8002l NDAT 02'+ If
WRITE<NGl•BODl> IXEQUIL<Il1YEQUIL<Il1I=l1NDATI 02'+5
WRITEING1•8002) NTC 02'+6
WRITE<NGl•BQQl) <x<I>•v<1>.J=l1NTCI 02'+7
WRITE<NGl•BOOl> YINCPT•XD 02'+8
XDATA<NlNT+l >=XF 02'+9
YDATAININT+11=xo 0250
DELXW=0,01 0251
MM= 1 , 0252
IFINSPEC.EQ.2) xw=0,1 0253
MAlNl,,INE BATCH
C 'GO TO• LOOp 20~ CONSTRAINS SYSTEM TO'SPEC!FIED AVERAGE XD VALUE,
20~ CONTINUE . 025'+
C CALCULATION OF DATA REQUIRED FOR INTEGRATING FUNCTION.
C FUNCTION: D(ALOG(FTOT;W):O(XW)l(XD-XW)
c LIMITS Of INTEGRATION: XF•xw •NOt OF INTERvALS OF SJzE 'H': NINT
H=<xF-xw>ININT 0255
XSTEP=xw-H 0256
xo=0.99 0257
c 'DO' LOOp 21 COHpuTEs NlNT RESiouE-otsTILLATE CDMpOSITlON oATA SETS,
D0 2 l l = 1 ' N I tJ T 0258
XSTEP=XSTEP+H 0259
MN=l 0260
DELX=0.1 0261
c 'GO TO ' L00p 202 SEARCHES FOR CORRECT XD FOR EACH xSTEp vALUE,
202 CONTINUE 0262
CALL XDSTEP 0263
IFl~BS!XNTC-XSTEpl,LE,O,OOOOll GO TO 220 026't
NcALL=l 0265
CALL SEARCH<xNTc1xSTEP•XD•DELX•MN•NCALL) 0266
IFIXD.GT.1.01 xo=0.999 0267
JF(XD.GT.l.oJ DELx=o.000001 0268
GO TO 202 0269
220 CONTINUE 0270
IF(l·GT.tl GO TO 203 0271
c SAvE FINAL cONolTlONS FOR EAcH pASS THROUGH L00p 20~.
C XEQUll•YEQUlL ARE USED HERE AS STORAGE SPACE,
YlttC PT= XDI ( R+ 1 • > 0272
DO 20 J=l•NTC 0273
XEQUILIJl=X(Jl 027'+
YEQUIL<Jl=Y!J) 0275
20 CONTINUE 0276
XDHOLD=XD 0277
NTCH=MTC 0278
203 CONTINUE 0279
XDATAIIl=XSTEP 0280
YDATA(Jl=XD 0281
21 CONTINUE 0282
MAlNLlNE BATCH
NINTl=HINT+l 0283
c •oo• LOOp 22 CALCULATES VALUES OF THE FUNCTION TO BE INTEGRATED,
DO 22 J=l•NINTl 028'+
FUNC(J)=l./IYDATA(Jl-XDATA(J) l 0285
22 CONTINUE 0286
C SIMPSONS RULE INTEGRATION OF THE FUNCTION,
CALL SIMPS(XF•XWtNINTl1FUNC1SUMINT) 0287
W=FTOT/IEXPCSUMINTI) 0288
DTOT=FTOT-V 0289
VAP=DTOT•<R•l.l 0290
T!ME=VAP/G 0291
XDAVE=!FTOT!XF-~•XW)/DTOT 0292
lf(NSPEC.EQ,ll GO TO 230 0293
lFIABS<xoAvE-xSPEcl,LT.0,0001) GO TO 230 029'+
NC ALL= I 0295
CALL SEARCH<xDAvE•xSpEc•xW•DELxW•MM•NcALLl 0296
lFIXW.LT.0,QOl) GO TO 901 0297
GO TO 2oq 0298
230 CONTINUE 0299
WRITE<NG1•B002) NTCH 0300
WRITEINGl•OOOll (XEQUlL(Jl1YEQUlLIJl•J=l1NTCHl 0301
WHITE(NGl•8001) yINcpT.xDHOLD 0302
WRITEING1•800l) XDAVE•xD 0303
qoo CONTINUE 030'+
C PRINT RESULTS ************~**********•***************¥********************
WRITE<NTP•ql00) 0305
q100 FORMATl/T2,•9ATCH DISTILLATION OF A BINARY SOLUTION,'> 0306
IF<NOPl,EQ•ll WRITE<NTp•q10ll 0307
IFINOPl,EQ.21 WRITE(NTP•ql02) 0308
qlOl FORMATIT2•'vARIABLE REFLUX OPERATION,•> 0309
q102 FORMAT(T2••coNsTANT REFLUX OPERATION.•) 0310
MAlNL.lNE SATCH
C COMPONENT TITLES.
WRITE1NTP•q103) ((TITLES(l•J) •J:l•S)•l:l,2) 0311
q1p3 FORMATl/T2•'FEEO COMPONENTS: Ill '•5A6,/Tl9•'12l '•5A6) 0312
C VARIAeLE REFLUX OpERATION: INIT~AL AND FINAL REFLUX RATIOS,
lf(NOpl.EQ•l> wRITE<NTp•q1oq) YDATA(NINTll •YDATAlll 0313
q1oq FORMAT(/T2,•INITlAL REFLUX RATI0:•1f7,3•/T2•'FlNAL REFLUX RATIO!'• 03lq
1F9.3l 0315
C CONSTANT REFLUX OpERATION; REFLUX RATIO.
lflNOpl.EQ•2l WRITECNTp•qlOSl R 0316
q1os FORMAT(/T21•REFLUK RATIO:•.r7,3l 0317
C VAPOUR BOIL-UP RATE AND BATCH CYCLE TIME•
IF<NTIM.EQ.ll WRITE<NTP1qlQ6l TIME1G 0318
IF<NTIM,EQ•2> WRITE<NTp1qlQ6l G•TIME 0319
q106 FORMAT(/T2.•yAp0UR 90IL-uP RATE:•·f6,2,2x''KGMOLE/HR'1 0320
l/T2•'BATCH CYCLE TIME:'•FI0,3•1X•'HRS'l 0321
WRITEINTP•~IOBI VAP 0322
q1oa FORMATC/T2,•TOTAL VAPOUR BOILED UP DURING CYCLE:••F8.3,• KGMOLE'l 0323
C RESIDUE DATA.
WRITECNTP•qlQ9) ~·XW 032't
q109 FORMAT(/T21•REsiouE!'•9x•FB.3•' KGM0LE'•/T2•'RESiouE cOMPOSlTioN:• 0325
l,f6,q) 0326
C DISTILLATE pROOUCT DATA,
WNITECNTP•'tllO) OTOT 0327
qJlO FORMAT!/T21•TOTAL DISTILLATE WITHDRAWN:'•f8,3•• KGMOLE'I 0328
IFCNOPl,EQ,11 WRITE<NTP•qlll) XO 0329
q111 FORMAT(/J2,•oisTILLATE C0Mp0SITioN:•,f6.'t•' MOLE FRAc•I 0330
lfCHOPl.EQ·2> WRITE<NTp•q1121 YDATA(NJNTll,yDATA(lJ1xoAvE 0331
't112 FORMAT(/T2.•INITIAL DISTILLATE cOMp0SITioN:•tf6,q,t MOLE FRAC'•/T2 0332
l•'FINAL oISTILLATE cOMpOSITioN:•.f8,'t1/T2• 0333
2'AvERAGE DISTILLATE C0MPOSITioN:'•F6,'t) 033'+
1FINOpl,EQ•2> GO TO 'tOl 0335
MAINLINE BATCH
c VARIABLE REFLUX OPERATJDN! RESIDUE COMPOSITION VS REFLUX RATJO,
WR~TE(NTP•'+ll3) 0336
't 11 3 FORMATt/T21•RE5IouE COMPOSITION vs REFLUX RATIO:'•/T61'XW't9X•'R'I 0337
WRITElNTP•'tllq) <XDATA(ll•YDATA<Il ,I=NlNTl1l••lO) 0338
'+11 q FORMAT<T3•F6,q,3X,F8,'t) 0339
GO TO 999 03'+0
'+O 1 CONTINUE 03't 1
c CONSTANT REFLUX OpERATlON: RESIDUE COMP vs DISTILLATE COMP•
WRITE(NTP•'tll5) 03'+2
Lfll5 F0RMAT!/T2,•REslouE COMPOSITION vs DISTILLATE C0MPOSITI0N:'•IT6• 034+3
l'XW'19X1'XD•) 03't't
WRITE<NTp•'tll'+I <xDATA<I l•yoATAIIl1l=NINTl1l•-lDI 03'+5
GO TO 999 03'+6
C ERROR MESSAGES **************************************•********************
9 0 l C0 NT I l'J u E O3 q 7
WRITEINTp•900lJ X~ 03't8
9001 F0RMAT(/T2,•REstouE C0MP0SITioN:•·FB.~,/T2.'DISTILLATE C0HPOSITJON 03't9
1 SET TOO LOW•'> 0350
GO TO 999
. 0351-
902 CONTINUE 0352
WRITE(NTP•9002> 0353
9002 FORMAT(/T2,•SpEcIFlcATION ERROR ••• RESTART pROGRAM,') 035't
GO TO 999 0355
903 CONTINUE 0356
WRITE(NTP•9Q03> 0357
9003 FORMAT(/T2t•OIMENSION SpEcIFicATIONS ExcEEoEo.•> 0356
999 CONTINUE 0359
WRITE(NTP•9991) 0360
9991 FORMAT(/T21•END OF PROGRAM.') 0361
END 0362
MAINLINE BATCH
SURROUTlNE XDSTEp 0001
c ROUTINE STEpS OFF MCCABE-THIELE STAGES IN TtfE DESIGN OF BINARY
c BATCH DISTILLATION SYSTEMS, '
PARAMETER NpEQ=SS 0002
PARAMFTER NpTC=55 0003
COHHON ALFA(NpEQ) •ALFCON,R 000'1
COMMON Ml1LFtlJDATA•NPl t!HC 0005
COMMOll X < NPTC >, X ALF ( l~PEQ) t X D, X NTC •YI NPTC I' YALF I NPEQ) 0006
Xlll=XD 0007
y111=xo 0008
1'1STOP=!W l •2 0009
DO 11 I=2•1U0•2 0010
Y<l>=Yll-11 OD l l ·
YJ\=Y(l) 0012
CALL XYALFAlALFA,ALFCON•ALF•MALFtNDATA,yALF•YA> 0013
X (I> =Y (I l I ( ALF+Y U) '*I 1 •-ALF) I 001'1
I F < I , E Q • l'l S T 0 P l G0 TO 1 l 0 0015
YII+l)=Xlll•R/(P,+1.l+XD/(R+l,l 0016
XCI+ll=Xlll 0017
11 CONTINUE 0018
1l0 CONT I flillE 0019
YII+ll=O.O 0020
XII+ll=Xll) 0021
XMTC=X<ll 0022
NTC=l+l 0023
RETURN 002Lf
END 0025
SUBROUTINE xDsTEP
SUBROUTINE eINepT<A•B•C•N•NDATAtPT1Pl•TALF,TBP•Tl•xALF.XlJ 0001
C BURBLE PT• ROUTINE FOR OlNARy SYSTEMS·
D l MENS I Ol'J A ( 2 ) 1 a ( 2 > ' C ( 2 I ' TAL F I l I , TB P ( 2 l • X AL F ( 1 l • XBP T ( 2 I 0002
GU TO (100,200)tl\f 0003
C BUBBLE pT BY NE~TON•5 METHODtUSING ANTOINE CONSTANTS,
100 CONTINUE OOO't
T=Tl ODDS
XBPT(ll=xl 0006
Xl~PT(2l=l .... Xl 0007
DO 10 I=l•lllOO 0008
SUMl=PT 0009
SUM2=0.0 0010
DO 11 K=l•2 0011
Al=A<K>-B<Kl/IC(Kl+Tl 0012
SUMl=SuMl-xapT<Kl•lo.••Al 0013
Bl=2,303•BIK)/( (C(K)+Tl••2,) 00 l't
5UM2=Su~2+x9pT(K)*Bl*lU,••Al 0015
11 CONTINUE 0016
DlFF=SUMl/SlJM2 0017
lFIABSIDlFFl•LT,0.00001 l GO TO 101 0018
T=T+DlFF 0019
10 CONTINUE 0020
101 CONTINUE 0021
FACT=Alll-Blll/(Clll+T) 0022
Tl=T 0023
Pl=lO,••FACT 002't
GO TO 999 0025
SUBROUTINE BlNBPT
C BUBBLE pT SEARCH FROM SUPPLIED VAPOUR-LIQUID EQUILIBRIUM DATA,
200 CONTINUE 0026
IF<Xl.GToXALF(l) l GO TO 201 0027
XFACT=xl/XALF<ll 0028
Tl=TBP<2l•.(TALF(ll-TBP<2>l•XFACT 0029
GO TO 999 0030
201 CONTINUE 0031
lF<xl.GToXALF(NDATA)) GO To 220 0032
DO 20 I:::l•NOATA 0033
DIFF=xI·xALF(l) 003't
lf(DlfF,LE,Q,Ol GO TO 210 0035
20 CONTINUE 0036
GO TO 220 0037
210 XFAcT=<xALf( I >-xl )/(xALF( I ,,.,.XAL.f( J .. l)) 0038
Tl=TALF( I )+(TALF< l-1 l-TALF< I l l*XFACT 0039
GO TO 999 OO'tO
220 COMTit~uE 00 1+1
XFACT=( 1,-xl )/( 1 ... XALF<NDATAl) 00'+2
Tl=TBP( 1)+(TALF(NDATA>-Tap<1) >•xFACT OO"t3
999 CONTINuE OO'+'t
RETURN 00"+5
END OO't6
SUBROUTINE BlNBPT
SUBROUTINE eINopT(AtB•C•N•NOATA1pT1Pl•TALF1TBPtTl•YALf•Yl) 0001
c oEw pOINT ROUTINE FOR eINARy SySTEMS·
DIMENSION A12> tB(2) •C(2) ,TALF< l J tTBP<21!YALf(l1 •YDPT(21 0002
GO TO t100,2no1dt 0003
c oEw pT BY NEwToN•s METHOD•uslNG ANTOINE cONSTANTs~
100 CONT!NuE OOOLt
T=T 1 0005
YDPT<l>=yl 0006
yppT(Zl=l.-yl 0007
DO 10 I=l • 1000 0008
SUMl=l. 0009
SUM2=0,Q 0010
DO 11 tz=l•2 0011
Al=AlK>~BlK)/lCIKl+Tl 0012
A2=10,••Al OD l3
SUMl=SuMl·yopT(K)*PT/A2 001 't
B1=2,3Q3•Blt<)/( (C(K)+Tl••2,) 0015
5UH2=SuM2+yopT(Kl*Bl•PTIA2 0016
11 CONTINUE 0017
DIFF=SUM1/SUM2 0018
lF<ABS<DlFFl•LT,O.OOODll GO TO 101 0019
T=T-DIFF 0020
10 CONTINUE 0021
10.1 CONTINUE 0022
FACT=A< 11 .. BI 11/(CC 1 l+TI 0023
Tl=T 002't
Pl=lO,••FACT 0025
GO TO 999 0026
SUBROUTlNE BINDPT
C DEW PT SEARCH FROM SUPPLlED VAPOUR-LIQUID EQUILIBRIUM DATA,
200 CONTINUE 0027
lFlYl.GT.YALF<lll GO TO 201 0028
YFACT=y l/YAl-,.F( 1 > 0029
Tt=TBPl21+(TALf(ll-TBP<2ll•yfACT 0030
GO TO 999 0031
201 CONTINUE 0032
IF!Yl.GT•YALF<NDATAl) GO TO 220 0033
DO 20 t=l•Nl)ATA 003't
DIFf:::y 1-yALF( l l 0035
. lF<DIFF•LE.Q,Ol GO TO 210 0036
20 corn I NuE 0037
GO TO 220 . 0038
210 Yf.:ACT=<YALf( I >-Yl )/!YALFI I ) .. yALF( J ... l I I 0039
T 1 =T ALF l I l + ( T ALF < I - l ) .. T ALF I I ) l * YFACT OO"tO
GO TO 999 00'+ 1
220 CONTINUE OO't2
YF'ACT=< I .... YI)/( l , ... yAl.,f(NDATA) l OO't3
T1=Tap<ll+<TALF<NDATAl"TBpllll•yFACT OO't't
999 COl'H I NuE OO'tS
RETURN OO't6
END OO't7
SUBROUTINE BINOPT
SUBROUTINE XYALFA<ALFAtALFCON•ALpHA•MALFtNDATAtXYALF•xvl> 0001
c 'ROuTINE sEARcHES FOR THE RELATlvE vOLATILITy coRRESpONolNG
C TO THE SUPPLIED LIQUID OR VAPOUR COMPOSITION VALUE,
DIMENSION ALFA( l l •XYALF( l) 0002
If<MALF,GT,1> GO TO 200 0003
lf(XYl.GT.xvALF(l)I GO TO 100 OOO't
XYFACT=(xYALF(l>~xvl>lxYALf(ll 0005
ALpHA=ALFA<ll-<ALFA(2)~ALFA(lll•xyFAcT 0006
GO TO 999 0007
100 CONTINUE 0008
lFIXYl.GT•XYALF(NOATAll GO TO 120 0009
DO 10 J;;l •N()ATA 0010
DlFF=XYl .. XYALF< II 0011
lf(OlFF1LE.Q,OI GO TO 110 0012
10 CONTINUE 0013
GO TO 120 00 l't
110 XYFACT=<xYAi,.F( 11-XYl )/(XYALF( I >-xYALF< 1-1)) 0015
ALPHA=ALFA( I )+(ALFA( 1-1 ) ... ALFA( I) >•xYFAcT 0016
GO TO 999 OD 1 7.
120 CONTINUE 0018
XYFACT=<t.O-XYl)/(l,o~xYALF(NDATA>l 0019
ALpHA=l,Q+(Al.,FA<NoATA>~l.O>•xvFACT 0020
GO TO 999 0021
200 ALPHA=ALFCON 0022
GO TO 999 0023
999 CONTINUE 002 '+
RETURN 0025
END 0026
SUBROUTINE XYALFA
SUBROUTINE SlMPS(ALIM•BLIM,N,FUNC•SUMJ 0001
c RouT I NE INTEGRATES A fliNcT I ON OvEH M I NTEHv AL.S sETwEEN L. IM I TS
C ALIM AND BLIM BY SIMpSQNtS RULE. VALUES OF THE FUNCTION ARE
C STORED IN ARRAy •FUNC•• INTEGRAL RETURNED AS •SUM••
DIMENSION FUNCCll 0002
M=N ... 1 0003
EVOIS=O. 0 OOO't
OoDS=O.O 0005
H=<ALIM-BLIMl/M 0006
DO 10 J=2•M 0007
lfCMODCJ,21) 102,101 1 102 0008
101 EvENS=EvENS+FUNC(J) 0009
GO TO 10 0010
102 OUDS:OODS+FUNCCJ) 0011
10 CONTINUE 0012
SuM=H•<FUNC( 1 l+FUMC(Nl+lf,•EvEN5+2.•0DD5)/3. 0013
RETURl·J 00 1 't
END 0015
SUBROUTINE SIMpS
SunRouTINE SEARCtt(FAl•FA2•FACTORtOEL•MM•Nl 0001
C R0 lJ T I NE RETlJ RNS A NEVJ ES T I MATE 0 F ' C ' T0 8 E US ED 8 y TH E MAI NL I NE
c To coNvERGE THE EQUALITY A=B· 'DEL' IS INCREMENT IN c THAT DECREASES
c AS cONvERGENcE IS AppROACHEOt
C •MH• CAUSES DEL TO BE DECREASED AS A SWITCHES FROM >B TO <B•
C •N•. DETERMINES THE EF.FECT OF C ON CONVERGENCE,
lF(FAl.LT,FA2l GO TO 120 0002
IFIMH,EQ.ll GO TO 111 0003
DEL=Df:.L/2, 000'+
MM=l 0005
111 IFO~.E(),ll FACTOR=fACTOR-!)EL 0006
!f(N.EQ.21 FACTOR=FACTOR+DEL 0007
GO TO 999 0008
120 IF<MM,EQ,21 GO TO 121 0009
DEL=DEL/2, 0010
MM=2 0011
121 lf(N,Eo,ll FACTOR=FACTOR+DEL 0012
lF(N.EQ,21 fACTOR=FAcToR~DEL 0013
999 CONT I tJuE OOPI
RETURN 0015
END 0016
SUBROUTINE SEARCH
c COMMON BLOCr 'BltlCOM• FOR BINARY DISTILLATION PROGRAMS,
PARAMETER NPEQ:55 0001
PARAMETER NpPS=lSO 0002
PARAMETER NpTC=SS 0003
PARAMETER NpEN=25 OOOi+
DIMENSION ALFA!NpEQJ diLlQ<NpEN) 'HVAp!NpEN> •LlQRCNppS) •L.IQStNppSl 0005
DIMENSION LRWT(NppSltLSWTINppSl tTALFlNpEQI 0006
DIMENSION TRL(NppSl•TRv<NPPS)•TSL(Npps>•TSy(NppS) 0007
DIMENSION VAPR(NppS) 1VAPS(NppS) •VRWT(Npp5),ySWT(NPPSl oooa
DIMENSION x (NpTC) •XALF(NpEQ) ·xEQUIL(NpEQl •xHlNpEN) 0009
DIMENSION xROplNppSl •XSOplNppS) •yROp(NppS),ySOplNppSl 0010
DIMENSION y(NpTCl •yALF(NpEQI 1yEQUIL<NpEQl •yH(Np~N) 00 l 1
COMMON A(2ltACp(2J •AL( 111 •ALFAtALFCON•AV(ll) 0012
COMMON 9(2) •BCp(2) ·aTOTtC(2) •CCp(2) •CFCT( 12) •CPCONv•CpMW<2l 0013
COMMON DCP(2)•DELB1DELD•DLtDTOT1ov 001 '1
COMMON EFF•fLOW( 10> •FTOT,FTOTSlSl OOlS
COMMON HB•HD•HEVABStHF•HLlQ•HSCONv•HSMWl21,H50LNl30l 0016
COMMON HVAP•LHC2l 0017
COMMON LHCONv•LHHW(21•LIQR•LlQS•LRWTtLSwT 0018
COMMON HALF•MW<2>•NeDC•NcON01NOATA.NENTH.NF•NHStNINT 0019
COMMON NN•NQp•NOS•NppSC•NPTcc•NStNTRAy(l2) 0020
COMMON NCR•NGl,NTP 0021
COMMON PT•Q•QB,QC•QF(S) •QS(5) tQFS( 101tQX<121•QY(12l •R1RM 0022
COMMON SLPE< 12> •STOTS<SJ ,TALF•TBASE•TBP(2) 1TCl21 0023
COMMON TCONV•TF•TG1TITLESl21SltTRAYN01TRL•TRV 002'1
COMMON TSL•TSVtVAPR•VAPS1VRWT•VSWT 0025
COMMON X1XALF•XB1XC•XCR•XD•XEQUIL•XH1XHS(301 0026
COMMON XROP1XSOP1YROP•YSOp 0027
COMMOIJ Y1YALF•YB1YC•YCR•YD1YEQUIL•YH 0028
COMMON Z1ZF<Sl ,zFl <SI •ZS(5) •ZS! (5) •ZFSC 10) 0029
COMMON 'eINC0M'
c MAINLINE PROGRAM FOR SOLUTION OF BINARY cONTINuouS-DlsTILLATlON
C PROALEMS By THE MCCABE-THIELE OR pONCHON-SAVARIT GRAPHICAL METHOD.
C THE PROGRAM SETS UP THE EQUILIBRIUM CURVE AND OPERATING LINES
C FOR THE GIVEN SYSTEM1AND STEPS OFF THE NUMBER OF STAGES REQUIRED
C FOR THE SPECIFIED SEPARATION.,
c AN ouT-puT FILE OF DATA IS GENERATED THAT CAN eE USED TO pRODucE
c A MCCABE-THIELE OR pONCHON-sAvARIT DIAGRAM FOR THE Sy5TEH10N THE
C •CALCOMP• PLOTTER.
c **********************************
C INSERT COMMON BLOCK 'BlNC0M' HERE.
c **********************************
REAL LH1LHCONV1LHMW1LlQR1LlQS•LRWT1LSwT1MW 0001
1 FORMAT ( l 0002
2 FORHAT(AJ) 0003
3 FORMAT!SA6) aooq
DATA MALF•McAN1NcODE1NINT/1•1•21SO/ 0005
DATA NCR1NGl•NTP/81ll1S/ 0006
NppSC=NppS-2 0007
NpTCC=NpTC 0008
C START OF PROGRAM ************************************•********************
WRITEINTp•SOOOl 0009
5000 F0RMAT(/T21•ANswER ALL QUESTIONS yES OR No.•1/T21'ALL JNpuT IN FRE 0010
lE FORMAT.•1//T2·•00 vou KNow HOw TO USE THIS pROGRAM?•) 0011
READ<NcR12l ANAHE 0012
lF!ANAME,NE.'yES'.ANo.ANAME.NE.•No•) GD TO 901 0013
lF<ANAHEoEQ.'YES'l GO TO 500 OOlq
CALL TEACH!NCODEl 0015
GO TO 999 0016
SOD CONTINUE 0017
WRITE<NTP•SOlO> 0018
5010 FORHAT~/T2,•0ESIGN TECHNIQUES: Ill MCCABE~tHlELE'•/T211 0019
1'!2) poNcHON-SAVAR1T'•/T21 1 ENTER 1 OR 2 FOR REQUIRED pROCEDURE,•l 0020
READINCR1ll NOPl 0021
lFCNOPt,EQ.ll NOP=l 0022
IF(NOP1,EQ,2l NOP=3 0023
MAINLINE BINARY
~~RITE(NTP•50l l l 002'l
5011 FORMAT(/T2,•oo you wANT TO ADD A DATA ELEMENT?•) 0025
R E A D ( 14 C R , 2 l . C N AME 0026
lf(CNAME.NE, 1 yEs 1 .ANo.cNAME,NE,•No•> GO TO 901 0027
lFICNAME,EQ,'NO'l GO To 501 0028
MCAN=2 . 0029
WRITE(NTp•SQ12> 0030
5012 FORMAT(/T2t•Aoo yOuR DATA ELEMENT,•) 0031
501 coNTINuE 0032
C •READBD' READS DATA ELEMENT,
CALL REAOBDIMCAN•NDATl 0033
IF<MALF.GT,999) GO TO 999 003'+
C START OF COMPUTATION **•**************************************************
IF<NOP.GT,l) GO TO 301 0035
c
C MCCABE~THIELE OESIGN TECHNIQUE,
c
1F(Nf,LT•2·AND.NS.EQ,Ql GO TO 101 0036
C COMPLEX COLUMNS: IE, MORE THAN ONE FEED.ANO/OR SIDE STREAMS•
c 'MuLTFs• C0MpuTEs OpERATING coNoITlONS FOR cOMpLEx COLUMNS.
CALL MULTFS<NN!l 0037
IF<MALF,GT.999) GO TO 999 0038
GO TO 302 0039
101 CONTINUE OO'tD
c SIMPLE COLUMNS: IE. ONLy ONE FEE01NO sioE STREAMS,
c •SIMPLE• COMPUTES OpERATING CONDITlONs FOR SIMPLE COLuMNS,
CALL SIMPLE OO't 1
IF<MALF.GT,999) GO TO 999 OO't2
NN1=3 OO't3
GO TO 302 OO'f't
MAINLINE BINARY
301 CONTINUE 00'+5
c
C PONCHON~SAVARIT DESIGN TECHNIQUE.
c
C •PONSAV• CONSTRUCTS THE PONCHON-SAVARIT OPERATING DIAGRAM,
CALL PONSAV1NPTS,MPTS•NFIN•MFIN1 00'+6
IF<MALF,GT.999) GO TO 999 00'+7
NN1=3 00'+8
302 CONTINUE 00'+9
c CONSTRucTION Of 5TEppED STAGES ON x-y DIAGRAM ••••••••••••••••••••••••••••
c 'cHEc• ENSuRES THAT NO plNCH pOINTS WILL BE ENcouNTERto.
CALL CHEclALFA1ALFCON•FLDW•HALF•NoATA1NN,NTptXALF•ax•QY'ZFSl ooso
lF(MALf,GT.9991 GO TO 999 0051
c •sTEpo• sTEpS OFF STAGES ON x-y DIAGRAM AND C0MpuTEs:.
CALL STEpDINll1NpTS•MPTSl 0052
c PRINT RESULTS ************************************************************
c •eINREs• PRINTS RESULTS OF RUN,
CALL 9lNRES(NDAT1NII1NNl,NpTS•MpTSl 0053
c
c WRITE DATA TO FILE FOR PLOTTING X•Y AND ENTHALPY-CONCENTRATION
c DIAGRAMS,
c
8001 FORMATt212X1F6.q)) oosq
8002 FORMAT115) ooss
8003 FORMAT(F7.4,Fl0.2> QOS6
8004 FORMATl2El2,6) 0057
soos FORMATIF6 0 ~1El2,6l 0058
IF<NOP.EQ.ll GO TO 800 0059
c ENTHALpY-CONCENTRATION DIAGRAM DATA,
WRITE1NGl 1 800'+) DELD1DELB 0060
WRITE(NGl•SOOSl XD1HD 0061
WRJTEING1•8005) XB•HB 0062
WRlTElNG1•8005) Z•HF 0063
WRITEING1•8002) NENTH 006q
WRITEINGl •8005) IXH(K > 1HLlQ<K> •K':=l 1NENTHI 0065
WRITEINGl •80051 (yHIK I 1HVAP(K) •1<=l 1NENTHI 0066
MAINLINE BINARy
800 CONTINUE 0067
C EQUILIRRIUM DATA.
WRITE(NG1•80021 NDAT 0068
WRITEINGl•BOOll (XEQUIL(K>•YEQUIL<KI •K=l,NDAT> 0069
IF<NQP.EQ.31 GO To 801 0070
c pOINTS OF INTERSEcTION Of MCCAeE-THlELE OpERATING LlNESt
NRITE!NGl•B002) NNl 0071
WRITE<NG1•8001) (QX<Kl•QY(Kl•K=l,NNl> 0072
GO TO 802 0073
801 CONTINUE 007(f
c OpERATING LINEs FOR pONCHON-sAyARlT DESIGNS.
WRITE(NG1•8002) NPTS 0075
WRITE!NG1•800ll <XROp(Nl•YROP<Nl•N=l•NPTSI 0076
WRITEING1•80021 MPTS 0077
WRITE(NGi•BOOll <xsop<Ml•YSOP(Ml·M=l•HPTSl 0078
802 CONTINUE 0079
c pOINTS DEFINING EQUlLlsRIUM STAGE STEpS ON x•Y DlAGRAt1•
WRITE1NGI•8002) NII 0080
WRITEINGl•BOOII (X(Kl•Y<Kl•K=l1NII> 0081
WRITE<NG1•8002l NN 0082
c FEED AND SioE STREAM C0Mp0SITIONS ANO FLOwRATES (COMPLEX COLUMN),
IF<NN,GT.21 WRITEING1•8003l lzFSlK>•FL0W(Kl•K=21NN> 0083
c FEEo STREAM CDHpOSITlON ANo FLOwRATE (SIMPLE COLUMN).
IFINN.LE.2) WRITEINGl•BOOll Z•FTOT oosq
c pQINT OF INTERsEcTioN OF pONCHON-sAvARIT OpERATlNG LINES•
IF1NOP.EQ•3) WRITE1NGI,800l) XCR1YCR 0085
GO TO 999 0086
C ERROR MESSAGES ******************•••*••••**•*********••*******************
901 CONTINUE 0087
~RITE<NTP•9001l 0088
9001 FORMATl/T2,•ILLEGAL SPECIFlcATJON. ERROR TERMINATION••> 0089
999 CONTINUE 0090
MRITEINTP•99991 0091
9999 FORMAT(/T2,•ENo OF pROGRAN•'l 0092
STOP 0093
ENO OQ9q
MAINLINE BINARY
SUBROUTINE READBDIMCAN,NOAT) 0001
c RouTINE FOR READING oATA FROM EITHER FILE OR TERMINALtFOR
c BINARY CONTINUOUS-DISTILLATION PROBLEMS,
c
C ••••••••••••••••••••••••••••••••••
INSERT COMHO~ BLOCK •eINCDM' HERE,
c ••••••••••••••••••••••••••••••••••
REAL LH•LHCONv1LHMW•LlQR1LlQS•LRwT.LSwT•MW 0002
I FORMAT! > 0003
2 FORHAT!A3l OOO't
3 FORMATCSA6J 0005
DATA ATM•FACTPl•fACTp2/Iq,69615l.7lq752,7.soo61683/ 0006
lFCHCAN.EQ.ll WRITE!NTP•SOOOl 0007
5000 FORMATC/T21•ENTER NAMES OF COMPONENT5,,.l PER LINE•MAX 30 CHARACTE 0008
lRS EACH,•> 0009
READ(NCRt3l (!TITLES!l1Jl •J=l1Sl1I=l12l 0010
IF!MCAN,EQ.l) WRITE!NTptSOOll 0011
5001 FORMAT(Tq••AccEpTEo pRESSURE uNITs: l=HMHG•2=pSlG•3=p5[A1q=KpAt5=A 0012
1TM·'•/T21'ENTER coNoENsER pREssuRE ANo uNIT CODE+ CEG. 760.Qill'l 0013
READCNcR,ll PCONOA•NUNITp 00 l 't
lFINUNITp.EQ•l> pT=pCONDA 0015
lf(NUN1Tp.EQ•2l pT=!pCONDA+ATMl*FAcTpl 0016
lF!NUHJTp.EQ·l) pT=pcONDA*FAcTpl 0017
lf(NUNITp.EQ·'t) pT=pcONDA*FAcTp2 0018
lF<NuNITp,EQ,Sl pT=pCONDA*ATM•FACTpl 0019
IF(PT.GT,7600,l GO TO 901 0020
lFIMCAN,EQ•l> WRITECNTp•5002l 0021
5002 FORHAT(/T2,•wILL ANTOINE CONSTANTS OR EQUILIBRIUM DATA BE SUPPLIED 0022
l?•,/T2,'ENTER ANT OR EQU,'l 0023
READINCR•2l ENAME 002'+
IF!ENAME.NE,'ANT',AND,ENAME.NE,'EQU'l GO TO 901 0025
IF!ENAME.EQ,'EQU'> GO TO 502 0026
IF!MCAN.EQ.ll WRITECNTP•SDOJl 0027
5003 FORMATl/T2,•ENTER ANTOINE CONSTANTS.') 0028
C ANTOINE CONSTANTS ********************************************************
NBDC=l 0029
READIN(Rtll CAil l •B<ll1C!I> •1=1•21 0030
SUBROUTINE READBD
IF!MCAN.EQ·l> WRITEINTP•SOoq1 0031
5QQq FORMATC/T2,•ENTER BUBBLE POINTS OF PURE C0Mp0NENTS,•) 0032
READlNCR1ll ITBP(ll1J=l•2> 0033
DELXAL=0.02 003'+
XAL=D.O 0035 _
TaL=<Tep( 1 l+TBp(21 l/2, 0036
DO Sl J=l•lOOO 0037
xAL=xAL+OELxAL ' 0038
IFIABSIXAL-1.,0).LT.o.ool> GO TO 501 0039
CALL sINspT(A•B•C•Naoc,NoATA1pT•pAL•TALFtTBp•TBL•xALF1xAL> 00'+0
YAL=PAL*XAL/pT 00'+1
xALF(Jl=xAL 00'+2
YAlflJ>=YAL 00'+3
TALFIJl=TDL 00'+'+
XEQUlL(J+ll=XAL 00'+5
YEQUIL!J+ll=YAL 00'+6
ALFA(Jl=YAtFIJllXAL.Fl.Jl*I l .-XALFIJ) )/( 1.-YALFIJI) 00'+7
51 CONTINUE 00'+8
501 NDATA=J-1 00'+9
NDAT=J+I 0050
XEQUILCl)=o.o 0051
XEQUILINDATl=l.O 0052
YEQUIL(ll=o.o 0053
YEQUILlNDATl=l.O 005'+
GO TO soq 0055
502 CONTINUE 0056
lFlHOp.GT,11 GO TO 503 0057
lFIMCAN.EQ.11 WRITEINTp•SOOSI 0058
SOOS FORNAT(/T2.•Is THE RELATivE VOLATILITy A CONSTANT?• I 0059
READ<NCR121 .ANAME 0060
lf(ANAME.NE.'yES'.ANO.ANAHE.NE.•NO'I GO TO 901 0061
IFIANAM~•EQ.'NO'I GO To 503 0062
lFlMCAN.EQ·ll WRITEINTP•5D06l 0063
5006 FORMAT(/T2,•ENTER CONSTANT RELATlyE VOLATILITY vALuE.• I 006~
C CONSTANT RELATIVE·VOLATILITY *********************************************
READ<NCR1ll ALFCON 0065
MALF=2 0066
SUBROUTINE REAOBD
.4
C SIDE STREAMS.
IF1MCAfl.EQ.11 WRlTE(NTP•2010) 0132
2010 FORMAT!/T2,•ENTER SIDE STREAM COMPOSITJONs.•> 0133
READ(NcR.ll <zs<Il tl=l.NSl 013'+
IF<MCAN.EQoll WRITEINTp•20ll l 0135
2011 FORMAT!/T2,•ENTER SIDE STREAM Q VALUES.•) 0136
READCNCR• 1) (QS< I I, I=l ,NSl 0137
IFIMCAN.EQ•l> WRITE<NTp•2012) 0138
2012 FURMAT(/T2,•ENTER SIDE STREAM wITHORAwAL RATES·'' 0139
READINcR•ll ISTOTSIII •I=l•NSl 01'+0
GO TO 212 0 1q l
21 i CONTINUE 01q2
C SIMPLE COLUMNS.
NF=l 01'+3
NS=O , 0 1 '+ q
lFIMCAtJ.EQ• l) WRITE!NTp•2013,l 01 '+5 I'
g
1
2013 FORHAT{/T2,•ENTER FEED COMPOSITION AND FEED RATE.'> 01q6
READ I NCR tl l Z • FTOT 01q7
C FEED Q VALUE MUST BE SpECIFIEO FOR MCCABE-THIELE DESIGNS,
IF<MCAN,EQ•l•AND•NOP•EQ.l) WRITE1NTP•20231 01'+8
2023 FORMATCT2•'ENTER FEED Q VALUE.'l 01 '+9
IFINOp.EQ,1) READINCR•ll Q 0150
c TEMpERATuRE OF FEEo REQUIRED FOR pONcHON-SAvARIT DESIGNS ONLY•
IFcMCAN.EQ·l·AND.Nop,GT,l l w~tTEcNTP,201q1 0151
2Qlq FORMAT<T2•'ENTER TEMPERATURE OF FEED ••• CDEG Cl') 0152
lF(NOP•GT.ll READ<NCF<•l) TF 0153
212 CONTINUE 01sq
IF<NOP.GT.ll GO TO 213 0155
C OpEN STEAM OR pARTIAL REBOILER •••••••***************•********************
IFCMCAN.EQ.ll WRITE<NTP•2015l 0156
2015 FORMATl/T2,•IF THE HEAVY COMPONENT IS WATER ANO OPEN 5TEAM'•/T2t 0157
1•opERATloN IS REQUIRED.ENTER 1 ••• IF NOT ENTER o.•) 0158
READ<NcR.~) Nos 0159
lFCNOS.GT,11 GO TO 901 0160
213 CONTINUE 0161
SUBROUTINE READBD
I
lf!NOP.EQ.21 GO TO 21q 0162
C EFFICIENCY FACTOR *************•••••••••••••*****************************•
IF(MCAN,EQ·ll WRITE(NTP•20161 0163
2016 FORMAT<IT2.•E1HER MURPHREE STAGE EFFicIENcy FACTOR·'•/T2t 016'+
l'<=loU IF pERFECT TRAYS ARE ASSUMED)') 0165
REAo<NcRtll EFF 0166
21q coNTINuE 0167
IFINQP.EQ.ll GO TO 999 0168
C ENTHAlPY DATA ************************************************************
C REQUIRED FOR PONCHON-SAVARIT DESIGNS,
WRITE(NTP•3D101 0169
3010 FORMAT(/T2,•ADD ENTKALPY DATA ELEMENT. <SEE MANUAL SEcTION 21'1 0170
c ENTHALPY FuNcTION COEFFlcIENTS ANo ASSOCIATED pOwERS OF TEN,
READ(NCR,11 cACP(l!•BCP(l)1CCP(l)•DCP(l)•I:l•21 0171
READINCR1l) NBCP•NCCP•NDCp 0172
DO 31 1=1•2 0173
BCPll)=BCP<x>•10.•·*NBCP 017'+
C(plll=CCP(ll*lO•**NCCP 0175
DCP( I l=DCPI I )*10,•*NDCP 0176
31 CONTINUE 0177
c coNvERsloN FACTORS REQulREo FOR A cONsisTENT SET OF UNITS.
READ1NcR.l1 CPCDNVtLHCONV•HSCONv.HEVABS 0178
c BASE TEMpERATuRE OF ENTHALpy cALCuLATioNs AND AaSDluTE SCALE
C CONVERSION TEMpERATURE.
REAO(NCR1l) TBASE•TCONV 0179
c LATENT HEAT•aOILING pOINT AND cRITlCAL-TEMpERATuRE DATA~
RE AD ( IJ CR • l ) ( L H ( I ) , TB P ( l I • TC ( I ) ' I = 1 1 2 l 0180
TG=fTBpl 1 l+TBP(2l l/2. 0181
c MOLECULAR wEIGHTs: cp-•LH-•HSMW REQUIRED IF RESpECTlvE DATA IS
C SUPPLIED pER ~EIGHT RATHER THAN pER MOLE• (SEE MANUAL)
READINcR,11 (Hw<t>•CPMWll) ·LHMW(ll1HSMWII>.1=1,21 0182
C HEAT OF MIXING DATA.
READ I i·J CR , l ) MHS 0183 ~
IF<MHS.GT.Ol READ I NCR• 1 l IXHSI I l 1HSOLN( I l • I=l •NHS! 018'+
CALL FLASHB 0185
GO TO 999 0186
SUBROUTINE READBD
C ERROR MESSAGES ***********************************************************
901 CONTINUE 0187
\'I R l T E l MTP • 9 0 0 1 > 0188
9001 FORNAT!/T2,•ERR0R IN DATA INpuT~ •• ERROR TERMINATION,'> 0189
MALF=lOOO 0190
GO TO 999 0 191
902 co~JT mu E 0192
WRITElNTp•9Q02l 0193
9002 FORMATl/T2.•oIMENSlbN SPEClFicAiION ExcEEDEO·'> 0 1 9'J
MALF=lOOO 0195
999 CONTINUE 0196
RETURN 0197
END 0198
SUBROUTINE READBD
~
s u LI rm li T I I J E ( 0: JD El J ( n c Ml ) 0001
c CALcuu~TIOii or Ti!f. ccn1pOSITIOf'JS or ST!~EAMS LEAvING THE COMoENSER.
cC ····················•••***********
I:~ S E R T C 0 ti M0 ! l 5 L 0 C1;
lf'J !J •B C M' H E RE •
c ·························~········
H E AL l. ; I ' I_! l C 0 il V , UHH'I • L I q R • l, l Q S • L R'(/ T • L S "~ T • MlJ 0002
FOFU11iT < l 0003
2 FtlR11AT<A.3l 000'+
\J o T0 < 1 0 0 , 2 ,J 0 l • tl C o t l D 0005
lUU CulJTifluE 0006
C TOTAL cOMDOiSEH
XC=XD 0007
YC=XD 0008
GO TO 999 0009
2Utl COIHIMtiE 0010
C PART I AL C 0 I l E• E f'l SER
IF<tlOP.GT.l! GO TO 210 00 1 l
I F ( r l C I\ \·J • E t~ • l l 1i R I T [ < N T P • l fJ l 0 ) 0012
1010 F0RiiAT(/T2.•EtHER FHAcTioH OF TOTAL oisTILLATE TO fJE ;,ITHoRAwN AS' 0013
l 1 /T21'vAp01JH AIJD LiquID REspEcTivELY• IF ALL VAPOUR EtJTER 1 •• 0.•1 QO}q
RLAD<ilcH1l) DV•PL 0015
IF<DL.GT.0.00UOll GO TO 211 0016
210 CONTIIJuE 0017
C ALL \/ApOUR DlSTlLLi\TE
YC=XD 0018
CALL XYALFA<ALFAoALFCOll•ALpHA•MALFtNDATA1YALF•YCl 0019
xc=YC/(ALPHA-Yc•<ALrHA-l.l) 0020
GO TO 999 0021
211 ClJNTI!luE 0022
C MIXED VAPOUi'? AtiD LlqUIO DISTIU.ATE
IF < fi C Ali, Ul • l ) li RITE ( NT P • 2 0 1 l ) 0023
~~Jll F01~MAT!/r2,qs XD All ovERALL r;ISTILLATE CUMPOSITIOfl?t) 002'+
READ<~cR,2> XOHAME 0025
I F CX 0 N Ml E • E q • ' y ES ' I G0 T0 230 0026
IFCMCAIJ.ECJ• l l ~iRIT[(lHP•2012l 0027
2J12 F0RHAT(/T2.•Is XD T!tE cOMpOSITION OF THE vApOUR OR LiuUID FRACTION 0028
1.•,/T2,'ENTER VAP UR LIQ.'l 0029
READCIJcR,21 XLhAt;E 0030
I F < XL i J At1 E • F. q • ' L I (~ ' l G0 T 0 22n 0031
SueROuTINE cONoEN
c XD Givt:H AS C01'1?0SITI0i'J or VAPOUR FRAcTIOM
YCC:XD 0032
CALL Xy ALF A ( ALF A , 1\ L F C 0 i J t ALF • MALF • IH1 AT A , y ALF • YCC l 0033
XDC=YCC/(ALF-YCC•(ALF-1.) l 003'-t
C1)LDV=DV /DL 0035
xn=<CDLDV*YCC+xDCl/(!.+CDLDVl 0036
XC=XOC 0037
YC=YCC 0038
GO TO 999 0039
22ll CGNTiillJE 00'40
c XD r,IV[\I AS C01'1POSlTIO!J or Ll(,)UID FRACTION
XDC:::XD OO't l
CALL XYALFA(ALFA1ALFCO!J•ALF•MALF•NOATA,XALF•XDCI OO't2
vcc=xnc•ALF/(l.+XDC•(ALF-1.)) 00'+3
COLOV=DV/[)L OO'ttt
XU=<COLDv•vcc+xDC)/(l.•CDLDVl 00 1+5
XC=XDC 00Lt6
vc=vcc 00'+7
GO TO 999 ooqa
23!1 C0tH I f'JIJ.E 00'+9
C XD GIVEhl AS OVERALL COl!POSITIOtJ V•\LUE
C Ill XE D V AP 0 IJ H Ar l D L I (~ lJ I n D I 5 T I L L AT E
CDl.DV=DV ;DL 0050
DELX=D.lJOl 0051
Mii=2 0052
x 1 =xD-OEL'x 0053
23 l C O fH I Mu E 005'1·
CALL XYALFA(ALfA,ALFCON•ALF•MALF•NDATntXALF•Xll 0055
Yc=Xl•~LF/(l.+Xl•(ALF-1. l l OOS6
FACT=<cDLDV•Yt+x111c1.+CDLDVl 0057
lF(ARS(FACT-XDl~LT•O•OOOOll GO TO 232 0058
'MCALL==! 0059
CALL SEARCHCFAcT,XD•Xl .DELX•MH•NCALL> 0060
GO TO 231 0061
2 3 .2 CO t.J TI tJ UE 0062
XC=Xl 0063
999 CO!H I HUE 006'+
Rt: TIJ RI~ 0065
EllD 0066
SUBROUTINE CONOEN
SUBROUTINE FLASHB 0001
c FLASH CALCULATION FOR BINARY SYSTEMS THAT INCLUDE ENTHALPY
C CONSIDERATIONS.
c
C ••••••••••••••••••••••••••••••••••
INSERT COMMON BLOCK 'BiNCOMt HERE.
c ••••••••••••••••••••••••••••••••••
REAL LH•LHcONy1LHMW•LlQR1LIQS•LRWTtLSwT•MW 0002
TDPT=TG 0003
TBPT=TG oooq
CALL BlNOpT(A•s•c•NBDC•NDATAtpT•pl1TALF•Tap•TDpT1yALF1zl 0005
CALL BINepT(A•B•C•N0oc.NDATAtPT•Pl1TALF•TBp1TopT1XALF·z> 0006
lF<TF.LT.TBpT.QR,TF,GT.TDPTl GO TO 120 0007
CALL EQUIL(NDATA1TALF•TBP•TF1XALF•YALF•Xl•Yl> 0008
Q=(Yl-Z)/{Yl-Xl> 0009
GO TO 999 0010
120 CONTINUE 0011
CALL HTCAP<TDPT•TDpT,TBPT•z•z•HV•HLl 0012
CALL HTCAP<TDPT•TFtTF•z•z•HVF•HLFl 0013
IF<TF.LT.TBpT> HF=HLF OD l 't
lF(Tf.GT,TDpTl HF=HyF 0015
Q=<HV-HF)/(HV-HLl 0016
999 CONTINUE 0017
WRITEINTP•qOOOl Q•TF•TDPT•TBPT 0018
qooo FORMAT(/T21•FEE0 Q vALuE AND TEMpERATuRE OATA:••/T21•Q:'•F8,q, 0019
115x•'FEED TEHP:'1F8.2•1X•'DEG C'1/T21•0Ew pT:'1FB,2 1 lx•'DEG c•,qx, 0020
2'BUBBLE pT:•1F8,2•lx•'DEG c•,/) 0021
RETURN 0022
END 0023
SUBROUTINE FLASHB
SUB R0 UT IN E EQUI L Ul DAT A1 TA L F • T8 P tT F , XALF • YA L, F • X1 • Y,1 ) 0001
c •EguIL• SEARCHES FOR EQUILIBRluM DATA pOINTS cORRESpONoING TO
c TEMpERATuRE Tf1USlMG SUPPLIED OR CALCULATED x-v-T DATA. IF TF NE TALF
C LINEAR INTERPOLATION IS USED TO FIND VALUES FOR XAL,F ANO YALF•
DIMENSION TALF!ll •TBPI ii 1XALFI 111YALF1ll 0002
IFtTF.L,T.TALfll)) <;OTO 101 0003
TFACT=!TBP(2l-TFl/tT8P(21-TALF(lll OOO't
Xl=O.O+TFACT*XALFI l l 0005
Yl=TFAcT•YALFll> 0006
GO TO 999 0007
101 CONTINUE 0008
lFITF.LT.TAL,FINDATAll GO TO 102 0009
DO 10 I=l •NDATA 0010
DIFF=TALFI I l-TF 001 l
lFIDlFF.L,E•O•Ol GO TO 110 0012
10 CONTINUE 0013
GO TO 102 OD l '+
110 CONTIMUE 0015
TFACT=<TALF< I-t l-TF)/tTALFI I-11-TALF< I> l 0016
X l=XALF ( I-1 I +TFACT• I XALF I I >-xALF ( 1-1 l l 0017
Yl=YALFI I-1l+TFACT•CVAL.FII1-YAt..F( I-1 >I 0018
GO TO 999 0019
102 CONTINUE 0020
TFACT=!TALF!NDATAl-TFl/ITALFINOATAl-TBPllll 0021
Xl=XALF!NDATAl+TFACT•ll.O-XALFINDATAll 0022
yl=vALF(NDATAl+TfAcT•tl.O-yALFINDATA)) 0023
999 COMTINUE 002'+
RETURN 0025
END 0026
SUBROUTINE EQUll..
SUBROUTINE MULTFStNNll 0001
c ROUTINE FOR HANDLING BINARY PROBLEMS wlTH MORE THAN ONE FEED
c AND/OR SIDE STREAM•
c THE ROUTINE: (1) SORTS THE FEED AND SIDE STREAMS INTO AN ORDER OF
c INCREASING CONCENTRATION.
c t2} COMPUTES BOTTOMS FLOWRATE AND COMPOSITION FROM AN
c OVERALL MASS BALANCE.
c (3) COMPUTES LIQUID AND VAPOUR FLOWRATES IN EACH
c SECTION OF COLUMN.
c ••••••••••••••••••••••••••••••••••
c INSERT COMMON BLOCK 'BINcOM' HERE.
c ••••••••••••••••••••••••••••••••••
REA!- LH • UICONV, LHMW •LI QR• LI QS • LRWT, LSWT •MW 0002
C OVERALL MASS BALANCE.
SUMF=O. 0003
SUMFZ=D. 000'+
SUMFQ=O. 0005
SUMS=O. 0006
SUMSZ=O. 0007
SUMSQ=IJ. 0008
c •oo• LOOp 11 COMpuTEs OVERALL FEED FLOw•COMpOSITION AND Q VALUE.
DO 11 I=l •MF. 0009
SuMF=SuMF•FTOTS(ll 0010
SuMFz=SUMFz+FTOTS(ll*zF<ll 00 1 1
SUMFQ=SUMFQ+FTOTS< I l•c,1F< I I 0012
11 CONT I NUE 0013
IFlNS,EQ.Ol GO TO 101 001'+
c •oo• LOOp 12 C0MpuTES OyERAlL SIDE FLOw•COMpOSITION AND Q v~LuE.
DO 12 I=l•NS 0015
SuMS=SuMS+STOTS(l) 0016
SUMSZ=SUMSZ+STOTS<Il•zs<Il 0017
SUMSQ=SUMSQ+STOTS { I l •QS (I l 0018
12 CONTINUE 0019
SUBROUTINE MULTFS
101 CONTINUE 0020
c RESULTANT ovEHALL FEED Q VALUE AND COMPOSITION.
QMIX=(SUMFQ-SUNSQ1/cSUMF-SUMS1 0021
ZMix=<SUHFZ-5UM5Zll!SUMF-SUHSI 0022
lFINOS.EQ.11 GO TO 102 0023
c BOTTOt1S FLOuRATE /Hlo C0Mp0SITioN FOR pARTlAL, REaol1...ER OpERATloN.
BTOT=SUMF-SUMS-DTOT 002'!
XB=ISUMFz-SllMSz ... DTOT•xDl/BTOT 0025
IF<sTOT.LT.o.o.oR.xB•LT.O,Ol GO TO 902 002b
YB=XB 0027
GO TO 103 0028
102 CONTitiUE 0029
C B 0 TT 0 MS FL 0 l:·f RATE AM D C0 t1pO5 I T I 0 N FOR Op EN STE AM 0 p ER AT I 0 N,
YfbO. U 0030
GOp=DTOT•IR•I.l+IQMIX-l•l*ISUMF-SUMS> 0031
BTOT=SUMF-SUMS-OTOT+GOP 0032
XH=ISUMFz-suMsz-DTOT•xDl/BTOT 0033
lFIBTOT.LT.a.a.oR.xn.LT.O,Ol GO TO 902 003'+
103 CUNTJNUE 0035
YD=XD 0036
c pOINT OF ItJTERsEcTioN OF Top AND aOTTOM ovERALL OpERATING L,INEs,
XQM:( 1P.+1. l*ZMIX+<QMIX-1, 1•XD1/1R+QMIX) 0037
YQM=IR•ZMIX+QMIX*XDl/(R+QMIXl 0038
SLOPB= I YQM-yB I I ( XQll-XB) 0039
c FLO~RATE IN BOTTOM sEcTloN OF COLUMN : pARTIAL REBDILER OpERATION.
AV!ll=BTQT/(SLOPB-1,l 00'+0
ALI 1>=sToT+AV(1) 00'+ l
c FLOVJRATE IN aoTT011 sEcTioN OF COLUMN: OpEN STEAM OpERATloN.
IFINOS.EQ,ll Av<ll=GOP 00'+2
IFINOS.EQ.11 ALlll=sTOT OO'f3
CR=YB-SLOPA*XB 00'+'+
SUBROUTINE MULTFS
N,\J=NF+NS+ 1 OO'tS
C •DOt LOOp 21 SORTS FEED AND SlpE STREAMS ON BASIS OF COMPOSITION~
DO 21 I=NN,2,-1 00'+6
ZMIN=XB 00 1H
DO 22 K=l•MS OO'f8
ZMAX=ZS<K) OO'f 9
I F I Z M I N - Z t1 A X l 20 l • 9 0 1 • 20 2 ooso
201 ZN=zMAX 0051
ZMIN=ZMAX 0052
Nl=K 0053
NNN=l OOStt
202 CONTINUE 0055
22 CONTINUE 0056
DO 23 L=l•NF 0057
ZMAX=ZFILl 0058
IF<ZHIN-zMAx> 2031901120'+ 0059
203 ZN=ZMAX 0060
Z MI N=Z t1 AX 0061
NI=L 0062
NNN=3 0063
20'+ CONTINUE 006tt
23 CONTINUE 0065
IFINNN-21 205•206•206 0066
c COMpOSITION·FLO~RATE AND Q vALuE OF SiREAHS IN ORDER OF
C DECREASING CDMPOSITlON FROM THE Top OF THE COLUMN,
.205 ZFS<l>=ZN 0067
FLO~(l)=-STOTSINil 0068
QFS( I )=QSINI > 0069
ZSl INI l=ZSINI > 0070
ZSINI>=·l. 007.1
GO TO 21 0072
206 ZFSIIl=ZN 0073
F L 0 ~J ( I I = F T 0 T 5 I N I I OD 7 't
QFS< I l=QF(NI) 0075
ZFl IN! >=zF<Nl I 0076
ZF(NI l=-1 • 0077
21 CONTINUE 0078
SUBROUTINE MULTFS
C SLOPE AND Y-AXIS INTERCEPT OF OPERATING LINES IN EAcH SECTION
C OF THE COLUMN.
SLPE!lJ=SLOpB 0079
CFCT!ll=CB 0080
QX!ll=XB 0081
QY!ll=YB 0082
NNt=NN+l 0083
SLPE(NNll=l.O oosq
CFCTCNNll=o.o 0085
c 'DO' LOOp 2q CDMpuTES pOINTS OF INTERsEcTION OF OpERATING LINES•
C ANO LIQUID AND VAPOUR FLOWRATE5 WITHIN EACH SECTION.
DO 2q 1=2•NN 0086
Jl=I-1 0087
Qx<I>=<zFSIIl-cFcT<Ill•(l,-QfS(l) ))/(SLPElill•<t.-QFS<Il l+QFSll)l odaa
QY!Il=sLpE(lll•QXII)+CFCT(Ill 0089
AL I I l =AL CI 1 l -c~FS (I I *FLOW (I l 0090
Av< I >=Av< I 1)+(1.-QFSI I) )•FLOW! I) 0091
SLpE!I)=AL(ll/AVlll 0092
CFCT I I l =QY ( l l-SLPEI I l *GlX (I l 0093
zq CONTINUE Q09q
QX<NNll=XD 0095
QylNNl>=yD 0096
GO TO 999 0097
C ERROR MESSAGES ***********************************************************
90l CONTINUE 0098
MALF~lOOO 0099
WRITE<NTP•9QOll 0100
9001 F0RMATl/T2.•ERROR···Two STREAMS HAvE THE SAME COMPOSITJON.•) 0101
GO TO 999 0102
902 CONTINUE 0103
MALF=lOOO 01oq
WRITE<NTp•9002l 0105
9002 FORMAT(/T2t'ERROR ••• eToT OR XB Is LESS THAN 0.0.•1 0106
999 CONTINUE 0107
RETURN 0108
END 0109
SUBROUTINE MULTFS
SUBROUTINE SIMPLE 0001
C ROUTINE FOR DETERMINING OpERATING CONDITIONS FOR BINARY PROBLEMS
C INVOLVING SIMPLE COLUMNS. (ONE FEED,NO SIDE STREAMS)
C THE ,ROUT PIE: cl l COMPUTES BOTTOMS FLOWRATE AND COMPOSITION FROM AN
C OVERALL MASS BALANCE.
C 121 DETERMINES OPERATING LINE EQUATIONS.
C 131 COMPUTES LIQUID AND VAPOUR FLOWRATES IN EACH
C SECTION OF COLUMN.
cC ••••••••••••••••••••••••••••••••••
INSERT COMMON BLOCK 'BlNCOM' HERE.
c ···········•**********************
RE AL UI • UI C 0 NV , l HM W, L l QR , l I Q S • LR WT • l SW T • MW 0002
ZFS<2l:Z 0003
QF5(2l=Q 000'+
FLOWl2l=FTOT 0005
c POINT OF INTERsEcTioN OF OpERATlNG LINES.
XQM= ( CH+ 1 ~- l • Z + ( Q- l • ) * XD l I I R + Q I 0006
YQH=IR•z+Q•XDl/(R+Q) 0007
IF<NOS.EQ,l) GO TO 110 0008
c eoTTOMS FLOwRATE ANo COMp05ITioN FOR pARTlAL REaOILER OpERATlON,
BTOT=FTOT-DTOT 0009
xa=<FTOT•Z-OTOT•xDl/BTOT 0010
lF(XB.LT.D.O.oR.XB.GT.zl GO TO 901 001 l
YB=XB 0012
GO TO 120 0013
110 CONTINUE 00 l '+
c BOTTOMS FLOwRATE ANo COMpOSITioN FOR opEN 5TEAM OPERATION.
YB:O.O 0015
Gop=DTOT•(R+l,l+(Q-1.l•FTOT 0016
BTOT=FTOT-DTOT+GOP 0017
xa=<FTOT•Z-OTOT*XD)/STOT 0018
lf(XB•LT.o.o.oR.xB•GT.zl GO TO 901 0019
i20 coMTif\luE 0020
YD=XD 0021
SUBROUTINE SlMpLE
c SLOPES AND y-AXIS INTERCEPTS OF OPERATING LINES,
SLPE(ll=(YQM-YBl/(XQM-XBl 0022
CFCT < 1 l =YQM-SLPE ( l l •XQM 0023
SLPE12>=R/(R+l. l 002't
CFCT(2l=XD/(R+1.) 0025
c VAPOUR AND LIQUID FLOWRATES WITHIN THE COLUMN•
Avcll=RTOT/(SlpE(l )-1~) 0026
ALI 1l=BTOT+AV<1) 0027
IFINOS.EQ.11 AV(ll=GOP 0028
IfCNOS.EQ.1 l ALII l=sTOT 0029
AL(21=oTOT•R 0030
Av<2l=DTOT+AL(2l 0031
5LpEl31=1,0 0032
CFCT(3l=O.O 0033
c pQINTs OF INTERSEcTION OF OpERATING LINES wITH DIAGONAL ANo EACH OTHER,
QX(l):XB 003't
QY<ll=YB 0035
G!X<2l=XQM 0036
Qy(2l=yQM 0037
QX<3l=XD 0038
cn<Jl=YD 0039
NN=2 00"10
GO TO 999 OO'tl
C ERROR MESSAGES ***********************************************************
901 CONTINUE 00"12
WRITEINTP•900ll OO'tJ
9001 FORMAT(/T21•ERROR ••• aroT OR XB IS LESS THAN O,O.••/Tlo.•OR xa IS G OQ'tq
lREATER THAN z,•) ooqs
MALF=tooo OO't6
999 CONTINUE 0Dlf7
RETURN OO't8
END ooq9
SUBROUTINE SlHpLE
SUBROUTINE pON$AVCllpTS1MpTS1NFIN,MFlNl 0001
c RouTINE FOR cONSTRucTioN OF pONcHON-sAvARIT OpERATING oIAGRAM·
c THE ROUTitlE: ( l l COMPUTES BOTTOMS FLOWRATE AND COMPOSITION FROM AN
c . OVERALL MASS BALANCE.
c (2) CONSTRUCTS ENTHALPY- CONCENTRATION DIAGRAM.
c !3l COMPUTES MINIMUM REFLUX RATIO.
c (q) DEFINES OpERATING LINES ON x•v DIAGRAM•
c (5) CDMpuTEs vApOuR AND LIQUID MASS ANO MOLAR FLOWS
c THROUGH COLUMN,
c (61 DETERMINES CONDENSER AND REBOILER HEAT DUTIES.
c
c ·······················•••*•******
INSERT COMMON BLOCK 'BINCOM' HERE.
c
·························•********
REAL LH•LHCONV•LHMW•LlQR•LlQS•LRWTtLSwT•MW 0002
DATA CONFAC•ENCONV/0,00027778•2.326/ 0003
c CALCULATION OF BOTTOMS FLOwRATE AND COMPOSITION,
BTOT=fTOT-DTOT 000~
XB=CFTOT•Z-DTOT•XDl/BTOT 0005
lflXB.LT.O.o.oR.X8·GT.zl GO TO 901 0006
TOG=TG 0007
DELV=O.OS 0008
DELX=0.05 0009,
YH<l>=o.o 0010
XH<ll=o.o 0011
l\JENTH=O 0012
c 'DO' LOOp 10 C0MpuTEs oATA REQuIRED To coNsTRucT ENTHALpv-
c coNcENTRATioN DIAGRAM IN pONCHON-sAvARIT DESIGNS·
DO 10 K=l • 100 0013
XG=XH(Kl OOl'f
YG=Yll<Kl 0015
IFIYG·GT.l.Ql) GO TO 100 0016
NENHl=NErHH+ 1 0017
TA=TDG 0018
c 'sINDpT• CALCULATES oEw pOINTs.
CALL BINopT!A•B•C•NeDC1NDATA1pTtpA,TALF•Tap·TA,yALF•YG) 0019
TDU=TA ooio
SUBROUTINE pONSAy
TA=TDG 0021
C 'eINBpT• CALCULATES BUBBLE pOlNTS.
CALL BIN9pTIA•B•C•NBDC•NDATAtPT•pA1TALF•TBp•TAtXALF•XG) 0022
TBU=TA 0023
C 'HTcAp• C0MpUTES VApOUR AND LIQUID ENTHALpy,
CALL HTCAP<TDUeTDU•TBU•YG•XG•HV•HL> 002'+
HVAPlK)=HV•ENCONV 0025
HLIQlK>=HL•ENcoNv 0026
YHIK+l)=yH<K>+DELY 0027
XHIK+l >=xH<1< )+OELX 0028
10 coNTINuE 0029
100 CONTINUE 0030
C COMPUTATION OF FEED ENTHALPY•
TDF=TG 0031
TsF=TG 0032
CALL BINOpT(A•s•c•N0DC•NOATAopT•pA1TALF•TBp•TDF•yALF•zl 0033
CALL BINepT(A•B•C•NsDC•NDATA1pTtpA1TALf•Tep1TBF•xALF1z> 003'+
CALL HTcAplTDf•lOFtTBF•Z•Z•Hvf•HLF) 0035
HF=IHVF-Q•IHVF-HLFll•ENCONv 0036
c 'RMIN• COMpuTEs THE MINIMUM REFLUX RATIO.
CALL RMINIHLD•HVDl 0037
IFlMALF.GT.9991 GD TO 999 0038
c CHECK IF SpECIFIED REFLUX RATIO IS AccEpTAsLE. IF NOT usE l.S•RM
lFlRM.GT.R) GD TO 902 0039
GO TO 190 00'+0
199 R=I.5•Rtl 00'+ 1
190 COtJTINUE 00'+2
c SEARCH FOR plSTILLATE ENTHALPY oEpENoENT ON CONDENSER TYPE.
lF1NCOND.EQ!ll CALL HFIND1XD•HO•HLIQ1NENTHtXH1 OO'+j
IF<NCOND,EQ,2l CALL HFIND<XD•HD•HVAP•NENTH1YH> 00'+ '+
c CALCULATION OF REBOILER AND coNoENSER HEAT ouTy•ANo posITION OF
C •DEL• POINTS ON ENTHALPY-CONCENTRATION DIAGRAM.
QIOASH:R•<HVD-HLOJ+HVD OOttS
QC=<QlDASH-HDl•DTOT 00'+6
Q2DASH=<FTOT•Hr-oToT•QlDASH)IBTOT 00'+7
c 'HFINo• RETuRNS eDTTOHS ENTHALPY HB (AT cONc xs>·
CALL HFitlDCXB•HOtHLIQ•NENTH•XHl OOlf 8
QB=(HB-Q2DASHl•RTOT 00'+9
SUBROUTINE pONSAv
DELD=QlDASH ooso
DELB=Q2DA5H 0051
SLOPE=<DELD•Hfl/!XD-z> 0052
CFAcT=DELD-xO•SLOpE 0053
OELXF=O.Ol OOS't
MM=l 0055
XG::Z+DELXF 0056
c 'GO To• L00pS 201 AND 202 SEARCH FOR THE pQINT OF INTERSEcTION OF
C THE OPERATING LINES. <xCR•YCR)
201 COtHINUE 0057 '\
CALL HFINDlXG•HLC•HLlQ•NENTH•XHl 0058
HG=SLOPE•XG+CFACT 0059
lf!ABS(HLC-HGl.LT.lO,l GO TO 210 0060
NCALL::2 0061
CALL SEARCH(HLc•HG•XG·DELxF•MN.NcALL) 0062
GO TO 201 0063
210 CONTINUE 006'+
XCR=XG 0065
DELYF=0.01 0066
MN=l 0067
YG=z+DELYF 0068
202 CONTINUE 0069
CALL HFlND<yG•HVC•HvAP•NENTH•YH> 0070
HG=SLOpE•YG+CfACT 0071
lf( ABS<HVC-HG l ·L T.10.) GO TO 220 0072
NCALL.=2 0073
CALL SEARCH<Hvc•HG•YG·DELYF•MN1NCALL) 007'+
GO TO 202 0075
220 CONTINUE 0076
YCR=YG 0077
c •orLINE• CONruTEs COORDINATES OF pOINTS ON THE OpERATING LINES·
c USING THE pONcHON-sAvARIT TEcHNiouE.
CALL OPL.INE<NPTStMPTS> 0078
IF!MALF.GT.9991 GO TO 999 0079
c 'FLOws• cOr·wuTES LIQUID ANo yApOuR FLOwRATES wITHIN THE COLuMN•
CALL FLOWS(NpTS•MPTS,NFIN•MFINl 0080
lFlMALF.GT.9991 GO TO 999 0081
SUBROUTIN~ pONSAV
c CONVERSION OF HEAT DUTIES AND ENTHALPY TO 5.I. UNITS.
c ( QF I 1 l 1 S USED TO STORE FEED ENTHALPY)
QC=C~C*CONF AC 0082
QB=QB*CONFAC 0083
QFlll=HF 0081f
lFCNQp.EQ.21 GO TO 999 0085
YB=XB 0086
YD=XD 0087
ZFSC21=Z 0088
Qf5(2)=Q 0089
FLOWC21=FTOT 0090
NN=2 0091
c polNTs OF INTERSEcTioN Of OpERATING LlNEs wtTH DIAGONAL AND EAcH OTHER·
QX!ll=X8 0092
QY(ll=YB 0093
QXC2l=XCR 009q
QY(21=YCR 0095
QX(3l=XD 0096
QYl3l=YD 0097
GO TO 999 0098
C ERROR MESSAGES ***********************************************************
901 CONTINUE 0099
WRITE!NTP•9001l 0100
9001 F0RMATC/T2,•ERROR.•oBTOT OR XB IS LESS THAN D.0•'•/Tlo,•OR XB IS G 0101
lREATER THAN z.•) 0102
MALF=lOOO 0103
GO TO 999 0 I 0'+
902 CONTINUE 0105
WRITE<NTP•9002l RH•R 0106
9002 FORMAT(/T2,•SpECIFIED REFLUX RATIO IS LESS THAN THE CALCULATED MIN 0107
llMUM•'•/Tq,•RMlN='•F6,2•2X•'R 5PEC='•F6.2•/T2• 0108
2'A VALUE OF I.S•RMIN WILL BE USED.') 0109
GO TO 199 0 1l 0
999 CONTINUE 0 l 1I
RETURN 0 1 12
END 0 1 13
SUBROUTINE PDNSAV ·
SUBROUTINE HTCAP<TDpT•T2D•T2B•YS•XS•Hv•HL) 0001
C ROUTINE FOR COMPUTING yApOuR AND LIQUID ENTHALPY fOR ~INARy SYSTEMS.
c ············••********************
C INSERT COMMON BLOCK 'BINCOM• HERE.
c ••••••••••••••••••••••••••••••••••
D I ME NS I 0 N C'p ( 2 l • L 11 T < 2 I 0002
REAL LH•LHcoNv1LHMW•LIQRtLIQS•LRWT1LSwT•MW 0003
REAL. un OOO't
T=TBASE+TCONV 0005
To=T2D+TcONV 0006
TB=T2B+TCONV 0007
C VAPOUR ENTHALPY CALCULATIONS.
c •DO• LOOp 10 COMPUTES HEAT cApAcITy OF EACH COMpONENT AT THE
C BUBBLE POINTtRELATlVE TO THE BASE TEMPERATURE,
DO 10 1=1•2 0008
AF ACT=ACP I I I•! TO-TI 0009
BFACT=acr<11•(TD••2.~T••2.l/2. 0010
CFAcT=ccp<Il•<To••3.-T••3.l/3. 00 11
DFACT=ocp<Il•<To••q,-J••q,)/q. 0012
Cplll=AFACT+aFA(T+cFAcT•DFAcT 0013
10 coNTJNuE DOl't
Y!=CP(ll•YS•CPMW(ll•CPCONV 0015
Y2=CP(2)•(1,-YSl•CpMw<2>•cpcoNv 0016
C LATENT HEAT CALCULATIONS•
DO 11 1=1•2 0017
TFACT=<Tc<I>-TopT)/(TCIIl-TBP(l)l 0018
LHT(ll=LH(I)*ITFACT••0.38l*LHMW1Il•LHCONV 0019
11 CONTINUE 0020
I
C TOTAL VAPOUR ENTHALPY·
HV=Y l +Y2+YS•LHT ( 1, + ( 1.-YS) •LHT ( 2 J 0021
suaRou TI NE H.T c AP
C L1QUJO ENTHALPY CALCULATIONS.
C •DO• LOOP 20 COMPUTES HEAT CAPACITY OF EACH COMPONENT AT THE
C DEW pOJNT•RELATIVE TO THE BASE TEMPERATURE.
DO 20 1=1•2 ooi2
AFACT=ACPII>•<TB-Tl 0023
BFACT=scp<Il•lTB••2.-T••2.l/2. oozq
CFACT=ccp<11•<re••3.-T••3.l/3, 0025
DFACT=ocp<t>•lTB••q.-T••q.11~. 0026
Cplll=AFACT+BFACT+CFACT+DFACT 0027
20 CONTINUE 0028
c HEAT OF MlxING INCLUDED IF SpEcIFIED·
IFcNHS.GToO) CALL HTSOLN1HS•XS1HEVABS·HScONV•HSMW•HSDLN•NHS1XHS1 0029
Xl=CP(l)•CPHUl!l•CPCONV 0030
xz=cp<2>•CPHw<2>•crcoNv 0031
IF<NHS.EQ.0) Hs=o.o 0032
C TOTAL LIQUID ENTHALPY•
HL=Xl•XS+X2•(1.-XS)+HS 0033
RETURN 003'+
END 0035
SUBROUTINE HlCAP
SUB R0 UT l NE HTS 0 UI < H 1 XA' HE VABS • HS C0 NV , HS MW • HS 0 L N • NHS • XHS l OOOl
c ROuTINE FDR C0MpuTING HEATS OF SOLUTION FOR BINARY MlxTuREs.
C LINEAR INTERPOLATION IS USED BETWEEN DATA pOINTS.
DIMENSION HSMVJ11) •HSOLN( 1l1XHS( 1) 0002
IFCXA.GT.XHS< l l l GO TO 100 0003
H=HSOLN<ll•HSMW(l)•HSCOHv•HEvABS•xA 000'+
GO TO 999 0005
100 COl'IJTINUE 0006
DO 10 I=l•NHS 0007
DIFF=XA-XHS< I l 0008
IF(OIFF.LT.Q,Ol GO TO 110 0009
10 CONTINUE . 0010
GO TO 120 00 11
110 XFACT=!XHSCil-XAl/!XHS!ll-xHS(l-lll 0012
HFAcT=HscoNv•HEvAas•xA 0013
H=<HSOLN< I l+HISOUl< I-1 l-HSOLN( I I l•XFAcTl•HSMW( 1 l•HFACT 00 1 'i
GO TO 999 0015
120 H=HSOLN(NHSl•HSMWlll•HSCONv•HEvAss•xA 0016
999 CONTINUE 0017
RETURM 0018
END 0019
SUBROUTINE HTSOLN
SUBROUTINE HFIND1XA•H•HENTH•NENTH•XYH) 0001
c RouTINE SEARCHES FOR VAPOUR OR LIQUID ENTHALPY VALUE coRRESpONOING
C TO THE COMPOSITION AND PHASE SUPPLIED.
C LINEAR INTERPOLATION IS USED BETWEEN ACTUAL DATA POINTS.
DIMENSION HEl'HH( 1l•XYH(1 I 0002
IF<XA.GT.XYll(lll GO TO 100 0003
H=HENTH(ll OQOq
GO TO 999 0005
100 CONTINUE 0006
DO 10 I=l•NENTH 0007
DIFF=XA .. XYH(I) 0008
lFIDtFf.LT.0.01 GO TO 110 0009
10 CONTINUE 0010
GO TO 120 00 1 l
110 XFACT=<xYH( r>~xAl/lxYH<I>-xYHI 1-1)) 0012
H=HENTH< I l+IHEtJTHI I-1 l.,..HENTH( I) l*XFACT 0013
GO TO 999 OOltf
120 H=HENTtl ( NENTH l 0015
999 CONTINUE 0016
RETURN 0017
END 0018
SUBROUTINE HFtND
SUBROUTINE RHINCHLD1HVOI 0001
c RouTINE cALCULAtEs MINIMUM REFLUX RATIO IN pONCHON-SAyARlT
c DESIGN OF RINARV SYSTEMS•
c ••••••••••••••••••••••••••••••••••
c INSERT COMMON nLDCK •sINCOM• HERE.
c ••••••••••••••••••••••••••••••••••
REAL LH•LHCONy,LHM~J•LIQR•LlQS•LRWTtLS~T•Mn 0002
ACC=O.DOOl•HF 0003
OELY=0.02 OOO'l
I
Yl=XD ooos
MN=l 0006
NCOUNT=O 0007
c 'GO TO• L00p 100 SEARcHES FOR THE TIE LINE THAT pASSEs THROUGH
c pOINT <z•HFI ON THE ENTHALpy-cONcENTRATION DIAGRAM•
100 CUNTINuE 0008
NCOUNT=NCOUNT+l 0009
lF(flCOuNT.GT·50ul GO TO 902 0010
CALL xvALFACALFA•ALFcON•ALF•MALF•NoATA.yALF•Yll 0011
Xl=Yl/CALF-Yl*CALF-1.11 0012
IFINcouNT,GToll GO TO 101 0013
IFIX1.LE,z> GO TO 901 001q
101 coNTIMuE 0015
CALL i!FlNDCxl•HLl•HLlQ1NENTH1XHI 0016
CALL HFINOCyl•HVl•HVAP1NENTH•YHl 0017
SLOPE=<Hvl-HLll/(yt-xll 0018
CFAcT=HLl-SL_OpE*Xl 0019
HTEST=SLOPE•Z+CFACT 0020
lf(AaSCHTEST-HFl•LT.Accl GO TO 200 0021
NCALL=2 0022
CALL SEARcHIHTEST•HF•yl•OELy•MN•NcALLl 0023
GO TO 100 002't
200 CQMTINUE 0025
SUBROUTINE RMIN
c X•Y cOORDINATEs OF TIE LINE REPRESENT A POINT Of INTERsEcTION Of
c THE OPrRArrNG L1NES THAT FALLS ON THE EQU1L1BR1UM CURVE,
C THIS IS A STATE OF MINIMUM REFLUX.
DELDM=XD•SLOPE+CFACT 0026
C 'HFIND• RETuRNS EtlTHALPY OF REFLUX LIQUID•
CALL HF I ND< XC 'HLD • HL IQ• NENTH 'HI l 0027
IF<NCONO.EQ,2l GO TO 210 0028
C TOTAL CONDENSER OpERATION,
c •HFIND• RETuRNS ENTHALPY OF VAPOUR ENTERING TOTAL cONoENSER.
CALL HFINDcxD,HVD•HVAP,NENTH1HI) 0029
GO TO 220 0030
210 COtHINUE 0031
c PARTIAL coNoENSER OpERATtON.
5LPM:(DELDM-HLD)/(XD-XC) 0032
CFH=DELDM-xo•SLPM 0033
DELXM=0,0001 Q03tf
MN=l 0035
Xl=XC+DELXM 0036
NcourH=O 0037
c 'GO TO• L00p 211 SEARcHES FOR ENTHALpy Of yApOuR ENTENING pARTIAL
C CONDENSER.
211 CONTINUE 0038
NcouNT=NCOUNT+1 0039
IF<NCOUNT,GT.SOOl GO TO 903 ooqo
CAL L 11 F I ND ! X1 • HVD• HVAP , NEl.JT H , y Hl ·oott1
HvcM=Xl•SLPM+CFM OO'i2
lFCABSlHVD-HVCMi.LT.Acc> GO TO 220 00'+3
NCALL=2 ooqq
CALL SEARCHIHVD•HVCM•Xl•DELXM•KN1NCALLl 00'+5
GO TO 211 OO't6
220 CONTINUE 00'17
C MINIMUM REFLUX RATIO·
RM=<DELDM-HVDJ/(HVD-HLDJ 00'+8
GO TO 999 ooq9
SUBROUTINE RMIN
C ERROR MESSAGES ***********•****•*•****************************************
901 CONTIHUE 0050
WRITEINTP•900ll 0051
9001 FORMAT(/T2•'ERROR IN RMIN. FEED ENTERS ON TOP TRAY•'> 0052
MALF=lOOO 0053
GO TO 999 oos~
902 CONTINUE 0055
WRITEINTP•9002l 0056
9002 FORMAT!/T2•'ERR0R IN RMIN ROUTINE.'•/T2•'TIE LINE PASSING THROUGH 0057
!POINT <Z•HFI NOT FOUND.') 0058
WRITEINTP•90121 HTEST•HFtYl•XltNCOUNT•DELY 0059
9012 FORMAT<T2•'HTEST= 1 tE12.B,2x•'HF='•El2.B•2x.•v1=··F6.~.2x.•x1=·· 0060
1F6.q,/Tl2•'NO. OF ITERATIONS='•l9~2Xt'INCREMENT= 1 •E12.8l 0061
MALF=lOOO 0062
GO TO 999 0063
903 CONTINUE 006't
WRITEINTp•9003) 0065
9003 FORMAT(/T2t'ERR0R IN RMIN ROuTINE.••/T2• 1 ENTHALpy OF vAPOUR ENTER! 0066
lNG pARTIAL coNoENSER NOT FOuNo.•1 0067
WRITE(NTp•9013) HVD•HVCM1xl•xc1NCOUNT•DELXM 0068
9013 FORMAT<T2•'HvD='tE12,B.2x•'HVCM='•El2.8•2x•'xl='·F6,~,2x·•xc='• 0069
1F6•q•/T12•'NO. OF ITERATIONS='1I9•2X•'INCREMENT='•El2.8l 0070
MALF=lOOO 0071
999 CONTINUE 0072
RETURN 0073
END 007't
SUBROUTINE RMIN
SUBROUTINE OPLINE<NpTS1MPTS) 0001
c ROuTINE cALcULATES X•Y pOINTS USED TO CONSTRUCT THE OpERATING LINES
c ON A PONCHON-SAVARIT DIAGRAM.
c ••••••••••••••••••••••••••••••••••
c INSERT COMMON BLOCK •eINCOM' HERE.
c ••••••••••••••••••••••••••••••••••
REAL LH•LHCONV·L•IHW1LIQR1LIQS•LRWT1LSwT•Mw 0002
ACC=O.OOQl•HF 0003
c REcTIFylNG SECTION.
c END POINTS OF RECTIFYING SECTION ARE XD AND XCR,
c THIS INTERVAL IS DIVIDED INTO NlNT INCREMENTS OF SIZE H.
NPTS=NINT+l 000'+
HN=l 0005
Xl=XO 0006
H=<xo-xcR>ININT 0007
Yl=Xl 0008
XROPINPTSl=Xl 0009
YROPINPTSl=Yl 0010
c 'GO To• L00p 100 USES pONcHON-sAvARIT METHOD To FIND THE v-cOOROINATE
c AT EACH vALuE OF Xl•FROM XD To XCR IN sTEps OF -H.
100 CONTINUE 0011
NpTS=NPTS-1 0012
Xl=Xl-H 0013
IF!Xl,LT·XCR> GO TO 500 001~
c 'HFINo• RETuRNS LiquIO ENTHALPY AT CONCENTRATION xl.
CALL HFIND<xl•HLQ•HLlqtMENTH .. xri> 0015
c SLOPE AND y-AxIS INTERcEpT OF INTERNAL REFLUX RATIO LINE,
SLOPE=cDELD-HLQ)/CXD-Xl> 0016
CFACT=HLQ-SLOPE*Xl 0017
o~Lv=o.01 0010
YG=Xl 0019
YG=YG+OELY 0020
NLOOP=l30 0021
NcERR=O 0022
SU8ROUTINE OPLINE
C 'GO TO• LOOp 130 FINDS INTERSECTION OF VAPOUR ENTHALPY CURVE AND
c INTERNAL REFLUX RATIO LlNEtWHlcH ylELos THE y-cOORoINATE YG OF THE
C OPERATltlG LINE POINT AT X1,
130 CONTINUE 0023
NCERR=NCERR+l 0021.f
IF<NCERR.GT.SOOl GO TO 902 0025
CALL HFIND(yG•HVP•HvAP•NENTH•YH) 0026
HG=SLOpE•YG+CFACT 0027
IF<ABS<HvP-HGl·LT.Acc> GO TO 110 0028
NCALL=2 002.9
CALL SEARCH<Hvp•HG•YG•DELY•MN•NCALLl 0030
GO TO 130 0031
110 COl'ITINUE 0032
XROP<NPTSl=Xl 0033
YROP(NpTs>=vG 003tt
GO TO 100 0035
500 CONTINUE 0036
C STRIPPING SECTION.
C END POINTS OF STRlppJNG SECTION ARE XB AND XCR•
C NExT FIVE LINES CALCULATE THE s·IzE AND .NUMBER OF INCREMENTS IN
c THE STRIPPING sEcTION•KEEpING THE INCREMENT sizE AS SIMILAR AS
c POSSIBLE TO THAT USED IN THE RECTIFYING sEcTION.
DELBC=XCR-XB 0037
FACT=IJELBC/H 0038
NFACT=IFJX(FACTl 0039
lFINFAcT,GT,NppSc> GO TO 901 001.fO
H=OELBC/NFACT OOLf 1
MM=2 00'+2
Xl=XB 00'+3
Yl=Xl 001.f'f
XSOP(ll=Xl 001.f 5
YSOPlll=Yl 00Lf6
MPTS=l OOLf 7
SUBROUTINE OPLINE
c 'GO To• LOOP 200 USES PONCHON-SAVARIT METHOD TO FINO THE Y-cDOROINATE
c Ar EACH VALUE OF x1,FROM XB yo XCR lN STEPS OF H.
200 CONTINUE OO't8
Xl=Xl+H DO't9
lF<Xl.GT.XCRl GO TO 999 ooso
MpTS=MpTS+l oos1
c 'HFINo• RETuRNS LIQUID ENTHALPY AT CONCENTRATION xi~
CALL HFIND<xl•HLQ•HLlQ1NENTH1XHl 0052
c SLOPE AND y-AxIS INTERcEpT OF INTERNAL REFLUX RATIO LINE.
SLOPE=(HllQ-DELB)/(Xl-XBl 0053
CFACT=HLIQ-SLDPE•Xl OOS't
DELY=D.01 DOSS
YG=Yl 0056
YG=YG+DELY 0057
NL00P=230 0058
McERR=O 0059
c 'GO To• L00p 230 FINDS INTERsEcTioN Of yApOuR ENTHALPY CURvE ANO
c l~TERNAL REFLUX RATIO LINE1wHicH ylELoS THE y-cOORoINATE YG Of THE
C OPERATING LlNE POINT AT Xl•
230 CONTINUE 0060
NcERR=NCERR+l 0061
lF<NCERRoGT.SOOl GO TO 902 0062
CALL HFlND<YG•HVP•HVAP1NENTH1YHl 0063
HG=SLOpE•YG+CFACT 006't
lf(ABS<HvP-HGloLT.Accl GO TO 210 0065
NCALL=2 0066
CALL SEARCHlHVP•HG•YG•DELY1MN•NCALL> 0067
GO TO 230 0068
210 CONTINUE 0069
XSOP(MpTSl=xl 0070
YSOPIMPTSl=yG 0071
GO TO 200 0072
SUBROUTINE OPLINE
C ERROR MESSAGES **************•********************************************
901 COMrrNUE 0073
WRITEINTP•9001J NFACT 007q
9001 FORHATl/T21•ERROR •• ,NO. OF INTERVALS CALCULATED IN SUBROUTINE OpLI 0075
lNE••/T21•ExcEEos DIMENSION SpEclFicATIONs: cALCULATEo NO.='•llfl 0076
MALF=lOOO 0077
GO TO 999 0078
902 CONTINUE 0079
WRITEINTP•9002)NLOOPiHVP•HG•OELY 0080
9002 FORMAT(/J2,•ERROR IN OpLINE.••/T2•'LOOp'1lLf•' ExcEEOEa 500 ITERATI 0081
10NS.'•/T2•'HVP='•El2.8,2X•'HG='•El2.812X1'y~INCREMENT='•FlO.BI 0082
MALF=lODO 0083
999 CONTINUE ooaq
YSOPIMpTSl=yCR 0085
NpTS=NINT+1 0086
RETURN 0087
END 0088
SUBROUTINE OPLINE
SUBROUTINE FLDHS(NPTS•MPTS1NFIN1MFINI 0001
c RouTINE cALCULATES yApOUR ANO LIQUID FLOwRATES THROUGH A sINARy
c DISTILLATION COLUtlN WHEN CONSTANT MOLAL OVERFLOW Is Nor AS~uMEo~
c 1PONCHON-SAyARIT DESIGN PROCEDURE)
c *******•**************************
c INSERT COMMON BLOCK •5INCOM' HERE.
c ••••••••••••••••••••••••••••••••••
REAL LH•LHCONV1LHMW•LIQR•LlQS•LRWTtLSwT•MW 0002,
WTOT=NPTS+MpTS 0003
lFCNTOT.GT.NppSCl GO TO 901 000 lf
NToTl=NToT-1 0005
NRFIN=MpTS+l 0006
YD=XD 0007
Tl=TG 0008
LIQRINTOTl=DTOT*R 0009
vApRINTOT>=oTOT•(R+l,I 0010
CALL AvEMWlxD•YD•AVEL•AvEv•MWl 00 1 l
LRWTINTOTl=LIQRINTOT)*AVEL 0012
VRwT<NToT>=vAPR(NTOTl*AVEV 0013
CALL sINapT(A•0•c•NeDC1NOATAtpT•pltTALF•Tep•TltxALF•xD> 00 1 't
TRL<NTOTl=Tl 0015
CALL BINopT(A•e•c•NeOc1NOATA1pT•pl.TALF•Tep•Tl.yALF•yo1 0016
TRV<NTOT>=Tl 0017
SUBROUTINE Flows
C 'DO' LOOP 11 COMPUTES yAPOUR AND Ll~UID MOLAR AND MASS FLO~RATES
C IN RECTIFYING 5ECTION•TOGETHER ~ITH DE~ AND BUBBLE POINTS,
POSN:•ABOVE• OOla
DO 11 I:NTOTl•NRFIN1-l 0019
NRS=l-MpTS 0020
LlQR<l>=oTOT•<xD-YROp(NRS))/(yRQp(NRSl-xROp(NRS)) 0021
IF<LIQR(J).L,T.O.Ol GO TO 902 0022
XAVE=XRDPINRSl 0023
YAVE=YROp(NRSl 002't
CALL AvEMW<xAVE•YAVE1AvEL•AVEV1MW) 0025
LRWT<Il=LIQR<Il*AVEL 0026
VAPR( I l=LIQR( l l•IXD-XROP<NRS) l/(XD ... YROp(NRSl > 0027
lf(VAPR(Jl,LT.O,Ol GO TO 903 0028
VRWT (I) =vAPR (I I •AvEv 0029
CALL &INBpT(A•o•c•N5DC•NDATAtpT•pl1TALf•TBp•Tl·xALF•xAvE> 0030
TRL<Il=Tl 0031
CALL aINopT(A•B•c•Neoc•NpATA1pT•pl1TALF•Tep•Tl·yALF•yAyEl 0032
TRv<Il=Tl 0033
11 CONTINUE 003't
c 'DO' LOOp 12 COMPUTES vApOuR ANO LIQUID MOLAR AND MASS FLOWRATES
c IN STRipplNG SEcTION1TOGETHER wITH DE~ AND BUBBLE pOINTs.
POSN:•BELOW• 0035
DO 12 l=MPT5,1,-1 0036
LIQSCl)=QTOT•CYSOP<I>-xB>l<YSOP(ll-XSOP<Ill 0037
IF<LIQS(Il.LT.0.01 GO TO 902 0038
XAVE=XSOP<Il 0039
YAVE=YSOP<I> OO'tO
CALL AyEMW<xAvE•YAVE·AvEL•AVEV•MW) 00'+1
LSWTIIl=LlQSIIl•AVEL 00'+2
VAPS(ll=LlQSIIl•(XSDP!Il-XB>l<YSOp4I>~xBl OO't3
lF<vAps<1>.LT.o.01 GO TO 903 OO't 't
VSWTI I l=VAPS< I l •AVEV 00'+5
CALL sINBPT(A•e·~·NBPC•NDATAtpT•PltTALF•TBp·TltxALf•XAVEl OO't6
TSL(l)=Tl 00'+7
CALL oINDpT<A•n•c•NsDCtNOATAtpTtpl.TALF•TBp•Tl.yALF•YAvE> OO't8
TSV(l>=Tl 00'+9
12 CONTINUE ooso
SUBROUTINE Flows
C REROILER STAGE IS STEPPED OFF FROM XB AS IN A MCCABE-THIELE
C CONSTRUCTION. STARTING POINT FOR THE PACKING JS XNtYN.
CALL XYALFA1ALFAtALFCON•ALF•MALF1NDATA1XALf•XB) 0051
YN=XB•ALF/! l ,+XB•IALF-1. l > 0052
I F < y M • L T • YS 0 p ( 11 P TS > l G0 T0 2 0 2 0053
WRITEO.ITP•200'l) yM,xsoplMPTS> •YSOp<MPTSl 005'+
2001 FORMAT(/T2,•THE cDLuMN cONsisTs OF A REcTiryING sEcTIQN ONLY•'• 0055
1/T2•'C0Mp0SITION OF vApOuR LEAylNG REsOILER='•F7•qt/T2,•0pERATING 0056
2LINES INTERSECT AT pOINT <x•y>='•F6,'+1'•'F6.q) 0057
\ IF<NOp.NE.21 GO TO 999 0058
MF IM:::: 1000 0059
DO 21 J::::l •NpTS 0060
DIFF=YN-:-yRQp( I l 0061
IF<DIFF.LT.o~oi GO TO 201 0062
21 CONTINUE QQ,63
201 NFIN=I-1 006'+
GO TO 301 0065
202 CUNTll'JUE 0066
IFINOP.NE.21 GO TO 999 0067
DO 22 I=l•MPTS 0068
DIFF=yN-ySOplll 0069
lF<tilFF•LT·D•Ol GO TO 203 0070
22 CONTINuE 0071
203 MFIN=I-1 0072
NFIN=l 0073
GO TO 302 007'+
SUBROUTINE Flows
C FLOWRATES AT THE BOTTOM OF THE PACKING,
301 CONTINUE 0075
YFACT=!YROP<NFIN+ll•yNl/(YROP(NFIN+l>~YROPINFINll 0076
xN=xROp(NFIN•l)+{xRop<NFIN>-xROp(NFIN+lll•yFACT 0077
LIQR(NFINl=aToT•(yN-xBl/(YN-XNI 0078
vApR!NFINl=LlQR(NFIN>•<xN-xs>l!yN-xa> 0079
CALL AvEMW<xN•YN•AVEL•AVEV•MWl 0080
LRWT(NFINl=LIQR(NFINl*AVEL 0081
VRWTINFlNl=vAPR(NFlNl•AVEV 0082
CALL eINspT!A•s•c•Neoc.NoATAopT•pl1TALF•TBp•Tl1xALF1xN> 0083
TRLINFINl=Tl 008'+.
CALL a1NopT(A•e•C•NsDC•NOATA1pT•pl1TALF•TBp•Tl1yALF•yNI 0065
TRV(NFIN)=Tt 0086
XROPINFINl=XN 0087
YROpCNFINl=yN 0088
GO TO 999 0089
302 CONTINUE 0090
yFACT=!ySOp(MfIN+ll-yN)/(ySOp!MFIN+ll•ySOp!MFINll 0091
xN=XSOp(MFIN+l)+(XSOPIMFINl-xsopCMFIN+ll)•yFACT 0092
LIQS(MFINl=BTOT•(yN-XB)/(yN-xNI . 0093
VAPS(MFINl=LIQS(MFINl•!XN-xBl/(YN-xB> 009(f
CALL AvEMW<xN•YN•AvEL•AVEV•MWI 0095
LSWTIMFINl=LIQS{MFINl*AVEL 0096
vswTCNFINl=vAPS(MFINl•AVEV 0097
CALL BlN9pT(A•e•c1Neoc.NDATAtpT•pltTALF•TBp•Tl.xALF•xN> 0098
TSL(MFINl=Tl 0099
CALL BlNDPTIA•B•C•NBDC•NDATAtpT•pltTALF•Tep•TltyALF•YN) 0100
TSV(MFIN)=Tl 0l0 l
XSOPCMFINl=XH 0102
YSOPIMFINl=yN 0103
GO TO 999 OlO(f
SU0ROUTINE FLOWS
C ERROR MESSAGES ***********************************************************
901 CONTINUE 0105
WRITE1NTP•900l) NTOT 0106
9001 FORMAT(/T2,•TOTAL NUMBER OF OpERATING LINE DATA pOINT51'tlS• 0107
l/T2•'ExcEEos DIMENSION SPECIFICATIONS.•) 0108
MALF=IUOO 0109
GO TO 999 0110
902 CONTINUE 0111
WRITE!NTP•9002l POSN1l Oli2
9002 FORMAT(/T21•tlEGATivE LIQUID FLOW oETEcTEo •tAS1• FEED pOSITION.•1 0113
1/T2•'Cf!ANGE IN FEED Q VALUE OR REFLUX RATIO 5UGGESTEo,••/T21 Ollq
2'pOINT OF occuRENcE ON OpERATING LINE:••Iql 0115
MALF=lOOO 0116
GO TO 999 0117
903 CONTINUE 0118
WRITE(NTP•9003l POSNoI 0119
9003 FORMAT(/T2t•NEGATivE VAPOUR FLOW oETEcTEo •1AS1• FEED pOSITION.•. 0120
1/T2•'CHANGE IN FEED Q vALUE OR REFLUX RATIO 5UGGESTED.••/T2t 0121
2'pOINT OF OccuRENcE ON OpERAT~NG LINE:••Jq) 0122
MALF=lOOO 0123
999 CONTINUE 012'
RETURN 0125
ENO 0126
SUBROUTINE FLOWS
SUGFIOUT I t.JE AVEtP-"l ( ~( 1•Y1 • AVEL •AVE\/, ntl l 0001
REAl r1~;~ 0002
DIMF:tlSION ~iFJ(2) 0003
x2=1.~x1 OOO't
Y.2=!.-yl 0005
A\/El==Xl<)~H/( l ).i.){2"i1t:'f(2) 0006
AVE\/"'Y 1 ::>~-rn ( 1) -}v 2¢\H'j ( 2) 0007
RETURll 0008
OIO 0009
SUBROUTINE AVEMW
SUBROUTINE CHECIALfAtALFCON1FLOW1MALF•NDATA1NN1NTP1XALF•XQ1YQ•ZFS> 0001
c ROuTINE cHEcKS THAT ALL OpERATING LINE lNTERSEcTlON POINTS LIE
C BETWEEN THE EQUILIBRIUM CURVE AND THE DIAGONAL ON THE x-y DIAGRAM.
C THIS ENSURES THAT NO PINCH POlNTS EXIST.
DIMENSION ALFA( 1>•FLOW(1>•XALF<1l•XQ(1 > •YQ( l) •ZFS( 1) 0002
DO 10 I=2•MN 0003
XA=XQ<Il oooq
cALL xyALFAIALFA1ALFcON•ALF•HALF•NoATA1xALF•xA> 0005
YA=XA*ALFl(l,+xA•<ALF-1.ll 0006
lflYA.GT•YQ(lll GO TO 10 0007
IF<FLOW(lll 1011102tl02 0008
101 CONTINUE 0009
WRITE(NTP•lOlll ZFS<l l 0010
1011 FORMAT(/T21 1 plNCH POINT AT SIDE STREAM:•,/T2•'C0MPOSITION'•f7,,l 001 l
GO TO 110 0012
102 CONTINUE 0013
'IJl~ITElNTP•l0211 zFS<Il OOlif
1021 FORMATC/T2,•pINcH pOINT AT FEED STREAM:•,/T2•'C0Mp0SITION 1 1f7.'+) 0015
GO TO 110 0016
10 CONTlNUE 0017
GO TO 999 0018
1 l 0 C 0 NT I tl UE 0019
MALF=lOOO 0020
NNI=NN+l 0021
999 CONTINUE 0022
RETURN 0023
END 002'1
SUBROUTINE CHEC
SUBROUTINE STEpO(NTC•NPTS•MPTSl 0001
c ROuTINE FDR sTEppING OFF STAGES IN MCCABE-THIELE OR PONCHON-SAvARIT
c DESIGN OF BINARY DISTILLATION TRAy-COLUMNS.
c ROUTINE C0MpUTES: (1) TOTAL NUMBER OF THEORETICAL TRAyS REQUIRED,
c <21 TRAY POSITIONS OF FEED AND SIDE STREAMS.
c 13> FLOW AND TEMP• pROFILES FOR p-5 DESIGNS.
c ••••••••••••••••••••••••••••••••••
C INSERT COMMON BLOCK 'BlNCOM• HERE,
c ·················•*•*************•
REAL LH•LHCONV1LHMW•LIQR,LIQS•LRWTtLSWT•MW 0002
DATA I,MT•Nl•NP/1•0•2•0/ 0003
NNl=NN+l 000'+
X<ll=XB 0005
Y<ll=YB 0006
XAl=XB 0007
YA1=Y8 0008
XA=XB 0009
c •oo• LOOp 10 CAUSES sTEpplNG pROcEouRE To MOVE FROM ONE OpERATlNG
c LINE To THE NExT so AS To MINIMISE THE TOTAL NUMBER Of THEORETICAL
c STAGES.
c FEED AND SlpE STREAMS ARE ALSO POSITIONED HERE.
DO 10 J=2•NN1 0010
IF<Y<Il.GT•QY(J)l GO TO 100 0011
c •oo• L00p 11 cOHpuTEs AND STORES THE cOORoINATES OF EAcH pOINT
c IN THE STEpplNG pROcEouRE AND couNTS THE NUMBER OF STAGES lMTl,
DO 11 I=NI1l00,2 0012
MT=MT+l 0013
lfll.GT.NpTccl GO TO 901 00 1 '+
X < I )· = X I I - 1 l 0015
XA=XIII 0016
CALL XYALFA<ALFAtALFcON•ALpHA•MALFtNDATA.xALF•xA> 0017
YIIl=<xA•ALpHAl/(I.+xA•<ALpHA-1.ll 0018
IFIMT,GT,l> y(Il=v<I-ll+ly<Il-y<I•lll•EFF 0019
IFIYlll .GT•QY(Jl > GO TO 100 0020
lFCylll.GT.ycl GO TO 200 0021
SUBROUTINE STEpD
C XII+ll FOR MCCABE-THIELE DESIGNS•
IF<Nop.EQ.ll x<l+Il=<Yf ll-CFCT<J-ll)/SLPE<J-ll 0022
IFINOP.EQ.l I GO TO 111 0023
C x<I+ll FOR pONCHON-SAVARIT DESIGNS,
CALL PS0PXYIY(lltXOUT•xB•XCR.xROP•XSOp,yROP•YS0P1Y6•YC1YCRl 002't
x11•1>=xouT 0025
lll CONTINUE 0026
Y(I+ll=YCil 0027
11 CONTINUE 0028
100 CONTIMuE 0029
IF<NOP.GT.1) GO TO 101 0030
c x<I+l) FOR HCCAeE-THIELE DESI~Ns.
Xf I+ll=lylll-CFCTIJl l/SLpE(J) 0031
.GO TO 102 0032
101 CONTINUE 0033
C XCI+ll FOR PONCHON-SAVARIT DESIGNS,
CALL pSOpxy1y<I>1xOuT•xB•xCR1xROPtxSOp,yROp1ySOp,yB,YC•YCRl 003't
X(I+ll=XOUT 0035
102 CONTINUE 0036
Y!I+ll=Ylll 0037
NP=NP+I 0038
c TRAy NuMsER p05lTIONS OF FEED AND SIDE STREAMS•
NTRAY!NP)=(l/21-I 0039
lF(YII>.GT.yCJ GO TO 200 OO'tO
NI=I+2 OD'fl
10 COtlTHluE ooq2
200 CONTINUE 00'+3
TFRAC=!YC-Y<l-2)1/IYll l-Y(J-211 00'+ 't
TRAYNO=IMT-<l+NCONDll+TFRAC 00'+5
NTC=I+l 00'+6
IF!NOP.NE,31 GO TO 999 OO't7
SUBROUTINE STEpD
C TEMPERATURE AND VAPOUR-LIQUID FLOWRATE PROFILES FOR P-5 DESIGNS,
DO 20 I=l •MTC OO'+s
XA=Xll) OOlf 9
IF(XA.GT.XCRl GO TO 201 ooso
C STRIPPING SECTION.
NP: MP TS 0051
MP=O 0052
CALL FFIND<xA•FL0V•FL0L•TEMp1vApS1LIQS1TSL1xSDp?NPtMP) 0053
LRWT I I l =FLOl OOSi+
VRVJT I I l =FLOV ooss
TRV(ll=TEMP 0056
GO TO 20 0057
201 CONTINUE 0058
C RECTIFylNG SECTION.
NP:NPTS 0059
MP=MPTS 0060
CALL FFlND<xA•FLOV•FLOL•TEMP•vApR•LIQR•TRL·xROp1Np1MP) 0061
LRWT < 1 l =FLOt. 0062
v~~wT (I) =FLOv 0063
TRv<l>=TEMP 0061f
20 CONTINUE 0065
LRWT(ll=BTOT 0066
lFINCOND.EQ,ll VRWT<NTc>=o.o 0067
IFINCONO.EQ.21 VRwT<NTc>=DTOT 0068
GO TO 999 0069
C ERROR MESSAGES *****•********************************•********************
901 CONTINUE 0070
WRIJEINTP•9001) MT 0071
9001 FORMATl/T21•Nur1BER OF TRAys ExcEEos:•.1s.1r21•pINCH ZONE IS suspEc 0072
ITEo.••/T2•'cuRRENT RESULTS wILL BE pRiNTEO ANO THESE SHOULD aE•· 0073
2/T7.•'USED To coNsTRucT A MCCABE-THIELE DIAGRAM·'•IT2t•IF A pINCH z 001q
JONE Is NoT OBVIOUS THE SlzE OF THE'•/T2• 1 ARRAys x ANO y IN THE COM 0075
qMON BLOCK MUST BE INCREASED TO••/T2•'ALLOW FOR A GREATER NUMBER OF 0076
5 TRAYS.'l 0077
999 CONTINUE 0078
RETURN 0079
END 0080
SUBROUTINE STEPD
SUBROUTINE pSOPXYlYl1XOUT•XB•XCR.xROP·XSOp,yROp1ySOp1yB•YC1yCRI 0001
c RouTINE sEARcHES FOR x-Y COORDINATES ON pONcHON-sAvARIT OpERATING
C LIMES FOR STEPPlMG OFF THEORETlCAL STAGES IN •STEPD••
C LINEAR. INTERPOLATION IS USED BETWEEN ACTUAL DATA POINTS.
DIMENSION XROP1l1•XSOPtll •YROP(l) •YSOPtl) 0002
IF1Yl.GT.YSDPl2ll GO TO 100 0003
YfAcT=<vl-vBl/(y5opC2l-YBI 000'+
xour=xe+txsor12>-xe>•vFAcT 0005
GO TO 999 0006
100 CONTINUE 0007
Iflyl.GT•YCRI GO TO 200 0008
DO 10 I=2•500 0009
DlFF=Yl-YSOp(ll 0010
lFlDIFF.LE.Q.01 GO TO 110 0011
10 CONTINUE 0012
110 YFACT=IYSDP(ll-Yl)/(YSOP!Il-YSOPCI-lll 0-013
xouT=xsor< I 1+cxsor< 1-11-xsop< r > l•yFACT 0 0 1 '+
GO TO 999 0015
200 CONTINUE 0016
1F(Y1.GT.YROPl21) GO TO 201 0017
YFACT=<v1-vcRl/lyROp(2)-YCRI 0018
xouT=xcR+lxROPl2>-xcRl•YFACT 0019
GO TO 999 0020
201 CONTINUE 0021
IFIYl.GT•YC) GO TO 300 0022
DO 20 1=2•500 0023
DIFF=Yl-YROp(ll 002'+
lFIDlfF.LE.0.01 GO TO 220 0025
20 CONTINUE 0026
220 YFACT=<YR0PC I l-Yl ll<YROPC I 1-YROPC I-1 I l 0027
xouT=xROplll+<xROP<I-1>-xROpCill•yFACT 0028
GO TO 999 00.29
300 CONTINUE 0030
XOUT=Yl 0031
999 CONTINUE 0032
RE. TURN 0033
END 003'+
SUBROUTINE PSOPXY
suaRouTINE FFINO<xA•FLOV•FLOL•TEMptFyAp•FLIQtFTEMPtFX•NPTStMPTS) 0001
c RouTINE CALCULATES LIQUID AND VAPOUR FLOwS RESpEcTiyELY LEAvlNG
c AND ENTERING THEORETJCAL STAGES IN poNcHON-SAVARIT DESIGNS·
c LINEAR INTERPOLATION IS USED BETWEEN AcTuAL DATA POINTS.
DIMENSION FVAP1l1•FLIQ1l)•FTEMP!l)1FX1l> 0002
NTOT :tJp TS +Mp TS 0003
MPTSl=MPT5+2 000~
IFIXA.GT·FX(2)) GO TO 100 0005
XFACT=<FXl2l-X~l/IFXl2)-FXl1 )I 0006
FLOV=FvAPIHpTSll-IFyAPIMPTSl+l>-FyAP(MPTSll l•xFACT 0007
FLOL=FLIQlHpTSil~IFLlQIHpTSl+l)•FLlQIMPTSlll*XFACT 0008
TEMp=FTEMP(MPTSll-IFTEMP(MpTSl+ll-FTEMP(MPTSlll•xFAcT 0009.
GO TO 999 0010
100 CONTINUE 0011
DO 10 l=MPTSl•NTOT 0012
NNO=l-MPTS 0013
DIFF=XA-FXINNOl 00 l'f
lFlDlFF.LE.Q.Ol GO TO 110 0015
10 CONTINUE 0016
GO TO 120 0017
110 CONTINUE 0018
XFACT=CFxlNNOl-XAl/IFx<NNOl-FX(NN0-1)) 0019
FLOv=FvAp( I )+(fVAPI I-11-FVAP( I l >•xFACT 0020
FLOL=FLIQ( t l+IFLlQ( I-1 l-FLIQI I l l•XFACT 0021
TEMP=FTEMP I l I+ ( FTEMP < I-1 l -FTEMP I Ill •XFACT 0022
GO TO 999 0023
120 CONTINUE 002'+
FLOV=FVAP I IHOT l 0025
FLOL=FLIQ(MTOTI 0026
TEMP=FTEMP C !HOT l 0027
999 CONTINUE 0028
RETURN 0029
END 0030
SUBROUTINE FFIND
SUBROUTINE 5INRESINDAT,NTC.NNl,NPTS•MPTSl 0001
c RouTillE FOR pRiflTING RESULTS OF MCCAsE-THIELE OR pONotoN-sAvARIT
c SOLUTions To BINARY cONTINuous-oisTILLATION PROBLEMS.
cC ••••••••••••••••••••••••••••••••••
INSERT COMMON BLOCK 'BlNC0M 1 HERE.
c ••••••••••••••••••••••••••••••••••
REAL LH•LHCONy,LHMW•LlQR•LIQS•LRWT1LSWT•MW 0002
CON=•COND• 0003
FORMAT(A3l oooq
1001 FORMATl/T2t•MccAeE-THIELE DESIGN OF A 5INARy DISTILLATION SySTEM•' 0005
1) 0006
1011 FORMAT(/T2,•poNcHON-sAvARIT oEslGN OF A sINARy oISTILLATIQN SySTEM 0007
1 •• l 0008
1002 FORMAT(/T2t 1 fEEo C0MPONENTs: ( ll • ,5Ab.IT19t 1 121 '•SAb) 0009
1003 FORMATl/T2t 1 NO. OF FEED STREAMs=··J~t/T2t 1 NO• OF SIDE STREAMs:•, 0010
1I q l 001 1
1ooq FORHAT(/T2.•No. OF THEORETicAL STAGES REQUIREo:•tfb,ll 0012
1005 FORMAT!/T2•'MURPHREE EFFicIENcy FACTOR usEo:'•f5.2l 0013
1006 FORMATl/T2••FEED AND SIDE STREAM 5pECIFlcATION5:••/T21 001~
l'STREAM'•2x•'TRAy No••2x•'Q VALuE•12x•'FL0wRATE'·2x•'cOMP0SITlON'• 0015
2/T2• 'NO'. Ix· 'TypE' 1T28,'KGMOLE/HR' 13x· 'MOL FRAC') 00 u,
1007 FORMAT!/T2.•oisTILLATE WITHDRAWAL RATE!'1F7.2•' KGM0LE/HR 1 •/T2. 0017
l'oISTILLATE CDMPOSITlON:··6x1F7.q) 0018
1008 FORMAT!/T21•00TTOMS witHoRAwAL RATE!'•lx•F7.2•• KGMOLE/HR•11T2. 0019
t•yoTTOMS C0MP0SITI0N:'17x•F7·q) 0020
1009 FORMAT(T2•'opEN STEAM QpERATioN. 1 •/T2·•sATuRATEo STEAH REQUIREMENT 0021
lS!'•F7.2,' KGMOLE/HR'l 0022
1110 FORMAT(T2•121lx•'SIDE'13x•I31Sx·F5,21qx,F7,21Sx•f6.q) 0023
1120 FORMATCT2•I2·1x•'FEED'13X1J3.Sx•FS.214x•F7.21Sx1f6.q) 002'+
1201 FORMATC/T21 1 TOTAL CONDENSER OpERATION.•l 0025
1202 FORMATl/T21•pARTlAL CONDENSER OPERATION,•! 0026
1203 FORMAT!T2•'CONOENSER PRESSURE!'•f7.21lX•'KPA') 0027
120~ FORMAT<T2•'FEED TEMpERATURE!'•f7.21lx•'DEG c••/T2•'FEED ENTHALPY'• 0028
1Fll.2•1X1'KJ/KGMOLE'l 0029
1205 FORMATIT2•'CONDENSER DUTY:'•Fll.2•1X•'KW•> 0030
1206 FORHAT1T2••REBOILER.OUTY:•.aX•F10.2•1x.•KW•1 0031
1207 FORtlAT(/T2,•REFLUX RATJO:•,Fll.q> 0032
1208 FORMATCT2•'HIN REFLUX RATIO:'•f7.q) 0033
SUBROUTINE BINRES
1310 FORHATl/T21•vApOUll AND LIQUID RATES THROUGH C0LUMN:••/T35t 003'+
I 'VAPOUR' 1lX• 'LIQUID' e3X•' <KGMOLE/HRl' I 0035
1311 FORMAT<T2•'sEcTION'•I2t' REBOILER - '•Aq·• ' ' · I l • ' l ' .3x•F6.2·3x, 0036
1F6.2) 0037
1312 FORHAT<T2•'sEcTION'•I212x•Aq,• C'•Ilt•) - '•Aq,• l'•Il•')',3x•r6.2 0038
l13X•F6.2J 0039
1313 FORMATCT2•'sEcTION'•I212x•Aq,• ('•111•) - coNoENSER'•2x•F6o2•3x· 0040
lf6.2l 00'+1
1320 FORMAT(/T2t 1 C0Mp0SITION•TEMpERATuRE ANo FLOwRATE pROFILEs:•) 00'+2
1321 FORMATtT2•'TRAy'•lx•'COMp05ITioN••Sx·•TEHpERATuRE'•6x•'FLOwRATE5• ooq3
1.1r9, •<MOLE FR Ac 1••7x. • <oEG c > • •7x. • «1<GMOLEIHR 1 • .1r9, ootti+
2'LIQ'•5X•'VAP'•6X•'BUBBLE PT'•6X•'Lla•.Sx••vAp•) ooqs
1322 FORMATIT2•I3•2X•F6,q,2X•F6,q,6X•f7,2,4X•f7,2t1X•f7,2l 0046
1323 FORMAT<T2•'FEEo TRAy pOSITioN:•l 00'+7
132q FORMATIT2•Aq.1x1f6,q,2x•F6,q,6X1f7,2t4X•f7,2tlX•f7.2> 00'+8
lqOQ FORMATl/T2.•oo you wANT OPERATING DIAGRAM DATA TABLES?•) ooq9
1401 FORMAT<TS•F6,q,2X1F6,q) ooso
1q10 FoRMAT(/T2.'EQUILI8RIUM DATA!•,1re,•x•,1x.•Y'l 0051
lqll FORMAT11T21•ENTHALPY DIAGRAM DEL PTS;•1/T4,•DEL D=••El2•6• 0052
l lx • •KJ/KGMOlE• ,/Tit, •DEL. B=• •El2,6• 1X1 •KJ/KGMOLEt l 0053
l't20 FORMATl/T21•INTERsEcTIQN COORoINATEs OF OpERATING LlNE5:•1/T8• 005'+
l'X'•7X.'Y'> ooss
iq21 FORMAT!/T21•poINT5 ON OPERATING LINEs:••/T8•'X'•7X•'Y') 0056
1q30 FORMAT(/T2·•cooRolNATEs OF MCCABE-THIELE sTAGEs:••/T8·'x'•7x•'y'I 0057
C RESULT TABLE HEADING•COMpONENT NAMES AND GENERAL DATA,
C MCCAAE-THIELE DESIGNS,
IF1NOP.EQ,l1 ~RITE1NTP1lOOl1 0058
C PONCHOM-SAVARIT DESIGNS,
lF(NOP.EQ,3) ~JRITE1NTP1lOll) 0059
WI< I TE < NT P • l 0 0 2 l ( CT I TL E 5 C I , ,J l ' J = 1 • 5 l • I =1 • 2 > 0060
WklTEINTp•l003l NF1NS 0061
WHITEIMTp•lOOql TRAyNO 0062
WRITEINTP•lQOS) EFF 0063
vVRITEOJTP• 1006) OQ6q
SUBROUTINE BlNRES
c FEED AND SioE STREAM 5pEclFicATIONS•AND pOsITIONS.
DO 10 I=2•NN 0065
I 1 I- l
= 0066
IF<FLOWII)l 110•101120 0067
110 FLO=ABS<FL08<1)) 0068
WRITEINTp•lllO) lltNTRAYII-ll•QFS(l)1FLDtZFS(I) 0069
GO TO 10 0070
120 WRITE(NTp•l120) ll1NTRAYII-ll•QFS<ll1FLOW(l)•ZFSlt> 0071
10 CONTINUE 0072
C FEED TEMpERATURE AND ENTHALPY FOR p-5 DESIGNS •
. lFtNOP.EQ,31 WRITE<NTP1120q) TF1QF(l) 0073
C CONDENSER SPECIFICATIONS.
IFtNCOND,EQ,l) WRITE1NTP1l2011 007q
IFCNCOND,EQ.21 WRITE<NTP11202l 0075
PTl=PT/7,50Q616B3 0076
WRITEINTp•1203) pTl 0077
lf<NOP.EQ,3l WRITEINTp11205) QC 0078
C REFLUX CONDITIONS.
WRITEcNTP•l207) R 0079
IFINOP.EQ.3) WRITE<NTP•l208) RM 0080
c DISTILLATE pROoucT DATA.
WRITE(NTP•l007) DTOT1XD 0081
c BOTTOMS pRODUCT DATA.AND REBDILER SPEcIFICATlONs.
WRITE(NTP•l008) BTOT1XB 0082
IFCNOS.EQ.11 WRITECNTP11009) AV(l) 0083
lFINOP.EQ.3> WRlTEINTP11206l QB 008't
IFlNOP.EQ,31 GO TO 131 0085
c FLOWRATEs IN EAcH sEcTION OF COLUMN FOR M-t DESIGNS.
WHITE<NTP•l310) 0086
NI=l 0087
IFIFLOW(2l.LT.o.o> STR='SIOE' 0088
1F<FLOW<2>.GT.O.Ol STR='FEED' 0089
WRITElNTp•l3lll Nl1STR,NI•AV<ll•AL(ll 0090
NNI=NM~l 0091
IF<NNI.LT.21 GO TO 130 0092
SUBROUTINE BINRES
DO 11 I=2ttlNI 0093
MI=NI+l 009'+
NIM=Nl-1 0095
STRl=STR 0096
IF<FLOu,·< J+l) •LT.O.Dl STR='SIOE' 0097
IF<FLOw< 1+1 > .c;r.o.oi si"R='FEED' 0098
riRITElNTptl312l ltSTRltN!MtSTR,NltAVIIltAL(J) 0099
11 CONT I tluE 0100
130 CONTINUE 0 l0l
I=MI+l 0102
WRITEINTP• 13131 I •STR•Nl tAVINNl •ALINl'JI 0103
GO TO 132 0 l O't
131 CONTINUE OlOS
c COMpOSITIONtTEHpERATuRE ANO FLOWRATE PROFILES FOR p-S oESIGNS,
WRITE(NTP•1320) 0106
WRITElNTPt 1321 l 0107
NTRA=INTRAYI l l+l )•2 0108
MI=•l 0109
DO 30 I=ltNTRA12 0110
MI=MI+l 0 111
WRITEINTptlJ22) Ml•xlllty(J) tTRv<Il•LRWTIIl •VRWT(I) 0112
30 CONTINUE 0 l
13
NTRA=NTRA+l 0 1
l 't
WRITEltHpt 1323) 0 l
15
DO 31 I=NTRAtNTc,2 0 l
1b
MI=MI+l 0 l 17
IFII.EQ.NTCI GO TO 133 0l l8
WRITEINTp•l3221 MltX(l)ty(II tTRv(Il•LRwTCil•VRWTIIl 0119
GO TO 31 0120
133 WHITEINTP•132ql CON1XIIl1Ylll•TRVIIl•LRWTIIltVRWTIIJ 0121
31 CONTINUE 0122
SUBROUTINE BINRES
132 CQNTitJUE 0123
C ENTHALpy_CONCENTRATION DIAGRAM tOEL• POINTS.
IFcNOP.EQ,3) WRITE1NTP1l'ilt1 DELD•DELB 01 2'+
WRITECIHP• 1'1001 0125
READ l NCR• 1 l . ANAMf. 0126
IFIANAHE.NE,'YES'l GO TO 999 0127
C EQUILIBRIUM CURVE DATA.
WRITE(NTP•llfl01 0128
WRITEINTP•l'+Oll IXEQUILIIl1YEQUILIIl1I=l1NDAT15) 0129
IFINOP.NE,3) GO TO 1q1 0130
c OpERATJNG LINE DATA FOR pONCHON-SAVARIT oEslGNs.
WRITE(NTP•l'+2l) \ 0 l 31
WRITE<NTP•l'+Oll IXSOPIIl1YSOP(ll1I=l1MPTS•Sl 0132
!JJRITE(NTP•l323l 0133
WRITEINTp•llfOll IXROPIIl1YROPIIl1I=l1NpT515) 013'+
1 1+1 CONTINUE 0135
C OpERATING LINE POINTS OF INTERSECTION.
!.''1RITE!NTP1 l't20) 0136
WRITE(NTP•lqOll (QX(ll1QY(ll1l=l1NNll 0137
c COORDINATES FOR cciNsTRucTING STAGES ON x-v oIAGRAM•
WRlTEcNTP•l'+30) 0138
WRITEINTP•l'+Oll (Xlll•Y<ll1l=l1NTC) 0139
999 CONTINUE 0 l 1f 0
RETURl>I 0 l '+1
END 01'12
SUBROUTINE BINRES
c COMMON BLOCK •pAccOM• FOR pACKED-COLuMN DESIGN pROGRAM,
PARAMETER NpEQ=SS 0001
PARAMETER NpPS=lSO 0002
PARAMETER NpTc=S5 0003
PARAMETER NpEN=25 000'+
PARAMETER NpAK=225 0005
DIMENSION AsuRF(NpAKl•cFAK(NpAKl•FuNcR<NpAK>•FuNcSINpAK) 0006
DIMENSION KXINpAKl•KYINPAKl•L<NpAK>•SLOPK(NpAK) 0007
D I MEN 5 1 0 N V< NP AK l • Vy R I ~J P AK l ' Vy S ( NP AK ) • XI ( Np AK l • YI I NP AK > 0008
DIMENSION AL.FAINpEQl ol!LIQ(NpENl •HvAp<NpEN> oLIQRINppS> tLIQS(NppS> 0009
DIMENSION LRWT<NppSl•LSWTINppS)•TAlF<NpEQ> 0010
DIMENSION TRLINppS>·TRv<NppS)•TSL(NppS)•TSv<NppS> 001 l
DIMENSION VAPR<NppSl1VAPS<Npp51 •VRWT(Npp51,vswT<Npp5) 0012
DlMENSION x<tJpTC) •XALF<NpEQ> •XEQUIL(NpEQ) •xHINpEN> 0013
DIMENSION XROp<NppS)oXSOplNpp5)•yROPINpp5l,ySOPINpp5) 001'+
DIMENSION y(NpTcl•YALFINPEQl•YEQUIL(NpEQlryH<NpEN> OOlS
COMMON A<2>•ACpl2),AL<ll)•ALFA1ALFCON•AVllll 0016
COMMON B(2l •BCp(2) ·sTOT1C(2) •CCp(2) •CFCT( 12) t(p(ONv•CpMW(2) 0017
COMMON DcP<21•DELB1DELD1DLoDTOT•DV 0018
COMMON EFFtFLOW(lQl,FTOTtFTOTS(5) 0019
COMMON HB'HD1HEVABS1HF•HLlQ•HScONVtHSMWl2ltH50LN(30l 0020
COMMON HVAPtLH<2> 0021
COMMON LHC0NV•LHMWl21•LlQR1LIQS•LRWTtLSWT 0022
COMMON MALF•HWl2l•Neoc•NcONO•NDATAtNENTH1NF•NHS•NINT 0023
COMMON NN•Nop•NOS1Nppsc•NpTcc•NS•NTRAyf12> 002lt
COMMON NcR•NGloNTP 0025
COMMON PT•Q1QB1QC•QF(Sl •QSISl •QFS< 10) •QX( 12) •QY( 12) •RtRM 0026
COMMOM 51...PE( 12) •STOTSISI oTALF•TBASE•Tsp<21 oTc<2> 0027
COMMON TcONy1Tf•TG1TITLEs<2•SltTRAyNO•TRL•TRy 0028
COMMON TSL•TSv·vApR•vApS1VRWTtvSwT 0029
COMMON X•XALF•xB•XC•xCR•xD·XEQUlL•XH•xHS(30) 0030
COMMON xROP·xSop,yROp•ySOp 0031
COMMON YtYALF•YB•YC•YCR•YDtYEQUILtYH 0032
COMMON z,zFISl ,zFl CSI •Z5!5l •ZS1 IS> •ZF'S( 101 0033
COMMON •pAcCOM•
c MAINLINE pROGRAM FOR DESIGN OF pAcKED COLUMNS FOR USE IN aINARy
c CONTINuous-oisTILLATION OPERATIONS.
C THE PACKAGE INCLUDES DATA FOR CERAMIC RASCHIG RINGS ANO BERL SADDLES
C (SOURCE: SHULMAN FROM TREYBAL••MASS TRANSFER OpERATIONS••2ND ED1
C SpECIFicATIONS FOR pACKINGS OTHER THAN THESE MUST BE SUPPLIED BY
C THE USER.
c ······•***************************
C INSERT COMMON BLOCK 'PACCDM' HERE,
c ••••••••••••••••••••••••••••••••••
REAL KX'KY•L•LH•LHCONv.LHMw•LIQR•LIQS•LRwT.LSWTtMW 0001
1 FORMAT( l 0002
2 FORMATIA3l 0003
3 FORMAT<SA6) oooq
DATA NCRsNGl1NTp/8,11•5/ 0005
DATA NCODE•NINT•NOp/3•50,2/ 0006
DATA MALF•MCAN/ltl/ 0007
DATA ALBKGH•ASFSM•AMLCONtAMVCON/q.aa2q.o.Joqs.2,q2,o.0002q2; 0008
DATA OLCON•DVCONtRHOCON•SIGcON/3.87SO•.j.e75oq,62,q3,1.01 0009
GC=~.18•110•**81 0010
NpPSC=NppS-2 0011
NpTcc=NpTC 0012
C START OF PROGRAM ************************************•********************
WRITEINTptSOOOl 0013
5000 F0RMATl/T2,•ANs~ER ALL QUESTIONS yES OR NO.•t/T2.'ALL INpuT IN FRE 001q
lE FORMAT.•,;/T2•'oo you KNOW HOW To USE THIS PROGRAM?•> 0015
READINCR,2>.ANAME 0016
IFIANAME.EQ,'YES'> GO TO 500 0017
CALL TEAcH<NcooE> 0018
GO TO 999 0019
500 CONTINUE 0020
WRITECNTP•SOOll 0021
5001 FORMAT(/T2·•oo YOU wANT TO ADD DATA ELEMENTS?') 0022
READINcR,21 CNAME 0023
lflCNAHE,EQ.'NO'> GO TO 501 OQ2q
MAINt..,.INE PACKED
MCAN=2 0025
WRITECrJTP•S002l 0026
5lJ02 FORMAT11r2.•Aoo YOUR FIRST DATA ELEMENT.•! 0027
501 CONTINuE 0028
c 'READBD' READS PATA ELEMENT.
CALL READBDIMCAIJ,NDATl 0029
IFCMALF.GT·999l GO TO 999 0030
c START OF COMPUTATION ******************•**********************************
WRITEINTP•lOOll 0031
1001 FORMATl/T2,•oATA AccEpTEo. START OF OpERATlNG DIAGRAM cALcS.' l ~032
c •poNsAv' CONSTRUCTS THE pONCHON-SAVARIT OPERATING DIAGRAM.
CALL PONSAVINPTStMPTS•NFINtMFINl 0033
IFIMALF,GT.999) GO TO 999 003lf
N'fO T=Np TS+Mp TS 0035
MpTl=MpTS+NFIN 0036
c
C START OF PACKING SPECS *************************************************~*
c
WRlTEtNTP•2001) . 0037
2001 FORMATl/T2t•OpERAT1NG DIAGRAM C0MpLETE,•,/T2•'START OF pACKJNG CAL 0038
1CULATIONS,'l 0039
WRITE<NTP•5030) ooqo
5030 FORMAT(/T2.•oo YOU wANT TO ADO A SECOND DATA ELEMENT?•) 00•1
READ(NCR•2t CNAME 00•2
MCAN=2 ooq3
lF(CNAME,NE.'yES'l MCAN=l ooqq
lflMCAN.NE.1> wRITE(NTp•5031) ooqs
5031 FORHATl/T2.•Aoo yOuR .SECOND DA1A ELEMENT.'> oOq6
CALL PACTYPIMCAN1NTypE,NPACK•NCRtNTpJ ooq7
lFIMCAN,GT.99) GO TO 999 ooqa
C 'PAKING' RETURNS DESIGN DATA CORRESPONDING TO SpEClflED TypE
C OF PACKING• !EITHER RASCHIG RINGS OR BERL SADDLES>
CALL PAKlNG(tlTyPE•NPACK•CF1EtAMFl•AMF2tANF1A•ANFlB•ANF2AtANF28tPFl 00lf9
l•PF2,DS•PHTW•PHSW•S~PDW•BETAl 0050
C END OF PACKING SPECS *****•***********************************************
MAINl,IME PACKED
C START OF PHYSICAL PROP SPECS *********************************************
NRHOM=O 0051
IF<MCAN.EQ.ll WRITE<NTP•5032l 0052
5032 FORMAT<IT2,•coHpONENT-oENSITy DATA MUST sE AyAILABLE AS oEscRiaEo 0053
lIN THE• 1 /T21•01sTILLATION PACKAGE MANuAL•SEcTION 3.4•,/T2 1 •ts SDLU 0054
2TioN-oENslTy oATA ALSO AyAILABLE?•) 0055
READ<NcR12l RONAME 0056
lf(RONAME.Eq.'NO'I GO TO 531 0057
NRHOM=l 0058
531 CONTINUE 0059
IF<MCAN.EQ•l> VRITE<NTp•S033) 0060
5033 FORHAT(/T2.•cOMpOuNo CLASSES ARE:•.1r2.•111 ALCOHOLS AND wATER'•/T 0061
12•'<2> HyDROcAReONS ISAT.•uNsAT. AND AROM.> ANo ETHERs'•IT2t•(J) 0 0062
2THER 0RGANics•./T2t•(4) INORGANIC cOMpOuNos••/T21'ENTER CLASS NO. 0063
JINTO WHICH THE LIGHT ANO HEAvy C0Mp0NENTS FALL'•IT2•'EG• FOR WATER Q06q
q ~ND NITRIC Acin ENTER ,,qt) 0065
READINCR,11 NLCAT•NHCAT 0066
c
C START OF PACKING HEIGHT CALCULATIONS •••••••*********•********************
c To •302 cONTINuE• SEARCHES FOR pOINT OF MAxIMUM LIQUID FLOW
C IN COLUMN• RELEVANT FLOW AND TEMpERATuRE DATA AT THIS pOINT
C ARE NOTED,
c suaSEQuENT CALCULATIONS ARE BASED ON THESE oATA,
FLOR=O.O 0067
DO j1 N=NTOT•MPTl•-1 0068
FLOl=LRWTINl 0069
lF(FLOR.GT•FLOll GO TO 31 0070
NFLOR=N 0071
FLOR=FL01 0072
31 CONTlNuE 0073
MAINL,.INE PACKE'.D
IFIMFIN.GT,999) GO TO 301 007 "+
FLOS::U,O 0075
DO 32 N=MPTS•MFIN•-1 0076
FL02=LSWTIM> 0077
IFIFLOS,GT•FL02) GO TO 32 0078
NFLOS=M 0079
FLOS=FL02 0080
32 CONTINUE 0081
lFIFLOR.GT•FLOS) GO TO 301 0082
FLOL=LSr,iTINFL0Sl 0083
FLOV=VSWT(NfLOSl 008"1
FVAP=V APS I flFLOS l 0085
/ TFL0L=TSL(NFL0Sl 0086
TFLOv=TSvlNFl,..05) 0087
XLIQ=XSOpCNFLOS) Q088
YVAP=YS0plMFL0Sl 0089
NpOINT=NFLOS 0090
GO TO 302 0091
30,l CONT I NUE 0092
FLOL=LRWT(NFLOR> 0093
FLOV=VRWTIMFLORl 009q
FVAP=VAPR(NfLORl 0095
TFL0L=TRLINfL0Rl 0096
TFLOV=TRVINFLORl 0097
XLIQ=XROPINFLOR-MPTS> 0098
YVAP=YROp(NFLOR-MPTS) 0099
NpoINT=NFLOR 0100
302 CONTINUE 0101
C DENSITY OF LIQUID PHASE AT TEMpERATURE 1 TF1,..0L 1 ,
NPHYS=l 0102
CALL RHOLIQ(NpHYS•tlRHOM•NLcATtNHcATtTFl,..0L•xLIQ•RH0Ll•RH0L2tRH01,..) 0103
RHOL=RHOL*RHOCON 01oq
RHOV=FLOV*q92,/(fVAp•359,•1qs9.~+!TFLOV*l.8+32,))) 0105
RHOFAC=IRHOv/RHOLl••o.s 0106
MAINLINE PACKED
C ABCIS IS THE X-AXIS COORDINATE ON THE u.s. STONEWARE FLOODING
C AND LOADING CURVE DIAGRAM.
ABCIS=FLOL•RHOFAC/FLOV 0107
WRITE<NTP•4qQll 0108
qqo1 FORHATC/T2,•oo YOU wANT TO spEcIFy THE COLUMN DIAMETER?') 0109
READlNCRt21 DNAME 011 0
IftDNAME.NE.'YES'> GO TO qq1 0 111
WRITElNTp•q4lll 0 112
qq11 FORMAT<T2•'ENTER COLUMN DIAMETER IN METRES.' I 0113
READ(NCRtll DIAM 011 q
IF<DIAM.GT•2> GO TO 902 0 11 s
qqq co~TINuE 01Ib
DMl=DlAM 0117
VPDL=-1, 0 l 18
AREA=0.785q•(DIAM**2•l 0119
VTO=FLOV/AREA 0120
ALTD=FLOLIAREA 0 121
VLOA0=1.oS•vTo 0122
GO To qq2 0123
441 CONTINUE 012q
WRITEtNTP•5D401 0125
5040 FORMAT(/T2,•SpECIFy vApOuR pREssuRE OROp AT LOADING FROM FOLLDwING 0126
i:•,1r2.•t11 0.041.121 0,002,<31 o.2oq,<q> o,qoe,csi 0.016,<6> 1,22 0127
24 (KpA/Ml't/T2,'NOTE: o.408 (CODE q) REpREsENTS APPRDx· 60~ OF FLO 0128
30DING VALUE.'> 0129
WRITE(NTP•So4ll 0130
5041 FORMAT1T2••ENTER AppROpRIATE CODE NO••) 0131
READ!N(Rtl) NFLOOD 0132
NPHYS=t 0133
c 'GO TO• LOOp q10 SEARCHES FOR AccEpTAaLE vApOuR MASS-FLOwRATE
C AND COLUMN DIAMETER.
q10 CONTINUE 013tt
lFlNFLOOO.EQol.OR.NFL00D•EQ.2l VPPL~NFLDOD•O•Oql 0135
IF(NFL00D•EQ•3•QR.NfL00DoEQ.q) VPDL=(NfL00D-2l•0.204 0136
lftNFLOOD.EQ•S.OR.NFL00D•EQ.6l VPDL=<NFLOOo-3>•o.qos 0137
MAINLINE PACKED
c •FDATA. ,FITS AN N•TH ORDER. pOLyNOMIAL TO THE LOADING cuRvE
C CORRESpONDING TO THE SELECTED PRESSURE DROP SpECiflCATIONS,
C Y-AXIS COORDINATE tORD) CORR~SPONoING TO X-AXIS COORDINATE
C 1ABCIS1 IS RETURNED.
CALL FoATA(NfLOOD•ABClS•OROi 0138
WRITEINTP•~OOll ABCIS•ORD 0139
qoo1 FORMAT!/T21•0pERATING pOINT ON SELECTED LOADING cuRvE:••/T2• 01'+0
l'A~ScissA='·F9.31/T21'0RDINATE='•f9,3) 0 l 'f 1
1
+«+2 CONTINUE . 01'+2
C LIQUID VISCOSITY CALCULATION.
CALL VlSCL1NPHyS,NLCAT1NHCAT1TFLOL•XLIQ•AMUl1AMU2•AMUML> 01'+3
C DENSITY OF WATER AT TEMPERATURE •TFLOL•,
CALL RHOH20(NPHYS•TFL0L•RHOWl 01'+'+
RHOLFJ:::::RHOW*RHOCON Ol'fS
IF(VPDL.GT.Q.Ol GO TO qq3 0 l't6
VDASH=VLOAD/ALBKGH Ol'f7
0RO=<<voASH••2.>•cF•IAMUML••0.2)•(RHOW/RH0L))/(GC*RH0L•RHOv> 01'+8
NPHYS=2 0 l '+9
WRITEINTP•qQQJ) ABCIS•ORD 0150
qoo3 FORMATC/T2o•OpERATING pOINT C00RDINATEs:••/T2••AaScISsA='•F9o3t 0151
l/T2•'0RDINATE=••f9,Jt/T2.•Is THIS pOINT wifHIN LOADING REGION?•) 0152
REAO<McR•2> ,PMAME 0153
IF<PNAME.EQ.'YES') GO TO i+oo OlSq
WRITE!NTP•'i'f02) 0155
'itf02 FORMATCT2•'ENTER ANOTHER DIAMETER.' I 0156
READ!NcR.l> DIAM 0157
IF<DIAM 0 GT•2> GO TO 902 0158
CiO TO qqq 0159
'H3 CONT I NUE 0160
C CALCULATION OF VAPOUR MASS-FLOWRATE AT LOADING,
VDASH=c cORD•GC•RHOV•RHOL)/(CF•(AMUML••0.2)*(RHOW/RHOL11>**0,5 0l61
VLOAD=VDASH•ALBKGH 0162
MAINL,lNE PACKEO
DDlAM=0.01 0163
DIAM=2.0 016't
C SEARCH FOR DIAMETER THAT WILL RESULT IN A yAPOUR FLDWRATE
C NOT GREATER THAN THE CALCULATED LOADING VALUE.
DO 'tO K=l•2UO 0165
DI AM=O l AM-DD t Ml 0166
CSAREA=0.7RSq•(DlAM**2.I 0167
vTEST=FLOV/cSAREA 0168
VDIFF=VLOAD•VTEST 0169
lflK.Eg,l,AND.vDIFF.LE.0,000ll GO TO 902 0170
IF<voIFFoLE.0.00011 GO TO qoo 0 171
o~n=otAM 0172
AREA=cSAREA 0173
vTo=vTEST 017'+
ALTO=FLOLIAREA 0175
'1-0 CONTINUE 0176
Ll'OO CONTINUE 0177
c pRJNTOuT OF RECOMMENDED TOwER DIAMETER.AND RESULTING FL0WRATES.
WRITE(NTP•4002) VLOAD•DMl•VTOtALTO 0178
4002 FORMAT(/T2.•FOR GlvEN yApOuR pREssuR-oROp:•,/T2• 1 5UpERFlCIAL GAS v 0179
1ELOC1Ty='•FB.2.2x•'KG/HR.SQH'•/T2•'RECOMMENDED TOWER oIAM.='·F9.2• 0180
22x.•M•,/y2. 1 RESULTANT 5UP. GAS VEL.='•f9.2,2x.•KGIHR·sQM'.IT2•'RES 018 l
3ULTANT SUP• LIQ VEL,:••F9·2•2X••KG/HR.SQM••1T21•ARE THESE FIGURES 018 2
'tSATlSFACTORY?'l 0183
READINCRt2l CHNAME 018q
lflCHNAME.EQ•'YES'l GO TO 401 0185
c IF ABOVE NOT AccEPTAsLE•RE~uEsT NEw P·D· AND REpEAT CALCS.
WR I TE ( NTP • 5Q 1t2 l 0186
50'+2 FORHAT!/T21•spEcIFy vApOuR pREssuRE DROp AT LOApING FROM FOLLOWING 0187
l:•,1r2,•t1> ·o,o'!-1,12> o,os2.131 o.2oi+.<q> o.'+oa.cs1 o.s16,(6> 1,22 0188
2'+ IKPA/MI'> 0189 .
READINCR1ll NFLOOD 0190
NPHYS=2 0191
GO TO 'HO 0192
'tOI CONTINUE 0193
MAINLINE PACKED
c
C COLUMN DIAMETER AND MASS FLOWS;UNIT ANEA ARE NOW ESTABLISHED•
c NASS TRANSFER cOEFFicIENTS ARE Now CALCULATED.
NPHYS=l 019q
c LOOp q1 cALcuLATEs THE MASS TRANSFER cO£FFiclENTS IN THE STRipplNG
C SECTION OF THE COLUMN•uSING SHULMAN'S pROCEDURE.
c EQuATioNs AND LIMITATIONS usEo HERE wERE FIRST pROpOSED BY
c SHULMAN. A DETAILED OlSCuSSION CAN BE FOuNo IN TREysAL·R·E··
C •MASS TRANSFER OpERATlONS•12ND ED.•CHApTER 6•0R IN THE
C DISTIL~ATION PACKAGE MANUAL•SECTIOM 3.
lf(MfIN,GT.999) MFIN=MPTS 0195
DO ql M=MPTS,MFIN•-1 0196
VTl=vswT<M)/(AREA•ALBKGH> 0197
ALTl=LSWT<Ml/(AREA•ALBKGH) 0198
TEMPV=Tsv<Ml 0199
TEMPL=TSLlM) 0200
XLIQ=XSOP<Ml 0201
NpH=2 0202
CALL RHOLIQ(Np•l•HRHOM•NLcAT1NHcAT1TEMpL•xLlQ•RHOLl1RHOL21RHOLJ 0203
RHOL=RHDL*RHOcON ozoq
RHOV=VSWT<Hl•q92.l<VAPS(M)•359,•(q59.q.+(TEMPV*l.8+32.))l 0205
CALL v1scL<NpH.NLCAT1NHCAT.TEMpL1xLIQ•AMUl1AMU2•AMUMLl 0206
IFCALTl.GT.1soo.1 GO TO qll 0207
AM=AMFl 0208
ANFUNC=ANFlA•l I,/( lO•**ql )•ALTl+ANFlB 0209
P=PFl 0210
GO TO q12 021 1
q11 CONTil'lUE 0212
AM=AMF2 0213
ANFUNC=ANF 2A * ( l. I ( 10 • **q) I •ALT l +Alff 28 021 't
P=PF2 0215
"112 CONTINUE 0216
IF!ABS<RHOV~0.0751.LT.0,0021 GO TO ~13 0217
0
VTl=VTl*·< l0 075/RHOVl*•0,5) 0218
413 CONTINUE 0219
AAW=Ath <VT l •·•ANF.UNC I* l ALT l ••P) 0220
i
MAINLINE PACKED
XST=XSOP!Ml 0221
C SURFACE TENSION CALCULATION,
CALL suRTEN1NPHYS•NLCAT•NHcAT·TEMPL•XST•SIGMA) 02.22
SIGMA=SIGMA•SIGCON 0223
IFINTypE,EQ.21 GO TO qlq 022'+
PFACT1=6,85•<1.1110,**5l l*(AMUML**0.021•<SIGMA**0.99l 0225
PFACT2=<os••l.21l•<RH0L**0.37) 0226
GO TO q15 0227
<tlq CONTINUE 0228
PFACTl=l.6q1•<1.1110,••ql l•<AMUML**O.Qq)•lSIGMA••0,55) 0229
PFACT2=CDS*•l.56)•(RH0L**0.37) 0230
li15 coNTINuE 0231
PHIS=PFACT1/PFACT2 0232
PHISw=pHSWl<DS••Swpow> 0233
PH I TW=pH TW* ( 1 • IC 10. * * 5 l l * < ALT 1 **BET A I IC OS•·• 2 • l 023'+
IFCNTypE.EQ.2) GO TO q17 0235
AFACT2=1RHOL**0,8ql•C0.1183•<ALT1•*0•'+3)-l,) 0236
AfAcT3=1SIGMAl73.l••(0.925-o.262•AL0Gl0(ALTlll 0237
IF<AMUML•GT,12.l GO TO ql6 0238
AFACTl=Q,897•lALTl**0,57l•IAHUML**0;13l 0239
GO TO q19 02qo
lf 16 COl'JT HIUE 02q1
AFACTl=0.57S•<ALTl*•0,57l•lAMUML**0.3ll ozq2
GO TO '+19 02'+3
'+17 CONTINUE ozqq
AFACT2=<RHOL**0.8q)•l0.212•(ALTI••O,'+l3l~l.I 02qs
AFACT3=(SlG~A/73,l••(l.033-0.262*ALOG10lALTll I 02'+6
IF<AMUML.GT.20.) GO TO '+18 02'+7
AFACTl=l.291•(ALTl*•0.57)•1AMUML**0,13l 02'+8
GO TO '+19 ozq9
q18 CONTINUE 0250
AFACTl=0~752*lALTl**0,57l•IAMUML*•D.3ll 0251
q}9 CONTINUE 0252
HFUNC=AFACTl*AFACT3/AFACT2 0253
PHIOW=PHITW-PHISW 025q
PH I O=PH I O~>'*HFUNC 0255
PHtT=PHIO+PHIS 0256
AA=AAw•PHIO/pHIOw 0257
EO=E-PHIT 0258
MAINLINE PACKED
C VApOUR DIFFUSIVITY CALCULATION,
CALL D1FVAP1MPHYS,Pr,rEMPV,D1FUSV) 0259
DIFUSV=DIFUSV•DVCON 0260
YMU=YSOP<Ml 0261
c VAPOUR vIScoSITy CALCULATION.
CALL VISCV(NPHYS1TEMPV•YMU1AMUMV) 0262
AMUMV=AMUMV•AMVCON 0263
ScHv=AMUMV/(RHOV•DIFuSvl 026'1-
VMOLE=VAPS<Ml/AREA 0265
FAl=< (AMUMV•< 1.-EOl/(.DS*VTl) l••0,36> 0266
FA2=1VM0l..E•1.195/<SCHV•*l2.J3. l > > 0267
FV=FA1•FA2 0268
c VAPOUR MASS TRANSFER coEFflCJENT.
KY(Ml=FV 0269
XDIF=XSOP<Ml 0270
C LIQUID DIFFUSiyITy CALCULATION,
CALL DlFLIQ(NPHYS•NLcAT•NHcAT1TEMPL•xDIF1DIFUSL) 0271
DIFUSL=DIFUSL*DLCOM . 0272
XRHO=XSOPIM> 0273
CALL HH0LlQ(NpH•NRH0M•NLcAT•NHcAT•TEMpL•xRHO•RH0Ll•RHOL2•RH0Ll 027q
RHOL=RHOL*RHOCOM 0275
AHUML=AMUML•AMLCON 0276
ScHL=AMUML/IRHOL•OlFuSLl 0277
FAl=IDS•ALTl/AMUMLl••O.qS 0278
FA2=1DIFU5L/DSl•25.t•<SCHL••O.Sl 0279
NR=O 0280
CALL RHOLlQ(NpHtNR1NLCAT,NHcAT.TEMPL•xRHO•RH0Ll•RHDL21RHOL) 0281
CRH0=RH0L 2•RH0C0tl/MW ( 2 l 0282
FL=FAl•FA2*CRHO 0283
C LIQUID MASS TRANSFER COEFFICIENT.
KX1M>=FL•AL8KGti 028'!-
LlMl=LlQSIMl/AREA 0285
V<Ml=VMOLE 0286
ASURFIMl=AA/ASFSM 0287
NPHYS=2 0288
~l CONTINUE 0289
IFIMFIH.EQ•MPTS) HFIN=lOOO 0290
MAINLINE PACKED
c
C LOOP q2 CALCULATES THE MASS TRANSFER COEFFICIENTS IN THE RECTIFYING
C SECTION OF THE COLUMN•USING SHULMAN•S PROCEDURE,
C COMPUTATIONAL pROCEDURE IDENTICAL TO LOOP 'flt
DO qz N=NTOT•MPTl•-1 0291
NpHY5=2 0292
MRS= ~l-MP TS 0293
VTl=VRWT!Nl/!AREA•ALBKGHl 029'+
ALTl=LRWT!Nl/IAREA•ALBKGHl 0295
TEMPV=TRV(Nl 0296
TEMPL=TRLIM) 0297
XLlQ=XROp!NRSl 0298
CALL HHO LIQ! Np~ly S • NR HOM• NL CAT• NHc AT• TEMP L •XL IQ• RHOL l 1 RH OL 2 • RHOL I 0299
RHOL=RHOL*RHOCON 0300
RHOV=VRWT(N)•q92.l<vAPRIN1•359,•!q59.q+(TEMPV*l.8+32.))l 0301
CALL vIScL(NpHyS1NLcAT1NHcAT1TEMPL•xLIQ•AHul•AMu2•AHUML) 0302
IF!ALTl.GT.1soo.1 GO TO qz1 . 0303
AM=AMFl 030'+
ANFUNC=ANF 1 A*! I. I! l 0. *·*If) l *ALT 1+ANF18 0305
P=PFl 0306
GO TO q22 0307
If 2 I CON T ll'JU E 0308
AM=AMF2 0309
1\NFUNC=Af'JF2A*( 1.1< 10.**(•l) *ALT l+ANF2B 0310
P=PF2 03 11
'122 CONTINUE 0312
lF!ABS<RHOv~o.o7Sl,LT.o.0021 GO TO lf23 0313
vr1=vr1•< <0:01s1R1-1ov1••o~s> 03 l Cf
Lt23 CONTINUE 0315
AAW=AM•(VTl••ANFUHC>•<ALTl••PI 0316
xsT=xROP(MRs> 0317
CALL SuRTEN<NpHyS•NLcAT•NHcAT•TEMpL•xST•SlGHA) 0318
SIGMA=SIGMA•SIGCON 0319
MAINLINE PACl<F.D
IF!NTYPE.EQ.21 GO To 't2't 0320
0
PFACTl=6.BS•ll,/ll0 ••5ll•<AMUML••0.02l•(SlGMA*•0.991 0321
PFACT2=<DS**l.2ll*<RH0L**0.37l 0322
GO TO If 25 0323
't2'l CONTiiWE 032'+
PFACTL=l,6'tl•C1.l<lo,••'tll•<AMUML••O.oq>•(SIGMA*•O.SS) 0325
PFACT2=IOS••l.56l•<RH0L**0.371 0326
't25 CONTINUE 0327
PHIS=PFACT1/PFACT2 0328
PHISw=pHSQ/(DS••swpow> 0329
p ~I I Tr! =pH TW *I 1 • I < l 0 • • * S l ) * < ALT 1 **BET A I I ( DS * * 2, I 0330
IFCNTypE.EQ,2> GO To 't27 0331
AF ACT 2 =(RH OL * * 0 • 8 't I • ( 0. 1 I 8 3 * ( ALT 1**0 • q 3 l - 1 , I 0332
AFACT3=1SIG~A/73.l••<0.92S-0.262•AL0G101ALT1ll 0333
IFIAMUML.GT,12.l GO TO 't26 033'i
AFAcTl=0.897•(ALTl••o.57)•<AMUML**O.l3l 0335
GO TO '+29 0336
't26 COtlTil>lUE 0337
AFACTl=0,575•<ALTl**0•57l•(AMUML**0.311 0338
GO TO '129 0339
'+27 CONTINUE 03't0
AFACT2=1RHOL**O,S'tl•<0.212•(ALTl••O,'tl3l-1,) 03't 1
AFACT3=(SIGMAl73.>••(l,033-0.262*AL0GlO<ALTll I 03 't 2
IFIAMUML.GT,20.l GO TO 't28 03't3
AFACTl=l,291•<ALTl*•0.57>•CAMUML*•0.131 03't't
GO TO tt29 03'+5
ina CONTINUE 03'+6
AFACTl=0.752•<ALTl**O,S7>•<AMUML*•0,31l 03'+7
't29 CONT I NUE . 03'+8
HFUNC=AFACT!•AFACT3/AFACT2 03'+9
PHIOW=PHITW-PHIS" 0350
PHIO=Pt!IOW*HFUNC 0351
PHIT=PHIQ+PHIS 0352
AA=AAW•PHIO/PHIOW 0353
EO=E-PHIT 035't
MAINLINE PACKED
I
MAINLINE PACKED
c
C PREPARATION FOR HEIGHT-OF-PACKING INTEGRATION.
c
DO qJ N=NTOT,MPT1•-1 0385
NRS=N-MPTS 0386
SLOPK<NJ=-KX<Hl/KY(Nl 0387
·cfAK(Nl=yROplNRSl-SLOPK{Nl•xROP(NRSl 0388
lt3 CONT IMuE 0389
lF<MFIN.GT.9991 GO TO q03 0390
DO qq M=MPTS,MFIN•-1 0391
SLOPK(Ml=-KX<Ml/KY<Ml 0392
CFAKIM)=ySOp(Ml-SLOp~(Hl•xsOplMl 0393
'Pt CONTINUE 039'f
qo3 CONTINUE 0395
DO qs N=NTOT,MPTl,•l 0396
NRS=N-MPTS 0397
MN=l 0398
DELX=O.QOl 0399
XG=XROp(NRSl-OELX 0'+00
5L=SL0PK<Nl O'+D l
CFAC=CFAK<Nl 0'+02
(•51 COMTINuE O'f 03
CALL XYALFA<ALFA,AL~CON•ALF•MALF•NOATA1XALF•XGI OltOlf
YG=ALF*XGI ( 1 • +xG* I ALF:-1 • l l 0'+05
YTEST=SL•XG+CFl\C Olf06
IFIABS(YG~YTESTl.LT,0,00011 GD TO q52 Olt07
NcALL=l 0'+08
CALL SEARCH(YG•YTEST1XG•DELx,MN•NcALLl 0'+09
GO TO '+51 O'+ 10
Lt52 CONTINUE 0 't 1 1
IF<XG.GE.XROPINRSloOR.YG·LE.YROPtNRS)I GO TO 901 Olfl2
XI (ti l = XG Olf l 3
yt(Nl=YG O'tl'+
'+5 CONT I NtJE Olf l S
IFCMFIN,GT.9991 GO TO qQq O't 16
MAINLINE PACKED
DO q6 M=MPTS•ttFIH•-1 0'+17
MN=l O't l 8
DELX=0.001 0'+19
XG=XSOp(M)-f)ELX 0'+20
SL=SLOPKIM> 0'+21
CFAc=cFAKIM> 0'+22
~161 CONT I NuE oq23
CALL xvALFAIALFA1ALFCON•ALF1HALF1NDATA1XALF•XG) O't2't
YG=ALF•xG/ ( l • +xG* ( ALF-1' I I 0'+25
YTEST=SL*XG+CFAC 0'+26
IFIABSIYG-yTEST>.LT.O.OOOll GO TO q62 0'+27
NCALL=l 0'+28
CALL SEARCH(YG•YTEST•xG•DELx•MN•NcALLI 0'+29
GO TO '+61 0'+30
tl62 CONTINUE 0'+3 l
IFIXG.GEoXSOPIH),OR.YG·LE.ySOp(MI> GO TO 901 0'+32
XIIMl=XG O!f.33
YIIM>=yG 0'+3'+
q6 CONTINUE Ott35
'I Ott CONT I NlJE oqJ6
c
C CALCULATION OF VALUES OF THE FUNCTION TO BE INTEGRATED•
C (RECTIFYING SECTION)
IF1KX(NPOINT1.LT•KY1NPOINT>) GO TO 611 O!f37
c •oo• LOOp 61: pRINcipAL MASS TRANSFER REsisTANcE IN VAPOUR pHAsE.
NSORT=l 0'+38
DO 61 N=NPTS•NFIN••l 0'+39
NRS=N+MPTS O'+'tO
VYR<N>=vlNRs>•yRQPIN) O't't 1
FuNcRINl=l.llKy(NRSl•AsuRFINRSl•lyIINRs>-yROplN))) Olf '+2
61 CONTINUE O't't3
GO TO 612 O't'+'+
611 CO~TINUE O't'tS
MAINLINE PACKr:D
c •oo• LOOP 62: PRINCIPAL MASS TRANSFER RESISTANCE IN LIQUID pHASE.
N50RT=2 0 '+'t 6
DO 62 N=NpTStNFIN•-l 0'+'+7
NRS=N+MPTS o 'Pt a
VYR(Nl=L<NRs>•xROPINl O'+'t9
FUNCR(Nl=l•l<KXINRSl•ASURFINRS)•IXROP<N>~xIINRSl)l O'tSO
62 CONTINUE O't5 1
612 CONTINUE 0'+52
TOP=VYRINPTSl 0Lt53
FEED=VYRlll Q'tSq
NpTI=NpTS-NFIN+l 0'+55
c INTEGRATION ovER REcTIFylNG sEcTioN.
CALL SIMPS1TOP,FEED•NPTltFUNCRtSUM) 0'+56
C HEIGHT OF PACKING FOR RECTIFYING SECTION IM)•
ZRECT=SUM 0'+57
IFIMFIN.GT.999) GO TO 699 OlfSB
c CALCULATION OF vAluES OF THE FuNcTlON TO eE INTE&RATEo.
C (STRIPPING SECTION)
IFcNSORT.EQ,2) GO TO 613 0'+59
c •oo• lOOp 63: pRINcipAL MASS TRANSFER RESISTANCE IN VAPOUR pHASE.
DO 63 M=MPTStMFIN•-1 0'+60
VYS(M)=V<Ml•YSOPCMI 0'+61
FUNCS(Ml=l./(Ky(Ml•ASURF!Ml•(Yl<Ml-YSOpfMlll 0'+62
63 CONTINUE 0'+63
GO TO 61~ 0'+6'+
613 CONTINUE 0'+65
c •oo• LOOp 6~: pRINclpAL MASS TRANSFER RESISTANCE IN LIQUID pHAsE.
DO 64+ M=MPTStMFIN•-1 0'+66
VYS(Ml=L!Ml•XSOP(Ml 0'+67
FUNCSIMl=l./(KX<M>•ASURFIMl•<xSOPIM>-xI<Ml)) Olf68
6'+ CONTINUE Olf69
61'+ CONTINUE Olf70
FEED=VYSIMPTSl O.lf71
BOT=VYSIMFIN> 0'+72
C INTEGRATION OyER sTRippING SECTION.
MPTl=MPTS-MFIN+I O't73
CALL SIMpSIFEED•BOTtMPTltFUNCStSUMl 0'+7«+
MAINLINE PACKED
C HEIGHT OF PACKING FOR STRIPPING SECTION (M),
ZSTRIP=SUM O'f7S
699 CONTINUE 0'+76
CALL pACRESCNDAT.HpTS•MPTSoNFIN•MFINoNTypE,NpACK•DMl1zRECT,zSTRip1 0'+77
lvpDL·ASURF1FuNcR.ruNcS•L•V•VYR1vYS•xl•YltKX•KY•NSORT) 0'+78
GO TO 999 O't79
C ERROR MESSAGES ***********************************************************
901 CONTINUE O'f8Q
WRITE<NTP•9UOll XGtYG 0'+81
9001 FORMAT!/T2,•pINcH pOINT OCCURS AT pOlNT'•F7.'+•'•'•f6•'+•' ON THE'• O't82
1/T2•'EQUILieRIUM CURVE•'•/T2•'THE REFLUX RATIO OR THE DISTILLATE A O't83
2No ftOTTOMS C0Mp0SITIONs•.1T2.•SHOULD eE ADJUSTED AccORDlNGLY•'I O'f8't
WRITE<NTP•90l l I 0'+85
9011 FORMAT(/T2t•EqulLinRIUM AND OpERATING LINE DATA wILL aE PRINTED ou 0'+86
lT,••/T2••THlS SHOUL.D BE PLOTTED ON AN x-y DlAGRAM•ANO THE SySTEM'• 0 'f 8 7
2/T2•'CHECKED FOR AzEOTROplSM•'l 0'+88
9021 FORHAT<T5•F6.'f,2x•F6.lfl O't89
9031 FORHATl/T2.•EQUlLlBRlUM DATA:•,/TB,•x•·7x·•y•) O'f 90
90'+1 FORMAT!/T2)•poINTs ON OPERATING LINEs:••/T8•'x'•7x•'y•) O't9 l
9051 ~ORMAT(T2•'pOINT OF INTERsEcTioN Of OpERATING LINEs:•1f7,lft 0'+92
12X.tF6.(fl O't93
WldTE<NTp•9031 I 0'+9'f
WRITE<MTp•9021) <XEQUlL<KltYEQuILIKl•K=l.NoAT•S) 0'+95
WRITE!NTP•9D'fll O't96
WRITEIMTp•9021) <xsop<t1I •YSOPIMl •M=l •MPTS•S> O't97
WRlTE(NTp•90511 XCR•YCR O't98
WRITE<tlTp•9021 l IXROPINl •YROP(Nl 1N=l •NPTS•SI O't99
GO TO 999 osoo
902 CONTINUE 0501
WRITE<NTP•90021 0502
9002 FORMAT(/T2.•oIAMETER OF THE COLUMN ExcEEDS 2 METRES.·· 0503
1/T2•'SySTEM uNsuITABLE FOR pACKED COLUMN OISTILLATION.•1 OSO't
999 CONTINUE 0505
WRITElNTP•99991 0506
9999 FORMATl/T2,•END OF PROGRAM,') 0507
END 0508
MAINLINE PACKED
SUBROUTINE pACRES<NoAT1NpTS•MpTStNFlN•HFIN.NTypE1NpACK1DlAMM•ZREcT 0001
l•zSTRIP•VPDL•ASURF•FUR•FUS•L•V•VYR•VYS•Xl•yl•KX•KY•NSORT> 0002
c RouTINE FOR PRINTING RESULTS FOR DESIGN OF PACKED COLUMNS.
c ••••••••••••••••••••••••••••••••••
C INSERT COMMON BLOCK 'BINC0M' HERE.
c ••••••••••••••••••••••••••••••••••
DIMENSION ASURF(lltFUR(ll •FuS<ll•Kx<ll,Ky(ll•Lll) 0003
DIMENSION VI ll•VYR(l l •vYSlll •Xl( ll •YI< ll OOO't
REAL KX•KY•L•LH·L~ICONV•LHMW•LIQR1LIQS•LRwT,LSwT•MW 0005
NTOT=NPTS+MpTS 0006
MpTl=HpTS+NFIN 0007
1 FORMAT!A3> 0008
1001 FORMAT!/T2,•oEsIGN OF A pAcKED oisTILLATION C0LUMN·••/T2t 0009
l'MASS TRANSFER cOEFFlcIENT cALcuLATIONS BY SHULMANS METHOp.•> 0010
1002 FORMAT<IT2,•FEEo COMPONENTs: (1) •·SA6,/Tl9·'<2l '•5A6) 001 1
1003 FORMAT(/T2t•FEED STREAM SpEclFicATIONs:•.1rq,•fLOwRATE:•·Fl0,2,3x· 0012
l'KGMDLE/HR'•/Tq,•coMpOsITION:•,f9,q·tx•'M0LE FRAC'•/Tq,•QvALuE:•, 0013
2F12,2~/Tq••rEMPERATURE:',F7,2,JX,•DEG C',/Tq•'ENTHALPY!',fl0.21 001 '+
33X••KJ;KGMOLE 1 l 0015
l007 FORMAT1/T2ttDISTILLATE WITHDRAWAL RATE:••f7,2•t KGMOLE/HRtt/T2t 0016
l'OISTILLATE C0HPOSITION:••Fl3,ql 0017
1008 FORMATl/T2.•soTTOMS wITHORAWAL RATE!'•f7.2,• KGM0LEIHR'•/T2• 0018
!'BOTTOMS CoMPOslTioN:',flJ,q) 0019
1011 FORMAT11T2,•SlzE AND TYPE OF PACKING USED:• •f6•1,1X••MH•, 0020
l3x,•RASCHIG RINGS•) 0021
1012 FORMAT(/T2,•SlzE ANO TypE OF PACKING usEo:••F6·l·lx••MM'• 0022
13X•'BERL SADDLES'l 0023
1201 FORMATl/T21•ToTAL CONDENSER OPERATION.•) 002'1-
1202 FORMAT!/T2.•pARllAL cONDENsER OpERATIQN.•l 0025
1203 FORMAT(T2•'cONoENSER pRESSuRE:'•F9,2tlX•'KPA'l 0026
1205 FORMAT(T2•'cONDENSER aurv:•,Fl3,2•1X•'KW'l 00.27
1206 f0RMAT(T2•'REB01LER ouTy:•.r17,21lx•'Kw'> 0028
1207 FORMAJ(/f2,'REFLUX RATIO:',Fll,q) 0029
120a FORHAT<T2••HIN REFLUX RATio:••F7.q) oDJO
SUBROUTINE PACRES
2010 FORMAT(/T21•VAPOlJR PRESSURE-DROP AT LOADlNG!'•F6.31lX•'KPAIH' l 0031
2011 FORMAT(/T21•THE COLuHN DIAMETER IS BASED ON coNoITtoNs AT THE pOIN 0032
lT IN'•/T2•'THE COLlJMN ~ITH THE GREATEST LIQUID FLOWRATE•'• 0033
2/T2•'<SEE TABLE BELOW)tl 003't
2012 FORMAT(/T21'REcOMMENDED COLUMN DlAMETER:'•F6•31lX•'M'l 0035
2013 FORHAT</T21'HEIGHT OF pACKING REQUIREo:•,;yq, 0036
l'RECTIFYING SECTION:'•f7!2.1x.•H•1/Tq, 0037
2•sTRIPPING SECTI0N:•.Fe.2•1X••M•1 0038
3000 FORMAT(/T21tDO YOU WANT C0Mp051TION•TEMPERATURE AND FLOWRATE DATA 0039
lTABLES7'l ooqo
3001 F0RHAT<IT2.•coMp0SITION•TEMpERATuRE ANo FLOwRATE pROFILES!'l ooq1
3010 FORMAT(Tq••coMpOstTION'•Sx·•TEMpERATuRE'·6x•'FLDwRATE5•• OO'f 2
1/Tq•'<MOLE FRACl'•7x•'<DEG Cl'17x•''KGM0LE/HRl'•/Tq, OO't3
2'LIQ'•SX•'VAP'•6X•'BUBBLE pT'•6x1'LlQ'1Sx•'vAP') OO't If
3011 FORMAT(T2•f6,q,zx·r6,'t,6x•F7.2.'+x•F7o21lx•F7.2l OO'tS
3012 F0RMAT(T2•'FEEo pOSITloN:•1 OO'to
3013 FORMAT!/T2.•sHuLHAN MASS TRANSFER cALcuLATIONs:•,/T't, ooq7
l'x =LloulD MOLE FRAcTloN OF LIGHT cOMpONENT•1/Tq. OO't8
2•v =vApOuR RA~E IN COLUMN IKGMOLE/HRtSQ M)•1/Tq, ooq9
3'A =lNTERFAclAL suRFAcE AREA OF pACKED SEcTION (SQ Mlcu Ml'•/T't· 0050
'+'Kv=vApOuR HASS TRANSFER cOEFFlcIENT IKGMDLE/HR.SQ M•MoLE FRAcl'• 0051
5/T'f•'KX=LIQUID " " " " I " 'l 0052
3113 FORMATl/T21'SHULHAN MASS TRANSFER CALCULATioNs:•,/T't, 0053
l'x =LIQUID MOLE FRACTION OF LIGHT COMpONENT•t/Tq, OOS't
2'L =LIQUID RATE IN COLUMN IKGHDLE/HR.SQ Ml•t/Tq, 0055
l'A =INTERFAclAL SuRFAcE AREA OF pA(KED SEcTION (SQ Mlcu Ml'•/T't• 0056
'+'Kv=vApOuR MASS TRANSFER COEFFICIENT (KGMOLE/HR.SQ M•MOLE FRACl'• 0057
5/T't•'KX=LIQUID " " " " I " '> 0058
301't FORMATl/y't,•X•,9x.•v•.7X,•A'17X1'Ky•.7x,•Kx•> 0059
3ll't FoRMAT(/yq,•x•,9x,•L•.7X,•A•.7x,•KY•,1x.•Kx•> 0060
3015 FORMATCT2•f6,q,fl0.31F8,3•F9•'t•F9,ql 00~,l
SUBROUTINE PACRES
3016 FORMATC/T2,•0ATA FDR NUMERICAL INTEGRATION TO flND HEIGHT Of PACKI 0062
1NG:'•/Tq1'INTEGRATION OF: DCZl=DCV.Y)/KY.A.CYl-Yl'•/Tq• 0063
2•y =VAPOUR MOLE FRACTION OF LlGHT COMpONENT•1/Tq, 006q
3•yI=pOINT ON EQUIL CURvE CORRESpONDING To pT y ON Op. LINE'> 0065
3116 FORMAT(/T21 10ATA FOR NuMERicAL INTEGRATION TO FlND HEIGHT Of PACKl 0066
lNG!'1/Tq1'INTEGRATION oF: o<zl=D<L.XllKX·A.Cx-xt>'•/Tq, 0067
2'X =LIQUID MOLE FRACTION OF LIGHT COMPONENT•1/Tq, 0068
J'xI=pOINT ON EQUIL CURvE CORRESpONDING To pT x ON Op· LINE'> 0069
3017 FORMAT(/Tq.•y•,ax.•y1•.sx.•1,IKY·A·(Yl-Yl'1SX•'V·Y'l 0070
3117 FORMAT(/Tq1•x•.sx.•x1•.Sx1•1.1KX•Ao<x-x11•.sx•'L•X') 0071
3018 FORMATCT2•f6 0 q,3X•f6,q,6X1f7,3 1 7X1f7,3l 0072
3020 FORMAT(/T2.•oo you wANT MASS-TRANSFER oATA TABLES?•) 0073
3021 FORMATC/T21'pRINcipAL MASS TRANSFER REsisTANcE IN VAPOUR PHASE.•> 007'+
3022 FORMATllT21•PR1Nc1PAL MASS yRANSF[R RES1SrANCE IN L1QU1D PHASE,') 0075
C RESULT TABLE HEADING1COMPONENT NAMES AND FEED STREAM DATA,
WRJTE(NTP•lOOl) 0076
WRITEINTP•l002J I I TITLES I l 1Jl •J=l1Sl •l=t,21 0077
WRITECNTp•lQ03) FTOT•Z•Q•TF•QF!ll 0078
c CONDENSER SpEcIFlcATIONS.
IF!NCOND,EQ.lJ WRITE(NTP,1201) 0079
IFCNCOND.EQ,21 WRITE!NTPtl202l 0080
WRITEINTP•l205) QC 0081
PTK=PT/7,50061683 0082
WRITECNTP•l203) PTK 0083
c REFLUX coNoITlONS•AND DISTILLATE pRODucT DATA.
WRITEcNTP•12071 R 008'f
WRITEINTP•l208l RM 0085
WRITECNTp•l007l DTOT1XO 0086
c BOTTOMS pROoucT OATA1AND REeOILER SpEcIFicATIONs.
WRITEcNTP•l008) BTOTtXB 0087
WRITEINTP•1206l QB 0088
c COLUMN SpEcIFicATIONS.
WRITE(NTP•2010) VPDL 0089·
WRITECNTP•20lll 0090
WRITE<NTP•2012l DIAMM 0091
IFIHFIN.GT,9991 ZSTRip=O,O 0092
WRITECNTp•20l3l ZRECT•ZSTRIP 0093
SUBROUTINE pAcRES
SJZE=NPACK•12.7 0091f
C PACKING SPECIFICATIONS.
lF(NTYpE.EQ.11 WRITE(NTP,1011) SIZE 0095
IFINTypE.EQ.21 WRITE<NTPtl012l SlzE 0096
c C0Mp0SlTJONtTEMpERATuRE AND FLOwRATE pROFILES.
WRITEtNTP•3000) 0097
READ I NcR, 1 I. ANAME 0098
lFIANAME,NE.'YES'l GO TO 301 0099
WHJTE<tHP•3001 l 0100
WRITE<NTp•3010> 0101
C RECTIFYING SECTION•
WR I T E I .N T P • 3 0 1 l ) < XR 0 P ( I - MP T S ) • y R 0 P < I ,,.. MP T S > , T R L { l l • L t Q R ( l J • V AP R ( I ) ' 0102
lI=NTOT,MPTl•-5> 0103
C FEED POSITION.
WRITE1NTP•30121 010 't
C STRIPPING SECTIOtl.
lf(HFIN,LT.999) WRITE1NTP•lOll1 <XSOP(l)tYSOP1l1•TSL1l1•LIQS(l)•VA 0105
lPS(ll•I=MPTS•MFIN•-5) 0106
301 CONTINUE 0107
WRITE<NTP•3020) 0108
REAO<NcR•l> ANAME 0109
IFIANAME.NE.'YES'l GO TO 999 01 l 0
lf<NSORT.EQ,21 GO TO 310 0 l 11
c MASS-TRANSFER oATA FOR SySTEMS wITH pRfNclpAL RESISTANcE IN
C VAPOUR PHASE.
WRITE(NTP•30211 0 11 2
WRITE!NTP,3013! 0 1 13
WRITE<NTP•30l'tl 0 1 1 If
c RECTtFylNG SECTion.
WRITEcNTP•3015) cXROP( I-MPTS1 •V(l) ,ASURF(l) •KY111 'KX1I1 •l:NTOT1MPT 01 15
llt-Sl 01 16
WRITE<MTP•3012l 0 1l 7
C STRIPPING SECTION.
lFcMFIN.LT,999) WRITE1NTP•3015) 1XSOP(ll •V(ll •ASURF1I11KY1I11KX(ll 0118
l. I =MPTS I MF IN. -s) 0 1 19
WRlTEllHP•30l6l 0120
WHITECNTP•3017) 0121
GO TO 311 0122
SUBROUTlNE pAcRES
JlO CONTINUE 0123
c MASS-TRANSFER DATA FOR SySTEMS wITH PRINCIPAL RESlSTANcE IN
C LlQUID PHASE.
WRITE(rlTP•3022} 0 l 21.1
WRITEINTP•3113) 0125
WHITEltJTp•311 1i l 0126
C REcTIFylNG SECTION,
1
WRITE1NTP•30151 1XROPrl-MPTS1•L(l)tASURF1l1•KY(l} KX(I)•l=NTOTtMPT 0127
11
-s) t 0128
WRITE<NTp•3012l 0129
c STRlpplNG SECTION.
IF1MFIN.LT.9991 WRITE1NTp1JOlS) 1XSOP1l>•L(I) •ASURF1I11KY1l1 •KX1I1 0130
l•I=MPTS•MFINi-51 0131
WRITEINTp•3116l 0132
WRITEIMTP•3l 17l 0133
311 CONTINUE 0 1 3 'f
C DATA IHTEGRATED TO FIND THE HEIGHT OF pACKING IN EACH SECTION.
C RECTIFYING SECTION.
DO 30 I=NTOTiMPTl•-5 0135
IIM=I-MPTS 0136
IFINSORT.EQ.11 XYl=yROPllIMI 0137
IFINSORT.EQ,ll XY2=Yilll 0138
lFINSORT,EQ~2l XYl=xROPlIIM) 0139
lFINSORT.EQ,2> XY2=xJCil Ol'tO
WR IT EI NTP • 3 0 1 8 l XYl • XY2 •FUR I I IM l •VY R < I IM l 0 1 If 1
30 CONTINUE Ollf2
WRITEIMTP•3012> 01 '+3
C STRIPPING SECTION.
IF(MFIN.GT.999) GO TO 999 Ol'ttt
DO 31 l=MPTS1MFIN•-S Ol'tS
lf(NSORT.EQ. l) xyl=ysOp( I) 01'16
IF<NSORT,EQ.l> xv2=yl( I> 01 't7
lFIMSOf<T.EQ.2) XYl=xsOpl I) 01 't8
lFCNSORT.Eq.21 xv2=x1<1> 011.f 9
WRITEINTp•30t8) XYl•XY2•FUSIIl1VYSlll 0150
31 cotJTINuE 0 151
999 CONTINUE 0152
RETURN 0153
END 01 Si+
SUBROUTINE pAcRES
SUBROUTINE PACTYP!MCAN,NTYPE,NPACK,NCR,NTP> 0001
FORMATc ) 0002
2 FORMAT(All 0003
lfCMCAN.EQ•ll WRITE(NTP•lOODl OOOq
1000 FORMATC/T2,•THE PROGRAM DATA PACKAGE INCLUDES PACKlNG DATA FORCER 0005
lAMIC RAScHIG'•/T2•'RlNGS AND BERL SADOLEs.•1/T2••oo YOU WANT TO us 0006
2E A DIFFERENT TYPE OF pACKING?'l 0007
READ(NcR12) PAcTYP 0008
IF!PACrYP.EQ.'YES') GO ro 200 0009
lF(MCAN,EQ.l) WRlTE1NTP•lOOl1 0010
1001 FORMAT(/T2,,oo you wANT TO USE Ill RAScHIG RINGS OR (21 BERL SAOOL 0011
1ES?'•/T2.'ENTER 1 OR 2'1 0012
READ<NcR,l> NTYPE 0013
IF!NTYPE,GT,ll GO TO 101 001q
IFcMCAN,EQ.11 WRITE(NTP•1002) 0015
1002 FORMAT(/T2,•THE AVAILABLE RING SIZES ARE:•,/Tq,•(ll 12.71(21 25,q, 0016
1(3) 38.1,(q) so.a IMMl'•/T2•'ENTER APPROPRIATE CODE No.•> 0017
READ<NCRtll NPACK 0018
GO TO 999 0019
101 CONTINUE 0020
IF<MCAN.EQ·l> WRITEINTP• 10031 0021
1003 FORMAT!/T2,•THE AVAILABLE SADDLE SIZES ARE:•t/Tq,•111 12.1,121 25. 0022
lq•(3l 38.1 IMMi',/T2t'ENTER APPROPRIATE CODE NO,'l 0023
READ!NCRtll NPACK 002'+
GO TO 999 0025
SUBROUTINE PACTYP
200 CONTINUE 0026
IF(MCAN.EQ·l> DRITE(NTP•2001) 0027
2001 FORMATt/T2,•po YOU HAVE THE PACKING DATA PREPARED?') 0028
REAP(flcR12l PNM1E 0029
IF<PNAME,EQ,'YES'l GO TO 201 0030
lFCMCAN.EQ•l> ~RITE!NTp•2002l 0031
2002 FORMAT!/T2,•REFER TO THE DISTILLATION pACKAGE MANUALtSECTION 3,S,F 0032
lOH FURTHER DETAILS~') 0033
MCAN=lOO 003'1
GO TO 999 0035
201 CONTINUE 0036
IF<MCAN,EQ•l> RRITE(NTp•2003> 0037
2003 FORMAT<!T2.•ENTER cooEs FOR PACKING TypE AND slzE') 0038
READ ( NcR I 1) NTypE. rip ACK 0039
999 CONT I !JUE 00'10
RETURN 00'11
ENO 00'12
SUBROUTINE PACTYP
SUBROUTINE PAKING(NT.NP•Cf,E,AMFl•AMF2,ANFlAtANFIB1ANF2A•ANF2BtPFl 0001
l•PF2•DS•PHTW1PHSW•SWP•BETAl 0002
c RouTINE SUppLIES DATA oN EITHER CERAMIC RASCHIG RING OR BERL SADDLE
C PACKING MATERIAL TO THE MAINLINE •PACKED•,
C CHOICE IS DEPENDENT ON TypE (NT1 AND SIZE (NP) OF PACKING SPECIFIED
C IN MAINLINE PROGRAM.
C REFERENCE: TREYBAL•R,E•••MASS TRANSFER OpERATIONS••2ND ED,•
C MCGRAW-HILL•TABLES 6.2•6.3 AND 6.~.
GO TO ( ioo.2001.NT 0003
100 CONTINUE OOO<i
C CERAMIC RASCHIG RINGS·
GO TO ( 110, 120, 1301 l'+O) •NP 0005
110 CONTINUE 0006
C 12.7 MM RINGS l0.5 INl
CF=6tf0. 0007
E=0.63 0008
AMF1=82LJD. 0009
AMF2=9.32 0010
ANF1A=3.15 00 11
ANFlB=-0,3 0012
ANF2A=Q.151 0013
ANF2B=O. llf8 00 1 Lt
PF'l=-1.Dlf 0015
PF2=-0,lll 0016
05=0 0 0582 0017
PIHW=2. 25 0018
PHSW=D.OOlO'f 0019
SWP=l.21 0020
BETA=0,965•<DS•*0,376l 0021
GO TO 999 0022
SUBROUTINE pAKING
120 CONTINUE 0023
C 25.q MM RINGS (1.0 IN>
CF=l60. 0024
E=0.73 0025
AMFl=o.27q 0026
AMF2=tf63. 0027
ANFIA=o.o 0028
ANFla=o.o 0029
ANF2A=0.528 0030
AMF2B=-0.0793 0031
PFl=0,552 0032
PF2=-0.lf7 0033
os=o.1107 003'+
PHTW=2.25 0035
PHSW=0.00104 0036
SV/P=l.21 0037
BETA=0.965•<os••0.376l 0038
GO TO 999 0039
SUBROUTINE pAKING
130 CONTH1uE ooqo
C 38. ! ?111 RINGS ( 1.S IN>
Cf ,..95. 00'+ 1
E=0.71 OO't2
AMFl=l.82 ' OO't3
Ai'JF 2::LI • 85 OO't If
Al'llF 11\=0 ~ 6 75 OO"l 5
Al'JF 1B=-0. 101 3 OOll6
MIF .2A=O. l 't8 OO'f 7
AMF2B=-0.022 OO'f 8
PF 1"'0.2711 OO'i9
PF2=iJ. llfO ooso
DS=0.171fO 0051
PHT'J=2. 25 0052
PHS',~=O. 00 l Olf 0053
S~/P =l • 2 1 OOSlf
BETA=D.965~<os~~0.376) ooss
GO TO 999 0056
SU3ROUTINE pAKING
l'tO CONTINUE 0057
c so.a MN RINGS (2.0 IN)
CF=65. 0058
E=0,7't 0059
AMFl=O.'tOl 0060'
AMF2=0.95 0061
AMFlA=O.O 0062
ANFlB=o.o 0063
ANF2A=o.o 006't
AhlFZB=o.o 0065
PFl=O.tt81 0066
PF2=0.362 0067
DS=0.238 0068
PHTl!'J:2. 25 0069
PHSW=O.OOlO't 0070
SuP=l.21 0071
BETA=0.965*<DS•~0.376) 0072
GO TO 999 0073
SUBROUTINE pAKING
200 CONTINUE 007't
c CERAMIC BERL SADDLES.
GO TO t210e.Z20,230J 1NP 0075
210 CONT ltlUE 0076
c 12.7 MM SADDLES ( 0 • 5 I N l
CF=380. 0077
E=0.63 0078
AMFl=0.0336 0079
AMF2=2.S't 0080
ANFlA=o.o 0081
ANFlB=0.0529 0082
ANF2A=O.O 0083
Al'JF26=0.0529 0081f
PFl=0.761 0085
PF 2=0 .1 70 0086
DS=0.0532 0087
PHTW=2.S 0088
PHSW=0.00032· 0089
SWP=l.56 0090
BETA=0,965*fDS•*0,376l 0091
GO TO 999 0092
SUBROUTINE pAKING
22C CONTINUE 0093
C 25.'f MM SADDL,ES 11.0 JrJ)
CF=llO. 009't
E=0.69 0095
AMFl=lS.89 0096
AMF2=23B. 0097
Af\lrlA=0,686 0098
Alff 18=-0. 1029 0099
ANF2A=O,'f20 0100
Afllr2B=-0.063 0101
PFt=o.o 0102
PF2=..-0.359 0103
DS=0.105 01 O't
PHHl=2. 5 0105
PHS~J=O. 00032 0106
5'.NP=l .56 0107
BETA=0.965•Cos~~0.376) 0108
GO TO 999 0109
SUBROUTINE PAKING
23G CONT I tlUE on i o
c 38. l m1 SADDLES ( 1• 5 I Nl
CF=6S. 0l l 1
E;:.::0.75 01 12
AMFl=0.613 01 l 3
AMF 2;;:;'f65 •. 0 1 1q
Al'1F 1A=0. 0 at 15
IHJFls=~o.osun 01 16
ANF2f\=0.325 0 l 17
ANF?.B=-0.0996 0 118
PFl=O.!f55 0 1 19
PF 2"'-0. 1355 0120
DS::.0.155 0 121
PHTrl=2. 5 0122
, PHSrJ:.::0,00032 0123
S 1,'JP=l ,S6 01 2'-t
8ETA=0.965D(0Sooa,3761 01. 25
GO TO 999 0126
999 C 0 MT I Ill U E ·0127
RETURM 0128
END 0129
SUBROUTINE pAKlNG
SUBROUTINE FDATA<NCURVE•ABS•ORDI 0001
c RouTINE FITS AN N'TH ORDER pOLyNOMIAL TO THE U•S· STONEWARE
C CONpANy•s FLOODING AND LOADING CURVES FOR pACKED TOWERS·
c REFERENcE: TREyeAL•R·E·•'MASS TRANSFER OpERATION5•,2ND ED.•
C MCGRAW-HILL•PG. 160,FIG. 6,26,
C THE DESIRED yApOUR pRESSuRE DROP AT LOADING IS SpEClFIED IN
c THE MAitlLINEtAND couNTER NCURVE SELECTS THE RELEVANT cuRvE.
C THE FIT IS RY LEAST SQUARES, POLYNOMIALS UP TO ORDER TEN ARE
C TESTEDtAND THE BEST FIT IS SELECTED,
C THE ROUTINE REQUIRES UNIVAC tMATH-PACt LIBRARY SUBROUTINE tGJRt
C FOR SOLVING THE MtTH ORDER MATRICES H.)VOLVED IN THE LEAST SQUAr~ES
C PROCEDURE.
C THIS OR A SIMILAR ROUTINE MOST BE PROVIDED.
DIMENSION AMAT(20•20J •CMATc20) 1COEFF120) •X(S01 •Y(SO) 0002
DI MENS I ON JC ( 20 l , V ( 2 l 0003
DATA MCR1NTp/8,S/ 000'+
FORMAT( l 0005
c Aoo DATA FOR CORRELATION cuRvE SpEcIFIED BY couNTER NcuRvE.
GO TO c100.200,Joo,qoo.soo.6001•NCURVE 0006
100 CONTINUE 0007
CALL ENTRANl6•'@ADD•E oisTFILEtFLOOol • •) 0008
GO TO 700 0009
200 CONTINUE 0010
CALL ERTRAN(6•1~ADO•E DlSTFILEoFL00D2 • t) 0011
GO TO 700 0012
300 CONT I !JUE 0013
CALL f.RTRAN(6•'MADD•E DlSTFlLE•FL00D3 , ' l 001 't
GO TO 700 0015
'fU 0 C0 NT I Nl.J E 0016
CALL ERTRAN(b•'@AOD•E oisTFlLE•FLOODq • •) 0017
GO TO 700 0018
500 CONTINUE 0019
CAL l ER TR Ati ( 6 • '(J ADD • E OI ST F ILE • FL 0 0 DS ~ t ) 0020
GO TO 700 0021
600 COIHINUE 0022
CALL ERTRANC6•'aADO•E oISTFILEtFLOOD6 t . , 0023
700 CONTINUE 002'+
SUBROUTINE FDATA
C READ IN DATA.
READ(NCR.1) NDATA 0025
READtNcR.l) <X<Il•YCil1l=l1NDATAl 0026
READINcR.1.END=701) IDUM 0027
701 CONTIMuE 0028
C SET INITIAL VALUES•
NUM=2 0029
ERROR=lOOO. 0030
MTOT=20 0031
101 NuMl=NuM+l 0032
c •oo• LOOpS 10•11 & 12 cALcuLATE TERMS IN MATRicEs 'AMAT' ANO 'CMAT•.
DO 10 K=l dlUM 0033
DO 11 J=l•NUM 003'f
SUMA=O.O 0035
SUMC=O.O 0036
DO 12 I=l•NoATA 0037
IF(JoEQ.ltANDoKoEQ•ll GO To 102 0038
SUMA=SuMA+X(ll••(J+K-2) 0039
GO TO 103 OO'f O
102 SUMA=NDATA DOif l
103 IF<K•EQ.ll GO TO ioq 00'+2
SuMC=SuMc+y(ll•lxCtl••<K-lll 00'+3
GO TO 12 OD'f If
lO'f SUMC=SUMC+Y(ll OO'f 5
1.2 CONTINUE 00'+6
AMAT ( ,J, Kl =SUMA 00'+7
11 CONTINUE 00'+8
CMAT(Kl=SllHC OO'f 9
10 CONTINUE 0050
SUBROUTINE FDATA
C INSERTION OF CMAT IN COLUMN NUMl OF AMAT.
DO 13 I=l •NUM 0051
AMATI I ,NUMl >=CMAT( I> 0052
13 CONTINuE 0053
C 'GJR' SOLVES EQUATIONS IN 1 AMAT• BY GAUSS-JORDAN REDUCTION.
V<ll=Lt OOS't
CALL GJR(AMAT1NTOT1NTOT•NUM•NUMl,$900•JC1Vl 0055
SUMERR=0.0 0056
C CALCULATE SUM OF SQUARED ERRORS.
DO 20 J=l•NOATA 0057
SUMX=AMATI l •NUMl > 0058
DO 21 I=2•NUM 0059
SuMx=suMx+AMATCI.NUMl>•x<Jl••{l-ll 0060
21 CONTINUE 0061
ERR=SUMX-YIJ) 0062
5(..JERR=ERR**2 • 0063
SuMERR=SuMERR+sQERR 0061f
20 cotHINuE 0065
c COMPARE SUM OP SQUARED ERRORS wITH PREyIOUS vALuE.
1F1SUMERR.LT.ERROR1 GO TO 110 0066
120 NUM=NUtl+ l _ 0067
IFINUM•GT.111 GO TO 201 0068
GO TO 101 0069
110 COMTINUE 0070
c STORE ERROR ANo cOEFFiclEMTS Of pOLyNOMIAL wITH 5EST FIT·
ERROR:SUMERR 0071
NPOLY=NUM 0072
DO 30 I=l •NUM 0073
COEFFIIl=AMATII•NUHll OD71f
30 CONTINUE 0075
GO TO 120 0076
201 CONT I NUE 0077
SUBROUTINE FDATA
c CALCULATION OF ORoINATE cORRESPONoING TO 'AsS' ON CURVE 'NcuRVE•.
NORD=NPOLY-1 0078
XSUM=COEFF! l> 0079
DO 40 1=2•NPOLY 0080
IC=I-1 0081
XFAcT=cOEFF(ll•<AnS••Icl 0082
XSUM=xsuM•XFACT 0083
40 CONTINUE OQBq
ORD=XSUM 0085
WRITEINTp•lOOll NORD•ERROR 0086
1001 FORMATllT2•'P0LYMOMIAL OF ORDER'•I3•' FITTEO•'•/T2., 0087
l'SUM Of SQUARED ERRORS='•FlS,lOl 0088
GO TO 999 0089
C ERROR MESSAGES ***********************************************************
C ERROR DETECTED IN 'GJR'!
900 CONTINUE 0090
WRITEINTP•9Q00) ,JC<ll 0091
9000 FORMAT(/T2.•ERROR IN MATRIX•••JC='•l3> 0092
999 CONTINUE 0093
RETURN 0094
END 0095
SUBROUTINE FDATA
SUBROUTlNE RHOLIQINPHY,NR,NL,NH,TG,X,RH0t,RH02,RH0M) 0001
C ROUTINE CALCULATES LIQUID DENSITIES OF SINGLE COMPONENTS OR BINARY
C SOLUTIONS OF COMPOSITION X AT TEMpERATURE TG•
C KNOWN DATA CAN BE SUPPLIED IN SEVERAL WAYS•
c FOR DETAILS REFER To THE PACKAGE MANUAL•SEcTION 3.
DIMENSION AMW(2) tEXPl 1'-tl 1RHOLl 1501 tRH0L2(50) tRHOSISOI 0002
DlMEMSION Tcl2l •TF<H01150) •TRH02150) •xs<SOl 0003
FORMAT! l OOO'f
NcR=S ooos
ExPl I 1 l=0,25 0006
EXP112l=0.29 0007
EXP113l=0.31 0008
EXPll'+>=0.33 0009
IFINPHy.GT.1> GO TO 600 0010
C DATA REQUIRED FOR EACH COMpONENT:
C <Al CRITICAL TEMPERATURE (DEG Cl
c (Bl NO. OF TEt1pERATuRE-oENSlTy DATA pAIRS TO BE SUPpL,.IEo.
CALL ERTRAN<6•'@ADD•E oISTFILE.ROLOAl • •> 00 l 1
REAOINCR1ll IAMWll)•TClll•l=l•2) 0012
Tc<1>=Tc111+273. 0013
TCl2l=TCl2>+273, 001'+
READ<NcR1ll NOATl•NDAT2 0015
READINCR1l1END=600I IDUM 0016
600 CONTINUE 0017
T=TG+273. 0018
IFINDATl,GT 0 ll GO TO 100 0019
IFlNPHY.GT.Il GO TO 611 0020
c LIGHT cOMpONENT oENSITy, IONLy ONE DATA pAlR SuppLlE01
CALL ERTRAN(6t•~ADO•E oisTFlLE,R0LDA2 • •) 0021
REAO<NcR,11 TRHOl<l) tRHDLl( ll 0022
TRH0llll=TRH0llll+273. 0023
611 CONTINUE 002'+
RHOl=RH0Ll111•11TClll-Tl/CTClll•TRH0l(ll)l••EXPl<NLI 0025
GO TO 199 0026
SUBROUTINE RHOLlQ
100 CONTINUE 0027
IF<NPHY.GT.ll GO TO 612 0028
c LIGHT COMPONENT oENsITy. <MORE THAN ONE bATA PAIR SUPPLIED)
CALL ERTRANl6•'@ADD•E oISTFILE,R0LDA2 , •l 0029
REAo<NcR•ll <TRHOl<Jl•RHOLl(ll·I=l·NDATll 0030
612 CONTitluE 0031
IF(TG.GT,TRHOl<lll GO TO 110 0032
RH01=RH0Ll < 1 l 0033
GO TO 199 0031f
110 CONTINUE 0035
DO 10 I=ltf~DATl 0036
DIFF=TG-TRHOl I I l 0037
IFIDIFF.LE.Q,Ol GO TO 111 0038
10 CONTINUE 0039
GO TO 120 OO'tO
l 1lCONTINUE OOt+I
TFACT=(TRHOl(Il-TGll<TRHOll ll-TRHOllI-111 00'+2
RH01=RH0Ll (I l+<RHOLl < l·d 1-RHOLl I I I l•TFACT OO't3
GO TO 199 00 't'+
120 CONTINUE 00'+5
RHOl=RHOLllNOATll 00'+6
199 CONTINUE 00'+7
IFINDAT2.GT,ll GO TO 200 00'+8
lFINPHy,GT•ll GO TO 601 00'+9
c HEAVY COMPONENT nENsITy, <ONLY ONE DATA PAIR SUPPLIED)
READINCR• 1 l TRH02( 1 l •RH0L2( l l ooso
TRH02<1l=TRH02<1)+273, oos 1 '
READ (NCR• 1•HID=601 I IDUM 0052
601 CONTINUE 0053
RH02=RH0L21ll•llTC12l-Tl/ITCl2l-TRH02(1>>>••EXPl<NHl OOS't
GO TO 299 0055
SUBROUTINE RHOLIQ
200 CONTINUE 0056
IF1NPHY.GT•1l GO TO 602 0057
c HEAVY COMPONENT oENsITy. (MORE THAN ONE DATA pAIR SUPPLIED)
READ( NCR• 1) ( TRH02( I l •RHOLi1 I), I:l tNDAT21 0058
READ! NCR• l 'E'.tlD=b02 l l OUM 0059
602 CONTINUE 0060
IF!TG.GT.TRH02!ll l GO TO 210 0061
RH02=RH0L2!1l 0062
GO TO 299 0063
210 CONTINUE 006't
D0 2 0 I =1 • ti DAT 2 0065
DIFF=TG-TRH021Il 0066
lFIDIFF.LE.Q.Ol GO TO 211 0067
20 COMTINuE 0068
GO TO 220 0069
211 CONTINl)E 0070
TFACT=ITRH02(Il-TGl/ITRH02<Il-TRH021I-lll 0071
RH02=Rl-!0L21 I l+IRH0!....21 I-1 l-RHOL2( I) l*TFACT 0072
GO TO 299 0073
220 CONTIMUE 007'+
RH02=RH0L21NDAT21 0075
299 CONTINUE 0076
IFINR.EQ.l) GO TO 300 0077
c DENSITy OF SOLuTION OF COMpOSITION x AT TEMpERATuRE TG•
FACT:X•AMWtl)*RH02•11.-X1•AMWt21•RHOt 0078
RH0H=RH0l*RH02•1x*AMW(ll~(l.-xl•AMWl2)1/FAcT 0079
GO TO 999 0080
SUBROUTINE RHOLIQ
300 CONTINUE 0081
c OpTIONAL FAcILITy FOR SySTEMS wITH C0Mp0SITION-oENSITy DATA KNOWN
C AT SOME TEMpERATURE tTBASEC•·
IFcNPHY.GT.11 GO TO 603 0082
c 'NDATA• (OMpOSITION-oENSITy DATA pAIRStAT TEMpERATuRE TBASEc
C MUST BE SUppLIED.
CALL ERTRANt6•t~AOD•E oISTFILE,ROLDA3 • t ) 0083
READCNCR•l> NDATA•TBASEC 008'1
REAp!NcR1ll <xs<Il•RHOSIJ),J=l1NOATA) 0085
REAO!NCR1l1END=603) IDUM 0086
603 COMTINuE 0087
TBASE=TBASEC+273. 0088
IF<X.GT.xsctll GO To 310 0089
RHOC=RHOS( 1) 0090
GO TO J99 0091
310 COtHlNUE 0092
DO 30 1=1 •MOATA 0093
DIFF=x-xs<Il 009't
lF<DIFF.LE.O.Ol GO TO 311 0095
30 CONTINUE 0096
GO TO 320 0097
311 CONTINUE 0098
XFACT=<x~<Il-Xl/(XS(Il-XSII-1)) 0099
RHOc=RHOS (I)+ (RHOS ( 1-1) -RHOS (I)) •xFACT 0100
GO TO 399 0 10 l
320 COtJT I MUE 0102
RHOC=RHOS(NDATAl 0103
399 COMTINuE 01 O't
c oENSITy OF SOLUTION OF COMPOSITION x AT TEMpERATuRE TG•
TCP=X*TC(ll+(l.-X1•TC!2) 0105
RHOM=RHOC* ( ( Tcp..,T l / (Tep-TB ASE))** ( (Exp 1 (NL) +Exp l (NH)) /2' l 0106
999 CONTIMuE 0107
RETURN 0108
END 0109
SUBROUTINE RHOLIQ
SUBROUTINE SURTENINpHYtNL•NH1TG•X•SlGMl 0001
c RouTINE cALCULATES THE SuRFAcE TENSION OF aINARy SOLUTIONS OF
c COMPOSITION X AT TEMPERATURE TG.
c KNOWN DATA CAN BE SUPPLIED IN SEVERAL WAYS.
c FOR DETAILS REFER TO THE PACKAGE MANUAL•SEcTION 3.
DIMENSION AMWl2l 1PARA(?.) 1SlGl !SOI •SlG2!50l ,SIG5(50) 0002
DIMENSION TI 12) •T2C2l •TC<SOl 1XS(SQ) 0003
1 FORMAT< ) 000'+
NCR=8 0005
IF<NPHY.GT.ll GO TO 600 0006
CALL ERTRAN<6•'@ADO•E DlSTFILE1SIGDAl , •> 0007
READ<NCR1ll NSIGH 0008
READ(NCR1ll <AMW(ll1TC<Il•PARA(ll•I=l12l 0009
READ<NCR11 l f'JOATl •NDAT2 0010
Tc< 1l=TC<1 >+273, DO 1 l
TC(2l=TC(2)+273. . 0012
READ ( NcR, 1 • EN0=600 I I OUM 0013
600 CONTINUE 001 '+
T=TG+273. 0015
IFCNSIGM1EQ,2l GO TO 300 0016
IF (PAR A( 1 ) •GT. 0. 0 ). GO T0 198 0017
IF<NOATl.GT.11 GO TO 100 0018
IF<NpHy.GToll GO TO 601 0019
CALL ERTRANC6•'@ADD•E olSTflLE•SlGOA2 , •) 0020
READ<NcR.ll Tl<l>•SIGl<ll 0021
Tl< 1 >=Tl ( 1 >+273, 0022
READINcR1ltEND=60ll IDUM 0023
601 CONTINUE 002'+
SlGA=SIGllll*C<Tc<ll-Tl/(TClll-Tl<llll••l.2 0025
GO TO 199 0026
SUBROUTINE SURTEN
100' COtlTINUE 0027
IF(NPHY.GT.t) GO TO 602 0028
CALL ERTRAN<6••@ADD•E OlSTFILE.SIGDA2 • ti 0029
READ l MCR, 1 I l T 1 (I l , SIG l ( l l , I= 1, NOA T 1 I 0030
REAO(NCR1l1END=6021 IOUM 0031
602 CONT I IJuE 0032
IFITG,GT.Tl<ll l GO TO 110 0033
SIGA=SIGllll 003'+
GO TO 199 0035
110 CONTINUE 0036
DO 10 I=l•NOATl 0037
DIFF=TG-Tl (I l 0038
IFIDIFF.LE.Q.Ol GO TO lll 0039
10 CONTINUE OO'iO
GO TO 120 OO'f 1
111 CONTINUE 00'+2
TFACT=ITllil-TGl/ITt(Il-Tlll-1 I l OO'f3
SIGA=SIGllil+ISIGllI-ll-SIGllll l•TFACT 00'+'•
GO TO l 99 OOLf.S
120 CONTINUE 00'+6
SIGA=SIGl (NDATt l OO'f 7
GO TO 199 OO'f 8
198 CO~JTINUE OO'f 9
NR=O 0050
CALL RHOLlQ<NpHy,HR1NL1NH1T~1x1RHOl•RH021RHOMl 0051
SlGA=(pARAl 1 l•RHOl/AMVJI l l >·••'+, 0052
199 CONTIMuE 0053
IFlPARAC2l.GT,O.Ol GO TO '+00 005tt
lf!NDAT2.GT,ll GO TO 200 0055
lFINPHv.GT.t) GO TO 60'+ 0056
CALL ERTRANlb•~aADD•E oISTFILE·SlGDAq • • , 0057
RE AD I I~ CR , l l T 2 I 1 l • S I G 2 I 1 l 0058
T21ll=T2111+273, 0059
READ! NCR, l, END=60il l I DLJM 0060
bOLf. CONTINUE 0061
SIGB=SIG2lll•llTCl2)-Tl/(TC12l-T211lll••t,2 0062
GO TO 299 0063
SUBROUTINE SURTEN
200 CONTINUE 006't
lFCHPHy,GT•ll GO TO 605 0065
CALL ERTRAN(6•'@ADO•E OISTFILE,SIGOAq , •> 0066
READ<NcR1l) IT2(ll151G2( II 1I=l1NuAT2) 0067
RE AD I 1\1 c R , 1 • E tl D = 6 0 5 l I DU M 0068
605 CONTINuE 0069
IF<TG.GT.T2(ll) GO TO 210 0070
SIGB=5IG21ll 0071
GO TO 299 0072
210 COMTitlUE 0073
DO 20 I=l•NOAT2 007q
DIFF=TG"'."T2! I l 0075
IF(DIFF.LE.0.0) GO TO 211 0076
20 CONTINUE 0077
GO TO 220 0078
211 CONTINUE 0079
TFACT=(T21ll•TGJ/CT2!IJ-T2<I-lll 0080
5IGB=SIG21Il+ISIG211-1 l-SIG2< I) HiTfACT 0081
GO TO 299 0082
220 CONTINUE 0083
SIGR=SIG21MOAT2l 008't
299 CONTINUE 0085
SlsM=SIGA*SlGB/lx•SIGs+< l.-xl•SIGA) 0086
GO TO 999 0087
300 COMTINUE 0088
c OpTIONAL FAcILITy FOR SySTEMS wITH C0Mp0SlTION-suRFAcE TEM5lON
C DATA KNOHN AT SOME TEMpERATURE •TBASEC•.
IrcNPHY.GT.l) GO TO 603 0089
c 'NoATA• cOMpOsITloN-suRFAcE TENSION DATA pAIRS•AT TEMpERATuRE
C TeASEC•MUST BE SUPPLIED.
SUBROUTINE SURTEN
CALL ERTRAN!6• 1 @ADD•E DISTFILE,SIGDA3 • •) 0090
READ1l'ICR1l) NDATA•TBASEC 009 1
READCNCR1l) IXS!IltSIGS(ll1I=l1NOATA) 0092
READINCR•l1END=603l IDUM 0093
603 CONTINUE 009'+
TBASE=TBASEC+273. 0095
IFCX.GT.xS<!ll GO TO 310 0096
SIGC=SIGSI 11 0097
GO TO 399 0098
310 CONTINUE 0099
DO 30 I=l•NDATA 0100
DIFF=x-xs< l) 0101
lFIDIFF•LE.O.Q) GO TO 311 0102
30 CONTINUE 0103
GO TO 320 01 01.f
311 COMTINUE 0105
XFACT=<xS<Il-Xll{XS< Il-XS!l-11) . 0106
SIGC=SIGS< I l+!SIGS( 1-11-SIGS( 11 >•xFACT 0107
GO TO 399 0108
320 CONTINUE 0109
SIGC=SIGS(Nf)ATA> 01 10
399 CONTINuE 0 111
TCP=X•TCCll+( l.-x>•TCC2l 01 12
SlGM=SIGC•(<Tcp-Tl/(TCp-TeASEll••I.2 01 1 3
GO TO 999 0l lq
LJOO CONTINUE 0l l5
NR=O 0116
1
CALL RH0Llq(NpHy1NR1NL1NH TG•X1RHOl•RH021RHOM) 0 1 17
SIGB=<pARA<2l•RH02/AMW<211••~. 0 1 18
AMWL=X•AMW<Il+(l.-Xl*AMW(Zl 0 1 19
PARSUM=X•PARAl1)+(1.-Xl*PARA(2) 0120
SIGM=<pARSUH•RHOM/AMWLl••q. 0 I 21
999 CONTINUE 0122
RETURN 0123
END 012lf
SUBROUTINE SURTEN
SUBROUTINE DlFLlQ(NpHY•NL•NHtTG•X•DL> 0001
c ROuTINE CALCULATES LIQUID DiFFuStvITy OF BINARY SOLUTIONS
C OF COMPOSITION X AT TEMPERATURE TG,
C FOR DATA REQUIRED REFER TO PACKAGE MANUAL•SECTION 3.
FORMAT< ) 0002
NCR=B 0003
IFINPHY.GT.l) GO TO 600 OOOLf
CALL ERTRANC6•'ijAOD•E DISTFILE,DLDAT • ' l 0005
REAO<NcR.ll DL121TDL 0006
TDL=:TDL+273. 0007
READINCR1l1END=600I IDUM 0008
600 CONTINUE 0009
TAG=TDL-273. 0010
T=TG+273. 0011
TA=TDL 0012
CALL VISCLINpHy•NL1NH 1 TAG•x•AMUl•AMU2•AMUMl 0013
AMU>\=AMU2 OOlq
DL=DL12/llO,••Sl 0015
CONST=DL•AMLJA/TA 0016
NpH=2 0017
CALL VISCL(NpH.NL•NHtTG•x•AMUl•AMu2•AHUMl 0018
DL=CONST•T/AMUM 0019
999 CONTINUE 0020
RETURN 0021
ENO 0022
SUBROUTINE DIFLIQ
SUBROUTINE DIFVAPINPHY1PT•TG1DVl 0001
c RouTINE CALCULATES vApOUR DIFFuSivITy OF BINARy SOLUTIONS
c OF COMPOSITION X AT TEMPERATURE TG AND TOTAL PRESSURE pT.
c FOR DATA REQUIRED REFER TO PACKAGE MANUAL•SECTION 3.
DIMENSION AM'iH2l 1TB(211VBl2) 0002
FORMAT(') 0003
NCR=8 OOO'f
lF!NpHy.GT•ll GO TO 600 0005
CALL ERTRAN(6•'~ADD•E olSTFILE•DVDAT • '> 0006
READ<NcR•l> (AMw<Il!VB(ll•Ta<Il•I=l•2l 0007
DO (O I= l • 2 0008
va< I l=VB( I )••D.333 0009
TB( I l=TBI 11+273. 0010
10 CONTI NuE 0011
READINCR1l1END:600l IDUM ooi2
600 CONTINuE 0013
T=TG+273. 001 If
P=PT/760, 0015
0 = I I A MW I 1 I + AM WI 2 ) ) I I AMW I 1 I • A M~ii I 2 l l l * • 0 • 5 0016
F=f <2.•IVBI 1 l•VBl2l )H•O.Sl/(VBI 1 l+VB(2) l l-••3• 0017
C12=1.'+7•F•I (TBI l l•TBl2l »••Q.5) 0018
Dv=< (0.0()837•B)/(p•( <vs< l >+vB<2> >••2.)) Hd lT••2.Sl/(T+Cl2l l 0019
RETURN 0020
END 0021
SUBROUTINE DlFVAP
SUBROUTINE ylSCL(NpHy•NL•NH1TG1X•AMUA•AMUB•AMUM) 0001
c ROuTINE cALcuLATES LIQulo vIScOSITIES OF SINGLE C0Mp0NENTS OR
c BINARY SOLUTIONS OF COMPOSITION X AT TEMPERATURE TG.
c FOR DETAILS REFER TO THE PACKAGE MANUAL•SEcTION 3.
DIMENSION AMUl!SOl •AMU2150l 18(2) •RH0121 0002
DIMENSION Tl!5Ql,T2150l•TC<2>•TR!2l 0003
1 FORMAT< l OOOtf
NcR=B 0005
TiG=TG 0006
T2G=TG 0007
IF<NPHY.GT.l) GO TO 611 0008
CALL ERTRAN!6••@ADD•E OlSTFILE•FMUDAl • •) 0009
READINCR1ll <Tc<I>•B<Il•l=l•2> 0010
REAO(NcR1l) NOATl•NoAT2 0011
READ<NcR.l,END=60ll IDUM 0012
601 CONTINUE 0013
DO 11 I=l•2 OOltf
TC1Il=TCCl)+273, 0015
U CONTINUE 0016
611 CONTINUE 0017
T=TG+273, 0018
DO 12 J=l •2 0019
TR( I l=TITC( I l 0020
12 CONTINUE 0021
IFIB(ll,GT.Q,Ol GO TO 198 0022
IFINPH~.GT,11 GO TO 602 0023
CALL ERTRAN<6••@ADO•E pISTFILE~FMUDA2 • •> 002'+
READ(MCR•ll (Tllil1AMUllil1I=l1NOATll 0025
READ(NCR,l,END=602l lDUM 0026
602 CONTillUE 0027
IF<TG.GT.Tl(ll) GO TO 110 0028
AMUA=AMU l ( 1) 0029
GO TO l 99 0030
SUBROUTINE VISCL
110 CONTINUE 0031
DO 10 I=l~NDATl 0032
DIFF=TG-Tl I I l 0033
lFIDIFF.LE.Q.Ol GO TO lll OQ3q
10 CONTINUE 0035
GO TO 120 0036
111 CONTIMUE 0037
TFACT=ITl(Il~TGl/ITl<Il~TllI-lll 0038
AMuA=AMUllI)+(AMul<I-ll-AMUlll) l•TFACT 0039
GO TO 199 ooqo
120 CONTIMUE ooq1
AMUA=AMU 1ItlDAT1) ooqz
GO TO 199 ooq3
198 CONTINUE ooqq
NR=O OOlf 5
CALL RHOLlo<NpHy1fiRtNL1NH•TlG•x•RHOl1RH02•RH0M) 001f6
RHO(ll=RHOl OO't 7
ALFA=Bll)•<t.-TR(lll/TRlll OO't8
AMUA=IQ,l167•(RHOI l l••o.s> )•( 10.••ALFAl 00'+9
199 CONTINUE ooso
IFIBl2l.GT.O.Ol GO TO 300 0051
lflNPHy.GT•ll GO TO 603 0052
CALL ERTRANl6•'@ADO•E DISTFILE,FMUDA3 • •l 0053
READ<NCR1ll <T2(tl •AMU21Il •I=l oNDAT2l oosi+
READINCR1l1END=603) IDUM ooss
603 CONTIMuE 0056
1FITG.GT.T21lll GO TO 210 0057
AMUB=AMU2(J> 0058
GO TO 299 0059
SUBROUTlNE VlSCL
210 CoNTIMUE 0060
DO 20 l=l•NDAT2 0061
D IFF=TG•T2 (I) 006.2
lF(DlFF.LE.o.o> GO TO 211 0063
20 coNTINuE 006'+
GO TO 220 0065
211 CONTINUE 0066
TFACT=(T2< I l-TGUIT2! I >-T2( 1-1 l) 0067
AM UA= AM U2 I I ) + I At1U2 < I .. 1 > - AM U2 ( I l ) * TFA Cl 0068
GO TO 299 0069
220 CONTINUE 0070
AMUB=AMU2(N{)AT2) 0071
299 CONTINuE 0072
AMUM=<x*IAMUA••(l,/3.l)+(l,-x>•<AMUB••(l.13,)))••3, 0073
GO TO 999 007'+
300 CONTINUE 0075
NR=O 0076
CALL RHOLIQ!NpHy,NR1NL,NH•T2G•X•RHOl•RH02•RH0M> 0077
RH0<.2l=RH02 0078
ALFA=B<2>*11.-TR12ll/TR(2l 0079
AMUA=IO. l 167•(RH0!2)••o.s> )•( 10.••ALFB) 0080
AMuM=<x•IAMuA••<l.13,l 1+11.-x>•(AMUD••(l,/J,)) 1••3. 0081
999 CONTINUE 0082
RETURN 0083
END OOB't
SUBROUTINE viscl.
SUBROUTINE vrscv<NPHY•TG•Y•AMUM> 0001
c ROuTINE cALcuLATES vApOUR vIScOSITIES OF sINARy SOLuTIQNS
c OF COMPOSITION X AT TEMPERATURE TG.
c FOR DATA REQUIRED REFER TO PACKAGE MANUAL•SECTION 3.
DIMEMSIOfJ AMUl (5Dl 1AMU21SOl •AMUVl2) •AMVH2> 0002
DIMENSION Tl(5Ql ,T2150) •TBl21 •VBl2l •YI 121 0003
FORMAT< l OOOLf
NCR=8 0005
YI!l>=Y 0006
YI!2l=l,-Y 0007
lFOJpHy.GT.t) C;lO TO 601 0008
CALL ERTRAN(6•'@ADD•E oisTFILE•VMUDAl • •1 0009
READOICR• l l IAMW( J l oVBI I l •TB< I I• I=l •2> 0010
R[AD(MCR,ll NOAT1,NDAT2 001 1
TBI 1!=TB<1 )+273, 0012
TBl2l=TBl2>+273. 0013
REAOINcR•ltEN0=601l IDuM 001'+
60 I CONT I NuE 0015
T=TG+273. 0016
IFIVB(l).GT,O.Ol GO TO 199 0017
IF!NpHy,GT.11 GO TO 602 0018
CALL ERTRANl6•'@ADD•E oISTFILE•vMuDA2 • ') 0019
REAOINCR•ll CTllll1AMUllil•l=l1NDATll 0020
READINcRol1END=602) IDUM 0021
602 CONTINUE 0022
IF!TG.GT,Tl~lll GO TO llO 0023
AMUVll)=AMllllll 002Lf
GO TO 199 0025
SUBROUTINE viscv
110 CONTINUE 0026
DO 10 t=t•MDAT1 0027
D IFF=TG-T 1 ! I) 0028
IFIDIFF.LE.o.o> GO TO 111 0029
l 0 C 0 ti T I ti U E 0030
GO TO 120 0031
111 CO~JT I tHJE 0032
TFACT=ITl(l)-TGJ/CTlll)-Tl(I-ll > 0033
AMUVCl>=AMUl(lJ+(AMul<I-11-AMUl(l))*TFACT 003Lf
GO TO 199 0035
120 COMTINuE 0036
AMUVlll=AMUl(NOATll 0037
199 CONT IMuE 0038
IFIVBl2).GT.O.Ol GO TO 300 0039
IFINpHy.GT•ll GO TO 603 OOLfO
CALL ERTRAN(6•'@ADD•E DlSTFILE,vMUOA3 • •> OOLfl
-RE AD CNCR 1 1 ) ( T 2 I l l • AM U 2 I I I ' I 1 t ND AT 2 I
= 00'+2
READCNCR,l1END=6031 lDUM OOLf 3
603 CONTINUE ooqq
IFITG.GT.T2<lll GO TO 210 00'+5
AMUV I 2 I =AMU2 ( l l OO'H,,
GO TO 999 OOLf 7
210 CONTINUE 00'+8
DO 20 I=l•NDAT2 00Lf9
DIFF=TG-T21 I l ooso
lFlDIFF,LE.O.Ol GO TO 211 0051
20 CQNTIMuE 0052
GO TO 220 0053
SUBROUTINE viscv
2 1 1 CONTINUE OOSq.
TFACT=<T2(ll-TGl/(T2(ll-T2Cl-lll 0055
AMUV I 2 l AMU 2 ( I l + ( AMU 2 I I • 1 ) - /\MU 2 I I l ) •Tr: ACT
= 0056
GO TO 999 0057
220 COMTIMuE 0058
AMUVl21=AMU2tNDAT2l 0059
GO TO 999 0060
300 CONTINUE 0061
DO 30 I= 1 • 2 0062
FAcT1=27.•IAMW<I>••o.Sl•IT••1.s> 0063
FAcT2=<vs< I l••0,667),•(T+l ,Lf7•Ts< I l) 006lf
AHUV(Il=FACTl/FACT2 0065
30 CONT t r1uE 0066
999 CONTirJUE 0067
SUMA=O,O 0068
SUMB=O,O 0069
DO 90 I= 1 • 2 0070
SuMA=SuMA+yI<l>•<AMw<I>••O.Sl•AMUv<I> 0071
SuMB=SuMB+Yl (I l•!AMWI I J••0.51 0072
90 CONTINUE 0073
AMUM=SUMA/SLJMB ,007lf
RETURN 0075
END 0076
SUBROUTINE vJscv
SUBROUTINE RHOH20(NpHy,T,RH0) 0001
c RouTINE CALCULATES oENS!Ty OF wATER AT TEHpERATuRE T.
C A SET OF NOATA TEMPERATURE-DENSITY DATA PAIRS MUST BE 5UPPL,IED.
D I ME ti S I 0 N RH 0 W< 2 0 0 l 1 Tri ( 2 0 0 l 0002
1 FORMAT C l 0003
NcR=8 0001.J
lFCNpHy.GToll GO TO bDO 0005
CALL ERTRAN(6••~ADD•E olSTFILE,H20RHO , •l 0006
READ(NCR1ll NDATA 0007
REAo<NcR1ll <Tw<Il1RHOw<Il1I=l1NOATA> 0008
READINCR1l1END=600I IDUM 0009
600 CONTINUE 0010
IFIT·GT.Tnl 11 l GO TO 100 00 l l
RHO=RHOWI ll 001.2
GO TO 999 0013
100 CONTINUE 001'+
DO 10 l=l•NDATA 0015
DIFF=T-Tw<Il 0016
IFCDIFF.LE•O•OI GO TO 111 0017
10 CONTINUE 0018
GO TO 120 0019
Ill CONTINUE 0020
TFACT=CTWIIl-Tl/ITWCil-TWlI-ll) 0021
RHO;:;RHOW( I l+<RHOW( I-I 1-RHOW( I l l•TfACT 0022
~O TO 999 0023
120 CONTINUE 002'+
RHO=RHOW(NOATA! 0025
999 CONTINUE 0026
RETURN 0027
END 0028
SUBROUTINE RHOH20
c DJMENSION AND COMMON BLOCK 'MULTICOM' FOR MULTICOMPONENT Dl5TILLATIQN
c PROGRAM,
PARAMETER MC=30 0001
PARAMETER MP=S3 0002
DIMENSION A<MC•Mpl •ANIMCl •AKl (MCI •AK21MCl •AK3(MCl •AKLf<MCl 0003
DIMENSION B<MCl •BDIMCl •BN(MCl •CNIMCl •DIMCl OOOtt
DIMENSION EFFv<MC•Mpl •HLIQ(MPl tHVAP(MPl 'KIMC•MPl •KFIMc> 0005·
Dl~·1ENSION HLl IMC) diL2<t1Cl •HL3<Mcl •Hvl IMC) •Hv2<Mcl •Hv3<Mc> 0006
DIMENSION LB<MC•Mpl •LD<MC•Mpl •LMFRIMC•Mpl •LRTOT(Mpl •LSTOT<Mpl 0007
DIMENSION LpROF{Mpl tpRESS<Mpl tpRES<Mpl t5(MCd1PI tSLIQ(MPl .svAP<Mpl 0008
DIMENSION TEMP(HPltTITL.ES<MC•Sl 0009
DIMENSION VB(MC•MPl ·vD<MC•MPl •vMFR(MC•MPl ·vRTOT(MPl •VSTOT<Mpl 0010
DIMENSION VPROFIMPl •X<MC•MPl •XF<MCl •YIMC•MPl ,yf(MCI •Z<MCl 00 l l
COMMON A1ACCLIM•AKBl•AKB2•AKB3,AKRLf•AKl•AK2•AKl•AKLf•ALIQtANeAVAP 0012
COMMON BtBD•BM·BN•BTOT 0013
COMMON CN•D•DELTAC1DELTAP•DM•DTOT•EFFV1FENTH1FTOT OOltt
COMMON HD•HFEED•HLIQ1HLl•HL2•HL31HVAP•HVl•HV2•HV3 0015
COMMON ICDUNT•K•KF•LB•LD•LMFR•LPROF•LRTOT•LSTOT•MEFF 0016
COMMON NC•NcOMO•NENTH•NEQUIL1NF•NFl•NF2•NJ1NOWN•NP1NP1•NP2 0017
COMMON NQVAL1NUMl•NUM21NUM3 0018
CO~MOM NCR•NGl1NG2tNG3,NGq•NLPeNTp 0019
COMMON PCONOtPRESS•pRES 0020
COMMON Q•QC•QF1QR 0021
COMMON RR•S1SLIQ•SVAP 0022
COMMON .TeOTtTEMP•TFEED1THETAtTITLES•TTQp 0023
COMMON VB'VD•VMFR•vpROF•vRTOT•vSTOT 002tt
COMMON X•XF•Y•YF1Z 0025
COMMON 'MULTICOM•
C MAINLINE PROGRAM FOR SOLUTION OF MULTICOMPONENT DISTILLATION
C PROBLEMS BY THE THIELE-GEDDES METHOD.
c THE HOLLAND tTliETA• METHOD IS usEo TO ACCELERATE CONVERGENCE.
c FOR FURTHER DETAILS REFER TO THE OlSTILLATION-pAcKAGE uSER•S MANuAL•
C DEpARTMENT OF CHEMICAL ENGINEERING•UNivERSITY OF CApE TOWN•
cC ••••••••••••••••••••••••••••••••••••••••••••••••••
INSERT DIMENSION ANO COMMON BLOCK 'MULTICOM' HERE.
c ••••••••••••••••••••••••••••••••••••••••••••••••••
DIMENSION COMpNOIMCI ,TRAyNOlMpl 0001
REAL K•KF'LHFR1LRTOT1LSTOT•LD•LB•LpROF 0002
1 FORMAT( ) 0003.
2 FORMAT<A3l oooq
3 FORMATISA6l 0005
DATA luSEAl tluSEA2dusEal/l •0• l/ 0006
DATA MCAN•MTIMES1NCODE1NTIME1NOUT•NOwN/l,1.q.1.o.01 0007
DATA NCR•NGl •NG2tflG31NGq•NLP•NTp/8112• l31l't•15, lb•S/ 0008
c
C READ IN DATA *************************************************************
c
WHITE(NTP•sooO) 0009
5000 FORMAT1/T21tAN5~ER ALL QUESTIONS YES OR NO.tt/T2,•ALL INPUT IN FRE 0010
lE FORMAT.•.;1T21•no you KNOW HOW TO USE THIS PROGRAM?•) 00 l 1
READINCR•2> ANAME 0012
lF(ANAME.EQ.'YE5'l GO TO 501 0013
CALL TEACHCNCODEl 001q
GO TO 902 0015
501 CONTINUE 0016
WRITEINTP•SOOll 0017
5001 FORMATt/T2.•oo YOU WANT To ADD A oATA ELEMENT?') 0018
READINCR•2) CNAME 0019
IF<CNAME.EQ.'No'l GO To 502 0020
MCAN=2 0021
WRITEINTP•5002> 0022
5002 FORMATl/T2,•Aon YOUR DATA ELEMENT.•> 0023
502 CONTINUE 002'+
MAINLINE MULCQM
c
CALL READlN(MCAN) 0025
IF<NJ.GT.999> GO TO 902 0026
c
C •DO• LOOpS 51 ANO 52 SET UP ARRAYS REQUIRED FOR WRITING DATA TO
C FILE FOR PLOTTING PURPOSES.
SUMTN=O~ 0027
DO 51 J=l•Np2 0028
TRAYNO<Jl=SuMTN 0029
SUMTN=SUMTN+l. 0030
51 CONTINUE 0031
SUMCN=O. 0032
DO 52 I=l•NC 0033
SUHCN=SUMCN+l. 0031.f
COMPNO<I l=SUMCN 0035
52 coNTINuE 0036
1115 CONTINUE 0037
c
C START OF RUN *************************************************************
c
C READ RUN VARIABLES *******************************************************
c
ICOUNT=l 0038
WRITE<NTP•SOll) 0039
5011 FORMAT(/T21 1 TO pRocEEo.TypE GO OR TO STOp THE PROGRAM.TYPE ENo.•1 00'+0
READlNCR12) RU¥ 00'+ 1
lF<RuN.EQ.'END'l GO TO 901 OD'i2
WRITEINTp•5012l 00'+3
5012 FORMAT(/T2,•ENTER RUN NO. AS: NO.•DAY1MONTH• (INTEGER VALUES>'> OO'i 'i
READINCR,1> NUMl•NUM2•NUM3 OO'iS
1FlNUM2oGE,32.oR,NUM3.GE.131 GO TO 991 OO't6
lF!MTlMES,EQ•ll GO TO 515 OO't7
WRITEINTP•5013l . OO't8
5013 FORNAT!/T2,•ENTER REFLUX RATIO AND DISTILLATE RATE FOR NEw RUN.•) OO't9
READ(NCR1l l RR•DTOT 0050
MAINLINE MUl.,.COM
WRITEINTP•SOtql 0051
so1q FORHATtT2•'ENTER FEED TEMpERATuRE. (DEG C)') 0052
REAO(NCRtll TFEED 0053
NQVAL=l oosq
IF<NENTH.EQ:o1 GO TO s1q ooss
WRITEINTP•SOlS) 0056
5015 F0RMAT(T2•'IS rEEo pREssuRE GREATER THAN COLUMN pRESSuRE?•) 0057
READ<NcR,2l FPRES 0058
IF<FPRES.EQ,•No•1 GO TO s1q 0059
WRITE(NTP•S016) 0060
5016 FORMAT<T2•'ENTER FEED ENTHALPY• (KJIKGMDLEl'l 0061
REAO(NCRtll FENTH 0062
NQVAL=2 0063
Slq CONTINUE 006q
WRITElNTp•S017l 0065
5017 FORMAT<T2•'ENTER FEEo TRAy pOSN. <NO· FROM 90TTOM•REaOlLER=D>'> 0066
READINCR,ll NF 0067
NFl=NF+l 0068
Nf2=NF+2 0069
515 CONTINuE 0070
IFIRR.LE.0.1 GO TO 991 0071
WRITE(NTp•Sllll 0072
5111 FORMAT(//T2•'START OF COMPUTATION,') 0073
C INITIAL TEMpERATuRE pROFILE **********************************************
DELTAT=ITBOT-TTQpl/Npl 007q
DO 53 J=l•Np2 0075
TEMPCJl=TBOT-IJ-ll•DELTAT 0076
53 CONTINUE 0077
C TRAY PRESSURE PROFILE ****************************************************
IFIHTIMES.GT.ll GO TO 516 0078
PRESSlNPll=pCOND+DELTAC 0079
PRESSINP2l=pCOND 0080
NcOUNT=O 0081
DO S.tt J=NPtl1-l 0082
NCOUNT=NCOUNT+l 0083
PRESS(Jl=PRESS<Npll+NCOUNT•DELTAP 008'i
sq CONTINUE 0085
Slb CONTINUE 0086
MTIMES=MTIMES+l 0087
MAINLINE MULCOM
c
c FLASH CALCULATION TO DETERMINE FEED CONDITION
CALL WFLASH(NTIHE1TDEWPT1 ···················-········
0088
IF(NJ.GT,999) GO TO 902 0089
c
c INITIAL VAPOUR & LIQUID FLOW RATES IN COLUMN •••••••••••••••••••••••••••••
CALL FLOWEQ 0090
IFINJ.GT.999l GO TO 902 0091
c
1111 CONTINUE 0092
c
C START OF ITERATIONS FORCING Tt!ETA TO UNITY *******************************
c
C CALCULATION OF EQUILIBRIUM CONSTANTS ***************••**~*****************
NEQ=3 0093
CALL EQl,JCON(NEQI 009't
c
c ENTHALPY CONSIDERATIONS IGNORED FOR FIRST TWO ITERATIONS
IF( ICOUNT.GT,21 GO TO 111 0095
GO TO 112 0096.
c
c ENTHALPY CALCULATIONS AND VAPOUR & LIQUID FLOWRATE CORRECTION ************
111
CONTINUE , 0097
IFINENTH.EQ.Ol GO TO 112 0098
C ENTHALPY CALCULATIONS ***********~*******************•*****~**************
NEN=l 0099
TDEWP=TDEWPT 0100
lf(TFEED·LT.ToEwpTI TDEwp=TFEEo 0101
lF(NOWN.EQ•l> CALL ENERGy(TBURP•ToEWP•NEN•SltS2•S3tS4) 0102
lp!NOwN.EQ·2) CALL ENTHAL<ALIQ1AVAP•BM•DM•aTOTtOTOT•FTOT•HD•HFEE01 0103
lHLIQ1HvAp•Nc1NFl,Npl1Np21NcOND1QC•qF•QR•TEMp•vRTOTtx•xF•Y•YftTBUBP 01oq
2•TDEWP1TFEED•NEN1Sl1S215315q,NTIME1MC•MP) 0105
c REcALCuLATI~N OF FLOwRATEs <'NoN-EQUlMOLAR OvERFLOWl ••••••••••••••••••••••
CALL FLOWNE 0106
IF(NJ.GT.999> GO TO 902 0107
112 CONTINUE 0108
MAINLINE MULCOM
c
c ASSDRPTION & STRIPPING FACTORS *******************************************
CALL ABSTRP 0109
c
c VtI>tBtl> & L(ll/~II> RATIOS****•***•*•**********************************
CALL VBLB(LB1NC1NFI1S1VB1MC•MPJ 0110
c
c V(l)/DI l) & Lill/DI Il RATIOS*********************************************
CALL VDLO(AtLD1MC•NF2•NPl•NP21VD•MCtMP> 0111
c
c CALCULATED B<ll/Dlll RATIOS**********************************************
CALL BDCALC1A•BD101FTOT•LB1NC•NFl1SUMDI1VD1Z1M(1MP1 0112
ERRD:DTOT-SUMDI 0113
c
c •THETA t CONVERGEIJCE TECHNIQUE ••••••••••••••••••••••••••••••••••••••••••••
CALL THECAL 0 1 1 '+
WRITEINTP•lOOOl THETA 01 15
1000 FORMATIT2•'THETA='•fl2.ql 0 l 16
IFIABS<THETAl.GT.10000,) GO TO 115 01 1 7
c
c CHECK CONVERGENCE (THETA= 1.) ***********************•********************
ERROR=1.-THETA 0118
lf(ABSIERROR>.LE.ACCLIMI GO TO 1112 0119
1F(ABSIERRD>·LE.ACCLIM•AND.A6S(ERRORJ.LE•0•0001> GO TO 1112 0120
GO TO 116 0121
115 CONTJNUE 0122
THETA=lDOOO, 0123
116 CONTINUE 012lf
c
C CORR~CTED B1I11D1Il RATIOS AND Bil) & O<I> VA!...UES ••·••••*•*•*••••••·•••·••••
CALL BDCORR1B•BD1D1FTOT•NC1SLlQ1SUMDtSUMB•THETA•Z•MC1MFl 0125
DO 11 I=l •NC 0126
Xll•NP2l=O<Il/SlJMD 0127
X<I•l>=Blll/SUMB 0128
11 CONTINUE 0129
MAINLINE MulCQM
c
C STRIPPING SECTION: CORRECTED VAPOUR & LIQUID MOLAR FLOWRATES,
CALL VLSTRP 0130
c
c REcTIFyING SECTlON: ·CORRECTED VAPOUR & LIQUID MOLAR fLOWRATES.
CALL VLRECT 0 13 1
c
NFOO=NP1 Dt32
IF<MEFF.EQ.O,OR,NCOND.GT.l) GO TO 117 0133
GO TO 118 013q
117 NPl=NP2 Ol3S
GO TO 119 0136
118 CONTINUE 0137
C FOR INEFFICIENT SySTEMS A TOTAL CONDENSER IS ASSUMED TO BE pERFECT•
c FOR sucH CASES THE coNoENSER TEMpERATuRE IS CALCULATED HERE ••••••••••••••
MMD=2 0138
CALL oEwcAL(Np2•MMD•TDEwp> 0139
To=TEMP<NP2l Qlqo
CALL BUBCAl!Np2•MMD•TBUBpl 01q1
TEMP(Np2l=(TD+TEMP<Np2l l/2, Olq2
c NEw TEMpERATuRE pROFILE THROUGH THE COLUMN •••••••••••••••••••••••••••••••
119 CONTINUE 01q3
DO 12 J=l•NPI Olqq
MMD=l 01q5
CALL DEWCALIJ•MMO•TDEWPl Olq6
TD=TEMP<Jl 01q7
CALL BUBCALIJ•MMD•TBUBPl 01qa
TEMPIJl=<TD+TEMPIJll/2. 01q9
12 CONTINUE 01so
NPl=NFDO 0151
ICOUNT=ICOUNT+l 0152
c HAxlMUM OF 30 ITERATIONS ALLOWED FOR cONyERGENcE.
IFCICOUNT.GE•30l GO TO 1112 0153
C RETURN FOR NEXT ITERATION *•************************************~*********
GO TO 1111 OlSq
1112 CONTINUE 0155
WRITEINTP•5112) 0156
5112 FORMATl/T2.•coHPUTATION COMPLETE.•,/) 0157
MAINLlNE MULCOM
C WRITE RESULTS TO TERMINAL ************************************************
CALL RUNRES 0158
c
C RETURN FOR NEXT R!JN WHEN NO DETAILED RESULTS ARE REQUIRED ****************
IF(NOUT.GE.S) GO TO 1115 0159
WRITEINTP•S018l 0160
5018 FORMAT!//T2.•oo you wANT A FULL PRINT-our?•) 0161
REAOINCR,2l pROUT 0162
lF<PROuT.EQ.'NO'f GO To 1115 0163
NOUT=NOUT+l 016q
IF(NOUT,EQ.51 WRITE<NTP•8091l 0165
8091 FORMAT<T2•'THIS IS THE LAST FULL pRINT-OuT FOR THIS ExECUTION.•) 0166
c
C PRINTOUT OF DETAILED RESULTS *********************************************
CALL ouTpUT(ERROR•ERRDl 0167
c
c WRITE TO FILE FOR GRAPHICAL OUTPUT
8080 FORMAT!A'f l *****••································
0168
B081 FORMAT<3I'+l 0169
8082 FORMATl2Fl0,2l 0170
8083 FQRMAT<FI0.2,F7,4l 0171
IuSEA2:::IuSEA2+2 0172
VPROF<MP2l=OTOT 0173
PRD='[)ATA' 0 1 7 '+
WRITE<NG1•8080l PRO 0175
WRlTEtNGl•B081) NPZ• lUSEAl • IUSEA2 0176
WRITE<NG1•80821 <TEMPIJI 1TRAYNO<Jl •J=Np21 l1-l) 0177
WRITElNG2•8080l PRO 0178
WRITE!NG2•8081 I Np21IUSEBl11USEA2 0179
WRlTE<NG2•8082l <LPROF(Jl •TRAYNO(J > •J=NP2• l •-1 I 0180
IUSE82=IUSEA2-1 0181
WRlTEING2•B080l PRO 0182
WRlTElNG2•8081) NP2•1USEB11IUSEB2 0183
WRITE<NG2•8U82l lVPROFCJ) •TRAYNOIJl •J=NP2• l ••l l 018'+
WRITE(MG3•8080) PRD 0185
WRITElNG3•8QBll MC•IUSEAl•IUSEA2 0186
WRITElMG3•8083> (COMPNO< I) •XC l 1NP2l •I:::! •NCI 0187
MAINl,.lNE MULCOM
IUSEl=l 0188
1usEJ=1 0189
DO 86 I=l•Nc 0190
WRITElNG4•8080) PRD 0191
WRITEING4•80811 NP2•IUSEl•IUSE3 0192
WRITEING4•8083l ITRAyNO<Jl •Xll1J>•J=Np2•l•·l> 0193
IusE3=IuSE3+1 0194
86 CONTINuE 0195
c RETURN FOR NExT RUN AFTER wRITING FULL RESuLTS TO FILES ••••••••••••••••••
GO TO 1115 0196
c
C ERROR MESSAGES AND TERMINATION ROUTINES **********************************
991 CONTINUE 0197
WRITE<MTP•99lll 0198
9911 FORMAT<IT2•'DATA NOT AcCEpTABLE,'l 0199
WR I TE ( tJ Tp • 9 9 1 2 I 0200
9912 FORMATl/T21 1 lLLEGAL SPECIFlcATION ENcouNTERED'•IT2, 0201
l'REFER To THE USER MANuAL FOR THE CORRECT pROCEDuRE••1/T2· 0202
2'AND START THE PROGRAM AGAIN°'I 0203
CALL ERTRANl6••@Aoo olSTFILE•FlNISH • I ) 0201.f
GO TO 999 0205
901 CONTINUE 0206
w. R I TE ( rn p • 9 9 0 l ) 0207
9901 FORMAT(/T2.•succESSFUL ExEcuTlON cOHPLETEo,•> 0208
lFINOUT.LTol> GO TO 902 0209
WRITECNTp~9902l 0210
9902 FORMATl/T21•To SENo FULL pRINT-ouT TO LINE pRINTER1ENTER THE'• 02 1 1
l/T2•'FOLLDwING 'OMHANos:•1/T2•'@ADD DlSTflLE~pRT'•/T2t 0212
2 ' 01 ED 1 U p R I NT 0 lJ T • ' ' IT 2 ' 1 PR I NT ! ' ,- IT 2 ' ' 0 MI T' • IT 2 • ' @A 0 D O l ST F l LE • p R2 ' ) 0213
WRtTEINTP•9903l 02 1 'i
9903 fORMAy11r2,•COLLECT FULL PR1Nr-OUy FROM COMPUTER C[NTRE.'l 0215
902 CONTIMUE 0216
IFINOUT.LT•ll CALL ERTRAN(6•'iADO DlSTFlLEoFINISH • '> 0217
999 COMTINuE 0218
WRITEINTP•9999) 0219
9999 FORMATl/T2,•END OF pROGRAM•'•//l 0220
STOP 0221
END 0222
MAINLINE MULCOM
SUBROUTINE READINtMCAN> 0001
c ROuTIME fOR READING oATA FROM EITHER FILE OR TERMINAL•FOR
C MULTICOMPONENT DISTILLATION PROBLEMS,
cC ••••••••••••••••••••••••••••••••••••••••••••••••••
INSERT DIMENSION AND COMMON BLOCK 'MULTICOM' HERE,
c ••••••••••••••••••••••••••••••••••••••••••••••••••
DIMENSION Fl(Sl •F"2<Sl •f315l •F't!Sl •Ul<1ll 1U2('tl •U3('t) •LJ'H'tl 0002
REAL K•LMFR•LRTOT•LSTOT•LD•LB•LPR0f 0003
DATA Fl/•@ASG•UP .•F17 • 'I OOO<r
DATA F2/'@ASG•UP .•Fl7 • 'I 0005
DATA F3/'@ASG•UP 0 •F17 • 'I 0006
DATA F't/'@ASG•UP .•F17 • 'I 0007
DATA u11•ausE 121 • ! •/ 0008
DATA u2/'@USE 131 , , t/ 0009
DATA U3/•ausE l'tt • ' •/ 0010
DATA Uq/•@usE 15· • • 'I 00 1 l
1 FORMAT! ) 0012
2 FORMAT!A3l 0013
3 FORMAT(5A6) 001'+
't FORMATt't(A611Xl) 0015
DATA ATM1FAcTPl•FAcTp2/l't.6961Sl.7l't752•7.S0061683/ 0016
IFlMCAN.EQ.11 WRITE<NTP•lDOll 0017
1001 FORMATCT2•'ENTER ALL DATA IN FREE FDRMAT.•1/T21•ENTER NO• OF COMPO 0018
lNENTS IN FEED.•) 0019
READ (NCR, 1) NC 0020
IFIMCAN.EQ•ll WRITE<NTP•l002) 0021
1002 FORMAT!T2•'EllTER NO, OF TRAYS IN (0lUMN,••/T2••ExCLUDE CONDENSER A 0022
lMD REBOILER.' l 0023
READlNCR1ll NP 002'+
SUBROUTINE READIN
IF<MCAN.EQ. ll WRITE1NTP•lOD3) 0025
1003 FORMAT<T2•tENTER FEED TRAY POSN. !NO. FROM BOTTOM•REBOILER=Oltl 0026
READ<NCR1ll NF 0027
Npl=NP+l 0028
Np2=NP+2 0029
NFI=NF+l 0030
NF2=NF+2 0031
1FINC.GT•MC.OR.Np2.GE.Mp) GO TO 902 . 0032
IFIMCAN.EQ.ll WRITEINTP•lDQq) ·0033
1004 FORMAT(T4•'AccEpTEo pRESsuRE uNITs: l=MHHG•2=pSIG•3=psIAt4=KPA·S=A 0034
1TM•'•/T2.'ENTER coNoENsER PRESSURE AND UNIT cooE. !EG. 760.0tll'l 0035
READINCR1ll PCONDA•NUNJTp ·0036
IFINUNITp,EQ•l> PCOND=PCONDA 0037
IF<NuNITp.EQ·2l PCONo=<pcONOA•ATMl•FAcTpl 0038
lFINUNITp.EQ·3l PCOND=PCONDA*FACTPl -0039
lFINUNITp,EQ,4) PCOND=pCONDA*FAcTp2 DO'iO
lF<NuNITp.EQo5) PCOND=pCONoA•ATM•FACTpl 0041
IFIMCAN.EQ·ll WRITE!NTP•l005) OO'i2
1005 FORMAT!T4•'AccEpTEo pRESsuRE DROp uNtrs: l=MMHG•2=psI.3=KpA'• 00'+3
l/T2•'ENTER pRESSURE DROP pER TRAy AND uNIT cooE.•l OO'i4
READINcR,ll DELTPD•NuNIPO 00'+5
lflNUNlPD•EQ•ll DELTAP=OELTPD 0046
l~INUNIPD•EQ.2l DELTAp=DELTPD*FACTPl ootn
IFINUNIPD•EQ•3> DELTAP=DELTPD*FACTP2 00 1t8
lf(MCAN.EQ·l> WRITEINTP•llOSl OO'i9
1105 FORMAT!T2•'ENTER pRESSuRE oROp AcROSS cONoENSER ANo uNIT cooE.'l 0050
READINCR,ll DELTPC•NUNIPC 0051
lflNUNipc,EQ.11 DELTAC=DELTPC 0052
IFINUNIPC•EQ.2) DELTAC=DELTPC*FACTPl 0053
IF<NUNlp(.Ey,31 DELTAC=DELTPC*FACTP2 OOS'i
SUBROUTINE READIN
IF ( MCAtJ. EQ. 1) rm I TE ( NTP' 1 006 l ooss
1006 FORMAT1Tq••ACCEPTED TEMPERATURE UNITS: l=DEG Ct2:DEG F••/T2• 0056
l'ENTER ESTIMATE OF REBOlLER AND CONDENSER TEMPERATURES WITH UNIT C 0057
20DES·'•/T2,•(EG. 100.0.1.so.o.21•> oosa
READ(NCR·l> TsOTG•NuTB1TTOpG1NuTT 0059
IF<NUTB.EQ•ll TBOT=TBOTG 0060
IF<NUTB.EQ•2l TBOT=<TBOTG-32.lll.U 0061
IFINUTT.EQ•l> TTOP=TTOpG 0062
1FlNUTT.EQ.2l TTQp=<TTOPG-32.)/1.8 0063
IFlMCAN.EQ.11 WRITE(NTptl007l 006'1
1007 FORMAT(T2•'ENTER NAMES OF COMPONENTS• (ONE pER LlNE•MAX 30 cHARAcT 0065
1 ERS EACH. I') 0066
READ< NcR, 31 (<Tl TLES <I• JI• J= 1•5 l 'I= l •NC l 0067
IF<HCAN.EQ·ll WRITEINTP•l008) 0068
1008 FORMATCT2•'ENTER FEED RATE. IKG MOLES/HR.I') 0069
REAo<NcR•ll FTQT 0070
IF!MCAN,EQ·l> WRITElNTP•l009l 0071
1009 FORHAT!T2••ENTER FEEo sTREAM C0MP0SlTioNs, (MOL FRAcT10Ns1•1 0072
READINcR1ll <z<Il•I=l•NCl 0073
lFIMCAN.EQ•l) WBITE(NTp•2ll0) 007'i
2110 FORMATIT2•'ENTER FEED TEMPERATURE. IDEG c>•I 0075
READCNcR.ll TFEEO 0076
NQVAL=l 0077
NENTH=lO 0078
IF(MCAN,EQ•ll WRITElNTp•lOlll 0079
1011 FORMAT(T2•'ARE ENTHALPY EFFECTS TO BE cONS[DEREp?'l 0080
READ(NCR•2> ENTHYP 0081
JF<ENTHYP.tii;:.'YES' l NENTH=o 0082
IFcNENTH.EQ,Ol GO TO 113 0083
IFCMCAN,EQ·ll WRITE(NTP•2llll 0084+
2111 FORHAT<T2•'1S FEED pRESSuRE GREATER THAN COLUMN pREssuRE?•) 0085
READCNCR12l FPRES 0086
SUBROUTINE READIN
IFIFPRES.EQ.'NO'l GO TO 113 0087
1FtMCAN,EQ.1> ~RIT~(NTPt2112) 0088
2112 FORMAT1T2••ENTER FEED ENTHALPY, tKJ/KGMOLE)•) 0099
READ<NcR.tl FENTH 0090
NQVAL=2 0091
113 CONTIMuE 0092
IFIMCAN.EQ•l> WRITE<NTp•lOlDl 0093
1010 FORMAT1Tq••TOTAL OR pARTIAL coNoENSER?'•/T21•ENTER TOT OR pAR.'I 009q
110 CONT HILJE 0095
READINCR12l CONTYP 0096
IF<coNTyp,NE.'TOT'·AND•CONTyp.NE.•pAR') GO TO 901 0097
lF<CONTyp.EQ.'TOT'l GO To 111 0098
NCOND=2 0099
GO TO 112 0100
111 CONTINUE 0101
NCOMD=l 0102
112 CONTINUE 0103
lFIENTHYP,NE.•yES'l GO TO 120 010'+
lf(MCAN.EQ.1) WRITEINTP• 1012) 0105
1012 lf0RMAT(T2•'D0 yOU WANT To usE yOUR owN ENTHALPY ROUTINE?') 0106
REAO(NCR,21 OWNENT 0107
lf(OWNENT 0 EG.'YES'l GO TO llq 0108
IF(MCAN.EQ.1) ~RITE(NTP•l013) 0109
1013 FORMAT(Tq•,REFER TO MANUAL•SEcTION q•FOR ENTHALPY ROUTINE cooEs,,. 0 l 10
l/T2••ENTER cooE NO• OF LIBRARY ENTHALPY ROUTINE REQUlkED•') 01l 1
READ<NcR1ll NENTH 011 2
NOVJN= 1 0 11 3
0
IF<MCAN.EQ ll WRITE<NTp•lll3l 01 l If
1 1 1 3 F o Rti AT I T2 • ' EI JT ER ENTHAl. p y DAT A AS DES CR l a ED I N THE MAMu AL.' SEC TI 0 N 0 1 15
l'i•'•/T21'0R ADD A DATA ELEMENT,•> 01 l 6
REAo<NcR·•> (HLl<Jl •HL2(Il•HL3(1>·I=l•Ncl 0 1l7
REAO(NCR•ll <Hvl<Il1Hy2(1l•Hv3<II •l=l•NCI 01 18
GO TO 120 01l9
lltt CONTINUE 0120
SUBROUTINE REAOIN
IF<MCAN.EQ·ll WRJTE(NTP•lOlql 0121
io1q FORHAT(T2••JT IS ASSUMED THAT THE ROuTINE cONFORMS TO 5pEclFlcATIO 0122
1NS'•/T2•'5ET ouT IN sEcTION q IN THE MANUAL.'l 0123
NENTH=S 012q
NOWN=2 0125
120 CONTINUE 0126
lF(MCAN,EQ.ll ~RITE(NTP•l018l 0127
1018 FORMAT<T2••ENTER EauIL· DATA AS 0ESCRI9Ep IN THE MANUAL•SEcTION q, 0128
l',/T2•'0R ADD A DATA ELEMENT.'> 0129
REAOINCR1ll NEQUIL 0130
lflNEQUlL•EQ•ll GO TO 131 0 131
lflNEQUlL.E~·3l GO TO 132 0132
GO TO 133 0133
131 CONTINUE 0 l 3 't
READINCRoll IAN!ll1RN!IltCNlll1l=l1NCl 0135
GO TO 13'f 0136
13 2 C 0 N T I JJ U E 0137
READ (NCR• l l AKB l, At<B2 • AKB3, AKBLf 0138
1 3 3 CONT I f,l u E 0139
REAO!NcR1ll IAKllll•AK21Il1AKl<Il•AKq(Jl1I=l1NC) Ol'tO
IF<NEQUIL.NE.3) GO TO I3q 01q1
. DO 10 I=l •NC 0 1 't 2
IFIA8SIA1<21Ill.LT.0.0000ll NJ=l 0 l 't3
10 CONTINUE 01qq
13Lf CONTINUE Ol'tS
IF(MCAN.EQ•l> WRITE<NTP•l019l Ol'tb
1019 FORMAT(T2•'DO you WANT To SPECIFY THE THETA covERGENcE LlMIT?'l Ol't7
READINCR12l CONLIM 0 l 't8
lF(CONLIM.EQ•'YES'l GO TO 135 01q9
ACCLIM=0.00005 0150
GO TO 136 0151
135 CONTINUE 0152
IF!MCAN.EQ.1> WRITE!NTP 1 1020l 0153
1020 FORMAT<T2•'ENTER CONyERGENCE LIMIT.'! 01sq
READ(NCR1l) ACCLIM 0155
136 CONTINUE 0156
SUBROUTINE REAOIN
IF(HCAN.EQ·l> ~RITEINTP•102ll 0157
1021 FORMATIT2•'ARE pERFEcT· TRAyS ASSUMED?•! OlSB
EFFVAP=l.O 0159
MEFF=O 0160
READ(NCR•2l EFFCRI 0161
IFIEFFCRI.E~,•YES•) GO To 137 0162
1
IFIMCAM.EQ· l l :JRITEINTP• 10221 0163
1022_F?RMAT(T2•'ADO EFFicIENcy pATA AS oEscRleEo IN THE MANuAL•SEcTION 0 l 6't
1 q •• ) 0165
READCNCR1ll MEFF 0166
IFIMEFF,EQ.2) GO TO 138 0167
REAOINcR·ll llEFFv<I•Jl•I=l•MCl•J=Mp2•1•-ll 0168
GO TO 139 0169
13R CONTINUE 0170
READ<NcR.ll (EFFv<I·ll1l=t.Hcl 0171
DO 11 I=l•Mc 0172
DO 12 J=2•Np2 0173
EVFV(I,Jl=EFFVCI,11 017'+
12 CONTIMuE 0175
11 cotJT I NUE 0176
GO TO 139 0177
137 CONTINUE 0178
DO 13 J=ldlp2 0179
DO ltf I::;! •NC 0180
EFFVCI,Jl=ErFVAP 0 l 81
1-'+ CONT I NUE 0182
13 COMTINUE 0183
139 CONTINUE 0 1 8 '+
_IFIMCAN,EQoll ~RITECNTP•102q) 0185
102q FORMATIT2•'ENTER REFLUX RATIO AND DISTILLATE WITHDRAWAL RATE.•) 0186
READINCR1ll RR·DTOT 0187
SUBROUTINE REAolN
:;1RITE<tHP• 10251 0188
1025 FORMAT(T2••DO you nANT GRAPtllCAL OUTPUT? (SEE MANUAL SECTION ql'l Ola9
READCNCRo2l .USEFl 0190
lF<lJSEFl.NE.'YES'l GO TO lttO 0191
~':IRITEOJTp• 10261 0192
1026 FORMATCT2•'DO you KNOW HOP TO USE· THE PLOT ROUTINE?•) 0193
READ<NcR.2l .USEF2 Ol9't
IF(USEr2.NE.'yES'I GO TO l'tD 0195
~JRITEIMTP• 10271 0196
1027 FORMAT(T2•'ENTER DATA-FILE NAMES· (SEE MANUAL sEcTIO~ q)•) 0197
READ<NcRolfl Fl (3) •F2(3) •F313l •Flfl3l 0198
U1(3l=Fl<3> 0199
U213l=f2(3) 0200
U3C3l=F3(3) 0201
U't(31=FlfC31 0202
CALL ERTRANl6•Fll 0203
CALL ERTRAN(6•F21 02oq
CALL ERTRAN(6oF3l 0205
CALL ERTRANC6•F'tl 0206
CALL ERTRANl6•ull 0207
CALL ERTRAtll6•u2> 0208
CALL ERTRAN<6•U3) 0209
CALL ERTRANl6•U'tl 0210
llfiJ CONTINUE 021 1
GO TO 999 0212
C ERROR MESSAGES ********•******************************************
901 CONTINUE 0213
IF<MCAN.EQ·l> WRITEINTP•9001) 02 1 If
9001 FORMAT<T2•'0NLy TOT OR PAR rs ACCEpTABLE.•,/T2.•RETypE NO~,•) 0215
GO TO 110 0216
902 COMTINuE 0217
\?.JR I TE ( NTP • 9002) 0218
9002 FORMAT(/T21 1 DIM[NSION SPECIFlcATIONS ExcEEoED.•) 0219
N,J= 1000 0220
999 CONTIMUf: 0221
RETURN 0222
END 0223
SUBROUTINE READIN
SUBROUTINE EQUCO!l < NEQ l 0001
c CALCULATION OF EQUILIBRIUM CONSTANTS.
c CHOICE Of FOUR PROCEDURES MADE BY COUNTER NEQUIL
c tll USE OF ANTOINE•S EQUATION•HENRY•S LAW AND RAOULT•S LAW•
c IE. LOGlO(PVAPl:AN-BN/ICN+T1•Y=K*X•Y:PVAP•X/PT
c pv=vApOuR pREss.pT=TOTAL PRESS•T IN DEG c
c A•B•C ARE ANTOINE CONSTS FOR C0Mp0NENT
·c 121 EQUILIBRIUM CONSTANT EXPRESSED AS A FUNCTION OF TEMPERATURE
c IE, K=EXP<AKl-AK2/T+AK3•Tl T IN DEG R
c (3) RELATivE yOLATILITy ExpRESSED As A FuNcTION OF TEMpERATuRE
c ~ITH A KEY COMPONENT EQuIL CONST AS A FuNcTION OF T•AND THE
c E9UATION: REL VOL=K(lJ/AKB (AKB:KEY COMP E9UIL CONST)
c FUNCTIONS ARE: REL VOL=AKl+AK2•T+AK3•T••2 T JN DEG F
c AKe=AKsl•AKB2•T•AKs3•T••2•AKs~•T••3 T IN DEG F
c (q) EQUILIBRIUM CoNsfANT EXPRESSED AS A FUNCTION OF TEMPERATURE
c IE. K=T•(AK1+AK2•T+AK3•T••2•AKq•T••31••3 T IN DEG R
c ••••••••••••••••••••••••••••••••••••••••••••••••••
c INSERT DIMENSION AND COMMON BLOCK 'MULTIC0M' HERE,
c ••••••••••••••••••••••••••••••••••••••••••••••••••
REAL K•KF•LMFRoLRTOTtLSTOT,LD•LB•LPROF 0002
GO TO c1on.200,300,qoo1•NEQUIL 0003
100 CONTINUE oooq
IF!NEQ.EQ 0 ll GO TO 110 0005
c CALCULATION USING OpTION Cll ABOVE•
DO 11 J=l•NP2 0006
DO 12 l=l •Nc 0007
PVAP=IO.•*<AN(Il-RN<Il/<CN<Il+TEMP<Jlll 0008
KII•Jl=pyAp•EFFV(l1Jl/pRESS(Jl 0009
12 CONT·! NUE 0010
11 CONTINUE 0011
110 CONTINUE 0012
DO 13 l=l •NC 0013
PVAP=lO,•*IANI l l-RN( I l/ICN( I l+TFEEpl) 001q
KF<ll=pVAP/pRESSCNFll 0015
13 CONTINUE 0016
GO TO 999 0017
SUBROUTINE ~QUCON
200 corn 1 NuE 0018
IFINEQ.EQ.11 GO TO 210 0019
c CALCULATION USING OpTlON ( 2) AsovE.
DO 21 J=l•tlp2 0020
Tt=TEMpljl•1,8+32.+i+S9.'+ 0021
T=Tl/loo. 0022
DO 22 I= 1 •Mc 0023
Kll•J>=ExPIAKllil•AK2(I)/T+AK31Il•Tl•iFFylI•Jl 002LJ
22 CONTINUE 0025
21 CONTINUE 0026
2 1 0 Co t.JT I NU E 0027
Tl=TFEED~t.8+32.+q59,q 0028
T=Tl/100. 0029
DO 23 I=l ttlc 0030
KFIIl=EXPIAK11Jl•AK2(Il/T+AK31Il•TI 0031
23 corH I NuE 0032
GO TO 999 0033
300 CONTINUE 003LJ
I F I NE (~ • E Q • I l Go TO 310 0035
c CALCULATIOM USING QpTION ( 3 l ABOVE'..
c CALCULATION USING OpTioN ( 3) ABOVE.
DO 31 J=l •Mp2 0036
Tl=TEMp(Jl*l•B+32. 0037
T=Tl/100. 0038
AKB=AKBl+AKB2•T+AKB3•T••2.+AKB4*T*•3, 003Y
DO 32 I= 1 •NC ooi+o
K<l•Jl=IAK11Il+AK21Il•T+AK31Il•T••2.l•AK8*EFFV<I,J) OOLfl
32 CONTHluE 0042
31 CONTINUE 00Lt3
310 CONTINUE oott If
T!=TFEED•l.8+32. 00'+5
T=Tl/lOO. OO't6
AKB=AKDl+AKR2•T+AKB3-T••2~+AKB'f•T••3. 00 '+ 7
DO 33 I= 1 •NC OOLf 8
KFI I l=<AKl (I )+AK21 I l•T•AK31 I )·:-T•*2• l•AKB OOl.f9
33 CONTINUE 0050
GO TO 999 0051
SUBROUTINE Et~ucON
'+00 CONT I fJUE 0052
IF<NEQ.EQ.l> GO TO '+10 0053
C CALCULATION USING OpTION I'+) ABOVE•
DO ttl J=l •Np2 OOS't
T1=TEMp<J>•1.a+J2.+tt59.tt ooss
T=Tl/1000. 0056
D0 '+ 2 I= l • tJ C 0057
AK=Tl•IAKl<t>•AK2<Il*T+AK3<I>•T••2.+AK'+(Il•T••3,>••3. 0058
K<I•J>=AK*EFFVll1Jl 0059
42 CONTINUE 0060
'+l CONTINUE 0061
'+10 CONTINUE 0062
Tl=TFEED•l.8+32,+'+59,'+ 0063
T:Tl/1000, 006lf
DO '+3 I=l•NC 0065
KF(Il=Tl•<AKl<Il+AK2<I>•T+AKJ<l>•T••2.+AK'+IIl•T••3,)••3, 0066
'+3 CONTINUE 0067
999 CONTINUE 0068
RETURN 0069
END 0070
SUBROUTINE EQUCON
SUBROUTINE ENERGYITBUB•TDEW•NEN•Sl•S2•S31Sql 0001
c CALCULATION OF yApOuR AND LIQUID ENTHALPY 0ATA1FEED ENTHALPY•
c CONDENSER DUTY AND REBOILER ouTy,
c CHOICE OF THREE AVAILABLE FUNCTIONS MADE BY NENTH.
c FUMCTIONS ARE:
c 1A1 H:1A+B*T+C*T••21••2 Tl IN DEG R 1NENTH:l1
c <Bl H=A+e•T+c•T••2 Tl IN DEG F <NENTH=2)
c (Cl H=A+e•T+c•T••2 Tl IN DEG R INENTH=3l
c NoTE: T=Tl/100. AND Tl Is TEMPERATURE ON TRAY N
c H = VAPOUR OR LIQUID MOLAR ENTHALPY FOR COMpONENT,
c DIFFERENT cOEFFlcIENTS ARE NEEpEo FOR EAcH pHASE.
c ••••••••••••••••••••••••••••••••••••••••••••••••••
c INSERT DIMENSlOH AND COMMON BLOCK 'MULTicDM' HERE,
c ••••••••••••••••••••••••••••••••••••••••••••••••••
'
REAL K•KF•LMFR•LRTOT1LSTOTtLD•LB•LPROF 0002
DATA CONFAC•ENCONV/0,0002777812.326/ 0003
TRA.NK=O.O 000'+
POWER=l• . 0005
IFINENTH.EQ.ll POWER=2. 0006
lFINENTH.EQ.1.oR.NENTHeEQ.3) TRANK=qs9.q 0007
lF<NEN.EQ,ll GO TO 200 0008
IFINEN.EQ,21 GO TO 103 0009
c CALCULATION OF ENTHALPY OF VAPOUR AND LIQUID STREAMS•
00 10 J=l •NP2 0010
Ti=TEMP(Jl•1~8+32.+TRANK 001 1
T=Tl/Ioo. 0012
SUMHv=o. 0013
SUMHL=O, 001 '*
DO 11 I=l•NC 0015
Hv=<Hvl (I l+Hv21 I )·•T•HvJ( I l•T••2, l•*POWER•vl l 1Jl 0016
HL=IHLl (I l+HL21 l l•T+HL3( I l *T••2·.) '**POwER•x (I •J) 0017
SuMHv=SUMHV+Hv 0018
SuMHL=SuMHL+Hl 0019
11 CONT,I NuE 0020
HVAPtJl=SUMHV•ENCONV 0021
HLIQIJl=SUMHL•ENCONV 0022
10 CONTINUE 0023
SUBROUTINE ENERGY
C CALCULATION OF CONDENSER DUTY.
HD=HLIQ(NP2) 002"1
IF<NCOND.GT.11 GO TO 102 0025
C TOTAL CONDENSER OPERATION.
QC=VRTOT1NPll*<HVAP1NPll-HLlQ(NP211 0026
GO TO 103 0027
102 CONTINUE 0028
c PARTIAL cONoENsER OpERATION.
QC:VRTOT1NPl)*HVAP1NPl1-LRTOT(NP21•HLlQ(NP21-DTOT•HVAP1NP2) 0029
l-ID=HVAP<NP2l 0030
103 CONTINUE 0031
C CALCULATION OF FEED STREAM ENTHALPY•
SUMFL=O• 0032
SUMFV=O. 0033
TJ=TFEEo•l.8+32.+TRANK 003'f
T=Tl/100. 0035
DO 12 I=l •MC 0036
Hv=<Hv11Il•Hv2<ll•T•Hv3<Il•T••2.l••POwER•yF(ll 0037
HL=IHLl(tl+HL21ll•T+HL31Il•T•*2.l••pOwER*XFlll 0038
SUMFV=SUMFV+Hv 0039
SUMFL=SUMFL+HL 00'+0
12 CONTINUE OO'H
HFEED=IAVAP/FTOT•SUMFV+ALIQ/FTOT•SUMFLl*ENCONV 00'+2
IF<NEN.EQ.2) GO TO 999 00'+3
QFTOT=FTOT•HF.EED OO'f't
c CALCULATION OF REBOILER ouTy.
QR=DTOT•HD+BTOT•HLIQ(l)+QC-QFTOT 00'+5
DM=HD+QC/DTOT 00'+6
BM=HLIQ(ll-QR/BTOT , 00'+7
C CONVERSION TO s.I. UNITS
QC:QC•CONFAC 00'+8
QR=QR•CONFAC 00'+9
QF=HFEED ooso
GO TO 999 0051
SUBROUTINE ENERGY
200 CONTINUE 0052
C CALCULATION OF ENTHALPY FOR Q VALUE DETERMINATION.
Tl:TFEED•l.8+32 0 +TRANK 0053
T=Tl/100. OOS'i
TB=(TBUB*l.8+32,+TRANKlllOO, ooss
To=<ToEw•l.8+32.+TRANKl/lOD. 0056
51=0. 0057
52=0. 0058
53=0. 0059
Slf=O. 0060
DO 21 I=l•NC 0061
HF 1 =( (HV l (I) +Hv2 (I) •T+Hv3 (I) •T••2.) ••pOWER•z ( I ) ) •ENcOtJV 0062
MF2= ( ( HL l (I) +HL2 (I) •T+HL3 (I) •T·••2.) **POWER•z ( l)) •ENcONV 0063
H V =( I H V l ( I l +t-IV 2 ( I > *TD+ H V 3 < I l *TD*• 2 • l **POWER *Z ( I l l * E NCO NV 006'+
HL=< <HLl (I l+HL2( I l•Ts+HL31 I l*TB••2. l••pOwER•z< I) l*ENcoNv 0065
Si=Sl+HFl 0066
S2=52+HF2 0067
S3=S3+rtV 0068
S<+=S'++HL 0069
21 COMTINuE 0070
999 CONTINUE 0071
RETURN 0072
END 0073
SUBROUTINE ENERGY
SUBROUTINE aFLASH(NTIME•TOEWPT> 0001
c CALCULATION OF COMPOSITION AND FLOWRATE OF THE VAPOUR ANO LIQUID
c FRACTIONS OF THE FEED STREAM·
c THE SUBROUTINE CALCULATES THE FEED STREAM Q VALUE FOR EtTHER FEED
c TEMPERATURE OR FEED ENTHALPY SPECIFICATIONS.
c IF THE SpECIFIED TEMPERATURE DOES NOT LIE WITHIN THE UUBBLE PT-
c DE~ pT RANGE1AND ENTHALPY DATA ARE NOT SUPPLIED THEN A Q VALUE
c MUST BE GIVEN.•
c THE REQUIRED PROCEDURE IS INDICATED BY THE COUNTER NQyAL~
c ••••••••••••••••••••••••••••••••••••••••••••••••••
c INSERT DIMENSION AND COMMON BLOCK 'NULTICOM' HERE.
c ••••••••••••••••••••••••••••••••••••••••••••••••••
REAL K•KF•LMfR,LRTOTtLSTOT,LD•LB•LPROF 0002
1 FORMAT< > 0003
NTYP=i 000'+
NvAP=Nc;oND 0005
SUMl=l. 0006
IT=NP2+1 0007
DO 10 I=l •Nc 0008
XF<I>=z<I> 0009
YF<l>=z<Il 0010
x<I•IT>=z!J) 00 l l
Y <I' l Tl =z (I) 0012
10 CONTINUE 0013
PRESSlIT)=PRESSlNFl> 001 '1
TEMP<ITl=TFEED 0015
M0=2 0016
CALl BUBCAL(lTtMD•TBUBpT) 0017
CALL DEWCAL ( l t .tlD • TDEWPT l 0018
GO TO ll00130Ul•NQVA~ 0019
suaROuTINE QFLASH
100 .CONTINUE 0020
c ISOBARIC FLASH CALCULATION.
IFcTFEEO.LT.TBUBPT·OR·TFEEO.GT·TDE~PT) GO TO 120 0021
Q=O. iJ 1 0022
DELQ=O.OOI 0023
MN=l 002'+
NEQ=l 0025
CALL EQUCOM(NEQl 0026
110 CONTif.JUE 0027
SUM=D. 0028
DO 11 I=l•NC 0029
XFIIl=zlill(Kflil-Q*KF(ll+Ql 0030
SuH=SLJM+xF<ll 0031
11 CONTINUE 0032
IF<ABS<SUM-SUHll.LT.0.0001) GO TO 111 0033
NCALL=2 003'+
CALL SEARCH<SuH•SuHl•Q1DELQ•MN1NCALLl 0035
GO TO 110 0036
l l 1 C 0 NT I f,J UE 0037
SUMY=O. 0038
D0 l 2 I= 1 tll C 0039
YFll>=xF<l>•KF(l) 00'+0
SUMY=SUMY+YFll) 00'+1
12 CONTINUE 00'+2
DO 13 I=l•~IC 00'+3
YF< I l=yF( I l/SUMY 00'+'+
13 CONTINUE 00'+5
AVAP=ll,-Ql•FTOT 00'+6
ALIQ=Q•FTOT 00'+7
GO TO 999 00'+8
SUBROUTINE QFLASH
120 CONTINUE 00'+9
IF<NENTH,EQ,0) GO TO 200 0050
C FEED TEMPERATURE ABOVE DEn PT OR BELOW BUBBLE PT•
NEl'I= 1 0051
IF<NO~N.EQ•l)
CALL ENERGY<TBUBPT•TOEWpT•NEN•Sl•S2•S3•Sql 0052
IF<NOwN.EQ·2> cALL ,ENTHAL(ALlQ1AvAp•BM•DM•BTOT.oTOT•FTOT·Ho•HFEED• 0053
lHLIQ•HvAP•Nc•NFl•NPl•NP2,NvAP•QC•QF•QR•TEMP•VRTOT•x•XF•Y•YF•TBUBPT 005'+
2•TDEWPT•TFEED•NEN•SltS2•SJ,5q,NTIME•MC•MP> 0055
121 CONTINUE 0056
IF(TFEED,LT,TBUBPTl GD TO 122 0057
IFINTYP.EQ.l) Q=!S3-51 )/(53-Stt> 0058
DO 15 I=l •NC 0059
XF<I>=o.o 0060
YF(I>=z<Il 0061
15 CONTINUE 0062
Av AP=FTOT 0063
ALIQ=O.O 006'+
GO TO 999 0065
122 CONTINUE 0066
IF(NTYP,EQ.ll Q=!S3-52)/(5J-Sq) 0067
DO 16 l=l•NC 0068
XFII>=z<Il 0069
YF<I>=o.o 0070
16 CONTINUE 0071
AVAP=O.O 0072
ALIQ=F'TOT 0073
GO TO 999 007'+
200 CONTINUE 0075
C USER MUST SpECIFy FEED Q VALUE IF ENTHALPY EFFECTS ARE IGNORED.
IF<TFEED.LT,TBUOPT) WRITE(NTP•2001) TBUBPT 0076
2001 FORMAT(/T21•FEED IS BELOW ITS BUBBLE POINT OF'1F8.2•lx1'DEG c•. 0077
l/T2•'ENTER FEED Q VALUE.'> 0078
lF<TFEED.GT.TDE~PTl WRlTE<NTP•2002> TDEWPT 0079
2002 FORMATC/T2o•FEED IS VAPOUR ABOVE ITS DEW POINT OF'1F8.2•lx·•DEG c• 0080
l•/T2•'ENTER FEED Q VALUE.'> 0081
READINCRtll Q 0082
NTYP=2 0083
GO TO 121 008'+
SUBROUTINE Qf~ASH
300 CONTINUE ooas
C ISENTHALPIC FLASH CALCULATION.
NEN=l 0086
IF<NOwN,EQ.1) CALL ENERGy<TBUBPTtTOEwpT•NENtSltS2•S3tS~) 0087
lF<NOwN.E9.21 CALL ENTHAL<ALIQ•AVAP•BM•DM•eTOTtDTOT•FTOTtHD•HFEEDt 0088
lHLlQ•HvAp•Nc•NFltNpltNp2.NvAP•QC•;F•QRtTEMp•vRTOT•x•xF•Y•YF•TeuapT 0089
2•TDEwPT•TFEED•NEN•Sl•S2•S3oS't•NTIME•MC•HPl 0090
1F(S3.LT•FENTH.OR.S'+•GT.FENTHI GO TO 320- 0091
FACT=U.S 0092
FV=FACT•FTOT 0093
DELF=O.l 009"t
MM=l 0095
DO 31 J=l•lOOO 0096
TFEEO=TBUBPT+FACT*ITDE~pT-TBUBPT> 0097
Fv=FACT*'FTOT 0098
FL=FTOT-FV 0099
lFIFv.1..,r.0.0.oR.FL•LT.O,Ol GO TO 901 0100
MN=l 0 101
DELT=S, 0102
310 CONTINUE 0103
NEQ=l 0 l O"t
CALL EQUCONINEQl 0105
SUMXF=Q, 0106
00
32 I=l •NC 0107
XFIIl=fTOT•zlil/(FL+FV*KFIIl) 0108
SUMXF=SUMXF+XFIIl 0109
32 CONTINUE 011 0
IFIABSISUMXF-SUMll,L,T.O.OOOll GO TO 311 01l 1
NCALL=.:2 01 12
CALL SEARCH<SuMxf•SuMloTFEED•OELT•MN•NcALL) 011 3
GO TO 310 0 1 1 '1
311 CONTINUE 0115
SUMYF=O. 0 116
DO 33 I=! •NC a 111
YFIIl=XFlll•KFlll 0 118
SUMYF=SUMYF+YF<I> 0 1 19
33 CONTINUE 0120
SUBROUTINE QFLASH
00 3q I=1•NC 0 l 21
YF! I >=YFI I l/SUflYF 0122
3'f CONTINUE 0123
AVAP=FV 012'+
ALIQ=FL 0125
Q=FL/FTOT 0126
NEN=.2 0127
lflNOwN.EQ·ll CALL ENERGylTeuapT1TDEwpT•NEN•Sl•S2•S31S'f) 0128
1FINOwN.EQ·2) CALL ENTHALlALIQ,AVAP'BM•DM•BTOT·OTOT•FTOT1Ho•HFEEo· 0129
lHLIQ•HvAp•Nc•NFltNpl.Np2,NvAP•QC•Qf•QR•TEMP•VRTOT•x•xF•Y•YF•TBUBPT 0130
2tTFEED•TFEEp1NEN•Sl•S2,S3•S~tNTIME1MC•MPl 0131
IFIABSCHFEED-FENHil.LT,O,ll GO TO 999 0132
NcALL=l 0133
CALL SEARcHCHFEEo·FENTH•FAcT·oELF•MM•NcALLl Ol3't
31 CONTINUE 0135
320 CONTINUE 0136
lF<S3,LT.FENTHl GO TO 330 0137
c FEED TEMP CALC IF FEED IS supERCOOLED AT COLUMN pRESSuRE,
TFEED=TBUAPT-1, 0138
MN=l 0139
DELT=l, 01 'tO
321 CONTINUE 01'+1
NEN=l 0 l 't 2
IFCNOWN.EQ•ll CALL ENERGY(TBUBPT•TDEWpT•NEN•Sl•S2•S3tS'f> 01'f3
lFC~O~N.EQ.21 CALL ENTHALlALIQ1AVAP•BM1DM•BTOT1DTOT•FTOT1HD•HFEED• 01'+'+
lHLlQtHVAP•Nc.NFl.NPl1Np2.NyAP•QC•Qf•QR•TEMP•VRTOT•x•xF•YtYFtTBUBPT 0 l 'tS
2•TDEWPT•TFEED•NEN•Sl•52•S31S't•NTIHE•MC•MP) 0 l't6
lfCABS!S2-FENTHl.LT.Odl GO TO 121 01 't7
NCALL=l 01'+8
CAL L S EARC HC S 2 • F EN TH' TF EE D ' DEL T •..MN, NC AI,.. L l 01 't9
GO TO 321 0150
330 CONTINUE 0 1s1
SUBROUTINE QF~ASH
c FEED TEMP CALC IF FEED Is SUPERHEATED AT COLUMN PRESSuRE·
TFEED=rDEWPT+l. 01s2
MN:l 0153
DELT:lO. 0 l Si+
331 CONTINUE 0155
NEN=l 0156
IF(NOwN.EQ·ll CALL ENERGy(TBUBPTtTOEwpT•NEN•Sl•S2•S3·s~l 0157
lF(NOwN.EQ·2l cALL ENTHAL(ALlQtAVAP•BM•DM•BTOT.oTOT•FfOT•Ho•HFEEo· 0158
lHLlQ1HvAp•N(tNFl1Np1.Np21NVAP•QC•QF•QR1TEMP•VRTOT•x•XF•Y•YF1T~UBPT 0159
2•TDEWPT•TFEED•NEN•Sl152•S31Sq•NTIME•MC•MPl 0160
lf(ABS(Sl-FENTHl.LT.O.ll GO TO 121 0161
NCALL=l 0162
CALL SEARCH!Sl•FENTH·T~EED•DELT•MN•NCALL> 0163
GO TO 331 01 6'f
C ERROR MESSAGES ***************************************************
901 CONTINUE 0165
WRITE<NTP•9001> FACT 0166
9001 FORMAT!/T21•ERROR IN FLASH cALcuLATlON.•,/T2•'SEARcH FOR FEED TEMp 0167
lERATuRE HAS FAILEp.•.IT2,•yApOuR FRAcTION OF FEEo='•F8·~·/T2t 0168
2'yALUE SHOULD LIE BETwEEN O.O AND 1,0,'l 0169
NJ=lOOO 0170
999 coNTINuE 0 171
W~ITE!NTp•qaoO) Q•TFEED•TDEwpT,TBUBPT 0172
qooo FORMAT(/T21•FEE0 Q VALUE AND TEMpERATuRE DATA:••/T2•'Q:'•FB.q• 0173
115x•'FEED TEHP:'.F8.2•1X•'DEG C'•/T21 1 0Ew pr:•,Fa.2.1x•'DEG c•,qx, 0 1 7 '+
2'BUBBLE pT:•,f8.2•lX•'DEG c•,/) 0175
RETURN 0176
END 0177
SUBROUTINE QfLASH
SUBROUTINE 0UBCALCITtMMD1TBUBI 0001
c BUBBLE POINT ROUTINE~
c FOUR CALCULATION METHODS ARE AVAILABLE. CHOICE DEPENDS ON THE
c TypE OF EQUlLIBRIUM DATA SPECIFIED.
C CHOICE MADE BY COUNTER NEQUIL.
cc ••••••••••••••••••••••••••••••••••••••••••••••••••
INSERT DIMENSION AND COMMON BLOCK 'MULTicow• HERE.
c ••• ~ ••••••••••••••••••••••••••••••••••••••••••••••
REAL K•LMFR•LRTOT•LSTOT•LD•LB•LPROF 0002
GO TO 1100,200,300,~00l•NEQUIL 0003
100 CONTtMUE OOOq
C CALCULATION USING ANTOINE CONSTANTS,
TOLD:TEMP(IT> 0005
00 11 KTIMES=l,1000 0006
ASUM=PRESSIIT> 0007
BSUM=O.O 0008
DO 12 I=t •Nc 0009
EFF=EFFV (I• IT I 0010
lFIMMD·GT.ll EFF=l.O 00 1 l
ANT=ANlt>-eN<Il/CcNll)+TOLDI 0012
ASUM=AsuM~xll•IT)•EFF*lD.••ANT 0013
BSQ=2.30.3*BN< I l/( lCN( I l+TOLOl••2· I OOlq
BSUM=BSUM+X(l•ITl•EFF*BSQ•lO.••ANT 0015
12 CONTINUE 0016
DIV=ASUM/BSUM 0017
lFIABSCDIV>.LE.O.OOll GO TO 110 0018
TQL,.O=TOLD+OIV 0019
IF<TOLD.LT.O.Sl GO TO 999 0020
11 CONTINUE 0021
110 CONTINUE 0022
c CHANGE IN TEMPERATURE FROM ONE ITERATION To THE NExT lS RESTRICTED
C T 0 H AL F HIE C AL CUL AT ED CHANG E •
TBUB=TOLD 0023
DIFF=TEMP<IT>-TOLD OD2Af
lF<DlFFl 113,llq,113 0025
113 TEHPllTl=TOLD+DlFF/2. 0026
GO TO 999 0027
llq TEMPIITl=TOLO 0028
GO TO 999 0029
SUBROUTINE BUBCAL
200 CONTINUE 0030
C CALCULATIOM USING EQUILIBRIUM CONSTANT PATA•AS SPECIFIED BY
C SUBROUTINE •EQUCOl.I• (OPTION (2) IN EQUCON).
TOLD:TEMP(IT>•1.a+J2.+qs9,q 0031
250 CONTINUE 0032
TOLDl=TOLD/100. 0033
SuM=O. 003q
SUMD=O. 0035
DO 21 I=l •NC 0036
EFF=EFFV (I, IT) 0037
IFIMMD.GT.tl EFF=l.O 0038
AL.FA= EXP ( AK 1 I I > .. AK 2 ( I l IT OLD l +AK 3 < I >*'TOLD 1 >* EFF 0039
0A=AK3< l l+AK2< I )/ITOLD1*•2. > OO'fO
DALFA=CExP<AKl<I>-A1<2(I)/TOLol+AK31l)•T0LDl))•oA•EfF OO'fl
SUM=SUM+<XlltlTl•ALFAl OO'f2
SuMD=SuMD+(x(I,IT>•aALFAI OO'f3
21 CONT IMUE OO'f 'f
FUNCT=SUM-1. OO'tS
FuNCTO=SuMD OO'f6
orv=FUNCT/FuNCTD OOlf 7
IflABSIDIVl,LT.O.OOll GO TO 210 OO't8
TOLD=TOLO-DIV OO'f 9
GO TO 250 ooso
210 TNEW=ITOLD-32 ... q59.q)/l.8 0051
c CHANGE IN TEMpERATuRE FROM ONE ITERATION To THE NExT IS RESTRICTED
C TO HALF ·THE CAL,.CULATED CHANGE.
TBUB=HIE~' 0052
DlFF=TEMPIITl-TNEn 0053
lF(DIFFl 211,212,211 OOS't
211 TEMplITl=TNEW+DIFF/2. 0055
GO TO 999 0056
212 TEMP(IT>=TNEW 0057
GO .TO 999 0058
SUBROUTINE BUecA~
300 CONTINUE 0059
c CALCULATION USING RELATIVE VOLATILITY OATA,AS SpECIFIEO BY
c SUB HOUT I NE 'EQUCON • l OpT I ON ( 31 IN EQuCON 1.
TOLD=TEMPllTl•l.8+32. 0060
JSO CONTINuE 0061
EFF=EFFV<NJ•ITI 0062
IF<MMO.GT,11 EFF=l.O 0063
TOLOl=TOLD/100. 006lf
AKB=lAKBl+AKB2•TOLOl+AKB3*T0LD1**2••AKB~*TOLD1**3•1*EFF 0065
DAKB=IAKB2+2.•AKB3*TOLD1+3.•AKB~*TOLD1**2.l•EFF 0066
suM=O. 0067
SuMO=O. 0068
DO 31 I=l •Nc 0069
SuH=SuM+<x<I1ITl•<AK1<Il+AK2<Il•TOLD1+AK3(Il•TOLD1••2,)) 0070
SuMD=SuMD+<x!I.IT)•(AK2(1)+2,•AK31Il•TOLDl)) 0071
31 CONTINUE 0072
fUNCT=AKB-(1.ISUMI 0073
FuNCTD=DAKB+l5UMD/lSUM•*2.ll 007tt
DIV=FUNCTIFl,JNCTD 0075
IF<ASS<DIVl.LT.0,0011 GO TQ 310 0076
TOLD=TOLD-DIV 0077
GO TO 350 0078
310 TNEW=ITOLD-32.111.B 0079
c CHANGE IN TEMPERATURE FROM ONE ITERATION To THE NExT IS RESTRICTED
c TO HALF THE CALCULATED CHANGE.
. TBUB:TNEW 0080
DIFF=TEMPIITl-TNEW 0081
IF<DIFFI 311,3121311 0082
311 TEHpCITl=TNEW+OIFF/2. 0083
GO TO 999 ODB'f
312 TEMPCIT>=TNEW 0085
GO TO 999 0086
SUBROUTINE BUBCAL
ifOO CONTINUE 0087
c CALCULATION USING EQuILlBRlUM CONSTANT DATA•AS SpEcIFIED BY
C SUBROUTINE • EQUCOM • l OPT I ON (If I IN EQUCON >.
TOLD=TEMPlJTl•1.e+J2.+q59.q 0088
'-+50 CONTINUE 0089
T=TOLD/1000. 0090
SuM=O. 0091
SUMD=O. 0092
DO ifl I="l •NC 0093
EFF=EFFV{lelTl 009"+
lf{MHD·GT,1> EFf=l.O 0095
AK=AK l l I l+AK2l I HIT+AK3( I l*T**2o+AKif( l >•T••3. 0096
ALFA=IAK**3.>•T0LD*EFF 0097
OA=lAK**2,>•lAKllI>+'f.*AK2f Il*T+7.*AK3ll)•T••2.+10.•AKq(I)*T**3,l 0098
DALFA=oA•EFF 0099
SuM=SuM+(X(I1ITl•ALFA) 0100
SuMD=SuMo+<x<I.ITl•DALFA> 0 101
'+l CONTINUE 0102
FUNCT=SUM-1. 0103
FutJCTD=SuMD 01 Di+
DIV=FUNCTIFUNCTD 0105
lF<A0S<DIVl.LT.O.DOll GO TO 410 0106
TOLD=TOLD-DIV 0107
GO TO 450 0108
~10 TNEW=ITOLD-32.-'+59,'f)ll.8 0109
c CHANGE IN TEHpERATuRE FROM ONE ITERATION To THE NExT IS RESTRicTEo
C To HALF THE CALCULATED CHANGE.
TBUB=TNEW 0110
PIFF=TEMP<IT>-TNEW 0 1 11
lF<DIFFI '-+ll1'+12,ql1 0 1l 2
'+11 TEMP(ITl=TNEW+DIFF/2, 0 1 13
GO TO 999 0 1 1q
q12 TEMPllTl=TNE~ 0 l 15
999 CONTltluE 01 l 6
RETURN 01 1 7
END 0 1l 8
!
SUBROUTINE auacAh
SUBROUTINE DEWCAL(IT1MMD1TDEWI 0001
c DEW pOINT ROUTINE.
c FOUR CALCULATION METHODS ARE AVAILABLE. CHOICE DEPENDS ON THE
c TypE OF EQUILIBRIUM DATA SPECIFIED,
c CHOICE MADE BY COUNTER NEQUIL.
c ••••••••••••••••••••••••••••••••••••••••••••••••••
c INSERT DlMENsION ANo C0HH0N BLOCK 'MULTlcOH' HERE.
c ••••••••••••••••••••••••••••••••••••••••••••••••••
REAL K•LMFR•LRTOT•LSTOT•LD•LB•LPROF 0002
GO TO (lOD.200,300,qoo>1NEQUIL 0003
100 CONTINUE 000'+
C CALCULATION USING ANTOINE CONSTANTS,
TOLD=TEMPI IT) 0005
DO 11 KTIMES=l1lOOO 0006
ASUM=l. 0007
BSUM=O. 0008
on 12 I=l •MC 0009
EFF=EFFV(l1ITI 0010
IFIMMD.GT.ll EFF=l.O 00 1 l
ANT=ANCI >-BN(l l/ICMII l+TOLDI 0012
EANT=llO•**ANTl•EFF 0013
ASUM=ASUM-yll•IT>•PRESS(ITl/EANT 00 1 tf
esuM=esuM•yll•IT>•pRESSIITl•<2.303•eN<Il/((CN(ll+TOLD>••2.ll/EANT 0015
12 CONTINUE 0016
DI v=ASUM/BSt)M 0017
IFIA~SIOIV>.LE.0,0011 GO TO 110 0018
TOLD=TOLD-DIV 0019
11 CONTIMUE 0020
110 CONTINUE 0021
C CHANGE IN TEMPERATURE FROM ONE ITERATION TO THE NEXT IS RESTRICTED
C TO HALF TllE CALCULATED CHANGE.
TDEW=TOLD 0022
DIFF=TEMPIIT>-TOLD 0023
IFCDlfF) llltl12tlll 002q
111 TEMP<ITl=TOLD+DIFF/2, 0025
GO TO 999 0026
112 TEMPllTl=TOLD 0027
GO TO 999 0028
SUBROUTINE oEwcAL
200 CONTINUE 0029
c CALCULATIOU uSUJG EqUILIF)RltJt1 CONSTMJT DATAd\S SpEclFii::D BV
C SUBROUTINE q£(~UC0No cOpTION i2> IN EG)UCON1•
TULD:TEMP(IT>a1.e+32,+~59.q 0030
250 COMTINuE 0031
TOLDl=TOLD/iOO. 0032
SUM=O. 0033
surrn:;<o. oo3q
DO 21 I=l •nc 00.35
EFF=EFFVCltITl 0036
IffM11D.GT.l) EFF=l.O 0037
ALFA=Exp (AK 1 ( 1l""AK2I1l/TOLD1+AK3 (I l OTOL,D 1 l oEfF 0038
DA=AKJ( I l 7 AK2< I )/!TOLD1"<:>2, l 0039
DALFA=<ExP<AKllll~AK2<Il/TOLDl+AK3<I>oTOLD1ll 0 DAOEFF 00'+0
SuM=SUM+CYII,ITl/ALFAl OD'i l
SuHD=SuMD+(y(J,ITl/IALfA002.1100ALFA OO't2
21 CONTJtJuE 00'+3
FUNCT=SUM-1. OQ'iq
FUMCTD=-SUMO OD'tS
Div=FUNCTIFuNCTD 00'+6
IflABSfDIVl,LT,0,00ll GO TO 210 OO'i7
TQLD=Tou:i-o IV OO'i8
GO TO 250 00~9
:no TNEU=ITOLD~32.-q59.~)/1.R ooso
c· CHANGE IN TEMpERATuRE FROM ONE ITERATION To THE NExT rs RESTRicTEo
c TO HALF THE CALCULATED CHANGE,
TD EU= HJ Et-; 0051
DIFF=TEMPllTl-TNE~ 0052
IF(DlFFl 211,212,211 0053
2 1 I T f. Mp < I T l =HIE U + £) I FF I 2 • 005tt
GO TO 999 0055
212 TEMP<ITl=TNfQ 0056
GO TO 999 0057
SUBROUTINE OE~CAL
300 CONT IMUE oosa
C CALCULATION USINGcRELATivE VOLATILITY OATA1AS SPECIFIED BY
C SUBROUTINE •EQUCON• (OPTION (3) IN EQUCON),
TOLD=TEMP<ITl•1.8+J2, 0059
3 5 0 CON T I IJ UE 0060
EFF=EFFV(NJ1ITI 0061
IFIMMD.GT,1) EFF=l,O 0062
TOLDl=TOLD/100. 0063
AKa=<AKB1+AKB2*TOLD1+AKB3*TOLD1**2·•AKBq*TOLDl••3,l•EfF 006'+
DAKa=<AKs2•2·*AKB3*TOLo1+3,•AKBq•TOL01••2.>•EFF 0065
SUM=O, 0066
SuMO=O. 0067
DO 31 I=l •tlC 0068
ALFA=AKl (I l+A1<2< I l•TOLOl+AK3( I l*TOLDl••2. 0069
DALFA=AK2< I 1+2,•AK3( I l•TOLOl 0070
SuM=SUM+<Y<I•lT)/ALFAI 007.1
SuMD=SuMD+(y( I' ITl/!ALFA••2,) l•DALFA 0072
31 COMTINuE 0073
FUNCT=AKB•SUM QQ7q
FuNcTD=DAKB+SUMD 0075
DIV=FUNCT/FUNCTD 0076
lf!ABS<DIVl.LT.0,001) GO TO 310 0077
TOLD=TOLD-DIV 0078
GO TO 350 0079
310. TNEW=(TOLD-32,l/l.8 . 0080
c CHANGE IN TEMpERATuRE FROM ONE ITERATION To THE NExT IS RE5TRicTEo
C TO HALF THE CALCULATED CHANGE,
TDEW:TNEW 0081
DIFF=TEMPIIT>-TNEW 0082
IF<DIFFl 311,312,311 0083
311 TEMP<ITl=TNEW+DIFF/2~ ooaq
GO TO 999 0085
312 TEMP(JTl=TNE~ 0086
GO TO 999 0087
SUBROUTINE DE~CAL
qoo CONTINUE 0088
c CALCULATIO~i USING EQUILIBRIUM CONSTANT DATA•AS spEcIFIED BY
C SUBROUTINE tEQUCON• fOpTION (q) IN EQUCON).
TOLD=TEMP(ITl•!.B+3Z.+q59.q 0089
qso CONTINUE 0090
T=TOLD/1000. L· 0091
SUM=O. 0092
SuMD=O. 0093
DO q1 I=l•NC 009~
EFF=EFFV(l,JT> 0095
IF<MMD.GT,ll EFF=l.O 0096
AK=AKl(I)+AK21Il•T+AK3(ll•T••2,+AKq(J)•T••3. 0097
ALFA=IAK••3.l•TOLD•EFF 0098
DA=IAK••2,l•CAK11Il+q.*AK21Il•T+7.•AK31Il*T**2•+10.•AKq(J l*T**l,l 0099
DALFA=oA•EFF 0100
SUM=SUH+(Y(J,lTl/ALFAI 0101
SuMD=SuMD+(y(l,ITl/(ALFA••2,)l•DALFA 0102
ql CONTINUE 0103
FUNCT=SUM-I. 01oq
FUNCTD=-SUMD ·O l 05
DIV=FUNCTIFUNCTD 0106
lFIABS(DIV>.LT.0.DOll GO TO q10 0107
TOLD=TOLD-DIV 0108
GO TO qSQ 0109
qio TNEw=<TOLD-32,-qs9.q)/J.B 0 l 10
c CHANGE IN TEMpERATuRE FROM ONE ITERATION To THE NExT Is RESTRicTEo
C To HALF THE CALCULATED CHANGE.
TDEW=TNEW' 0 l 11
DIFF:TEMP<IT>-TNEW 0 l 12
IF<DIFF> ~11,q12,q11 0113
q11 TEMP(ITl=TNEW+Diff/2. 0 l 1q
GO TO 999 0 1 15
q12 TEMPIITl=TNEW 0 11 6
999 CONTINUE 011 7
RETURN 01 18
END 0 1 19
SUBROUTINE oEwcAL
SUBROUTINE FLOWEQ 0001
c CALCULATION OF VAPOUR AND LIQUID FLOWRATES THROUGH THE COLUMN
c BASED ON EQUIMOLAR OVERFLOW ASSUMPTIONS,
c THIS SUBROUTINE IS USED FOR:
c tl> INITIAL FLO~RATE CALCULATIONS
c (2) FLOwRATE CALCULATIONS FOR pROsLEMS THAT. IGNORE ENTHALPY EFFECTS
c I.E. EQUlMOLAR OVERFLOW ASSUMPTIONS.
c (3) FLO~RATE CALCULATIONS FOR THE FIRST Two ITERATIONS IN PROBLEMS
c CONSIDERING ENTHALPY EFFECTS• IE. NoN-EQUIMOLAR ovERFLOW CASES.
c ••••••••••••••••••••••••••••••••••••••••••••••••••
c INSERT DIMENSION AND COMMON BLOCK 'MULTIC0M' HERE,
c ••••••••••••••••••••••••••••••••••••••••••••••••••
REAL K•Kf•LHFRtLRTOTtLSTOT,LO•LB•LPROF 0002
FORMAT! l 0003
c CALCULATION OF LIQUID RATEs IN REcTifylNG sEcTioN.
100 CONT I f~UE OOO'i
LRTOT(NP2l=RR•DTOT ooos
DO 11 N=NPl•NF2•-l 0006
LRTOT<Ml=LRTOTIN+l> 0007
11 CONTINUE 0008
c CALCULATION OF LIQUID RATES IN STRIPPING SEcTtoN.
LSTOT( l):FTOT-OTOT 0009
BTOT=LSTOT<ll 0010
DO 12 M=Nfl•2t-l 001 1
LSTOT1Ml=LRTOTINF21+Q•FTOT 0012
IF(LSTOT<M>,LT.O.Ol GO TQ 901 0013
12 CONTINUE 001'+
LRTOT<NFl>=LSTOT!NFll 0015
c CALCULATION OF VAPOUR RATEs IN STRIPPING SEcTION·
DO 13 M:l tNF 0016
V$TOT!Ml=LSTOT<2l-ATOT 0017
13 CONTINUE 0018
SUBROUTINE FLOWEQ
C CALCULATION OF VAPOUR RATES IN REcTIFYING SECTION.
Do llf N=NF1,NP1 0019
VRTOT(N):VSTOT1NF)+(l.-Q1*FTOT 0020
llf CONTINUE 0021
VSTOT<NFll=yRTOT<NFll 0022
VRTOTINP2l=o.o 0023
lF(NCONo.EQ,21 VRTOTINp2)=oTOT 0021f
LSTOT(l l=BTOT 0025
GO TO 999 0026
C ERROR MESSAGES ***************************************************
901 CONTINUE 0027
WRITE<NTpo900ll Q•LSTOTIM) 0028
9001·FORMATC/T21•ERHOR: NEGATIVE LIQID FLOW IN STRIPPING SECTION'• 00.29
l/T2•'cAusEo BY FEEo cONDITION.'•/T2•'Q='•F8.q•2x•'LIQulD FLOw=•· 0030
2Fl0.2•/T2•'ENTER AN lNCREAsEo REFLUX RATIO TO CONTINUE RUN•OR'• 0031
3/T2•'ENTER 1000. FOR TERMINATION•'I 0032
READINCRtl) RR 0033
IFIRR.LT.999.l GO To 100 0031f
NJ=lOOO 0035
999 CONTINUE 0036
RETURN 0037
END 0038
SUBROUTINE FLowEQ
SUBROUTINE FLOWNE 0001
c CALCULATION OF VAPOUR AND LIQUID FLOWRATES THROUGH THE COLUMN
c BASED ON NON-EQUlHOLAR OVERFLOW.
c THIS sueROuTINE IS usEo FOR THE THIRD AND SUBSEQUENT ITERATIONS
c IN PROBLEMS INCLUDING ENT•IALPY CONSIDERATIONS.
c THE CHANGE IN FLO~RATE FROM ONE ITERATION TO THE NEXT IS
c RESTRicTED AS SUGGESTED BY HOLLAND•
c REFERENCE: HOLLAND•C·D••MULTICOMPONENT DISTILLATION•P 123•125,
c ••••••••••••••••••••••••••••••••••••••••••••••••••
c INSERT DIMENSION AND COMMON BLOCK 'MULTicOM' HERE,
c ••••••••••••••••••••••••••••••••••••••••••••••••••
REAL K•KF•LMFR1LRTOT1LSTOT1LD•LB•LPROF 0002
IFllCOUNT,LT,71 FLOLIM:l,2 0003
IFIIcouNT,GT.6.ANo.IcOuNT.LT.121 FLOLIM=l,I 000'+
IF<lcOuNT.GToll) FLOLIN=l.025 0005
c VAPOUR AND LIQUID FLOWS IN REcTIFyING sEcTioN.
DO 11 N:NP2tNF2•-l 0006
CHEKL=LRTDT!Nl 0007
CHEKLU=LRTOTIN>•FLOLIM 0008
CHEKLL=LRTOTIN>IFLOLIM 0009
LRTOTINl=IDM-HvAplN-tll•OTOT/(HVAp(N-ll•HLIQINJ) 0010
lF(LRTQT(Nl.LT.0,01 GO To 901 0011
IF(LRTOTINl.LT.cHEKLU·AND.LRTOTCNloGT.cHEKLLI GO To 111 0012
c THE NEw LIQuID FLOWRATE vALuE IS RESTRICTED BETwEEN LIMITS •FLOLIM•
c ANO '1/FLOLIM' TIMES THE pREyious vALuE,
lFILRTOTCNl,GE•CHEKLUl LRTOT<N>=cHEKLU 0013
IFILRTOT.!Nl.LE.cHEKLLI LRTOT!Nl=CHEKLL 00 l 't
GO TO 112 0015
111 CONTINUE 0016
LRTOTINl=LRTOTINl-1 ILRTOTINl-CHEKLl/2.l 0017
112 CONTINUE 0018
VRTOT<N-ll=LRTOTIN>+oToT 0019
11 CONTINUE 0020
SUBROUTINE FLowNE
C VAPOUR AND LIQUID FLOWS IN STRIPPING SECTION.
Do 21 M=l•MF 0021
CHEKV=VSTOT<M> 0022
CHEKVU:VSTOTIM1*FLOLlM 0023
CHEKVL=VSTOTIMl/FLOLIM 002'1
vsTOT<Hl=IHLlQ(M+ll-BMl*BTOT/(HyAplMl-HLIQ(M+l)l 0025
IFIVSTQT(fll.LT.0.01 GO TO 902 0026
IFlvSTQT(Ml.LT·cHEKVU•ANo.vSTOT(Ml•GT,cHEKvLI GO To 211 0027
c THE NEw vAPOUR FLDWRATE VALUE IS RESTRICTED BETWEEN LIMITS •FLOLIM'
c ANO 'l/FLOL~M' TIMES THE pREvious yALuE.
IFIVSTOT(Ml,GE.CHEKVUI VSTOT(Ml=CHEKVU 0028
IFIVSTOTIMl.LE.cHEKVLl VSTOT(Ml~CHEKVL 0029
GO TO 2l2 0030
211 CONTINUE 0031
vsTOTIMl=VSTOTIH)-l(ySTOT<K>-cHEKVl/2.l 0032
212 coNTINuE 0033
LSTOTIM+ll=ySTOTIM>+BTOT 003'+
21 cotH I NuE 0035
LRTOT<NFll=LSTOTINFll 0036
vsTOTINFl>=vRTOT<NFtl 0037
VRTOTIMP2>=o.o 0038
lf<NcOMo.EQ,2> VRTOTINp2l=oTOT 0039
LSTOTIIl=BTOT 00'10
GO TO 999 OO'fl
SUBROUTINE FLowNE
C ERROR MESSAGES ***************************************************
901 COtlT I NUE 00'+2
i'l=H-1 00'+3
:,rJRITEINTp•90011 M 00'+'+
9001 FORMATl/T21•ERROR: NEGATivE LIQUID FlOW LEAVING TRAy•,Iq) ooqs
GO TO 903 00'+6
902 CONTINUE 00'+7
M=M-1 00'+8
WRITE(NTP•9D021 M OO'f9
9002 FORMAT(/T21•ERROR: NEsATivE VAPOUR FLO~ LEAVING TRAy•.I'+I 0050
903 COMTINUE 0051
WRITE<NTP•90031 0052
9003 FORMATC/T21•pOsSIBLE CAUSES 'oF ERROR:•,/T'f,•(l) REFLUX RATIO TOOL 0053
10u'•/T't1'(2l FEEo ENTHALPY TOO HIGH'1IT'+1'(3) ERROR IN ENTHALPY CA 005'+
2LCULATION,'I 0055
WRITEINTP•90l3l QF•QC•QR 0056
9dl3 FORMAT(/T2t'FEED EHTHALPY='•Fl3.2·2x•'KJIKGM0LE'•/T2•'c0NDENSER DU 0057
1Ty='•F12,212X•'KW'•IT21'REBOILER DUTY='•Fl3,2•2X•'KW'I 0058
NJ=lOOO 0059
999 CONTINUE 0060
RETURN 0061
END 0062
SUBROUTlNE FLowNE
/
SUBROUTINE ABSTRP 0001
c CALCULATION OF ABSORpTION AND sTRipplNG FAcTORS FOR ALL STAGES IN
c THE COLUMN.
c ABSORPTION FACTORS USED IN RECTIFYING SECTION.
c STRIPPING FACTORS USED IN STRipplNG SECTION,
c ••••••••••••••••••••••••••••••••••••••••••••••••••
c INSERT DIMENSION AND COMMON BLOCK 'MULT1C0M' HERE.
c ••••••••••••••••••••••••••••••••••••••••••••••••••
REAL K•LMfR~LRTOT•LSTOT•LD•LB•LPROF 0002
IFINCOND.GT,ll GO TO 110 0003
c AsSORpTioN FACTOR FOR TOTAL-CONDENSER OpERATION.
DO 11 I:l•NC OOOtt
A<I•NP2l=RR 0005
11 CONTINUE 0006
GO TO ill 0007
110 CONTINUE 0008
c AssORpTION FACTOR FOR pARTIAL-CONoENSER OPERATION,
00 l2 l=ldJC 0009
AlltNp2l=LRTOT<Np2l/1Kll1Np2l•DTOTl 0010
12 COMTINuE 00 I l
J1I CONTINUE 0012
c AaSORpTION FACTORS FOR STAGES FROr! FEED TRAY TO TOp THAY INCL,
DO 13 N=NFl•NPl 0013
DO ltt I=ld4C 00 l If
A<I•Nl=LRTOT<Nll<VRTOT<Nl*KII •N> > 0015
1 l.f C 0 NT I tl U E 0016
13 CONTINUE 0017
C STRippING FACTORS FOR STAGES FROM REBOlLER TO FEED TRAy INCL•
DO 21 M=l•NFl 0018
DO 22 I:::l•NC 0019
SII•Ml=VSTOT(Ml•KlltMl/LSTOT<Ml 0020
22 CONTINUE 0021
21 CONT rnuE 0022
RETURN 0023
END 002't
SUBROUTINE ABSTRP
SUBROUTINE yBLB<LBtNC•NFl•S•VB1MC•MP) 0001
C CALCULATION OF STRipplNG SECTION,
C THIS SUBROUTINE SOLVES THE STRIPPING SECTION MASS BALANCE-
C EQUILIBRIUM EQUATIONS ~ORKING FROM THE REBOILER TOWARDS THE
C FEED TRAY.
DIMENSION LB(MC•MP> •S(MC1MP> tVB(MC1MP) 0002
REAL LB 0003
DO 11 I=l•NC 000'+
VB<ltll=S(J,l) o·oos
11 CONTINUE 0006
0 0 l 2 M= 2 • tJ F 1 0007
DO 13 I=l •NC 0008
LBll•Ml=l.•va<I•M-1) 0009
VBll1Hl=S(l1Ml•LB(l1Ml 0010
13 CONTINUE 00 1 1
1 2 C ON T I ~JU E 0012
RETURN 0013
END 00 1 '+
SUBROUTINE VBLB
"
SUBROUTINE VDLDCA•LO•NC•NF21NP1•NP2•VD1MC•MP) 0001
c CALCULATION OF REcTIFylNG sEcTION.
C THIS SUBROUTINE SOLVES THE RECTIFYING SECTION MASS aALANCE-
C EQUILIBRIUM EQUATIONS WORKING FROM THE CONDENSER TOWARDS THE
C FEED TRAY.
DIMENSION AcMC1MPj1LD(MC1MP11VD1MC1HP1 0002
REAL LD 0003
DO 11 I==I •NC OOO't
VDII,Npl)=l.+A(l,NP2) 0005
11 CONTINUE 0006
DO 12 N==NPl•NF2•-l 0007
DO 13 I=l •NC 0008
LD(l1Nl=A<I1N>•vo<I·N> 0009
vulI1N-t>=l,+LoCI•Nl 0010
13 CQNTINut: 00 1 1
12 CONTINUE 0012
RETURN 0013
EMD 001~
SUBROUTINE BDcALC
SuaROuTINE sDCORR(B•BDtD1FTOT1NC1SLIQ1SUMD·SUMB 1 THETA1z•MC1MP> 0001
c CALCULATION OF THE cORREcTEo BID RATIOS.
c THETA IS USED TO CORRECT THE CALCULATED BIO RATIOS. THE CORRECTED
c VALUES ARE usEo TO CALCULATE THE COMPOSITION pROf lLES THROUGH
c THE COLUMN IN THE NEXT ROUTINE~
DIMEMSIOM B(MC) •BD1MC> 0D1MC> 151..IQ(MP> •Z(MC) 0002
SUMD=O• 0003
SUMB=D. 0001.f
DO 10 I=l •Nc 0005
BOC I >=sD< I >•THETA 0006
Dtil=FTOT•Z<tllll,+BDIIl) 0007
Bl I l=DI I >•BDI I) 0008
SUMD=SUMD+Dlll 0009
SUMB=SUMB+O(I) 0010
1 o cotJT I NuE 00 1 I
SLIQlll=SUMB 0012
RETURN 0013
END 0011.f
SUBROUTINE BDCORR
SUBROUTINE VLRECT 0001
C CALCULATION OF THE COMpOSITION PROFILES IN THE REACTIFylNG
C SECTION. THE CORRECTED VALUES OF DtTHE OISTILLATE MOLAR
C FLOWRATES•ARE USED.
cC *****••····~······································
INSERT DIMENSION ANO COMMON B~OCK 'MULTlCOM' HERE.
c ······················~···························
REAL K•LMFR•LRTOT•LSTOT•LD•LB•LPROF 0002
SUMV=O• 0003
DO 11 l=l•NC oooq
VMFR( I ,Npl >=VD( I ,Npl l•D< I l 0.005
SUMV=SuMv•vMFR(l,Npll 0006
11 CONTINUE -0007
SVAP<NPll=SUMV 0008
IF<NCOND,GT.11 GO TO 111 0009
C ToTAL CONDENSER OPERATION.
DO 12 I=l•Nc 0010
Y <I-• NP 1 l =VMFR f I• tlP 1 l /SUMV 00 11
y<I•Np2l=X<l•Np2l 0012
12 CONTINUE 0013
GO TO 211 OOl't
111 CONTINUE 0015
c PARTIAL coNoENsER OpERATION.
SUMXK:O. 0016
DO 21 I= l dlC 0017
YCl• Np l l =VMFR (I• Np I l /SUMV 0018
Y<l•NP2l=X<I•NP2l 0019
X<l•NP21=VRTOTCNpll•ylI•NPll/!DTOT•K(l,Np2l+LRTOT(Np2) l 0020
SUMX1<=SUMXK+X<I•llP2l 0021
21 CONTINUE 0022
DO 22 I=l•NC 0023
Xf I •NP2l=XC I •NP21/SUMXK 002'+
22 CONTlMUE 0025
211 CONJINUE 0026
SUBROUTINE VLRECT
C RECTIFYING SECTION,
00 30 N:NPl•NF2•-l 0027
SUMV=O. 0028
SUML=O. 0029
DO 31 I=l •NC 0030
VMFRIJ,N-l>=vo<I.N-ll*D(J) 0031
LMFR(l,Nl=LolJ,Nl•D(Il 0032
SuMv=SuMv•vMFR<I.N-1) 0033
SUML =SUML +LMFR CI• fJ l 003'+
31 CONTINUE 0035
SVAP(N-ll=SUMV 0036
SLIQIN)=SUML. 0037
c MOLE FRAcTioN CALCULATIONS <vApOuR & LIQUID)
DO 'tl I=l •Nc 0038
X<I•Nl=LMFRII•Hl/SUML 0039
y <I• M-1 I =VMFR I I• N-1 l /SUMV 00'+0
'tl CONTINUE OO't 1
30 CONTINUE 00q2
DO 50 I=! •NC 00'+3
LMFR(l,Np2l=O(Jl•RR 00'+'+
50 CONTINUE 00'+5
SLIQ<Np2l=DTOT•RR 00'+6
lf(NCOND.EQ.ll GO TO 999 00'+7
c PARTIAL cONpENsER OpERATioN.
DO Sl l=l•N.c OO'ta
vrffR( I
.Np2l=DI I) 00'+9
51 CONTlNuE ooso
SVAPINP2l=DTOT 0051
999 COMTINuE 0052
RETURN 0053
END 005'+
SUBROUTINE vLRECT
SUBROUT(NE VLSTRP 0001
c CALCULATION OF THE COMpOSITION PROFILES IN THE sTRippING sEcTION.
c THE CORRECTED VALUES OF B•THE BOTTOMS MOLAR FLOWRATES1ARE USED,
cC ••••••••••••••••••••••••••••••••••••••••••••••••••
INSERT DIMENSION AND COMMON BLOCK 'MULTIC0M' HERE,
c ••••••••••••••••••••••••••••••••••••••••••••••••••
REAL K•LMFR•LRTOT•LSTOT•LD•LB•LPROF 0002
DO 10 M=-1 •'"IF 0003
SUMV=O. oooq
SUML=O. 0005
DO 11 l=l•Nc 0006
VMFRCI1M>=vac1,Ml•B<ll 0007
LMFR( I ,M+l >=LB( I 1M+l >•Bl I I 0008
SuMv=SuMv+vMFR(I,Ml 0009
SuML=SuML•LMFRll1H+l) 0010
11 COMTINuE 00 l 1
SvAPIMl:SUMv 0012
SLIQlM+ll=SuML 0013
c MOLE FRAcTION cAl.CUl...ATIONS <vApOuR ,& LlQulD)
DO 21 l=l •NC 00 l '+
X <I •M+l l=LMFR <I •M+l )/SUML 0015
Y(l•Ml=VMFRCl•Ml/SUMV 0016
21 CONTINUE 0017
10 CONTINUE 0018
DO 12 l=l •NC 0019
LMFRll1l)=B(ll 0020
12 CONTINUE 0021
RETURN 0022
HID 0023
SUBROU/INE VLSTRP
SUBROUTINE THECAL 0001
c CALCULATION OF tTHETAt IN HOLLANDtS CONVERGENCE PROcEouRE.
c THE suaROUTINE USES A NEWTON-RAPHSON PROCEDURE TO CALCULATE
c THETA ~HICH REpRESENTS THE DEGREE OF MISMATCH OF THE RECTIFYING
c AND STRIPPING SECTIONS AT THE FEEU TRAY· .
c ••••••••••••••••••••••••••••••••••••••••••••••••••
c INSERT DIMENSION AND COMMON BLOCK 'MULTIC0M' HERE.
c ••••••••••••••••••••••••••••••••••••••••••••••••••
REAL K•LMFR•LRTOT•LSTOT•LD•LB•LPROF 0002
IFCTHETA.LT.0,00001,0R.THETA.GT.9999.) GO TO 1 l 1 0003
lfllCOUNT-ll lll1lll1llO 000'+
111 THETA=O, l 0005
110 CONTINUE 0006
SUMF=O. 0007
SUMDF==O, 0008
DO 10 I=l •Nc 0009
FTHET=fTQT•z<Il/(1.+THETA•eo<I>I 0010
DFTHET=FTHET•BD (I I I ( 1. +THETA•so (I I) 00 1 1
SuMF=SUMF+FTHET 0012
SuMDF=SUMDF+OFTHET 0013
10 CONTINUE 001 '*
FTHET=SUMF-DTOT 0015
DFTHET= ... SUMDF 0016
DIV=FTHET/DFTMET 0017
THETA=THETA-DIV 0018
IFIABS<THETAl.GT.10000.l GO TO 999 0019
IF<tHETA.GE.0.0) GO TO 112 0020
THETA=THETA•(-1) 0021
GO TO 999 0022
112 CONTINUE 0023
IF<ABS(DIVl.GE.0.001) GO To 110 002'+
999 CONTINUE 0025
RETURN 0026
END 0027
SUBROUTINE THECAL
SUBROUTINE RUNRES OOOJ
c ROUTINE FOR WRITING ABBREVIATED RESULTS TO THE TERMINAL,
c
C ••••••••••••••••••••••••••••••••••••••••••••••••••
INSERT DIMENSION AND COMMON BLOCK 'MULTICOM' HERE,
c ••••••••••••••••••••••••••••••••••••••••••••••••••
DIMENSION TEMpf(Mpl 0002
REKL K•LMFR•LRTOT•LSTOT•LD•LB•LpROF 0003
1010 FORMAT(/T2t•MuLTic0MP0NENT DISTILLATION av THIELE-GEDuES METHOD:•> 0001.f
1011 FORMAT!/T2t•RuN No:•,2x•I3.•1•,r2.•1•.121 0005
1012 FORMAT!/T2.•ovERALL MATERIAL HALANcE:•.1rs.•sTREAM'•7x•'FLOwRATE•, 0006
llx,'<KGMOLEIHRl'.IT31'0ISTILLATE'•qX•f9,41/y3.•soTTOMs'•7x1f9.4t 0007
2/y3•'FEED-ToTAL'•qx,f9.q,/y7,•-VAPoUR'•3Xof9.q,/y7,•-L1QU1D•,JX, 0008
3F9.q) 0009
1013 FORMATt/T211COMPONENT MOLE FRACTIONS:e•/T31tC0MP•••2X• 0010
l'DISTILLATE•13x•'B0TTOM5'•10x•'FEEO STREAM'•/T33t'LIQUID'•Jx, 0011
2'VAPOUR•,qx,•ToTAL'l 0012
1014 FORMAT(Tq•I216X1f6.q,SX1f6,q,qX•F6.q,3X•F6.q,3X•f6.q) 0013
1015 FORMAT!/T21•TEMpERATuRE AND pREssuRE pROFILE:•.;rq,tTRAY N0•1lDx· 001q
l'TEMPERATURE'•7X•'PRESSURE',/Tl8t'DEG c•.7x•'DEG F•,6x,•KpA•. 0015
21y3,•CoNDENsER'•SX,f6.l16X,f6.lt3X,r8.2) 0016
1115 FORMAT1T5,•FEE0•,sx,f6.1•6X•F6•t•3X•F8.2) 0017
1016 FORMAT1T6 1 IJ,8x1F6.l16x•F6.l13X·FB.2) 0018
1116 FORMAT(Tq 1 •REBOlLER'•Sx•f6.l16x1f6•1•3X•f8.21 0019
1017 FORMATl/T21•No. OF ITERATloNs='•lq,5x,•THETA='•f7,3) 0020
1018 FORMAT!/T21•REFLUX RATIO='·Fl2,21/T2t'plsTILLATE RATE='•r9.212x1 0021
l'KGM0LEIHR'•/T2•'FEED Q VALuE='•Flq,q,/T2•'FEEo TEMpERATURE='•FB.2 0022
212X•'DEG C'l 0023
1019 FORHAT(/T21•ToTAL coNoENsER OpERATION.•l 002't
1020 FORMAT<IT21•pARTIAL coNoENsER OpERATloN.•l 0025
1021 FORMAT<T2•'FEEo E!JTHALpY='•Fll.2,zx•'KJIKGMDLE'1//T21•cONoENSER DU 0026
1Ty='~Fl2,212X•'KW',/T2,'REB01LER DUTY='•Fl3.2•2X•'KW'l 0027
1120 FORHAT(/T2.•vAp0UR AND LIQUID FLOwRATEs LEAvlNG TRAyS:••/T41'TRAy 0028
1No••7x•'VAPOUR'•7X•'LIQUID'•qx•'<KGM0LE/HRI'• 0029
2/yJ,•CoNDENSER'15X,f7.216X,f7.2l 0030
1121 FORHAT(T6•l318X•F7•2•6X•F7•2l 0031
1122 FORMAT(TS••FEED••fiX1F7.216X1F7.2) 0032
1123 FORMAT(Tq•'REBOILER•,Sx•F7,2,6x•F7,2) 0033
SUBROUTINE RUNRES
C TEMPERATURE PROFILE IIJ DEG F.
DO 11 J=l•flP2 003tt
TEMPF<Jl=TEMP(J)•l.8+32. 0035
11 CONTINUE 0036
C COMB I NEO REcT I FY I NG AND STR I pp I NG SECT I ON FLO~'.! DAT A•
DO 1 2 M=NP 2 di F 1 • - 1 0037
LPROF(Nl=LRTOT(NI 0038
VPROF(Nl=VRTOTINI 0039
12 CONTifluE OO'fO
DO 13 M=NFtl,-1 OO'f 1
L.pROFIMl=LSTOT!Nl 00 If 2
ypROF (Ml =VSTOT < i1 I 00'+3
13 CO~HINuE 00'+'+
C PRESSURE PROFILE CONVERTED TO S.I. UNITS.
FAC!P2=7.50Q616B3 00'+5
DO Pf J=l •Mp2 00 1•6
PRESCJl=pRESS<Jl/FACTP2 OO'f 7
1 1t CONTINUE 001f8
C RESULT TABLE HEADING AND RUN IDENTIFICATION NUMBER.
WRITE(!HP• 10101 OP'+9
WRITE<NTP•lOlll NUMl1NUH2•NUM3 ooso
C DISTIL.LATE100TTOMS AND FEED STREAil FLOwRATES•
WRITEtNTP•l012) DTOT1BTOT•FTOT1AVAP•ALIQ 0051
C STREAM COMPOSITIONS.
WRITE1tJTP• 1013) 0052
1iJ R I TE ( 1-J T P • 1 0 1 't l ( I , y I I , MP 2 I • X < I • 1 l , XF l I l , YF { I l ' Z ( I >• I =l • NC l 0053
SUsROUTlNE RUNRES
c TEMPERATURE AND pRESSURE PROFILES.
WRITEtNTP•lOlS) TEMPcNP2)•TEMPF1NP2)•PRES1NP2) 005«+
DO 15 J=NP1•2•-1 ooss
IF<J•EQ.NFll GO TO 115 0056
MMM=J-1 0057
wRITECNTp•lOl6) MMM•TEMP(J) •TEHpflJ>•pRES(Jl 0058
~O TO 15 0059
115 CONTINUE 0060
WRITEINTp•lll5l TEMplNFll •TEMPF<NFll1pRESINFll 0061
15 CONTINUE 0062
WRITE<NTp•l116) TEMplll•TEMPF(ll•pRES(ll 0063
C CONVERGENCE DATA.
WRITE(NTP•l017) ICOUNTtTHETA 006«+
C REFLUX RATIOoDISTlLLATE RATE AND FEED CONDITION,
WRITE(NTP•lOlB> RR•OTOTtQ•TFEEO 0065
C HEAT DUTIES ANO CONDENSER TypE~
lf(NENTH,GT,O) WRITE<NTP11021) QF•QC•QR 0066
IFCNCOND,EQ,ll WRITE(NTP11019> 0067
IflNCOND•EQ,2> 1RITE(NTp11020) 0068
C VAPOUR AND LIQUID FLOWRATE pROFILES,
WRITE1NTP•l120) VPROF1NP2)0LPROF1NP2) 0069
DO 16 J=NP1•2•-1 0070
lFIJ•EQ.NFll GO TO 116 0071
MMM=J-1 0072
WRITEINTp•ll2ll MMM•VPR0F(Jl•~PR0f(J) 0073
GO TO 16 007'+
116 CONTINUE 0075
WRITE<NTp•l1221 vPROFINFll •LPROFCNFll 0076
16 CONTINUE 0077
WRITEtNTP•l123l VPROF(ll1LPROFC 11 0078
RETURN 0079
END 0080
SUeROUTINE RUNRES
SUBROUTINE OUTPUT!ERROR,ERRD> 0001
c ROUTINE FOR PRINTING SETS OF DETAILED RESULTS.
c THIS ROUTINE WRITES TO A DATA-FILE WHICH IS PRINTED By THE
c LINE-PRINTER AT THE END OF THE RUN,
cC *•················································
INSERT DIMENSION AND COMMON BLOCK 'MULTIC0M' HERE.
c ••••••••••••••••••••••••••••••••••••••••••••••••••
DIMENSION FEEO(HCl 0002
REAL K•LMFR•LRTOT•LSTOT•LD•LB•LpROF 0003
1010 FORMAT(//Tll•'MULTICOMPONENT DISTILLATION BY THIELE-GEODES METHOD, OOOq
1 1 •//Tll•'PRINTouT OF Full RESuLTS FROM pROGRAM THIELEGEDDEs,•· 0005
2///Tll,•cONyERGENcE CRitERIA! 1 ) 0006
1011 FORMAT(//Tllt'THETA = '•flQ.q.1ox•'CONvERGENCE LIMIT= 1 •F7.Sl 0007
1012 FORMATt///Tll•'REFLUX RATIO='•F12.q•//Tll•'DISTILLATE RATE=••F9,q, 0008
12x•'KGM0LEIHR'•//Tll•'DISTILLATE COMPOSITIONS:••//TlS.•cOMPONENT'• 0009
2Tq6•'MOL FRACTION') 0010
1013 FORMATl/Tll,I3,3x•5A6•3XtF6.4l 00 l 1
101q FORMAT(//Tll•'NUMBER Of ITERATIONS= •.I3•T4l•'THETA cONvERGENcE E 0012
. lRROR='•FlO.q1/Tql,'DISTlLLATE FLOWRATE ERROR='•F8.q) 0013
1015 FORHATl/Tll•'SpEclFIEo ANo cALCULATEo oisTlLLATE RATEs MATcH wITHI 001'+
lN CONVERGENCE LIMIT.'> 0015
1110 FoRMATl///T2,11or•••) ,//) 0016
1111 FORMAT(/Tl.23l'•'l ,/r3,'•',2lx.•••,/T3,'•',1X•'RUN No.:•.2x.1J 0017
1 , ' I ' , I 2 , ' I ' , I 2 , 1X , ' * ' , IT 3 , ' * ' , 2 1 X , ' ·• ' , IT 3 , 2 3 ( ' *' >> 0018
2011 FORMATl///Tll•'TRAY N0'•2X1ll1//Tll•'COMPONENT No'.14x• 0019
l'yAPOUR LEAvING't26x•'LIQUID LEAvlNG'•/Tll•'KGMOLE/HR•1Sx•'MOL FRA 0020
2CTION'.14X·'KGMOLE/HR'.Sx•'MOL FRAcTION'I 0021
2012 FORMATC/Tl61J2.l2x·Fl0.2,Sx•El2.6113xoFl0.2t5XtE12,6> 0022
2013 FORMATt/T31,66t'-'l o/T20,'TOTALS:•,3x•Fl0.2•5X•FlD.q,15X•Fl0.2, 0023
1Sx•Fl0.4,/T31·66(t-•) ,//T2l•'TRAY TEMpERATuRE='•fB.2.2x•'DEG c'• 002q
2//T2l•'TRAy PRESSURE='•Fll.212X•'KPA 1 > 0025
2111 FORMAT(///Til••ToTAL coNoENSER'•//Tll•'COMpONENT NO'•llX• 0026
l'LIQulo oISTILLATE'•2Sx•'LIQUio REFLux••/T3l•'KGM0LEIHR'·Sx•'M0L F 0027
2RACTION•.1qx•'KGMDlE/HR'.Sx•'MOL FRACTION') 0028
2112 FORMATt///Tll•'pARTIAL coNoENsER'•//Tll•'C0MP0NENT N0•113x· 0029
t•vAPOUR OISTILLATE'•2Sx•'LlQUlD REFlux••/T3l•'KGM0LE/HR'•SX•'M0L F 0030
2RAcTioN•.lqx•'KGM0LE/HR'•Sx•'MOL FRACTION'> 0031
/
SUBROUTINE OUTPUT
2113 FORMATl/T31166('-'l·IT201'TOTALS:•,JxoFl0.2.sx.flO.q,1sx.Fl0.2. 0032
1Sx•Fl0.q,/T3lt66(•-•),//T2l·'CONDENSER TEMPERATURE='•f8,2·2x· 0033
2'DEG c• •//T21 •'CONDENSER pRESSuRE=' •Fl 1.2•2x. 'KPA') 003'+
2121 FORMAT{///T2t'TRAY N0'·2x•JJ,qx··· FEED TRAY *'•/T2·'cOMPONENT NO' 0035
l•l0X•'VAP0UR FEEO'•l6X•'LIQUIO FEED'•liX•'VAPOUR LEAVING'•l3X•'LIQ 0036
2UID LEAvING•t/Tl7•'KGMOLE/HR'•2x•'M0L FRACTJON'•'+X•'KGMOLE/HR'•2X• 0037
3'MOL FRAcTloN• 1Lfx' 'KGMOLEIHR' •2x' 'MDL FRACTION' •'+x' 'KGMOLEIHR' ·2x. 0038
Lf'r1DL FRACTION' l 0039
2122 FORNAT(/y7,I2•7x1flQ,2,2x·E12.61lx1Fl0.2,2xeE12,613x•rl0,212X• ooqo
1El2,613X1Flo.2.2x•El2.6) OO'fl
2123 FORMAT(/T17.1oq1•-•1 .1rs.•roTALS:•,Lfx1Fl0.2.2x•FlO.Lf,sx•fl0,2·2x• ooq2
lfl0.'+15x.Fl0.2.2x1FlO.Lf1Sx1Fl0.2.2x•Fl0.Lft/T17,10Lf('-•),//T2l• OOLf3
l'TRAy TEMPERATuRE='•f8.2.2x•'OEG C'•//T2l•'TRAy pRESSuRE=••fll.2. OO'f'f
22x•'KPA',//T211'FEE0 Q VALuE='·Fl2.21//T211'FEED TEMPERATURE='• OOLf 5
3f8.2.2x•'DEG c•> OOLf 6
2211 FORMAT!///Ttl•'REeOILER'•//Tll1'COMPONENT NO'•lqx· 00'+7
!'VAPOUR LEAvING'·26x•'B0TTOM PRODucT•1/T3lt 1 KGM0LE/HR•,Sx1'MOL FRA ooqe
2CTION•,tqX,•KGH0LE/HR'•5X•'MOL FRACTION'> ooq9 \
2213 FORMATl/T31166('-')1/T20t'TOTALS: 1 ,3XtFl0.21Sx.FlD.Lf1lSX1Fl0.21 ooso
15x1Fl0.Lf,/T31·661'-'l•//T211 1 REB01LER TEMPERATuRE='•FB·2·2x• 0051
2'DEG C'•//T2l•'RE801LER pRESSuRE=••Fll.2t2X•'KPA'l 0052
3011 FORMAT(///Tll••OvERALl MATERIAL BALANcE:••//Tll•'MOLAH pRODucT ANO 0053
l FEED STREAM RATEs•.qx,•<KGMOLE/HR)'l 005'+
3012 FORMAT(//T2},'COHPONENT NO'•lOX1'DISTJLLATE'•llX1'BOTTOMS'•l3X, 0055
l'FEED'l 0056
3013 FORMATc/T25.13.16X1F9,q·l0X•F9,q,1ox.F9.q) 0057
301q FORMATCTLflt50<•-•),/T2l•'TOTAL RATEs:•.11x1f9,q.1ox•f9.q,1ox1F9,q, 0058
l/TLH 150( •-•) l 0059
3015 FORMAT(l//Tll•'HEAT ouTIES ANO FEED ENHlALpy:•. 0060
l//Tll•'CONDENSER DUTY='•El6.B.2x1'Kw'·l/Tllt 0061
2'REBOILER DUTY=', 1X 1El6,812X, 'KW' ,//Tl l •'FEED ENTHALPY='• 0062
31X•Et6·8•2X••KJ/KGMOLE•l 0063
3016 FORMAT(///Ttl••END OF PRINTOUT.•) 006i
SUBROUTINE OUTpUT
C RUN VARIABLES.
WRITEINLP•lllO> 0065
WRiTE(NLP•llllJ NUMl•NUM2•NUH3 0066
WRITE(NLP•l010l 0067
WRITEINLP•lOlql IcOuNT.ERRORtERRD 0068
WRITEINLp•lOlll THETA•ACCLIM 0069
IFIASS(THETA-1.0l.GT,ACCLIM> WRITEINLP•1015l 0070
C DISTILLATE COMpOSITlON.
WRITE(NLP•l012l RRtOTOT 0071
WRITE(NLP•l013J (l1ITITLES(l1JI •J=l•S),y(t,NP2l•I=l•Nc> 0072
C HEAT BALANCE•
IF1NOWN.GT.01 WRITE1NLP•30l5) QC•QR•QF 0073
C SpECIFicATIQNS THROUGH COLUMN.
Do 10 J:NP21l•-l 001q
Sx=O• 0075
Sy=O. 0076
DO 20 I=l•Nc 0077
FEED( ll=FTOT•z!ll 0078
SX=SX+XII•J) 0079
Sy=Sy+y(l•JI 0080
20 CONTINuE 0081
lr1J•EQ.NP21 GO TO 501 0082
IFIJ.EQ.NFll GO TO 510 0083
IF(J.EQ.ll GO TO 502 008t+
MMM=J-1 0085
C DETAILS OF TRAyS OTHER THAN FEED TRAy.
WRITE<NLP•2011> HMM 0086
WRITEINLp•2Ul2l <I•VMFR(I•Jl•Yll•J>•LMFRII1Jl•X(l•Jl•t=l•NCl 0087
WRITE!NLP•2013! SVAPIJl•SYtSLIQl~l,SX•TEMP(Jl•PRESIJ) 0088
GO TO 10 0089
501 CONTINUE 0090
SUBROUTINE OUTPUT
c co~DENSER DETAILS.
IF(NCOND.EQ!l) WRITE<NLP,2111> 009 1
lf(NCOND,EQ.2) WRITE(NLP•2112) , 0092
WRITE(NLP•2012l <I •D< I I •y< I •NP2l •LMFR! I •NP2l •X( I ,Np2) 'I=l •NCl 0093
'WRITE(NLp•2113) OTOT•SY•SLIQ(Np2>·sx•TEMp<Np2>·rRESCNp2l 009'+
GO TO 10 0095
502 CONTIMuE 0096
C REBOILER DETAILS.
WR I TE ! tJ LP • 2 2 l 1 l 0097
WRITEINLP•2012) <I•VMFR< l•ll •Y< I·ll •LMFRI 1,11 •xCl•ll •l=l•NCI 0098
WRITEINLP•2213l SVAPlll•SY•SLJQ<l>•SX•TEMPll>•PRES<ll 0099
GO TO l0 0100
510 CONTINUE 0101
C FEED TRAY DETAILS.
WRITE<NLP•2121J NF 0102
SYF=O. 0103
SXF=O, 01 Ott
DO 51 I=l •Ne 0105
YFLO=yf(ll•AVAP 0106
XfLO=XFIIl•ALIQ 0107
wRITEINLp•2122> l•YFL0•YFIIl,xfLO•xF<Il•vMFR(l1Nfl),y({•Nfl)• 0108
lLMFRll,NFll•Xll•NFll 0109
SYF=SYF+YF I I l 0l l0
SxF=SxF+xF<I> 0 11l
5 1 C 0 ~JT I NU E 0 1l 2
WRITE<NLP•2123> AVAPtSYf,ALlQ•SXF•SVAPINFl. l •SYtSLIQ(Nfl l •SX1 0113
l TEMP< NF l I •PRES< MF l) • Q • TFEEp 0 l l '+
10 CONTINUE 01 15
C OVERALL MASS BALANCE.
WRITE(NLP•30ll> 0 l 16
WRITE(NLP•301.2l 0 l l7
WRITEOlLPt3013l < l_•D< I l •Bl I) 1FEEDC l l • I=l dJCl 0 l 18
WRITEINLP•301'+l DTOT1BTOT•FTOT 0 l l9
WRITE<NLP•30l6l 0120
WRITEINLP•lllDl 0121
RETURN 0122
ENO 0123
SUBROUTlNE OUTPUT
c MAINLINE PROGRAM FOR DISTJLLATION-pA(KAGE PLOTTING ROuTINEs.
c CONTENTS; 0
MAINLINE PLOTTER
DATA ASIZ• INTA, INTB,NCR,NTPIO,lq,67,Sq,8,S/ 0019
FORMAT(q(A6,1X)) 0020
2 FORMAT<5A6) 0021
3 FORMAT< ) 0022
WRlTE<NTP•lOODl 0023
1000 FORHAT(/T2,•ENTER JOB No. As: NO.rDAYtMONTH <INTEGER vALUES),') 002't
READINCR,3) NUMl•NUM2•NUM3 0025
DNUMl=FLOATINUMll 0026
DNUM2=FLOATINUM2) 0027
ONUM3=FLOATINUM3l 0028
WRITE<NTP•lOlD> 0029
1010 FORMATl/T21•ENTER TypE OF PLOT REQUIRED, <sEE MANUAL sEcTION 5)') 0030
READ<NcR,3> NTYPE 0031
GO TO ll00,200,200,3Q0,300>•NTYPE 0032
100 CONTINUE 0033
c MULTICOMpONENT DISTILLATION DATA REPRESENTATION,
WRITE!NTP•l001) 003't
1001 FORMAT!/T2,•ENTER TOTAL NUMBER OF RUNS TO BE PLOTTED•'> 0035
READ<NcR,3) NR 0036
WRITE(NTP•l002l 0037
1002 F0RMAT!/T2,•ENTER NUMBER OF RUN FOR WHICH FULL PLOT Is REQuIREo,•> ·oo3a
READ<NcR,3> NRF 0039
WRITE<NTp•l003l 00'+0
1003 FORMATf/T2,•ENTER NUMBER OF TRAyS JN COLUMN,'> 00"+ 1
READ<NcR,3) Np OO't2
NP2=NP+2 OO't3
WRITEl~TP•lOO't> OO'+'t
lOO't FORMAT(/T2,•ENTER NUMBER OF C0Mp0NENTS 1N FEED•'> OO'tS
READ(NCR13) NC 00lf6
MAIN~INE p~OTTER
WRITEtNTP•lUOSl OOq7
1005 FORMAT(/T21,ENTER DATAFILE NAMES, CSEE MANUAL sEcTION Sl,J OO'f 8
READ<NcR1ll F113l1F2(3ltF313l•flf(3l 00'+9
A1 t 3 l ;:;Fl ( 3) ooso
A2(3)=f2(3l 0051
A3 < 3 l ;:;F 3 ( 3 l 0052
Ai+c 3 l =F 1H 3 l 0053
(ALL ERTRAN(6•All OOS'i
CALL ERTRAN(6•A2l 0055
CALL ERTRAN<6•A3) 0056
CALL ERTRAN(6•Aq) 0057
c READ AxIS TJTLES AND pLOT HEADINGS FOR ALL MULTicOMpONENT pLOTS,
CALL ERTRANt6••@ADD PLOTFILE.HEADING • 'I 0058
READ<NCR12l (HEADl<Jl•J;:;l•Sl 0059
R E:: AD ( l~ CR 1 2 ) l H EA D 2 ( J l • J = l 1 5 l 0060
READ ( f~ CR , 2 l I HEA D3 < J > • J = l • S l 0061
REAo<NcR13l NCHHl•NcHH2•NCHH3 0062
CALL ERTRAN(6•'@ADD pLdTflLE.AxlsTITLE • '> 0063
DO 11 I=l•'f 006't
READINcR12l lXAXll•J>•J=l•Sl 0065
READlNCR13l NCHARXIIl 0066
REAOINcR•2l (YAX(l1J)•J=l•Sl 0067
READ<NcR13l NCHARYlll 0068
11 CONTINUE 0069
RE AD ( I~ CR ' 3 l ( YLEN ( I l t I= 1 • £+ l 0070
CALL ERTRANl6•'@ADD PLOTFILE.TlTLES • •l 0071
DO 12 1=1•6 0072
REAo<NcR,21 <TJTt.(ltJltJ=l.5) 0073
R~AD<NcR13l NCH(ll 007'+
12 CONTINUE 0075
READ<NcR,3) {(ALXTCJ,J)•ALYTlltJl 1J=l1Jl1l=l•q) 0076
MAINLINE PLOTTER
c CALCOMP ROUTINE •PLOTS• INITIATES PLOTTING pROCEOURE.
CALL PLOTS( lBUF•lOOQ,25> 0077
CALL FACTOR(0.5) 0078
c sueROuTINE FOR COLUMN TEMpERATURE pROFILES.
CALL PLOTTS 0079
c sueROIJTINE FDR yApOuR AND LIQUID FLOWRATE pROFILES.
CALL PLOTFS 0080
c sueROuTlNE FOR OISTILLATE C0Mp0SITION BAR DIAGRAM.
CALL PLOTDS 0081
c sueROuTINE FOR C0Mp0SITION pROFILES THROUGH THE COLUMN.
CALL PLOTCS(ALENX> 008.2
c READ AND WRlTE TITLES ABOVE MULTICOMPONENT pLOTSt
ANUMl=FLOAT1NR1 0083
ANUM2=FLOAT!NRFl 008tt
CALL SyMe0L(l.0•7.7tASiz,HEADl·O·D·NCHHll 0085
CALL NuMaER<S.2•7.7tASiz•ANUMltO,o.~11 0086
CALL SyMeDL(l,Ot7,q.Asiz,HEA02t0101NCHH2) - 0087
CALL NuMRER(S,3~,7.q,Aslz•ANUM210,o;-11 00~8
CALL SvMB0L(l.0•7.11ASIZ•HEAD3•0•01NCHH3> 0089
ANMF=7.l 0090
ALXq=ALENX+6.0 0091
Alvq=o.o 0092
GO TO 999 0093
MAINLINE PLOTTER
200 CONTINUE QQ9q
C BINARy BATCH-DISTILLATION DIAGRAMS,
CALL PLOTS(IBUF•IOOQ,25) 0095
CALL FACTOR(0.51 0096
c susROuTINE fOR AlNARy sATcH-DlSTlLLATioN DIAGRAMS.
CALL PLOTBT(ALENX•NTYPE) 0097
IF(NTYpE,EQ,J) GO TO 210 0098
c READ AND WRITE TITLES oN BATCH x~v DIAGRAMS·
C CONSTANT REFLUX OPERATION,
CALL ERTRANc6••@ADD PLOTFILE,BBCTTL • •> 0099
GO TO 211 0100
210 CONTINUE 0101
C VARIABLE REfLUX OPERATION,
CALL ERTRAN16•1@ADD pLOTFJLEobBVTTL • •) 0104
211 CONTINUE 0103
READ<NCRe2l <HEADI<I>•I=l•Sl 0 l O't
READ<NcR12l IHEAD21Il•I=l•S> 0105
REAo<NcR·2> (HEA031Il•I=l•5) 0106
REAOINcR•2> IHEAD~(Il •1=1•5> 0107
READINcR,3> NCHBl•NCHB2.•NCHB3•NCHB~ 0108
CALL SyM50L(l.O•ll.11ASlz•HEADl•0.01NcHBll 0109
. CALL SyMaDLCl.O•lD.81Aslz•HEA02•D,O•NcHB2l 0110
CALL SyMa0L{1,0•l0.51ASlz•HEAD3•0,0•NcHa3> 0 l 1l
CALL 5YMB0L(l.0 1 l0.2.Aslz•HEADq•0,01NcHBq) 0 112
ANMF=l0,2 011 3
ALX4=ALENX+6.0 0 1 1 '+
ALY4=0,0 0115
GO TO 999 01 16
MAINLINE PLOTTER
300 CONTINUE 0 11 7
C BINARY CONTINUOUSMDISTILLATION DIAGRAMS,
IFcNTYPE•EQ,5) WRITE(NTP,30011 0118
3001 FORMATC/T2,•ENTER LIMITS OF ENTHALPY Axl~ lN ENTH-cONc DIAGRAM,'• 0119
l/T2•'NORMALLY THESE ~RE DEL pT VALUES ROuNoEo coNvENIENTLY•'• 0120
2/T2•'ENTER UPPER LIMIT FIRST• !REAL MOOEtfREE FORMAT>•> 0121
lF(NTypE.EQ,51 READ(NCR•3J YST1•YST2 0122
CALL PL0TS<IBUF•1000125) 0123
CALL FACTOR<O.Sl 012q
c SuAROuTINE FOR eINARy cONTJNuous-oISTlLLATlON DIAGRAMS•
CALL PLOTMTtALENX•NTYPE•YSTl1YST21 0125
IF!NTYPE,EQ,~l GO TO 301 0126
c READ AND WRITE TITLES oN pONcHON-sAvARIT ENTHALpy-cONcENTRATION DIAGRAM,
CALL ERTRAfl16•1@ADD PLOTFILE,pSTITL • '> 0127
REAO(NCR,2l (HEAOl<l)•J=l•Sl 0128
REAo<NcR·2> IHEAD2<I>•I=l•S) 0129
REAo<NcR,2> IHEAD3( Il ·1=1 ,5) 0130
READl~CR12l (HEAD~( I l •I=ltSl 0131
READINCR13) NCHBl•NCHB2•NCHB3•NCHBq 0132
1
CALL SvMB0L(l,0 2B.1.Asiz•HEADl•O,O•NcHBll 0133
CALL SyMB0L<l,0•27,8.ASlz•HEAD2•0.0•NcHa2> 013q
CALL 5vMBDL(l,0•27.5,ASlz•HEAp31Q,01NcHBJ) 0135
CALL SyMB0L!l,0 1 27,21ASlz 1 HEADq10,01NcMBq) 0136
ANMF=27.2 0137
GO TO 302 0138
MAlNLlNE Pl.OTTER
301 CONTINUE 0139
c MCCABE-THIELE x-v DIAGRAM TITLES ADDED To THE RuNSTREAMt
CALL ERTRAN(6•t@ADD pLOTFILE•RCTITL • •) Ol'tO
302 CONTINUE Ol'tl
c READ ANO WRITE TITLES oN MCCABE-THIELE OR pONcHON•SAyARlT x~v DIAGRAM.
READ1NCRt2) (HEADl( 1) •1=1•5) Ol't2
READ<NcR12l (HEAD2( I l tl=l •Sl Ol't3
RE AD( r-J CR ' 2 ) ( HE AD3 I I l ti = 1 • 5 ) 0 l 't 't
READ<NcR13) NCHBl•NcHB2•NCHB3 Ol'tS
CALL 5yMB0L(l.01lO.a,ASiz•HEADl•D.O•NcHal> Ol't6
CALL SvMB0L(l,01lO.s,Aslz•HEAD210,0tNCH82l Ol't7
CALL SyMsDL<l.01l0.2,Asiz•HEA0310,0•NcHB3l Ol't8
lF!NTypE.EQ,51 GO TO 303 Ol't9
ANH~=l0,2 0150
303 CONTINUE 0151
ALX't=ALENX+6,0 0152
ALY't=O,O 0153
999 CONTINUE Ol5't
CALL NuMaER<2,B2tANMF•ASiz1DNUMl10.o.-1> 0155
CALL SyMe0L(3.10tANMF•ASiz,1NTA•O.D•-ll 0156
CALL NuMaER<3.2~·ANMF•ASlz•DNUM210.0,-l) 0157
CALL SyMB0L(J.S2.ANMF•ASlz·INTs•D.O•-ll 0158
CALL NuMaER<3,661AtlMF•ASIZ1f.>NUM3tO,O, ... l) 0159
CALL PLOT(ALX~tALY~,9991 0160
STOP 0161
END 0162
MAINL.INE PL,OTTER
SUBROUTINE PLOTTS 0001
C PLOTTING ROUTINE FOR THE TEMPERATURE PROFILE CALCULATED BY THE
C MULTlCOMpONENT DISTILLATION PROGRAM tTHlELEGEDDES•,
DIMENSION ALXT1·'t,S) 1ALYT1q,5l 0002
DIME NS I 0 N Fl ( q I , F2 ( q ) ' F 3 ( 't I , F tf( 't ) 0003
DIMENSION NCH( lOl 1McHARX(q) •NcHARyl'f) ·TlTL(o•5) 000 lf
DIMENSION XAXT<Sl •YAXT<Sl •TlTLT<5> 0005
Dl!·1F.:NSlON x< 100) ,y( 100) •xx< lOOl .yy( 100) •xAx<'+•S> •YAxP•,S> 0006
DIMENSION YLENl'fl 0007
COMMON ALxl•ALyl,ALxT•ALyT.ASiz1Fl1F2•F31F't 0008
COMMON Nc•NcH•NCHARx1NCHARy•Np1Np2,NR•NRF•TITL 0009
COMMON X1Y1XX•YY•XAX,YAX•YLEN 0010
l FORMAT( l 0011
2 FORMAT(A't) 0012
3 F'ORMAT(3l't) 0013
'+ FORMATl2Fl0.21 00 1 41
5 FORMAT<SA61 0015
DATA NcHR•NcR•NpLOT,NTIMES/J,s.1,01 0016
DATA ALXTR•ALXTRl•ALYTR/'t,6•5.619,7/ 0017
RUNl='RUN' 0018
C SET AXIS LENGTHS,
IF1MOD1NP•2)) 102•101•102 0019
101 1FINP.LT.7l LEtlX=Np+l 0020
IFINp.GT.7.AND.Np.LT,171 LENx=IFix(CNp•ll/21 0021
IF(NP.GT,17) LENX;8 0022
GO TO 103 0023
102 lF!NP,LT,8l LENX=NP+l 002't
IF<Np,GT,8.AND.NP.LT,16) LENx=<Np+ll/2 0025
lFINP,GT,16) LENX;:;;8 0026
103 CONTINUE 0027
ALENX=FLOATtLENXl 0028
ALENY=yLEN<NPLOTl 0029
C 'PLOT' SETS,UP.ORlGIN OF AXES,
CALL PLOT<l,0•1.01-3) 0030
c ADD DATA FILE ANO READ TEMERATuRE PROFILE oATA FOR FIRST RuN·
CALL ERTRAN(6•Fl) 0031
SUBROUTINE PLOTTS
REAO<NCRt2) PRO 0032
READINCR13) NMAX1LFREQ1INTEQ 0033
READINCR•q) IY<I>•X(Jl1I=l•NMAXl 003/.f-
C ScALE X AND Y AXES.
CALL SCALE(x1ALENX1NMAX•l) 0035
CALL SCALE(y1ALENY1NMAX•ll 0036
C SELECT AXIS TITLES•
DO 10 J=l•S 0037
XAXT(Jl=XAXCNPLOT1Jl 0038
YAXT(Jl=YAX(NPLOT•Jl 0039
10 CONTINUE OO'tO
NCY=NCHARY!NPLOT) 00 't l
Ncx~-NcHARX(NPLOTl OO't2
C SET UP X AND Y AXES,
CALL MAXIS(O,o.o.o.xAxT•NCx•ALENx10,01x1NMAx+1,.xcNMAx•211nl) 00'+3
CALL Axis<O,D•0.01yAxT·Ncy1ALENyt90,0tyiNMAx+ll1y(NMAx+2)) OO'l-'t
NTIMES=NTIMES+l OO'tS
c CONSTRucT TEMPERATURE pROFILE FOR FIRST RUN.
CALL LINE<X•Y•NMAX1ltLFREQ1INTEQl 00'+6
IF<NR.EQ.ll GO TO loq OO'n
c CONSTRucT TEMpERATuRE pROFlLES FOR REMAINING RuNs,
NRl=~R-1 00'+8
DO 11 J=l•NRl ooq9
READ<NCR121 PRO ooso
READ(N(R13) NM•LFREQ1lNTEQ 0051
READINcR.q) (YY<ll•xx<Il •l=ltNM) 0052
c NExT FOUR LINES SET STARTING VALUE ANo 1NcREMENT1FOR EACH DATA
c SET•EQUAL TO THOSE VALUES COMPUTED BY eSCALE• FOR THE FIRST SET,
XX(NM•t ):X(NMAX+l) 0053
X X I I JM + 2 l =X ( !Hi A X + 2 ) oostt
YYINM+i l=YINMAX+l l ooss
Yy(NH+2>=Y<NMAX+21 0056
NTIMES=NTIMES+l 0057
CALL LINEIXX•YY•NHtl1LFREq,JNTEQl 0058
11 CONTINUE 0059
10'+ CONTINUE 0060
SUBROUTINE PLOTTS
C lH< l TE D I AG R A11 HE A[) l NG T I T L E S ,
NPL:6 0061
DO 2u I=l•3 0062
ALX=ALXT(NPLOT,IJ 0063
ALy=ALyT(NPLbT,I> 006 t+
NcHT=NcH(NpL,.) 0065
DO 21 J=l•S 0066
TITLT<J>=TITL<NpL•JI 0067
21 CONTINuE 0068
NPL=l~PL-1 0069
lf(NPLoLT.5) NpL,.=NPL,.OT 0070
CALL SyMB0L(ALxtALY•ASiz,TlTL,.TtO,OtNCHT> - 0071
20 CONTINUE 0072
C WRITE OUT SYMBOL LEGEND TABLE ABOVE DIAGRAM,
lNTEQ=O 0073
DO 22 I=ltNTIHES 007q
RUNNO=FLOAT<Il 0075
ALYTR=ALYTR-0.J 0076
Al,.YTRl=ALYTR+0,05 0077
CALL SyMB0LIALxTR•ALvTRtASlz1RuNl•0,01NCHR) 0078
ALXTRN=ALXTR+0.56 0079
CALL NUMBERIALxTRN1ALYTR1ASlz•RUNNO•O,Oowl) ,, 0080
\
l IH E Q =I N TE Q + 2 0061
CALL SyMB0L(ALxTRltALYTRltASIZ1INTEQtO,o,-11 0082
22 CONTINUE 0083
C COMPLETE Dl~GRAH BOUNDARY LINE,
CALL PLOT(O.O•ALENY131 OOB'f
CALL PL0TIALENx•ALENY•2) ooes
CALL PL0TIAL,.ENx•O.Ot21 0086
EXTEND=2, 0087
IFIALENx.LT.6,) ExTEND=q· 0088
ALX1=ALENX+ExTEND 0089
RETURN 0090
ENP 0091
SUBROUTINE PLOTTS
SURROUT!NE PLOTFS 0001
c PLOTTING ROUTINE FOR THE VAPOUR AND l_IQUIO FLOWRATE i:ROFlLES
c CALCULATED RY THE MULTICOMPONENT DISTllLATJON PROGRAM tTHIELEGEDDES•t
DIMENSION ALXT1/.f,S)tALYT1'ttS) 0002
DIMENSION fl{'tl•F21'tl•F31'tl•F't('tl 0003
DIMENSION Ncrl( 10) •Nc,:HARX('t) •NcHARy(lf) tT1TL(6t5) ODD 't
DIMENSION XAXTIS) •YAXT(51 ITlTLTl5l 0005
DIMENSION x< 1001,yl100) •xx< 100) •YY( 100) •xAxl'tt5) tYAX('f,5) 0006
DIMENSION YLENl'tl 0007
COMMON ALXl•ALyloALxT•ALyT,Aslz•FltF2•f3tf't 0008
COMMON Nc•NcH•NCHARx1NCHARY•NptNP2tNRtNRF•TlTL 0009
C0 MM 0 iJ X , Y , XX • YY 'X AX , YAX ' YLEN 0010
1 FORMAT ( l 0011
2 FORMATIA'fl 0012
3 FORMAT(Jl'+I. 0013
't FORMAT(2fl0,2l 00 l 't
5 FORMAT(5A6l 0015
DATA NcHR•NcR•NpLOT/5•812/ 0016
DATA ALXTf•ALXTfl•ALxTR•ALxTRl•ALYTR/1.f,6,S,61't.6t't.a,9,0/ 0017
c SET AXIS LENGTHS,
1F(MOD1NP•21> 102•101•102 0018
101 IF(NP,LT,7J LENX=NP+l 0019
IF<Np.GT,7,ANO,Np.LT,171 LENx=IFIX(INp+1)/2l 0020
lF(l~P.GT.171 LEl~X=B 0021
GO TO 103 0022
102 lFINP.LT,8) LENX=NP~l 0023
IF<NP.GT,0,AND.NP.LT,16) LENX=INP+ll/2 0021.f
lf(NP.GT.16) LENx=a· 0025
l 03 cotn I NUE 0026
ALENX=FLOAT<LENX) 0027
ALENY=YLENINPLQT) 0028
c 'PLOT' SETS THE ORIGIN OF THE AxEs,
CALL PLOT(ALXl.o,o,-3) 0029
SUBROUTINE PLOTFS
c Auo DATA FILE AND SEARcH FOR THE cORREcT SET OF DATA. (SET •NRF'l
CALL ERTRAN(6•F2) 0030
DO 10 J=l•NRF 0031
C . LIQUID pROFILE DATA,
READ1NCR12) PRO 0032
READ ( !JcR, 3 l MMAX, LFREC~, I NTEQ 0033
READINCR•q) IY!Il•X(Jl,I=11NHAXI 003'i
C VAPOUR pROflLE DATA,
READ(NCRt2) PRD 0035
READ<NcR,3> NHAX1LFREUl•INTEQl 0036
REAO<NcR.ql (yy(Il 1xx<Il1I=l.NMAXl 0037
10 CONTINUE 0038
C SCALE AXES,
CALL SCALE(X1ALENXtNMAX•lJ 0039
CALL SCALECy1ALENY•NMAX•l> OO'fO
c SET vApOuR pROFILE STARTING yALuE,ANo lNcREMENT EQUAL TO THOSE
C VALUES COMPUTED BY •SCALE• FOR THE Llc~UID pROFit.,E DATAt
XX (NMAX+l l=X (NMAX+l) OO"f l
xx<NMAX+2>=x<NMAX+2) 00'+2
yy(NMAx+l >=y<NMAX+l) OD'f 3
Yy(NHAX+2l=y<NMAX+2l OO'f 'i
c SELECT Axis TITLES.
DO 11 J=l•S OO'fS
XAXT!Jl=XAXINPLOT•JI 00'+6
YAxT<Jl=yAx<NPLOT•JI ooq7
11 CONTINUE 00'+8
Ncy=NCHARY!NPLOT) OO't9
Ncx=~NcHARx<NPLOT> ooso
c SET UP x AND y AxEs.
CALL HAXIStO,o,o.n,xAXT•NCX•ALENX•D.O·XcNMAX+l1•X1NMAx•21 ·~1) 0051
CALL AXlS(O,O•O.O•YAXT•NCY1ALENy,90.o.y(NMAx+l),y(NMAx+2)) 0052
C PLOT LIQUID PROFILE. ,
CALL LINECX•Y•NMAX1l•LFREQ,INTEQ) 0053
C PLOT VAPOUR PROFILE,
CALL LINE(XX1YY•NMAX1l1LFR~Ql•INTEQl1 OOS'f
SUBROUTINE PLOTFS
C SELECT DIAGRAM HEADING TITLES,
NPL=6 0055
DO 20 I=l •3 0056
ALx=ALxT(NPLOT,I) 0057
ALy=ALyT(NPLOT,I> 0058
NcHT=NcH ( l~pL) 0059
DO 21 J=l•S 0060
TITLT<Jl=TITL<NPL•Jl 0061
21 CONTINUE 0062
NPL=NPL .. 1 0063
IF<NPL•LT,Sl NpL=NPLOT QQ6q
C WRITE TITLES AROVE DIAGRAM.
CALL 5YMB0L(ALX•ALY1ASIZ•TlTLT,o.o,NcHT) 0065
20 CONTINUE 0066
C WRITE OUT SyHBOL LEGEND ABOVE DIAGRAM,
ALIQ=•LIQ• 0067
AVAP='VAP' 0068
NCHF=3 0069
CALL 5YMB0L<ALXTf1ALYTR•ASiz1AVAP•O,O•NCHFl 0070
ALXTFl=S,6 0071
CALL SYMBOL<ALXTFl•ALYTR1ASlz•ALIQ·O.O.NcHF) 0072
ALYTR=ALYTR-0.3 0073
ALYTRl=ALYTR+0.05 0074*
CALL 5YMB0L<ALXTR11ALYTRl •ASlz1lNTEQl10,01 .. 1) 0075
ALXTR2=ALXTR1+1,0 0076
CALL SYMB0L<ALXTR2•ALYTRl•ASlz•lNTEQ•0.0,-1> 0077
c COMPLETE DIAGRAM souNoARy LINE,
CALL PLOT10.01ALENY13) 0078
CALL PLOT<ALENX•ALENY•2) 0079
CALL PLOT<ALENx•0.012) 0080
ALXl=-AL..Xl 0081
ALyl=At,.ENY+"!,O 0082
RETURN 0083
END ooaq
SUBROUTINE PLOTfS
SUBROUTINE PLOTDS 0001
c PLOTTING ROUTINE FOR A DISTILLATE C0Mp0SITION BAR DlAGRAM•CALCULATEO
c BY THE MULTICOMPONENT DISTILLATION PROGRAM tTHIELEGEDuES•,
DI Mf. NS I 0 N 'A LXT ( If , 5 > • ALYT ( lf , S ) 0002
DIMENSION Fl (lf) •F2<'1l •F3(Lfl •F'+(lf) 0003
D I MENS I ON NCIH l 0 ) • NCH AR X < lf l • NCH AFi y < lf > ' T I TL ( 6 ' 5 I OOO't
DIMENSION XAXT<S> •XPP<351•YAXT(5)1TlTL,.T(Sl . 0005
Dlt1ENSION x< 100) ,y( 100) •xx< 100) •YY( 100) •xAx<'ftSI tYAx«t,Sl 0006
DIMENSION YLEN<lfl 0007
COMMON ALXl•ALyl1ALxT•ALyT1ASlz•Fl1F2•F31Flf 0008
COMMON Nc•NcH•NCHARx1NCHARy1Np,Np21NR1NRF1TITL 0009
COMMON X1Y•XX•YY1XAX1YAX,YLEN 0010
l FOIH1AT( l o al 1
2 FORMAT<Alf) 0012
3 FORMAT(3JLI). .QQ 13
lf FORMAT<2Fl0,2) 00 l 't
5 FORMAT<SA6) 0015
DATA NcR,NpLOT/8,3/ 0016
DATA YMAXl1yMAX2/0.a.o.21 0017
c SET AXIS LENGTHS.
LENX=NC+l 0018
LENAX=NC--1 0019
IF<LENx.GTol8l LENX=lB 0020
ALENX=FLOAT(LENXl 0021
ALENAX=FLOAT<LENAXl / 0022
ALENY=YLEN(NPLOTl 0023
DO 10 J=l •5 002't
XAXT(Jl=XAX<NPLOTtJ) 0025
YAXT(Jl=YAX<NPLOTtJl 0026
10 CONTINUE 0027
Ncx=NCHARXINPLOTl 0028
Ncy=NcHARY(NpLOT) 0029
c 'PLOT• SETS THE ORIGIN Of.THE AXES,
CALL PLOTIALXleALYl•-3> 0030
susROUTlNE PLOTDS
c ADD DATA FILE ANO SEARCH FOR THE cORREcT DATA SET. (SET 'NRF'I
CALL ERTRAN(6,f3l 0031
DO 11 J=l•NRF 0032
REAO<NcR,2) PRD 0033
REAa<NcR13l NMAXtLFREQtINTEQ 0031f
READ<NcR.~l <x<Il •Y(IJ,l=l·NMAXl 0035
11 CONTIIJUE 0036
Y< NMAX+ l l =YMAX l 0037
YChlMAX+21=YMAX2 0038
HEIGHT=0.1'+ 0039
XPAGE=l,O 00'+0
YPAGE= .. Q,3 OD'+ 1
CALL PLOT(0,0•0,0,Jl 00'+2
CALL PLDT<ALENx•o.0.2> OO'f 3
UEL=ALENAX/(NC-1) OO't~
c 'oO' L00p 12 SETS ouT•ANo NuMaERS•THE pOslTIONS OF THE BARS
C REpRESENTlNG EACH COMPONENT,
D0 l 2 J = 1 ot4C 00~5
XPPIJl=XPAGE-DEL/2. 00'+6
COMP=FLOATCJ) 00'+7
IF!J•GT,91 XPAGE=XPAGE-0,07 00'+8
CALL NuMnER<xPAGE•ypAGE•HElGHT•COMp•D.Q• ... ll 00'+9
IF<J•GT,91 XPAGE=XPAGE+0.07 ooso
xPAGE=xPAGE+DEL 0051
12 CONTil~UE . 0052
XP=IALENx/2,l•(NCX*HEIGHT/2,) 0053
YP= .. 0,6 OOS't
C WRITE X AXIS TITLE,
CALL SYMBOL1XP•YP1HEIGHT1XAXT10,0•NCX1 ooss
C SET UP Y AXIS,
CALL Axts10.o,o.01YAXT1NCY·ALENY190,0tY(NMAX+l}•Y(NMAX+2)) 0056
SUBROUTINE PLOTOS
C CONSTRUCT DAR DIAGRAM.
Y1=0•0 0057
DO 13 l=l•NC oosa
YI I )=y( I l*ALENy 0059
CALL PLOT<XpPll),yl.3) 0060
CALL PLOT<xpplI) ,y(tl•2> 0061
XPPP=XPP(l)+DEL 0062
CALL PL0T<xrPP•Y<ll•2) 0063
CALL PLOT<xppp,0.0,21 006't
Yl=YCI) 0065
13 CONTINUE 0066
C SELECT DIAGRAM HEADING TITLES,
NPL=6 0067
DO 20 l=l •3 0068
ALx=ALxT!NPLOTtI) 006'9
ALy=ALyTINPLOT1Il 0070
NcHT=NcH<NPL) 0071
DO 21 J=l 15 0072
TITLT<Jl=TITLINPL•J) 0073
21 CONTINUE 007'i
NPL=NPL-1 0075
IFINPL•LT,S> NPL=NPLOT 0076
C WRITE TITLE ABOVE DIAGRAM,
CALL SyMsDLcALx•ALY•ASIZtTlTLT,o,o,NcHT) 0077
20 CONTINUE 0078
c COMPLETE DIAGRAM eouNDARy LINE.
CALL PL0T(0,0•ALENYt3J 0079
CALL PLOT<ALENx•ALENy•2) 0080
CALL PLOT<ALENx•O.Ot2l 0081
ALyl=ALENy+q,o 0082
RETURN 0083
El'JD 008'1
SUBROUTINE pLoTDS
'
SUBROUTINE PLOTCS
C READ COMPOSITION DATA FOR LIGHT COMPONENT.
READ1NCRt2) PRO 0031
READ(NCR,3> NMAX,LFREQ•INTEQ 0032
READ(.NCR,q) <x<I>•Y(l> 11=1,NMAXJ 0033
YlNMAX+l>=YMAXl OQ3q
Y(NMAX+21=YMAX2 0035
c SELECT Axis TlTLES.
DO 12 J:l •5 0036
XAXT(Jl=XAX<NPLOTtJ) 0037
YAxT(J)=yAx<NPLOT•J) 0038
12 CONTINUE 0039
Ncx=-NCHAR~(NPLOT) 00'+0
Ncy=NCHARYlNPLOTl 00'+1
C SET AXIS LEtJGTHS•
ALENY=YLEN(NPLOT) 00'+2
LENX=NMAX-1 OO't3
ALENX=FLOAT<LENXI QQqq
lFINMAx.GT.191 ALENx=l8. OO"tS
C SCALE X AXIS• <THAY NO.I
CALL ScALE<x1ALENxrNMAx•ll OO't6
C SET UP X AND Y AXES.
CALL MAXISco.o,o.o.xAXT•NCX•ALENx10.o,x(NMAX+l) •X1NMAX+21•~l1 OO"t7
CALL Axis<O,O•O,O•YAXT•NCYtALENy,90,01y(NMAx+ll•y(NMAx•2l> 00'18
IJ TIMES= NT IMES+ l OO't9
c PLOT LIGHT C0Mp0NENT C0Mp0SITION DATA.
CALL LINE1X•Y•NMAXtl1LFREQ,JNTEQi 0050
C READ AND PLOT DATA FOR REMAINING COMPONENTS.
NCl:NC-1 005l
D0 l3 J =1 d'I C l 0052
READ!NcR,2> PRO 0053
READINcR13) NM1LFREQtINTEQ OOS't
READ(NCR,ql (XX(l),yy<1>,I=l1NMl 0055
XX<NM+ll=XINMAX+l) 0056
xxcNM•21=X<NMAX+2l 0057
YYINM+ll=YCNHAX+ll 0058
yy(NM+2l=YINMAX+2} 0059
NTIMES=NTIMES+l 0060
CALL LINE<XX•YY•NM•l•LFREQ,INTEQl 0061
13 COll!TINUE 0062
SUBROUTINE PLOTCS
c DETERMINE SIZE OF SYMBOL LEGEND TABLE,
NCNT=5 0063
ALVTRS=6.7 0064+
IF ( NT IMES •GT • l 5 I ~l CNT= 6 0065
IF<NTIMES.GT1l8) NCNT=7 0066
IF<NTIMES,GT,21) NCNT=8 0067
lFINTIHES,GT,241 NCNT=9 0068
IFINTIMES,GT•27J -NCNT=!O 0069
lf(NCNT,EQ16l ALyTRS=7,0 0070
lf(tlcNT,EQ.71 ALyTRS=7.3 0071
IFINCNT,EQ•~> ALYTRS=7,6 0072
lf<NCNT,EQ·91 ALVTRS=7.9 0073
IFINCNT.EQ.101 ALYTRS=8,2 007't
c SELECT DIAGRAM HEADING TITLES,
NPL=6 0075
DO 20 I=l•3 0076
ALX=ALXT(NPLOT,11 0077
ALv=ALyT!NPLOT,JI 0078
NCHT=NCHINPL) 0079
DO 21 J=l•S 0080
TITLT<Jl=TITLINPL•J> 0081
21 CONTINUE 0082
NPL=NPL-l 0083
IFINPL·LT,S> NPL=NPLOT 0084+
C WRITE TITLE ABOVE DIAGRAM.
CALL 5YMB0LcALX•AlY•ASlZ•TITLT,o,o,NcHT) 0085
20 CONTINUE 0086
SUBROUTINE PLOTCS
I
C WRITE OUT SYMBOL LEGEND ABOVE DIAGRAM.
INTEQ:O 0087
NTIM=O 0088
DO 22 J=l•3 0089
ALYTR=ALYTRS 0090
DO 23 I ;:q • NCNT 0091
NTIM=NTIM+l 0092
C0MPNO=FL0AT(NTIMl 0093
ALYTR=ALYTR-0.3 009'i
ALYTRl=ALYTR+D,05 009S
CALL SyMaOLIALxTR•ALyTRtASiz1cOMpl10tOtNCHR) 0096
ALXTRN=ALXTR+0,7 0097
CALL NuM5ERIALxTRN1ALYTR.ASiz1cOMpNO•O.O,-J) 0098
INTEQ=INTEQ+l 0099
CALL SyMsOL(ALxTRl1ALYTRl1ASlz1INTEQ10,01•l) 0100
IF!NTIM,EQ.NTIMESl GO TO 210 0101
23 coNTINuE 0102
ALXTR=ALXTR+1,5 0103
ALxTRl=ALXTRl+1.s 01 O'i
22 CONTINUE 0105
210 CONTINUE 0106
C COMPLETE DIAGRAM BOUNDARY LINE,
CALL PLOT(O,O•ALENY13) 0107
CALL PLOT<ALENX•ALENY•2) 0108
CALL PLOTIALENX1D,012l 0109
RETURN 011 0
END 0 11 1
. I
SUBROUTINE PLQTCS
II ·-1
SUBROUTINE pLOTBT(ALENX,NTYPEl 0001
c PLOTTING RouTINE FOR coNSTRucTION OF A MCCABE-THIELE DIAGRAM
c FOR A eINARy DATCH-DtSTlLLATlON SySTEM,OpERATING UNDER EITHER
c CONSTANT OR VARlABLE REFLUX.
DIMENSION XAXt5) •YAXt5) 'X(55) •Y(55) •XEQ(55) 1YEQ1SS) 0002
1 FORMAT< ) 0003
2 FORMAT!ISl oooq
i FORMATl212X•f6.q) l 0005
q FORMAT<F7,q•Fl0.2l 0006
5 FORMAT!SA6) 0007
DATA ALENX1ALENy1ASiz•NCRllO,•lO,,O,lq,3; 0008
DATA xsTRT1ySTRT1XINT•YlNT/Q,o.o.o.o.1,o.11 0009
c ADD ELEMENT AND READ AxIS TITLES•
CALL ERTRANc6••@ADD PLOTFILE,AXISMT , 'l 0010
READINCR15) IXAXIJ)1J=l•Sl OD 11
READ<NcR,5) (YAX<J>•J=l•S) 0012
Rf.::ADINcR1ll NCAX1HCAY 0013
Ncx=-NcAx 00 l '*
Ncv=NCAY 0015
c 'PLOT' SETS.THE ORIGIN OF THE AxEs.
CALL PLOTll,0•!,01-J) 00!6
c SET UP AxEs AND START cONSTRucTION OF MCCAeE-THIELE DIAGRAM.
CALL AxIS(O.OtO,O•XAXtNCX•ALENX•O,O•XSTRT•xINT) 0017
CALL Axls<o.o.a.o.yAX•NCY•ALENY•90,0,ySTRT,yINT) 0018
CALL PLOT(0,0•ALENY•3l 0019
CALL PL0TIALENx•ALENy•2l 0020
CALL PLDT<ALENx•o.0.21 0021
CALL PLDT<0,0•0,0•31 0022
CALL FL0T(ALENx•ALENY•2l 0023
SUBROUTINE PLOTST
"
\,
c ADD DAT~ FILE AND READ EQUILIBRIUM DATA,
CALL ERTRAN16••@ADD BDPLOT. • 'l 0 0 2.lf
READ(NCR,2> NDAT 0025
READ(NcR,31 <xEQ<lltyEQ<IltI=l,NDAT) 0026
XEQINDAT+ll=XSTRT 0027
XEQ~NDAT+21=XlNT 0028
YEQINDAT+ll=YSTRT 0029
yEqlNDAT+21=yINT 0030
c PLOT EQUILieRIUM CURVE•
CALL LINEcXEQ•YEQtNDAT,1,0,11 0031
c READ AND PLOT DATA FOR COMPLETING MCCAeE~THIELE DIAGRAM,
DO 20 J=l•2 0032
READ(NCR,2) MT 0033
READ(NcR,3) <x<Il•Y<ll·I=l,MT) 0034+
REAO<NCR,3> YlNCPTtXO 0035
c PLOT OPERATING LINE,
YNCPT=YlNCPT•lO, 0036
XDA=XD•lO, . 0037
CALL PLOT<O,O•yNcpTt3l 0038
CALL PLOT<xoA•xoA•2l 0039
X(MT+l>=XSTRT OO'tO
X<MT+2J=XINT 00'+ 1
ylMT+l>=ySTRT 00'+2
Y<MT+2)=y1NT 00'+3
c INSERT MCCAeE~THIELE STEppED STAGES,
CALL LINE(X•Y•MT,1,0,11 OOlf '+
SUBROUTINE pLQTBT
...-
,I--
SUBROUTINE pLQTBT
·-
·-
\ \
SUBROUTINE pLOTMTCALENX•NTyPE•YSTl1YST2) 0001
c PLOTTING ROuTINE FDR coNsTRucTION Of A MccAaE-THIELE OR pONcHON~
c SAVARIT DIAGRAM FOR A BINARY CONTINUOUS-DlsTILLATION SYSTEM,
DIMENSION EXAXc5> •EYAX(5) •HLVc 105) 1XHI( 105) 0002
Dlt1f:NSION XAX(5) 1YAXISl •Xl55J •Y(55) •XEQCSS> 1YEQ(55l 0003
Dlf1ENS10N XOP< !OSJ ,yQp( 1051•XQ(15) 1YQI 15) •ZFLO( 15) •ZfSI 151 OOO't
1 FORMAT( J . 0005
2 FORMAT(IS> 0006
3 FORMAT<212X1f6,qJ l 0007
q FORHAT<F7,q•Fl0,21 0008
5 FORMATISA6l 0009
b FORMATC2El2,6J 0010
7 FORMAT(f6,41E12,61 0011
DATA AsTRT1eSTRT1Asiz•NCRll,D1l,010,1q,a; 0012
IFINTYPE.EQ.4) GO TO 101 0013
c
c coNSTRucTION OF ENTHALPY ... CONCENTRATION DIAGRAM·
c
c ADO ELEMENT ANO READ AXIS TITLES.
CALL ERTRANc6••@ADD PLOTFILE,AXISPS , '> 001 't
READCNcR,51 <EXAX(J)1J=l1SI 0015
REAO<llCR1Sl <EYAXIJl 1J=:l ,S> 0016
READ(NCR1ll NCEAX•NCEAY 0017
NCEX=,..tJCEAX 0018
NCEY=NCEAY 0019
ALE:MX= l 0, 0020
ALENY=1S, 0021
SUBROUTINE pLQTMT
c •pLOT• SETS THE ORIGIN Of THE ENTHALPY DIAGRAM·
c (IE. LO~ER LEFT~HAND CORNER)
CALL PlOT<l.0•13,0,~3) 0022
ASTRT=o.o 0023
BSTRT= ... 12,0 002'1
XSTRT=O,CJ 0025
XINT=D.1 0026
YSTRT=y5T2 0027
yINT=(ySTl-yST21/ALENy 0026
c 'AxlS' SETS UP THE y Axis.
CALL Axis<D.010,01EyAx1NcEytALENy•90,o,ysTRT•YINT> 0029
xsT=ABS(yST2/YlNT> 0030
c 'AXIS' SETS UP THE X AXIS,
CALL AxIS(O,O•xST•ExAx1NcEx•ALENx•0,01xSTRT•xINT) 0031
c ADD DATA FILE,
CALL ERTRANc6•t@ADD BDPLOT • • '> 0032
c READ COORDINATES OF KEY pOINTS ON ENTHALPY DIAGRAM• -;
c (IE. •DEL• pOINTS AND FEEa.sOTTOMS AND DISTILLATE POSITIONS)
READ1NCR16) DELD1DELB 0033
READtNcR,7) xo.Ho 003'1
READ<NcR,71 XB•HB 0035
READINcR,7> Z•HF 0036
XD=XD""!O, 0037
XB=XB*lO, 0038
Z=Z•lO. 0039
DELD=DELOIYINT+xsT OO'tO
DELB=DELBIYINT+XST OO't 1
HD;:;:HO/yINT+xsT 00'+2
H1~=HBlv I tJT+xsr 00'+3
HF=HFIYINT+xsr OO'f 'f
c IWsERT LlNEs REpREsENTING ovERALL BALANCES ON ENTHALPY DlAGRAMt
CAL.L PLOT<XB1HB13) OO'tS
CALL PL0TIXBtDELBt2) 00'16
CALL PL0T<xu•DELD•2) 00'17
CALL PL0T(XD•HD•2> OO'f 8
CALL SYMB0L(Z•HFtASiz,l•O.O•Rl) DO'f 9
suaROUTlNE PLOTMT
'
·.'}
DELDD=DELD+o.2 ooso
X[)D=XD+ASIZ 0051
DELXD=OELD+o, l 0052
DH.BB=f;ELB-0 • 2 0053
XBB=XB+ASIZ OOS't
DELXB=PELB-Q,3 ooss
HFF=HF+0.2 0056
ZfF=Z-0,2 0057
C MARK KEY POINTS ON ENTHALPY DIAGRAM,
CALL SyMB0LcZFF•HFF1ASIZ13510,0••l1 0058
CALL 5YMR0L(XD1DELD01ASiz12810101-ll 0059
CALL SyMBDL<XDD•DELxD•ASJz,3310,0•-ll 0060
CALL SyMBOL<XB•DELBB1ASlz12810,o.-11 0061
CALL SyMB0L(XBB•DELxB•ASiz13ltO,Ot•ll _0062
c READ NuMsER OF DATA pOINTS AyAILAeLE FOR PLOTTING ENTHALPY cuRvEs.
READcNCR12) NENTH ' 0063
c •oo• LOOp 11 READS oATA AND PLOTS THE ENTHALPY CURVES.
C LIQUID ENTHALPY DATA SUPPLIED FIRST IN DATA FILE BY •sINARy•,
DO 11 1=1•2 006't
READ<NcR17) <xyH(J) •HLV(J) •J=l 1NEl\JTHI 0065
XYHINENTH+ll=XSTRT 0066
XYH(NENTH+21=XINT 0067
HLV(NENTH+ll=YSTRT 0068
HLVINENTH+21=YINT 0069
C PLOT ENTHALPY CURVES,
CALL LINE(XYH•HLV1NENTH•l•O•l1 0070
11 CONTINUE 0071
C COMPLETE BOUNDARY LINE,
CALL PLOT<0,01Al~EllY13) 0072
CALL PLOTCALENX•ALENY•2) 0073
CALL PLOT<ALENX•0,0121 007't
CALL PLOT(0,0•0,012) 0075
10 l C 0 NT I I~ UE 0076
SUBROUTINE PLOTMT
c
c CONSTRUCTION OF x~v DIAGRAM.
c
ALENX=10' 0077
ALENY=IO. 0078
c ADD ELEMENT AND READ Axis TITLES.
CALL CRTRAN(6••@ADD pLUTFILE•AXISMT , t) 0079
REAOIMCRt5l IXAX(J) •J=l•5l 0080
READ<McR,51 <YAX(Jl •J=l •Sl 0081
REAO(NCRtll NCAXtNCAY 0082
Ncx=-NCAX 0083
Ncy=IKAY OOS't
c 'PLOT'. SETS THE ORIGIN OF THE AxEs.
CALL PL0T(ASTRT•aSTRT••3) 0085
XSTRT=o,o 0086
XINT=O,l 0087
.. YSTRT=o.o 0088
YINT=0.1 0089
c SET UP AxEs ANo sTART cONSTRucTlON Of x•y oIAGRAM,
CALL AXIS(O,O•O,O•XAX•NCX•ALENX•D,O•XSTRT1XINT1 0090
CALL Axist0.0 1 0.01yAx•NCY•ALENyt90.DtySTRT,ylNTl 0091
CALL PLOTIO,O•ALENy,JI 0092
CALL PLOT<ALENx•ALENY•21 0093
CALL PLOT(ALENx•0.0121 009q
CALL PLOT(0,0•0,0•3l 0095
CALL PLOT<ALENx•ALENy•21 0096
IF<NTYpE,EQ,Sl GO TO 102 0097
c Aoo DATA FILE IF ENTHALpy-cONc, DIAGRAM HAS NOT sEEN pLOTTEp·
CALL ERTRAN(6••@ADD BDPLOT, • '> 0098
102 CONTIMuE 0099
c READ EQUILiaRiuM CURVE DATA.
READ(NCRt2) NDAT. 0100
READINCR•3) (XEQ(J),yEQ(!)tl:ltNDA.TI 0101
XEQINDAT+l>~xsTRT 0102
XE Q I ND AT + 2 l =X I IH 0103
YEQ<NDAT+l)=YSTRT 01oq
"r YEQINDAT+2l=YINT ',,pl 05
SUBROUTINE pLOTMT
--,
)'
SUBROUTINE PLOTMT
'--..~
~ ....,
..,..--
c READ COORDINATES or pOINT OF INTERSECTION OF OPERATING LINES
C FOR PONCHON-SAVARIT x-v DIAGRAM,
READ(N(R,3) XQ(2)•YQ!2) 0137
XQ12l=XQ(2)•10, 0138
YQ12l=yn,<21•10, 0139
10'5 coNTINuE 0 l 'to
x<MT+l>=xsnn D 1'+1
X<MT+ 2 l = XI tJT 0 1 '+ 2
Y<MT+ll=-ySTRT 0 1 '+ 3
YIMT+2J=yINT 01'+'+
c I NsERT MCCAHE .. Ttt I EL.E STEppEo ST AGES'
CALL LINE(X•Y•l1T1l101l1 0 l '+5
C NUMBER STEppED STAGES.
ANO:O. 01'+6
MT 1 =MT,.,. l 01 '+7
DO 21 I=2•!'1T1•2 01 '+8
XANO=x111•10.-o,1 0 l 't9
YANO=vtI>•10.+o.1 0150
CALL NUMBER(XANQ,~ANO•ASiz,ANOtO,o,~11 0151
ANO=ANO+l, 0152
21 cotH'l NUE 0153
YPl=0,21 0 l S't
vr2=0.o 0155
INT=22 0156
C INSERT FEED AND SIDE STREAM Q LINES,
DO 30 1=2•NN 0157
z=zFSIJl•lO, 0158
z1=z+o.os 0159
lflZFLOI l l oGT,O,Ol Nz=35 0160·
IFIZFLOIIl.LT,O,Ol Nz=q8 0161
CALL SvMBDL(zl,ypl,ASiz•Nz.0,0,-1> 0162
CALL PLOT!z,0,0•31 0163
CALL PL'OT!z,z•2) 016'i
CALL PLOT<xQ<l>•va<Il,2) 0165
30 CONTINUE 0166
RETURN 0167
F. !\ID ~68
'~
SUBR~UTlNE PLOTMT
l::;I