我在编译我的 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
Run Code Online (Sandbox Code Playgroud)
=================================================== =
错误消息指向最后一行:
错误#6366:数组表达式的形状不符合。[ C]
如果我注释掉+ B,则不会发生错误。
我就是不明白。数组的元素COORDS被传递给标量变量X, Y, Z。为什么它们和B(或C)不一致?
我知道 Fortran 数组一定有一些我不太理解的地方。如果您发现任何错误,请指出我的错误。
多谢!
贾斯汀
dimension代码中的其他地方是否有针对这些变量的声明?错误消息似乎指向C;注释掉+B消除了错误似乎更明确地指出了B。
这就是为什么我喜欢在一行中声明变量的所有特征。例如,
real, dimension (20) :: a
Run Code Online (Sandbox Code Playgroud)
代替:
dimension A(20)
real A
Run Code Online (Sandbox Code Playgroud)