在FORTRAN中有没有使用python函数的方法?我得到了一个包含一些函数的python脚本,我需要从FORTRAN代码访问这个函数。在
我见过“f2py”,它允许从Python访问FORTRAN子例程,以及py2exe,它将Python脚本编译为可执行文件。有什么“py2f”的吗?Python脚本可以编译成对象文件吗?然后我可以把它和FORTRAN代码连接起来。在
例如,考虑“mypython”_功能复制'作为包含函数的Python脚本,'mainfortran.f'作为调用Python函数的主程序FORTRAN代码。我想: 从'mypython_功能复制'编译到'mypython\u func.o',从'mainfortran.f'编译到'mainfortran.o'(>;>;gfortran-c mainfortran.f),然后链接这些文件(>;>;gfortran-c mainfortran.o mypython\u func.o-omyexec.exe). 这样的事有可能吗?在
谢谢你的时间和帮助。在
文斯
@S.Lott的解决方案就是出路。但是为了回答您的问题-是的,可以从Fortran中调用Python。我首先使用Cython的C API公开Python,然后使用
iso_c_binding
模块创建这些C函数的Fortran接口,最后从Fortran调用它们。它非常重,在大多数实际问题中都不值得(使用管道方法),但它是可行的(它对我有效)。在不要浪费大量的时间编译和翻译。做这个。在
Fortran第1部分程序为Python编写了一个文件。写信给stdout。叫这个F1
Python读取文件,进行Python计算,将响应写入Fortran文件。叫这个P。
Fortran第2部分程序从stdin读取一个文件。这些是Python计算的结果。
连接他们
你不会重新编译任何东西。还要注意,这三者同时运行,这可能是一个相当大的加速。在
Python的中间部分应该是这样的。在
^{pr2}$函数的一个简单包装器,它以Fortran友好的格式读取stdin并写入stdout。在
相关问题 更多 >
编程相关推荐