[問題] binary檔寫檔錯誤

看板Fortran作者 (神無月 孝臣)時間15年前 (2009/03/06 16:54), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串1/2 (看更多)
原本程式的架構是計算出來data後,寫入binary檔裡面 然後再將binary檔裡的資料讀進矩陣裡去進行後面的運算 這部分在使用上是沒發生過問題的,就算是比較大的data檔也可以順利跑 現在由於要進行程式的測試 所以想先跳過前面計算data的動作,直接將現有的data寫進binary檔裡 然後再將binary裡面的資料讀進矩陣裡做後續運算 可是做了修改後,發現只要是大一點的data要寫入binary時就會跟我說錯誤 debug模式下compile出來的執行檔會跑出這個錯誤訊息 forrtl: severe (37): inconsistent record length, unit 17, file E:\My Projects\unwarp6\unwarp6\fort.17 錯誤的那行為:write(17,rec=ii+1)countera release模式底下compile出來的執行檔會跑出這個錯誤訊息 forrtl: severe (37): inconsistent record length, unit 16, file E:\My Projects\unwarp6\unwarp6\fort.16 16和17都是我在寫data時所開的binary檔 open(16,file='m.txt',form='binary',access='direct',recl=4, 1 status='replace') open(17,file='i.txt',form='binary',access='direct',recl=4, 1 status='replace') 這兩個我檢查了很久一直都找不出來record lenght到底錯在哪裡 因為使用原本那種將計算出來的data寫入還沒看到這種錯誤過 data的格式我也不知道錯在哪裡 寫入16和寫入17的data宣告的格式都是integer,也不知道為何寫不進去 原本我是用intel fortran 11,後來我換了康柏的fortran來做compile debug和release模式都一樣也是會跑出record length的錯誤出來 到最後一樣找不出問題點在哪裡 為什麼原本寫法可以把大上非常多的data寫入binary都沒問題 修改寫法卻出現沒多大的data要寫入就會說record length錯誤 而且我的測試是根本沒有寫入幾筆就會出現錯誤了 請問有人有看過類似的問題嗎? -- Deserves death! I daresay he does. Many that live deserve death. And some die that deserve life. Can you give that to them? Then be not too eager to deal out death in the name of justice, fearing for your own safty. Even the wise cannot see all ends. Gandalf to Frodo -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.120.25.235

03/06 18:31, , 1F
是不是超過2G ?
03/06 18:31, 1F

03/06 19:04, , 2F
我測試只有寫入30幾筆資料就跟我說錯誤
03/06 19:04, 2F

03/06 22:32, , 3F
寫入的data都是real*4嗎?
03/06 22:32, 3F

03/06 22:34, , 4F
抱歉眼殘…
03/06 22:34, 4F
文章代碼(AID): #19iEJGH3 (Fortran)
文章代碼(AID): #19iEJGH3 (Fortran)