Fortran Coder

标题: 子程序内是否可以定义函数 [打印本页]

作者: Bob    时间: 2019-12-10 22:21
标题: 子程序内是否可以定义函数
请教大家,下面这段代码里面的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


作者: necrohan    时间: 2019-12-11 09:15
语句函数可以在子程序内定义,看着像,不熟悉这种用法
作者: 青衣巷    时间: 2019-12-11 09:25
语句函数,已经废止了的用法。
但是intel fortran还是支持的。你的代码我用intel成功编译的。

记住,出错要给错误提示。
作者: Bob    时间: 2019-12-15 19:44
青衣巷 发表于 2019-12-11 09:25
语句函数,已经废止了的用法。
但是intel fortran还是支持的。你的代码我用intel成功编译的。

嗯嗯,好的,下次一定给出错误提示!
作者: Bob    时间: 2019-12-15 19:45
necrohan 发表于 2019-12-11 09:15
语句函数可以在子程序内定义,看着像,不熟悉这种用法

谢谢,知道了!




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2