Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何逻辑检查IF语句中数组的形状?_Arrays_If Statement_Fortran - Fatal编程技术网

Arrays 如何逻辑检查IF语句中数组的形状?

Arrays 如何逻辑检查IF语句中数组的形状?,arrays,if-statement,fortran,Arrays,If Statement,Fortran,是否可以使用if语句检查数组是否为特定形状?我尝试了以下方法,但没有成功 program main implicit none ! Local variables. integer, dimension(3,3) :: a integer, dimension(3,3) :: b ! Check if a is a 3x3 array. if (shape(a) == shape(b)) print *, "Works" end program ma

是否可以使用if语句检查数组是否为特定形状?我尝试了以下方法,但没有成功

program main

   implicit none

 ! Local variables. 

   integer, dimension(3,3) :: a
   integer, dimension(3,3) :: b

  ! Check if a is a 3x3 array.

    if (shape(a) == shape(b)) print *, "Works"

end program main
但我得到了一个错误:

错误:位于(1)的IF子句需要一个标量逻辑表达式(shape(a)=shape(b))
是逻辑数组
[T]
,因为它将
a
的第一秩与
b
的第一秩进行比较,依此类推

您需要一个逻辑标量:
(all((shape(a)==shape(b))
确保每个维度都是相同的