maxloc的形状错误

时间:2015-04-25 10:20:17

标签: fortran gfortran

我的代码有问题,我想找到数组最大值元素的位置。

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

1 个答案:

答案 0 :(得分:3)

您的MAXLOC(a),没有DIM=说明符,会返回排名为1和大小为3的数组(排名为a)。您正尝试将此排名1数组分配给不同大小的排名1数组(1484)。从错误消息中可以看出这些是两个数字。

因此,您要将ad1声明为

integer, dimension(3) :: ad1

[请注意,如果您有编译器支持,则内部RANK可用于一般声明。]

或者,当然,您可以在问题中声明ad1,但只分配给它的三个元素。