在现代 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 中的索引数组的多维索引本质上是相同的问题,但在 Fortran 中。不幸的是,那里的聪明答案不适用于预定义的数组等级。