Pregunta

The following program compiles with ifort (version 12) but not with GFortran (up to version 4.8):

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

WRITE(*,*) X

END PROGRAM TEST

GFortran gives the error

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

Ifort compiles the program and gives the expected output. Is this a bug in GFortran or does intel fortran simply allow non-standard array initialization?

¿Fue útil?

Solución

Re-write array declaration line as:

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

The reason ifort compiled it the other way is non-standard implementation. This is a way you can initialize arrays of rank higher than 1.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top