Re: [問題] 程式碼請教
※ 引述《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
02/15 11:50, 1F
→
02/15 11:52, , 2F
02/15 11:52, 2F
→
02/15 11:53, , 3F
02/15 11:53, 3F
→
02/15 11:54, , 4F
02/15 11:54, 4F
→
02/15 11:55, , 5F
02/15 11:55, 5F
→
02/15 11:55, , 6F
02/15 11:55, 6F
→
02/15 11:56, , 7F
02/15 11:56, 7F
→
02/15 11:57, , 8F
02/15 11:57, 8F
推
02/15 12:18, , 9F
02/15 12:18, 9F
→
02/15 14:30, , 10F
02/15 14:30, 10F
推
02/15 16:19, , 11F
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
討論串 (同標題文章)
Fortran 近期熱門文章
PTT數位生活區 即時熱門文章