anchor.diff:      hecMATLag%Iarray=hecMAT%Iarray
       hecMATLag%Rarray=hecMAT%Rarray
   
  +    write(0,*) 'INFO: made hecMATLag', hecmw_wtime()-t1
  +
       call hecmw_solve_33(hecMESH, hecMATLag)
   
       do i = 1, hecMAT%N*ndof+fstrMAT%num_lagrange
  
positive.code:     ! choose slave DOFs to be eliminated with Lag. DOFs
      call choose_slaves(hecMAT, fstrMAT, iw2, iwS, wSL)
      call make_wSU(fstrMAT, hecMAT%N, ndof, iw2, wSU)
      write(0,*) 'INFO: Slave DOFs successfully chosen'
  
      ! make transformation matrix and its transpose
      call make_Tmat(hecMAT, fstrMAT, iw2, wSL, Tmat)
      !call write_Tmat(Tmat, 0)
      call make_Ttmat(hecMAT, fstrMAT, iw2, iwS, wSU, Ttmat)
      !call write_Tmat(Ttmat, 0)
      write(0,*) 'INFO: Making Tmat and Ttmat done'
  
      ! make 3x3-block version of Tmat
      call blocking_Tmat(Tmat, ndof, BTmat)
  
negative.code:     call blocking_Tmat(Ttmat, ndof, BTtmat)
      !call write_Tmat(BTtmat, 0)
      call free_Tmat(Ttmat)
      write(0,*) 'INFO: Blocking Tmat and Ttmat done', hecmw_wtime()-t1
  
      ! perform three matrices multiplication for elimination
      call trimatmul_TtKT(BTtmat, hecMAT, BTmat, BTtKT)
      !call write_Tmat(BTtKT, 0)
      write(0,*) 'INFO: trimatmul done', hecmw_wtime()-t1
  
      ! place 1s where the DOF is eliminated
      call place_one_on_diag(BTtKT, iwS, fstrMAT%num_lagrange)
  