TABLE OF CONTENTS
/tabNuclearMass [ Modules ]
NAME
module tabNuclearMass
PURPOSE
- Provide database structure for nuclides (mass, binding energy, ground state spin, name)
- intitialize nuclear decay properties (unused/untested in this context)
- provide access to single data points without loading the entire 200kB data file to RAM
- Read table "path_To_Input/nndc.dat", which contains the nuclide properties: "Ame2003 atomic mass evaluation (II)"
- G.Audi, A.H. Wapsta, C. Thibautl, NPA729(2003)337-676, original file: mass.mas03
- Based on Theo Gaitanos 'testRun/auswerteTools/ClusterCode/code/InitGEM.f90'
AUTHORS
Theo Gaitanos, Ivan Lappo-Danilevski
tabNuclearMass/Nuclide [ Types ]
[ Top ] [ tabNuclearMass ] [ Types ]
NAME
type Nuclide
SOURCE
type Nuclide integer :: ZahlN !neutron number integer :: ZahlZ !proton number real :: MassEx !mass excess real :: Mass !mass in GeV real :: Bind !binding energy real :: spin !groundstate spin character(7) :: Name !name of element integer, allocatable, dimension(:) :: Ejectile !index-position of ejectile integer, allocatable, dimension(:) :: Daughter !index-position of daughter logical, allocatable, dimension(:) :: ChannelStatus !status of decay channel End Type Nuclide
NOTES
Constructor for nuclide properties
tabNuclearMass/NucMax [ Global module-variables ]
[ Top ] [ tabNuclearMass ] [ Global module-variables ]
NAME
integer, parameter :: NucMax
PURPOSE
Maximum number of nuclides considered in evaporation model, number of entries in 'nndc.dat'
NOTES
DO NOT CHANGE THIS NUMBER!!!
tabNuclearMass/Elements [ Global module-variables ]
[ Top ] [ tabNuclearMass ] [ Global module-variables ]
NAME
type(Nuclide), Allocatable,dimension (:),save :: Elements
PURPOSE
Database for elements properties
USAGE
- To get e.g. the mass excess of the nuclide IN type "Elements(IN)%MassEx". The ID's are choosen according to NNDC-Table.
- The array indizes of "Elements" run from NucMax=1n up to NucMax=208Pb (IN=1,...,NucMax).
tabNuclearMass/NucPosition [ Global module-variables ]
[ Top ] [ tabNuclearMass ] [ Global module-variables ]
NAME
Character, Allocatable,dimension(:,:),save :: NucPosition
PURPOSE
(N,Z)-Matrix providing with the position (in the nndc.dat-file) of a stable (according N/Z-ratio) nuclide. Negative Value of a matrix element indicates not existing nulcides.
tabNuclearMass/read_element [ Subroutines ]
[ Top ] [ tabNuclearMass ] [ Subroutines ]
NAME
subroutine read_element
PURPOSE
- Reading of data-tables from NNDC (mass excess, spin)
- Initialize the "Elements(:)%" vector
- Initialize the "NucPosition(:,:)" array
INPUTS
- integer, intent(in) :: Ni -- Neutron number of requested element
- integer, intent(in) :: Zi -- Proton number
OUTPUT
NOTES
returns an element with %name='missing', when element is not found in table
tabNuclearMass/read_mass [ Functions ]
[ Top ] [ tabNuclearMass ] [ Functions ]
NAME
function read_mass
INPUTS
OUTPUT
- real :: read_mass
PURPOSE
reads the tabulated mass (in GeV) for a given N,Z
tabNuclearMass/init_Mass_Table [ Subroutines ]
[ Top ] [ tabNuclearMass ] [ Subroutines ]
NAME
subroutine init_Mass_Table
PURPOSE
- Reading of data-tables from NNDC (mass excess, spin)
- Initialize the "Elements(:)%" vector
- Initialize the "NucPosition(:,:)" array
NOTES
- Initialization of (1:MaxN,1:MaxZ)-Matrix "NucPosition" is done here.
- Variables "MaxN" and "MaxZ" give the max. possible value of neutron- and proton-content of a cluster. Its status (stable/unstable) according N/Z-ratio is initialized here.
- NucPosition is needed in checking the correct N/Z-ratio of produced clusters, before starting the evaporation procedure.
tabNuclearMass/SetDecays [ Subroutines ]
[ Top ] [ tabNuclearMass ] [ Subroutines ]
NAME
subroutine SetDecays
PURPOSE
- Defines valid decay channels for each nuclide
- Important for Monte-Carlo decision of decaying cluster
- The list of elements is taken from the mass.mas03-table (cf. init_Mass_Table)
NOTES
Tested only with these lines of code in GiBUU
call Init_Mass_Table do i = 1,NucMax write (*,*) Elements(i)%name end do call SetDecays call End_Mass_Table write (*,*) 'allocation/deallocation successfull' STOP
Thus allocation and deallocation works. Fully tested in other context by Theo Gaitanos