The main documentation of the Get_Values_ELL_Matrix Procedure contains additional explanation of this code listing.
subroutine Get_Values_ELL_Matrix (Values, ELLM)
! Input variable.
type(ELL_Matrix_type), intent(in) :: ELLM ! Matrix to be queried.
! Input/Output variable.
type(real,2,np), intent(inout) :: Values ! Values bare naked array.
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! Verify requirements.
VERIFY(Valid_State(ELLM),5) ! ELLM is valid.
VERIFY(Valid_State_NP(Values),5) ! Values is valid.
! Values size checks.
VERIFY(SIZE(Values,1) == Length_PE(ELLM%Row_Structure),5)
VERIFY(SIZE(Values,2) == ELLM%Max_Nonzeros,5)
! Get the values.
Values = ELLM%Values
! Verify guarantees.
VERIFY(Valid_State(ELLM),5) ! ELLM is still valid.
return
end subroutine Get_Values_ELL_Matrix