以下程序给我一个总线错误......任何想法为什么?
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
Run Code Online (Sandbox Code Playgroud)
我认为这与它有关,integer, dimension(n) :: rep但我不确定为什么会这样.
您需要使接口显式化,以确保Fortran在调用它时知道rep是什么.将您的rep函数放入一个单独的文件中的模块,如下所示:
module m_rep
contains
function rep(x,n)
implicit none
integer :: x
integer :: n
integer :: i
integer, dimension(n) :: rep
do i=1,n
rep(i) = x
enddo
end function
end module
Run Code Online (Sandbox Code Playgroud)
然后在主程序中使用该行的模块
use m_rep
Run Code Online (Sandbox Code Playgroud)
另外,使用隐式none来确保正确声明所有变量.
| 归档时间: |
|
| 查看次数: |
423 次 |
| 最近记录: |