みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

投稿日時 - 2007-07-10 17:16:23

QNo.3155727

暇なときに回答ください

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.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
-----

投稿日時 - 2007-07-12 22:36:49

お礼

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

投稿日時 - 2007-07-13 15:53:16

ANo.2

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

投稿日時 - 2007-07-10 17:57:05

お礼

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

投稿日時 - 2007-07-12 16:56:11

ANo.1

こんにちは。

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

では。

投稿日時 - 2007-07-10 17:26:28

お礼

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

投稿日時 - 2007-07-12 16:51:50

あなたにオススメの質問