anchor.diff:    ! External solver variables
     integer   :: offsets(2,5)
     integer :: i, j ! loop variables
  -  integer   ::  nentries, nvalues, stencil_indices(5)
     double precision, dimension(:), allocatable :: values
     integer   :: indicies(2)
     integer*8 :: hypre_grid
  
positive.code: 
  ! ---------------------------------------------------------------------------
  
  subroutine Ext_solver(hypre_A, MPI_COMM_WORLD, num_procs, & 
      ilower, iupper, etastar, &
      etanew, nx, ny, dt, hypre_grid, maxits, eps)
  
    
    double precision, intent(out)   :: etanew(0:nx+1, 0:ny+1)
    double precision, intent(in)    :: dt
    integer,          intent(in)    :: maxits
    double precision, intent(in)    :: eps
    integer,          intent(in)    :: nx, ny
  
    double precision :: etastar(0:nx+1, 0:ny+1)
  
    ! External solver variables
    ! integer   :: offsets(2,5)
    ! integer*8 :: stencil
    integer :: ierr
    integer :: i, j ! loop variables
    integer*8 :: hypre_grid
    integer*8 :: hypre_A
    integer*8 :: hypre_b
    integer*8 :: hypre_x
    integer*8 :: hypre_solver
    integer*8 :: precond
    integer   :: nentries, nvalues, stencil_indices(5)
    double precision :: values(nx * ny)
    double precision :: hypre_out(2)
  
    integer :: MPI_COMM_WORLD
    integer :: num_procs, myid
    integer :: ilower(0:num_procs-1,2), iupper(0:num_procs-1,2)
  
    ! wrap this code in preprocessing flags to allow the model to be compiled without the external library, if desired.
  #ifdef useExtSolver
  
negative.code:   call HYPRE_StructPCGSetPrintLevel(hypre_solver, 1 ); ! 2 will print each CG iteration
    call HYPRE_StructPCGSetLogging(hypre_solver, 1);
  
    ! use an algebraic multigrid preconditioner
    call HYPRE_BoomerAMGCreate(precond, ierr)
    ! values taken from hypre library example number 5
    ! print less solver info since a preconditioner
  