排除对商业库中子程序的调用

2024-06-17 07:56:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个fortran文件,里面有很多有用的子程序,我想用f2py为它制作一个Python接口。在

这个问题的出现是因为一些fortran子程序从NAG库(名为c06ebf)调用FFT子例程。当导入到Python中时,它会生成“undefined symbol:co6ebf”警告。在

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


Tags: 文件方法fft警告symbol例程fortranf2py
1条回答
网友
1楼 · 发布于 2024-06-17 07:56:40

这个问题的解决方法如下:

  1. 调用商业FFT库的所有实例都将被对free FFT library(在本例中为FFTW3)的调用所取代。当然,“include”fftw3.f“在必要时会放在fortran子例程的顶部。

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

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

相关问题 更多 >