2016-05-09 9 views
2

Fortranでは、以下のような複数の値を返す関数を定義できますか?複数の値を返す関数

[a, b] = myfunc(x, y) 
+0

それは、複数の値(下記参照)を返すことができますが、単一で複数の割り当てを持つことはできませんPythonのような行です。 –

答えて

3

これは... functionsによって、異なる2つの機能結果を持つことはできません。ただし、関数から返された長さ2の配列を持つことができます。

function myfunc(x, y) 
    implicit none 
    integer, intent(in) :: x,y 
    integer    :: myfunc(2) 

    myfunc = [ 2*x, 3*y ] 
    end function 

次の2つの異なる変数への2つの戻り値が必要な場合は、使用subroutine代わり:

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 
+0

ありがとう、アレクサンダー。あなたの答えはまさに私が探していたものです! –

+0

@francescalus私にそれを知らせてくれてありがとう! –

関連する問題