ご覧頂きありがとうございます。
FORTRANで多次元FFTのプログラムを作っている者です。
多次元FFTのプログラム自体は完成したのですが、
それを行うためのデータを格納する配列のサイズが大きすぎ、
プログラムを実行しようとしても強制終了となってしまう、
という問題に悩んでいます。
現在のプログラムは、1次元FFTのプログラムを繰り返して多次元のFFTを計算するものです。
つまり、例えば2次元であれば、
あるデータ
F(idx, jdt) (i=1,…,N1, j=1,…,N2)
について、
まず x についての長さ N1 の1次元FFTを t を動かしながら N2 回行い、
次に t についての長さ N2 の1次元FFTを x を動かしながら N1 回行って計算する、
という方法です。
その際用いるデータは、
a(i, j)=F(idx, jdt)
のように2次元の配列となっています。
ここで、私が計算したいデータは、
F(x, y, z, t)
という4次元のデータなのですが、
上に述べたように計算しようとすると、配列も
a(i, j, k, l)=F(idx, jdy, kdz, ldt)
と4次元のものを使わなくてはならず、
サイズが爆発的に大きくなり、強制終了となってしまいます。
そこでお聞きしたいのですが、
多次元のFFTについて、プログラムが強制終了とならないよう、
配列のサイズを節約するには、どのような方法があるでしょうか。
ちなみに、コンパイル時は、-mcmodel=large のオプションをつけて行っています。
どうかご回答よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー