[問題] 檔案讀取 陣列檔案

看板Fortran作者 (weiserhorner)時間11年前 (2013/02/04 17:57), 編輯推噓3(306)
留言9則, 4人參與, 最新討論串1/2 (看更多)
各位好 小弟剛接觸fortran約五天 只會用matlab fortran是為了模擬工具所需硬寫的 我有個檔案 其中一行像是底下這樣 然後有好幾千行 想要一次讀取1000行 1 -6.08974 -0.389376 -2.5e-05 1096.12 157.843 1 20.7615 938.272 2212 1 -2.16598 -0.777673 -566.665 0 0 0 還有幾千行 下略 以下是我寫出來不能跑的東西 先嘗試讀五十行出來 但是不能用 有爬了之前的文章 幾乎是照寫 但是不知問題出在哪裡 integer UF,Cg,PID,N parameter(N=50) real X,Y,Z,TE,E,WT,T,MS,U,V,W,Px,Py,Pz,MU,MV,MW open(unit=80,file='test.phsp',access='sequential') do i=1,10 read(80,110) UF(i),X(i),Y(i),Z(i),TE(i),E(i),WT(i), & T(i),MS(i),PID(i),Cg(i),MU(i),MV(i),MW(i),Px(i),Py(i),Pz(i) 110 format (I2,E3.6,E3.6,E3.6,E4.2,E3.3,I1,E3.3,E3.3,I4,I2, & E2.4,E2.4,E2.4,E2.4,E2.4,E2.4 ) enddo write(*,*) UF,X,Y,Z,TE,E,WT,T,MS,PID,Cg,MU,MV,MW,Px,Py,Pz close(80) stop end 有沒有高手可以指點一下 感恩 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.25.95.67

02/04 18:15, , 1F
你的real那一行沒有宣告成陣列=> real UF(N)...
02/04 18:15, 1F

02/04 22:17, , 2F
有什麼錯誤訊息嗎?還有close和stop應該放到loop外
02/04 22:17, 2F

02/04 22:53, , 3F
我看起來open跟close在loop外欸XD
02/04 22:53, 3F

02/04 23:47, , 4F
A:第一行的1跟後面資料在同一行嗎?是的話分行read
02/04 23:47, 4F

02/04 23:49, , 5F
B:格式Ex.y表示以總字元寬度x顯示小數點下有效位y位
02/04 23:49, 5F

02/04 23:51, , 6F
C:你有宣告實數變數但是卻指定整數的格式
02/04 23:51, 6F

02/04 23:57, , 7F
看錯了不好意思
02/04 23:57, 7F

02/04 23:59, , 8F
除了real那一行要陣列,integer那一行也要
02/04 23:59, 8F

02/05 13:34, , 9F
感謝樓上各位指導 我會再試試
02/05 13:34, 9F
文章代碼(AID): #1H3uOAyi (Fortran)
文章代碼(AID): #1H3uOAyi (Fortran)