anchor.diff:  
       type(Particle), pointer :: p
   
  -    integer                 :: i             ! loop index over nuclides
  -    integer                 :: index_nuclide ! index into nuclides array
  -    real(8)                 :: atom_density  ! atom density of a nuclide
  -    type(Material), pointer :: mat           ! current material
  +    integer                  :: i             ! loop index over nuclides
  +    integer                  :: index_nuclide ! index into nuclides array
  +    integer                  :: index_sab
  +    real(8)                  :: atom_density  ! atom density of a nuclide
  +    real(8)                  :: sab_threshold ! threshold for S(a,b) table
  +    type(Material),  pointer :: mat => null() ! current material
   
       ! If the material is the same as the last material and the energy of the
       ! particle hasn't changed, we don't need to lookup cross sections again.
  
positive.code:             (ONE-f) * nuc % fission(IE) + f * nuc % fission(IE+1)
  
         ! Calculate microscopic nuclide nu-fission cross section
         nu_t = nu_total(nuc, p % E)
         micro_xs(i) % nu_fission = nu_t * micro_xs(i) % fission
      end if
  
    end subroutine calculate_nuclide_xs
  
negative.code:     ! Find energy index on unionized grid
      call find_energy_index(p)
  
      ! Check if there's an S(a,b) table for this material
      if (mat % has_sab_table) then
         sab_threshold = sab_tables(mat % sab_table) % threshold_inelastic
      else
         sab_threshold = ZERO
      end if
  
      ! Add contribution from each nuclide in material
      do i = 1, mat % n_nuclides
         ! Determine microscopic cross sections for this nuclide
         index_nuclide = mat % nuclide(i)
  
         ! Determine whether to use S(a,b) based on energy of particle and whether
         ! the nuclide matches the S(a,b) table
         if (p % E < sab_threshold .and. i == mat % sab_nuclide) then
            index_sab = mat % sab_table
         else
            index_sab = 0
         end if
  
         ! Calculate microscopic cross section for this nuclide
         call calculate_nuclide_xs(p, index_nuclide, index_sab)
  
         ! Copy atom density of nuclide in material
         atom_density = mat % atom_density(i)
  