2012-03-18 103 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

看起來好像你的程序試圖寫入文件在單元48上稱爲stop.in,並遇到問題。造成這種情況的最可能原因是執行WRITE語句時該文件不存在,這又意味着將該文件「附加」到單元48的OPEN語句不成功。

編輯

你的代碼片段並不表明你檢查該語句

打開返回的錯誤代碼(48,文件= 'stop.in',狀態= '老')

我建議你彈出iostat參數,看看它告訴你什麼。

進一步編輯

我在原來的答覆替代的話「不存在」的第二句「不會在程序期望存在的位置」。

+0

我不認爲so.Part的代碼: – milenko 2012-03-18 11:28:54

+0

寫(6335) 335格式( 'INVERSE:', + '使用LSQR和正規化計算緩慢更新') 開放(50,文件= 'NOWRITE' ,狀態= '舊',ERR = 9999,的iostat = ioflag) 9999如果(ioflag.gt.0)然後 IO = 0 否則 IO = 51 端如果 ç 開放(48,文件='停止.in',status ='old') 閱讀(48,*)iistop – milenko 2012-03-18 11:30:05

+1

@milenkomarkovic:請將代碼編輯到您的問題中,而不是發表評論 – talonmies 2012-03-18 11:33:03

相關問題