子程序内是否可以定义函数
请教大家,下面这段代码里面的d0(),d1()以及d2()是三个函数吗?这段代码在pgf90编译器上是可以编译通过的,但是在inter 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
语句函数可以在子程序内定义,看着像,不熟悉这种用法 语句函数,已经废止了的用法。
但是intel fortran还是支持的。你的代码我用intel成功编译的。
记住,出错要给错误提示。 青衣巷 发表于 2019-12-11 09:25
语句函数,已经废止了的用法。
但是intel fortran还是支持的。你的代码我用intel成功编译的。
嗯嗯,好的,下次一定给出错误提示! necrohan 发表于 2019-12-11 09:15
语句函数可以在子程序内定义,看着像,不熟悉这种用法
谢谢,知道了!
页:
[1]