我的代码有问题,我想找到数组最大值元素的位置。
double precision,dimension(1484,10,10) :: a
integer,dimension(1484) :: ad1
然后我尝试:
ad1= maxloc(a)
我收到错误
ad1= maxloc(a)
1
Error: Different shape for array assignment at (1) on dimension 1 (1484 and 3)
我应该如何定义ad1
?
答案 0 :(得分:3)
您的MAXLOC(a)
,没有DIM=
说明符,会返回排名为1和大小为3的数组(排名为a
)。您正尝试将此排名1数组分配给不同大小的排名1数组(1484)。从错误消息中可以看出这些是两个数字。
因此,您要将ad1
声明为
integer, dimension(3) :: ad1
[请注意,如果您有编译器支持,则内部RANK
可用于一般声明。]
或者,当然,您可以在问题中声明ad1
,但只分配给它的三个元素。