- 积分
- 0
- 注册时间
- 2006-5-9
- 仿真币
-
- 最后登录
- 1970-1-1
|
高手们帮帮忙,呵呵,帮我看看我的小程序。
我用fortran编了一个一元三次方程的求解程序,呵呵,先用别的公式求出未知数Vi的最大值最小值,然后我想求出随着时间的变化,t时刻的速度Vi。
编译之后错误为:error FOR2588: Statement function statement cannot occur here
Errors in declarations, no further processing for SUDU
呵呵,请大家帮我看看是什么问题,如何解决
程序如下(附件内也是我的这段程序):
program sudu
implicit none
real H,t
real Rd,Roi,Rii,Rx
real Vmin,Vmax,Vi,VR
real :: esp=1E-06
real f
open(unit=11,file='sudu.dat',status='unknown')
Rd=103.96
Roi=40.1
Rii=31.15
Rx=19.280
H=8.95
VR=4.39
Vmin=0.1
Vmax=2.5
do t=0.0,3.1,0.1
f(Vi)=-t**2*Vi*Vi**2+(17.9*t-8.78*t**2)*Vi**2+(557.585+157.162*t)*Vi-703.29995
do while (sign(f(Vmin),f(Vmax))==f(Vmin))
print*,"最大值最小值不合适,请重新计算"
end do
Vi=(Vmin+Vmax)/2.0
do while (abs(Vmin-Vmax) >= esp.or.abs(f(Vmin)) >= esp)
Vi=(Vmin+Vmax)/2.0
if (sign(f(Vmin),f(Vi))==f(Vmin)) then
Vmin=Vi
end if
if (sign(f(Vmax),f(Vi))==f(Vmax)) then
Vmax=Vi
end if
end do
write(11,100) t,Vi
end do
100 format(1X,f12.4,5X,f12.4,1X)
end |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|