Fortran Coder

查看: 146|回复: 2
打印 上一主题 下一主题

[数值问题] 辛普森积分出现错误,error #6637

[复制链接]

31

帖子

6

主题

0

精华

熟手

F 币
142 元
贡献
68 点
跳转到指定楼层
楼主
发表于 2024-10-9 10:41:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 lumlngz 于 2024-10-9 10:53 编辑

[Fortran] 纯文本查看 复制代码
external f
    double precision fc,a,b,s
    a=0.0
    b=1.0
    eps=0.000001
    call simp(a,b,fc,eps,s)
    write(*, '(1x, "s=", d15.6)')s
    end
    function fc(x)
    double precision fc,x
    fc=log(1.0d0+x)/(1.0d0+x*x)
    return
    end
    
    subroutine simp(a,b,fc,eps,t)
    double precision a,b,fc,t,h,t1,s1,p,x,t2,s2
      
      n=1
      h=b-a
      t1=h*(fc(a)+fc(b))/2.0d0
      s1=t1
10    p=0.0d0
      do  20 k=0,n-1
          x=a+(k+0.5d0)*h
          p=p+fc(x)
20    continue
      t2=(t1+h*p)/2.0d0
      s2=(4.0d0*t2-t1)/3.0d0
      if (abs(s2-s1) .ge. eps)then
          t1=t2
          n=n+n
          h=h/2.0d0
          s1=s2
          goto 10
      endif
      t=s2
      return
    end
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

31

帖子

6

主题

0

精华

熟手

F 币
142 元
贡献
68 点
沙发
 楼主| 发表于 2024-10-9 10:43:10 | 只看该作者
这一段代码是按照教科书上一步一步写下来的但是运行时出错了
error #6637: When a dummy argument is a function, the corresponding actual argument must also be a function.   [FC]
应该怎么解决呢

101

帖子

0

主题

0

精华

大师

F 币
670 元
贡献
299 点

规矩勋章元老勋章新人勋章

板凳
发表于 2024-10-9 12:13:51 | 只看该作者
external f
改为
external fc
天之道,损有余而补不足
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-11-1 12:45

Powered by Tencent X3.4

© 2013-2024 Tencent

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