Fortran 将一个基本过程传递给另一个基本过程
我想将一个基本过程传递给另一个基本过程。最低限度的工作示例可能如下所示:Fortran 将一个基本过程传递给另一个基本过程,fortran,Fortran,我想将一个基本过程传递给另一个基本过程。最低限度的工作示例可能如下所示: elemental real function func(x, f_dummy) implicit none real, intent(in) :: x interface elemental real function f_dummy(x) real, intent(in) :: x end function f_dummy end
elemental real function func(x, f_dummy)
implicit none
real, intent(in) :: x
interface
elemental real function f_dummy(x)
real, intent(in) :: x
end function f_dummy
end interface
func = 2.0 * f_dummy(x)
return
end function func
编者说:
Error: Dummy procedure ‘f_dummy’ not allowed in elemental procedure ‘func’ at (1)
如果我删除elemental
的所有实例,那么它将编译
是否有合法的方法将一个元素过程传递给另一个元素过程?否,元素过程的参数必须是标量,而不是数组,而不是过程。作为一种解决方法,您可以编写一个处理数组和过程的过程,它只是纯过程,而不是基本过程
基本过程可以是伪参数。但基本过程的参数不能是过程。它可能是一个过程指针,但是当在数组上对其进行元素调用时,您必须传递一个指针数组。回答得很好,感谢您提出解决方法。下面是,它可能对某些用途有用。。。