anchor.diff:         END IF
          col_root = col_root_lookup(pi_j)
   
  -       !! Compute A Buffer AMat[:,pi_j]
  -       local_pi_j = pi_j - AMat%start_row + 1
  -       IF (pi_j .GE. AMat%start_row .AND. pi_j .LT. AMat%end_row) THEN
  -          DO II = 1, num_local_pivots
  -             local_pi_i = local_pivots(II)
  -             a_buf(II) = dense_a(local_pi_j,local_pi_i)
  -          END DO
  -       END IF
  -       row_root = row_root_lookup(pi_j)
  -
          !! Broadcast column JJ, and Inverse Factor
          CALL BroadcastVector(recv_num_values, recv_index, recv_values, &
               & col_root, row_comm)
          CALL MPI_Bcast(inverse_factor, 1, MPINTREAL, col_root, row_comm, &
               & grid_error)
   
  -       !! Broadcast A values
  -       CALL BroadcastARow(num_local_pivots,a_buf,row_root,column_comm)
  +       !! Extract the row of A to a dense matrix for easy lookup
  +       DO II = MAX(acol%outer_index(pi_j),1), acol%outer_index(pi_j+1)
  +          a_buf(acol%inner_index(II)) = acol%values(II)
  +       END DO
   
          !! Compute Dot Products
          CALL DotAllPivoted(recv_num_values, recv_index, recv_values, &
  
positive.code:     INTEGER :: local_pi_i, local_pi_j
      REAL(NTREAL) :: Aval, insert_value, inverse_factor
      REAL(NTREAL), DIMENSION(:), ALLOCATABLE :: dot_values
      INTEGER :: row_root, col_root
  
      !! Optional Parameters
      IF (PRESENT(solver_parameters_in)) THEN
  
negative.code:           END IF
            !! Update Diagonal Array
            diag(local_pi_i) = diag(local_pi_i) - insert_value**2
         END DO
  
         !! Clear up the A buffer
         DO II = MAX(acol%outer_index(pi_j),1), acol%outer_index(pi_j+1)
            a_buf(acol%inner_index(II)) = 0
         END DO
  
      END DO
  