gpt4 book ai didi

function - 在Fortran中将多个变量的外部函数作为一个变量的函数传递

转载 作者:行者123 更新时间:2023-12-05 00:25:29 27 4
gpt4 key购买 nike

我正在尝试使用 QUADPACK 中的例程进行数值积分。例程期望函数以 REAL,EXTERNAL 的形式传递。 ,所以我没有使用指针或其他任何东西的自由。

是否可以给函数起别名 f(x,a,b,...)作为函数f(x)对于只需要 x 函数的例程?很像在 MATLAB 中完成的事情。与 @(x)f(x,a,b,...) .

最佳答案

您不能直接在 Fortran 中使用函数进行类似的技巧。您也不能在 Fortran 中返回闭包。只需编写一个包装器。

function wrap_f(x) result(res)
...
res = f(a,b,...)
end function

它可以是内部函数或模块函数并获取 ab由主机协会或它可以使用包含 a 的模块和 b .

如果您想将函数作为实际参数传递,它不能是 Fortran 2003 之前的内部过程,而只能在 Fortran 2008 中。但它适用于最新版本的 gfortran 和 ifort。为了更好的可移植性,请使用模块。

关于function - 在Fortran中将多个变量的外部函数作为一个变量的函数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24127313/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com