параметризованная процедура в производных типах

Я пытаюсь написать небольшой модуль, который создает производный тип vector, однако при компиляции с помощью gcc10.1 я получаю сообщение об ошибке

overload1.f95:10:14:

   10 |      procedure :: ciao
      |              1
Error: Argument â of â with PASS(sh) at (1) must be of the derived-type â
overload1.f95:30:5:

Поискав в Интернете, я не нашел явного примера использования параметризованных типов в процедуре привязки типов. Кто-нибудь знает, где ошибка? (под небольшим кодом)

module mat
implicit none

type  vector(k, ndim)
 integer, kind :: k=KIND(4)
 integer, len  :: ndim
 real(kind = k), dimension(ndim) :: v
contains
 procedure :: ciao
end type vector

contains

subroutine ciao(sh,a)
class (vector(KIND(4),ndim)) :: sh
real(kind=8) :: a
a = 1d0
end subroutine ciao


end module mat
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
use mat
type( vector(4,10) ) :: A
A%v(1) =  1d0
A%V(2) =  2d0
A%v(3) =  3d0
write(*,*) A

end program

person Giuliano    schedule 09.06.2020    source источник
comment
Добро пожаловать. Пройдите тур и используйте тег fortran для всех вопросов по Фортрану.   -  person Vladimir F    schedule 09.06.2020
comment
Ваше использование KIND(4) весьма своеобразно. Вы действительно хотите получить тип целого числа по умолчанию? В этом случае я бы использовал KIND(1), чтобы было меньше путаницы. Кроме того, имейте в виду, что kind=8 уродлив, не переносим и может быть несовместим с 1d0.   -  person Vladimir F    schedule 09.06.2020
comment
По крайней мере, у вас есть ошибка в вашем коде с class (vector(KIND(4),ndim)) :: sh (вы не объявили ndim, и вместо этого вам нужно, чтобы параметр длины предполагался *), но я подозреваю, что вы столкнулись с проблемой в этот другой вопрос.   -  person francescalus    schedule 09.06.2020
comment
Я помечен как дубликат на основе отчета об ошибке GCC в ответ на связанный вопрос. Это не устраняет ошибку в коде, но даже исправив эту ошибку, вы столкнетесь с ошибкой GCC.   -  person francescalus    schedule 09.06.2020
comment
спасибо francescalus, это именно то, что я хотел бы сделать. Я удивлен, что в bugzilla предлагают патч, но у gcc10.1 такая же проблема   -  person Giuliano    schedule 10.06.2020