integer,dimension(2)::istartendseg_mm!< starting and ending segments of the matrix subpart which is actually used for the multiplication

!! WARNING: the essential bounds are given by istartend_mm, the segments are used to speed up the code

integer,dimension(2)::istartend_mm!< starting and ending indices of the matrix subpart which is actually used for the multiplication

integer,dimension(2)::istartend_mm_dj!< starting and ending indices of the subchess_matrices (partitioned in disjoint chunks)

!!integer :: ncl_smmm !< number of elements for the compress local after a sparse matrix matrix multiplication

integer::nccomm_smmm!<number of communications required for the compress distributed after a sparse matrix matrix multiplication

integer,dimension(:,:),pointer::luccomm_smmm!<lookup array for the communications required for the compress distributed after a sparse matrix matrix multiplication

integer::nvctrp!< number of compressed matrix elements per MPI task

integer::isvctr!< starting entry of the compressed matrix elements

integer,dimension(:),pointer::isvctr_par,nvctr_par!<array that contains the values of nvctrp and isvctr of all MPI tasks

integer::nconsecutive_max!< max number of blocks (i.e. consecutive entries) for the sparse matmul

integer,dimension(:,:),pointer::consecutive_lookup!< lookup arrays for these blocks

integer,dimension(2)::istartendseg_t!< starting and ending indices of the matrix subpart which is actually used i

!! for the transposed operation (overlap calculation / orthocontraint)

!! WARNING: the essential bounds are given by istartend_t, the segments are you used to speed up the code

integer,dimension(2)::istartend_t!< starting and ending indices of the matrix subpart which is actually used i

!! for the transposed operation (overlap calculation / orthocontraint

integer::nvctrp_tg!< size of the taskgroup matrix (per processor)

integer::isvctrp_tg!< offset of the taskgroup matrix, given with respect to the non-parallelized matrix

integer,dimension(2)::iseseg_tg!< first and last segment of the taskgroup sparse matrix

integer,dimension(2)::istartend_local!< first and last element of the sparse matrix which is actually used by a given MPI task

integer,dimension(2)::istartendseg_local!< first and last segment of the sparse matrix which is actually used by a given MPI task

integer,dimension(:,:),pointer::tgranks!< global task IDs of the tasks in each taskgroup

integer,dimension(:),pointer::nranks!< number of task on each taskgroup

integer::nccomm!<number of communications required for the compress distributed in the dense parallel format

integer,dimension(:,:),pointer::luccomm!<lookup array for the communications required for the compress distributed in the dense parallel format

logical::smatmul_initialized!< indicated whether the sparse matmul type has been initialized

integer,dimension(:),pointer::transposed_lookup_local!< lookup arrays for the transposed entries of the sparse matrix which is actually used by a given MPI task