anchor.diff:          right2 = left2
           right3 = left3
   
  -        call make_banded_matrix(n, 1, left3, blocks(1:1, :))
  -        call make_banded_matrix(n, 1, left2, blocks(2:2, :))
  -        call make_banded_matrix(n, 1, left1, blocks(3:3, :))
  -        call make_banded_matrix(n, m, middle, blocks(4:10, :))
  -        call make_banded_matrix(n, 1, right1, blocks(11:11, :))
  -        call make_banded_matrix(n, 1, right2, blocks(12:12, :))
  -        call make_banded_matrix(n, 1, right3, blocks(13:13, :))
  +        call make_banded_matrix(n, 1, left3, blocks(:, 1:1))
  +        call make_banded_matrix(n, 1, left2, blocks(:, 2:2))
  +        call make_banded_matrix(n, 1, left1, blocks(:, 3:3))
  +        call make_banded_matrix(n, m, middle, blocks(:, 4:10))
  +        call make_banded_matrix(n, 1, right1, blocks(:, 11:11))
  +        call make_banded_matrix(n, 1, right2, blocks(:, 12:12))
  +        call make_banded_matrix(n, 1, right3, blocks(:, 13:13))
   
           orders = (/ 0, 0, 0, 3, 0, 0, 0 /)
       end subroutine make_laplacian_2d_o7
  
positive.code:         real(sp), intent(in) :: sign
          real(sp), intent(in), dimension(n * n) :: x
          real(sp), intent(inout), dimension(n * n) :: y
          real(sp), intent(in), dimension(2 * m - 1, n) :: blocks
  
          integer :: i
  
          i = 1
          call rgbmv(x((i - 1) * n + 1:(i + 0) * n), y((i - 1) * n + 1:i * n), sign, blocks(2:4, :), ms(2), n)
          call rgbmv(x((i + 0) * n + 1:(i + 1) * n), y((i - 1) * n + 1:i * n), sign, blocks(5:5, :), ms(3), n)
  
          do i = 2, n - 1
              call rgbmv(x((i - 2) * n + 1:(i - 1) * n), y((i - 1) * n + 1:i * n), sign, blocks(1:1, :), ms(1), n)
              call rgbmv(x((i - 1) * n + 1:(i + 0) * n), y((i - 1) * n + 1:i * n), sign, blocks(2:4, :), ms(2), n)
              call rgbmv(x((i - 0) * n + 1:(i + 1) * n), y((i - 1) * n + 1:i * n), sign, blocks(5:5, :), ms(3), n)
          end do
  
          i = n
          call rgbmv(x((i - 2) * n + 1:(i - 1) * n), y((i - 1) * n + 1:i * n), sign, blocks(5:5, :), ms(1), n)
          call rgbmv(x((i - 1) * n + 1:(i - 0) * n), y((i - 1) * n + 1:i * n), sign, blocks(2:4, :), ms(2), n)
      end subroutine rbbmv_o3
  
      subroutine rbbmv_o5(x, y, sign, blocks, ms, n)
  
negative.code:         integer, intent(in) :: n
          integer, intent(out), dimension(m) :: orders
          real(sp), intent(in) :: h
          real(sp), intent(out), dimension(n, 2 * m - 1) :: blocks
  
          real(sp) :: dx2
          real(sp), dimension(1) :: left, right
  