anchor.diff:      endif
   
       ! exchange diagonal elements of overlap region
  -    !call hecmw_mat_diag_sr(hecMESH, hecTKT)
  -
       call hecmw_mat_dump(hecTKT, hecMESH)
       call hecmw_matvec_set_async(hecTKT)
   
  
positive.code:     real(kind=kreal), pointer :: Btmp(:)
      real(kind=kreal) :: time_dumm
  
      integer(kind=kint) :: totalmpc, MPC_METHOD
      integer(kind=kint) ::  i
  
      totalmpc = hecMESH%mpc%n_mpc
      call hecmw_allreduce_I1 (hecMESH, totalmpc, hecmw_sum)
      
      if (totalmpc > 0) then
        SELECT CASE(hecmw_mat_get_mpc_method(hecMAT))
          CASE(1) ! "MPC Method: Penalty"
            !do nothing 
  
negative.code:     !C===
      call hecmw_barrier(hecMESH)
      S_TIME= HECMW_WTIME()
      if (totalmpc>0) 
        call hecmw_solve_postmpc (hecMESH, hecMAT, hecTKT, Btmp)
      end if 
      call hecmw_barrier(hecMESH)
      E_TIME= HECMW_WTIME()
      TIME_mpc_post = E_TIME - S_TIME
  