Segmentation Fault (メモリ制限?)
Segmentation Fault (Fortranのプログラム)に関して質問です。
あるデータを処理するプログラムですが、小さなデータの場合問題ないですが、
大きなデータを扱うようになった場合Segmentation Faultとなります。
宣言している配列サイズを超えた部分のアクセスなどでSegmentation
Faultが出ることがあるようですが、どうやらそのような現象ではなく、
メモリ制限にひっかかっている感じがいたします。
エラーが出る部分はどうやらSubroutine内の大きなデータ宣言を
している部分のようです。(下の例ではtest bが表示れる以前に止まります。)
!--------------------------------------------------
subroutine calc_tri( )
implicit none
real*8 data1(3,200000) !<--- ここでエラー -->
write(6,*) 'test b'
!--------------------------------------------------
このような場合、配列データを減らす以外にどのような対策が
あるのでしょうか?
あるいはメモリ制限になりそうなデータ数が分る方法などあります
でしょうか?
環境は
linux (CentOS)
intel Fortran Compiler version 8.0
Mem: 1GB
topコマンドにて Memの使用割り合いは10%にもならないのですが
コンパイラによるメモリ制限などもあるのでしょうか?
subroutine内の配列の宣言はデータ数より多くとっていることは確認しています。