dポイントプレゼントキャンペーン実施中!

初心者で最小二乗法のプログラムを作りました。
初プログラムなので初級者ではなく初心者です。

コンパイルすることはできました。
しかし、いざ実行しようとすると

forrtl:ハンドルが無効です。
forrtl:severe(38):error during write, unit 5, file CONIN$

と表示されます。日本語のエラーメッセージって出てくるんですか?しかもコンパイルの時点での英語のエラーメッセージは読みやすかったのに、今回はCONIN$とか意味がわからないものばかりです。周囲に聞いても見たこと無いメッセージと言われる始末で手におえません。

この件についてわからなくても、何かエラーメッセージについて書いてある本やサイトだけでも教えていただけると非常に助かります。

以上、よろしくお願いいたします。

A 回答 (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:標準出力
です。
入力装置に出力したり、出力装置から読み出したりしてはいけません。

では。
    • good
    • 0

おっと。

行番号ではなかったのですね。失礼しました。
ご指摘ありがとうございます。_o_
(やっぱりfortran遠ざかっている、、、)

でも、エラーの原因は同一と思います。
write文で、unit 5 は装置番号5(特別なことがなければ普通は入力装置)ですから。
asuca様ご指摘のエラー内容とも一致しますね。
    • good
    • 0

使われているのはComppaq Virtual Fortran for Windowsではないですか?どのフォートランを使っているかも書いてもらえるとありがたいです。


マニュアルだったら参考URLにあります。

http://www.compaq.co.jp/products/dvf/visual/faq. …

参考URL:http://www.compaq.co.jp/products/dvf/visual/jhel …
    • good
    • 0

>(38)は38行目ということです。



違います。

severe(重大な)エラー番号38番という意味です。

http://www.compaq.co.jp/products/dvf/docs/vf-htm …

参考URL:http://www.compaq.co.jp/products/dvf/docs/vf-htm …
    • good
    • 0

severe(38):はFortran RTL I/O システムがエラー条件を検知しました。

というものです。一度それをふまえてプログラムをに直してみて下さい。
例えば開いていないところに書き込もうとしたとか、ファイルエンドなのに読み込もうとしたとかですね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!