C++ 和 Fortran 互操作性

C++ and Fortran interoperability

为了自己的娱乐,我决定创建一个大型物理引擎。我有 Java 和 C++ 的经验,但 none 有 Fortran 的经验。我对 Fortran 的理解是它用于科学行业,适合大型计算。我决定将 C++ 用于任何可能添加的图形用户界面、声音、用户输入等,而 Fortran 将处理计算。从 C++ 调用 Fortran 方法有多容易?我用谷歌搜索了此事,但​​没有找到太多信息。尽管不了解 Fortran,但我决心学习它,无论学习曲线有多严格(假设我会获得适当的性能提升)。这样使用 Fortran 实用吗?我会获得可观的性能提升吗(对于大型计算)? Fortran 是否仍在现代世界中使用还是已经过时了?

编辑:人们在不说明问题有什么问题的情况下进行投票,这似乎是一种持续的模式。

My understanding of Fortran is that it is used in the scientific industry and is good for large calculations.

Fortran 确实(仍然)用于科学和工程应用,以及许多其他地方。

How easy is it to call Fortran methods from C++?

最新的 Fortran 标准对与 C 的互操作性有具体规定。这些工具提供了一种标准 方法,让 C 或 C++ 代码调用 Fortran 例程,并让 Fortran 代码调用 C具有 C 链接的例程和 C++ 例程。

C 和 Fortran 例程相互调用的时间比 Fortran 标准中 C 互操作规定的时间长得多,但如何在不使用互操作功能的情况下实现这一点取决于实现。

I am determined to learn [Fortran] no matter how strict the learning curve may be (assuming that I will get an appropriate performance increase).

虽然 Fortran 结构的某些方面使得优化数字运算相对容易,但如果您希望看到在 Fortran 而不是 C 中实现数字例程的巨大收益,您可能会感到失望。您的表现可能更相关取决于您选择的算法而不是实现它的语言。

Is it practical to use Fortran in this way?

是的。

Will I get a decent performance increase (for large calculations)?

这取决于很多因素,但我粗略估计是 "no"。

Is Fortran still used in the modern world or is it outdated?

还在用,Fortran标准还在维护,定期更新。