C++与Fortran的互操作性

C++ and Fortran interoperability

本文关键字:互操作性 Fortran C++      更新时间:2023-10-16

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

编辑:人们不说问题出了什么问题就投了反对票,这是一种持续的模式。

我对Fortran的理解是,它用于科学行业,适合大型计算。

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

从C++调用Fortran方法有多容易?

最新的Fortran标准对与C的互操作性有特定的规定。这些功能为C或C++代码调用Fortran例程,以及Fortran代码调用C例程和具有C链接的C++例程提供了标准方法。

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

无论学习曲线有多严格,我都决心学习[Fortran](假设我将获得适当的性能提升)。

尽管Fortran结构的某些方面使优化数字运算相对容易,但如果您希望在Fortran而不是C中实现数值例程能带来巨大收益,您可能会感到失望。您的性能可能更多地与您选择的算法有关,而不是与实现它的语言有关。

以这种方式使用Fortran实用吗?

是。

我会获得不错的性能提升吗(对于大型计算)?

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

Fortran在现代世界中仍在使用还是过时了?

它仍在使用,Fortran标准仍在维护和定期更新。