anchor.diff:    !! Data is returned with absolute coordinates.
     !! @param[in] this the distributed sparse matrix.
     !! @param[inout] triplet_list the list to fill.
  -  PURE SUBROUTINE GetRowColumn(this,triplet_list, row_start, row_end, &
  +  SUBROUTINE GetRowColumn(this, triplet_list, row_start, row_end, &
          & column_start, column_end)
       !! Parameters
       TYPE(DistributedSparseMatrix_t), INTENT(IN) :: this
  
positive.code:     ALLOCATE(per_proc_row_end(total_processors))
      ALLOCATE(per_proc_col_start(total_processors))
      ALLOCATE(per_proc_col_end(total_processors))
      ! CALL MPI_Allgather(row_start, 1, MPI_INT, per_proc_row_start, 1, MPI_INT,&
      !      & global_comm, grid_error)
      ! CALL MPI_Allgather(row_end, 1, MPI_INT, per_proc_row_end, 1, MPI_INT, &
      !      & global_comm, grid_error)
      ! CALL MPI_Allgather(column_start, 1, MPI_INT, per_proc_col_start, 1, &
      !      & MPI_INT, global_comm, grid_error)
      ! CALL MPI_Allgather(column_end, 1, MPI_INT, per_proc_col_end, 1, MPI_INT, &
      !      & global_comm, grid_error)
  
      !! Count The Number of Elements To Send To Each Process
      ALLOCATE(elements_per_proc(total_processors))
      elements_per_proc = 0
      DO counter = 1, local_triplet_list%CurrentSize
         DO p_counter = 1, total_processors
         END DO
  
negative.code:     INTEGER, DIMENSION(:), ALLOCATABLE :: per_proc_row_end
      INTEGER, DIMENSION(:), ALLOCATABLE :: per_proc_col_start
      INTEGER, DIMENSION(:), ALLOCATABLE :: per_proc_col_end
      !! Send Buffer
      INTEGER, DIMENSION(:), ALLOCATABLE :: send_per_proc
      INTEGER, DIMENSION(:), ALLOCATABLE :: send_buffer_offsets
      INTEGER, DIMENSION(:), ALLOCATABLE :: send_buffer_row
      INTEGER, DIMENSION(:), ALLOCATABLE :: send_buffer_col
      REAL(NTREAL), DIMENSION(:), ALLOCATABLE :: send_buffer_val
      !! Receive Buffer
      INTEGER :: recv_buffer_size
      INTEGER, DIMENSION(:), ALLOCATABLE :: recv_buffer_offsets
      INTEGER, DIMENSION(:), ALLOCATABLE :: recv_per_proc
      INTEGER, DIMENSION(:), ALLOCATABLE :: recv_buffer_row
      INTEGER, DIMENSION(:), ALLOCATABLE :: recv_buffer_col
      REAL(NTREAL), DIMENSION(:), ALLOCATABLE :: recv_buffer_val
      !! Temporary
      INTEGER :: counter, p_counter
      INTEGER :: temporary
  
      !! Merge all the local data
      CALL MergeLocalBlocks(this, merged_local_data)
  