• ベストアンサー

ftn77のコンパイルエラー

ftn77でfortranのプログラムをコンパイルしたところ、 文字情報のみでテストしたらコンパイルに成功したのですが、 数値計算の入ったものをコンパイルしたら、 実行時に以下のようなエラーが起こりました。 ーーーーーーーーーーーーーーーーーーーーーーーー RUN-TIME ERROR 00401000 main [+00c5] [recur= 1] メッセージ WARNING the following symbols are missing: IMAG C:\fortran\(ファイル名).obj (C:\FORTRAN\(ファイル名).FOR) ーーーーーーーーーーーーーーーーーーーーーーーーー 元々別のパソコンでコンパイルが成功したものを、 まったく書き換えずにftn77でコンパイルしてみたのにもかかわず、 UNTIME EROORと表示されました。 原因が何か分からないので、どなたか教えてください。 ちなみに10行程度の単純なプログラムなら、数値計算をしてもエラーは怒りませんでした。

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

  • ベストアンサー
  • colder
  • ベストアンサー率43% (30/69)
回答No.2

「imag」→「aimag」に置換してみてください。 ちょっと調べてみたところ、 「imag」は多くのコンパイラで使えますが、標準外のようです。

greatpurin
質問者

お礼

おそくなりました。ありがとうございました。

その他の回答 (1)

  • akina_line
  • ベストアンサー率34% (1124/3287)
回答No.1

こんにちは。  「IMAG」という未定義のシンボル(関数?)が原因ではないですか。 では。

greatpurin
質問者

お礼

おそくなりました。ありがとうございました。

関連するQ&A

  • FORTRAN: WIN SalfordFTN77 → LINUX g77 (セグメントエラー)

    今まで、Salford FTN77 を使用していたのですが、 この度、LINUXのg77でプログラムを動かすことになりました。 Salford FTN77で正常に動作していたのですが、g77では、実行時に「セグメント違反」が発生してしまいます。 現在わかっていることを列挙しますと… ・Salford FTN77では、問題なく動作する ・g77で、コンパイルまでは成功する ・Salford FTN77からの書き換えはおそらく成功(同種のプログラムで確認済み) ・プログラムをループ(=50)させているのですが、特定のループ回数(=13)でセグメントエラーになる。 ・エラー前の計算は正しく行われている ・ループ回数(=10)を引き下げると実行可能になる ・ループ毎にファイルのcloseも行っている ・スタックを限界まで引き上げて実行したが、同様のエラーが発生 ・特定のループ回数(=13)から、ある特定の変数(ここでは b)を、表示(write( , ) b )もしくは代入(a=b)しようとするとエラーが発生する。 ・エラーが発生する直前までは、ある特定の変数(b)は正しく出力でき、値に異常もない。 元々、簡単な数値計算をおこなう程度にしかプログラムを扱っていない生粋の初心者です。 ネットでセグメントエラーについて検索し、手当たり次第試してみたのですが、うまくいかず困っています。 ソースは公開できないのですが、何か心当たりのある方は、回答していただけると嬉しいです。 よろしくお願いします。

  • コンパイルについて

    Fortranを使用している初心者です。内容が変でもご容赦ください。 自作のプログラム(昔の先輩が作成)を使用しており、今までアブソフトフォートランを使用してきました。コンパイルの時にはg77を使用しておりましたが、計算機サーバの移行に伴いインテルコンパイラFortran90を使用することになりました。 ただ、今までアブソフトフォートランでは出ていなかったコンパイル時のエラーがインテルのコンパイルに変えたとたん、とんでもない数出てきてしまいました。 確認した限りでは、文が間違えているように思えませんし、すぐに計算をしなければならず困っています。 もし何かご存じの方がいらっしゃいましたら何卒よろしくお願い致します。

  • FortranプログラムからC言語で実装された関数を呼ぶには?

    Windows Vista Home PremiumにFTN95をインストールしたPCにて、Fortranのプログラミングをし始め、「Cpad for Salford FTN77」を利用してプログラミングをしています(FORTRAN77・Fortran90ともに)。FTN95でのFortranプログラミングに際し、FortranプログラムからC言語で実装された関数を呼ぶには、どのように対処すれば可能になりますでしょうか? ユーザーガイドによれば、「Fortranプログラム中に、C_EXTERNALという宣言をした関数は、Cの関数と同じくアクセスできるようになり、C側では、#extern <返り値>関数名(引数)を与えれば、Cの関数として呼び込むことができる。」とのことがかかれています。 実際に使っているファイルをいくつか書き出します。 <D:\fortran\sample.f> C_EXTERNAL WRITE 'WriteFile' : INTEGER*4 INTEGER*4 RESULT RESULT=WRITE() write(*,*) result return end <D:\fortran\sample.c> #extern int Writefile(int); <C:\Program Files\Silverfrost\FTN95\ftn95c.bat> ftn95.exe %1 %2 %3 %4 %5 %6 %7 %8 %9 /link ちなみに、「Cpad for Salford FTN77」での実行/設定/実行/コンパイル時のパラメータは「/link /dreal」です。もちろんftn95.exeへのパスは通してあります。何が問題でしょうか? 何分初心者ですので、拙い質問かと思いますが、何卒ご教示願います。

  • fortranについて

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

  • Fortran コンパイルエラー

    Cygwin上でFortranを用いて流体の数値解析を行っています。 先輩から引き継いだシミュレーションコードなのでプログラムをいじらなくても実行できるだろうと思ったのですが、コンパイル時に以下のエラーが出てしまい、いろいろ試行錯誤しましたが自力では解決できませんでした。 エラーは次のとおりです。何かご存知の方アドバイス頂けたらありがたいです。○はスペースです。カンマの下に1があります。 op.f:13.21: ○101 format(i,4e) ○○○○○○1      Error:Nonnegative width reqired in format string at (1)

  • Xcodeでのcのコンパイルエラーについて。

    Xcodeでc言語のコンパイル #include <stdio.h> int main(void) { printf("%d", 15 + 37); return(0); } をコンパイルすると ld: 2 duplicate symbols for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) となります。 いろいろ検索してみたのですが、こんな簡単なプログラムのエラーはのっていませんでした。 なにが問題なのでしょうか。 あと use -v ってのもどうやって使うのでしょうか。 よろしくおねがいします。

  • fortranでコンパイルできません。

    fortranの数値計算プログラムなんですが、コンパイルすると”GENERIC”という単語でエラーがでてしまいコンパイルできません。エラー内容はこれです『Unimplemented or invalid form of statement at (^) (this is a catchall diagnostic that currently applies to a wide variety of errors, including things like invalid ordering of statements and invalid reference to intrinsic procedure)』 どうすればいいのでしょうか・・・

  • Fortran90/Fortran95→Fortran77

    大学の授業でFortranを使ったプログラミングを勉強しています。 以下の文が大学のPCに入っているコンパイラでは問題なくコンパイルでき実行できるのですが、家のPCだとコンパイルすることが出来ません(以下の文でエラーが出ます) 大学のPCの開発環境はFujitsu-FORTRANだと思います(^ ^; 家のPCはSalford FTN77 Personal Edition CompilerとCPad for Salford FTN77を組み合わせて使用しています なぜエラーがでるのか自分なりに考えた結果、Fortran90/Fortran95のプログラムをFortran77のコンパイラでコンパイルしているからだと思います(全くの勘違いだったら指摘して下さい) Fortran90/Fortran95の開発環境がフリーで整えばいいのですが、見つからないのでプログラムを修正したいと思います そこで、力を貸していただきたいのです 前置きが長くなりましたが、エラーが出る文は以下のところです open(8,file='freq_ex13.dat',action='write',status='replace') ここを、Fortran77のコンパイラでコンパイルできるようにアドバイスを下さい よろしくお願いします

  • コンパイルで1つエラーが出ます

    http://www.geocities.co.jp/SiliconValley-Oakland/1680/comb_c.htmlのプログラムをコンパイルすると、error C2084: 関数 'int __cdecl main()' はすでに実体を持っています。 とでます。どう直せばいいのでしょうか?

  • コンパイルできない?

    数値計算用のソフトとして、コンパイラにSalfordのFORTRAN77、エディタにCpadを使用しています。 ソースコードをCpadに書き込み、コンパイルしてコマンドプロンプトを開き、必要な数値を入力して計算をしています。 ですが、どこも間違っていないソースコードを使用しているにも関わらず、「コンパイルに失敗しました」と表示され、計算ができないということが発生し困っています。 たとえば、どこも間違っていないソースコード「A」をコピーし、コピーしたソースコードをCpadに貼り付けてソースコード「B」を作成したとします。 普通であれば、「A」で計算可能であれば「B」でも可能なはずです。 ところが「B」をコンパイルしようとすると、「A」をコピー時にどこも変えていないにもかかわらず「コンパイルに失敗しました」と表示されてしまうのです。 Cpadを再インストールしてみましたが、この問題は解決しませんでした。 原因として考えられるものは何なのでしょうか? 数値計算に関してはど素人同然ですので、お手柔らかにお願い致します。

専門家に質問してみよう