我正在Fortran编写一个程序来查找跳伞者与时间相关的速度。我一直收到一个我无法解决的错误。我是编程的新手,非常感谢任何帮助。
错误是
v(i+1)=v(i)+[32-((c*v(i)*v(i))/m)]*(h)
1
错误:在(1)
的赋值中,排名0和1不兼容我的程序是
PROGRAM para
INTEGER :: i
REAL :: v(11) !velocity
REAL :: q !initial velocity
REAL :: h !time step
REAL :: c !drag coefficient
REAL :: m !mass
! gravity is equal to 32 ft/s^2
WRITE (*,*)'enter time step'
READ(*,*)h
Write(*,*)'enter initial velocity'
READ(*,*)q
WRITE(*,*)'enter drag coefficient'
READ(*,*)c
WRITE(*,*)'enter mass'
READ(*,*)m
DO i=1,10 ! from 1 to 10, with 1 being the interval.
END DO
v(i+1)=v(i)+[32-((c*v(i)*v(i))/m)]*(h)
q=v(1)
END PROGRAM
答案 0 :(得分:3)
您不能在表达式中使用[]
作为普通括号。它是一个数组构造函数,[ items ]
表示一个以items作为元素的数组。 end do
也应该在此行之后。
答案 1 :(得分:2)
好吧,你使用[ ... ]
跨越了一个向量(这相当于(/ ... /)
)。因此,使用常规括号而不是方括号可以解决您的问题。
BTW:我对你的循环感到有点困惑...... v(i+1) = ...
行不应该在循环内吗?