Передать производный тип как массив

В Fortran можно работать с массивами, но как можно обрабатывать индексы производного типа как часть массива? Код объяснил бы, что я хочу сделать лучше всего:

type mytype
    integer :: b(3,3)
    real :: c(4)
endtype

integer :: a(3,3)
real :: d(2,4)
type(mytype) :: mat(2)

!do stuff so that 'mat' gets values
....

!usually one does this
a = matmul(mat(1)%b, transpose(mat(2)%b))

!multiplying two 3x3 matrices

!but how does one do this? Note the "array"
d = matmul(mat(:)%c, mat(:)%c)

Я предположил, что последняя строка аналогична матрице 2x4, умноженной на себя. Однако, когда я пытаюсь скомпилировать, gfortran жалуется

Ошибка: нельзя указывать две или более ссылки на детали с ненулевым рангом

Это возможно сделать в Фортране?

Ответы на вопрос(1)

Ваш ответ на вопрос