Использование вектора для индексации многомерного массива Fortran

Возможно ли в современном Фортране использовать вектор для индексации многомерного массива? То есть, учитывая, скажем,

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 , но вместо этого на Фортране. К сожалению, умные ответы не будут работать с предопределенными рангами массива.

11
задан Vladimir F 18 October 2017 в 15:04
поделиться