elv.txt

5
program burbuja implicit none real*8 x(2),Tc(2),Pc(2),w(2),m(2),alfa(2),Tr(2),Aa,Ba,Ca,Pv(2),T,P,k(2),y(2) ,ks(2,2),y1,y2 real*8 A,B,Z,aml,bml,amv,bmv,Zl,fil(2),fiv(2),ai(2),bi(2),a12,r2,t1,t2,t3,R real*8 Zv,tol,sumay,alfas(3),g(3),Ja(3,3),Inv(3,3,50),k12,vl,vv,pi1,pi2,pi3, sumita0 real*8 dpi1,dpi2,dpi3,yn,st,coef,ainv,binv,cinv,dinv,einv,finv,ginv,hinv,den ,ig(3,50) real*8 de1,de2,dZ,dZv,dA,dB,dt1,dt2,dt3,as(2,2),dfiv(2,2),sumita,df_dni,sumi taj real*8 ndp_dnj,nd2f_dninj,te1,te2,dpdni_dpdv,dlnfv_dy,dgi_dlnkj,dgi_dlnp,dgn c_dlnk,dgnc_dlnp real*8 Jac(3,3) real*8 F0,F1,F2,F3,F4,F5,F6,F7,DF0,DF1,DF2,DF3,DF4,DF5,DF6,DF7 real*8 DPV,DP1,DP2,DPNI,DPNJ integer i,j,h,n external Z tol=0.001 r2=sqrt(2.0) de1=1+r2 de2=1-r2 ks(1,1)=0 ks(2,2)=0 ks(1,2)=0.1138 ks(2,1)=ks(1,2) T=314.980 P=23.73 x(1)=0.2207 x(2)=1-x(1) Tc(1)=304.12 Tc(2)=594.6 Pc(1)=73.74 Pc(2)=22.9 w(1)=0.225 w(2)=0.445 R=83.144 k(1)=4.52424 k(2)=0.01925 do i=1,2 Tr(i)=T/Tc(i) m(i)=0.37464+1.54226*w(i)-0.26992*w(i)**2 alfa(i)=(1+m(i)*(1-Tr(i)**0.5))**2 !k(i)=(Pc(i)/P)*exp(5.42*(1-Tc(i)/T)) y(i)=k(i)*x(i) alfas(i)=alog(k(i))! ai(i)= (0.45724*(R*Tc(i))**2/Pc(i))*alfa(i) bi(i)=0.0778*R*Tc(i)/Pc(i) end do write(*,*)'Tr',Tr write(*,*)'m',m write(*,*)'alfa',alfa write(*,*)'k',k write(*,*)'y',y write(*,*)'ai',ai write(*,*)'bi',bi alfas(3)=alog(P)

description

elv.txt

Transcript of elv.txt

Page 1: elv.txt

program burbuja implicit none real*8 x(2),Tc(2),Pc(2),w(2),m(2),alfa(2),Tr(2),Aa,Ba,Ca,Pv(2),T,P,k(2),y(2),ks(2,2),y1,y2 real*8 A,B,Z,aml,bml,amv,bmv,Zl,fil(2),fiv(2),ai(2),bi(2),a12,r2,t1,t2,t3,R real*8 Zv,tol,sumay,alfas(3),g(3),Ja(3,3),Inv(3,3,50),k12,vl,vv,pi1,pi2,pi3,sumita0 real*8 dpi1,dpi2,dpi3,yn,st,coef,ainv,binv,cinv,dinv,einv,finv,ginv,hinv,den,ig(3,50) real*8 de1,de2,dZ,dZv,dA,dB,dt1,dt2,dt3,as(2,2),dfiv(2,2),sumita,df_dni,sumitaj real*8 ndp_dnj,nd2f_dninj,te1,te2,dpdni_dpdv,dlnfv_dy,dgi_dlnkj,dgi_dlnp,dgnc_dlnk,dgnc_dlnp real*8 Jac(3,3) real*8 F0,F1,F2,F3,F4,F5,F6,F7,DF0,DF1,DF2,DF3,DF4,DF5,DF6,DF7 real*8 DPV,DP1,DP2,DPNI,DPNJ integer i,j,h,n external Z tol=0.001 r2=sqrt(2.0) de1=1+r2 de2=1-r2 ks(1,1)=0 ks(2,2)=0 ks(1,2)=0.1138 ks(2,1)=ks(1,2) T=314.980 P=23.73 x(1)=0.2207 x(2)=1-x(1) Tc(1)=304.12 Tc(2)=594.6 Pc(1)=73.74 Pc(2)=22.9 w(1)=0.225 w(2)=0.445 R=83.144

k(1)=4.52424 k(2)=0.01925 do i=1,2 Tr(i)=T/Tc(i) m(i)=0.37464+1.54226*w(i)-0.26992*w(i)**2 alfa(i)=(1+m(i)*(1-Tr(i)**0.5))**2 !k(i)=(Pc(i)/P)*exp(5.42*(1-Tc(i)/T)) y(i)=k(i)*x(i) alfas(i)=alog(k(i))! ai(i)= (0.45724*(R*Tc(i))**2/Pc(i))*alfa(i) bi(i)=0.0778*R*Tc(i)/Pc(i) end do write(*,*)'Tr',Tr write(*,*)'m',m write(*,*)'alfa',alfa write(*,*)'k',k write(*,*)'y',y write(*,*)'ai',ai write(*,*)'bi',bi alfas(3)=alog(P)

Page 2: elv.txt

!fugacidades del líquido aml=0 bml=0 do i=1,2 bml=bml+x(i)*bi(i) do j=1,2 as(i,j)=(1-ks(i,j))*(ai(i)*ai(j))**0.5 aml=aml+x(i)*x(j)*as(i,j) enddo end do A=aml*P/(R*T)**2 B=bml*P/(R*T) write(*,*)'aml',aml write(*,*)'bml',bml write(*,*)'A',A write(*,*)'B',B Zl=Z(A,B) vl=Zl*R*T/P write(*,*)'Zl',Zl write(*,*)'vl',vl

do i=1,2 if (i==1) then n=2 else n=1 endif t1=(bi(i)/bml)*(Zl-1) t2=log(Zl-B) sumita0=0.0 do j=1,2 sumita0=sumita0+2*x(j)*as(i,j) enddo t3=(A/((de1-de2)*B))*(sumita0/aml-bi(i)/bml)*alog((Zl+de1*B)/(Zl+de2*B)) fil(i)=t1-t2-t3 enddo write(*,*)'fil',fil

!fugacidades del vapor write(*,*)'******************VAPOR******************' amv=0 bmv=0 do i=1,2 bmv=bmv+y(i)*bi(i) do j=1,2 as(i,j)=(1-ks(i,j))*(ai(i)*ai(j))**0.5 amv=amv+y(i)*y(j)*as(i,j) enddo end do A=amv*P/(R*T)**2 B=bmv*P/(R*T) write(*,*)'amv',amv write(*,*)'bml',bmv write(*,*)'A',A write(*,*)'B',B Zv=Z(A,B) vv=Zv*R*T/P

Page 3: elv.txt

write(*,*)'Zv',Zv write(*,*)'vv',vv

g(3)=0 do i=1,2 t1=(bi(i)/bmv)*(Zv-1) t2=log(Zv-B) pi1=A/((de1-de2)*B) sumita=0.0 do j=1,2 sumita=sumita+2*y(j)*as(i,j) enddo pi2=sumita/amv-bi(i)/bmv pi3=log((Zv+de1*B)/(Zv+de2*B)) t3=pi1*pi2*pi3 fiv(i)=t1-t2-t3 df_dni=-log((vv-bmv)/vv)+(bi(i)/bmv)*(P*vv/(R*T)-1)-& (amv/((de1-de2)*bmv*R*T))*(sumita/amv-bi(i)/bmv)*log((vv+de1*bmv)/(vv+de2*bmv)) fiv(i)=df_dni-log(Zv) write(*,*)'fiv',fiv(i) do j=1,2 !Calculo de ndp_dnj sumitaj=0 do h=1,2 sumitaj=sumitaj+2*y(h)*as(j,h) enddo !ndp_dnj=((R*T)/(vv-bmv))*(1+(bi(j))/(vv-bmv))-& !(1/((vv+de1*bmv)*(vv+de2*bmv)))*& !(sumitaj-(amv)*(((de2*bi(j))/(vv+de2*bmv))+((de1*bi(j))/(vv+de1*bmv)))) !Calculo de te1 !te1=(((R*T)/(vv-bmv))+((R*T*bi(i))/((vv-bmv)**2))-& !(1/((vv+de1*bmv)*(vv+de2*bmv)))*& !(sumita-amv*(((de2*bi(i))/(vv+de2*bmv))+((de1*bi(i))/(vv+de1*bmv))))) !Calculo de te2 !te2=((-R*T)/((vv-bmv)**2))+& !(2*amv*vv+amv*bmv*(de1+de2))/(((vv+de1*bmv)**2)*((vv+de2*bmv)**2)) !Calculo de dpdni_dpdv !dpdni_dpdv=te1/te2

!calculo de derivada de volumen, dpni y dpnj DP1=(R*T)/(vv-bmv)**2 DP2=amv*(2*vv+(de1+de2)*bmv)/((vv+de1*bmv)*(vv+de2*bmv))**2 DPV=DP2-DP1 WRITE(*,*)'dpv',DPV DPNI=(R*T)/(vv-bmv)+bi(i)*DP1+1.d0/((vv+de1*bmv)*(vv+de2*bmv))*& (-sumita+amv*bi(i)*(de1/(vv+de1*bmv)+de2/(vv+de2*bmv)))

Page 4: elv.txt

WRITE(*,*)'DPNI',DPNI DPNJ=(R*T)/(vv-bmv)+bi(j)*DP1+1.d0/((vv+de1*bmv)*(vv+de2*bmv))*& (-sumitaj+amv*bi(i)*(de1/(vv+de1*bmv)+de2/(vv+de2*bmv))) WRITE(*,*)'DPNJ',DPNJ !Calculo de la segunda derivada F0=amv/bmv F1=1.D0/(vv-bmv) F2=1.D0/(R*T*(de2-de1)) F3=alog((vv+de1*bmv)/(vv+de2*bmv)) F4=de1/(vv+de1*bmv)-de2/(vv+de2*bmv) F5=((de2/(vv+de2*bmv))**2-(de1/(vv+de1*bmv))**2)*F0 F6=1/bmv F7=2.D0*F0*F6 DF0=bi(i)*bi(j) DF1=F1*(bi(i)+bi(j)+0+DF0*F1) DF2=F6*(as(i,j)+F7*DF0) DF3=F6*F6*(sumita*bi(j)+sumitaj*bi(i)+amv*0) DF4=F3*(DF2-DF3) DF5=F4*(DF3/F6-F7*DF0) DF6=F5*DF0 DF7=DF1+(DF4+DF5+DF6)*F2 write(*,*)'**********************************************' write(*,*)'DF0' write(*,*)DF0 write(*,*)'DF1' write(*,*)DF1 write(*,*)'DF2' write(*,*)DF2 write(*,*)'DF3' write(*,*)DF3 write(*,*)'DF4' write(*,*)DF4 write(*,*)'DF5' write(*,*)DF5 write(*,*)'DF6' write(*,*)DF6 write(*,*)'DF7' write(*,*)DF7 !Calculo de dlnfv_dy dlnfv_dy=DF7+DPNI*DPNJ/(R*T*DPV)+1.D0 write(*,*)'DFUG'

write(*,*)dlnfv_dy !Calculo de dgi_dlnkj dgi_dlnkj=as(i,j)+y(j)*dlnfv_dy Jac(i,j)=dgi_dlnkj enddo !Calculo de dgi_dlnp dgi_dlnp=((P*bi(i))/(R*T))*((vv/bmv)-(vl/bml)) Jac(i,3)=dgi_dlnp enddo !Calculo de dgnc_dlnk

Page 5: elv.txt

do j=1,2 dgnc_dlnk=y(j) Jac(3,j)=dgnc_dlnk enddo !Calculo de dgnc_dlnp dgnc_dlnp=0 Jac(3,3)=dgnc_dlnp

write(*,*)'Jacobiano' write(*,*)Jac(1,1) write(*,*)Jac(1,2) write(*,*)Jac(1,3) write(*,*)Jac(2,1) write(*,*)Jac(2,2) write(*,*)Jac(2,3) write(*,*)Jac(3,1) write(*,*)Jac(3,2) write(*,*)Jac(3,3) endprogram

function Z(A,B) implicit none real*8 Z,A,B,coa,cob,coc,s,q,D,u,v,Z1,Z2,Z3,pi,theta pi=3.141592 Z=0.d0 coa=-(1-B) cob=A-3*B**2-2*B coc=-(A*B-B**2-B**3) s=(3*cob-coa**2)/3 q=(2*coa**3-9*coa*cob+27*coc)/27 D=((q/2)**2)+((s/3)**3) if (D>0) then if (-q/2+sqrt(D)>0) then u=(-q/2+sqrt(D))**(1./3.) else u=-(-(-q/2+sqrt(D)))**(1./3.) endif if (-q/2-sqrt(D)>0) then v=(-q/2-sqrt(D))**(1./3.) else v=-(-(-q/2-sqrt(D)))**(1./3.) endif Z=u+v-coa/3 else theta=acos(sqrt((q**2/4)/(-s**3/27))) Z1=2*(sqrt(-s/3))*cos(theta/3)-coa/3 Z2=2*(sqrt(-s/3))*cos((theta+2*pi)/3)-coa/3 Z3=2*(sqrt(-s/3))*cos((theta+4*pi)/3)-coa/3 Z=max(Z1,Z2,Z3) endif return end