являются регулярными; для каждого измерения существует только одна степень.
Но, если вы хотите определить свой собственный тип для оборванного массива, вы можете, и это относительно легко:
type :: vector
integer, dimension(:), allocatable :: elements
end type vector
type :: ragged_array
type(vector), dimension(:), allocatable :: vectors
end type ragged_array
При таком подходе вы можете выделить elements каждого из vectors на другой размер. Например:
смотрящий на первый ответ, кажется, что нет необходимости создавать производный тип vector, который на самом деле является просто выделяемым целым массивом:
type ragged_array
integer,allocatable::v(:)
end type ragged_array
type(ragged_array),allocatable::r(:)
allocate(r(3))
allocate(r(1)%v(5))
allocate(r(2)%v(10))
allocate(r(3)%v(15))