Возможно ли в современном Фортране использовать вектор для индексации многомерного массива? То есть, учитывая, скажем,
integer, dimension(3) :: index = [4,6,9]
double precision, dimension(10,10,10) :: data
есть ли лучший (более общий )способ доступа к data(4,6,9)
, чем запись data(index(1), index(2), index(3))
?Было бы хорошо, если бы не приходилось жестко кодировать -ранг массива data
.
(Наивно я хотел бы написать data(index)
, но, конечно, на самом деле это означает нечто иное -"сбор" подмножества -, требующее, чтобы data
был рангом -одного массива.)
Для чего это стоит, по сути, это тот же вопрос, что и многомерный индекс по массиву индексов в JavaScript , но вместо этого на Фортране. К сожалению, умные ответы не будут работать с предопределенными рангами массива.