program prog7111111

Upload: damian-gonzalez

Post on 29-Feb-2016

216 views

Category:

Documents


0 download

DESCRIPTION

..........................

TRANSCRIPT

PROGRAM PROG72

! Calculo de flash en equilibrio

!

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

OPEN (UNIT=3, FILE="DATA72.DAT", STATUS="OLD",ERR=18)

OPEN (UNIT=1, FILE="PRN")

C READ FLASH TEMPERATURA, oF =T

C READ FLASH PRESION, psia =P

C READ NUMERO DE COMPONENTES =NUM

C READ ENTRADA Y CONSTANTES DE EQUILIBRIO DE LOS COMPONENTES =M,K

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

C CALCULO DE LAS FRACCIONES DE LOS COMPONENTES EN LA LINEA DE ENTRADA

DO I=1,NUM

N(I)=M(I)/SUM

END DO

TOTAL=0.0

DO I=1,NUM

TOTAL=TOTAL+N(I)

END DO

C CHECK WEATHER THE FEED IS ALL LIQUID OR VAPOR

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

C CALCULO DE LAS CONSTATES E Y E USADO POR XOSTECKE

E=0.0

F=0.0

DO I4=1,NUM

E=E+C(I4)

F=F+(C(I4)**2/M(I4))

END DO

C CALCULO DE R1, EL R/L NUEVO RATIO

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

C CALCULO DE LA FRACCION X EN LA FAE LIQUIDA Y LA FRACCION Y DE VAPOR

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

C CALCULO DE LA FRACCION MOL EN LA FASE LIQUIDO Y VAPOR

C

DO I=1,NUM

X1(I)=L(I)/VAL1

Y1(I)=V(I)/VAL3

END DO

C CALCULO DE LA FRACCION MOL TOTAL EN LA FASE LIQUIDA Y VAPOR

C

ADD1=0.0

ADD2=0.0

ADD3=0.0

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)

C PRINT THE RESULTS ONTO THE PRINTER

CALL PAPER (N,L,X1,V,Y1,VAL1,VAL2,VAL3)

GO TO 999

900 WRITE (*,300)

300 FORMAT (3X,"TE FEED COMPOSITION IS ALL LIQUID")

GO TO 999

1000 WRITE (*,400)

400 FORMAT(3X,"THE FEED COMPOSITION IS ALL VAPOR")

CLOSE (UNIT=3, STATUS="KEEP")

CLOSE (UNIT=1)

999 STOP

END

C

C**************************************************

C THIS THE PROGAM OUTPUTS THE RESULTS ON THE SCREEN

C**************************************************

C

C

SUBROUTINE OUTPUT (N,L,X1,V,Y1,VAL1,VAL2,VAL3)

DIMENSION X1(15),Y1(15),V(15)

REAL K(15),M(15),N(15),L(15)

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-))

C FORM FEED THE PRITING PAPER ON TOP OF THE NEXT PAGE.

WRITE(1,*) CHAR(12)

RETURN

END