0

我有一个包含许多有用子例程的 fortran 文件,我想使用 f2py 为其创建一个 Python 接口。

出现问题的原因是某些 fortran 子例程从 NAG 库(名为 c06ebf)调用 FFT 子例程。当导入 Python 时,它会产生“未定义符号:co6eb​​f”警告。

有没有其他方法可以在我的 Fortran 子例程中执行 FFT 并能够使用 f2py 从它创建 Python 接口?

4

1 回答 1

0

这个问题通过以下方式解决:

  1. 调用商业 FFT 库的所有实例都被调用免费 FFT 库(在本例中为 FFTW3)所取代。当然,如果需要,'include "fftw3.f"' 会放在 fortran 子例程的顶部。

  2. 扩展模块是使用 f2py 创建的。第一行创建签名文件,第二行编译扩展模块。请注意,我们在此过程中链接了外部库 - 以前没有这样做,这导致了陈述的问题。

    f2py -m splib -h splib.fpy splib.f
    f2py -c splib splib.f -lfftw3

于 2013-02-12T10:59:30.063 回答