- ベストアンサー
FORTRANについて
現在FORTRANを使用しているのですが,そのプログラムを回す際「total image size 861618176 exceeds max (268435456); image may not run」と警告が出ます。このまま,回すと『RUN-TIME ERROR』となってプログラムが止まってしまいます,これを解決するにはどうすればいいのでしょうか? 回答よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
実行ファイルサイズが許容上限サイズを超えたためだと思います。 開発環境に、上限サイズのある試用版等を使っているのでは? 対策は、以下の2通りくらいしか思いつきません。 1.正規版を導入する 2.実行サイズを上限サイズ内にする エラーメッセージの数値を見る限り、2はとてつもなく不可能に近い感じがしますね。
その他の回答 (2)
- ultraCS
- ベストアンサー率44% (3956/8947)
とりあえず思いつくこと ・メモリモデルに余裕があれば、より大きなメモリモデルで最適化する。 ・大きな配列をデータ文で初期している場合、データ文を止めて、実行の最初にループで初期化するようにしてください。静的な初期化をしている場合、配列そのままのサイズ実行ファイル上に取られますが、静的初期化をしていなければ、その領域は実行時に確保されます。ただ、これは、効果的かはコンパイラによります。。 ・サブルーチンに分割し、DLL化が可能なコンパイラ、リンカであれば、DLLとしてサブルーチンを作成し、実行時にオーバーレイできるようにする。
補足
使用しているコンパイラは『Fortran Power station』です。 このコンパイラの場合2番目の方法は可能ですか?
- --HV--
- ベストアンサー率25% (5/20)
自分がIntelFortranを使っていたときのことですが、 何かのCPUに特化した最適化をフルにかけたときに、モジュールサイズが異常に大きくなったことがありました。 最適化オプションをいろいろいじってみれば、サイズが小さくなるのかなーなんて思いました。 的外れな意見かもしれませんが、、、。
お礼
回答ありがとうございます サイズを小さくする努力をしてみます
補足
正規版のはずなのですが… 試用版なのかもしれません正規版の場合,上限が設定されていることは ないはずですもんね? いろいろ試してみたいと思います