27.07.2013 Views

Design og modellering af metanolanlæg til VEnzin-visionen Bilag

Design og modellering af metanolanlæg til VEnzin-visionen Bilag

Design og modellering af metanolanlæg til VEnzin-visionen Bilag

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

methanol.for<br />

d:/DTU/Eksamensprojekt/bilag/<br />

equal=.false.<br />

2 if (k.lt.i) then<br />

k=k+1<br />

if ((abs((p−par_file(1,k))/p).lt.1.d−1).and.<br />

$ (abs((h−par_file(2,k))/h).lt.1.d−2)) then<br />

equal=.true.<br />

endif<br />

goto 2<br />

endif<br />

if ((.not.equal).and.(p.lt.500)) then<br />

if (i.eq.(file_size−1)) then<br />

write(UNIT=2, REC=file_size+1) file_size<br />

rec_nr=i+1<br />

elseif (i.eq.file_size) then<br />

read(UNIT=2, REC=file_size+1) rec_nr<br />

if (rec_nr.eq.file_size) then<br />

rec_nr=1<br />

else<br />

rec_nr=rec_nr+1<br />

endif<br />

write(UNIT=2, REC=file_size+1) rec_nr<br />

else<br />

rec_nr=i+1<br />

endif<br />

c if (fiters) print*,’rec_nr: ’,rec_nr<br />

write(UNIT=2,REC=rec_nr)P,h,t,v,s,x,u<br />

endif<br />

endif<br />

3 continue<br />

c if (fiters) print*,in(1),f(1),in(2),f(2)<br />

c if (fiters) print*,’result’,t,v<br />

return<br />

end<br />

subroutine iterer_omega_tau(f1,f2,tau,omega,in1,in2,<br />

$ error)<br />

integer in1,in2,i,error,IMAX,phase,step<br />

double precision f1,f1_old,f1_new,f2,f2_old,f2_new,tau,tau_old,<br />

$ tau_new,omega,omega_old,omega_new,dtau,domega,df1,df2,df<br />

$ ,f1_new_omega,f1_new_tau,f2_new_omega,f2_new_tau,df1domega<br />

$ ,df2domega,df1dtau,df2dtau,factor,rho_star<br />

$ ,omega_l,omega_g,EPSV,R,P_c,T_c,T_ref,rho_ref,M,T_0C,const<br />

l<strong>og</strong>ical found,fiters<br />

common/constants/EPSV,R,P_c,T_c,T_ref,rho_ref,rho_star,M,T_0C,IMAX<br />

$ ,fiters<br />

omega_old=omega<br />

tau_old=tau<br />

call calculate(f1_old,tau_old,omega_old,in1)<br />

call calculate(f2_old,tau_old,omega_old,in2)<br />

omega_new=omega_old*(1.d0+1d−11)<br />

tau_new=tau_old*(1.d0+1d−11)<br />

call calculate(f1_new_omega,tau_old,omega_new,in1)<br />

call calculate(f1_new_tau,tau_new,omega_old,in1)<br />

call calculate(f2_new_omega,tau_old,omega_new,in2)<br />

call calculate(f2_new_tau,tau_new,omega_old,in2)<br />

i=0<br />

factor=1<br />

phase=0<br />

step=3<br />

found=.false.<br />

5 if ((i .lt. IMAX) .and.(.not.found)) then<br />

call calculate(f1_new,tau_new,omega_new,in1)<br />

call calculate(f2_new,tau_new,omega_new,in2)<br />

df1=f1_new−f1<br />

df2=f2_new−f2<br />

df=df1*df1+df2*df2<br />

if ((abs(df1/f1).le.EPSV).and.(abs(df2/f2).le.EPSV)) then<br />

found=.true.<br />

goto 10<br />

endif<br />

if ((tau_new.eq.tau_old).and.(omega_new.eq.omega_old)) then<br />

c if (fiters) print*<br />

c $ ,’tau_new=tau_old and omega_new=omega_old ’,abs(df1/f1)<br />

c $ ,abs(df2/f2),factor,f1,f2,phase<br />

if ((abs(df1/f1).le.1.d−8).and.(abs(df2/f2).le.<br />

$ 1.d−8)) then<br />

found=.true.<br />

6/19<br />

19−03−2007

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!