TABLE OF CONTENTS
- 1. /PIL_freezeout
- 1.1. PIL_freezeout/tValueEntry
- 1.2. PIL_freezeout/IndexList
- 1.3. PIL_freezeout/ValueList
- 1.4. PIL_freezeout/PIL_freezeout_DeAlloc
- 1.5. PIL_freezeout/PIL_freezeout_ZERO
- 1.6. PIL_freezeout/PIL_freezeout_PUT
- 1.7. PIL_freezeout/PIL_freezeout_GET
- 1.8. PIL_freezeout/PIL_freezeout_Allocate
- 1.9. PIL_freezeout/PIL_freezeout_Print
/PIL_freezeout [ Modules ]
NAME
module PIL_freezeout
PURPOSE
Provide some storage method for the freeze out position of some particles
This is closely connected to the module PILIndex
INPUTS
(none)
NOTES
- "PIL" stands for "PartInfoList"
PIL_freezeout/tValueEntry [ Types ]
[ Top ] [ PIL_freezeout ] [ Types ]
NAME
type tValueEntry
PURPOSE
a container of the information to be stored
NOTES
- The time of the last interaction we get directly from the particle (lastCollisionTime), but also from th e0-th component of position
- The history field should be identical with that of the particle. It is used to decide, whether the particle has suffered an elastic interaction (is this true??? or does an elastic scatter also changes the number?)
SOURCE
type tValueEntry real, dimension(0:3) :: pos = 0 real, dimension(0:3) :: mom = 0 real, dimension(0:3) :: dens = 0 integer :: history = 0 logical :: escaped = .false. real :: pot = 0. end type
PIL_freezeout/IndexList [ Global module-variables ]
[ Top ] [ PIL_freezeout ] [ Global module-variables ]
PURPOSE
The list, were the particle numbers are connected with the (physical) storage position
SOURCE
type(tIndexList), save :: IndexList
PIL_freezeout/ValueList [ Global module-variables ]
[ Top ] [ PIL_freezeout ] [ Global module-variables ]
PURPOSE
The list, were the information is stored
SOURCE
type(tValueEntry), allocatable, save :: ValueList(:)
PIL_freezeout/PIL_freezeout_DeAlloc [ Subroutines ]
[ Top ] [ PIL_freezeout ] [ Subroutines ]
NAME
subroutine PIL_freezeout_DeAlloc
PURPOSE
Deallocate the memory for this list and the corresponding index list.
PIL_freezeout/PIL_freezeout_ZERO [ Subroutines ]
[ Top ] [ PIL_freezeout ] [ Subroutines ]
NAME
subroutine PIL_freezeout_ZERO()
PURPOSE
Reset the list by setting the counter of stored information to 0. No allocation or deallocation of memory happens.
PIL_freezeout/PIL_freezeout_PUT [ Subroutines ]
[ Top ] [ PIL_freezeout ] [ Subroutines ]
NAME
subroutine PIL_freezeout_PUT(number,hist,escaped,r,mom,dens,pot)
PURPOSE
Store the information "r" connected with particle "number" in the list.
INPUTS
- integer :: number -- the (unique) particle number
- real :: pos -- the 4-position to store
- real :: mom -- the 4-momentum to store
- real :: dens -- the 4-density (baryon) to store
- integer :: hist -- the history of the particle
- logical :: escaped-- flag to indicate, whether particle has 'escaped'
- logical :: pot -- value of the potential
OUTPUT
none
PIL_freezeout/PIL_freezeout_GET [ Functions ]
[ Top ] [ PIL_freezeout ] [ Functions ]
NAME
logical function PIL_freezeout_GET(number,hist,escaped,pos,mom,dens,pot)
PURPOSE
Get the stored information of particle "number"
INPUTS
- integer :: number -- the (unique) particle number
OUTPUT
- real :: pos -- the 4-position to store
- real :: mom -- the 4-momentum to store
- real :: dens -- the 4-density (baryon) to store
- real :: time -- the time the particle was stored
- integer :: hist -- the history of the particle
- logical :: escaped-- flag to indicate, whether particle has 'escaped'
- logical :: pot -- value of the potential
- the (logical) return value signals, whether information about this particle was found in the list or not.
PIL_freezeout/PIL_freezeout_Allocate [ Subroutines ]
[ Top ] [ PIL_freezeout ] [ Subroutines ]
NAME
subroutine PIL_freezeout_Allocate
PURPOSE
Do the allocation and reallocation of the value vector. The new size is taken from the size of the IndexList vectors.
NOTES
For security one should insert here checks, whether the memory allocations failed and stop execution in these cases.
If the compiler has MOVE_ALLOC(), one could do it as
call allocate(L0(n1)) L0(1:n0) = L(:) call move_alloc(L0, ValueList)
or
call move_alloc(ValueList, L0) call allocate(ValueList(n1)) ValueList(1:n0) = L0(:)
PIL_freezeout/PIL_freezeout_Print [ Subroutines ]
[ Top ] [ PIL_freezeout ] [ Subroutines ]
NAME
subroutine PIL_freezeout_Print(file)
PURPOSE
Print the list to file