Re: [問題] 請問一下 我不能跑

看板Fortran作者 (Dolphin)時間12年前 (2011/08/23 06:39), 編輯推噓1(102)
留言3則, 1人參與, 最新討論串2/2 (看更多)
我先把註解拿掉 : program main : implicit real*8 (a-h,o-z) a~h,o~z開頭的變數通通宣告為浮點數 : implicit integer*4 (i-n) i~n開頭變數宣告為整數 : parameter (freqmin=2.01d0) : parameter (freqmax=7.5d0) 分別為常數 freqmin=2.01d0 & freqmax=7.5d0 : parameter (nplot=15001) : parameter (numfreq=100) : parameter (sigma=0.1d0) : parameter (scale=1.d0) 如上 : dimension w(numfreq),a(numfreq),v(numfreq),b(numfreq) 宣告4個陣列 : fnplot1=nplot-1 : delf=(freqmax-freqmin)/fnplot1 : fwhm=sigma : open(unit=1,file='input.dat',status='old') 開啟一個舊檔案 檔案名稱為 input.dat : do i=1,numfreq : read(1,*,end=10) idum,w(i),v(i),a(i) : end do 回圈 用來讀取 idum,w(i),v(i),a(i) !!end=10是讓程式讀到eof的時候跳到10,不是每讀完一筆資料 !!就到10 所以當資料數量少於numfreq的時候會跳到10 !!等於或大於numfreq的時候會跳到11 ::錯誤修改 : go to 11 跳到標示11的部分 ==> : 11 continue : 10 continue : npts=i-1 : go to 12 : 11 continue : npts=numfreq : write(*,*) 'maximum number of frequencies read:',numfreq : 12 continue : close(unit=1) 將檔案關閉 ========================================================================== : do i=1,nplot | : fi=i-1 | : x=freqmin+fi*delf | : sum=0.d0 | : sums=0.d0 | : do j=1,npts | : sum=sum+a(j)*exp(-(x-w(j))**2/(2.d0*fwhm**2)) | : end do | : x=8065.54099*x | : y=1.d7/x | : write(*,*) i,x,y,sum | : end do | : end | =========================================================================== 經過回圈和一些計算 把 i,x,y,sum 4個值輸出到螢幕 -- -- ▉╯╰ ▅▃▂ ▂ ╱ █ ╮╭ ▆▅ ▂▅▆ ╱ █ ╱ ╱ █ ╱ ▉ ◢▋ ▄▄ ▉ ◢▋ ╱ ████████████ ▉ ▆█◤ ▊ ▉ ▆█◤ ╱ ╱ █     ▋ ████████████ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.42.202.94

08/23 11:29, , 1F
end=10是讓程式讀到eof的時候跳到10,不是每讀完一筆資料
08/23 11:29, 1F

08/23 11:30, , 2F
就到10 所以當資料數量少於numfreq的時候會跳到10
08/23 11:30, 2F

08/23 11:31, , 3F
等於或大於numfreq的時候會跳到11
08/23 11:31, 3F
※ 編輯: awer89 來自: 163.13.111.146 (08/23 23:12)
文章代碼(AID): #1EKjgGOL (Fortran)
文章代碼(AID): #1EKjgGOL (Fortran)