编译我的一个Fortran代码时遇到此错误消息。我发现了一些关于同一错误的类似帖子,但这些帖子中没有一个情况适用于我的情况。我很感激这里提供的任何答案或帮助。提前谢谢!
(代码很长,所以我只剪掉那些相关的句子。)
=============================================== ====
DIMENSION A(20), COORDS(3)
REAL B, C, X, Y, Z
B = 1.0
X = COORDS(1)
Y = COORDS(2)
Z = COORDS(3)
DO I = 1,3
A(I) = COORDS(I)
END DO
C = SQRT ( X**2.0 + Y**2.0 ) + B
=============================================== ====
错误消息指向最后一行:
错误#6366:数组表达式的形状不符合。 [C
]
如果我注释掉+ B
,则不会发生错误。
我只是不明白。数组COORDS
的元素被传递给标量变量X, Y, Z
。为什么他们和B
(或C
)不一致?
我知道必须有一些我对Fortran数组不太了解的东西。如果你抓到了,请指出我的错误。
非常感谢!
贾斯汀
答案 0 :(得分:3)
代码中的其他位置是否有dimension
语句用于任何这些变量?错误消息似乎指向C
;评论+B
消除错误似乎更加坚定地指向B
。
这就是为什么我喜欢在一行上声明变量的所有特性。 如,
real, dimension (20) :: a
而不是:
dimension A(20)
real A