anchor.diff:        call SpMtx_printRaw(A=A,startnz=A%mtx_bbs(2,1),endnz=A%mtx_bbe(2,1))
         write(stream,*)'A inner:'
         call SpMtx_printRaw(A=A,startnz=A%mtx_bbs(2,2),endnz=A%mtx_bbe(2,2))
  -      write(stream,*)'A ghost:'
  -      call SpMtx_printRaw(A_ghost)
  +      if (ol>0) then
  +        write(stream,*)'A ghost:'
  +        call SpMtx_printRaw(A_ghost)
  +      endif
       endif
       ! Localise A:
  +    if (ol<=0) then
  +      A_ghost%nrows=0
  +    endif
       call SpMtx_Build_lggl(A,A_ghost,M)
       if (sctls%verbose>3) then 
         write(stream,*)'tobsent:',M%lg_fmap(1:M%ntobsent)
  
positive.code:     integer,dimension(4)           :: buf
      
  !    integer, dimension(:), pointer :: itmp
      
      if (ismaster()) then ! Here master simply splits the matrix into pieces
                           !   using METIS
        call SpMtx_buildAdjncy(A,nedges,xadj,adjncy)
  
negative.code:     endif
    end subroutine SpMtx_aggregate
  
    subroutine SpMtx_DistributeAssembled(A,A_ghost,M)
      use Graph_class
      use Mesh_class
      implicit none
  
      type(SpMtx),intent(inout) :: A,A_ghost
      type(Mesh)                :: M
      integer :: i,k,ierr,n,ol
      integer, dimension(:), pointer :: xadj
      integer, dimension(:), pointer :: adjncy
      integer                        :: nedges
  