gibuu is hosted by Hepforge, IPPP Durham
GiBUU

TABLE OF CONTENTS


/PIL_freezeout [ Modules ]

[ Top ] [ 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