maxloc 的形状错误
Shape error with maxloc
我的代码有问题,我想找到数组的最大值元素在哪里。
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
?
您的 MAXLOC(a)
,没有 DIM=
说明符,returns 等级 1 和大小 3 的数组(a
的等级)。您正在尝试将此 rank 1 数组分配给不同大小 (1484) 的 rank 1 数组。从错误消息中您可以看到这些是注释的两个数字。
所以,您想将 ad1
声明为
integer, dimension(3) :: ad1
[请注意,如果编译器支持内部 RANK
可能对一般声明有用。]
或者,当然,您可以在问题中声明 ad1
,但只分配给它的三个元素。
我的代码有问题,我想找到数组的最大值元素在哪里。
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
?
您的 MAXLOC(a)
,没有 DIM=
说明符,returns 等级 1 和大小 3 的数组(a
的等级)。您正在尝试将此 rank 1 数组分配给不同大小 (1484) 的 rank 1 数组。从错误消息中您可以看到这些是注释的两个数字。
所以,您想将 ad1
声明为
integer, dimension(3) :: ad1
[请注意,如果编译器支持内部 RANK
可能对一般声明有用。]
或者,当然,您可以在问题中声明 ad1
,但只分配给它的三个元素。