- ベストアンサー
フォートラン(fortran)のエラーメッセージについて
初心者で最小二乗法のプログラムを作りました。 初プログラムなので初級者ではなく初心者です。 コンパイルすることはできました。 しかし、いざ実行しようとすると forrtl:ハンドルが無効です。 forrtl:severe(38):error during write, unit 5, file CONIN$ と表示されます。日本語のエラーメッセージって出てくるんですか?しかもコンパイルの時点での英語のエラーメッセージは読みやすかったのに、今回はCONIN$とか意味がわからないものばかりです。周囲に聞いても見たこと無いメッセージと言われる始末で手におえません。 この件についてわからなくても、何かエラーメッセージについて書いてある本やサイトだけでも教えていただけると非常に助かります。 以上、よろしくお願いいたします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
もう昔のことで忘れかけていますが、 まず、 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)
おっと。行番号ではなかったのですね。失礼しました。 ご指摘ありがとうございます。_o_ (やっぱりfortran遠ざかっている、、、) でも、エラーの原因は同一と思います。 write文で、unit 5 は装置番号5(特別なことがなければ普通は入力装置)ですから。 asuca様ご指摘のエラー内容とも一致しますね。
- asuca
- ベストアンサー率47% (11786/24626)
使われているのはComppaq Virtual Fortran for Windowsではないですか?どのフォートランを使っているかも書いてもらえるとありがたいです。 マニュアルだったら参考URLにあります。 http://www.compaq.co.jp/products/dvf/visual/faq.html
- asuca
- ベストアンサー率47% (11786/24626)
>(38)は38行目ということです。 違います。 severe(重大な)エラー番号38番という意味です。 http://www.compaq.co.jp/products/dvf/docs/vf-html/em/em01.htm
- asuca
- ベストアンサー率47% (11786/24626)
severe(38):はFortran RTL I/O システムがエラー条件を検知しました。というものです。一度それをふまえてプログラムをに直してみて下さい。 例えば開いていないところに書き込もうとしたとか、ファイルエンドなのに読み込もうとしたとかですね。