用于填充维度变量的隐式循环

Implicit loop for filling a dimension variable

我需要帮助来理解为什么我无法编译这段代码

program test
 integer,dimension(1:10) :: isquares
 isquares(:) = (j**2,j=1,10)
 print*,isquares
end

不过这个版本还可以:

program test
 print*,(j**2,j=1,10)
end

(j**2,j=1,10) 是一个隐式循环。对于赋值,您需要先将其转换为数组:

isquares(:) = [(j**2,j=1,10)]