anchor.diff:    integer*8 :: par_x
     integer*8 :: solver
     integer*8 :: precond
  +  integer*8 :: hypre_grid
   
     ! Set default values here
   
  
positive.code:   call MPI_COMM_RANK(MPI_COMM_WORLD, myid, ierr)
    call MPI_COMM_SIZE(MPI_COMM_WORLD, num_procs, ierr)
    mpi_comm = MPI_COMM_WORLD
    if (num_procs .ne. nProcX * nProcY) then
      print *, "number of processors must equal nProcX * nProcY - fix this and try again"
      stop
    end if
  
    allocate(ilower(num_procs))
    allocate(iupper(num_procs))
    allocate(jlower(num_procs))
    allocate(jupper(num_procs))
  
    do n = 1, nProcX
      ilower(n) = (n - 1) * nx / nProcX
      iupper(n) = (n * nx / nProcX) - 1
    end do
    ! correct final iupper value to include the global halo
    iupper(nProcX) = nx + 1
  
    do n = 1, nProcX
      jlower(n) = (n - 1) * ny / nProcY
      jupper(n) = (n * ny / nProcY) - 1
    end do
    ! correct final iupper value to include the global halo
    jupper(nProcY) = ny + 1
  
    call HYPRE_IJMatrixCreate(mpi_comm, ilower, & 
            iupper, jlower, jupper, A, ierr)
  #endif
  
    allocate(h(0:nx+1, 0:ny+1, layers))
    allocate(u(0:nx+1, 0:ny+1, layers))
  
negative.code: 
  #ifdef useExtSolver
    include 'mpif.h'
  
    integer, parameter :: HYPRE_PARCSR = 5555
  #endif
  
    integer, parameter :: layerwise_input_length = 10000
  