我有一个 .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
进行编译吗
实际上这是一个众所周知的错误
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) /)