- ベストアンサー
fortranでデータの抜き出しをしたい
- fortranを使用して、CSVファイルから特定の条件のデータを抜き出す方法を教えてください。
- 具体的には、ido, keido, pointの値が0以上0.5未満の行のデータを抽出し、新しいCSVファイルに保存したいです。
- 必要なプログラムの作成方法や参考になるサイトの紹介をお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
書かれているプログラムに対して気が付いたことをあげておきます。 型宣言を最初にしておくべきでしょう。 宣言文無しでは、iやkは整数型とみなされます。 real*8 ido,keido,atai 装置番号に5の使用は避けた方がよいと思います。 一般に標準入力として使用されています。 標準出力として使われる6も同様の理由で避けた方がよいです。 また、入力と出力の装置番号は一緒にしない方がよいと思います。 Fortran77の固定形式を使うのであれば、10から99までの数字を使って下さい。 OPEN (10,FILE='motod.csv', status='old') OPEN (20,FILE='newd.csv') ... READ(10,*) ido,keido,atai ... WRITE(20,*)ido,keido,atai 読み込むcsvファイルの1行目に ido,keido,point という情報があれば、これは読み込む必要はないのでdo loopに入る前に空読みします。 read(10,*) do 10 i=1,100000 if文でandを使うのであれば、 IF(atai.GE.0.00 .and. atai.LT.0.50)then です。 出力にコンマ区切りが必要であれば、 WRITE(20,*)ido,',',keido,',',atai とします。フォーマット文を使っても同様のことはできます。 stopの前に全角スペースが入っています。 コンパイラにもよりますが、一般にコメント文以外で全角文字を使うとコンパイルできなくなります。 特に配列は必要ありません。 質問とは直接関係ありませんが、コメント うまく行かない場合はエラーメッセージを読みながら試行錯誤してください。 短いプログラムでは、コンパイルエラーをしっかり読めば簡単にデバグできます。 また、プログラムを勉強するのであれば、ネットも利用するのも1つの手段だとは思いますが、例題がたくさん載っている良書を参考にするのも良いと思います。
お礼
返信が、大変遅くなりました。 しかし、ご提示いただいたものは、とても役立ちました。 ありがとうございました。