anchor.diff:        real(kind=kreal) :: resid
         type (hecmwST_matrix    ) :: hecTKT
         integer(kind=kint) :: totalmpc, n_mpc_org
  +      real(kind=kreal) :: Tcomm
   !C
         SELECT CASE(hecMAT%Iarray(99))
   !C
  
positive.code:             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)
              write(0,*) "DEBUG: MPC: make new RHS done"
  
              n_mpc_org = hecMESH%mpc%n_mpc
  
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)
  