我正在考虑将 python 嵌入到 fortran90 中以将 python 功能添加到我现有的 fortran90 代码中。我知道可以通过使用 numpy 中的 f2py 使用 fortran90 扩展 python 来完成相反的操作。但是,我想在 fortran 中保留我的超级优化主循环并添加 python 来执行一些额外的任务/评估进一步的开发,然后才能在 fortran 中执行它,并且还可以简化代码维护。我正在寻找以下问题的答案:
1) 是否有一个已经存在的库,我可以从中将 python 嵌入到 fortran 中?(我知道 f2py 并且它是相反的) 2)我们如何处理从 fortran 到 python 的数据传输并返回?3)我们如何实现回调功能?(让我稍微描述一下场景......我在 Fortran 中有我的 main_fortran 程序,它在 python 中调用 Func1_Python 模块。现在,从这个 Func1_Python 中,我想调用另一个函数......比如说在 fortran 中的 Func2_Fortran) 4)什么将python的解释器嵌入fortran对性能的影响......比如加载时间、运行时间、发送数据(双精度的大数组)等。
非常感谢您的帮助!!
Edit1:我想通过添加更多关于我正在做的工作的信息来确定讨论的方向。我喜欢科学计算的东西。所以,我会在双精度的巨大数组/矩阵上做很多工作,并进行浮点运算。因此,除了 fortran 之外,几乎没有其他选择可以真正为我完成这项工作。我想在我的代码中包含 python 的原因是我可以在必要时使用 NumPy 进行一些基本计算,并以最小的努力扩展代码的功能。例如,我可以使用几个可用的库来链接 python 和其他一些包(比如使用 PyFoam 库的 OpenFoam)。