anchor.diff:    call recuut(scatter_seed1,scatter_seed2)
     call recuin(tmpSeed1,tmpSeed2)
   
  -  call dealloc(rndVals,   "rndVals")
  -  call dealloc(hasProc,   "hasProc")
  -  call dealloc(pScattered,"pScattered")
  -  call dealloc(nLost,     "nLost")
  -  call dealloc(nScattered,"nScattered")
   #ifdef HDF5
     if(h5_useForSCAT) then
       call dealloc(iRecords,           "iRecords")
  
positive.code:   iLost    = 0
    isDiff   = .false.
    updateE  = .false.
  
    ! Check if we're dumping the density diagnostics data on this element/turn
    densDump = scatter_dumpDensity(1) == iElem .and. scatter_dumpDensity(2) == nTurn
  
negative.code:   integer, intent(in) :: iElem
    integer, intent(in) :: nTurn
  
    integer i, j, k, idElem, idPro, iGen, nGen, idGen, iError, tmpSeed1, tmpSeed2, unitDens, iLost,   &
      procID, fixedID
    logical updateE, autoRatio, isDiff, isExact, densDump, beamDump, pScattered(napx)
    real(kind=fPrec) t, dEE, dPP, theta, phi, pVec(3), pNew, xRot, yRot, elemScale, sigmaTot,         &
      ratioTot, crossSection, scatterProb, targetDensity, scRatio, brRatio, rndVals(napx*3)
  
    real(kind=fPrec), allocatable :: brThreshold(:)
    logical,          allocatable :: hasProc(:,:)
    integer,          allocatable :: nLost(:,:), nScattered(:,:)
  
  #ifdef HDF5
    ! For HDF5 it is best to write in chuncks, so we will make arrays of size napx to cache everything
  