anchor.diff:                           ! linked list and point sidlist to it
         nsidl=0            ! initialize # of sids on this processor
         nsidg=0
  +      nullify(sidlist % next)    ! next does not exist yet
         do iblk=1, nelblb  ! loop over boundary element blocks
            npro = lcblkb(1,iblk+1)-lcblkb(1,iblk)
            do i = 1, npro         ! loop over boundary elements (belts)
  
positive.code:             if(j.ne.nsidl) sidelt => sidelt%next
           enddo
        else
  	allocate( sidmapl(1)) ! some compilers/MPI don't like to send unallocated arrays
        endif
  c Gather the number of surface ID's on each processor
        if (numpe.gt.1) then      ! multiple processors
  c write the number of surfID's on the jth processor to slot j of nsid
  
negative.code:             nsidg=nsidl
              allocate( sidmapg(nsidg) )
              sidmapg=sidmapl
              deallocate(sidmapl)
           endif                  ! if-else multiple processor
  c     
        endif                     ! if at least one surfid
  