Подпрограмма 'initial' не является, в отличие от заключительной подпрограммы, частью стандарта Fortran.
В производном типе некоторые компоненты могут иметь начальные значения, установленные инициализация по умолчанию ,например,
type t
integer :: i=5
end type t
type(t) :: x ! x%i has value 5 at this point
Однако компоненты выделяемого массива (наряду с некоторыми другими вещами) могут не иметь инициализации по умолчанию и всегда начинать жизнь как нераспределенные.Вам понадобится конструктор или какой-то другой способ настройки такого объекта, если вы хотите, чтобы компонент был выделен.
В случае вопроса следует рассмотреть один параметризованный тип Fortran 2003+:
type t(n)
integer, len :: n
integer val(n)
end type
type(t(5)) :: x ! x%val is an array of shape [5]
Естественно, это не то же самое, что компонент размещаемого массива с «начальной» формой, но если вы просто хотите, чтобы компонент был начальной настраиваемой формой во время выполнения, этого может быть достаточно.