• 締切済み

FORTRANでファイルへの出力

FORTRAN77で,以下のような出力をしたいのですが,どうしたらいいかわかりません.何かいい案があれば,教えてください. 繰り返し処理の途中で計算を止めても,何ステップまで計算したかを第一行目に出力したいです. ex.)繰返し終値が1000として,456ステップで計算を止めたとき, ----------出力ファイル-------------- 456ステップまで計算されています. (↑何ステップまで計算されたかを   第一行に記入したいです.) step 1,データ step 2,データ : : step 456,データ ----(簡単ですが)考えてたプログラム------- OPEN(10,○) WRITE(10,○)  ←ここを悩んでいます. DO I=1,1000 WRITE(10,○)'step',I,データ CONTINUE

みんなの回答

  • k-pix
  • ベストアンサー率51% (50/98)
回答No.3

#2のk-pixです。 以下のような感じでいかがでしょうか? 例えば、データが256byte以下のサイズだとすると ----- character*256 dat(1000) do i = 1, 1000   !ここでデータ計算   !何かしらキー入力があれば、ループを抜ける continue open(10, *) write(10, *) i, 'ステップまで計算' do j = 1, i   !write(10, *) 'step', i, dat(i) continue -----

inaikarada
質問者

お礼

ありがとうございます. 参考にさせていただきます.

  • k-pix
  • ベストアンサー率51% (50/98)
回答No.2

ループ中にWRITE文を入れるのではなく、キー入力があればループを抜けるようにし、ループを抜けた後、まずステップ数を記録し、その後、別のループで一気にデータを書き込むというのはいかがでしょうか? データの保持に関しては、メモリ上が可能なら配列を取るとか、メモリ上が無理なのであれば、データを一旦別ファイルに仮出力しておけばよいと思います。

inaikarada
質問者

お礼

ありがとうございます. 申し訳ありませんが,もう少し具体的に書いてもらえると助かります.

  • akina_line
  • ベストアンサー率34% (1124/3287)
回答No.1

こんにちは。  下記サイトをご参照下さい。   http://wwwst.sc.musashi-tech.ac.jp/~bulletin/fort77.htm#Item7  WRITE文の第二引数はフォーマットです。上記例3では、フォーマットをきちんと書いていますが、フォーマットを気にしなければ、「WRITE(10,*)」でもOKです。 では。

inaikarada
質問者

お礼

ありがとうございます. WRITE文の○のところを悩んでいるわけではなく,第一行目の出力について悩んでいます.

関連するQ&A