使用数组的某些值?

时间:2018-02-20 13:50:39

标签: fortran gfortran

假设我有一个像这样定义的数组:

Real, allocatable, dimension(:) :: h
N=5
allocate(h(N))

然后说我用值1,1,1,1,1填充它,并希望将第0个元素乘以某个东西,我该怎么做?

注意,它在一个循环中,所以它会执行第0个,然后是第1个等,所以我不能手动输入它。

我尝试了h(0)*的东西,但得到了

unclassifiable statement at (1).

感谢任何帮助,谢谢

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