A feature added September 2007 is output of the strongest lines, sorted by element and ion into a common block called 'ewout' This feature is only available for the warmabs, photemis, hotemis, hotabs models (not windabs, or multabs). The contents of the common block are:
lmodtyp: identifies which model most recently put its output into the common block. lmodtyp=1,2,3,4, where 1=hotabs, 2=hotemis, 3=warmabs, 4=photemis
newout: number of lines in the list. This is zeroed after each call to warmabs, photemis, hotabs, etc.
lnewo: array conatining line indexes. These should correspod to the line indexes in the ascii line lists on the xstar web page.
kdewo: character array containing the name of the ion
kdewol: character array containing the name of the lower level
kdewou: character array containing the name of the upper level
aijewo: array containing A values for the lines
flinewo: array containing f values for the lines
ggloewo: array containing statistical weights for the lower levels
ggupewo: array containing statistical weights for the upper levels
elewo: array containing the line wavelengths
tau0ewo: array containing the line center depths
tau02ewo:array containing the line depths at the energy bin nearest to line center
ewout: array containing line equivalent widths in eV, negative values correspond to emission
elout: array containing line luminosities in xstar units (erg/s/1038)
The details of how to get at the contents of the common block are up to the user. Currently xspec does not have a mechanism to do this, but it is straightforward to write a small fortran code to call the models with suitable parameter values and print the common block from there. The calling sequence for an analytic model is described in the xspec manual. It is important to point out that the common block is overwritten at each call to one of the models, so it should be emptied by the calling program after each call to one of the models.
An example is as follows:
program fphottst c implicit none c real ear(0:20000),photar(20000),photer(10000),param(30) integer ne,mm,ifl real emin,emax,dele c ne=10000 emin=0.4 emax=7.2 dele=(emax/emin)**(1./float(ne-1)) ear(0)=emin do mm=1,ne ear(mm)=ear(mm-1)*dele enddo write (6,*)ear(1),ear(ne),ear(ne/2) param(1)=2. param(2)=-4. param(13)=100. param(12)=0. param(3)=1. param(4)=1. param(5)=1. param(6)=1. param(7)=1. param(8)=1. param(9)=1. param(10)=1. param(11)=1. param(3)=0. call fhotabs(EAR,NE,PARAM,IFL,PHOTAR,PHOTER) c call commonprint c write (6,*)'after fwarmabs' do mm=1,ne write (6,*)ear(mm),photar(mm)/ear(mm) enddo c stop end subroutine commonprint c implicit none !jg c parameter (nnnl=200000) c common /ewout/newout,lnewo(nnnl),kdewo(8,nnnl), $ kdewol(20,nnnl),kdewou(20,nnnl),aijewo(nnnl),flinewo(nnnl), $ ggloewo(nnnl),ggupewo(nnnl), $ elewo(nnnl),tau0ewo(nnnl),tau02ewo(nnnl),ewout(nnnl), $ elout(nnnl),lmodtyp c real aijewo,flinewo,ggloewo,ggupewo,elewo,tau0ewo,tau02ewo, $ ewout,elout integer lnewo,newout,lmodtyp character*1 kdewo,kdewol,kdewou integer kk,mm !jg c if (lmodtyp.eq.1) write (6,*)'after hotabs',newout if (lmodtyp.eq.2) write (6,*)'after hotemis',newout if (lmodtyp.eq.3) write (6,*)'after warmabs',newout if (lmodtyp.eq.4) write (6,*)'after photemis',newout write (16,*)'index, ion, wave(A), tau0, tau0grid, ew (eV),', $ 'lum, lev\_low, lev\_up, a\_ij, f\_ij, g\_lo, g\_up' do kk=1,newout write (16,9955)kk,lnewo(kk),(kdewo(mm,kk),mm=1,8), $ elewo(kk),tau0ewo(kk),tau02ewo(kk),ewout(kk), $ elout(kk), $ (kdewol(mm,kk),mm=1,20),(kdewou(mm,kk),mm=1,20), $ aijewo(kk),flinewo(kk),ggloewo(kk),ggupewo(kk) enddo 9955 format (1x,2i8,1x,8a1,5(1pe11.3),1x,2(20a1,1x),4(1pe11.3)) c return end
New in 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. Also, the upper level, which may not be the ground level of the adjacent ion, is not identified.
New in version 2.03: Fix to error in normalization of voigt profile.
New in version 2.04: Rational and uniform level labels for all levels. These should now be unambiguous. A description is contained in the xstar manual. Also, 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.
New in 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).
New in 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.
New in version 2.07b: Fixed minor errors in lmodel.dat. Shifted O I and O II L alpha to match observations.
New in version 2.09: Made consistent with xstar v221bn15. New N VI collisional excitation data.
New in version 2.10: Made consistent with xstar v221bn17. Changes to naming of output fits file suggested by John Houck: if the WARMABS_OUTFILE environment variable is set, then this name is used for the output fits file. Also checks to make sure that the pops.fits file was created with the same atomic database as the current one, and exits if not.
New in version 2.11: O I absorption cross sections from Gorczyca et al. (2013). Fine structure for H-like ions for Z20. Multiple errors fixed 10/08/2013.
New in version 2.12: Ne I absorption cross sections from Gorczyca et al. (2013). Fine structure for all H-like ions.
New in 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.
New in 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.
New in 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.
New in 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.
New in version 2.18: Fixed bug which affected output to the fits output files for photemis.
New in 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. Also 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. Also increased the critical luminosity needed for photemis to add line emision to the spectrum, in order to speed execution.
New in version 2.20: Fixed error in Si XIV energy levels which was introduced when putting fine structure.
New in version 2.21: Added fine structure of He-like ions of C-Ni.
New in 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.
New in version 2.23: Removed duplications of atomic data: rrcs in Ni IX - XV and of lines in Na X and F VIII.
New in version 2.24: Changes to xstar code corresponding to xstar v2.2.1bn24.
New in version 2.25: Fix to error which led to incorrect emission in the Fe UTA.
New in version 2.26: Compatibility with xstar version 2.3. Extend photoionization extrapolation from 20 keV to 200 keV.
New in version 2.27: Compatibility with xstar version 2.31.
New in version 2.29: Compatibility with xstar version 2.38.
New in version 2.30: Fixed errors in binemis which resulted in natural width not being applied to emission line profiles.
New in version 2.32: Fortran 90. Plus 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_POP environment 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 the WARMABS_DATA environment variable.
New in version 2.34: Various fixes to photemis and windabs.
New in version 2.35: Changes to fortran syntax to reduce warnings when compiled with -Wall and -pedantic. Also reduced the size of the array zrtmpcol.