• ベストアンサー

フォートラン(fortran)のエラーメッセージについて

初心者で最小二乗法のプログラムを作りました。 初プログラムなので初級者ではなく初心者です。 コンパイルすることはできました。 しかし、いざ実行しようとすると forrtl:ハンドルが無効です。 forrtl:severe(38):error during write, unit 5, file CONIN$ と表示されます。日本語のエラーメッセージって出てくるんですか?しかもコンパイルの時点での英語のエラーメッセージは読みやすかったのに、今回はCONIN$とか意味がわからないものばかりです。周囲に聞いても見たこと無いメッセージと言われる始末で手におえません。 この件についてわからなくても、何かエラーメッセージについて書いてある本やサイトだけでも教えていただけると非常に助かります。 以上、よろしくお願いいたします。

  • ene2
  • お礼率25% (7/27)

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

  • ベストアンサー
noname#11476
noname#11476
回答No.1

もう昔のことで忘れかけていますが、 まず、 forrtl:ハンドルが無効です。 ---> 装置ハンドルが無効だといっています。 forrtl:severe(38):error during write, unit 5, file CONIN$ (38)は38行目ということです。 使っている関数(コマンド)は write ですね。 で、unit 5 は装置番号で、file CONIN$ とありますのでおそらく標準入力でしょう。(Console In) writeコマンドは出力装置に書き出さなければなりません。でも入力装置に書き出そうとしたのでエラーとなったのでしょう。 write(5,*) と5番を指定していませんか? write(6,*) と6番を指定してみてください。あるいは write(*,*) と*でもOKだと思います。 通常Fortranでは、 装置番号5:標準入力 装置番号6:標準出力 です。 入力装置に出力したり、出力装置から読み出したりしてはいけません。 では。

その他の回答 (4)

noname#11476
noname#11476
回答No.5

おっと。行番号ではなかったのですね。失礼しました。 ご指摘ありがとうございます。_o_ (やっぱりfortran遠ざかっている、、、) でも、エラーの原因は同一と思います。 write文で、unit 5 は装置番号5(特別なことがなければ普通は入力装置)ですから。 asuca様ご指摘のエラー内容とも一致しますね。

  • asuca
  • ベストアンサー率47% (11786/24626)
回答No.4

使われているのはComppaq Virtual Fortran for Windowsではないですか?どのフォートランを使っているかも書いてもらえるとありがたいです。 マニュアルだったら参考URLにあります。 http://www.compaq.co.jp/products/dvf/visual/faq.html

参考URL:
http://www.compaq.co.jp/products/dvf/visual/jhelp.html
  • asuca
  • ベストアンサー率47% (11786/24626)
回答No.3

>(38)は38行目ということです。 違います。 severe(重大な)エラー番号38番という意味です。 http://www.compaq.co.jp/products/dvf/docs/vf-html/em/em01.htm

参考URL:
http://www.compaq.co.jp/products/dvf/docs/vf-html/em/em01_02.htm
  • asuca
  • ベストアンサー率47% (11786/24626)
回答No.2

severe(38):はFortran RTL I/O システムがエラー条件を検知しました。というものです。一度それをふまえてプログラムをに直してみて下さい。 例えば開いていないところに書き込もうとしたとか、ファイルエンドなのに読み込もうとしたとかですね。

関連するQ&A

  • fortran

    このようなエラーメッセージが出力されるのですが、forrtl: severe (67): input statement requires too much data, unit 50 このエラーを解決するにはどのようにすればいいでしょうか?

  • フォートランプログラムのエラーについて

    自作のフォートランのプログラムをvisual fortranでコンパイル後,走らせたところ,以下のようなエラーがでました. forrtl: severe(161): Program Exception-array bounds exceeded Image   PC     Routine  Line   Source hoge.exe  ********  Unknown  Unknown Unknown 注)********:アルファベット交じりの数字.たぶん,16進数. LineやSourceなどは,Unknownと書いてありますので,トラブル解決のカギは,PCのところに表示されている,数字だと思われます.しかし,その数字が何の手がかりなのかがよくわかりません. どなたかご教示いただけませんでしょうか? よろしくお願いいたします.

  • プログラム実行時にわからないエラーメッセージが出ました

    書いたプログラムをcygwinでコンパイルし実行してみたのですが 数値を入力していくと次のようなエラーメッセージが出ました。 エラーの意味と、可能なら解決法をおしえていただきたいです。 よろしくお願いします。 12 [main] so 3092 _cygtls::handle_exceptions: Error while dumping state ( probably corrupted stack) Segmentation fault (core dumped)

  • javac のエラーメッセージについて

    初めまして。java初心者ですよろしくお願いします。 MS-DOSプロンプトを動かしjavac ファイル名.javaとコマンドすると、"This program cannot be run in DOS-MODE."というエラーメッセージが表われます。過去の回答の中にあったPATHの指定もすべて行いました。それでも上記のメッセージが出てコンパイルできませんでした。 OSは98SecondEditionを使用しています。 どなたか、このエラーメッセージの原因と解決方法をご存知の方がいらっしゃればお答えをお願いします。

    • ベストアンサー
    • Java
  • fortran a.exe システムエラー

    プログラミング初心者です。  コンパイルした後、a.exeファイルはつくられるのですが、いざプログラムを実行しようとすると     ウィンドウタイトル:「a.exe -システムエラー-」   本文:コンピュータにlibgfortran-3.dll がないのでプログラムを実行できません。      プログラムを再インストールしてください。     のようなエラーが出ます。        どうすればいいのでしょうか?

  • g77でのエラーメッセージ

    g77でコンパイルし,計算すると以下のようなメッセージがでました。 fmt:read unexpected character apparent state :unit5 named test.dat last format:(4i5,4f10.0,a20) lately reading sequential formatted external IO アポートしました。 本プログラムは,別コンピュータと別コンパイラー(compaq fortran)で問題なく動いていました。 どなたか,想定されることがありましたら,ご教授ください。

  • Fortranのサブルーチン引数について

    他人が作ったFortran(恐らくFortran77)のプログラムで計算をしようとしています。 コンパイルはできるのですが,実行するとエラーが出てしまい困っています。 エラーメッセージは 「forrtl:severe(157):Program Exception - access violation」 となっていて,実行時エラー番号で調べると 「プログラムが適切な参照権を持っていない仮想アドレスに書き込み,または読み取り を行おうとした」と出ていました。 Fortran初心者の自分にはイマイチ意味が判らないのですが,エラーが出た後に サブルーチンのある決まった場所に黄色い矢印が示されます。 そこで今,その部分のサブルーチンを確認しているところです。 前置きが長くなってしまいましたが サブルーチンの中を確認している途中で疑問に思った所が一つあります。 問題のサブルーチンは --------------------------------------- call dbesl(EN,0,BX0,BY0,BI0,BK0)     subroutine dbesl(X,NOR,BX,BY,BI,BK) FN = NOR  ・  ・  ・ 11 NOR = FN               <---この行に黄色い矢印が出る return end --------------------------------------- となっているのですが,サブルーチンを呼び出すcall文の所で 2つ目の引数が『0』となっているのは正しい使い方なのでしょうか? どうもサブルーチン内の計算をしてメインプログラムに引数を返す所が おかしいような気がしています。 因みにメインプログラムに戻る際の"FN"の値は『0』となっていました。 コンパイラはCompaq Visual Fortranを使用しています。 足りない情報は出来るだけ追記していきますので,ご教示宜しくお願いします。

  • fortran:includeできないとエラーがでます

    unix上にtelnetしてプログラムをつくっているのですが、fortranのプログラム中でinclude文を実行するとコンパイル時に Cannot open include file ’ヘッダーファイル名’ と出ます。 読み込むヘッダーファイルは市販のものをインストールしたものでこのファイルは/usr/includeにシンボリックリンクの形で存在しリンク先も存在します。ちなみにヘッダーファイル名を実在しないものにしても同じエラーメッセージが出ます。 なにが原因なのでしょうか。お心当たりのある方はよろしくお願いいたします。

  • TexStudio のエラーメッセージ

    LaTex 初心者です。 TexStudio を使って文書を作成していますが、次のようなエラーメッセージが出てきてコンパイルできません。 File ended while scanning use of \@iiiparbox これはどこでエラーが発生したのかという行番号も表示されてないので、何をどうしてよいのかわかりません。 詳しい方、どうか教えてください。お願いします。

  • FORTRAN77(g77)で(D)CBRTがエラーになってしまいます

    FORTRAN77(g77)をVine Linux 4.2で使用しています。 立方根の計算をしたいのですが、コンパイル時に"(D)CBRT"がエラーになってしまいます。 原因・代替策など御助言いただければ幸いです。 なお、(D)SQRTは問題なくコンパイル・実行できました。 以下、テスト用ソースとそのコンパイル時のエラーメッセージです。 [ソース] program a implicit none real*8 n write(*,*)"n= ?" read(*,*)n write(*,*)DCBRT(n) stop end [エラーメッセージ] a.f: In program `a': a.f:6: write(*,*)DCBRT(n) ^ Invalid declaration of or reference to symbol `dcbrt' at (^) [initially seen at (^)] ※こちらの画面ではスペースがうまく入りませんので悪しからず。

専門家に質問してみよう