fortran f90输出没有产生预期的结果

时间:2015-03-23 11:05:24

标签: fortran

我正在尝试使用此程序对X(i + 1)= X(i)* 50进行迭代。编译后,代码的输出不是预期的结果。例如,X1的值假设为500,X0 = 10。但在这种情况下,它产生了0.我做错了什么。

program error

implicit none

integer :: i

real*8,dimension(4)  :: X

real*8  :: X0

X0=10

do i=0,3

  X(i+1)=(50.0d0)*X(i)

  write(*,*), i, X(i+1)

end do

end program error

1 个答案:

答案 0 :(得分:1)

看起来好像已经分配了X0,但从未在计算中使用过。不应该有一条线路将X0分配给X(1)吗?或者更清楚:X0与X(1)不同。另外,fortran中的数组的默认索引从1开始,因此循环中使用的索引不正确。

program error

implicit none

integer :: i

real*8,dimension(5)  :: X <-- Extend by one element

real*8  :: X0

X0=10

X(1) = X0;

do i = 1,4 <-- Important!

    X(i+1)=(50.0d0)*X(i)

    write(*,*), i, X(i+1)

end do

end program error