Мне удается компилировать связанные с типом процедуры непараметризованных производных типов, а также параметризованные типы без связанных процедур, но не параметризованные производные типы со связанными процедурами, используя gfortran-9
. Я что-то неправильно понимаю в приведенном ниже примере?
simple.f90
:
module types
implicit none
type stype(s)
integer, LEN :: s = 3
contains
procedure :: p=>print
end type stype
contains
subroutine print(q)
class(stype(*)), intent(in) :: q
print*, q%s
end
end module
program p
use types
type(stype(5)) :: q
call q%p
end program
gfortran-9 simple.f90
дает:
simple.f90:6:17:
6 | procedure :: p=>print
| 1
Error: Argument ‘q’ of ‘print’ with PASS(q) at (1) must be of the derived-type ‘stype’
flang-7
вapt
-репозиториях. Он гладко скомпилирован с помощью Flang. - person Jonatan Öström   schedule 06.05.2020