你在主程序里面声明了一个f,在子程序里面又声明了一个f,而且,在子程序里面的f没有输出。像这种情况你可以直接用function,或者subroutine但是加上输出intent(out)
[Fortran] 纯文本查看 复制代码 program main
use iso_fortran_env, only: real64
implicit none
real(real64) :: f
call func(1._real64, 1._real64, f)
print *, f
contains
subroutine func(x, y, ret)
real(real64), intent(in) :: x, y
real(real64), intent(out) :: ret
ret = 2._real64*x + 3._real64*y
end subroutine func
end program main |