Professional Documents
Culture Documents
DIMENSION C(15),V(15),X1(15),Y1(15)
REAL K(15),L1,L(15),M(15),N(15)
COMMON/DATA1/NUM,T,P,M,K
COMMON/DATA2/ADD1,ADD2,ADD3
READ (3,*,ERR=19)T
READ (3,*,ERR=19)P
READ (3,*,ERR=19)NUM
DO I=1,NUM
READ (3,*,ERR=19)M(I),K(I)
END DO
GO TO 10
18 WRITE (*,100)
100 FORMAT (5X,"DATA FILE DOES NO EXIST")
GO TO 999
19 WRITE (*,110)
110 FORMAT (5X,"ERROR MESSAGE IN THE DATA VALUE")
GO TO 999
10 WRITE (1,120)
120 FORMAT(//,20X,"MULTICOMPONENT EQUILIBRIUM FLASH
CALCULATIONS")
SUM=0.0
DO I=1,NUM
SUM=SUM+M(I)
END DO
DO I=1,NUM
N(I)=M(I)/SUM
END DO
TOTAL=0.0
DO I=1,NUM
TOTAL=TOTAL+N(I)
END DO
SUM1=0.0
DO I1=1,NUM
SUM1=SUM1+N(I1)*K(I1)
END DO
IF(SUM1.GT.1.0) THEN
GO TO 60
ELSE
GO TO 1000
ENDIF
C GUESS R=L/V
60 R=1.0
65 SUM3=0.0
DO I3=1,NUM
C(I3)=(M(I3)*(K(I3)-1.0)*(R+1.0))/(K(I3)+R)
END DO
E=0.0
F=0.0
DO I4=1,NUM
E=E+C(I4)
F=F+(C(I4)**2/M(I4))
END DO
R1=ABS((F*R-E*(R+1.0))/(F+E*(R+1.0)))
IF ( ABS(E).LT.0.001) THEN
GO TO 90
ELSE
R=R1
GO TO 65
ENDIF
90 L1=0.0
V1=0.0
DO I5=1,NUM
L(I5)=(M(I5)*R1)/(K(I5)+R1)
V(I5)=M(I5)-L(I5)
L1=L1+L(I5)
V1=V1+V(I5)
END DO
VAL1=0.0
VAL2=0.0
VAL3=0.0
DO I6=1,NUM
VAL1=VAL1+L(I6)
VAL2=VAL2+M(I6)
VAL3=VAL3+V(I6)
END DO
DO I=1,NUM
ADD1=ADD1+X1(I)
ADD2=ADD2+N(I)
ADD3=ADD3+Y1(I)
END DO
C
C PRINT THE RESULTS ON THE SCREEN
C
CALL OUTPUT(N,L,X1,V,Y1,VAL1,VAL2,VAL3)
GO TO 999
GO TO 999
999 STOP
END
C
C**************************************************
C THIS THE PROGAM OUTPUTS THE RESULTS ON THE SCREEN
C**************************************************
C
C
COMMON/DATA1/NUM,T,P,M,K
COMMON/DATA2/ADD1,ADD2,ADD3
WRITE(*,130)
130 FORMAT(2X,"CALCULO FLASH EN EQUILIBRIO MULTICOMPONENTES")
WRITE(*,140)T,P
140 FORMAT(F6.1,1X,"DEG.F",1X,"AND",1X,F6.1,1X,"PSIA")
WRITE(*,150)
150 FORMAT(79(1H*))
WRITE(*,160)
160 FORMAT(/,1X,"COMPONENTE",1X,"VALOR DE
K",6X,"FEED",16X,"LIQUIDO",LINEA)
WRITE(*,170)
170 FORMAT(15X,"VAPOR")
WRITE(*,180)
180 FORMAT(/,1X,"NUMERO",12X,"MOL/h",2X,"FRACCION
MOL",2X,"MOL/h",LINEA)
WRITE(*,190)
190 FORMAT(2X,"FRACCION MOL",2X,"MOL/h",2X,"FRACCION MOL")
WRITE(*,200)
200 FORMAT(78,(1H-))
DO I=1,NUM
WRITE (*,210) I,K(I),M(I),N(I),L(I),X1(I),V(I)
210 FORMAT (1X,I2,5X,F5.3,2X,F9.3,2X,F8.3,3X,F9.3,2X,F8.3,2X,F9.3LINEA)
WRITE(*,220)Y1(I)
220 FORMAT(2X,F8.3)
END DO
WRITE(*,230)
230 FORMAT(78,(1H-))
WRITE(*,240)VAL2,ADD2,VAL1,ADD1
240 FORMAT(2X,"TOTALES",7X,F9.3,5X,F5.3,3X,F9.3,5X,F5.3,LINEA)
WRITE(*,250)VAL3,ADD3
250 FORMAT(2X,F9.3,5X,F5.3)
WRITE(*,260)
260 FORMAT(78,(1H-))
RETURN
END
C
C**************************************************
C THIS PROGRAMS PRINTS THE RESULTS ONTO THE PRINTER
C**************************************************
C
C
SUBROUTINE PAPER(N,L,X1,V,Y1,VAL1,VAL2,VAL3)
DIMENSION V(15),X(15),Y1(15)
REAL K(15),L(15),M(15),N(15)
COMMON/DATA1/NUM,T,P,M,K
COMMON/DATA2/ADD1,ADD2,ADD3
WRITE(1,270)
270 FORMAT(/,"CALCULO FLASH PARA MULTICOMPONENTES EN
EQUILIBRO",LINEA)
WRITE(1,280)T,P
280 FORMAT(F6.1,1X,"DEG.F",1X,"AND",1X,F6.1,1X,"PSIA")
WRITE(1,290)
290 FORMAT(80(1H*))
WRITE(1,300)
300 FORMAT(/,1X,"COMPONENTE",1X,"VALOR DE
K",6X,"FEED",16X,"LIQUIDO",LINEA)
WRITE(1,310)
310 FORMAT(15X,"VAPOR")
WRITE(1,320)
320 FORMAT(1X,"NUMERO",12X,"MOL/h",2X,"FRACCION
MOL",2X,"MOL/h",LINEA)
WRITE(1,330)
330 FORMAT(2X,"FRACCION MOL",2X,"MOL/h",2X,"FRACCION MOL")
WRITE(1,340)
340 FORMAT(80(1H-))
DO I=1,NUM
WRITE(1,350)I,K(I),M(I),N(I),L(I),X1(I),V(I)
350 FORMAT(1X,I2,5X,F5.3,2X,F9.3,2X,F8.3,3X,F9.3,2X,F8.3,2X,F9.3,LINEA)
WRITE(1,360)Y1(I)
360 FORMAT(2X,F8.3)
END DO
WRITE(1,370)
370 FORMAT(80(1H-))
WRITE(1,380)VAL2,ADD2,VAL1,ADD1
380 FORMAT(2X,"TOTALES",7X,F9.3,5X,F5.3,3X,F9.3,5X,F5.3,LINEA)
WRITE(1,390)VAL3,ADD3
390 FORMAT(2X,F9.3,5X,F5.3)
WRITE(1,400)
400 FORMAT(80(1H-))
WRITE(1,*) CHAR(12)
RETURN
END