anchor.diff:  
          CALL StartTimer("Rotate A")
          CALL TransposeDenseMatrix(TargetV, TargetVT)
  -       CALL ApplyToRows(TargetVT, ABlocks, jdata)
  +       CALL ApplyToRows(TargetVT, ABlocks, jdata, RowLeft, RowRight)
          CALL StopTimer("Rotate A")
   
          CALL StartTimer("Gather")
  
positive.code: 
    END SUBROUTINE ApplyToRows
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    SUBROUTINE ApplyToColumns(VList, ABlocks, jdata)
      !! Parameters
      TYPE(DenseMatrix_t), DIMENSION(:), INTENT(INOUT) :: VList
      TYPE(DenseMatrix_t), DIMENSION(:,:), INTENT(INOUT) :: ABlocks
      TYPE(JacobiData_t), INTENT(INOUT) :: jdata
      !! Temporary
      INTEGER :: II
      INTEGER :: ind
      TYPE(DenseMatrix_t) :: TempMat
      TYPE(DenseMatrix_t) :: AMat
      INTEGER, DIMENSION(2) :: row_sizes, col_sizes
      TYPE(DenseMatrix_t), DIMENSION(:), ALLOCATABLE :: TempLeft, TempRight
  
      ALLOCATE(TempLeft(jdata%num_processes))
      ALLOCATE(TempRight(jdata%num_processes))
  
      !$OMP PARALLEL PRIVATE(row_sizes, col_sizes, ind)
      !$OMP DO
  
negative.code: 
         !! Rotation A
         CALL StartTimer("Rotate A")
         CALL ApplyToColumns(VList, ABlocks, jdata, ColLeft, ColRight)
         CALL StopTimer("Rotate A")
  
         !! Swap Blocks
  