gpt4 book ai didi

python - 如何访问用 Python 编写的 FORTRAN 函数?

转载 作者:太空狗 更新时间:2023-10-30 02:00:41 24 4
gpt4 key购买 nike

有没有办法在 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)。这样的事情可能吗?

感谢您的宝贵时间和帮助。

文斯

最佳答案

不要浪费大量时间编译和翻译。这样做。

  1. Fortran 第 1 部分程序编写了一个文件供 Python 执行。写入标准输出。调用这个F1

  2. Python 读取文件,进行 Python 计算,然后将响应写入 Fortran 文件。把这个叫做 P。

  3. 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com