1
编译我的一个Fortran代码时遇到此错误消息。我发现了一些关于同样错误的类似帖子,但这些帖子中没有任何情况适用于我的情况。我很感谢在这里提供的任何答案或帮助。提前致谢!Fortran错误#6366:数组表达式的形状不符合
(代码是很长,所以我只能切出相关的那些句子。)
======================= ============================
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数组的东西。如果你发现任何问题,请指出我的错误。
非常感谢!
贾斯汀
更详细 - 编译器认为,B是一个数组,但C,X和Y不是。在表达式中添加+ B会将整个表达式转换为数组,但如果C不是同一形状的数组,那就是错误。在这种情况下,提供一个小而完整的例子来说明问题会更有帮助,而不是摘录或释义,因为这些例子通常会遗漏关键细节。 –