【发布时间】:2013-07-21 11:39:40
【问题描述】:
假设我有一个这样声明的维度数组:
integer, dimension(5) :: dims
dims = (/ 5, 6, 7, 8, 9 /)
我怎样才能最简单地使用这个数组来分配另一个数组,使用dims 的元素来指定各个维度的大小?假设第二个数组是这样声明的:
real, dimension(:,:,:,:,:), allocatable :: dset
为什么我不能执行以下操作?
allocate (dset(dims(:)))
当我尝试编译时得到Error: Rank mismatch in array reference。
我意识到我可以做到:
allocate (dset(dims(1), dims(2), dims(3), dims(4), dims(5)))
但我正在寻找更容易扩展的东西。
【问题讨论】:
标签: multidimensional-array fortran dynamic-memory-allocation allocatable-array