Function 传递函数中的Fortran错误
我正在尝试编写一个简单的Fortran代码来计算h=g(f(x))。x是长度为2的向量Function 传递函数中的Fortran错误,function,fortran,Function,Fortran,我正在尝试编写一个简单的Fortran代码来计算h=g(f(x))。x是长度为2的向量 module m1 implicit none contains function f(x) implicit none real::f(2),x(2) f(1)=x(1)-x(2) f(2)=exp(x(1))-x(2)**2 end function f function g(ff) implicit none real::g(2),x1(2),ffreslt(2) interface fun
module m1
implicit none
contains
function f(x)
implicit none
real::f(2),x(2)
f(1)=x(1)-x(2)
f(2)=exp(x(1))-x(2)**2
end function f
function g(ff)
implicit none
real::g(2),x1(2),ffreslt(2)
interface
function ff(x)
implicit none
real::x(2),ff(2)
end function ff
end interface
ffreslt=ff(x1)
g(1)=1-ffreslt(1)
g(2)=2*ffreslt(1)**2-3*ffreslt(2)+4.2
end function g
end module m1
program hgf
use m1
implicit none
real::x1(2),h(2)
x1 = (/0.55,2.47/)
h = g(f(x1))
write(*,*) h
end program hgf
但是,我收到了以下错误消息:
h = g(f(x1))
1
Error: Actual parameter 'ff' at <1> is not a PROCEDURE
h=g(f(x1))
1.
错误:处的实际参数“ff”不是过程
我错过什么了吗?谢谢 在对g()的调用中,传递的不是函数f(),而是调用值为x1的函数f()的结果
检查此项并查看第24页第3.2.7节
还要检查这个问题。在对g()的调用中,您传递的不是函数f(),而是调用值为x1的函数f()的结果
检查此项并查看第24页第3.2.7节
同时检查这个问题。您应该分别传递函数和
x1
向量。注意:您不需要在每个子例程中重复“隐式无”。只需在模块顶部声明一次就足够了(唯一的例外是接口块,您需要在其中重复它)。您应该分别传递函数和x1
向量。注意:您不需要在每个子例程中重复“隐式无”。只需在模块顶部声明一次就足够了(唯一的例外是接口块,您需要在其中重复它)。