Função Retornando uma Matriz no Fortran

Entendo que você pode retornar uma matriz de uma função no Fortran, mas, por alguma razão, meu código está retornando apenas o primeiro valor da matriz que estou pedindo para retornar. Esta é a função:

function polynomialMult(npts,x,y)
    integer npts
    double precision x(npts), results(npts + 1), y(npts,npts)

    polynomialMult =  x(1:npts) + 1

end function

e é aqui que eu estou chamando

 C(1:numPoints) = polynomialMult(numPoints,x,f)

print *, C(1:numPoints)`

No momento, não faz nada de útil, porque estou tentando entender a sintaxe antes de escrever a lógica. Vi algumas coisas sobre a especificação de tipos para funções, mas quando escrevo

integer function polynomialMult(npts,x,y)

ou o que quer que eu receba um erro de compilação.

questionAnswers(2)

yourAnswerToTheQuestion