Параметризованные производные типы с процедурами, привязанными к типу [дубликаты]

Мне удается компилировать связанные с типом процедуры непараметризованных производных типов, а также параметризованные типы без связанных процедур, но не параметризованные производные типы со связанными процедурами, используя 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’

person Jonatan Öström    schedule 05.05.2020    source источник
comment
Код связанного вопроса может не совпадать с точным совпадением, но я думаю, что ошибка gcc достаточно близка, чтобы сказать, что проблемы одинаковы. Есть несколько других связанных ошибок gcc с процедурами параметризованных типов, связанными с типом, поэтому связанная ошибка может не подходить наилучшим образом, но мы можем сказать, что ваш код в порядке.   -  person francescalus    schedule 05.05.2020
comment
@francescalus Да, это точно такая же ситуация.   -  person Jonatan Öström    schedule 06.05.2020
comment
Решение, которое я нашел, состояло в том, чтобы обновить Ubuntu до версии 20.04, которая имеет flang-7 в apt-репозиториях. Он гладко скомпилирован с помощью Flang.   -  person Jonatan Öström    schedule 06.05.2020