我们有一个用Fortran 90编写的复杂程序,我只能找到Fortran 95编译器。不幸的是,我的访问和体验有限,但需要立即了解问题。
Fortran 90代码是否总能使用Fortran 95编译器(如gfortran?
)正确编译答案 0 :(得分:10)
Fortran版本向后兼容,可能是故障。在Fortran95标准中,有一些非常(当之无太)模糊的结构最终被删除:例如,来自this page:
Fortran 95表示已删除以下Fortran 90和FORTRAN 77功能:
- 分配并分配GO TO语句
- PAUSE声明
- O类型的控制变量和表达式
- H编辑描述符
- 从IF块外部分支到END IF语句
但除非你的代码使用那些(并且它不应该),你应该对F95没问题;否则,大多数F95编译器仍然可以使用一种模式来编译旧代码,例如-std=legacy
用于gfortran。
答案 1 :(得分:1)
Fortran编译器(IBM除外)是向后兼容的。所以任何有效的F90代码都将在F95编译器上编译。
IBM以不同的方式做事,它们似乎是向前兼容的。所以xlf
将编译77以后xlf90
将执行90/95等等。
注意,始终是一个强有力的词。它真的取决于你的编译器制造商。但GNU Fortran或英特尔Fortran目前只有一个编译器可用于所有版本的Fortran,尽管有时支持F2003 / 2008很多。