anchor.diff:        write(fluka_log_unit, *) '# fluka_shuffleLostParticles called with napx (lnapx for SixTrack) = ', tnapx, ', j = ', j
         flush(fluka_log_unit)
       end if
  -
  -!    partID(j:tnapx)    = cshift(partID(j:tnapx),    1)
  -!    parentID(j:tnapx)    = cshift(parentID(j:tnapx),    1)
  -!    fluka_weight(j:tnapx) = cshift(fluka_weight(j:tnapx), 1)
   
     end subroutine fluka_shuffleLostParticles
   
  
positive.code:     integer :: npart_new, nele_new, j
  
      call alloc(pids,               npart_new, 0, "pids")
  !    call alloc(partID,          npart_new, 0, 'partID')
  !    call alloc(parentID,          npart_new, 0, 'parentID')
  !    call alloc(fluka_weight,       npart_new, one, 'fluka_weight')
      call alloc(fluka_type,         nele_new, FLUKA_NONE, 'fluka_type')
      call alloc(fluka_geo_index,    nele_new, 0, 'fluka_geo_index')
      call alloc(fluka_synch_length, nele_new, zero, 'fluka_synch_length')
  
  !    do j = npart+1, npart_new
  !      partID(j) = j
  !      parentID(j) = j
  !    end do
  
      fluka_max_npart = npart_new
  
  
negative.code:                                             FLUKA_EXIT    = 3    ! SINGLE ELEMENT marking the end   of the insertion
    ! ancillary tracking values
    integer(kind=int32), public :: fluka_max_npart                          ! Maximum number of particles (array size)
    integer,          public, allocatable    :: pids(:)         ! Particle ID moved from hisixtrack, to be harmonised
  
    ! Useful values
  