anchor.diff:        call SpMtx_printRaw(A=A,startnz=A%mtx_bbs(2,1),endnz=A%mtx_bbe(2,1))
         write(stream,*)'Localised A inner:'
         call SpMtx_printRaw(A=A,startnz=A%mtx_bbs(2,2),endnz=A%mtx_bbe(2,2))
  -      write(stream,*)'Localised A ghost:'
  -      call SpMtx_printRaw(A_ghost)
  +      if (ol>0) then
  +        write(stream,*)'Localised A ghost:'
  +        call SpMtx_printRaw(A_ghost)
  +      endif
         write(stream,*)'gl_fmap:',M%gl_fmap
         write(stream,*)'gl_fmap(lg_fmap):',M%gl_fmap(M%lg_fmap)
         write(stream,*)'lg_fmap:',M%lg_fmap
  
positive.code:       A%indi(i)=M%gl_fmap(A%indi(i))
        A%indj(i)=M%gl_fmap(A%indj(i))
      enddo
      do i=1,A_ghost%nnz
        A_ghost%indi(i)=M%gl_fmap(A_ghost%indi(i))
        A_ghost%indj(i)=M%gl_fmap(A_ghost%indj(i))
      enddo
      if (sctls%verbose>3.and.A%nrows<200) then 
        write(stream,*)'Localised A interf(1,1):'
        call SpMtx_printRaw(A=A,startnz=A%mtx_bbs(1,1),endnz=A%mtx_bbe(1,1))
  
negative.code:     integer,dimension(4)           :: buf
      
  !    integer, dimension(:), pointer :: itmp
      ol=max(sctls%overlap,sctls%smoothers)
      if (ismaster()) then ! Here master simply splits the matrix into pieces
                           !   using METIS
        call SpMtx_buildAdjncy(A,nedges,xadj,adjncy)
  