type SparseArray
integer :: nnz = 0
!+ Number of non-zero elements
integer :: nd = 0
!+ Number of dimensions
integer, dimension(:), allocatable :: dims
!+ Dimensions of array
integer, dimension(:), allocatable :: inds
!+ Linear index of non-zero elements
real(Float64), dimension(:), allocatable :: vals
!+ Array values
end type SparseArray