anchor.diff:              call hecmw_mpc_scale(hecMESH)
               call hecmw_trimatmul_TtKT_mpc(hecMESH, hecMAT, hecTKT)
               write(0,*) "DEBUG: MPC: trimatmul done"
  -            call hecmw_trans_b_33(hecMESH, hecMAT, hecMAT%B, hecTKT%B, hecTKT%X)
  +            call hecmw_trans_b_33(hecMESH, hecMAT, hecMAT%B, hecTKT%B, hecTKT%X, Tcomm)
               write(0,*) "DEBUG: MPC: make new RHS done"
   
               n_mpc_org = hecMESH%mpc%n_mpc
  
positive.code:       real(kind=kreal) :: resid
        type (hecmwST_matrix    ) :: hecTKT
        integer(kind=kint) :: totalmpc, n_mpc_org
  !C
        SELECT CASE(hecMAT%Iarray(99))
  !C
  
negative.code:             hecMESH%mpc%n_mpc=n_mpc_org
              write(0,*) "DEBUG: MPC: solve done"
  
              call hecmw_tback_x_33(hecMESH, hecTKT%X, hecMAT%X, Tcomm)
              hecMAT%X(:)=hecTKT%X(:)
              write(0,*) "DEBUG: MPC: recover solution done"
              call hecmw_mat_finalize(hecTKT)
  