我想使用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将模块编译为源文件。