anchor.diff:  
     integer, dimension(:,:), allocatable :: ilower, iupper
     integer, dimension(:,:), allocatable :: jlower, jupper
  -  integer :: n, m
  +  integer :: i, j
   
     integer*8 :: parcsr_A
  -  integer*8 :: A
  -  integer*8 :: b
  -  integer*8 :: x
     integer*8 :: par_b
     integer*8 :: par_x
     integer*8 :: solver
     integer*8 :: precond
     integer*8 :: hypre_grid
  -
  +  integer   :: offsets(2,5)
     ! Set default values here
   
     ! TODO Possibly wait until the model is split into multiple files,
  
positive.code:   allocate(iupper(0:num_procs-1, 2))
  
  
    do n = 0, nProcX - 1
      ilower(n * nProcY:(n+1)*nProcY - 1,1) = n * nx / nProcX
      iupper(n * nProcY:(n+1)*nProcY - 1,1) = ((n+1) * nx / nProcX) - 1
    end do
    ! correct final iupper value to include the global halo
    iupper((nProcX-1)*nProcY:nProcX*nProcY,1) = nx + 1
  
    do n = 0, nProcY - 1
      ilower(n * nProcX:(n+1)*nProcX - 1,2) = n * ny / nProcY
      iupper(n * nProcX:(n+1)*nProcX - 1,2) = ((n+1) * ny / nProcY) - 1
    end do
    ! correct final iupper value to include the global halo
    iupper((nProcY-1)*nProcX:nProcX*nProcY,2) = ny + 1
  
  if (myid .eq. 0) then
    print *, 'ilower (x) = ', ilower(:,1)
  
negative.code:   double precision :: pi
    integer :: nwrite, avwrite
    double precision :: rjac
    ! External solver variables
    integer   :: offsets(2,5)
    integer*8 :: stencil
    integer :: ierr
    integer :: i ! loop variable
    integer*8 :: hypre_A
    integer*8 :: hypre_b
    integer*8 :: hypre_x
  
    ! Time step loop variable
    integer :: n
  