行列を作って対角化するプログラムを作っています。

行列を作るプログラムが動いたので
それをサブルーチンに入れると
コンパイルできるのですが、実行すると
Segmentation fault (core dumped)のエラーが出ます。
行列の大きさは1000×1000です。

試しに行列のサイズを小さくすると350×350では動きました。

使ってるOSはvistaでcygwin上でg77でコンパイルしています。
メモリは2Gです。

行列サイズを大きいままで動かすことはできないでしょうか?