装置番号が未定義の場合のエラー
gfortranでコンパイルしたFortranのコードを実行していて、
Fortran runtime error: Bad unit number in OPEN statement
というエラーになった。エラー発生箇所を調べると、どうやら
iuto = 6 write(iuto, *) ...
となるべきところが、
iuto = 6 write(ituo, *) ...
となっていたかららしい。単純なバグなのだが、コンパイラによってはこのままでも実行時エラーにならない。変数ituoが未定義のまま実行された場合、未定義変数の値は0となるらしく
write(0, *) ...
としてくれるため、こうすると標準エラー出力にwriteしてくれる。でも、gfortranでは残念ながらエラーになる。