找回密码
 注册
Simdroid-非首页
查看: 111|回复: 0

[3. Fortran] 用fortran求一元三次方程所出现的问题

[复制链接]
发表于 2007-3-22 12:33:43 | 显示全部楼层 |阅读模式 来自 山东济南
高手们帮帮忙,呵呵,帮我看看我的小程序。

     我用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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-11-1 17:32 , Processed in 0.033163 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表