以下代码在 Linux 系统上使用 pgf90 编译时出现分段错误,而在 Windows 上使用 Intel Visual FORTRAN 时运行成功。
program main
implicit none
integer:: a(3), b(3) ,c(3)
a=[3, 4, 5]
b=[1, 2, 3]
call sub(a,b,c)
write(*,*)'a+b = ',c
end program main
subroutine sub(a,b,c)
implicit none
integer, intent(in)::a(:),b(:)
integer, intent(out)::c(:)
c=a+b
end subroutine sub
对此有何解释?
当您调用具有虚拟参数形状的子例程(如本程序中的情况)时,需要显式接口。实现这一点的最简单方法是将子程序放入模块中,并在主程序中使用该模块。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)