有没有办法在 FORTRAN 中使用 python 函数?我得到了一个包含一些函数的 python 脚本,我需要从 FORTRAN 代码访问这个函数。
我见过允许从 Python 访问 FORTRAN 子例程的“f2py”,以及将 python 脚本编译为可执行文件的 py2exe。 “py2f”有什么东西吗?可以将 Python 脚本编译为目标文件吗?然后我可以将它与 FORTRAN 代码链接起来。
例如,将“mypython_func.py”视为包含函数的 Python 脚本,将“mainfortran.f”视为调用 Python 函数的主程序 FORTRAN 代码。我想要: 从“mypython_func.py”编译为“mypython_func.o”,从“mainfortran.f”编译为“mainfortran.o”(>> gfortran -c mainfortran.f),然后链接这些文件(>> gfortran -c mainfortran. o mypython_func.o -o myexec.exe)。这样的事情可能吗?
感谢您的宝贵时间和帮助。
文斯
最佳答案
不要浪费大量时间编译和翻译。这样做。
Fortran 第 1 部分程序编写了一个文件供 Python 执行。写入标准输出。调用这个F1
Python 读取文件,进行 Python 计算,然后将响应写入 Fortran 文件。把这个叫做 P。
Fortran 第 2 部分程序从标准输入读取内容文件。这些是 Python 计算的结果。
连接它们
F1 | python p.py | F2
你不需要重新编译任何东西。另请注意,所有三个同时运行,这可能是一个相当大的加速。
Python的中间位应该是这样的。
import sys
import my_python_module
for line in sys.stdin:
x, y, p, q = map( float, line.split() )
print ("%8.3f"*6) % ( x, y, z, p, q, my_python_module.some_function( x, y, p, q ) )
以 Fortran 友好格式读取 stdin 和写入 stdout 的函数的简单包装器。
关于python - 如何访问用 Python 编写的 FORTRAN 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2357227/