[問題] 不知道問題出在哪?

看板Fortran作者 (亂想)時間14年前 (2010/07/30 10:17), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/1
不好意思又來請教各位了 小弟目前嘗試寫讀取資料的程式中 以下是我的程式碼 program ho01 implicit none character(len=75) :: line real :: string1,string2 integer :: p,status,string3,i,sj logical :: get,filename data p /1/ open(10,file='home.txt',form='formatted',access='sequential') open(20,file='200212.cwb',form='formatted',status='old',access='sequential') read(20,'(bn,a75)') line read(line(15:22),'(bn,f6.2)') string1 read(line(23:30),'(bn,f7.2)') string2 read(line(67:69),'(bn,i2)') string3 ! filename = (filename >= 200204) .and. (filename <=200212) get = (string1 >= 2300.00) .and. (string1 <= 2400.00) .and. (string2 >= 12000.00) .and. (string2 <= 12200.00) do while (.true.) if(get) then p=p+1 write(10,'(i3)') 'p=',p write(*,'(i3)') 'p=',p read(20,'(bn,a75)') line write(10,'(a75)') line write(*,'(a75)') line sj=string3 + 2 do i=1,sj read(20,'(bn,a75)') line write(10,'(a75)') line write(*,'(a75)') line end do else read(20,fmt='(bn,a75)') line write(*,*) 'push' sj=string3 + 2 do i=1,sj read(20,'(bn,a75)') line end do end if end do stop end 我想要讀取檔案中第15~22的字元 23~23 67~69 寫出個判斷式來判斷 符合資料的話就開個新檔寫過去 不過符合的話我必須連下面那些不需要判斷的資料也一起寫過去 行數為sj 並顯示在螢幕上方便我閱讀 然後加個計數器 感覺寫出來的東西沒啥問題 可是讀出來的結果卻是PUSH 不然就是讀不出來 可否麻煩板上的大大們告訴我問題出在哪呢 還是個FORTRAN新手想破了腦實在看不出問題是出在哪裡 哀 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.66.94

07/31 15:48, , 1F
你的get寫法怪怪的我沒看過可以這樣用@@? 你檢查一下get
07/31 15:48, 1F

07/31 15:48, , 2F
的值看看應該就明瞭了
07/31 15:48, 2F

07/31 20:32, , 3F
應該將get後面的放到if裡,然後get=.true.
07/31 20:32, 3F

08/02 10:41, , 4F
不好意思 還是不太了解各位所說的原因 可否說的詳細一點
08/02 10:41, 4F

08/02 10:41, , 5F
感謝^^~
08/02 10:41, 5F
文章代碼(AID): #1CKZOfdd (Fortran)
文章代碼(AID): #1CKZOfdd (Fortran)