Fortran错误#6366:数组表达式的形状不符合

时间:2013-10-18 22:19:27

标签: arrays compiler-errors fortran conform

编译我的一个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数组不太了解的东西。如果你抓到了,请指出我的错误。

非常感谢!

贾斯汀

1 个答案:

答案 0 :(得分:3)

代码中的其他位置是否有dimension语句用于任何这些变量?错误消息似乎指向C;评论+B消除错误似乎更加坚定地指向B

这就是为什么我喜欢在一行上声明变量的所有特性。 如,

real, dimension (20) :: a

而不是:

dimension A(20)
real A