• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【fortran77】データ行数のカウント)

【Fortran77】データ行数のカウント方法は?

このQ&Aのポイント
  • Fortran77で複数のデータファイルの行数をカウントする方法について教えてください。
  • 具体的には、複数のデータファイルの行数を個別にカウントし、計算結果を別ファイルに出力するFortranプログラムを作成したいです。
  • 現在はデータファイルを個別に確認して行数をカウントしており、効率化を図りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

データを読みながらカウントすればよいのでは? 前回の回答( http://qanda.rakuten.ne.jp/qa4425688.html )を変更して 以下のようにすればカウントできます。 (エラー処理などは入っていませんので適宜入れてください)    dimension a(1000,4)    open(1,file="data.dat")    i = 1  100 continue    read(1,*, END=200) (a(i,j),j=1,4)    i = i + 1    goto 100  200 continue    write(6,*) "データ数 = " , i    do 300 k = 1, i      write(6, *) (a(k,j),j=1,4)  300 continue

bilateraria165
質問者

補足

前回にひきつづきありがとうございます! 読み込むときにカウントすればよいのですね。 教えていただいた方法でうまくいきました。 これは質問の補足というより参考程度に聞きたいのですが、 上記の方法で前回の質問のような、空行を挟むデータを読み込むときには、 空行を除いた数がカウントされるようなのですが、 空行を含めた行数をカウントする場合はどのように指定すればよいのでしょうか?

その他の回答 (2)

回答No.3

空行を挟むデータを読み込むときにはフォーマット付文字列で読み込みます。 但し、古いFortranの知識ですので、もっと良い方法があるかもしれません。    character*80 c    dimension a(8,4)    open(1,file="data.dat")    i = 1  100 continue    read(1,'(A80)', END=200) c    if(len_trim(c) .gt. 0) then     read(c, *) (a(i,j),j=1,4)    end if    i = i + 1    goto 100  200 continue1234

bilateraria165
質問者

お礼

たびたびありがとうございます! こちらも教えていただいた方法でうまくいきました。

回答No.1

>それぞれのデータセットの行数をカウントする必要があります(計算の必要上)。 事前に行数を知っていく必要があるって、何を計算するのでしょうか?

bilateraria165
質問者

補足

言葉が足りず申し訳ありません。 直近ではまだ計算までは行わないのですが、 (なので、回答を急がない質問なのですが) いずれデータ点の補間や平均値を計算できるようプログラムを改良していく予定です。 補間で使うかは不明なのですが、平均の計算には不可欠なので、 データ行数の取得までプログラムの中で行いたい、という意味です。