最新版本的 f2py 是否支持包装数组值 fortran 函数? 在一些古老的文档中,这是不支持的。现在怎么样?
例如,我们将以下函数保存为 func.f95。
function func(x)
implicit none
double precision :: x(:),func(size(x))
integer :: i
do i=1,size(x)
func(i) = i*x(i)
end do
end function
我用 f2py --fcompiler=gnu95 -c -m func func.f95
编译它
然后让下面的python代码为test_func.py
import func
from numpy import array
x = array(xrange(1,10),dtype='float64')
print 'x=',x
y = func.func(x)
print 'func(x)=',y
来自
的输出
python test_func.py
是
x= [ 1. 2. 3. 4. 5. 6. 7. 8. 9.]
Segmentation fault
最佳答案
f2py 的机制将 Fortran 子例程 转换为 python 函数。它不理解如何将 Fortran 函数 转换为 python 函数。我发现我需要用子例程包装所有 Fortran 函数,或者更好的是,将它们重写为子例程。
关于python - f2py 数组值函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10913003/