c++ - 将 Fortran 语言转换为 C 或 C++

标签 c++ c fortran

我有一些数字代码需要转换为 C 或 C++。我试过使用 f2c,但它不适用于 Fortran 代码。 f2c 提示是因为代码使用了 C 风格的预处理器指令 (#include)。 该代码的自述文件指出它是 Fortran77,它与 fort77 链接器一起工作,将扩展这些包含。

有谁知道如何成功转换这段代码?

我最后的办法是编写一个简单的预处理器来扩展这些包含,然后将代码提供给 f2c。

注意:我在这里的 Windows/Visual C++ 环境中工作,所以任何 gcc 恶作剧都可能比它们的值(value)更麻烦......

最佳答案

我在一个工程研究小组工作了很多年。从 Fortran 到 C 的自动转换,我们从来没有运气好。代码不是特别容易理解,而且很难维护。我们最好的运气是使用 Fortran 代码作为算法的模板,并对我们希望继续使用的任何东西进行重新实现。或者,您可以更新 Fortran 以使用更现代的 Fortran 结构,并获得许多与迁移到 C/C++ 时相同的值(value)。我们也成功地从 C 调用 Fortran 例程,尽管调用约定的差异有时会使事情变得困难。

关于c++ - 将 Fortran 语言转换为 C 或 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/322846/

相关文章:

arrays - 在 Fortran 中选择给定逻辑向量的数组的子集

c++ - OpenGL - 矩形中的模板测试

c++ - 带符号和无符号操作数的按位 '&'

c++ - 在二进制文件中写入/读取字符串-C++

c - C语言中如何向数组追加值

c++ - 为什么 C++ 的 NULL 通常是整数文字而不是像 C 中的指针?

c++ - 为什么我们需要访问者模式中的accept()以及为什么我们不能直接调用visitor.visit()?

c++ - 为什么我在带有 OpenGL 核心配置文件的窗口上看不到红色三角形?

regex - 在 Vim 中将 .0D0 添加到数字末尾

fortran - 文件不存在时的异常处理