[SCore-users-jp] omni Fortran レポート

入谷 佳一 iriya @ crc.co.jp
2002年 7月 15日 (月) 14:03:19 JST


入谷です.

omni Fortran を使用して以下の現象に
遭遇したので,ご報告します.

read(io,format, end=999)
でEOF処理をすると,次にreadが呼ばれると
readから処理が戻ってきません.
topで見るとCPUは消費しています.

       open (11, file = 'data1.dat')
       do while(.true.)
          read(11,*,end=999) i
       end if
   999 continue
       close(11)
       open (12, file = 'data2.dat')
       read(12,*, end=999) i  <-------
       ...

read(io,format, iostat=iost)
ではiostに常に0が入りeofに達すると
最後の行を読み込みます.
そのため下のリストは無限ループになります.

       open (11, file = 'data1.dat')
       do while(.true.)
          read(11,*,iostat=iost) i
          if(iost.eq.0) exit
       end if
       close(11)

----------------------------------------
入谷 佳一 (Iriya Yoshikazu)
  (株)CRCソリューションズ  
   エネルギー技術部  システム安全チーム
   Tel.  03-5634-5803  Fax.03-5634-7338



SCore-users-jp メーリングリストの案内