TABLE OF CONTENTS
- 1. /particlePointerList
- 1.1. particlePointerList/PartList_Print
- 1.2. particlePointerList/PartList_getPart
- 1.3. particlePointerList/PartList_countParticle
- 1.4. particlePointerList/PartList_INIT
- 1.5. particlePointerList/PartList_CLEAR
- 1.6. particlePointerList/PartList_APPEND
- 1.7. particlePointerList/PartList_PREPEND
- 1.8. particlePointerList/PartList_RANDOMIZE
- 1.9. particlePointerList/compare
/particlePointerList [ Modules ]
NAME
module particlePointerList
PURPOSE
This module defines all necesary types for storing pointers to particles. This includes lists of particles and lists to lists and ...
INPUTS
(none)
particlePointerList/PartList_Print [ Subroutines ]
[ Top ] [ particlePointerList ] [ Subroutines ]
NAME
subroutine PartList_Print(L)
PURPOSE
Loop over the List and print every particle
INPUTS
- type(tParticleList) :: L -- The List
OUTPUT
written on stdout
particlePointerList/PartList_getPart [ Subroutines ]
[ Top ] [ particlePointerList ] [ Subroutines ]
NAME
logical function PartList_getPart(L, n, P, ID, charge, anti, weightNonZero)
PURPOSE
Loop over the List "L" and find the "n"-th particle in the list with %ID="ID", "%anti=antiparticle" and %charge="charge". This particle "P" is then returned.
INPUTS
- type(tParticleList) :: L -- The List of particles
- integer, OPTIONAL :: ID -- ID of particle which shall be returned
- integer, OPTIONAL :: charge -- charge of particle which shall be returned
- logical, OPTIONAL :: anti -- .false. if we search for a particle, .true. for an antiparticle
- integer :: n -- We return the n-th particle in the list with %ID=ID
- logical, OPTIONAL :: weightNonZero -- if .true. only count particles with perweight > 0
OUTPUT
- type(particle) :: P -- n-th particle with wished ID
- logical :: success -- True if it was possible to find n-Particles with the wished ID,charge,anti; False otherwise
particlePointerList/PartList_countParticle [ Subroutines ]
[ Top ] [ particlePointerList ] [ Subroutines ]
NAME
integer function PartList_countPart(L, ID, charge, anti, weightNonZero)
PURPOSE
count the number of particles with given ID and/or charge and/or anti-flag
INPUTS
- type(tParticleList) :: L -- The List of particles
- integer :: ID -- ID of particle which shall be returned
- integer, OPTIONAL :: charge -- charge of particle which shall be returned
- logical, OPTIONAL :: anti -- .false. if we search for a particle, .true. for an antiparticle
- logical, OPTIONAL :: weightNonZero -- if .true. only count particles with perweight > 0
OUTPUT
- integer
particlePointerList/PartList_INIT [ Subroutines ]
[ Top ] [ particlePointerList ] [ Subroutines ]
NAME
subroutine PartList_INIT(L)
PURPOSE
Initialize the List (call only at start; to reset the list please call PartList_CLEAR)
INPUTS
- type(tParticleList) :: L -- The List
OUTPUT
(none)
particlePointerList/PartList_CLEAR [ Subroutines ]
[ Top ] [ particlePointerList ] [ Subroutines ]
NAME
subroutine PartList_CLEAR(L,all)
PURPOSE
Reset the List: Delete all Nodes and re-init the pointers
INPUTS
- type(tParticleList) :: L -- The List
- logical, OPTIONAL :: all -- if present and true, also the particle is deallocated
OUTPUT
(none)
particlePointerList/PartList_APPEND [ Subroutines ]
[ Top ] [ particlePointerList ] [ Subroutines ]
NAME
subroutine PartList_APPEND(L,V)
PURPOSE
Append the particle (which V points at) at the end of the list.
INPUTS
- type(tParticleList) :: L -- The List
- type(particle), POINTER :: V -- The particle to add
OUTPUT
(none)
particlePointerList/PartList_PREPEND [ Subroutines ]
[ Top ] [ particlePointerList ] [ Subroutines ]
NAME
subroutine PartList_PREPEND(L,V)
PURPOSE
Prepend the particle (which V points at) at the beginning of the list.
INPUTS
- type(tParticleList) :: L -- The List
- type(particle), POINTER :: V -- The particle to add
OUTPUT
(none)
particlePointerList/PartList_RANDOMIZE [ Subroutines ]
[ Top ] [ particlePointerList ] [ Subroutines ]
NAME
subroutine PartList_RANDOMIZE(L)
PURPOSE
Reorder the linked list by reshuffling the entries randomly.
INPUTS
- type(tParticleList) :: L -- The List
OUTPUT
(none)
particlePointerList/compare [ Functions ]
[ Top ] [ particlePointerList ] [ Functions ]
NAME
logical function compare(P, ID,charge,anti)
INPUTS
PURPOSE
check whether the given particle has ID and/or charge and/or antiparticle flag.