python - f2py 数组值函数

标签 python function numpy fortran f2py

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

相关文章:

python - Pandas 堆积条形图中元素的排序

function - 返回与接口(interface)一起使用的结构的 Go 函数类型

python - 将掩码( bool )数组转换为 x、y 坐标列表

python - 只将单词保留在作为数据框元素的列表中

python - LightGBM 忽略关于 "boost_from_average"的警告

python - 是否可以并行化 bz2 的解压?

php - 复选框从数据库中插入/删除

JQuery - 通过合并函数来简化脚本?

python - 压缩文件上的高效 numpy.fromfile?

python - 从另一个 numpy 数组中删除数组中的 nan