4

BLUPF90ファミリーのプログラムの1つである「thrgibbs1f90b」を使用しています。これは「fortran」に基づいており、バイナリデータの分散成分を推定するためのギブスサンプリングに使用されます。thrgibbs1f90bを実行しようとするたびに、次のエラーメッセージが表示されます。

forrtl:重大(157):プログラム例外-アクセス違反

Image               PC                Routine            Line        Source

thrgibbs1f90b.exe    0000000140021961    Unknown    Unknown    Unknown
thrgibbs1f90b.exe    000000014000BB5B    Unknown    Unknown    Unknown
thrgibbs1f90b.exe    000000014026B41C    Unknown    Unknown    Unknown
thrgibbs1f90b.exe    000000014024F4E3    Unknown    Unknown    Unknown
kernel32.dll         0000000076E2652D    Unknown    Unknown    Unknown
ntdll.dll            0000000076F5C521    Unknown    Unknown    Unknown

なぜ私がこのメッセージを持っているのか分かりますか?

ありがとう!

4

1 に答える 1

7

2つの根拠のある推測

  1. プログラムは、25 要素配列の 26 番目の要素など、存在しない配列要素に対して読み取りまたは書き込みを試みました。
  2. プロシージャに指定された仮引数とプロシージャの呼び出しの実引数が一致しません。たとえば、8 バイトの値が予期されるときに 4 バイトの実数値を渡す (またはその逆)

これらのいずれかにより、プログラムのプロセスがアクセス権を持たないメモリ位置にアクセスしようとする可能性があります。他にも多くの原因が考えられますが、私の経験では、Fortran プログラムでこのようなエラー メッセージが表示される最も一般的なエラーは次のとおりです。

これらはどちらも簡単に見つけることができます。これらの条件を確認するには、コンパイラ オプションを設定してプログラムを (再) コンパイルする必要があります。

于 2012-11-15T09:32:52.507 に答える