Fortran Coder

查看: 8923|回复: 4

[求助] 子程序内是否可以定义函数

[复制链接]

17

帖子

6

主题

0

精华

入门

F 币
81 元
贡献
48 点
发表于 2019-12-10 22:21:47 | 显示全部楼层 |阅读模式
请教大家,下面这段代码里面的d0(),d1()以及d2()是三个函数吗?这段代码在pgf90编译器上是可以编译通过的,但是在inter Fortran上编译通不过
[Fortran] 纯文本查看 复制代码
 function ppvalw (coef, x, jd )
    
      implicit integer*4 (i-n), real*8 (a-h, o-z)
      real*8 ppvalw,x
      dimension coef(4)


      d2(xx) = coef(4)*xx + coef(3)
      d1(xx) = (coef(4)*xx/2. + coef(3))*xx + coef(2)
      d0(xx) = ((coef(4)*xx/3. + coef(3))*xx/2. + 
     .           coef(2))*xx + coef(1)
  
      goto (1,2,3) jd+1
      ppvalw = 0.
      print *, 'Error (ppvalw): JD must be 0, 1, or 2.'
      print *, 'Execution terminated.'
      return
 1    ppvalw = d0(x)	! k = 4 , jd = 0
      return
 2    ppvalw = d1(x)	! k = 4 , jd = 1
      return
 3    ppvalw = d2(x)	! k = 4 , jd = 2
      return
      end

250

帖子

2

主题

0

精华

宗师

F 币
1730 元
贡献
872 点

规矩勋章

发表于 2019-12-11 09:15:50 | 显示全部楼层
语句函数可以在子程序内定义,看着像,不熟悉这种用法

81

帖子

0

主题

0

精华

专家

F 币
471 元
贡献
232 点

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

QQ
发表于 2019-12-11 09:25:36 | 显示全部楼层
语句函数,已经废止了的用法。
但是intel fortran还是支持的。你的代码我用intel成功编译的。

记住,出错要给错误提示。
彼岸,有永恒的守候...

17

帖子

6

主题

0

精华

入门

F 币
81 元
贡献
48 点
 楼主| 发表于 2019-12-15 19:44:32 | 显示全部楼层
青衣巷 发表于 2019-12-11 09:25
语句函数,已经废止了的用法。
但是intel fortran还是支持的。你的代码我用intel成功编译的。

嗯嗯,好的,下次一定给出错误提示!

17

帖子

6

主题

0

精华

入门

F 币
81 元
贡献
48 点
 楼主| 发表于 2019-12-15 19:45:32 | 显示全部楼层
necrohan 发表于 2019-12-11 09:15
语句函数可以在子程序内定义,看着像,不熟悉这种用法

谢谢,知道了!
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-3-29 23:02

Powered by Tencent X3.4

© 2013-2024 Tencent

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