Исправлена ​​ошибка времени выполнения Fortran при записи вывода - PullRequest
4 голосов
/ 26 августа 2009

У меня возникли проблемы со старым кодом, используемым для исследований, который я хотел бы скомпилировать с помощью компилятора Intel Fortran. В конкретной подпрограмме я получаю ошибки сегментации, если не добавлю оператор write, который просто выводит значение индекса цикла.

do j=1,ne

SOME STUFF

write(*,*) 'j=', j

end

Что могло быть причиной моей ошибки, так что этот оператор записи исправил бы мою ошибку сегментации? (Примечание: j объявлено как целое число)

спасибо, Кили

1 Ответ

6 голосов
/ 26 августа 2009

Классические способы вызвать этот тип ошибки, которая «исправлена» путем вставки операторов записи:

  1. уход от конца массива - используйте ваш компилятор, чтобы включить проверку границ и параметры отладки, чтобы проверить это;

  2. несоответствие между аргументами, предоставленными подпрограмме, и ожидаемыми аргументами. Опять же, используйте ваш компилятор, если это возможно, ваши глаза в противном случае.

Вероятность того, что одна из них является причиной, равна 5: 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...