英特尔 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 编译器支持

您应该使用更高版本的编译器或重写代码以避免使用此功能。