次のプログラムはバスエラーを発生させます。Fortranベクトル値関数がバスエラーを返します
program main
integer, parameter :: n = 3
integer, dimension(n) :: out
out = rep(1,n)
print *, (out(i), i=1,n)
end program
function rep(x,n)
integer :: x
integer :: n
integer, dimension(n) :: rep
do i=1,n
rep(i) = x
enddo
end function
は、私はそれがinteger, dimension(n) :: rep
に関係していると思いますが、私はなぜこれが起こっているかわかりません。それでも
エラーメッセージは何ですか?私はpgf90とgfortranでsegfaultを取得し、ifortでbizzareエラーメッセージを表示します。私はほとんどの問題がメインプログラムの外部関数として宣言されていないrepにあると確信しているので、repは配列であり関数ではないと仮定しています。しかし、それが機能するように管理していませんでした。また、暗黙的にnoneを使用することをお勧めします。このような問題を絞り込むのに役立ちます。 – milancurcic