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を使用しています。
足りない情報は出来るだけ追記していきますので,ご教示宜しくお願いします。