2012-03-18 3 views
0

У меня есть проблема с этим кодом, когда я бегу инверсия script.I пытался отладить с помощью GDB:Программа получила сигнал SIGABRT (FORTRAN)

Starting program: /home/milenko/fg77/f2/bin/inverse_2d 
INVERSE: calculate slowness update using LSQR and regularization 
open: No such file or directory 
apparent state: unit 48 named stop.in 
lately writing sequential formatted external IO 

Program received signal SIGABRT, Aborted. 
0x0012d422 in __kernel_vsyscall() 

ответ

2

Это выглядит, как если бы ваша программа пыталась записать в файл stop.in на блоке 48 и столкнулся с проблемой. Наиболее вероятной причиной этого является то, что этот файл не существует, когда выполняется оператор WRITE, что, в свою очередь, предполагает, что оператор OPEN для «прикрепления» этого файла к блоку 48 не был успешным.

EDIT

Ваш фрагмент кода не показывает, что вы проверить код ошибки, возвращаемый заявление

открытой (48 файла = 'stop.in', статус = 'старый')

Я предлагаю вам добавить аргумент iostat и посмотреть, что он вам скажет.

ДАЛЕЕ EDIT

Во втором предложении моего оригинального ответа заменить «не существует» со словами «не существует в том месте, программа ожидает».

+0

Я не думаю, что so.Part коды: – milenko

+0

формата запись (6335) 335 ('INVERSE:', + 'вычислить обновления замедленности с помощью LSQR и упорядочению') открытых (50, файл = 'nowrite' , статус = 'старый', эээ = 9999, IOSTAT = ioflag) 9999, если (ioflag.gt.0), то Io = 0 еще Io = 51 конец, если с открытым (48, файл = "стоп .in ', status =' old ') read (48, *) iistop – milenko

+1

@milenkomarkovic: пожалуйста, отредактируйте код в своем вопросе, а не разместите его в комментариях. – talonmies

Смежные вопросы