Fortran maxloc的形状错误
我的代码有一个问题,我想找出数组的最大值元素在哪里Fortran maxloc的形状错误,fortran,gfortran,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?您的MAXLOC(a)
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=
说明符,将返回秩1和大小3的数组(秩a
)。您正试图将此秩1数组分配给不同大小的秩1数组(1484)。从错误消息中,您可以看到以下两个注释编号
因此,您要将ad1
声明为
integer, dimension(3) :: ad1
[请注意,如果您的编译器支持内在的RANK
可能对一般声明有用。]
当然,你也可以像问题中那样声明ad1,但只分配给它的三个元素。是的,我想找到一个最大元素。