Предполагая, что вам нужен список массивов, каждый из которых имеет одинаковый размер. Это лучше производительность разумно использовать 2D массив:Использование 2d массива против массива производного типа в Fortran 90
integer, allocatable :: data(:,:)
или массив производных типов:
type test
integer, allocatable :: content(:)
end type
type(test), allocatable :: data(:)
Конечно, для массивов различных размеров, у нас нет выбора. Но как память управляется между двумя случаями? Кроме того, является ли одна из них хорошей практикой кода?
Рассмотрите возможности, предлагаемые определенными операциями в отношении вашего комментария о умножении и присваивании массивам. – IanH
Достаточно справедливо, но верно, что с использованием встроенных в 2d массивов вы получаете те (a) быстрее (b) с вероятностью меньшего количества временных (например, d = a * b + c), (c) с нарезкой в обоих измерениях на в то же время, все (d) бесплатно. По-прежнему будет иметь смысл делать массивы массивов в некоторых случаях, но если вам не нужна эта дополнительная общность, использование более простого случая, вероятно, имеет смысл. –