Structure of discrete level library files

T. Belgya

Institute of Isotopes and Surface Chemistry CRC HAS

(15 January 2002)

This description is an improved and extended version of the description provided for the Second Co-ordination Meeting [Bel00]. The purpose of the discrete level library is to provide ready and easy to use nuclear decay-scheme database for reaction and statistical model calculations. The nuclear decay scheme data is arranged in separate level files. One level file contains decay data of isotopes with the same charge number Z in increasing order of mass number A. Most of the information in the level files was taken from ENSDF, and the rest was obtained in ways described below. The file naming convention is ZXXX.DAT, where XXX is running from 0 to 109.

There are three kinds of records in this human readable file. Data for every isotope begins with an identification record. This is the first type of records. An example is given below for Nb-89. Both here and below, the lines with labels in the examples are not parts of the actual file. They are only used to make explanation of the data and format simpler:

SYMB A Z Nol Nog Nmax Nc Sn[MeV] Sp[MeV]

89Nb 89 41 25 24 16 2 12.270000 4.286000

The following format statement can read it: format(a5,6i5,2f12.6). The meanings of the labels are:

SYMB mass number with elemental symbol

A mass number

Z charge number

Nol number of levels in decay scheme

Nog number of gamma rays in decay scheme

Nmax maximum number of levels up to which the level-scheme is complete; the corresponding level energy is E_{max}.

Nc level number up to which the spins and parities are unique

Sn neutron separation energy in MeV

Sp proton separation energy in MeV

The second kind of record is the level record. These immediately follow the identification record. In the example below the first three level records are shown from the Nb-89 data set:

Nl El[MeV] J p T1/2[s] Ng s unc spin-info nd m percent mode

1 0.000000 4.5 1 6.84E+03 0 u +X (9/2+) 1 = 100.0000 %EC+%B+

2 0.000000 0.5 -1 4.25E+03 0 u +Y (1/2)- 1 = 100.0000 %EC+%B+

3 0.658600 5.5 1 4.00E-09 1 c (7/2,9/2,11/2) 0

The following format statement can read it:

format(i3,1x,f10.6,1x,f5.1,i3,1x,(e10.2),i3,1x,a1,1x,a4,1x,a18,i3,10(1x,a2,1x,f10.4,1x,a7)).

The meanings of the labels are:

Nl serial number of level

El level energy in (MeV)

J Assigned unique spin, determined from spin information; details are given below

p Calculated unique parity determined from parity information; details are given below

T1/2 half-life of level if it is known; details are given below

Ng number of gamma rays de-exciting the level

s method of selection of J and p; details are given below

unc uncertain level energy; details are given below

spin-info original spin-parity information from ENSDF file. It can be used to adjust spin-parity values by hand

nd number of decay modes of the level if known. It can have a value up to 10.

The value 0 means that it may decay by gamma ray, but other decay modes are not known

m modifier of percentage; details are given below

percent percent of the decay mode; details are given below

mode ENSDF notation of decay modes; details are given below

The third kind of record is the gamma record, which immediately follows a corresponding level record. The number of gamma records is given in the level record. The sample gamma records below correspond to the 5^{th} level from the Nb-94 data set (the level record is also shown):

5 0.113401 5.0 1 5.00E-09 2 u (5)+ 0

Nf Eg[MeV] Pg Pe ICC

3 0.055 4.267E-02 1.301E-01 2.050E+00

1 0.113 7.499E-01 8.699E-01 1.600E-01

The following format statement can read it: format(39x,i4,1x,f10.3,3(1x,e10.3)).

The meanings of the labels are:

Nf serial number of the final state

Eg gamma-ray energy in (MeV)

Pg probability of decay by gamma ray emission; details are given below

Pe probability of decay by electromagnetic transition; details are given below

ICC internal conversion coefficient; details are given below

Ranges of values and methods of their determinations

In this section a detailed description of values used in the level files is given. Formulas of calculated quantities are given in the corresponding TECDOC. Quantities where the above description provides sufficient explanations are not described again.

**J:** The spin values J were determined in the following way. First it was checked whether a limited set of spin values could be assigned to a level based on gamma-transitions to known spin levels. In the second step, if there were 10 or more levels with known spins (they did not need to be unique); a spin distribution was determined from the experimentally known spins, plus the spins assigned in the first step. To do this the usual form of the spin distribution [Eri60,GIL65] is utilized. The experimental spin cut-off parameter s was determined from the average value of (J+1/2)^{2}. In the case of the continuous normalized spin distribution this average yields 2s^{2} +1/4. Assuming that the average yields the same result in the discrete case, the experimental spin cut-off parameter s_{exp} can easily be obtained. Levels up to the E_{max} value were used in this procedure. If less then 10 levels had spin assignments, then no spins were inferred; otherwise spins up to E_{max} were determined uniquely as described below.

Four cases were distinguished. Let *N _{i}* designate the number of spins, which are compatible with the experimental data for the i

1) *N*_{i} =0. A unique spin was determined using the spin distribution with s_{exp}. The method of assignments 's' was coded as 'n'.

2) *N*_{i} =1. In spite of uncertainties (like (1)^{+} ), this case was considered to be unique and 's' was coded as 'u'.

3) *N*_{i} >1. The spin was chosen from the limited set (eg. (1,3,4)^{-}) using the spin continuous normalized distribution and 's' was coded as 'c'.

4) Above E_{max} or if unique spins could not be determined due to the lack of experimental spin distribution the 's' field was coded as 'blank'. If there were levels with unique experimental spin above E_{max} the 's' fields were coded as 'u' for these levels.

The possible spin values are: -1.0 for unknown spin, otherwise 0.0, 0.5, 1.0 …

**p:** Parity 'p' of a state. If parity of the level was not known then it was randomly chosen to be positive or negative with equal probability, even though this is not physically realistic for low-lying levels. Parities are determined up to E_{max} as in the case of spins. The method of choice is not coded. The possible parity values are: 0 for unknown, +1 for positive and -1 for negative.

**T1/2:** Half-life T_{1/2} of a state. All known level half-life or level width was converted into seconds. Half-lives of stable nuclei were represented as -1.0E+0.

**unc:** A non-blank entry designates an uncertain level energy. In certain cases due to an unobserved low energy transition out of a band head or decays to large number of levels from a super-deformed band it can be impossible to determine the absolute energy of the corresponding band. This field provides a mean to put a note in the level scheme. The ENSDF evaluators have set the energy of these band heads to 0.0 keV, or if the level order is known, to the preceding level energy and placed a note that one should add an unknown energy e.g. X to it. The notation here suggests exactly that situation by using +X, +Y, +Z etc. The same letter is used in the ENSDF data set was used for each band. The consequence of this situation is in these cases that the experimental level density can not be reliably determined.

**m: **The decay percentage modifier. This modifier was kept in order to inform users about major uncertainties. The modifiers were copied out of ENSDF with no modification. They can have the following values: =, <, >, ? (unknown, but expected), AP (approximate), GE (greater than or equal), LE (less than or equal), GT (greater than), LT (less then), SY (value is from systematics).

**percent:** The decay percentage of different decay modes of a level. As a general rule the percentage of various decay modes adds up 100%. There are however exceptions. The first exception is when a small percentage is present, then the sum may be slightly more then 100% due to rounding. The second case is when beta decay or electron capture is followed by heavier particle emission. In this case the percentage of the beta delayed particle emission is given as a portion of the beta decay; thus the sum can be substantially larger then 100%. Naturally where the modifier is '?' then the sum is indefinite.

**mode:** Short notation of decay modes of a level. The following table explains their meaning.

%B- |
b |

%EC |
electron capture |

%EC+%B+ |
electron capture and b |

%N |
neutron decay |

%A |
alpha decay |

%IT |
isomeric transition |

%P |
proton decay |

%3HE |
^{3He decay} |

%B+P |
b |

%B-N |
b |

%SF |
spontaneous fission |

%ECP |
electron capture delayed proton decay |

%ECA |
electron capture delayed alpha decay |

%G |
gamma decay |

%B-2N |
b |

%B+2P |
b |

Some minor possibilities like decay with the emission of 20Ne were neglected and left out from the possible decay modes.

**Pg:** Probability that a level decays with the given gamma ray. Pg is the ratio of the total electromagnetic decay of the level and the intensity of the gamma ray. If only a limit was given for the branching in the ENSDF file then Pg was set to zero.

**Pe:** Probability that a level decays with the given electromagnetic transition. Thus, it is the ratio of the probability of the given electromagnetic transition and the total electromagnetic decay of the level. The sum of the electromagnetic decays was normalized to 1. If only a limit was given in the ENSDF file then Pe was set to zero. If other decay modes of a level then electromagnetic is known then the Pe and Pg values have to be multiplied with the value given in the isomeric transition decay percentage field per 100 (see explanation above) to obtain absolute decay probabilities. If no other mode is known then it was assumed that the level decays with purely electromagnetic transitions.

**ICC:** Internal conversion coefficient ICC of a transition. A modernized and rewritten local version of the Nuclear Data Center's program HSICC.FOR [Ewb76] was used to calculate the missing values. The rewritten program works as a subroutine, which makes it possible to integrate it into any calculation. The new local version has a simplified, but sufficiently good interpolation (based on Cardinal-splines) compared to that of the old one. The new local version uses the ICCNDX.DAT and IDDTLB.DAT files provided with HSICC.FOR. No calculations of the ICCs were performed if the ENDSF file supplied them. In calculating ICCs the first multipole mixing ratio was used. If there was no multipole mixing ratio given, then for mixed E2+M1 transitions, M1 was assumed in case of non even-even and E2 for even-even nuclei. No attempt was made to include possible E0 decay. For other mixing possibilities the lowest multipole order was used unless the mixing ratio was provided. The charge number of the nucleus and energy of the transition also limited the ICC calculations. Below Z=10, ICCs were only calculated for Li and C. The ICC was set to zero if the transition energy exceeded a certain mass-dependent energy limit.

APPENDIX

In this part a FORTRAN-90 program is provided that is able to read ZXXX.dat data files using the getza(data_exists) subroutine. This routine can be built into other programs to retrieve data into common variables. If the data set exists then the data_exists variable becomes TRUE; otherwise it is FALSE. The complete sample program reads all the existing data and provides a test case for its usage.

!MAIN

!use dflib

integer, parameter :: levmax=600

integer, parameter :: gammax=1200

integer, parameter :: brmax=30

character symb*5,jpestimate_lev(levmax)*1,uncertaint_lev(levmax)*4,jptext_lev(levmax)*18

character pfix_lev(levmax,brmax)*2,dmodes_lev(levmax,brmax)*7,impos*1

character fname*100,mult_gam(gammax)*10

integer A,Z,nlev,ngam,nmax,nc,m,i,k,j,n,nog_lev(levmax),nobr_lev(levmax)

integer initial_gam(gammax),final_gam(gammax),w,jj

logical both,hasQ,even

real*4 sn,sp,e_gam(gammax),ri_gam(gammax),ri1_gam(gammax),cc_gam(gammax),sum,diff,eg,si,sf,pi,pf,ritot,br(brmax)

real*4 e_lev(levmax),jsmy_lev(levmax),jpmy_lev(levmax),t_lev(levmax),dpercent_lev(levmax,brmax)

real*4 ll1,l1,IT_percent,RIsum,TOTsum

real*8 mixr_gam(gammax),prob_gam(gammax)

real*8 egd,dmix,icc

character*10 strmul,text

logical firstentry,data_exists

!COMMON declaration

common /inp/ symb,jpestimate_lev,uncertaint_lev,jptext_lev, &

pfix_lev,dmodes_lev,impos, &

fname,mult_gam, &

A,Z,nlev,ngam,nmax,nc,m,i,k,j,n,nog_lev,nobr_lev, &

initial_gam,final_gam,w,jj, &

both,hasQ,even, &

sn,sp,e_gam,ri_gam,ri1_gam,cc_gam,sum,diff,eg,si,sf,pi,pf,ritot,br, &

e_lev,jsmy_lev,jpmy_lev,t_lev,dpercent_lev, &

ll1,l1,IT_percent,RIsum,TOTsum, &

mixr_gam,prob_gam, &

egd,dmix,icc, &

strmul,text

!End of COMMON declaration

!Generate all z & a & call getza subroutine

!The getza routine provide a logical flag. If data exists it is true else it is false

do z=0,109

do a=1,266

call getza(data_exists)

if(data_exists) write(*,*) z,a,data_exists

enddo

enddo

stop

end

!**************************************************************************************

subroutine getza(data_exists)

integer, parameter :: levmax=600

integer, parameter :: gammax=1200

integer, parameter :: brmax=30

character symb*5,jpestimate_lev(levmax)*1,uncertaint_lev(levmax)*4,jptext_lev(levmax)*18

character pfix_lev(levmax,brmax)*2,dmodes_lev(levmax,brmax)*7,impos*1

character fname*100,mult_gam(gammax)*10

integer A,Z,nlev,ngam,nmax,nc,m,i,k,j,n,nog_lev(levmax),nobr_lev(levmax)

integer initial_gam(gammax),final_gam(gammax),w,jj

logical both,hasQ,even

real*4 sn,sp,e_gam(gammax),ri_gam(gammax),ri1_gam(gammax),cc_gam(gammax),sum,diff,eg,si,sf,pi,pf,ritot,br(brmax)

real*4 e_lev(levmax),jsmy_lev(levmax),jpmy_lev(levmax),t_lev(levmax),dpercent_lev(levmax,brmax)

real*4 ll1,l1,IT_percent,RIsum,TOTsum

real*8 mixr_gam(gammax),prob_gam(gammax)

real*8 egd,dmix,icc

character*10 strmul,text

logical firstentry,data_exists

integer AA,ZZ

!COMMON declaration

common /inp/ symb,jpestimate_lev,uncertaint_lev,jptext_lev, &

pfix_lev,dmodes_lev,impos, &

fname,mult_gam, &

A,Z,nlev,ngam,nmax,nc,m,i,k,j,n,nog_lev,nobr_lev, &

initial_gam,final_gam,w,jj, &

both,hasQ,even, &

sn,sp,e_gam,ri_gam,ri1_gam,cc_gam,sum,diff,eg,si,sf,pi,pf,ritot,br, &

e_lev,jsmy_lev,jpmy_lev,t_lev,dpercent_lev, &

ll1,l1,IT_percent,RIsum,TOTsum, &

mixr_gam,prob_gam, &

egd,dmix,icc, &

strmul,text

!End of COMMON declaration

data_exists=.false.

!Check if data request is in range

if(z.lt.0.or.z.gt.109) then

write(*,*) 'Data with this charge number Z does not exists Z=',z

return

endif

if(a.lt.1.or.a.gt.266) then

write(*,*) 'Data with this mass number A does not exists A=',a

return

endif

!open file with the give Z

if(z.lt.10) write(fname,'(a4,i1,a4)') 'Z_00',Z,'.dat'

if(z.lt.100.and.z.ge.10) write(fname,'(a3,i2,a4)') 'Z_0',Z,'.dat'

if(z.gt.99) write(fname,'(a2,i3,a4)') 'Z_',Z,'.dat'

!write(fname,'(a2,i3.0,a4)') 'Z_',Z,'.dat'

open(2,file=fname,status='old')

1 read(2,'(a5,6i5,2f12.6)',end=999) &

symb, &

AA, &

ZZ, &

nlev, &

ngam, &

nmax, &

nc, &

sn, &

sp

j=0;jj=0

if(a.eq.aa.and.z.eq.zz) then

data_exists=.true.

write(*,*) symb

goto 999

endif

do jj=1,nlev

read(2,'(i3,1x,f10.6,1x,f5.1,i3,1x,(1pe10.2),i3,1x,a1,1x,a4,1x,a18,i3,10(1x,a2,1x,0pf10.4,1x,a7))') &

i, &

e_lev(i), &

jsmy_lev(i), &

w, &

t_lev(i), &

nog_lev(i), &

jpestimate_lev(i), &

uncertaint_lev(i), &

jptext_lev(i), &

nobr_lev(i), &

(pfix_lev(i,m),dpercent_lev(i,m),dmodes_lev(i,m),m=1,nobr_lev(i))

jpmy_lev(i)=w

do k=1,nog_lev(i)

j=j+1

read(2,'(39x,i4,1x,f10.3,3(1x,e10.3))') &

! initial_gam(j), &

final_gam(j), &

e_gam(j), &

ri_gam(j), &

ri1_gam(j), &

cc_gam(j)

enddo

enddo

goto 1

999 continue

close(2)

end

!*******************************************

logical function even(i)

integer i

real*4 x

x=i

even=.false.

if(x/2.-float(int(x/2.+.1)).lt.0.1) even=.true.

end

References

[Bel00] T. Belgya, in: "Nuclear Model Parameter Testing for Nuclear Data Evaluation", Summary Report of the Second RCM, Varenna, Italy, INDC(NDS)-**416** (2000) pp. 8-11.

[Eri60] T. Ericson Adv. in Phys. **9** (1960) 425.

[Gil65] A. Gilbert and A.G.W Cameron Can. J. Phys. **43** (1965) 1446.

[Ewb76] W.B. Ewbank, modified by W.B.E. and J. Bell, ORNL-NDP HSICC program for ENSDF data sets (1976).