Re: [問題] 程式碼請教

看板Fortran作者 (我是瓜呆)時間12年前 (2012/02/15 11:22), 編輯推噓4(4010)
留言14則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《psallen (psallen)》之銘言: : 小弟是fortran新手,最近在看一段程式碼要將其改成c語言, : 但目前有一段一直看不懂想請教版上的高手能否幫忙看看, : 感激不盡! : 擷取片段程式碼如下: : PARAMETER (M1=18,N1=2**M1) : implicit real*8 (a-h,o-z) : parameter (mtot=1000000) : REAL*8 X(mtot),vvz(mtot,6),xout(mtot,6),xx(n1),xall(n1,6) : complex*16 xfl(n1) : c** : c** nn=number of input responses : c** T=period : c** : write(*,*) ' [1]dt (in inp1) [2] Nterms (1-6) [3] M (13=16s)' : read (*,*) edt,nterm,M read的( )內第一個位置指的是讀取位置,*表示從螢幕輸入讀取 第二個位置指的是讀取格式,*表示自由格式,上行write也是如此 : N=2**M : if (edt>10.0) edt=1.0/edt : do i=1,mtot : read (1,*,iostat=kk) ajj,(vvz(i,j),j=1,nterm) 上行read說要從編號為1的檔案中讀取,不曉得前面是否有open(1,...)的 程式碼? 然後使用自由格式讀取,iostat是指當讀資料沒問題時為0,如 果讀取過程有問題通常是-1 : if (kk.ne.0) exit 上行指如果讀取有問題就跳出迴圈,也可使用在資料結束的時候跳出迴圈 : enddo : write(*,*) ' dt=',edt : 看不懂的地方是倒數第四行read那行代表的意思? : 因為我執行過第一次的write和read會顯示出來,而第四行的read卻不會顯示出來 第四行read不是從螢幕讀取,所以不會顯示 : 要我輸入東西,之前留下的執行檔事會在我輸入完edt,nterm,M的值時要我輸入input檔, : 但我擷取出來這段產生的執行檔卻輸入完edt,nterm,M的值時就跳到最後一個write了, : 麻煩大家了 : 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.36.198

02/15 11:50, , 1F
感謝mo大的回答,有稍微懂了
02/15 11:50, 1F

02/15 11:52, , 2F
read (1,*,iostat=kk)這行原程式碼前面並沒有open(1,...)
02/15 11:52, 2F

02/15 11:53, , 3F
的指令,但我拿之前此程式的執行檔執行時,在我輸入完
02/15 11:53, 3F

02/15 11:54, , 4F
edt,nterm,M這三個值時,dosbox會顯示一行
02/15 11:54, 4F

02/15 11:55, , 5F
File name missing or blank-please enter file name
02/15 11:55, 5F

02/15 11:55, , 6F
然後我就在這行出現後輸入我的input檔就可以繼續運作
02/15 11:55, 6F

02/15 11:56, , 7F
但我這次重新編譯程式碼時卻不會出現File missing這個提示
02/15 11:56, 7F

02/15 11:57, , 8F
不知道是哪邊出了問題,可以請mo大在幫我看看嗎?謝謝
02/15 11:57, 8F

02/15 12:18, , 9F
有辦法變成之前這樣在螢幕上輸入INPUT檔名嗎?
02/15 12:18, 9F

02/15 14:30, , 10F
請問你重新編譯的時候,有修改什麼內容嗎?
02/15 14:30, 10F

02/15 16:19, , 11F
不好意思這我也不知道,因為我以前都一直用exe檔做運算而
02/15 16:19, 11F

02/15 16:20, , 12F
已,程式碼是人編寫的,所以也不太清楚是否有改過
02/15 16:20, 12F

02/15 17:12, , 13F
這樣我不確定是不是程式裡面有給資料的檔名了...
02/15 17:12, 13F

02/16 10:24, , 14F
好那我再研究看看 謝謝
02/16 10:24, 14F
文章代碼(AID): #1FEoJsv2 (Fortran)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1FEoJsv2 (Fortran)