anchor.diff:         parent_p => cells(cell_p % parent)
          n2 = parent_p % n_surfaces
       end if
  -    n_surfaces = n1 + n2
  +    n_surf = n1 + n2
   
       ! allocate space and assign expression
  -    allocate(expression(n_surfaces))
  +    allocate(expression(n_surf))
       expression(1:n1) = cell_p % surfaces
       if (cell_p % parent > 0) then
          expression(n1+1:n1+n2) = parent_p % surfaces
  
positive.code: 
      current_surface = p % surface
  
      n_surfaces = size(c % surfaces)
      allocate(expression(n_surfaces))
      expression = c % surfaces
      do i = 1, n_surfaces
  
         ! Don't change logical operator
         if (expression(i) >= OP_DIFFERENCE) then
  
negative.code: 
      integer, allocatable :: expression(:) ! copy of surface list
      integer :: i            ! index for surface in cell
      integer :: n_surf       ! total number of surfaces to check
      integer :: n1           ! number of surfaces in current cell
      integer :: n2           ! number of surfaces in parent cell
      integer :: index_surf   ! index in surfaces array (with sign)
  