我想從循環內的大文件(超過10^10行)中讀取條目。由於文件很大,我一次讀取一個元素,使用它,然後讀取下一個元素,依此類推。因此,我有這樣的事情:在Fortran 95中一次又一次讀取文件的內容
DO i = 1, 10
open(unit = 1, file = 'myfile.dat')
Do j = 1, 10^10
read(1, *)x
!Use x here
Enddo
close(1)
ENDDO
這工作正常,當外循環運行少量次。但是,當我想嘗試多次運行(比如說100到1000)時,我的計算機會掛起或發出錯誤:Not enough space on \tmp
。我看着this但這並沒有解決我的問題。我的主要猜測是發生這種情況,因爲每次我重新打開文件時,它都會存儲在RAM或tmp中,但我不確定這一點。在這種情況下,任何人都可以告訴我一個更好的方法來加載文件只有一次,但一遍又一遍地閱讀內容?
你可以給我們一個正確的編譯例子。例如10^10不是Fortran。我也希望看到x的定義... –
@FrancoisJacq:是的'10^10'不是一個fortran,並不意味着在我的問題中的任何地方。我已經正確地阻止了我的Fortran代碼片段。 – Peaceful