0

我们有一个用 Fortran 90 编写的复杂程序,我只能找到 Fortran 95 编译器。不幸的是,我的访问权限和经验有限,但需要立即了解问题。

使用 Fortran 95 编译器(例如 gfortran)是否可以始终正确编译 Fortran 90 代码?

4

2 回答 2

10

Fortran 版本是向后兼容的,这可能是一个错误。在 Fortran95 标准中,有一些非常(当之无愧的)晦涩的结构最终被删除:例如,从此页面

Fortran 95 表示已删除以下 Fortran 90 和 FORTRAN 77 功能:

  • ASSIGN 和分配的 GO TO 语句
  • PAUSE 语句
  • O 控制变量和实数类型的表达式
  • H 编辑描述符
  • 从 IF 块外部分支到 END IF 语句

但是除非您的代码使用这些(而且不应该),否则您应该可以使用 F95;否则,大多数 F95 编译器仍然有一种模式,您可以使用该模式编译旧代码,例如-std=legacygfortran。

于 2012-10-29T16:19:59.747 回答
1

Fortran 编译器(IBM 除外)向后兼容。因此,任何有效的 F90 代码都将在 F95 编译器上编译。

IBM 做事不同,它们似乎是向前兼容的。所以xlf将从 77 开始编译,而将编译xlf9090/95,等等。

注意,永远是一个强词。这真的取决于你的编译器制造商。但是 GNU Fortran 或 Intel Fortran 目前只有一个编译器可用于所有类型的 Fortran,尽管有时对 F2003/2008 的支持参差不齐。

于 2012-10-29T16:18:57.103 回答