Ошибка 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) не соответствуют?

Я знаю, что должно быть что-то, чего я не совсем понимаю в массиве Фортрана. Пожалуйста, укажите мою ошибку, если вы поймете.

Большое спасибо!

Джастин

1 ответ

Есть ли dimension заявление в другом месте кода для любой из этих переменных? Сообщение об ошибке, кажется, указывает на C; что комментируя +B устраняет ошибку, кажется, более твердо указывает на B,

Вот почему мне нравится, чтобы все характеристики переменной были объявлены в одной строке. например,

real, dimension (20) :: a

вместо:

dimension A(20)
real A
Другие вопросы по тегам