В программе Fortran2003 я хочу создать производный тип, который включает в себя размещаемый массив с атрибутом asynchronous
:
module async_in_type
type async_array
integer, dimension(:), allocatable, asynchronous :: a
end type async_array
end module async_in_type
Когда я пытаюсь скомпилировать приведенный выше код с помощью GCC, я получаю следующее сообщение об ошибке:
$ gfortran -c -Wall -Wextra async_in_type.F90
GNU Fortran (GCC) 4.10.0 20140718 (experimental)
async_in_type.F90:3.52:
integer, dimension(:), allocatable, asynchronous :: a
1
Error: Attribute at (1) is not allowed in a TYPE definition
С NAG Fortran сообщение похоже:
$ nagfor -c async_in_type.F90
NAG Fortran Compiler Release 6.0(Hibiya)
Product NPL6A60NA for x86-64 Linux
Error: async_in_type.F90, line 3: Syntax error
detected at ,@ASYNCHRONOUS
[NAG Fortran Compiler pass 1 error termination, 1 error]
В чем причина такого ограничения? Можно ли обойти это ограничение?