• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:fortaran初心者です...(複数条件の一致のカウント))

fortran初心者が質問する: 複数条件の一致のカウントができない

このQ&Aのポイント
  • fortran初心者が、複数条件の一致のカウントができない問題について質問しています。
  • 質問の内容は、与えられたデータの中で(1)が同じである場合に、(2)がどれだけ異なるかをカウントする方法を知りたいというものです。
  • また、質問者が作成したプログラムについても言及しており、配列のサイズが大きすぎることが原因かもしれないと疑問を投げかけています。

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

  • ベストアンサー
  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.1

> 14 READ(11,5001,END=15) DAT1,DAT2,DAT3 なぜDAT3まであるのでしょう? 質問文によるとデータは2つずつのはずですが? > NKOTU(DAT1,DAT3)= 1 DAT2はどこで使うのでしょう? DAT3を質問文の2つ目の要素としても、軽くnamerの値を超えていますし。 > If (NKOTU(ii,k).EQ.1) WRITE(21,6004) NUMR(ii),KOTU(ii,k) 単純なタイプミスなんでしょうけど、 KOTU(ii,k)→NKOTU(ii,k) ですね。 プログラムを見る限り少々の手直しで目的の動作をするとは思えないです。 フローチャートを書くなりして、アルゴリズムを整理してみてはいかがですか? ちなみに私のメモリが256MBしかないWin機では、このプログラムは重過ぎてまともに動かせませんでした。 INTEGERを32bitとした場合、GBクラスのメモリを要求してきますね。

その他の回答 (1)

  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.2

気になったので質問文のプログラムももう一度試してみました。 DAT2を無視して、DAT3の中身を(2)とした場合(5001のフォーマットを見るとDAT2の方に思えますが)、一応このプログラムでも動くようです。 うまく動かない原因は配列のサイズが小さ過ぎることでした。 ただその場合はnamerの値も5桁にしないといけないので、メモリを大量に載せた(namerの値によりますがTB単位で必要になってくるはず)ワークステーションとかでないとまともに動かせないでしょうね。 私はデータの方を2桁に落として試してみました。

関連するQ&A