【问题标题】:I am trying to solve the error message 'incompatible ranks 0 and 1 in assignment' in a fortran 95 program.我正在尝试解决 fortran 95 程序中的错误消息“分配中的 0 和 1 不兼容”。
【发布时间】:2014-04-06 14:50:30
【问题描述】:

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

结束程序

【问题讨论】:

    标签: fortran


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      顺便说一句:我对你的循环有点困惑...v(i+1) = ... 行不应该在循环内吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-26
        • 1970-01-01
        • 2014-02-25
        • 2012-03-26
        • 2020-07-26
        • 2023-01-04
        相关资源
        最近更新 更多