私は何度も呼び出される必要があるサブルーチンを持つメインプログラムを持っています。メインプログラムは次のようになります:FortranサブルーチンのStackoverflow
program main
open output file
do i = 1, 20000
read parameters par_1, par_2, ..., par_8
call subroutine (par_1, .... , par_8)
enddo
end program
サブルーチンはすべての作業を行い、配列の値を保存しません。それらは主に中間結果を格納するために使用されます。私は20個のアレイの2に問題があることがわかっ
subroutine calcr
real, dimension(5000) :: array_1, array_2, .... array_20
read temperature into array_1
read pH into array_2
...
store intermediate results into array_10
sotre intermediate results into array_20
...
make final calculations
write the results to the output file
close files from which the data was read (temperature, pH...)
end subroutine
:よう
サブルーチンが見えます。これらの2つの配列の次元を2倍にすると、問題なく2回プログラムを実行できます。 プログラムは「プログラム例外配列が超過しました」というエラーメッセージで停止します
ディメンション* 10を取ると、プログラムを10回実行しても同じエラーが発生します。
しかし、私は、ディメンション* 100を取る場合、私はエラーわずか約30回のプログラムを実行して取得することができます - 私はすべての治療以来、問題は嘘かもしれないところ、私は知りません「プログラム例外スタックオーバーフロー」
を同じ方法で2つの配列だけがこの問題を抱えています。 ありがとうございました!
あなたが提供した情報であなたに答えを与えることは不可能です。 –