Fortran 90代码是否总能与Fortran 95编译器配合使用?

时间:2012-10-29 16:13:46

标签: fortran fortran90 fortran95

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

Fortran 90代码是否总能使用Fortran 95编译器(如gfortran?

)正确编译

2 个答案:

答案 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很多。