anchor.diff:        if (hecMAT%itemU(i) <= 0) stop 'ERROR: negative itemU'
         if (hecMAT%itemU(i) > n) stop 'ERROR: too big itemU'
       enddo
  -
  -!!$    ! check diagonal
  -!!$    do i=1,n
  -!!$      write(*,*) hecMAT%D((i-1)*ndof2+1:i*ndof2)
  -!!$      do idof=1,ndof
  -!!$        idx=(i-1)*ndof2+(idof-1)*ndof+idof
  -!!$        if (hecMAT%D(idx) == 0) then
  -!!$          hecMAT%D(idx)=1.d0
  -!!$        endif
  -!!$      enddo
  -!!$    enddo
     end subroutine replace_hecmat
   
     subroutine make_new_hecmat(hecMAT, BTtKT, hecTKT)
  
positive.code: 
    end subroutine trimatmul_TtKT
  
    subroutine place_one_on_diag(BTtKT, iwS, num_lagrange)
      implicit none
      type (T_matrix), intent(inout) :: BTtKT
  
negative.code:       enddo
      enddo outer
    end subroutine place_one_on_diag
  
    subroutine replace_hecmat(hecMAT, BTtKT)
      implicit none
  