anchor.diff:      integer(kind=kint), intent(out) :: perm(:), iperm(:)
       call hecmw_matrix_ordering_CM(N, indexL, itemL, indexU, itemU, perm, iperm)
       call reverse_ordering(N, perm, iperm)
  +    if (DEBUG > 0) then
  +      call write_nonzero_profile(N, indexL, itemL, indexU, itemU, perm, iperm)
  +      call write_perm(N, perm, iperm)
  +    endif
     end subroutine hecmw_matrix_ordering_RCM
   
  -  subroutine ordering_CM_inner(N, indexL, itemL, indexU, itemU, nstart, &
  +  subroutine ordering_CM_inner(N, indexL, itemL, indexU, itemU, degs, nstart, &
         nlevel, lv_index, lv_item)
       implicit none
       integer(kind=kint), intent(in) :: N
       integer(kind=kint), intent(in) :: indexL(0:), indexU(0:)
       integer(kind=kint), intent(in) :: itemL(:), itemU(:)
  +    integer(kind=kint), intent(in) :: degs(:)
       integer(kind=kint), intent(in) :: nstart
       integer(kind=kint), intent(out) :: nlevel
       integer(kind=kint), intent(out) :: lv_index(0:)
  
positive.code:     integer(kind=kint), allocatable :: iwk(:)
      integer(kind=kint) :: level, cntall, cnt, j, jnode, k, knode
      allocate(iwk(N))
      iwk = 0
      lv_index(0) = 0
      ! first level
      iwk(nstart) = 1
  
negative.code:         max_id = i
        end if
      end do
      if (DEBUG > 0) write(*,*) 'DEBUG:: hecmw_matrix_ordering_CM: chose ordering',max_id
      do i=1,N
        perm(i) = lv_item(i,max_id)
        iperm(perm(i)) = i
  