Предполагая, что вам нужен список массивов, каждый из которых имеет одинаковый размер. Лучше ли с точки зрения производительности использовать 2D-массив:
integer, allocatable :: data(:,:)
или массив производных типов:
type test
integer, allocatable :: content(:)
end type
type(test), allocatable :: data(:)
Конечно, для массивов разных размеров у нас нет выбора. Но как память управляется между двумя случаями? Кроме того, является ли один из них хорошей практикой кода?