下面的程序給了我一個總線錯誤......任何想法爲什麼?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得到段錯誤,並且用ifort得到了一些bizzare錯誤信息。我幾乎可以肯定,問題是rep在主程序中沒有被聲明爲外部函數,所以它假定rep是一個數組而不是函數。但沒能成功實現。另外,最好的做法是在整個過程中使用隱式。這將有助於縮小這類問題的範圍。 – milancurcic