質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
FORTRAN

FORTRAN(フォートラン)は科学時術計算に向いた手続き型プログラミング言語です。 並列計算の最適化が行いやすい特性上、数値予報および気候モデルなどの大規模な計算を行う分野のスーパーコンピュータで使われています。

Q&A

解決済

1回答

450閲覧

実数と整数が混ざったデータを配列として読み込むときの宣言の方法が分からない2(fortran)

tatsu31

総合スコア12

FORTRAN

FORTRAN(フォートラン)は科学時術計算に向いた手続き型プログラミング言語です。 並列計算の最適化が行いやすい特性上、数値予報および気候モデルなどの大規模な計算を行う分野のスーパーコンピュータで使われています。

0グッド

0クリップ

投稿2018/08/13 06:29

海洋系の観測データの解析を行っています。元のデータである”160909000000_refL.out”というファイルには、一行に日付や時刻、観測値などの16のデータが羅列しており、それらが縦に約90万行ほど並んでいます。それらをある条件を満たした時の行だけ抽出したいです。
今回は配列としてデータを読み込み、行数をカウント、条件に当てはまる配列だけを”160909000000_refL.outZ”へ書き込むという方法でデータの抽出を行いたいです。
プログラムは以下になります。

FORTRAN

1c refL 2 Program refL 3 Real z(5000) 4 Open (10,file='160909000000_refL.out',status='old') 5 Open (12,file='160909000000_refL.outZ',status='replace') 6 ii=0 7 100 Continue 8 ii=ii+1 9 Read (10,*,end=200) z(ii) 10 print *,z(10) 11 Go to 100 12 200 Continue 13 N=ii-1 14 do 300 i=1,N 15 if (z(10)==3 .and. z(11)==2) Then 16 print *,'hello2' 17 18 write(12,*) z(16) 19 print *,'hello3' 20 end if 21 300 print *,z(16) 22 Close (10) 23 Close (12) 24 STOP 25 END

コンパイルはできたのですが、その後の実行結果が以下のようになりました。
イメージ説明
横一列に並んだ16のデータのうち一つ目のデータしか出力されていません。
これを16のデータすべて配列に組み込むにはどのようにすればよいのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

z(5000)という宣言に惑わされていましたが、もしかすると、1行のデータの1項目目をz(1)に、2項目目をz(2)に読み込みたいと言う事ですか?

であれば、read文の使い方を完全に間違っています。

Fortran

1 Real z(16) 2 ・・・・・ 3 Read (10,*,end=200) (z(ii),ii=1,16)

投稿2018/08/13 06:59

otn

総合スコア84423

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tatsu31

2018/08/13 08:29

>1行のデータの1項目目をz(1)に、2項目目をz(2)に読み込みたいと言う事ですか? はい。そういう意味です。otnさんの方法で読み込むことができるようになりました。ありがとうございます。write文も下のように変更したのですが、書き込みができていません。 if文が間違っているのでしょうか。10項目目のデータが3かつ11項目目のデータが2のときにその行が書き込まれるようにしたいです。 ```Fortran do 300 i=1,N if (z(10)==3 .and. z(11)==2) Then ........ write(12,*) (z(ii),ii=1,16) ......... end if ```
otn

2018/08/13 12:16

デバッガを使うか、デバッグプリントを入れましょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問