anchor.diff:          elseif (layer<=lastlayer) then ! the node on ol_outer
   !rite(stream,*)'adding to outer: node=',node,' layer=',layer
             M%ol_outer(k)%ninds=M%ol_outer(k)%ninds+1
  -          M%ol_outer(k)%inds(M%ol_outer(k)%ninds)=node
  +          ol_outer(M%ol_outer(k)%ninds)=node
           endif
         enddo
         call quicksort(M%ol_inner(k)%ninds,M%ol_inner(k)%inds)
  -write(stream,*)k,':ol_inner:::',M%ol_inner(k)%inds
  -      call quicksort(M%ol_outer(k)%ninds,M%ol_outer(k)%inds)
  -write(stream,*)k,':ol_outer:::',M%ol_outer(k)%inds
         call quicksort(M%ax_sendidx(k)%ninds,M%ax_sendidx(k)%inds)
  -write(stream,*)k,':ax_sendidx:::',M%ax_sendidx(k)%inds
         call quicksort(M%ax_recvidx(k)%ninds,M%ax_recvidx(k)%inds)
  -write(stream,*)k,':ax_recvidx:::',M%ax_recvidx(k)%inds
         M%ol_solve(k)%ninds=M%ol_outer(k)%ninds+&
                             M%ol_inner(k)%ninds
         allocate(M%ol_solve(k)%inds(M%ol_solve(k)%ninds))
         j=M%ol_outer(k)%ninds
  -      M%ol_solve(k)%inds(1:j)=M%ol_outer(k)%inds(:)
  +      M%ol_solve(k)%inds(1:j)=ol_outer(:)
         jj=j+M%ol_inner(k)%ninds
         M%ol_solve(k)%inds(j+1:jj)=M%ol_inner(k)%inds(:)
         call quicksort(M%ol_solve(k)%ninds,M%ol_solve(k)%inds)
  -write(stream,*)k,':ol_solve:::',M%ol_solve(k)%inds
  +      ! Now take out all foreign nodes from ol_outer:
  +      j=0
  +      do i=1,M%ol_outer(k)%ninds
  +        if (M%eptnmap(ol_outer(i))==clrnode) then
  +          j=j+1
  +          if (j<i) then
  +            ol_outer(j)=ol_outer(i)
  +          endif
  +        endif
  +      enddo
  +      M%ol_outer(k)%ninds=j
  +      allocate(M%ol_outer(k)%inds(M%ol_outer(k)%ninds))
  +      M%ol_outer(k)%inds=ol_outer(1:j)
  +      deallocate(ol_outer)
  +      call quicksort(M%ol_outer(k)%ninds,M%ol_outer(k)%inds)
  +      if (sctls%verbose>3.and.A%nrows<300) then 
  +        write(stream,*)k,':ol_solve:::',M%ol_solve(k)%inds
  +        write(stream,*)k,':ol_inner:::',M%ol_inner(k)%inds
  +        write(stream,*)k,':ax_sendidx:::',M%ax_sendidx(k)%inds
  +        write(stream,*)k,':ax_recvidx:::',M%ax_recvidx(k)%inds
  +        write(stream,*)k,':ol_outer:::',M%ol_outer(k)%inds
  +      endif
       enddo ! k 
       ! note: actually, interf/inner may contain also interf/receive_nodes
       !         connections 
  
positive.code:     endif
      if (simple) then
        do i=A%mtx_bbs(1,1),A%mtx_bbe(A%nblocks,A%nblocks)
          if (abs(A%val_intf_full(i))>=alpha) then
            A%strong(i)=.true.
          else
            A%strong(i)=.false.
  
negative.code:         elseif (layer<=lastlayer) then ! the node on ol_outer
  !rite(stream,*)'adding to 0 outer: node=',node,' layer=',layer
            M%ol_outer(k)%ninds=M%ol_outer(k)%ninds+1
            ol_outer(M%ol_outer(k)%ninds)=node
          endif
        enddo
        do i=frontstart(lastlayer),frontend(lastlayer)
  