¿Cuál es el propósito de las variables de resultado en Fortran?

En Fortran, hay dos formas estándar de devolver un resultado de una función. El primero es asignando el valor de retorno de la función al nombre de la función.

function foo()
    integer :: foo

    foo = 10
end function foo

La segunda forma, estandarizada en Fortran 90 es a través de una variable de "resultado".

function foo result(res)
    integer :: res

    res = 10
 end function foo

Llamar a cualquiera de las formas de la función devuelve el valor 10. Mi pregunta es, ¿cuál fue el fundamento del comité Fortran 90 para introducir variables de resultados? ¿Estaban estandarizando una práctica común? ¿O permitían que los programas fueran más modulares al no vincular el nombre de la función con el resultado de una función? Por ejemplo, en la segunda versión defoo(), El nombre de la funciónfoo() podría cambiarse abar() y la función aún funcionaría como se esperaba cuando se llama.

Sin embargo, puedo estar equivocado. ¿Alguien sabe cuál era la razón real para introducir variables de resultado?

Respuestas a la pregunta(1)

Su respuesta a la pregunta