Como um escalar pode ser passado para um vetor (matriz 1D) para uma sub-rotina Fortran?

Existe este programa:

INTEGER i,k
REAL*8  mp(15,48)
REAL*8  sp(15)
k=0
do i=1,12
   k=k+1
   call Equaltensors(sp,mp(1,k),15)
enddo
end

c=====================

subroutine Equaltensors(tensA,tensB,n)
REAL*8 tensA(n),tensB(n)
INTEGER i
do   i=1,n
     tensB(i)=tensA(i)
enddo
return
end

Então basicamente o valor de mp (1,1) e assim por diante é passado para a sub-rotina como um vetor tensB (15) com n = 15. O que não entendo é como um número real pode ser armazenado em uma matriz unidimensional em uma sub-rotina.

questionAnswers(2)

yourAnswerToTheQuestion