假设我有一个像这样定义的数组:
Real, allocatable, dimension(:) :: h
N=5
allocate(h(N))
然后说我用值1,1,1,1,1填充它,并希望将第0个元素乘以某个东西,我该怎么做?
注意,它在一个循环中,所以它会执行第0个,然后是第1个等,所以我不能手动输入它。
我尝试了h(0)*的东西,但得到了
unclassifiable statement at (1).
感谢任何帮助,谢谢
答案 0 :(得分:2)
如果你在fortran中分配一个数组,例如
allocate(h(N))
数组h
包含h(1)
,h(2)
,h(3)
,h(4)
,h(5)
元素。
与例如C ++相反,数组元素从1
开始。如果你想从不同的数字开始,例如在0
,你可以像这样分配数组:
allocate(h(0:(N-1)))
数组现在具有相同的长度,但元素的地址为h(0)
,h(1)
,h(2)
,h(3)
,h(4)
此外,如果要将数组的值相乘,则必须编写类似
的内容 h(i) = h(i) * 5.0d0
。