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

时间:2017-04-22 12:16:04

标签: loops fortran dimension

我需要帮助才能理解为什么我无法编译此代码

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

1 个答案:

答案 0 :(得分:1)

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

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