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