使用ifort 11.0进行编译时出现语法错误

时间:2014-01-01 07:39:06

标签: compiler-construction fortran syntax-error intel intel-fortran

我有一个.F90文件,其代码类似于

INTEGER, PARAMETER, PUBLIC  :: Byte    = SELECTED_INT_KIND(1)   ! Byte  integer
INTEGER, PARAMETER, PUBLIC  :: Short   = SELECTED_INT_KIND(4)   ! Short integer
INTEGER, PARAMETER, DIMENSION( N_IP_KINDS ), PRIVATE :: IP_KIND_TYPES = (/ Byte,Short /)

使用ifort 12成功编译,但是当我使用ifort 11.0进行编译时 它给出了以下错误

ABC.f90(275): error #5082: Syntax error, found ',' when expecting one of: ( %% : . = => INTEGER, PARAMETER, DIMENSION( N_IP_KINDS ), PRIVATE :: IP_KIND_TYPES = (/ Byte, &

看起来像编译器错误。 任何人都可以通过对源代码进行任何更改来使用ifort 11.0来说明如何编译它

1 个答案:

答案 0 :(得分:1)

实际上这是ifort 11.0

中众所周知的错误

你可以通过两种方式克服这个问题

1:将编译器升级到ifort 12 2:修改源代码,如下所示

INTEGER, PARAMETER, PUBLIC  :: Byte    = SELECTED_INT_KIND(1)   ! Byte  integer
INTEGER, PARAMETER, PUBLIC  :: Short   = SELECTED_INT_KIND(4)   ! Short integer
INTEGER, PARAMETER, DIMENSION( N_IP_KINDS ), PRIVATE :: IP_KIND_TYPES = (/ SELECTED_INT_KIND(1),SELECTED_INT_KIND(4) /)