6

最新版本的 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
4

1 回答 1

3

f2py 的机制将 Fortran子例程转换为 python 函数。它不明白如何将 Fortran函数转换为 python 函数。我发现我需要用一个子例程包装所有 Fortran 函数,或者更好的是,将它们重写为子例程。

于 2012-06-06T13:52:33.183 回答