首页 文章

Fortran 2D阵列初始化

提问于
浏览
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中的错误还是intel fortran只允许非标准阵列初始化?

1 回答

  • 6

    将数组声明行重写为:

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

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

相关问题