- 积分
- 0
- 注册时间
- 2011-4-20
- 仿真币
-
- 最后登录
- 1970-1-1
|
编写的程序,在TXT文本里输出的东西怎么少了,本来是要输出五组数据,求大牛们帮忙改一下,小弟万分感谢,程序如下::
program ex
integer i,j,z
integer,parameter::k=5
real,parameter::R=83.145
real,parameter::Tc=345.86
real,parameter:c=37.64 !bar
real,parameter::error=0.000000001
real,parameter::Mw=0.08404 !kg/mol
real,parameter::w=0.262
real::p(k)=(/1.035,4.959,8.847,13.219,18.27/)
real::T(k)=(/423.15,423.15,423.15,423.15,423.15/)
real::m,b(k),a(k),Tr(k),a1(k)
real::f(k),f1(k),Pr(k),Pa(k),v(k),p1(k)
real::rou(k)
real::v0=77.0
integer::n=500000
open(101,file='result.txt')
m=0.37464+1.54226*w-0.26992*w**2
do z=1,k
Tr(z)=T(z)/Tc
a1(z)=(1.0+m*(1.0-Tr(z)**0.5))**2/Pc
a(z)=0.457235*(R**2)*(Tc**2)*a1(z)
b(z)=0.07780*R*Tc/Pc
do j=z,z
i=1
do while(.true.)
f(j)=v0**3-(R*T(z)/P(j)-b(z))*v0**2+(a(z)/P(j)-2*b(z)*R*T(z)/P(j)-3*b(z)**2)*v0-b(z)*(a(z)/P(j)-b(z)*R*T(z)/P(j)-b(z)**2)
f1(j)=3*v0**2-2*v0*(R*T(z)/P(j)-b(z))+(a(z)/P(j)-2*b(z)*R*T(z)/P(j)-3*b(z)**2)
v(j)=v0-f(j)/f1(j)
if(abs(v(j)-v0)<error)exit
v0=v(j)
i=i+1
if(i>=n)exit
end do
Pr(j)=R*T(z)/(V(j)-b(z))
Pa(j)=-a(z)/(v(j)*(v(j)+b(z))+b(z)*(v(j)-b(z)))
p1(j)=pr(j)+pa(j)
rou(j)=1000000*Mw/v(j)
end do
end do
write(101,501)v,rou,pr,pa
501 format(T20,'牛顿迭代的根',&
3x,'v('i4')=',f15.5,&
3x,'rou('i4')=',f15.5,&
3x,'Pr('i4')=',f20.5,&
3x,'Pa('i4')=',f20.5)
stop
end
结果如下::
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|