英特尔 Fortran 编译器 2015 的 TYPE(*) 语法错误 (Mac OS X)
Syntax error with TYPE(*) with Intel Fortran Compiler 2015 (Mac OS X)
使用 IFORT 2015 编译以下 Fortran 程序时(对于 Mac OS X):
MODULE X
USE, INTRINSIC :: iso_c_binding, ONLY: c_intptr_t
IMPLICIT NONE
INTERFACE
INTEGER(c_int) FUNCTION process(variable) BIND(C, name = "_process")
USE, INTRINSIC :: iso_c_binding, ONLY: c_int
!DEC$ ATTRIBUTES NO_ARG_CHECK :: variable
!GCC$ ATTRIBUTES NO_ARG_CHECK :: variable
TYPE(*), INTENT(IN) :: variable
END FUNCTION
END INTERFACE
END MODULE
...它给出了以下错误:
example.f90(13): error #5082: Syntax error, found ',' when expecting one of: , <END_OF_STATEMENT> ;
TYPE(*), INTENT(IN) :: variable
-------^
这是我编译 Fortran 程序 (example.f90) 的方式:
ifort example.f90 -free -m64 -c -fPIC -02 -o wrapper.o
假设类型声明 type(*)
是 Fortran 2018(或 TS29113 添加到 Fortran 2008)的一项功能,在 release 16.0.
中首次由英特尔 Fortran 编译器支持
您应该使用更高版本的编译器或重写代码以避免使用此功能。
使用 IFORT 2015 编译以下 Fortran 程序时(对于 Mac OS X):
MODULE X
USE, INTRINSIC :: iso_c_binding, ONLY: c_intptr_t
IMPLICIT NONE
INTERFACE
INTEGER(c_int) FUNCTION process(variable) BIND(C, name = "_process")
USE, INTRINSIC :: iso_c_binding, ONLY: c_int
!DEC$ ATTRIBUTES NO_ARG_CHECK :: variable
!GCC$ ATTRIBUTES NO_ARG_CHECK :: variable
TYPE(*), INTENT(IN) :: variable
END FUNCTION
END INTERFACE
END MODULE
...它给出了以下错误:
example.f90(13): error #5082: Syntax error, found ',' when expecting one of: , <END_OF_STATEMENT> ;
TYPE(*), INTENT(IN) :: variable
-------^
这是我编译 Fortran 程序 (example.f90) 的方式:
ifort example.f90 -free -m64 -c -fPIC -02 -o wrapper.o
假设类型声明 type(*)
是 Fortran 2018(或 TS29113 添加到 Fortran 2008)的一项功能,在 release 16.0.
您应该使用更高版本的编译器或重写代码以避免使用此功能。