我想用 python 运行一些 Fortran 代码,我正在使用 f2py -c -m 来运行它。但是,似乎只有 FUNCTIONs 被打包到 .so 文件中,而 PROGRAM 没有。那我该如何处理全局变量呢?例如,一个变量c被放入一个模块
MODULE nfw
double precision :: c
END MODULE nfw
,在PROGRAM中被修改,并被同一个文件中的FUNCTION隐式使用
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
如何在 python 中调用让函数 y(x) 知道 c 的值?
最佳答案
在您的 f2py 模块下应该是另一个模块,名为 nfw 的 Fortran 模块。它应该在那里。
$ f2py -c -m mod nfw.f90
$ python
import mod
mod.nfw.c
array(0.0)
确保使用 f2py 编译带有模块的源文件。
关于python - 在 python 中调用 fortran 代码时如何处理全局变量(例如使用 f2py)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13129493/