Modern Fortran Explained 13章 を参考に試してみました。
ソース・プログラム
program test implicit none type :: t_mat(ikind, n, m) integer, kind :: ikind integer, len :: n, m real(ikind) :: x(n, m) end type t_mat ! type, extends(t_mat) :: t_labelled_mat(length) integer, len :: length character(len = length) :: label end type t_labelled_mat ! type(t_labelled_mat(kind(0.0), 10, 10, 20)) :: a ! a%label = 'test matrix' call random_number(a%x) print *, a%label%len print *, 'sum, average=', sum(a%x), sum(a%x) / size(a%x) stop end program test
実行結果
20 sum, average= 52.24876 0.5224876 Press any key to continue . . .