[問題] binary檔寫檔錯誤
原本程式的架構是計算出來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
03/06 18:31, 1F
→
03/06 19:04, , 2F
03/06 19:04, 2F
→
03/06 22:32, , 3F
03/06 22:32, 3F
→
03/06 22:34, , 4F
03/06 22:34, 4F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
1
4
Fortran 近期熱門文章
PTT數位生活區 即時熱門文章