OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

fortranプログラムについて

  • すぐに回答を!
  • 質問No.171878
  • 閲覧数581
  • ありがとう数3
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 58% (31/53)

お願いします。
fortran全くの初心者です。
今、他人が作ったプログラムに苦戦中です(ーー;)
どなたか助けてください。。

プログラムをコンパイル後、実行すると以下のメッセージが返ってきます。

exec(2):insufficient swap or memory available

そこで、以下のプログラムの一部を修正することで回避できました。

parameter
# (nxdm=10,nydm=5,nzdm=5,ipdim=4
# ,nxd6=nxdm+6,nyd6=nydm+6,nzd6=nzdm+6
# ,nvcdim=6*ipdim+4,iatdim=1
# ,nhfdim=nvcdim*(nvcdim+1)/2+3)

プログラム中のnxdm nydm nzdmの値を小さくすることで回避できました。
なんとなくの修正で回避していますが、メッセージとの関係がわかりません。
どこかを見たりすると定義する数字の限度とかわかるのでしょうか?

ほんの一部なのでわかりずらいと思いますが、こういうことがありえる!って
程度でもいいので教えてください。
お願いします。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全4件)

  • 回答No.1
レベル7

ベストアンサー率 50% (2/4)

確認していないのでわかりませんが,parameter文のなかで割り算は使えないのではないでしょうか? つまり nhfdim=nvcdim*(nvcdim+1)/2+3 の部分を変更すれば動くと思うのですが・・・. ...続きを読む
確認していないのでわかりませんが,parameter文のなかで割り算は使えないのではないでしょうか?
つまり
nhfdim=nvcdim*(nvcdim+1)/2+3
の部分を変更すれば動くと思うのですが・・・.
お礼コメント
chibitotoro

お礼率 58% (31/53)

ありがとうございます。
試してみます。
投稿日時 - 2001-11-21 13:13:46


  • 回答No.2
レベル10

ベストアンサー率 55% (29/52)

たぶん、3次元配列を処理しているのだと思うのですが、そういうのは、メモリを大量に消費します。エラーメッセージは、単にメモリが足りないということを意味しているので、配列を少なくすることでエラーを回避できるのは、道理にかなっていると思います。 ちなみに、使えるメモリの量というものは、OSやコンパイラに依存するものなので、ソースだけではなんともいえません。はい。 ...続きを読む
たぶん、3次元配列を処理しているのだと思うのですが、そういうのは、メモリを大量に消費します。エラーメッセージは、単にメモリが足りないということを意味しているので、配列を少なくすることでエラーを回避できるのは、道理にかなっていると思います。
ちなみに、使えるメモリの量というものは、OSやコンパイラに依存するものなので、ソースだけではなんともいえません。はい。
補足コメント
chibitotoro

お礼率 58% (31/53)

ありがとうございます。

もうちょっと教えていただけますか?
初めの実行で正常に実行できて、実行を繰り返すたびに
配列を少なくしないと実行が出来なくなってしまう。
実行のたびに使えるメモリ数が減ってしまうというのも
普通のことなのでしょうか?

お願いします。
投稿日時 - 2001-11-21 09:28:03
  • 回答No.3
レベル10

ベストアンサー率 25% (32/125)

配列が(dimension文で)大きくとってあるのです。 コンパイル時は正常に済んでも、実行時に、他のウィンドウで別のプログラムが動作しているとかで、メモリ不足になったりならなかったりするのです。 ...続きを読む
配列が(dimension文で)大きくとってあるのです。
コンパイル時は正常に済んでも、実行時に、他のウィンドウで別のプログラムが動作しているとかで、メモリ不足になったりならなかったりするのです。
お礼コメント
chibitotoro

お礼率 58% (31/53)

ありがとうございます。
投稿日時 - 2001-11-26 11:56:06
  • 回答No.4
レベル10

ベストアンサー率 55% (29/52)

OSや処理系は何をお使いでしょうか? 私の数少ない経験では、大型計算機やワークステーションはメモリ管理がしっかりしているので、実行するたびにエラーメッセージが変わるというようなことは起きにくいのですが、RUN/FORTRANのような教育環境で使われるパソコン用の処理系ですと、少し大きなプログラムを作るとすぐにメモリを食い尽くしたり、プログラムを終了してもメモリリーク(メモリをつかんだまま解放しないこと) ...続きを読む
OSや処理系は何をお使いでしょうか?
私の数少ない経験では、大型計算機やワークステーションはメモリ管理がしっかりしているので、実行するたびにエラーメッセージが変わるというようなことは起きにくいのですが、RUN/FORTRANのような教育環境で使われるパソコン用の処理系ですと、少し大きなプログラムを作るとすぐにメモリを食い尽くしたり、プログラムを終了してもメモリリーク(メモリをつかんだまま解放しないこと)が発生したり、モニタモードなんてものがあったりして、初心者の場合、実行環境が裏で動いているにもかかわらず、それを知らずに新たにモニタを起動してしまったりしてメモリを食い尽くすことはあります。OSがWindowsなら、その可能性は大きいです。
こういうことは、あまりあってはいけないことなのですが、出来の悪いソフトを動かすと遭遇します。残念ながら。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ