env:ubuntu 20.04+ifort
CODE:
[Fortran] 纯文本查看 复制代码 program main
CALL B()
CALL FKB(B)
contains
subroutine B()
IMPLICIT NONE
write (*,*) 'fk'
end subroutine B
subroutine FKB(fcn)
implicit none
INTERFACE
SUBROUTINE fcn()
IMPLICIT NONE
END SUBROUTINE fcn
END INTERFACE
write (*,*) '1'
call B()
write (*,*) '2'
call fcn()
write (*,*) '3'
end subroutine FKB
end
很简单的程序,把子程序名字‘B' 通过'fcn'传递给子程序'FKB'里,编译也不报错,但是运行以后发现
ifort -g main.F90
./a.out
fk
1
fk
2
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image PC Routine Line Source
a.out 000000000040490A Unknown Unknown Unknown
libpthread-2.31.s 00007F86D9BE53C0 Unknown Unknown Unknown
Unknown 00007FFFF6983F50 Unknown Unknown Unknown
显然调用'fcn'的时候出现了问题。
请问这到底是为什么?如何解决?
|