我想用python运行一些fortran代码,并使用 f2py -c -m 。但是,似乎只有 FUNCTION 打包到 .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
如何调用函数 y(x)了解python中 c 的值?
答案 0 :(得分:6)
在你的f2py模块下应该是另一个模块,Fortran一个名为nfw。它应该在那里。
$ f2py -c -m mod nfw.f90
$ python
import mod
mod.nfw.c
array(0.0)
确保使用带有f2py的模块编译源文件。