如何访问从函数返回的数组元素?例如,shape()
返回一个整数数组。如何将该数组的元素与整数进行比较?以下不编译:
integer :: a
integer, dimension(5) :: b
a = 5
if (a .eq. shape(b)) then
print *, 'equal'
end if
错误是:
if (a .eq. shape(c)) then
1
Error: IF clause at (1) requires a scalar LOGICAL expression
我知道这是因为shape(c)
返回一个数组。但是,访问数组的元素似乎不可能像这样:shape(c)(1)
现在,如果我添加这两行:
integer, dimension(1) :: c
c = shape(b)
...并将if
子句更改为:
if (a .eq. c(1)) then
...然后它的工作原理。但是我真的必须声明一个额外的数组变量来保存 的返回值shape()
,还是有其他方法可以做到这一点?