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