Tak i nie. Najpierw no:
Odpowiednie tablice w języku Fortran, takie jak te zadeklarowane tak:
integer, dimension(3,3,4) :: an_array
lub jak to
integer, dimension(:,:,:,:), allocatable :: an_array
są prawidłowe; dla każdego wymiaru istnieje tylko jeden zakres.
Ale, jeśli chcesz określić własny typ na nierównym tablicy można, i to jest stosunkowo proste:
type :: vector
integer, dimension(:), allocatable :: elements
end type vector
type :: ragged_array
type(vector), dimension(:), allocatable :: vectors
end type ragged_array
Przy tego rodzaju podejściu można przeznaczyć elements
każdego z vectors
Do inny rozmiar. Na przykład:
type(ragged_array) :: ragarr
...
allocate(ragarr%vectors(5))
...
allocate(ragarr%vectors(1)%elements(3))
allocate(ragarr%vectors(2)%elements(4))
allocate(ragarr%vectors(3)%elements(6))