在调用python中调用fortran代码时如何处理全局变量(例如,使用f2py)



我想使用python运行一些fortran代码,并为此使用 f2py -c -m 。但是,似乎只有 functions 被包装到 .so 文件中,而不是 Program 。那我该如何处理全球变量?例如,将变量 C 放在模块中

MODULE nfw
  double precision :: c
END MODULE nfw

,在程序中修改了,并由同一文件中的函数隐式

使用。
PROGRAM Compute_Profile
  USE nfw
  c = 5.0
END PROGRAM Compute_Profile
DOUBLE PRECISION FUNCTION y(x)
  USE nfw
  double precision :: x
  y = c * x
  return
END FUNCTION y

如何调用函数 y(x)知道python中的 c 的值?

在您的F2PY模块下应该是另一个模块,即名为NFW的Fortran。它应该在那里。

$ f2py -c -m mod nfw.f90
$ python
import mod
mod.nfw.c
array(0.0)

确保用f2py将模块编译为源文件。

相关内容

  • 没有找到相关文章

最新更新