我正在尝试解决错误消息'不兼容的排名0和1在分配'在Fortran 95计划中。

时间:2014-04-06 14:50:30

标签: fortran

我正在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

2 个答案:

答案 0 :(得分:3)

您不能在表达式中使用[]作为普通括号。它是一个数组构造函数,[ items ]表示一个以items作为元素的数组。 end do也应该在此行之后。

答案 1 :(得分:2)

好吧,你使用[ ... ]跨越了一个向量(这相当于(/ ... /))。因此,使用常规括号而不是方括号可以解决您的问题。

BTW:我对你的循环感到有点困惑...... v(i+1) = ...行不应该在循环内吗?