在Fortran中,是否可以像下面一样定义返回多个值的函数?
[a, b] = myfunc(x, y)
那得看情况…当涉及到函数
时,不可能有两个不同的函数结果。但是,你可以从函数中返回一个长度为两个的数组。
function myfunc(x, y)
implicit none
integer, intent(in) :: x,y
integer :: myfunc(2)
myfunc = [ 2*x, 3*y ]
end function
如果您需要将两个返回值分别赋值给两个不同的变量,请使用子例程
代替:
subroutine myfunc(x, y, a, b)
implicit none
integer, intent(in) :: x,y
integer, intent(out):: a,b
a = 2*x
b = 3*y
end subroutine