Revisions
Revision history of xstar
Version 2.1 (June 2000)
Added 5 new input parameters vturbi, emult, critd, taumax, xeemin.
Added artificial broadening of absorption lines due to turbulent velocity controlled by input parameter vturbi. If vturbi is less than the local thermal ion speed, then thermal Doppler broadening is used.
Changed input spectrum in default parameter file to pow. Added error check for invalid input spectrum.
Fixed error which displayed incorrect value of the constant pressure switch in output files.
Several minor errors have been corrected in the some of the calculations of atomic rates: types 67, 51, and 70.
Added printout of all line emissivities at each radial zone (in addition to the level populations) when the write_switch parameter is set to 1. These appear in the file named xout_detal2.fits.
Modified the algorithm for calculating thermal equilibrium so that for temperatures less than 3030K the iteration procedure is disabled; any radius zone where the equilibrium solver finds a temperature less than this value will not calculate thermal equlibrium.
Added 2 new output fits files to the standard output. xout_lines.fits contains the luminosities of the 100 strongest emission lines, and xout_cont.fits contains the continuum luminosities without the lines added (these two files can be combined by binning the lines suitably in order to make the contents of xout_spect1.fits).
Added calculation and printout of LTE level populations to the quantities in xout_detail.fits.
Improved treament of energy budget, and added printout of energy budget to xout_step.log.
Version 2.1a (December 2000)
Fixed error in atomic rates affecting Fe XXI which caused recombination rates to be too large.
Streamlined calculation of photoionization and recombination rate quadratures.
Version 2.1b (January 2001)
Added printout of line and recombination cooling rates to printout in log file.
Version 2.1c (May 2001)
Fixed error in database which resulted in too large emission in some iron K:math:beta fluorescence lines.
Version 2.1d (May 2001)
Added feature which appends ion column densities in an additional extension to the xout_abund1.fits file.
Version 2.1e (June 2001)
Extended the energy range up to 1 MeV and added relativisitic Compton heating and cooling.
Fixed error in calculating threshold energies of some excited levels from type 53 data.
Fixed error in subroutine which creates blackbody spectra which resulted in spuriously large fluxes at energies above 50 keV.
Version 2.1h (June 2002)
Relativistic corrections to Compton heating and cooling have been added, using a procedure based on the work of Guilbert (1986).
A new format for the storage of atomic data has been adopted, resulting in smaller files, and faster read times. This change should be transparent to the user, except for considerable speeding of data loading and program startup.
A new algorithm for continuum transfer has been adopted, outward only transfer. This gives better energy conservation overall. A new column has been added in the log file output, labeled ‘h-c’, it tells the percent error in total energy conservation in the radiation field, i.e. total emitted - total absorbed.
A new algorithm has been adopted for solving the statistical equilbrium, in place of LU decomposition. The algorithm involves an iterative solution to a simplified set of equations, and is described by Lucy (2001). This change should result in fast execution for models involving iron and other heavy elements, but will otherwise be transparent to the user.
Various changes to atomic data, including increase in size of data file and addition of a new data type, for excitation of Fe XIX using data from Bhatia.
Various minor inconsistencies and errors have been corrected, including spurious recombination emission to multiply excited levels.
Standard output in the log file has been extended to include a list of the strongest absorption lines, and emission and absorption edges.
Also, a new output file, xout_rrc1.fits, is created which contains a fits format list of the RRC strengths.
Version 2.1j (September 2003)
New atomic data for iron K emission and absorption as described in Palmeri et al., 2004 A and A and references therein (see TK homepage for reprints).
Added n=2-3 iron UTA absorption using data from FAC (Gu 2003).
Fixed bug which limited length of spectrum file name to 8 characters.
Fixed bug which allowed buffer containing ion fractions vs. xi to overflow when the number of spatial zones exceeded 1000. Now the limit on the number of spatial zones is 3000, and the code stops with a message when this is exceeded.
Added accurate Voigt profile calculations for all lines in synthetic spectra.
Fixed bug which limited length of spectrum file name to 8 characters.
Version 2.1k (May 2004)
Added printouts of level opacitites, and level populations to final printout if the print switch is set to 2.
Added a column to the printout of the file xout_detail.fits for the upp level index of each line.
Repaired and streamlined the printing of the file xout_detail.fits.
Added more informative statement when the code stops because the rate matrix overflows (ipmat too large).
Added rate type 42: Auger decay
Fixed arithmetic error which affected recombination rate calculation when kT $>>$ E$_{th}$
Added new data type (85) for photoionization resonances below threshold, along with new subroutine to calculate cross subsection (PEXS.f).
Streamlined the photoionization rate calculation (phint53)
More accurate treatment of line damping, Voigt profiles.
Version 2.1kn3 (April 2005)
Two bugs were found in version 2.1k in the implementation of the Voigt function when calculating line absorption and the calculation of line broadening. The Voigt function bug affected primarily lines with small damping parameters, and resulted in non-fatal numerical errors in the xstar output absorption spectrum (INFs). When xstar was called as part of xstar2xspec this resulted in fatal errors because the cfitsio routines which read the xstar output could not interpret the INFs. The line broadening bug resulted in too large absorption line depths when turbulent broadening was important. Neither of these bugs affected the temperature, ionization balance or emission spectrum. The bugs have been repaired in version 2.1kn3.
Version 2.1kn3 also has an added feature, which is the addition of ion-by-ion heating and cooling rates as extensions to the output file xout_abund1.fits.
Also added is the capability to set the value of niter to a negative number, which allows the solution of charge conservation without solving thermal equilibrium. As before, if niter=0 then neither charge transfer nor thermal equlibrium is calculated.
Version 2.1kn4 (April 2005)
Fixed an error which causes the wrong inital radius to be calculated when the constant pressure is option is chosen. Also changed the units label on the ionization parameter to remove inconsistency with constant pressure case.
Minor changes in the radiation transfer algorithm.
Version 2.1kn5 (March (?) 2006)
Fixed bug which affected high ionization models which included nickel. This caused segmentation faults, and was caused by an incorrect data type flag in the atomic data for He-like Ni.
Changed step size algorithm to prevent stepping beyond the column density specified in the input. This will not be accurate for constant pressure clouds in which the temperature is changing rapidly.
Version 2.1kn6 (June 2006)
Added the effect of photoionization and heating by line photons generated elsewhere in the cloud. These are photons which have already escaped the local region close to the point of emission.
Changed the step size computation algorithm in order to account for the process of emission. That is, the step size is now is based on the length scale for significant change of both absorption and emission.
Fixed several errors in the atomic database, notably affecting N-like ions. These affect some of the density sensitive lines in low ionization models.
Update to this manual, in the chapter in the Physics of xstar, describing in more detail the radiation transfer algorithm.
Version 2.1kn7 (March 2007)
A bug has been found affecting the intensities of the He-like forbidden lines from C, N, and O at high densities.
Version 2.1kn7 (December 2007)
The xstar database has been updated to take into account the iron M shell UTA data of Gu et al., 2006, 641, 1227. A revised database file for use with xstar21kn7 is available from the xstar website.
Version 2.1l
represents an update to the atomic data which includes the iron and oxygen inner shell data which was presented in 2004 Ap. J. Supp. 155, 675, along with the line data for iron from Chianti 5 and features from version 2.1kn6. Recent updates include fixes to buge in the routines associated with xstar2xspec. These caused numerical problems on 64 bit machines, and also resulted in errors when large grids of models were run. Versions 2.1l, 2.1lnx, etc. have not yet been completely tested and so have not been put into the standard release.
Version 2.1ln3
A bug has been found in version 2.1ln2 which affects the results in the paper 2004 Ap.J.Supp. 155 675. This is a bookkeeping error resulting in multiple-counting of the iron L shell cross subsection when calculating the cross subsections for the ‘third row’ ions, Fe I-VIII. This makes a quantitative change to the results in figures 4a and 13a. That is, it affects opacity due to iron above approximately 1 keV, only for low ionization models (\(\log(\xi)<0\)). These errors have been repaired in the version 2.1ln3, and repaired versions of the figures can be found on the xstar website.
Version 2.1ln4
Fixes to bugs in the routines associated with xstar2xspec. These caused numerical problems on 64 bit machines, and also resulted in errors when large grids of models were run (November 2007).
Version 2.1ln5
Incorporates the revised iron UTA data from Gu et al., 2006 (December 2007).
Version 2.1ln6
An update which implements strong typing to the fortran code. Function and results should be the same as previous versions.
Version 2.1ln7
Contains the dielectronic recombination rates for the ions of iron calculated by Badnell 2006 Ap. J. Lett. 651, 73. These result in a qualitative change to the ionization balance of iron for log($xi$)$leq$1.
Version 2.1kn9/v2.1ln9 (November 2008)
Treatment of line profiles both in absorption and emission has been redone. Previously the profile function for each line was evaluated at the boundary of each energy bin. Now each energy bin contains the integrated line luminosity (or optical depth) within that bin. This will have a significant effect for lines which are narrower than the default bin spacing, which is approximately 350 km/s. This affects outputs in the binned spectrum in xout_spect1.fits.
Version v2.1ln10 (May 2009)
An error was found in the book keeping for some inner shell photoionization cross subsections, resulting in double-counting in the opacity for some inner shell bound-free transions. These affect primarily low ionization models, and do not affect Fe or O. This has been fixed in this version of the code. This does not affect version 2.1kn9 and previous.
Version v2.1ln11 (May 2009)
An error was found in the zeroing of one of the arrays used for zeroing an important matrix which is used in calculating level populations. This led to spurious emission in some fluorescence lines from low-medium ionization species of elements other than O or Fe, all occuring in low-medium ionization models.
Version v2.2.0 (November 2009)
This version includes the following added features:
Inclusion of all elements up to Z=30. The atomic data for the energy level structure of ions with 3 or more electrons for many of these are scaled hydrogenic and so the associated line emission must be treated with caution.
Inclusion of two new input parameters: the radius exponent (radexp) and the number of continuum energy bind (ncn2). These are described in the chapter on input to xstar.
Inclusion of the radiation scattered in resonance lines as a column in the output fits file xout_spect1.fits. This is provided in the same units of specific luminosity as the other columns.
Use of a new algorithm for the multilevel calculation which is considerably faster and requires less storage. Hence smaller values of critf (even 0) can be accomodated for many problems.
The input parameter critf now refers to the fractional ion abundance (i.e. relative to the parent element) rather than the absolute (i.e. relative to H) ion abundance.
Minor changes have been made to some of the output formats in the ascii file xout_step.lis.
The atomic data for dielectronic recombination has been changed to incorporate the results from Badnell and coworkers (http://amdpp.phys.strath.ac.uk/tamoc/DATA/RR/) in place of the rates from cite{Aldrovandi1973} and cite{Arnaud1992}. This has quantitative effects on many of the results from xstar. Notable is the effect on the ionization balance of iron for ionization parameters in the range 0 $leq {rm log}(xi) leq$ 2, where the m-shell ions dominate, and where the new rates are greater than the previous ones by large factors.
Version v2.2.1 (April 2010)
Fixes to bugs which affected the length of the name of the spectrum file used when the ‘file’ input option is specified, and which affected the operation of multi-pass runs.
Version v2.2.1bc (September 2010)
Fix zeroing error of variable xilevt in func.
Modifications which allow the use of data files from version 2.0 and 2.1xx.
Updates to atomic database to include R-matrix calculations for nitrogen.
More accurate evaluation of voigt function (greater wavelength range)for line absorption.
Fixes to invert.f to allow iterative runs.
Include lte level population in fits output files.
Force evaluation of photoionization integrals even when heating sum stops changing. Include smaller Boltzmann factors in milne sum.
Include printout of local blackbody in opacity printout (lprint=2).
Fixed sign error in spline routine used by Burgess Tully routine.
More accurate evaluation of Planck function.
Version v2.2.1bg (May 2011)
Changes committed to reflect new atomic data from Mike Witthoeft for K shells of Ne, Mg, Si, S, Ca, Ar
Modifications to codeto allow better comparisons with xstar v1.
Changes to database to include DR from metastable levels of 3rd row iron ions.
Fixes errors in data file for indexing of k vacancy levels in iron l shell ions.
Version v2.2.1bh (September 2011)
Change so that explicit use of real*8 variables throughout
Change to access of database which avoids passing large numbers of variables to reading routine. Pointers are passed instead.
Version v2.2.1bk (January 2012)
Fix to error introduced in 221bh which allows code to modify atomic data data during calculation of data type 72.
Fix to error in msolvelucy involving rate equation solution
Fix to error in linopac/stpcut which led to spurious features in emission profiles during Voigt profile calculation
Version v2.2.1bn (July 2012)
Include new Al and Ni data
New storage for matrix of collisional-radiative rates allowing essentially no limit on number of ions which can be solved at one time.
Add columns to xout_detal2.fits to include rrc emissivities. Put out rrc luminosity derivitives rather than raw emissivities.
Version v2.2.1bn7 (August 2012)
changed crit in mslovelucy to 1.e-2. resurrected fac.ne.1 in heatt
Version v2.2.1bn8 (August 2012)
added prints in init
Version v2.2.1bn10 (August 2012)
fixed possible double counting error in pesc in func2 added ferland print, pprint(27) resurrects continuum escape probabilities
Version v2.2.1bn11 (November 2012)
increases crith from 5.e-3 to 1.e-2.
adds output to xout_detal3.fits of rrcs during step-by-step output
fixes length of strings kdesc2 in ucalc to avoid compilation warnings
brings back the chisq routine which checks statistical equilibrium
increases the number of spatial zones which can be saved for for printout to 3999
adopts random access io for xout_tmp files.
resurrects the dalgarno and butler charge excchange (data type 21)
Version v2.2.1bn13 (November 2012)
same as bn11 but with ncn=:math:10^6 and widths added in quadrature for shuinai
Version v2.2.1bn14 (April 2013)
same as bn13 but allowing density to exceed 1.e+18. This represents some serious approximations, physically: there are various quantities which are tabulated vs. density, and those grids (still) end at \(10^18\). For example, the recombination into high n levels for each ion is lumped into one rate, for levels beyond those which are treated spectroscopically. Computationally, the recombination rate into these levels can be written \(n_\text{e} \times \alpha_\text{highn}(n_\text{e}, T)\). So the \(n_\text{e}\) which is the argument of the \(\alpha_\text{highn}\) function still can’t go beyond \(10^18\). But the \(n_\text{e}\) multiplier can be arbitrarily large. Similar comments apply to some other types of rates.
Version v2.2.1bn15 (July 2013)
Changes notation: character*n –> character(n)
Fixes error which caused spurious features in absorption line profiles: in routine stpcut: dpcrit=1.e-2 –> dpcrit=1.e-6
Inlcudes new data on N VI level structure and collisional excitation.
Version v2.2.1bn16 (September 2013)
changed expression for Boltzmann factor in calt57
changed starting guess for electron fraction in dsec. Works better for low ionization cases.
changed from use of electron fraction error to electron fraction error relative to electron fraction as quantity to be solved for in dsec. Works better for low ionization cases.
Increased precision of expo function
Add lte level populations to ucalc call. Calculate lte level populations before calls in func1, func2
Allow for 200 iterations in msolvelucy instead of 100
Calculate and print lbol in ispcg2
Set pescv=0.5 to make rrcs optically thin always
Changes to rates in phint53 to make rates obey lte in the limit
Print photon occupation number in continuum printout in pprint.
Fixed buffer size in readtbl which caused overflow and serious error during read of atomic data
Version v2.2.1bn17 (December 2013)
Make calculation of photoionization related quantities modal, using lfpi: 1: total pi only; 2: pi + rec rates only; 3: opacities and emissivities
Also make h-c calculation use total rates add special funcsyn, func3p and heatf for calculations of spectral quantities.
Add profile calculation (linopac) inside of ucalc when lfpi=3; take out profile calculation from stpcut. This facitilitates calculation of contionuum photoexcitation (which is not yet included)
Change i/o of step quantities; now includes populations, total emissivities and opacities, line emissivities,… also change savd, unsavd also change name of step quantities: xoN…M.fits where N=1,2,3,4 for various quantities and M=pass number.
Add column, electron fraction, density as keywords in step files.
Add comments in pprint, unify code to use the same statements when stepping thru each physical quantity: levels, lines, all data, etc.
Move search for auger width to new rotuine deleafnd
Version v2.2.1bn18 (January 2014)
New atomic data for K shell absorption by neutral and once- and twice- ionized stages of Ne and Mg from Gorczyca.
Fix errors in the routine binemis which puts out binned emission lines. These errors led to spurious features in models with very high spectral resolution.
Change to the value of the constant hc used in conversion from ev to A and back, to reflect more accurate values for constants. Old value was 12398.54, new value is 12398.41. Also change to Rydberg constant; old value was 13.598, new value is 13.605. Adoption of consistent value of proton thermal speed as 1.29e+6 cm/s at \(10^4\,\text{K}\).
Adoption of routine which calculates photoionization integrals (phint53) which uses interpolation and smoothing.
Inclusion of code for calculating aped rates for collisional excitation (not yet fully implemented).
Inclusion of Bryans rates for collisional ionization.
Added feature which allows an array of densities to be read in. This is described in the chapter on inputs. It requires that the ‘radexp’ input variable be set to a number more negative than -100. Then ordered pairs of (radius, density) are read in from a file called ‘density.dat’. Reading continues until the end of the file is reached. The density and radius values override the values derived from the ordinary input parameters. But execution will stop if other ending criteria are satisfied, i.e. if the model column density exceeds the input value, or the electron fraction falls below the specified minimum. The code will stop with an error if the density.dat file does not exist, or if the radius values are not monotonically increasing.
Another new feature allows reading in of table spectra in units of log10(F$_varepsilon$). This requires that the spectrum_units input parameter be set to 2.
Version v2.2.1bn19 (March 2014)
Fix to bug which led to incorrect f value use for iron UTA lines.
Fix errors to routine binemis and linopac associated with attempt to make routines faster: now, always use constant stepsize for internal calculation of line profile.
change to true anders and grevesse abundances
Version v2.2.1bn20 (March 2014)
Fix to a bug which caused the wrong damping value to be used in some cases. This occured for valence shell lines, for which the damping should be just due to the natural radiative lifetime, but for which inner shell Auger damped lines also exist for the same ions. In this case, the widths for the latter lines were incorrectly used instead of the former.
Version v2.2.1bn21 (May 2014)
Fix to an error in implementation of Bryans collisional ionization rates.
Fix to an error in inclusion of turbulence in implementation of iron M-shell UTA line absorption.
Version v2.2.1bn22 (September 2014)
Photoionization integration routine now uses thresholds calculated on energy bin boundaries. This allows for better evaluation of the Milne integral, though it may affect photoionization rates in the case of very coars energy bins.
Removed redundant subroutine phint53new.f
Added code to print ion column densities as part of lpri=2 output
Increased buffer size in subroutine fstepr2 which writes to xo01_detal2.fits such that table of lines is not artificially truncated.
Add fine structure to He-like ion level and radiative decay data.
Version v2.2.1bn24 (July 2015)
The quantities printed in the ascii file xout_step.log denoted ‘httot’ and ‘cltot’ now are the total heating and cooling respectively. In versions since 2.2.1bn19 they did not include Compton and bremsstrahlung. The criterion used to select lines when binning the spectrum used in xout_spect1.fits was changed in order to reduce execution time. Only lines with luminosities greater than 10$^{-10}$ times the incident continuum luminosity are now included.
Version v2.3 (January 2016)
Fixed error in charge transfer ionization of O I. Fixed error in compton heating-cooling which affected spectra with significant flux above 100 keV. Extended extrapolation of photoionization cross sections from 20 keV to 200 keV.
Version v2.31 (May 2016)
An error in the treatment of continuum escape probablilities affecting two-sided models was fixed.
Fixed an error in the N VI escited state statistical weight values which affected line opacities.
Version v2.33 (May 2016)
An error in the calculation of ion column densities was fixed. This affected the values in the second extension to the xout_abund1.fits file, and the values printed in the xout_step.log file when the print switch is set to 1 or greater. No other quantities were affected. An error in the treatment of the N VI collisional excitation rates was also fixed.
Version v2.35 (August 2016)
Update to type 66 (Kato and Nakazaki collision strength parameterization) to allow for more than 6 points.
Fix to implementation of Bryans CI rates (data type 95) to include level-to-level CI.
Version v2.36 (October 2016)
Added code to handle Chianti 2016 collisional excitation rates (data type 98) and also ad hoc treatment of inner shell collisional ionization (data type 97) from Patrick Palmerit fac calculations for Fe XXIV.
Added new function upsiln used in this calculation.
Fixed error in lower level statistical weight calculation for data type 95 (Bryans collisional ionization).
Increased dimension of dummy array used in reading in atomic data in readtbl. This was filling and causing erroneous results for highest Z elements (Cu, Zn).
Change to main xstar routine to prevent writing detailed step-by-step data unless write switch is set or unless npass>1.
Version v2.37 (October 2016)
Added local version of getlun to handle the opening and closing of many logical unit numbers.
Version v2.38 (November 2016)
New tests to prevent 2 photon decays from being printed as lines. Functional treatment of line list and calculation of 2 photon rates is unchanged.
Added use of expo instead of exp in calculation of type 95 rates to prevent exponent misbehavior at low temperature.
Fix to data for He-like ions. Mapping from ls to fine structure resulted in several errors in previous versions. In type 69 there was spurious scaling of the excitation energy along with the collision strength. Also an error in the forbidden line A value. Also an indexing error affecting the superlevel and therefore the recombination cascade.
New feature for the write switch: if the value is -1 then no fits files are written. This speeds execution for problems where the ascii file provides sufficient information.
Version v2.38 (December 2016)
Fix to logic error in routines calc_spline and prep_spline.
Fix to error which omitted brems emission in spectrum calculation in previous versions, since 2.3.
Increased size of dummy array in readtbl.
Fix to logic and use of the function upsiln in ucalc at index 98
Version v2.39 (March 2017)
Fix to the routine which does spline evaluations for upsilons used by chianti and atomdb (preparation for future use).
Increase in temporary array size in routine readtbl which reads in atomic data from atdb.fits.
Explicit inclusion of bremsstrahlung in emissivity calculation.
Version v2.41 (May 2017)
Fix to type 70 calculation (recombination to pseudo-levels) for He-like ions which partially smooths the density-dependent behavior near density of \(10^{10}\,\text{cm}^{-3}\), by using quadratic interpolation rather than linear.
Fix which passes real*4 variable to fitsio routine in fstepr4.
Increase size of temporary array in routine reading atomic database.
Update to treatment of dielectronic satellite emission in calt72
Remove arrays called vsav, rates, and idrates which contained temporary saved rates in order to save memory space.
Increase value of crit and crit2 in msolvelucy from 1.e-10 to 1.e-4.
Add data type 96, safranova satellite emission for Fe XXIV
Also changes to atomic database: update to Fe XXIV DR satellite emission using rates from Bautista et al. 2003; fix to the Fe XXV forbidden line (2 photon) decay; addition of direct excitation of Fe XXIV satellites using rates from atomdb; also direct excitation of Fe XXV lines using rates from atomdb.
Version v2.43 (Oct 2017)
Minor changes to binemis to save memory
Added tabulation of continuum-only opacity and spectrum. Reused variable previously used for scattering opacity. Scattering-only spectra are stored in variable zrems, indeces 4 and 5. New variable for continuum-only optical depth.
Version v2.44 (March 2018)
Suppressed density dependence of type 70 recombination rates for hydrogen.
Version v2.51 (April 2018)
Converted from fortran 77 to fortran 90.
Adopted allocated temporary arrays in many routines to save memory.
Changed atomic database from simple arrays to fortran 90 structures. No longer passed as arguments to most routines, now contained as derived data types in a module.
Changed procedure for passing lte level populations in to fstepr2, rstepr2, the routines responsible for writing and reading rrcs.
Version v2.52 (June 2018)
Many syntax changes to suppress compilation warnings.
Added feature in which a value lpri=-1 suppresses almost all ascii output. This is designed to allow for large grid production without creation of unwieldy ascii files.
Version v2.53 (June 2018)
Changed the criterion for including lines in the output to the binned spectrum to include more weak lines.
Version v2.54 (December 2018)
A bug has been found which affects the output from xstar version 2.53, namely the file xout_spect1.fits. The outward emitted spectrum has the incident radiation field added into it. This has been repaired in version 2.54.
Version v2.54a (January 2020)
The effects of radiative excitation by continuum pumping have now been included. See the manual section 9.D.2.
The effects of Thomson scattering have now been included. See the manual section 9.F.3.
Version v2.56f (November 2020)
New atomic data for elements F, Na, Al, P, K, Cl, Sc, T, V, Cr, Mn, Co, Cu, Zn based on calculations described in Mendoza et al., 2018 A&A…616A..62M and its antecedents. This results in a significant increase in the size of the atomic database and the associated data structures.
Large scale switch from static memory to dynamically allocated memory in order to account for the growth of the data structures associated with the atomic database.
Major restructuring and renaming of subroutines to better describe their functionality.
Version v2.57 (May 2021)
Put calculation of fline back in.
Avoid floating point errors in amcrs, ee1expo, huntf
Added new quantity to printout in pprint(9)
Repaired length incompatibilities and variable type conflicts in arguments to cfitsion routines.
Version v2.58a (July 2021)
Trap pointers out of bounds in fstepxx, rstepxx
Make floats output to fits tables e13.5 instead of e11.3
Version v2.58b (August 2021)
Put back charge transfer which was erroneously removed in v2.56.
Put back he-like fine structure in database which was erroneoudly removed in v2.57.
Version v2.58d (September 2021)
Include a switch to take the absolute value of line wavelengths. In the database, lines with theoretical wavelengths are given negative wavelengths. These were not included in the synthetic spectrum calculation in previous versions. With the switch, called llinabs, set in the main xstar subroutine, this can be controlled. If llinabs=1 then the lines with negative wavelengths are included in the synthetic spectrum.
Version v2.58e (December 2021)
An obscure bug was found which allowed an unitialized variable to be used in the function interpol_huntd. This has now been fixed.
Version 2.59 (September 2023)
Add fluorescent line emission which was mistakenly omitted from
recent previous versions.
Version 2.59b (September 2023)
*Add routine msolvelud (not used).
*Switch to use unbinned threshold in photoionization calculation (from Yuanze)
Version 2.59cf (October 2023)
*Change criterion for including lines in final binned spectrum, inside of binemis.
*Added diagnostic pointer ltpsv in calc_hmc_ion, for use in printout of rates.
*Decreased value of crite and crith in dsec. 1.e-2 $rightarrow$ 1.e-4
*Added routine to calculate special energy grid ener_maxime, huntfmaxime
*Added rnhb arrays, net brackets, in msolvelucy.
*Neaten printout in phint53.
*Neaten printouts in ucalc(53), ucalc(49).
*Change order of ans3,ans4,ans5, ans6 in ucalc many places to be consistent.
Version v2.59ce (October 2023)
*Added calculation of electron pov heating-cooling.
*Higher threshold for binning lines in binemis to make faster execution.
Version 2.59ch (October 2023)
*Fixed errors in ucalc(51).
*Added module constants.
*Changes to diagnostics for rates: gamma, alpha, ialpha, stot,fstot,atot,fatot,xtot.
*Shorten argument list in call to xstarsetup.
*Move np2, nlsvn, ncsvn to globaldata module.
*Move call to init and other initializations to main xstar subroutine.
*Added subroutine binemislin, for making binned spectrum assuming linear energy spacing.
*Changed name of variable elin to elmn in various places to avoid conflict with the constants module.
*Change to setptrs: do not exclude elements with small abundances.
*Replace np2 with np22 in dread, drd to avoid conflict with globaldata.
*Add subroutine huntflin. Does linear interpolation in spectrum.
*Add function nbinclin. Does bin search assuming linear spacing.
*Added pprint(28): prints diagnostic quantities for nlte code compa
*Added rlbinlin same as rlbin but for linearly spaced energy grid.
*Fixed error in setptrs.
*Commented out call to dbwk2 to set pointers. Not needed with setptrs fix.
*Added diagnostics for use in nlte conference code comparisons.
Version v2.59cj (December 2023)
*Fixed type 51 data error.
Version 2.59ck (February 2024)
*Added call to pprint(29.)
*Changes to diagnostics for rates: gamma, alpha, ialpha, stot,fstot,atot,fatot,xtot.
*Added data structures rates.
*Added indonly as argument to ucalc.
*Removed test for lcon in dread (nb: this is important for databases in which the 3rd integer is used for the bibliographic reference.)
*Change from exp to expo in ee1.
*Add subroutine huntflin. Does linear interpolation in spectrum.
*Add function nbinclin. Does bin search assuming linear spacing.
*Add pprint(29): prints all rates.
*In ucalc: add spex data options 101 and 102.
*In ucalc: add indeces filled when indonly=1
*Add routines omega_c and omega_r needed for ucalc options 101 and 102.
*Fixed errors in coheat.dat reading and in ucalc found by Abdu.
*Corrected diagnostics for nlte. abundtable feature added.
Version 2.59d (March 2024)
*Changes to diagnostics for rates: gamma, alpha, ialpha, stot,fstot,atot,fatot,xtot. *error checking in type 99 evaluation, bounds on ntem and nden *added data type 103: chianti radiative rates.
Version 2.59e(October 2024)
*Fix to error in k fluorescence data for Fe L shell ions found by Sudeb.
Version 2.59f
*fix to error in type 86 data for be-like ions of odd-z elements
Revision history of warmabs
Version 2.0
Version 2.02
Inclusion of continua, both in emission and absorption.
Equivalent widths are not calculated, and quantities analogous to the transition probability and oscillator strength are not output.
The upper level, which may not be the ground level of the adjacent ion, is not identified.
Version 2.03
Fix to error in normalization of voigt profile.
Version 2.04
Rational and uniform level labels for all levels. These should now be unambiguous. A description is contained in the xstar manual.
The interface with the commonprint common block has been updated.
There is now a (string) variable whiche denotes whether a transition is a line or rrc/edge. Upper levels for rrc/edges are denoted ‘continuum’ for the ground state of the next ion, or by the appropriate level string when the upper level is not the ground state.
Version 2.06
Consistency with xstar version 221bn. Includes
up to date r-matrix atomic data for Ni and Al. Also includes model ‘scatemis’, which allows calculation of emission models for resonant-excitation dominated plasmas (optically thin).
Version 2.07
Contents of the common block are output to fits files. A new file is created with each call to warmabs or photemis, with names like ‘warmabsxxxx.fits’, where xxxx is a sequential number, mod 9999. In order to implement this feature, the fphotems.f file must be edited: calls to the routine ‘fitsprint’ must be uncommented.
Version 2.07b
Fixed minor errors in lmodel.dat. Shifted O I and O II L alpha to match observations.
Version 2.09
Made consistent with xstar v221bn15. New N VI collisional excitation data.
Version 2.10
Made consistent with xstar v221bn17. Changes to naming of output fits file suggested by John Houck: if the
WARMABS_OUTFILEenvironment variable is set, then this name is used for the output fits file.Checks to make sure that the pops.fits file was created with the same atomic database as the current one, and exits if not.
Version 2.11
O I absorption cross sections from Gorczyca et al. (2013). Fine structure for H-like ions for Z>20. Multiple errors fixed 10/08/2013.
Version 2.12
Ne I absorption cross sections from Gorczyca et al. (2013). Fine structure for all H-like ions.
Version 2.13
Mg I-III absorption cross sections from Gorczyca et al. (2013).
New input parameters for warmabs, photemis, hotabs, hotemis: write_outfile is a switch controlling output of line depths/luminosities to an ascii fits file: 0=no fits files produced, 1=fits file containing lines/edges is produced, 2=fits file containing ion column densities is produced, 3=both types of fits files are produced. outfile_idx is an integer index. If the environment WARMABS_OUTPUT is not set, then the output is written to a fits file names ‘warmabsxxxx.fits’, where xxxx is the value of this variable. If WARMABS_OUTPUT is set, then its value is used as the name of the output file.
Use of xstar v221bn18 routines: update to fundamental constants, adding thermal and turbulent velocities in quadrature consistently.
Version 2.14
Extrapolation of all valence shell cross sections beyond tabulated values. This is a temporary fix to the problem of apparent ‘negative edges’ which appear at large column density in absorption spectra. Needed are extensions to the tabulated cross sections to higher energies.
Version 2.15
Undid extrapolation of all valence shell cross sections beyond tabulated values because this led to spurious cross sections in some cases (He0 ground –> He+ 2p). Instead manually inserted extrapolated He0 ground –> He+ ground cross section into atomic data. Implemented cosmic abundances gotten from xspec internal tables. These can be changed using the ‘abund’ command, as described in the xspec manual.
Version 2.17
When the ‘write_outfile’ parameter value is nonzero an additional file is produces, called warmabs_columns. This file contains the column densities of all ions from the most recent model call.
Version 2.18
Fixed bug which affected output to the fits output files for photemis.
Version 2.19
Fixed additional bug which affected output to the fits output files for photemis. This resulted in unphysical small wavelengths tabulated in the file for various lines, and also caused the wavelengths to change between successive calls.
Changed the use of the write_outfile variable such that the values are as follows: 0=no fits files produced, 1=fits file containing lines/edges is produced, 2=fits file containing ion column densities is produced, 3=both types of fits files are produced.
Increased the critical luminosity needed for photemis to add line emision to the spectrum, in order to speed execution.
Version 2.20
Fixed error in Si XIV energy levels which was introduced when putting fine structure.
Version 2.21
Added fine structure of He-like ions of C-Ni.
Version 2.22
Added list of level indeces and ion index to the fits table output. These indeces are unlikely to change over time as new atomic data is added, so this should provide a robust way to keep track of lines and rrcs.
Version 2.23
Removed duplications of atomic data: rrcs in Ni IX – XV and of lines in Na X and F VIII.
Version 2.24
Changes to xstar code corresponding to xstar v2.2.1bn24.
Version 2.25
Fix to error which led to incorrect emission in the Fe UTA.
Version 2.26
Compatibility with xstar version 2.3. Extend photoionization extrapolation from 20 keV to 200 keV.
Version 2.27
Compatibility with xstar version 2.31.
Version 2.29
Compatibility with xstar version 2.38.
Version 2.30
Fixed errors in binemis which resulted in natural width not being applied to emission line profiles.
Version 2.31
Compatibility with xstar versions up to and including 2.54.
Version 2.32
Fortran 90
The stored model results are used for a first pass which selects only lines and rrcs (both in emission and absorption) which are strong. Then only the selected ones are calculated and binned in the synthetic spectrum. The criterion for strength is that they be in the top n in strength in the continuum bin where they peak. Currently n is set to 10. It is configurable using the ‘nrank’ variable in the parameter file PARAMX. A tradeoff is that full xstar outputs are needed, not just level populations. These occupy more disk space; the directory is currently 2.7Gb, about an 8-fold increase from previous versions. A consequence is that the stored files from xstar runs have fixed names. The
WARMABS_POPenvironment variable is no longer needed or used. The user must run xstar and put all the output files named xo*.fits into the directory indicated by theWARMABS_DATAenvironment variable.
Version 2.34
Various fixes to photemis and windabs.
Version 2.35
Changes to fortran syntax to reduce warnings when compiled with -Wall and -pedantic. Also reduced the size of the array zrtmpcol.
Version 2.37
Fix to normalization error in fphotemis continuum normalization.