• ベストアンサー

FORTRANについて

現在FORTRANを使用しているのですが,そのプログラムを回す際「total image size 861618176 exceeds max (268435456); image may not run」と警告が出ます。このまま,回すと『RUN-TIME ERROR』となってプログラムが止まってしまいます,これを解決するにはどうすればいいのでしょうか? 回答よろしくお願いします。 

  • kky61
  • お礼率33% (1/3)

質問者が選んだベストアンサー

  • ベストアンサー
  • black2005
  • ベストアンサー率32% (1968/6046)
回答No.1

実行ファイルサイズが許容上限サイズを超えたためだと思います。 開発環境に、上限サイズのある試用版等を使っているのでは? 対策は、以下の2通りくらいしか思いつきません。 1.正規版を導入する 2.実行サイズを上限サイズ内にする エラーメッセージの数値を見る限り、2はとてつもなく不可能に近い感じがしますね。

kky61
質問者

補足

正規版のはずなのですが… 試用版なのかもしれません正規版の場合,上限が設定されていることは ないはずですもんね? いろいろ試してみたいと思います

その他の回答 (2)

  • ultraCS
  • ベストアンサー率44% (3956/8947)
回答No.3

とりあえず思いつくこと ・メモリモデルに余裕があれば、より大きなメモリモデルで最適化する。 ・大きな配列をデータ文で初期している場合、データ文を止めて、実行の最初にループで初期化するようにしてください。静的な初期化をしている場合、配列そのままのサイズ実行ファイル上に取られますが、静的初期化をしていなければ、その領域は実行時に確保されます。ただ、これは、効果的かはコンパイラによります。。 ・サブルーチンに分割し、DLL化が可能なコンパイラ、リンカであれば、DLLとしてサブルーチンを作成し、実行時にオーバーレイできるようにする。

kky61
質問者

補足

使用しているコンパイラは『Fortran Power station』です。 このコンパイラの場合2番目の方法は可能ですか?

  • --HV--
  • ベストアンサー率25% (5/20)
回答No.2

自分がIntelFortranを使っていたときのことですが、 何かのCPUに特化した最適化をフルにかけたときに、モジュールサイズが異常に大きくなったことがありました。 最適化オプションをいろいろいじってみれば、サイズが小さくなるのかなーなんて思いました。 的外れな意見かもしれませんが、、、。

kky61
質問者

お礼

回答ありがとうございます  サイズを小さくする努力をしてみます

関連するQ&A

  • FORTRAN90のコンパイル教えて下さい!

    あるプログラムをコンパイルしてみたのですが、 warning LNK4084: total image size 1053564928 exceeds max (268435456); image may not run というエラー文が出てきて困っています。どうやら容量が足りないみたいなのですが。話によるとコンパイルを行なう時に容量を増やして走らせる方法があるらしいですが・・・。誰か知っていたら教えて貰えませんか??

  • fortranについて

    fortranでプログラムをコンパイルし、実行したところRun-time Errorと出てきて、00401000 main [+0052]と書いてありました。何が原因なんでしょうか?

  • FORTRANのwarning

    fortranの勉強を最近始めたのですが 次のような警告が出てきます。 警告なので無視。ということもありなのかもしれませんがやはりないにこしたことはないのでなんとか消したく試行錯誤してみたのですがどうにも消えません。 どのようにしたらよいのでしょうか? エラーの内容は以下のとおりです In the call to (SUBROUTINE名), actual argument #1 does not match the type and kind of the corresponding dummy argument. fortranに詳しい方どうかよろしくお願いします

  • run-time error M6201: MATH-sqrt: DOMAIN errorとはなんでしょうか?

    FORTRANをはしらせるとrun-time error M6201: MATH-sqrt: DOMAIN errorと出てしまいます.どういうことなのでしょうか? ちなみにFORTRAN90を使用しています.

  • fortran90

    fortran90 現在 fortran90 で計算プログラムを作っております。 プログラムはかけたのですが、実行画面にエラーが出ます。 解決方法が分かりません。どなたか分かる方いらっしゃいますか。 プログラム implicit real*8 (a-h,o-z) parameter(n=900) open (1,file='004.txt',status='old') do 10 i=1,n read (1,*,end=11)xx,yy,zz,ww theta=acos(zz) phi1=acos(xx/sqrt(1-zz*zz)) phi2=asin(yy/sqrt(1-zz*zz)) write(*,*)theta,phi1,phi2 10 continue 11 end プログラム内容 あるフォルダーに保存してあるテキストファイルから4×4行列のデータを読み込み、そのデータからθの値とφ1、φ2のアタを求めるプログラムです。 実行分のエラー画面には、 acos: DOMAIN error です。

  • fortran90のerrorについての質問です。

    ある数値計算の数値結果をvtk形式のファイルに出力する プログラムを作ったのですが、以下のエラーが出ました。 Time increment = 2.8344347688340866E-002 [s] Step No. = 1 At line 217 of file test1.f90 (unit = 1) Fortran runtime error: Cannot open file 'result***.vtk': Invalid argument Error termination. Backtrace: Could not print backtrace: libbacktrace could not find executable to open #0 0xffffffff #1 0xffffffff #2 0xffffffff #3 0xffffffff #4 0xffffffff #5 0xffffffff #6 0xffffffff #7 0xffffffff #8 0xffffffff #9 0xffffffff #10 0xffffffff #11 0xffffffff #12 0xfffffff 不思議なことに、別のパソコンで同じプログラムを実行したところエラーは出ず、数値結果ファイルも出力されました。 このエラーは何なのでしょうか。また直し方はどうすればよいでしょうか。 困ってます。教えてください。

  • VineでFORTRAN

     「Vine Linux 2.6 r4」を使っています. 「ワークステーション」でインストールしました.  FORTRANで開発をたくて下記のサイトを参考にし「gcc-g77」をインストールしました. しかし,以下のようなエラーが出てしまいます. 何が原因で,どうのように解決すればいいのでしょうか? /usr/bin/ld:program_name.f90:file format not recognized; treating as linker script /usr/bin/ld:program_name.f90l:1:parse error collect2:ld returned lexit status ・参考にしたサイト 初歩的なFORTRANコンパイラ導入ガイド http://www-kn.sp.u-tokai.ac.jp/~inoue/computor/fortran/fortran.html PCの知識レベルとしては「初級シスアド」の資格を持っている程度です. よろしくお願いします.

  • Do文で副プログラムの増やす【Fortran】

    Fortranを使用してます。 DO文で副プログラムをループさせて増やしたいのですが、どうすればいいか分りません。 具体的には、副プログラムの「SUBROUTINE」文+サブルーチン名 であるサブルーチン名の後にループを使って番号を付けたいのですが・・・ 簡易なイメージとして以下のソースでtest0、test1、test2、・・・・・test10となるようなサブルーチン名にしたいのです。 do x=0,10 SUBROUTINE test+x y=x+10 retun end end do Fortran初心者ですが、解決したいので難しい解説でも大丈夫です。 分る方は宜しくお願いいたします。

  • 「Run-time error」という警告が出て、先に進みません

    あるソフトの設定を変えようと思い「設定」ボタンを クリックしたのですが、下記のような警告が出て 設定を変更することができません。 Run-time error 339 Component[COMDLG32.OCX]or one of its dependencies not correctly registered: a file is missing or invalid どうすれば解決するのでしょうか?

  • c言語とfortranの混在プログラミング

    cとfortranの混合プログラミングについての質問です。環境はWindows上でVisual studio 2005/Intel fortran 9.1です。 --c側(ctest6.cpp) #include <stdio.h> extern "C" void __stdcall fsub(){ printf("TEST PROGRAM!!\n"); } --fortran側(ftest6.f90) PROGRAM MAIN call FSUB END --エラー ctest6.obj:error LNK2019:未解決の外部シンボル_fsubが関数_mainで参照されました。 ftest6.obj:error LNK2019:未解決の外部シンボル_FSUBが関数_MAIN_で参照されました。 ftest6.exe:fatal error LNK1120:外部参照2が未解決です。 ---- __stdcall fsub()"の部分を過去の質問等を参考にし、色々(cのfsubを_fsubやfsub_にしたりと"_"を追加したり)と試してみたりしたのですが、上記のエラーがでてしまいます。fortran側で_FSUBと記入できない点が課題な気がしているのですが、ご教授いただけないでしょうか?