anchor.diff:  subroutine barotropic_correction(hnew, unew, vnew, eta, etanew, depth, a, &
       dx, dy, wetmask, hfacW, hfacS, dt, &
       maxits, eps, rjac, freesurfFac, thickness_error, &
  -    g_vec, nx, ny, layers, n)
  +    g_vec, nx, ny, layers, n, &
  +     MPI_COMM_WORLD, num_procs, ilower, iupper, & 
  +     hypre_grid, hypre_b, ierr)
  +     ! , &
  +    ! hypre_grid, hypre_A, hypre_b, hypre_x)
     implicit none
   
     double precision, intent(inout) :: hnew(0:nx+1, 0:ny+1, layers)
  
positive.code:       call barotropic_correction(hnew, unew, vnew, eta, etanew, depth, a, &
            dx, dy, wetmask, hfacW, hfacS, dt, &
            maxits, eps, rjac, freesurfFac, thickness_error, &
            g_vec, nx, ny, layers, n)
      end if
  
      ! Stop layers from getting too thin
      call enforce_minimum_layer_thickness(hnew, hmin, nx, ny, layers, n)
  
negative.code:   ! Prevent barotropic signals from bouncing around outside the
    ! wet region of the model.
    ! etastar = etastar*wetmask
  #ifndef useExtSolver
    call SOR_solver(a, etanew, etastar, freesurfFac, nx, ny, &
        dt, rjac, eps, maxits, n)
    ! print *, maxval(abs(etanew))
  #elseifdef useExtSolver
    call HYPRE_StructVectorCreate(MPI_COMM_WORLD, hypre_grid, hypre_b, ierr)
  #endif
  
    etanew = etanew*wetmask
    call wrap_fields_2D(etanew, nx, ny)
  