Ошибка 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