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を使用しています。
足りない情報は出来るだけ追記していきますので,ご教示宜しくお願いします。
お礼
ご回答ありがとうございます。やはりそれしかないんですかね。 VC++からFORTRANのコードを呼び出すのは初めてなので引数が正確に渡されているか確認する事が主たる目的でした。CとFORTRANでは配列の行と列が逆になるなどという事もありますし。 今回使用したサブルーチンは引数が45でそのうち12個が3*40の2次元配列であるため、引数が正確に渡されているか等、簡易に確認したかったのですが、結局全部、ファイル出力しました。