The database system used by XSTAR version 2 attempts to separate, as much as possible, the numerical quantities which determine the various atomic rates from the fortran code which actually performs the calculation. The goal is make the atomic data modular, so that new data can be adopted or tested without requiring extensive modifications to the code. The way this is done is to separate the data from the code itself, and store the data in a database which is designed specifically for use by XSTAR. The database is divided into `records', each of which corresponds to a given physical process affecting a given level or pair of levels. An example is the radiative decay of hydrogen from the 2p to the 1s level. Each record contains numerical constants needed to calculate the rate for the process, in this example simply the Einstein A value for the transition, together with various other associated quantities. Chief among these are two integers which describe the how the constants are to be used. The first integer is denoted the `data type', and describes the fitting formula to be used in order to calculate a rate from the constants. The second integer is the `rate type', which describes how XSTAR uses the rates calculated. The list of data types is already quite long and is expected to grow and change as new data is adopted into the database, but not all data types are used by the current database. In order to interpret the various data types, XSTAR contains one central data calculating subroutine, denoted ucalc.f, which branches to various segments of code (and calls to specialized subroutines) which are tailored to each data type. ucalc.f returns the rates in a standard form for use by the other XSTAR subroutines. It is expected that ucalc.f will require additions in order to handle new data types as they are adopted. The list of rate types is not intended to grow, since such changes could require changes to the rest of the XSTAR code structure.

The XSTAR database system can be divided into 3 parts:

First, and most important, is the ascii file containing all the data. That is, this file contains all the numerical data and labels required for calculation of all atomic rates and resultant quantities. This includes all level excitation energies, statistical weights and spectroscopic names, all element names and abundances, all ion names, and of course all photoionization cross sections, collision rates, recombination rates, fluorescence yeilds, and line wavelengths. This file is separated into records, corresponding crudely to lines of text, although many records extend over more than one line. Each record consists of a header, followed by the data. The header currently consists of 6 integers: the data type, the rate type, a continuation flag (currently unused), the number of reals in the record, the number of integers in the record, and the numbers of characters in the record. Then follows the real data, the integer data, and the character data. The various fields within the record are separated by one or more spaces. The record is terminated with a , and the entire database is terminated by a single line containing . Each record can currently contain up to 2000 of any of the types of constants: real, integer, or character. In the XSTAR source tree this file is named atdat.text and currently is approximately 10MB in size.

In order to facilitate rapid reading of this file by XSTAR, it is converted into two binary fits tables. The first one contains the header data for each record, the second contains a concatenation of all the non-header data. They are named, respectively, aptrs.fits and atdat.fits. Operation of XSTAR requires that the environment variable LHEA_DATA be set to the directory containing these files. In the standard distribution these data files are kept in the refdata directory in the ftools area, and the appropriate value of the environment variable LHEA_DATA is set by the script which initializes FTOOLS, lhea-init.csh (c shell) or lhea-init.sh (bourne shell).

The third part of the database is the subroutine ucalc.f. This routine, when passed the contents of a record, returns the result of the rate calculation for the corresponding process. ucalc therefore contains all of the various arithmetic expressions corresponding to rates for various physical processes. ucalc returns generally 4 real rates and two integers. The rates are: rate, inverse rate, heating rate, and cooling rate. The integers are indeces of the levels involved, lower and upper. Not all data types return all 4 rates.

The list of rate types currently included in ucalc.f are as follows:

**1**- ground state ionization
**3**- bound-bound collision
**4**- bound-bound radiative
**5**- bound-free collision (level)
**6**- total recombination
**7**- bound-free radiative (level)
**8**- total recombination, forces norm
**9**- 2 photon decay
**11**- element data
**12**- ion data
**13**- level data
**14**- bound-bound radiative superlevel-spectroscopic level
**40**- bound-bound collisional superlevel-spectroscopic level
**41**- non-radiative Auger transition
**42**- Inner shell photoabsorption followed by autoionization

The list of data types currently included in ucalc.f are as follows: Those denoted xstar1 are not in use in the standard distribution of XSTAR version 2, but are maintained in order to facilitate comparison with the results of XSTAR version 1.

In what follows, T=temperature in K; r1,r2,...=real numbers in record; i1,i2,...=integers in record; c1,c2,...=characters in record

**1) Radiative recombination, Aldrovandi and Pequignot formula:**-

**2) Charge exchange with , from Kingdon and Ferland:**rate=aax*expo(log(t)*bbx)*(1.+ccx*expo(ddx*t))*(1.e-9) ans1=rate*xh0

where xh0 is the number density of neutral hydrogen.

**3) Autoionization correction to DR, formula from Hamilton, Sarazin and Chevalier:(xstar1)**-

**4) Line data:**- r1=line wavelength (A)
; r2=f value
; i1=lower level index
; i2=upper level index
**5) 2 photon transition, collisional excitation.(xstar1)**- r1=line wavelength (A)
; r2=f value
; r3=lower level g
; r4=upper level g
; i1=lower level index
; i2=upper level index
; r5=collision strength at kT=
**6) Level data:**- Contains level information for ions. Energies are in eV.
Every line contains:
reals r1=E=1(eV); r2=(2J+1); r3=n; r4=Ion. Potential;
i1=n; i2=(2S+1); i3=L; i4=Z; i5=lev; i6=ion)
; c1-c=configuration.
**7) Dielectronic recombination, aldrovandi and Pequignot formula:**-

**8) Dielectronic recombination, Arnaud and Raymond formula:**-

**9) Charge exchange with , formula from Kingdon and Ferland:****10) Charge exchange with , formula from Kingdon and Ferland:**- :]
rate=aax*t**bbx*(1.+ccx*expo(ddx*t)) $ *expo(-eex/t)*(1.e-9) ans1=rate*xh1

**11) 2 photon decay data:(xstar1)**- ; r1=line wavelength (A)
; r2=f-value
; i1=lower level index
; i2=upper level index
**12) Photoionization cross section, broken power law:****(xstar1)**

i1=level index**13) element data:**- r1=abundance, r2=mass, i1=int(z), i2=index, c1-c30=name
**14) Ion data:**- r1=ionization threshold, c1-c8=name
**15) Photoionization cross section, Barfield, Koontz & Huebner scaled from neutrals:****(xstar1)**

for r3 ; where =photon energy in eV,=r1-, =r2, and =r4, =r5.**17) Line collision data: hydrogenic isosequence, rates from Cota:(xstar1)**- r1=line wavelength (A)
; r2=f value
; r3=lower level g
; r4=upper level g
; i1=lower level index
; i2=upper level index
; r5=collision strength at kT=
**18) Radiative Recombination rates for H-like levels, rates from Cota:(xstar1)**-

**19) Photoionization cross section from HULLAC:**- (not used).
**20) Same as 10, but used for total rate****21)****22) Dielectronic Recombination, Storey low temperature: (xstar1)**-

**23) Photoionization cross section, Clark et al. formula: (xstar1)****25) Collisional Ionization data from Raymond and Smith:(xstar1)**- r1=e
; r2=a
; r3=b
; r4=c
; r5=d

**26) Collisional Ionization data from Cota, H-like levels:(xstar1)**- idest1=idat(1)
; gglo=rlev(2,idest1)
; edelt=abs(rlev(1,idest1)-rlev(1,nlev))
; ans1=(4.1416e-9)*rdat(1)*t**rdat(2)*exp(-edelt/ekt)
/gglo
; ans1=ans1*xnx
**27) photoionization: hydrogenic****28) line data collisional: Mendoza; Raymond and Smith: (xstar1)****29) collisional ionization data: scaled hydrogenic: (xstar1)****30) Radiative Recombination, hydrogenic, total, Gould and Thakur formula:**-

where:zeff=r1 beta=zeff*zeff/(6.34*t6) yy=beta vth=(3.10782e+7)*sqrt(t) c fudge factor makes the 2 expressions join smoothly ypow=min(1.,(0.06376)/yy/yy) fudge=1.*(1.-ypow)+(1./1.5)*ypow phi1=(1.735+alog(yy)+1./6./yy)*fudge/2. phi2=yy*(-1.202*alog(yy)-0.298) phi=phi1 if (yy.lt.0.2525) phi=phi2

**31) line data including statistical weights for upper and lower(xstar1)****32) Collisional ionization, Cota, ground level.(xstar1)**- idest1=idat(1)=1
; gglo=rlev(2,idest1)
; edelt=abs(rlev(1,idest1)-rlev(1,nlev))
; ans1=(4.1416e-9)*rdat(1)*t**rdat(2)*exp(-edelt/ekt)
/gglo
; ans1=ans1*xnx
**33) line data collisional: hullac (not used)****34) line data radiative: Mendoza and from Raymond and Smith (xstar1)****35) photoionization: table (from Barfield, Koontz and Huebner 1972): (xstar1)****36) photoionization, excited levels, hydrogenic(no l): (xstar1)**i1=n, i4=level; i5=ion

**49) opacity project pi x-sections**- Photoionization cross section from TOPbase averaged over resonances.
Photon energies are in Ry with respect to the subshell ionization threshold
and cross sections are in Mb.
Just like 53, except for energy scale..
Every line contains:
reals (2*np; x(i),y(i),i=1,np)
; integers (8; N, L, 2*J, Z, lev+, nion+, nlev, nion)
; characters (0)
; (ion nlev correspond to the initial state and ion+ lev+
correspond to the state to which that ionizes.)
**50) line rad. rates from OP and IP**- Transition probabilities file.
Every line contains:
reals (3; Wavelength (A), gf-val., A-val. (cm-1))
; integers (4; lower level, upper level, Z, ion)
; characters (0)
**51) iron project and chianti line collision rates**- Burgess Tully fit to collision strengths as taken from CHIANTI.
Each fit entry includes the C-fitting parameter and 5 reduced
collision strengths values for X=0, .25, .5, .75, 1.
; reals (7; Delta E, C fitting param., 5 Y-reduced values)
; integers (5; transition type, lower level, upper level, Z, ion)
; characters (0)
**52) same as 59 but rate type 7****53) opacity project pi x-sections**- Photoionization cross section from TOPbase averaged over resonances.
Photon energies are in Ry with respect to the first ionization threshold
and cross sections are in Mb.
Every line contains:
reals (2*np; x(i),y(i),i=1,np)
; integers (8; N, L, 2*J, Z, lev+, nion+, nlev, nion)
; characters (0)
; (ion nlev correspond to the initial state and ion+ lev+
correspond to the state to which that ionizes.)
**54) Transition probabilities to be computed from quantum defect or as hydrogenic.**- Transition probabilities most be included as hydrogenic.
reals (1; 0.0E+0)
; integers (4; lower level, upper level, Z, ion)
; characters (0)
**55) hydrogenic pi xsections, bautista format:**i1=lower level; i2=ion;

**56) Tabulated Upsilons for HeI from Sawey Berrington (1993).**- Every line contains:
reals (2n; n log10(temp), n gammas)
; integers (4; lower level, upper level, Z, ion)
; characters (0)
**57) Effective ion charge for each level to be used in collisional ionization rates**- (same as 65)
Every line contains:
reals (1, Zeff)
; integers (6; N, L, 2*J, Z, lev, ion)
; characters (0)
**58) Bautista cascade rates**- (not used)
**59) verner pi xc**Verner photoionization cross sections, after D. A. Verner D. G. Yakovlev, 1995, AAS, 109, 125 r1-r6: fitting parameters ; i1=nuclear z ; i2=number of electrons ; i3=subshell ; i4=verner fitting parameter, orbital quantum number of subshell ; i5=final ion stage-initial ion stage ; i6=final level number ; i7=ion

**60) calloway h-like coll. strength**Coefficients for analytic fits to Upsilons for H-like ions according to review by Callaway (1994; ADNDT, 57,9) Data lines contain the following information: reals (coefficients) ; integers (4; lower level, upper level, Z, ion) ; characters (5)

**61) Collision strengths from impact parameter approximation**- (not used)
Every line contains: reals (0); integers (5: dummy, lower level, upper level, Z, ion); characters (0).

**62) calloway h-like coll. strength**- (same as 60)
Coefficients for analytic fits to Upsilons
for H-like ions according to review by Callaway (1994;
ADNDT,
57,9)
Data lines contain the following information:
reals (coefficients)
; integers (4; lower level, upper level, Z, ion)
; characters (5)
**63) h-like cij, (hlike ion)**- Transition probabilities to be computed from quantum defect or as
hydrogenic.
reals (1; 0.0E+0)
; integers (4; lower level, upper level, Z, ion)
; characters (0)
**64) hydrogenic pi xsections, bautista format:**i3=z; i1=n; i2=l;

**65) effective charge to be used in collisional ionization (h-like ions)**- Effective ion charge for each level to be used in collisional ionization
rates.
Every line contains:
reals (1, Zeff)
; integers (5; N, L, Z, lev, ion)
; characters (0)
**66) Kato & Nakazaki fit to collision strengths for He-like ions**Like type 69 but in fine structure.

Every line contains: reals (6; fit coefficients) ; integers (4; lower level, upper level, Z, ion) ; characters (0)

**67) Effective collision strengths for He-like ions from Keenan, McCann, and Kingston****(1987)**Every line contains: reals (n; fit coefficients) ; integers (4; lower level, upper level, Z, ion) ; characters (0)**68) Fit to effective collision strengths for He-like ions by Zhang Sampson.**- Every line contains:
reals (3; fit coefficients)
; integers (4; lower level, upper level, Z, ion)
; characters (0)
**69) Kato Nakazaki (1996) fit to collision strengths for He-like ions.**- Every line contains:
reals (6; fit coefficients)
; integers (4; lower level, upper level, Z, ion)
; characters (0)
**70) Coefficients for recomb. and phot x-section of superlevels.**- Every line contains:
reals (; (den(i),i=1,nd),(Te(i),i=1,nt),
(log10(recomb. rates(i,j),i=1,nt,j=1,nd)
(ener(i), pi x-secs(i), i=1,nx)
; integers (11; nd, nt, nx, N, L, 2*S+1, Z, lev+, nion+, nlev, nion)
; characters (0)
**71) Radiative transition rates from superlevels to spectroscopic levels**- The data is for a grid of Ne and
Te.
Every line contains:
reals (; Ne(i),i=1,nd),(Te(i),i=1,nt),
(rad. rates (ne,kt),kt=1,nt,ne=1,nd), Wavelength (Å))
; integers (6; nd, nt, lower level, upper level, Z, ion)
; characters (0)
**72) Autoionization rates (in s) for satellite levels.**- Every line contains:
reals (3; auto. rate, energy in eV above the ionization limit,
statistical weight)
; integers (6; (2S+1), L, level, continuum level numb., z, ion)
; characters (10; level configuration)
**73) Fit to effective collision strengths from Sampson et al. for satellite levels****of He-like ions.**Every line contains: reals (7; fit coefficients) ; integers (4; lower level, upper level, Z, ion) ; characters (0)**74) Delta functions to add to phot. x-sections to match ADF DR recomb. rates.**- Every line contains:
; reals (2n+1; ionization limit (eV), (energy over g.s.(i),i=1,n),
(amplitude in cm(i),i=1,n)
; integers (8; N, L, (2S+1), Z, lev+, nion+, nlev, nion)
; characters (0)
**75) Autoionization data for Fe XXiV satellites :**Every line contains: reals (same as 72) (3; auto. rate, energy in eV above the ionization limit, statistical weight) ; integers: lower level, upper ion, upper level, ion ; characters (0)

**76) 2 photon decay :**Just like data type 50. Every line contains: reals (3; Wavelength (A), gf-val., A-val. (cm-1)) ; integers (4; lower level, upper level, Z, ion) ; characters (0)

**77) Collision transition rates from superlevels to spectroscopic levels**Every line contains: reals (: (Ne(i),i=1,nd),(Te(i),i=1,nt), coll.rates(ne,kt),ne=1,nt,kt=1,nd), Wavelength (Å)); integers (6: nd, nt, lower level, upper level, Z, ion); characters (0).

**78) Level data used for Auger and inner shell fluorescence calculation:**- Same as type 6:
Every line contains: reals r1=E=1(eV); r2=(2J+1); r3=n; r4=Ion. Potential; i1=n; i2=(2S+1); i3=L; i4=Z; i5=lev; i6=ion) ; c1-c=configuration.

Different data type used in order to merge with non-Auger levels when assembling database. These data come from the compilation of Kaastra and Mewe (1993). They are gradually being replaced by more accurate level-to-level data. As of v.21l and later, this has been done for iron and for oxygen. In version 2.1kn4 and earlier, this data was used for all elements.

**79) Line data used for Auger and inner shell fluorescence calculation:**- Same as type 4, but different data type used in order
to merge with non-Auger levels when assembling database.
r1=line wavelength (A) ; r2=f value ; i1=lower level index ; i2=upper level index

**80) Collisional ionization rates gnd of Fe and Ni :**not used

**81) Bhatia Fe XIX collision strengths :**Every line contains: reals r1=; ; i1=lower level; i2=upper level; i3=ion);

Energy separation is obtained from level data.

**82) Fe UTA rad rates :**(from Gu et al. 2006)

Reals: r1=wavelength (A); r2=; r3=gf; r4=A ; r5=A; r6=A; i1=lower level; i2=upper level;

**83) Fe UTA level data :**(from Gu et al. 2006)

Same as type 6:

Every line contains: reals r1=E=1(eV); r2=(2J+1); r3=n; r4=Ion. Potential; i1=n; i2=(2S+1); i3=L; i4=Z; i5=lev; i6=ion) ; c1-c=configuration.

**84) Iron K Pi xsections, spectator Auger binned :**No longer used

**85) Iron K Pi xsections, spectator Auger summed :**Calculates photoionization cross section due to summation of resonances near inner shell edges ala Palmeri et al., 2002 Ap.J.Lett.577, 119.

Every line contains: reals r2=E(Ry); r3=f parameter; r4=; r5=scaling factor; i1=lower level; i2=ion;

**86) Iron K Auger data :**(from Palmer et al. 2003AA...410..359P, Mendoza et al 2004AA...414..377M; Palmeri et al., 2003AA...403.1175P; Garcia et al., 2005ApJS..158...68G)

reals: r2=A (s); integers: i1= final level (relative to final ion); i4=final ion i2= initial level; i5=initial ion

**88) Iron inner shell resonance excitation :**- Photoexcitation to autoionizing levels
Format is like types 49: Photon energies are in Ry with respect to the first ionization threshold and cross sections are in Mb. Every line contains: reals (2*np; x(i),y(i),i=1,np) ; integers (8; N, L, 2*J, Z, lev+, nion+, nlev, nion) ; characters (0) ; (ion nlev correspond to the initial state and ion+ lev+ correspond to the state to which that ionizes.)