anchor.diff:         end if
          return
       end if
  +
  +    ! ==========================================================================
  +    ! SEARCH NEIGHBOR LISTS FOR NEXT CELL
   
       if (p%surface > 0 .and. allocated(surf%neighbor_pos)) then
          ! If coming from negative side of surface, search all the neighboring
  
positive.code: 
            ! Set vector
            p % uvw = (/ u, v, w /)
         case (SURF_SPHERE)
            ! Find x-x0, y-y0, z-z0 and dot product of direction and surface
            ! normal
  
negative.code:        end do
      end if
  
      ! ==========================================================================
      ! COULDN'T FIND PARTICLE IN NEIGHBORING CELLS, SEARCH ALL CELLS
  
      do i = 1, size(cells)
         c => cells(i)
         if (cell_contains(c, p)) then
  