4

以下程序使用 ifort(版本 12)编译,但不能使用 GFortran(最高版本 4.8)编译:

PROGRAM TEST
IMPLICIT NONE
REAL,DIMENSION(2,2)::X=(/1,2,3,4/)

WRITE(*,*) X

END PROGRAM TEST

GFortran 给出错误

REAL,DIMENSION(2,2)::X=(/1,2,3,4/)  
                       1  
Error: Incompatible ranks 2 and 1 in assignment at (1)

Ifort 编译程序并给出预期的输出。这是 GFortran 中的错误还是英特尔 fortran 仅允许非标准数组初始化?

4

1 回答 1

9

将数组声明行重写为:

REAL,DIMENSION(2,2) :: X = RESHAPE([1,2,3,4],[2,2])

ifort 以另一种方式编译它的原因是非标准实现。这是一种可以初始化等级高于 1 的数组的方法。

于 2012-05-11T18:44:51.587 回答