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

时间:2019-06-27 14:27:25

标签: 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 main

但是我得到了错误:

Error: IF clause at (1) requires a scalar LOGICAL expression

1 个答案:

答案 0 :(得分:1)

data()是逻辑数组(shape(a) == shape(b)),因为它比较[ T T ]的第一行和a的第一行,依此类推。

您需要一个逻辑标量:b确保每个维度都相同。