Причины, по которым «Эквивалентность установлена ​​для«% VARIABLENAME », приводит к недопустимому расширению COMMON«% BLOCKNAME » - PullRequest
0 голосов
/ 23 апреля 2019

Я пытаюсь скомпилировать и связать проект Fortran, который включает в себя код, написанный мной, а также код, написанный какой-то другой командой. Основная программа включает в себя множество заголовочных файлов, в которых, например, установлены общие блоки. При компиляции файла с основной программой, я получил множество сообщений об ошибках от gfortran, заявив, что The equivalence set for ‘%VARIABLENAME’ cause an invalid extension to COMMON '%BLOCKNAME'

Те же основные программы и заголовочные файлы уже работали в других программах. Я никогда не видел это сообщение раньше и не мог найти описание того, что оно означает. Кто-нибудь может рассказать мне больше об этом?

1 Ответ

0 голосов
/ 24 апреля 2019

Я выяснил это самостоятельно, и это было очень просто:% VARIABLENAME в приведенном выше сообщении об ошибке на самом деле был массивом и имел размер, который был явно слишком большим (порядка нескольких миллионов) для обычного блока. Это было связано с тем, что размерность массива была установлена ​​параметром в коде, который я получил от другой команды, где они установили произвольное значение. Сокращение размера массива до значения, которое действительно имело смысл, помогло немедленно. Возьмите домашние сообщения: избегайте общих блоков, всегда проверяйте код, который вам дают другие.

...