4

我在编译我的一个 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 数组,一定有一些我不太了解的地方。如果您发现任何错误,请指出我的错误。

非常感谢!

贾斯汀

4

1 回答 1

3

代码中的其他地方是否有dimension任何这些变量的声明?错误消息似乎指向C;注释掉+B消除错误似乎更坚定地指向B.

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

real, dimension (20) :: a

代替:

dimension A(20)
real A
于 2013-10-18T23:47:15.157 回答