ifort で -O0 を付けてコンパイルすると、プログラムは正しく実行できます。しかし、最適化オプション (-O、-O3、-fast など) を開いている限り、SIGSEGV セグメンテーション エラーが発生します。
このエラーは、maketable() という名前のサブルーチンで発生しました。そして以下は現象です:
(1) このサブルーチンで fftw ライブラリを呼び出します。fftwの文章にコメントしてくれればOKです。しかし、このコードの他の場所でも fftw を使用しているので、fftw のせいではないと思います。
(2) fftw はループ内で呼び出され、プログラムがクラッシュしたときにループが数回実行される可能性があります。ループに入った最初の時点ではセグメンテーション違反は発生しません。
(3) スタックオーバーフローも考えましたが、今は考えていません。私はずっと前に他の人がコンパイルした実行可能ファイルを持っています。それは私のコンピューターで実行できます。システムスタックオーバーフローが原因ではないことを示唆していると思います。
ifort のバージョンは 10.0、fftw のバージョンは fftw-2.1.5 です。CPUタイプはIntel Xeon 5130です。どうもありがとう。