anchor.diff:    integer*8 :: hypre_A
     integer*8 :: hypre_b
     integer*8 :: hypre_x
  +  integer   ::  nentries, nvalues, stencil_indices(5)
  +  double precision, dimension(:), allocatable :: values
   
     integer :: MPI_COMM_WORLD
   
  
positive.code:     offsets(1,5) =  0
      offsets(2,5) =  1
  
      call HYPRE_StructStencilCreate(2, 5, stencil, ierr)
      ! this gives a 5 point stencil centred around the grid point of interest.   
      do i = 1, 5
  
negative.code:     call HYPRE_StructMatrixCreate(MPI_COMM_WORLD, hypre_grid, stencil, hypre_A, ierr)
      call HYPRE_StructMatrixInitialize(hypre_A, ierr)
  
      nentries = 5 ! a five point stncil means five entries for each grid point
      nvalues = nx * ny ! total number of grid points to simulate
      allocate(values(nvalues))
  
      do i = 1, nvalues, nentries ! loop over every grid point, skipping by the number of points in the stencil
      ! the 2D array is being laid out like
      ! [x1y1, x1y2, x1y3, x2y1, x2y2, x2y3, x3y1, x3y2, x3y3]
        values(i) = 1
      end do
  
  #endif
  
  