| CHIANTI |
| An Atomic Database for Spectroscopic Diagnostics of Astrophysical Plasmas |
| USER GUIDE - Version 5.0 - 18 August 2005 |
| Written by Giulio Del Zanna |
| with contributions from Peter Young and the team members. |
which_line pop_processes(see the example section).
The changes introduced to speed the calculations were made necessary by the increasingly larger atomic models now available in CHIANTI, that made the running time of the software of the previous version too long.
The software is backward-compatible, i.e. can be used together with previous versions of the database.
-Added detailed descriptions of the data file contents.
-Replaced the continuum plot, that was created with the corrupted version of the itoh.dat file.
-Corrected instructions for installation within Windows.
This document describes the general characteristics of the new Version 4.0 of the CHIANTI package (database and IDL procedures).
A considerable number of new features, both in the database and the software, have been added (see Young et al., 2003). We have tried to keep a distinction between the previous and the new features in this document.
Users of previous versions, please NOTICE:
The main new features described in this guide are
Backward compatibility has been assured for almost all cases. In practice, previous users of CHIANTI will be able to use the new V.4 software as before, with just minor changes. On the other hand, software versions prior to 4 are not compatible with the v.4 database.
This document replaces the previous CHIANTI guide (Version 1.0).
CHIANTI is a collaborative project involving researchers based at the Naval Research Laboratory (NRL, Washington DC, USA), Rutherford Appleton Laboratory (RAL, UK), the University College London (UCL, UK), the University of Cambridge (UK), the George Mason Univerity (GMU, USA) and the University of Florence (Italy).
The CHIANTI package consists of a critically evaluated set of atomic data (energy levels, wavelengths, radiative transition probabilities and excitation data) for a large number of ions of astrophysical interest. It also includes a number of ancillary data and a suite of Interactive Data Language (IDL) programs to calculate optically thin synthetic spectra and to perform spectral analysis and plasma diagnostics.
Plasma emission codes have long been used to study UV and X-ray spectral lines emitted from solar or stellar atmospheres. A comparison of the theoretical line intensities with the observed intensities allows a determination of the physical parameters for the plasma (cf Mason and Monsignori Fossi, 1994 and Del Zanna, Landini and Mason, 2002).
It is very important, now that high accuracy atomic data are available, to improve and keep up-to-date the plasma codes.
The CHIANTI database has been used extensively by the astrophysical and solar communities to analyse emission line spectra from astrophysical sources.
The CHIANTI package is freely available at one of the CHIANTI homepages:
or at
As with any atomic data package, CHIANTI has been developed to suite some specific applications in astrophysics, and users should read the CHIANTI papers and the documentation to find out the ranges of applicability of the package.
Currently, some of the main assumptions and limitations of the data and programs are:
A correction to the level populations due to ionization and recombination is included, but it is only valid up to densities above which metastable level populations begin to be non-negligible.
The continued development of the CHIANTI database is dependent on continued funding which is generally available if we can demonstrate that the CHIANTI database is of use to astrophysical research. If you use CHIANTI, we only ask that you acknowledge it appropriately in any publications:
Write in the text of any publication the reference to the CHIANTI paper associated with the particular VERSION you have used:
We would appreciate if you also write in the acknowledgements of any
publication the following:
CHIANTI is a collaborative project involving NRL (USA), RAL (UK), and the following Universities: College London (UK), of Cambridge (UK), George Mason (USA), and of Florence (Italy).
If a detail work on a particular ion is done, it would be appropriate to also refer to the original publication. References can be found at the end of each data file or on the WWW.
CHIANTI data are included into other databases. It would be appropriate to make that clear to the users so they can trace back the results they use to the original calculations.
Users should be aware of what is included in the database, of the approximations applied, and of the atomic data used. The CHIANTI results should not be blindly considered valid in all cases. For example, the CHIANTI predicted emissivities should not be used when considering temperatures outside of the validity ranges.
Any contributions and suggestions to CHIANTI are welcomed. We would appreciate a short description of how you employ CHIANTI.
The CHIANTI project was originally set up by Dr. Ken Dere of the Naval Research Laboratory (Washington, USA), Dr. Helen Mason of the Department of Applied Mathematics and Theoretical Physics at the University of Cambridge (UK), and Dr. Brunella Monsignori-Fossi of the Arcetri Astrophysical Observatory (Florence, Italy). Former students of Dr. Monsignori-Fossi (Dr. Enrico Landi) and Dr. Mason (Dr. Peter Young) helped in the creation of the database. The sad and unexpected death of Dr. Monsignori-Fossi in January 1995, led to Prof. Massimo Landini, a close associate of Dr. Monsignori-Fossi, becoming a new CHIANTI representative (University of Florence).
Additional collaborations have involved Dr. Dave Pike of the Rutherford Appleton Laboratory (RAL), who has written CHIANTI routines to run within the environment of the SOHO/CDS software (and within SolarSoft), and with Dr. Gordon Bromage, Dr. Barbara Bromage and her former student Dr. Giulio Del Zanna of the University of Central Lancashire.
Dr. Enrico Landi, now at the Naval Research Laboratory, Dr. Peter Young, now at RAL, and Dr. Giulio Del Zanna, now at UCL, have continued to be active collaborators in the CHIANTI project.
Young et al. (1998) used the CHIANTI database for a detailed comparison with observed EUV solar spectra to assess the diagnostic accuracy of the two data sets.
In November 2000 we have released a whole new CHIANTI package under SolarSoft.
The fitting procedure for excitation data, both electrons and protons, has been extended to allow 9 point spline fits in addition to the previous 5 point spline fits. This allows higher quality fits to data from close-coupling calculations where resonances can lead to significant structure in the thermally-averaged collision strengths.
With the addition of H I, He I and N I, the first neutral species have been added to CHIANTI.
Many existing ion data-sets have been updated, in particular most ions of the nitrogen and beryllium isoelectronic sequences. Also, new ions have been added, including Ar IV, Fe VI and Ni XXI.
The continuum routines have been re-written, including a new relativistic free-free continuum, a new free-bound, and a new two-photon continuum. New software has been written.
Minor releases of the database and the software normally include fixes and might occur a few times per year.
chianti_help@halcyon.nrl.navy.mil
The atomic data will continue to be updated regularly as new data are calculated or measured in the laboratory.
It is intended that these atomic data can be accessed and transfered into users own analysis programs, for more sophisticated applications.
The database has a tree structure, with the top directory designated with the IDL system variable !xuvtop (and named dbase within SolarSoft):
dbase/
In the top directory are the following files:
README_CHIANTI with the description of the current version.
VERSION with the version number.
Then, there is a series of subdirectories, one for each element present in the database.
Each element has a subdirectory for each ion.
The filename prefix for each ion follows spectroscopic notation.
For example, for He, we have He I and He II subdirectories:
he/
he_1/
he_2/
Then, we have a series of ancillary data that are contained in
various subdirectories:
masterlist/
has the list of the ions currently present
in the database
abundance/ with elemental abundance files.
continuum/ contains files for the continuum calculations.
dem/ has DEM files.
ioneq/ contains ionization fraction files.
ip/ has ionization potentials.
ancillary_data/instrument_responses/ with effective areas.
There are five primary ASCII files for each ion subdirectory. For example, for Fe XIV we have:
Specifies the energy levels in cm-1 and Rydbergs. It includes both experimental data and theoretical values of the levels energies.
The energy levels are obtained from NIST. Where necessary, these are supplemented by other laboratory and theoretical values.
Each column in the files has:
Note that the ordering of the levels does not follow any strict rule.
Contains the wavelengths, gf and A values of the transitions and the indices initial and final level corresponding to the indices of the levels as given in the fe_14.elvlc file. Wavelengths calculated from the theoretical energies are of an indeterminate accuracy and their values are presented as negative values of the calculated wavelength. The `observed' wavelengths in these files are based on the experimental energies and should be the best available.
The radiative data are taken from published literature and where necessary, supplemented by new calculations.
Each column in the files has:
contains the point spline fits to electron collision strengths scaled according to the the rules formulated by Burgess and Tully (1992), as described in Dere et al. (1997). All the atomic data in the CHIANTI database have been visually displayed and assessed for accuracy and any sporadic errors which sometimes creep into published results.
Accurate replication of the temperature averaged collision strength over a wide range of temperatures can be accomplished with the data in this file.
Each column in the files has:
This is analogous to the fe_14.splups file, and contains the point spline fits to proton collision strengths.
We created two new files that include the aion and arec rates. The names of these files follow the usual CHIANTI pattern, and have the .CILVL and .RECLVL suffixes, for ionization and recombination respectively.
Data in these files are tabulated as a function of temperature, at all temperatures for which they are provided.
Currently, all the rates for each ion are given at the same temperature. In the future this will be generalised.
The basic structure of the files is to put the data at the beginning of the file followed by comments.
The comments must be enclosed at the end of the file between two lines containing a single '-1'
The original sources are documented in each data file, where also additional and detailed comments written by the CHIANTI member that assessed that particular ion can be found. You can have direct access to the references via the WWW pages.
Some additional data files are needed in various calculations. The software allows the selection of these files, from either a 'standard' selection provided within the database, or by using user defined files that are included in the current working directory, provided they have the proper file extension. For example, it is possible to create a user defined 'myfile.dem'. If the file is in the working directory, then the file will automatically be appended to the list of available DEMs from the CHIANTI database. In other cases, it is possible to select the file by using a widget that allows the user to change directory.
Any user-defined file must have the same format as those already provided (also including a 'comment' section at the end of the file)
The list of the ions present in the database
A !xuvtop/masterlist/masterlist.ions file keeps the current list of all the ions in the database. This list is used as default by many routines (for example those that calculate line intensities).
In some cases, it is possible to instead use a user-defined list of ions, to speed the calculation, or to directly supply the routines with a list of ions, via the SNGL_ION keyword.
Elemental abundances
Files with various elemental abundances are provided in the directory !xuvtop/abund/ Element abundances are in the usual dex notation (Log10 values, relative to H, that has a Log10 value of 12).
Options are available within the routines to choose different elemental abundances. User-defined abundance files can also be used, and should have a .abund file extension.
Be aware that any element missing in the elemental abundance file will also be missing in any output created by any software that reads the elemental abundance file.
There is a great deal of controversy over the variation of the elemental abundances in the solar and stellar atmospheres. See the reviews of Meyer (1985, 1993), Widing and Feldman (1992), Mason (1992), Raymond et al. (2001). Also, it should be kept in mind that different analyses can lead to very different results. For example, the ionisation balance, the selection of lines, and the spectroscopic method used can each account for a variation of a factor of two or more in the derived element abundances (see Del Zanna et al., 2002 and references therein).
Ionisation Fractions
Files giving collisional ionization equilibria are provided in the !xuvtop/ioneq directory. User defined ionisation files should have a .ioneq file extension.
Be aware that most CHIANTI software uses the temperatures in these files as a base for the calculations. For example, if DEM(T) values are supplied, they are first interpolated at the temperatures in the ionization fraction, and the calculations are done at those temperatures.
The ionisation fractions have been taken from the tabulated values in the published literature (e.g. Arnaud & Raymond, 1992; Arnaud & Rothenflug, 1985; Mazzotta et al., 1998).
Be aware that any ion missing in a ionisation fraction file will also be missing in any output created by the software.
Also, be aware that any line missing a temperature overlap with the chosen ionisation fraction would have zero emissivity and will not be output by the software.
Be aware that large differences between different tabulations are present, and that large uncertainties are associated with these calculations. It should be noted that the ionisation equilibrium plays a major role not only in the derivation of the DEM, but also in that one of the elemental abundances. In this respect, it is important to be aware of the fact that a number of ions, in particular those of the Li and Na isoelectronic sequence, present anomalous behaviour (see Del Zanna et al., 2002, and references therein).
Differential Emission Measure
Files specifying various standard differential emission measures (DEM) distributions for different solar features are provided in the !xuvtop/dem directory. Additional files for stellar atmospheres will also soon be added. Each file contains the Log10 T and Log10 DEM values in two columns, ordered with increasing temperature.
User-defined DEM files should have a .dem file extension and must have the same format and ordering of the files provided.
Be aware that any line missing a temperature overlap between the ion fraction and the chosen DEM distribution would have zero emissivity and will not be output by the software.
The emission measure distribution in the solar atmosphere is a complex issue. Starting with the pioneering work by Pottasch (1964), spectra in the UV wavelength range have been used to determine the distribution of material as a function of temperature, following various methods. More details can be found in Section 9.16.
Other files
Other files are in other miscellaneous directories. For example:
!xuvtop+'/ip/chianti.ip' has the ionization potentials for all the ions;
!xuvtop+'/continuum/ contains data used by the routines that calculate the continuum. For example, gffgu.dat contains the free-free gaunt factors of Sutherland (1998).
A number of Interactive Data Language (IDL) procedures are also provided as part of the CHIANTI package. These include routines to read the various CHIANTI database files, calculate level populations, line intensities, and temperature dependent and density dependent line intensity ratios.
Most of our efforts have gone into developing well-documented user-friendly IDL routines that meet readily apparent needs. We welcome contributions to the software.
CHIANTI has been run mainly on Sun, Dec Unix workstations and on PCs with Linux. CHIANTI also runs (with some small limitations) under Windows NT and in VMS. Please report to us any problems you might find.
All the IDL routines have been documented with extensive headers
giving detailed descriptions and
examples. Please read them carefully.
The CHIANTI routines can be grouped into three classes:
The CHIANTI routines are organised in a tree structure. The main level contains some high-level procedures and the HISTORY file, where all modifications to the software are logged.
Now, a description of the various high-level routines that are present within the CHIANTI software tree is given.
Compared to previous releases, significant changes occurred. Please read Sect. for details.
A new set of high-level and higher-level routines has been written for Version 4. The major change for V.4, aside from those already mentioned, has been the way to calculate synthetic spectra and handle line intensities (see Fig. 1):
Other routines that previously were only available within SolarSoft are also included now. The users therefore now have various different routines to choose from.
We have kept the older high-level routines, so the user can still use them as before (with slight modifications/additions of keywords). We have updated them and re-written as wrapper routines (essentially that call the newly-written routines) as follows:
| Synthetic spectra | ||
| ch_ss |
| |
| synthetic |
| |
| synthetic_plot |
| |
| isothermal |
| |
| make_chianti_spec |
| |
| Line intensities | ||
| ascii_wvl_dem |
| |
| latex_wvl_dem |
| |
| ch_synthetic |
| |
| ch_line_list |
| |
| Line emissivities | ||
| emiss_calc |
| |
| gofnt |
| |
| g_of_t |
| |
| Density-sensitive line ratios | ||
| dens_plotter |
| |
| density_ratios |
| |
| chianti_ne |
| |
| plot_chianti_ne |
| |
| Temperature-sensitive line ratios | ||
| temp_plotter |
| |
| temperature_ratios |
| |
| chianti_te |
| |
| plot_chianti_te |
| |
| Continuum | ||
| freefree |
| |
| freebound |
| |
| two_photon |
| |
| Level populations | ||
| plot_populations |
| |
| pop_plot |
| |
| show_pops |
| |
| pop_processes |
| |
| Miscellaneous | ||
| rad_loss |
| |
| max_temp |
| |
| plot_ioneq |
| |
| chianti_dem |
| |
| plot_dem |
| |
| integral_calc |
| |
| ch_read_fits |
| |
| ch_write_fits |
| |
|
For the first two classes of routines, by simply typing the name of the routine, a description of how to call the routines, with examples, is printed. For example,
IDL > temperature_ratios IDL > temperature_ratios,ion,wmin,wmax,Log10(tempmin),Log10(tempmax),$ IDL > temperature,ratio,description,$ IDL > [pressure= ,density= , psfile= , outfile= ] IDL > IDL > i.e.: IDL > temperature_ratios,'c_5',40.,50.,5.,7.,temp,rat,desc
In any case the best way to understand what a routine does and how it works is to read the header documentation with e.g.:
IDL > xdoc,'ch_synthetic' IDL > doc_library,'ch_synthetic'
Another way to quickly see the keywords of a routine is to use:
IDL > chkarg,'temperature_ratios ..... ---> Call: pro temperature_ratios,ions,wmin,wmax,tempmin,tempmax,$ temperature,ratio,description,$ density=density,psfile=psfile, $ outfile=outfile,noprot=noprot, $ radtemp=radtemp,rphot=rphot,photons=photons, $ ioneq_file=ioneq_file, abund_file=abund_file, $ VERBOSE=VERBOSE
CHIANTI is currently distributed in two ways:
http://www.lmsal.com/solarsoft/
for details on how to download and install the package. The database and the software are organised in a self-contained package
$SSW/packages/chianti/
with the following tree structure:
dbase/ (database) doc/ (documentation, in particular the USER GUIDE) idl/ (IDL software) setup/ (supplementary setup files)
The contents of the SolarSoft CHIANTI package are
mirrored daily from a master tree.
Normally, only small fixes to the existing
software can occur rather frequently.
All modifications to the software are logged in the $SSW/packages/chianti/idl/HISTORY file.
Modifications to the database are much less frequent. They are described in the $SSW/packages/chianti/dbase/README_CHIANTI file.
We send an e-mail to the CHIANTI user group every time we make a minor release of the database available.
Note that the contents of the SolarSoft package change on a frequent timescale normally to fix bugs caused by the use of new IDL releases.
We recommend that you use CHIANTI within the SolarSoft framework and that you setup in your site a mirror in order to have automatic upgrades. It is easy to follow the instructions to download and setup the package.
Currently, the data and the software are distributed in two separate tar files. The tar files have a similar tree structure as the SolarSoft distribution.
E.g. the data are in CHIANTI_4.0_data.tar that contains a copy of $SSW/packages/chianti/dbase.
CHIANTI_4.0_pro.tar contains doc/, a copy of $SSW/packages/chianti/doc/ and idl/, a copy of $SSW/packages/chianti/idl/, plus idl/gen/, a copy of the $SSW/gen/ routines. This is because some routines of the $SSW/gen/ directory are needed to run some of the CHIANTI programs.
CHIANTI is a package, in the sense that database and progams are to be used together. The current version of the database must be used with the current version of the programs. Backward compatibility does not always apply.
To run any CHIANTI IDL procedure, the following is needed:
If you are using SolarSoft you should have the setup already organised so as to have the path of the CHIANTI IDL procedures added to IDL_PATH, the !xuvtop and the other IDL system variables defined. This is done automatically by using
unix> setssw chianti unix> sswidl or unix> sswidl IDL > ssw_packages,/chianti
After this, you will be able to run the CHIANTI routines.
Users of previous versions, please NOTICE:
The procedures to install CHIANTI have changed in small but important ways.
Download the CHIANTI files
Download the CHIANTI data tar file (e.g. CHIANTI_4.0_data.tar.gz) and the CHIANTI IDL procedures tar file (e.g. CHIANTI_4.0_pro.tar.gz) and put the tar files into a directory (for example, /data1/chianti/dbase for the data and /data1/chianti/ for the software) and then do the following:
unix> gunzip [file_name].tar.gz unix> tar xvf [file_name].tar
This will copy all the CHIANTI data files into /data1/chianti/dbase and create the /data1/chianti/idl and /data1/chianti/doc/ directories.
Define the IDL paths and the system variables
There are two ways of doing the above. The first is to define the system variables within IDL, the second is outside IDL. We suggest the first option. Once IDL is started, there are three steps:
unix > idl
Unix: IDL> !PATH = '+/data1/chianti/idl:'+!PATH Windows: IDL> !PATH = '+C:\data1\chianti\idl;'+!PATH VMS: IDL> !PATH = '+/data1/chianti/idl,'+!PATH
IDL> !PATH = EXPAND_PATH(!PATH)The '+' and the EXPAND_PATH are needed since the IDL routines are organised into subdirectories. The second option involves writing (UNIX) the following statement in your /.cshrc (or /.login) file:
setenv IDL_PATH /usr/local/rsi/idl_4/lib:+/data1/chianti/idl
(assuming you have the main IDL directory in /usr/local/rsi/idl_4).
Unix: IDL> use_chianti, '/data1/chianti/dbase' Windows: IDL> use_chianti, 'C:\data1\chianti\dbase'
After following the above steps, it will be possible to run the CHIANTI routines from any directory. use_chianti also allows you to set your default abundance and ionization equilibria files with the abund and ioneq keywords.
Previous CHIANTI users should check the note below.
We suggest that you add the three above calls to your IDL_STARTUP file (say /.idl_startup). If this file does not exist then it should be created. In UNIX, this can be done if you add the following line to your .login file:
setenv IDL_STARTUP ~/.idl_startup
(Note that the changes to the .login file mean that you should do a source ~/.login before running IDL).
Alternatively, you can write the three statements above in a file, say start_chianti.pro:
!PATH = '+/data1/chianti/idl:'+!PATH !PATH = EXPAND_PATH(!PATH) use_chianti, '/data1/chianti/dbase' ENDand run
IDL> .r start_chianti
Note to previous CHIANTI users:
If you had already defined the CHIANTI system variables
before entering IDL or in your IDL STARTUP file you
should remove those definitions.
Alternatively, instead of using use_chianti, '/data1/chianti/dbase', you have to make sure you have in your IDL STARTUP file something like this:
!PATH = '+/data1/chianti/idl:'+!PATH !PATH = EXPAND_PATH(!PATH) defsysv,'!xuvtop', '/data1/chianti/dbase' defsysv,'!ioneq_file','/data1/chianti/dbase/ioneq/mazzotta_etal.ioneq' defsysv,'!abund_file','/data1/chianti/dbase/abundance/cosmic.abund' defsysv,'!BCOLOR',0 defsysv,'!ASPECT',1.0
For a review on Spectroscopic Diagnostics in the EUV for Solar and Stellar Plasmas see e.g. Mason and Monsignori Fossi (1994).
The intensity I(lij), of an optically thin spectral line of wavelength lij (frequency nij = [ c/(h lij)]) is
| (1) |
where i, j are the lower and upper levels, Aji is the spontaneous transition probability, Nj is the number density of the upper level j of the emitting ion and h is the line of sight through the emitting plasma. In low density plasmas the collisional excitation processes are generally faster than ionization and recombination timescales, therefore the collisional excitation is dominant over ionization and recombination in populating the excited states. This allows the low-lying level populations to be treated separately from the ionization and recombination processes.
For allowed transitions we have Nj(X+m) Aji ~ Ne. The population of the level j can be expressed as:
| (2) |
See the routine PROTON_DENS described in Sect. B.5 for details on how to calculate N(H)/Ne.
In the `standard model' for interpreting line intensities there are three fundamental assumptions that serve to simplify the problem considerably:
The atomic data contained in the CHIANTI database are particularly suited to the analysis of emission lines via this model, and the following discussion outlines this approach. No attempt is made to discuss non-equilibrium conditions.
With the first of the assumptions, the
population of ions lying in a
given state is constant and so the number of ions leaving this state
per unit time must exactly balance the number arriving into that
state. If we denote the number of transitions leaving the state i to
a state j taking place per unit time per unit
volume by aij, then steady state implies
| (3) |
| (4) |
| (5) |
Now our second assumption means that the processes that
affect the ionisation state of the plasma do not affect the quantity
ni. Eq. 5 thus becomes
| (6) |
For the basic CHIANTI model these processes are simply electron and proton excitation and de-excitation, and the generalised radiative decay:
| (7) |
Cije is given by:
| (8) |
| (9) |
where wi is the statistical weight of level i, k is
Boltzmann's constant, T the electron temperature, and qij
the electron excitation rate coefficient which is given by:
| (10) |
The solution of Eq. 6 is performed by the CHIANTI routine pop_solver.pro, which gives the fraction of ions in the state i.
The level populations for a given ion can be calculated and displayed with plot_populations.pro (but also see pop_plot.pro).
We rewrite the intensity as:
| (11) |
where the function
| (12) |
called the contribution function, contains all of the relevant atomic physics parameters and is strongly peaked in temperature.
gofnt.pro calculates these contribution functions (see also g_of_t.pro for a slightly different way of calculating contribution functions).
Please note that in the literature there are various definitions of contribution functions. Aside from having values in in either photons or ergs, sometime the factor [ 1/(4p)] is not included. Sometimes a value of 0.83 for N(H)/Ne is assumed and included. Sometimes the element abundance factor is also included. Any of the above (or any other) variations also affect the definition of a line intensity in terms of the contribution function and the DEM. In the following we will refer to the functions C(T,lij,Ne) and G(T,lij,Ab(X),Ne) = Ab(X) C(T,lij,Ne) ( i.e. the contribution function that contains the abundance factor ).
If we define, assuming that is a single-value function of the temperature, the differential emission measure DEM (T) function as
| (13) |
the intensity can be rewritten, assuming that the abundance is constant along the line of sight:
| (14) |
The DEM gives an indication of the amount of plasma along the line of sight that is emitting the radiation observed and has a temperature between T and T+dT.
The IDL routine chianti_dem.pro described in Sect. 9.16 calculates the Differential Emission Measure DEM(T) using the CHIANTI database, from a given set of observed lines.
Routines such as ch_synthetic.pro (see Sect. 9.1 and Sect. ) calculate line intensities without the abundance factor, that is only included at a later stage.
In the isothermal approximation, all plasma is assumed to be at a single temperature (To) and the intensity becomes:
| (15) |
where we have defined the column emission measure
| (16) |
ch_synthetic.pro in the isothermal approximation calculates I = C(To, lij, Ne) òNe NH dh, while isothermal.pro and ch_ss.pro (see examples in Sect. 9.1) can be used to create synthetic spectra (with the abundance factor).
It is also possible to calculate intensities and spectra with a multi-temperature model, by providing an array of To, EMh values.
Please note that in the literature many different definitions of Differential Emission Measures, Emission Measures and approximations can be found (see Del Zanna et al., 2002 for some clarifications).
In the stellar case, the theoretical flux of an optically thin spectral line is:
| (17) |
where C(Ne, T, lij) has the
same expression as above, d is the star's distance,
dV is the volume element, and V is the entire source volume.
A volume Differential Emission Measures DEM is often defined:
| (18) |
| (19) |
At the moment CHIANTI does not include volume emission measures. In the near future we will modify the software and the definition of the DEM in order to include volume emission measures.
However, any volume Differential Emission Measures can be rescaled to column DEMs and used within the software to produce synthetic spectra for stellar coronae. One way of doing this is to assume spherical symmetry, and that the emitting region is a layer dh distributed over the entire star's disk, i.e. dV=4pR2* dh (R* is the star's radius). If the star's radius and distance are known, a volume DEM can be scaled with the factor [(4pR2*)/(d2)] to obtain a column DEM.
If this is used, the outputs will have flux units, i.e. ergs cm-2 s-1 (or photons cm-2 s-1) and not ergs cm-2 s-1 sr-1.
An example of scaled DEM is provided in the file AU_Mic.dem, in the CHIANTI distribution.
Column DEMs and EMs are assumed when the spectra are folded with effective areas (see Sect. 9.1). The effective areas are assumed to have units of counts photons-1 cm+2, so the output units of the spectra will be counts s-1 pixel-1.
Also note that corrections to interstellar absorption are not presently included in CHIANTI.
For each ion for which proton rates are available, an additional file is required in the database to contain the fits to the rate coefficients. The file has the suffix .PSPLUPS, and is exactly analogous to the .SPLUPS file for the electron fits. All of the proton transitions included in CHIANTI are forbidden transitions taking place between levels within the same configuration. Many of the transitions required 9-point splines (see Sect. C) in order to provide adequate fits. The number density of protons, Np, is calculated with the IDL routine proton_dens.pro (see Sect. B.5).
By default, all routines will include proton rates in the calculation of the ion level balance. A keyword /NOPROT can be used to switch off the proton rates.
Within CHIANTI the assumption of Maxwellian electron and proton distributions is implicit through the storage of Maxwellian-averaged electron and proton collision strengths in the .SPLUPS and .PSPLUPS data files. To model emission from plasmas with general, non-Maxwellian particle distributions would require integrations of the original collision strengths with the new particle distributions, and this is outside of the scope of the CHIANTI database.
However, if the particle distributions can be expressed as a linear combination of Maxwellians of different temperatures, i.e.,
| (20) |
where the Maxwellian function fM(E, Ti) is given by
| (21) |
then such distributions can be modelled in a straightforward manner within the CHIANTI framework.
The generalized electron excitation rate coefficient for the transition j to k and for the particle distribution f of electron velocities is given by
|
where Ejk is the threshold energy for the transition, Qjk is the collision cross section, E (=mev2/2, me the electron mass) is the energy of the incoming electron, and Cjk(Ti) is the electron excitation rate coefficient for a Maxwellian particle distribution of temperature Ti (see, e.g., Burgess & Tully 1992).
The matrix Cjk replaces the usual Maxwellian-derived rate coefficient (Cjk) in the level balance equations solved by the CHIANTI software. The software routines for calculating emissivities and level populations have been modified to allow input of the non-Maxwellian parameters ai through the keyword SUM_MWL_COEFFS. The temperatures Ti are specified through the standard temperature input to the routines. The temperatures are assumed to apply to both proton and electron distributions.
This prescription for treating non-Maxwellian distributions is not compatible with the treatment of ionization and recombination since an equilibrium ionization balance described by a single temperature is required for these processes. In such cases the ionization and recombination processes described in Sect. are switched off when calculating the level populations if the ai coefficients are specified in CHIANTI.
See Sect. 9.8 for an example.
Within CHIANTI, we presently model the Photoexcitation and Stimulated Emission by assuming a a blackbody radiation field of temperature T*. The generalized photon rate coefficient in this case is:
| (25) |
where Aji is the radiative decay rate and W(R) is the radiation dilution factor which accounts for the weakening of the radiation field at distances R from the source center.
We also assume an uniform (no limb brightening/darkening) spherical source with radius R*:
| (26) |
where
| (27) |
It is important to remember the assumptions in our formalism for radiation processes. For a given ion, only very specific wavelengths in the radiation continuum will affect the ion's level balance. If there are significant deviations from a blackbody spectrum at any of these wavelengths (perhaps due to a deep absorption line) then CHIANTI does not model the ion entirely correctly.
Examples of specific uses of the extra radiation processes include modeling of coronal emission lines above the surface of the Sun and other cool stars when the coronal electron density falls to low enough values that electron collisions lose their potency.
For the Sun, photoexcitation is very important for the infrared coronal lines. Photoexcitation is also important for modelling nebular ions that are irradiated by a hot star, such as in planetary nebulae, symbiotic stars and Wolf-Rayet stars.
No additions or modifications to CHIANTI data files are required for photoexcitation and stimulated emission as their rates are entirely determined from the radiative decay rates, level separation energies, and statistical weights - information already contained in CHIANTI. It is only necessary to specify the radiation field temperature and the dilution factor. These are specified as inputs to the IDL procedures through the new keywords RPHOT and RADTEMP. RPHOT specifies r = [ R/(R*)], while RADTEMP gives the blackbody radiation temperature in K.
By default, photoexcitation and stimulated emission are not included in the level balance equations unless the keywords are set.
Version 4 of CHIANTI introduced the possibility of including photoexcitation and stimulated emission through an external blackbody radiation field into the level balance equations. With version 5 the software has been modified to allow an arbitrary, user-defined radiation field to be specified.
The user must create an IDL routine that calculates the energy density per unit wavelength, Ul, as a function of wavelength. The photoexcitation rate for a transition i® j is related to Ul by the expression
| (28) |
where W(R) is the dilution factor defined as in Young et al. (2003), Aji is the Einstein coefficient for spontaneous radiation from j to i, wj and wi are the statistical weights of levels j and i. or example, Ul for a blackbody of temperature, T, is given by
| (29) |
thus giving the photoexcitation rate for a blackbody of
| (30) |
For reference we note that the energy density is related to the specific intensity, Il, by
| (31) |
The user-defined radiation field function is implemented through a keyword
RADFUNC='user_function, a, b' in the CHIANTI IDL routines SHOW_POPS and
EMISS_CALC. The optional coefficients a and b can be used to modify the
radiation field, e.g., by specifying a relative velocity between the
radiation field and incident ion.
See Sect. 9.7 for an example.
In Version 5 of CHIANTI, we have included ionization and recombination into level populations. The CHIANTI model for ionization and recombination assumes that the plasma can be described under the Coronal Model Approximation, where the total population of the excited levels of an ion is negligible compared to the population of the ground level. In this case, recombination and ionization processes can be included in a relatively straightforward way, since they can be treated as a correction to the case where populations are calculated neglecting them.
To illustrate this method, we will consider the simplified atomic model of an ion X+q with abundance nq composed of the ground level and one excited level only. In case ionization and recombination contributions to level populations are negligible, the relative population of the upper level is obtained by solving the equation:
| (32) |
where Cg® i is the collisional excitation rate and Ai® g is the Einstein coefficient for spontaneous radiative decay. Collisional de-excitation is neglected in the coronal model approximation. In case ionization and recombination provide significant contribution, Equation 32 needs to be modified to include the rate coefficients for ionization (aion) and recombination (arec):
| (33) |
where nq-1,nq,nq+1 are the ion fractions for the ions Xq-1, Xq and Xq+1, respectively. The population of the excited level can then be expressed as
|
where the correction À is given by
|
The correction À is temperature sensitive and can be large when the collisional excitation rate is small or when the abundance of the ion q is much smaller than the abundances of the adjacent ions. The correction due to ionization and recombination can have significant effects on intensities of observed X-ray lines.
The only limitation of this approach lies in the breakdown of the coronal model approximation at high densities for a few ions. This occurs at densities above which metastable level populations begin to be non-negligible, compared to the ground state (cf. Landi et al. 2005).
The CHIANTI software has been modified to allow calculation of the correction factor À for the ions for which aion and arec are provided.
The inclusion of ionization and recombination effects in level population has required some more changes. New files have been created (.CILVL and .RECLVL) to store the ionization and recombination rates necessary for this process (see Sect. 5.1.1 for details).
A new routine (READ_IONREC.PRO) has been created to read these files and store their data in the input to the routine POP_SOLVER.PRO. This latter routine has been modified to include the correction to the level populations. In case the .CILVL and .RECLVL files are not available, a flag is set in the programs and these processes are ignored. The impact of this new process on the running time is negligible.
However, the introduction of ionization and recombination effects on level population has had a side effect. In previous versions of CHIANTI, the contribution to the intensity of spectral lines from levels below the ionization potential due to cascades from levels above the ionization potential was taken into account in the ``dielectronic'' .WGFA files, which included radiative transitions from the former, populated by cascades from the latter. For the ions for which the complete .RECLVL and .CILVL files are now available (Fe XVII to Fe XXIV), cascades from levels above ionization are now taken into account directly, so that the cascade contribution calculated by the ``dielectronic'' .WGFA files is not anymore necessary. To avoid double-counting this contribution, the transitions from levels below the ionization threshold in the ``dielectronic'' .WGFA files have been given a null wavelength, so they can be removed from the spectrum without having to change the way the ``dielectronic'' level population are handled.
An IDL routine to include the two photon continuum has been added to CHIANTI, while the free-bound and free-free continuum (bremsstrahlung) routines have been revised. See Young et. al. (2002) for more details.
Note that the output units of the continuum routines are by default 10-40 ergs sr-1 s-1 Å-1 per unit emission measure òNe NH dh.
On the other hand, the SolarSoft routine CONFLX outputs a continuum in photons s-1 Å-1 assuming an emission measure òNe2 dh = 1050.
The two-photon continuum is calculated with two_photon.pro.
Transitions in hydrogen-sequence ions
The first excited level (2s 2S1/2) of the hydrogen iso-electronic sequence ions can decay only by means of forbidden magnetic dipole and two-photon transitions. The importance of the competing magnetic dipole transition increases with Z but for nickel (Z=28), the two-photon transition rate is roughly 5 times that of the magnetic dipole rate.
The spectral emissivity (erg cm-3 s-1 sr-1 Å-1) for optically-thin two-photon emission at wavelength l is given by:
| (36) |
where Aj,i (sec-1) is the Einstein spontaneous emission coefficient (A value); Nj(X+m) is the number density of the level j of the ion X+m; f is the spectral distribution function; and l0 is the wavelength corresponding to the energy difference between the excited and ground level.
Two-photon continuum transitions in helium-sequence ions
For the helium iso-electronic sequence, the second excited level (1s2s 1S0) decays through a forbidden magnetic dipole and two-photon transitions.
The bremsstrahlung emission is calculated with freefree.pro. This routine has been rewritten ex-novo. It now includes the Itoh et al. (2000) and Sutherland (1998) gaunt factors.
Itoh et al. (2000) have provided an analytical fitting formula for the relativistic thermal bremsstrahlung gaunt factors, and this is now added to CHIANTI. The fitting formula is valid for the ranges 6.0 £ log T £ 8.5 and -4.0 £ log (hc/klT) £ 1.0. For temperatures below log T=6.0 we retain the non-relativistic Gaunt factors of Sutherland (1998) for computing the continuum. The condition log (hc/klT) £ 1.0 results in some of the low wavelength points being inaccurately represented by the Itoh et al. fitting formula. For these wavelengths the Gaunt factors of Sutherland (1998) are used to compute the continuum level.
The relativistic free-free continuum is almost identical to the non-relativistic continuum at low temperatures. At T=1×108 K (the maximum temperature permitted by the ion balance calculations contained in CHIANTI) the relativistic continuum is around 1% higher near the peak of the distribution.
The free-bound continuum emission is calculated with freebound.pro. This routine has been rewritten. The new routine uses the the Karzas and Latter (1961) approximation to the photoionization cross-sections and calculates free-bound gaunt factors for levels n=1-6. Additional data files have been created for this purpose. For example, free-bound radiation produced by recombination of an electron onto C IV to produce C III will use the data in the c\_3.fblvl file.
In what follows we review the main points about the new software. We hope you find it useful and enjoy using it !
For an user-friendly, widget-based approach the best option is to use CH_SS:
IDL >ch_ss
This widget allows the user to calculate synthetic spectra in two basic steps. Basically, you follow the various widgets from top left to lower right to set the desired parameters. First calculate the line intensities. These values can be saved for later use. Next, specify further parameters such as the elemental abundances and instrumental spectral resolution and then calculate and plot the spectrum. These values can also be saved for later use. The HELP buttons in the widget provide short descriptions of the required information. More details are given below.
Alternatively, for e.g. background jobs, the
routine CH_SYNTHETIC can be used.
ch_synthetic.pro
calculates line intensities assuming
constant pressure or density (or a model T,N),
without the abundance factor.
One of the reasons why element abundances are not
included in the line intensities calculation is so that it is easier
for the user to see how modifying abundances affects their spectra in
e.g. ch_ss.pro.
The calling sequence is:
IDL> ch_synthetic, wmin, wmax, output=output, err_msg=err_msg, msg=msg, $
pressure=pressure, density=density, $
model_file=model_file, all=all,sngl_ion=sngl_ion, $
photons=photons, masterlist=masterlist, $
save_file=save_file , verbose=verbose,$
logt_isothermal=logt_isothermal, logem_isothermal=logem_isothermal,$
goft=goft, ioneq_name=ioneq_name, dem_name=dem_name, $
noprot=noprot, rphot=rphot, radtemp=radtemp, progress=progress
The routine has many KEYWORDS (see Sect. for a full list) A series of parameters must be set:
Wmin, Wmax: minimum maximum of the desired wavelength range in Angstroms
Pressure: pressure in emitting region (Pe, cm^-3 K).
Only a single value is accepted, and the calculation is
performed at constant pressure.
Density: density in emitting region (Ne, cm^-3).
Only a single value is accepted, and the calculation is
performed at constant density, unless LOGT_ISOTHERMAL is
defined. In this case, DENSITY can be an array of values, but
has to have the same number of elements as LOGT_ISOTHERMAL.
model_file Full path of the (Te,Ne) file if defined.
This file should have two columns, one with the Te (K)
values, and one with the Ne (cm^-3) values. If these
values are not sorted in ascending order of Te, the
routine does sort them.
The line intensities are calculated either in the isothermal approximation, in which case the following has to be defined:
LOGT_ISOTHERMAL: Array of logarithmic temperatures. LOGEM_ISOTHERMAL: Array of logarithmic emission measures (0 by default).
or by folding the G(T) with a differential emission measure DEM contained in the file specified by DEM_NAME. The program will prompt the user to select one if not defined.
Example:
IDL> ch_synthetic, 10,20., output=str , pressure=1.e+15,$
ioneq_name=concat_dir(concat_dir(!xuvtop,'ioneq'),'mazzotta_etal.ioneq'),$
dem_name=concat_dir(concat_dir(!xuvtop,'dem'),'flare.dem'),$
/photons, /noprot, /all, sngl_ion=['fe_17','fe_18']
Creates an output structure str that contains the line intensities of only Fe XVII and Fe XVIII in the 10-20 Å range calculated at constant pressure of 1015, with the ionization balance in mazzotta_etal.ioneq and the DEM values in flare.dem in the standard CHIANTI distribution (if not supplied these files can be selected with a widget). Line intensities are in photons cm-2 s-1 sr-1 (KEYWORD photons), the proton rates are not included (KEYWORD noprot), and all the lines in the database (KEYWORD all) are included (also the lines with only theoretical energy levels).
You can see the contents of the structure with e.g.
IDL> help, str,/st IDL> help, str.lines[0],/stThe last command shows the first structure associated with the first spectral line.
The CHIANTI line intensities structure can be saved and later restored from the command line in various ways. We suggest two:
IDL> savegen, file='ch_int_10_20_fe.genx', struct=str IDL> restgen, file='ch_int_10_20_fe.genx', struct=str
to save and restore the IDL structure str in the file ch_int_10_20_fe.genx.
Please note that we discourage the use of e.g.:
IDL> save, file='output.save', output IDL> restore, file='output.save'since IDL save files generated with later versions of IDL are usually not readable with earlier versions.
IDL> ch_write_fits, str, 'output.fits' IDL> ch_read_fits,'output.fits', str
to save and restore the IDL structure str in the FITS file output.fits. Aside from an introductory HEADER, the contents of the IDL structure are converted into two binary tables. Extensive comments are added.
In either case, the structure saved in the .genx and .fits files can be restored via CH_SS to later create a spectrum.
For an user-friendly approach the best option is to use CH_SS:
IDL >ch_ss
Alternatively, if you have already calculated a line intensity structure (as shown above), you can use CH_LINE_LIST. This program creates a latex or an ascii file of predicted spectral line intensities and wavelengths corresponding to selected parameters.
The routine has many KEYWORDS. Please read the header or read Sect. for details. The calling sequence is:
IDL> ch_line_list, transitions, outname, latex=latex, ascii=ascii, $
wmin=wmin,wmax=wmax,$
SPECTRUM=SPECTRUM, abundfile=abundfile, min_abund=min_abund, $
minI=minI,photons=photons,kev=kev, $
all=all,no_sort=no_sort, sngl_ion=sngl_ion
Example:
IDL> restgen, file='ch_int_10_20_fe.genx', struct=tran
IDL> ch_line_list, tran, 'ch_line_list.tex', /latex,$
abundfile=concat_dir(concat_dir(!xuvtop,'abundance'),'cosmic.abund'),$
mini=1e13
This creates a latex file ch_line_list.tex where only lines with an intensity greater than 1013 (KEYWORD mini) are included, and the allen.abund file in the standard CHIANTI distribution is used (if not supplied it can be selected with a widget).
Then, you have to latex the file three times, and optionally xdvi it:
unix> latex ch_line_list unix> latex ch_line_list unix> latex ch_line_list unix> xdvi ch_line_list
If you do not have it already, you will need the package longtable.sty that is distributed as part of ftp://cam.ctan.org/tex-archive/macros/latex/required/tools.tar.gz
You will obtain a table that looks like:
| Line List * tab:obs | ||||
| Ion | l (Å) | Transition | Tmax | Int |
|
| ||||
| Ion | l (Å) | Transition | Tmax | Int |
| Fe XVII | 12.1227 | 2p6 1S0 - 2p5 4d 1P1 | 6.9 | 1.11e+14 |
| Fe XVII | 12.2639 | 2p6 1S0 - 2p5 4d 3D1 | 6.9 | 9.81e+13 |
| Fe XVII | 13.8231 | 2p6 1S0 - 2s 2p6 3p 1P1 | 6.9 | 6.25e+13 |
| Fe XVIII | 13.9540 | 2s2 2p5 2P3/2 - 2p4 (1S) 3d 2D5/2 | 6.9 | 2.06e+13 |
| Fe XVIII | 14.1519 | 2s2 2p5 2P3/2 - 2p4 (1D) 3d 2D3/2 | 6.9 | 1.35e+13 |
Alternatively, you can also create a latex file with a list of line identifications and intensities using the wrapper routine LATEX_WVL_DEM:
IDL > latex_wvl_dem,100.,200., pressure=1.e+15,mini=1.However, latex_wvl_dem calls ch_synthetic and ch_line_list, and if you want to modify some of the parameters of ch_line_list (e.g. the minimum intensity) you will have to redo the calculation which will take some time. Windows will pop up so that you can select the abundance, the ionization equilibrium and the differential emission measure files. This will create by default a file linelist.tex in the user's working directory, by default.
To create an ascii file with the line details you can follow a similar approach, i.e.:
IDL> restgen, file='ch_int_10_20_fe.genx', struct=tran
IDL> ch_line_list, tran, 'ch_line_list.ascii', /ascii,$
abundfile=concat_dir(concat_dir(!xuvtop,'abundance'),'allen.abund'),$
mini=1e13
Alternatively, you can also use the wrapper routine
IDL > ascii_wvl_dem,100.,200.,pressure=1.e+15,mini=1.However, ascii_wvl_dem calls ch_synthetic and ch_line_list, and if you want to modify some of the parameters of ch_line_list (e.g. the minimum intensity) you will have to redo the calculation which will take some time.
For example, to calculate the free-free, free-bound and two-photon continuum at a temperature of 5 × 106 K, for wavelengths at 1 Å intervals between 1 and 50 Å:
freefree,5.e+6,findgen(50)+1.,ff freebound,5.e+6,findgen(50)+1.,fb two_photon,5.e+6,findgen(50)+1.,tp window,0 plot,findgen(50)+1.,ff+fb+tp,xtit='Wavelength (A)' oplot, findgen(50)+1.,ff,line=2 oplot, findgen(50)+1.,fb,line=3 oplot, findgen(50)+1.,tp,line=4
|
Note that the intensities are in units of 10-40 ergs cm3 s-1 sr-1 Å-1 per unit emission measure òNH Ne dh (cm-5).
If DEM values are passed to the routines (via the keyword DEM_INT), it is assumed that they are given as NH Ne dh/dT . The units are 10-40 ergs cm-2 s-1 sr-1 Å-1 in this case.
The structure created by CH_SYNTHETIC can be restored via CH_SS to create a spectrum. Alternatively, it can be used as an input to the program MAKE_CHIANTI_SPEC. This program creates the CHIANTI SPECTRUM structure (read Sect. E.2 for details), an OUTPUT structure similar to the structure created by CH_SYNTHETIC, with some additional tags. The calling sequence is:
IDL> make_chianti_spec, TRANSITIONS, LAMBDA, OUTPUT, BIN_SIZE=BIN_SIZE, $
INSTR_FWHM=INSTR_FWHM, BINSIZE=BINSIZE, $
WRANGE=WRANGE, ALL=ALL, continuum=continuum, $
ABUND_NAME=ABUND_NAME, MIN_ABUND=MIN_ABUND, $
photons=photons, file_effarea=file_effarea, $
err_msg=err_msg, verbose=verbose
The routine has many keywords and options. Please read Sect. for details.
IDL> restgen, file='ch_int_10_20_fe.genx', struct=tran
IDL> make_chianti_spec, tran, lambda, struct,/CONTINUUM, $
BIN_SIZE=0.01, instr_fwhm=0.1, WRANGE=[10.,19.],$
abund_name=concat_dir(concat_dir(!xuvtop,'abundance'),'cosmic.abund')
|
Some Caveats:
You may find that the calculation is slow. This is usually due to the continuum calculation. In general, it is advisable not to calculate spectra over large wavelength ranges. In any case you can speed up the continuum calculation by reducing the numbers of elements, using the KEYWORD MIN_ABUND.
To see the contents of the structure:
IDL> help, struct,/st IDL> help, struct.lines[0],/st
While to show the spectrum and the main contributing lines:
IDL> window,0 & plot,struct.lambda,struct.spectrum
for i=0,n_elements(struct.lines) -1 do $
if struct.lines[i].peak gt 7e5 then $
xyouts, struct.lines[i].wvl, struct.lines[i].peak, struct.lines[i].snote
It may be useful to save the SPECTRUM structure, that can be later inspected with the widget CH_SS:
IDL> savegen, file='ch_spectrum_10_20_fe.genx', struct=struct IDL> ch_write_fits, struct, 'ch_spectrum_10_20_fe.fits'
Alternatively, the wrapper routine SYNTHETIC (see Fig 1) can also be used to calculate CHIANTI line intensities. For example:
IDL > synthetic, 150., 200., 1., pressure=1.e+15, wvl, spectrum, list_wvl, list_ident
will create a synthetic spectrum with a resolution of 1 Å between 150 and 200 Å for a specified set of abundances and differential emission measure at a constant pressure of 1.e+15 (Ne T cm-3 K). The output arrays wvl, spectrum contain the wavelengths and the intensities (in erg cm-2 s-1 sr-1 Å-1 by default). The output arrays ist_wvl, list_ident contain the list of wavelengths and descriptions of the lines that made up the spectrum.
Windows will pop up so that the user can select the abundance file, the ionization equilibrium and the differential emission measure. A spectrum is created by convolving with a Gaussian profile with a FWHM of 1 Å. If the /CONTINUUM keyword had been set, then the continuum would also have been calculated and added to the spectrum. To plot the spectrum and interactively identify lines:
IDL > synthetic_plot, wvl, spectrum, list_wvl, list_ident, 2.
by clicking the left mouse button, a list of predicted lines within 2 Å of the selected wavelength will be printed out along with their predicted intensity. Clicking the right mouse button will exit the procedure.
For an user-friendly approach the best option is to use CH_SS:
IDL >ch_ss
Alternatively:
IDL > isothermal, 150., 200., 1., [1.e6], wvl, spectrum,$
list_wvl, list_ident, edensity=1.e9,$
ioneq_name=!xuvtop+'/ioneq/mazzotta_etal.ioneq',$
abund_name=!xuvtop+'/abundance/cosmic.abund'
IDL> synthetic_plot, wvl, spectrum, list_wvl, list_ident, 1.
calculates an isothermal synthetic spectrum with a resolution of 1 Å between 100 and 200 Å for a specified set of abundances and differential emission measure at a constant density Ne = 109 cm-3. The output arrays wvl, spectrum contain the wavelengths and the intensities (in erg cm-2 s-1 sr-1 Å-1 by default). The output arrays ist_wvl, list_ident contain the list of wavelengths and descriptions of the lines that made up the spectrum. synthetic_plot can then be used to view the spectrum.
Note: isothermal now is a wrapper routine that calls ch_synthetic . It has particular features. Please read the header documentation.
|
CH_SS is an user-friendly multi-purpose (see Fig 1) widget that allows the calculation of line intensities (calling CH_SYNTHETIC) and of a synthetic spectrum (calling MAKE_CHIANTI_SPEC) by merging line intensities and continua. The parameters can be interactively set, and the results visually inspected. Line intensities can be saved and restored in various ways. The results can also be stored in various ways, ranging from output plots to tables of line details (using CH_LINE_LIST) or save files.
CH_SS replaces the CHIANTI_SS procedure. The calling sequence is:
IDL> ch_ss, font=font
Note that if the widget appears too large you can change the font. The widget is organised into four Sections:
This can be done in two ways:
1-Restore a save file with the CHIANTI line intensities already calculated. This is done with the RESTORE button. .genx and .fits files can be restored.
2-Calculate CHIANTI line intensities with a call to CH_SYNTHETIC.
In this case, A series of parameters must be set:
If set to no, then it is possible to select a list of ions with a widget
If set to yes, also the lines that do not have corresponding observed energy levels are included. In this case, the wavelengths are calculated from the theoretical energy levels, and might not be very accurate.
If set to yes, then the user is requested to enter one or more temperatures (as logarithmic values - Log T ) and correspondent column emission measures EM logarithmic values. NOTE: if more than one value is entered, then the sequence must be separated by commas (e.g.: 6.0, 6.5, 7.), and both Log T and Log EM must have the same number of values
Once all the parameters have been defined, the user should click on the "Calculate intensities" button to start the calculation (which calls CH_SYNTHETIC).
Once the calculation is finished, an IDL structure is loaded into memory. It is then possible to save it for later use by clicking on the "SAVE" button.
Once the IDL structure with the line intensities is in the memory, it is then possible to calculate and plot a spectrum (SECTION 2).
This section controls the parameters that are needed to fold the line intensities and the continua into a synthetic spectrum. These parameters are used by MAKE_CHIANTI_SPEC.
Before this is done, a set of line intensities MUST be in the program memory. This is done either by calculating the intensities or by restoring a save file with previously calculated values (SECTION 1). Setting the parameters:
Also note that to have the correct output units (counts s-1 bin-1) the appropriately scaled DEM (or EM) values must be provided.
After this, by clicking on the "Calculate and plot" button the program calculates and plots the synthetic spectrum.
Once the spectrum is displayed, it is then possible to view the details of the lines by clicking with the mouse in the plot window, and to perform various operations by clicking on the buttons in SECTION 3
This Section allows the user to select a few parameters for the plotting, and to create different types of OUTPUT.
NOTE that only the line details and portion of the spectrum shown will be output.
Finally, SECTION 4 is a text information window, where various messages are printed.
Clicking the cursor on any part of the displayed spectrum will give a listing of the lines within a range of Angtroms of that wavelength. Text information on the lines is printed.
The radiation function used in Sect. 2.2 of the v.5 CHIANTI paper for studying the O VI Doppler dimming problem is defined below.
FUNCTION o6_lines, lambda, a ; Vernazza & Reeves (1978) give the quiet Sun O VI 1032 flux to be ; 305.28 erg/cm2/sr/s. The 1038 line is blended with C II, so I take ; it to be half of the 1032 line. I assume the FWHMs of the lines are ; 0.2 angstroms. ; ; A Velocity (km/s) relative to emitting ions of the structure emitting ; the radiation field. A positive velocity implies a redshift. IF n_elements(a) EQ 0 THEN a=0. siz=size(lambda) spectrum=dblarr(siz[1],siz[2]) cc=2.998d5 ; speed of light, km/s p1=305.28/0.2 p2=p1/2. c1=1031.914 c1=c1+ (a/cc * c1) ; c2=1037.615 c2=c2+ (a/cc * c2) w=0.2/2.35 i=where(abs(lambda-c1) LE 6.*w) IF i[0] NE -1 THEN spectrum[i]=p1*exp(-(lambda[i]-c1)^2/2./w^2)*4.*!pi/2.998d10 i=where(abs(lambda-c2) LE 6.*w) IF i[0] NE -1 THEN spectrum[i]=spectrum[i]+p2*exp(-(lambda[i]-c2)^2/2./w^2)*4.*! pi/2.998d10 return,spectrum END
This function can then be used in show_pops or emiss_calc as follows:
IDL> show_pops,8,6,radfunc='o6_lines, 20',rphot=1.1
where 'o6_lines, 20' indicates that the velocity A is set to 20 km/s. A zero velocity can be set simply by using radfunc='o6_lines'. RPHOT specifies the distance from the centre of the star in stellar radius units.
The effects of many different velocities can be studied by doing, e.g.,
v=findgen(11)*10. for i=0,10 do begin radfunc_string='o6_lines, '+trim(v[i]) show_pops,8,6,radfunc=radfunc_string,rphot=1.1 endfor
Up to 2 input parameters are allowed for radfunc and are specified by, e.g., radfunc='radfunc, a, b'.
Currently the RADFUNC= keyword is only available for the routines show_pops and emiss_calc.
Another example of radfunc is a blackbody
function udens_bb, lambda t=6d3 ; temperature of Sun, 6000 K ee=1.439d8/lambda/t result=8.*!pi*1.986d-8/lambda^2*(1d8^3)/lambda^3/((exp(ee)-1)) return,result END
which is specified to show_pops as
IDL> show_pops,8,6,radfunc='udens_bb',rphot=1.1
The user should verify that this gives the same results as using the standard CHIANTI inputs
IDL> show_pops,8,6,radtemp=6000.,rphot=1.1
The following commands reproduce the numbers in Table 3 of the v.5 CHIANTI paper (Landi et al. 2005). Basically, we want to study the effects of non-Maxwellian distributions on two key line ratios of O VI, involving the strong lines at 1032 Å, 173 Å and 150 Å. We consider a distribution comprised of two Maxwellians at log T=5.5 and log T=6.0, with the coefficients [a1,a2]=[0.75,0.25].
IDL> em=emiss_calc(8,6,temp=[5.5,6.0],sum_mwl_coeff=[0.75,0.25],dens=9.0)
IDL> em150=em[40].em
IDL> em173=em[43].em
IDL> em1032=em[77].em
IDL> print,em150/em1032,em173/em1032
0.030072876
0.043500302
The effects of non-Maxwellians on level populations can be demonstrated with the show_pops routine, e.g.,
IDL> show_pops,8,6,lev=-8 Log10 density: 10.0 Log10 temperature: 5.5 1 1s2.2s 2S1/2 1.00e-00 2 1s2.2p 2P1/2 2.30e-07 3 1s2.2p 2P3/2 4.52e-07 4 1s2.3s 2S1/2 5.07e-11 5 1s2.3p 2P1/2 7.26e-12 6 1s2.3p 2P3/2 1.44e-11 7 1s2.3d 2D3/2 5.30e-12 8 1s2.3d 2D5/2 7.96e-12 IDL> show_pops,8,6,lev=-8,temp=[5.5,6.0],sum_mwl_coeffs=[0.75,0.25] Log10 density: 10.0 Using a sum of Maxwellians 1 1s2.2s 2S1/2 1.00e-00 2 1s2.2p 2P1/2 2.26e-07 3 1s2.2p 2P3/2 4.43e-07 4 1s2.3s 2S1/2 8.93e-11 5 1s2.3p 2P1/2 1.60e-11 6 1s2.3p 2P3/2 3.16e-11 7 1s2.3d 2D3/2 1.13e-11 8 1s2.3d 2D5/2 1.69e-11
where it can be seen that the n=3 level populations are enhanced by factors 2 by the high temperature component to the distribution.
To plot the populations of the first 4 levels of Si III as a function of density at a temperature of 3 x 104 K:
IDL > plot_populations,'si_3',3.e+4,4
|
Optionally, output files can be created.
Alternatively, SHOW_POPS can be used. This routine has a large range of features implemented via keywords.
To assess the contributions of the different physical processes to the population of a specified level within an ion, use POP_PROCESSES.
IDL> pop_processes,'fe_13',lev=4
Level: 3s2.3p2 1D2
Log10 Temperature: 6.2
Log10 Density: 10.0
Population leaving level 4
rad. decay: 1.60e+01 42.50%
e de-exc: 3.29e-01 0.87%
e exc: 2.10e+01 55.88%
p de-exc: 2.44e-01 0.65%
p exc: 3.75e-02 0.10%
stim. emiss: 0.00e+00 0.00%
photoexc: 0.00e+00 0.00%
--------
TOTAL 3.77e+01
Population entering level 4
rad. decay: 3.50e+01 92.98%
e de-exc: 3.38e-02 0.09%
e exc: 1.47e+00 3.92%
p de-exc: 2.81e-03 0.01%
p exc: 1.13e+00 3.01%
stim. emiss: 0.00e+00 0.00%
photoexc: 0.00e+00 0.00%
--------
TOTAL 3.77e+01
which shows that the level population is dominated by electron excitation and cascading into the level, and by radiative decay out of the level.
Note that the rates for each physical process are multiplied by the population of originating level (this results in the totals for entering and leaving the level to balance).
If you want to list the lines within one ion around some wavelengths, you can use WHICH_LINE. For example,
IDL> which_line,'o_6',1032
Wavelength i j Lower level Upper level A-value
* 1031.914 1 3 1s2.2s 2S1/2 - 1s2.2p 2P3/2 4.28e+08
1037.615 1 2 1s2.2s 2S1/2 - 1s2.2p 2P1/2 4.21e+08
Prints a list of atomic transitions and wavelengths for lines from O VI within 1% of the input wavelength (1032 Å).
If you are interested to see the differences between the various ionisation equilibria for e.g. Mg, you can use:
IDL > plot_ioneq,'Mg'
You will be able to select one of the files, and optionally create a postscript file of the plot.
|
If you are only interested in e.g. the Mg VIII, Mg IX, Mg X ions, you can type:
IDL > plot_ioneq,'Mg', ion=[8,10]
If, instead, you are interested in obtaining the temperature at the maximum ionisation fraction for e.g. Mg X, you can use:
IDL > print, max_temp ('Mg X')
You will be asked to select an ionisation equilibrium file.
Spectroscopic diagnostic line ratios in the UV wavelength range have been used extensively to determine the electron density and temperature in the solar atmosphere (cf Dere and Mason, 1981, Gabriel and Mason, 1982, Mason, 1991, Mason and Monsignori Fossi, 1994). The theoretical intensity ratios from individual ion species provide a measurement of electron density which is independent of any assumptions about the volume of the emitting region. This is of particular importance in the transition region and coronal structures. The electron density (which determines the electron pressure) is an essential parameter in the study of energy transfer mechanisms. The routines that can be used are described below.
DENS_PLOTTER and TEMP_PLOTTER are high-level widgets for the analysis of density- and temperature-sensitive ratios of lines from the same ion. They allow inclusion of proton rates and photoexcitation. The calling sequence is simple:
IDL > dens_plotter,'o_5'
to study O V.
IDL > temp_plotter,'c_4'
to study C IV.
Alternatively, you can use the command-line routines, DENSITY_RATIOS and TEMPERATURE_RATIOS. They also allow inclusion of proton rates and photoexcitation via KEYWORDS.
The routine DENSITY_RATIOS plots the variation of line intensities with electron density, allowing density diagnostics to be studied. As an example, we can look for density sensitive line ratios of O V in the 1000 to 1500 Å wavelength region for densities between 108 and 1013 cm-3:
IDL > density_ratios,'o_5',1000.,1500.,8.,13.,den,rat,desc
two windows will open and plot the relative intensities of a few O V lines. To choose the ratio of 1371.294 to 1218.393 Å line, select first the 1371.294 Å line. Another widget will appear to select the denominator. Select the 1218.393 Å line. This will chose the ratio of 1371.294 to 1218.393 which will be plotted in a new window. Values of the density and intensity ratio will be put into the variables den and rat and desc will contain a descriptive string.
IDL > print, desc IDL > CHIANTI V. 4.0 O V 1371.2939 (Å)/1218.3929 (Å) T = 2.51e+05 (K)
The DENSITY_RATIOS procedure also allows to calculate the ratio at user-defined value of constant temperature. Blends are accounted for via a selection of lines.
To calculate temperature sensitive line ratios of C IV for lines between 100 and 1600 Å for temperatures between 104 and 106 K:
IDL > temperature_ratios,'c_4',100.,1600.,4.,6.,temp,rat,desc
As with density_ratios, a widget will appear that will allow you to select the numerator. Select the 384.175 and 384.190 Å lines as these will typically be blended in most spectrographs. Select the 1550.775 Å line for the denominator. The ratio of (384.175 + 384.190 Å) to the 1550.775 Å line as a function of temperature will be plotted and stored in the variables rat and temp, respectively. The TEMPERATURE_RATIOS procedure also allows to calculate the ratio at user-defined values of either constant pressure or constant density.
IDL > print, desc IDL > CHIANTI V. 4.0 C IV 384.1750+384.1900 (Å)/1550.7750 (Å) Ne = 1.00e+10 (cm!e-3!n)
The IDL procedure which calculates line intensity ratios as a function of electron density is called CHIANTI_NE. Another IDL procedure to calculate ratios sensitive to electron temperature is called CHIANTI_TE. For example,
IDL > chianti_te
Or
IDL > chianti_ne
User interactions with the main widget setup the wavelength range and other parameters that are described individually below. On the left hand side are controls for wavelength and electron density or temperature selection and on the right hand side for ion selection.
Ion selection
Select first the element and then the ion stage using the pull-down menus. Only those elements and ions currently available in the CHIANTI database are displayed for selection.
Wavelength ranges
There are up to 4 wavelength ranges that can be defined in order to restrict the calculation (and the number of lines). At least one should be defined. Default is to calculate all lines from 1 to 1700 Å.
Electron Density/Temperature Range
For CHIANTI_NE, select the electron number density range (Log10Ne) over which the intensity ratios are calculated. Default values are 106 to 1014 cm-3. The intensity ratios are calculated at constant temperature corresponding to the peak ionic abundance Tmax, unless the value of the temperature is typed in.
For CHIANTI_TE, select the electron temperature (Log10Te) over which the intensity ratios are calculated. Default values are 104 to 108 K. The intensity ratios are calculated at a constant electron number density corresponding to 108 cm-3, unless a different value is typed in.
minimum intensity ratio
The relative intensity of all the lines found in the wavelength range is calculated. Only the lines that have an intensity (relative to the brighter one) greater than 0.0001 (by default) are selected and displayed.
Units for the ratio plot
The ratios can either be calulated from the relative intensities in ergs (default) or photons.
Controlling the procedure
The action of both CHIANTI_NE and CHIANTI_TE is controlled via the buttons in the central panel of the display. From left to right these are:
QUIT - click on this to exit from the program, all plot windows are also deleted.
CALCULATE LINE INTENSITIES - using the wavelength ranges as defined in the widgets above. Two plots will apear in the window - on the left the Ni*A/Ne and on the right the intensity ratios, where Ni is the level population and A is the radiative transition probability (s-1). A list of spectral lines in the given wavelength range for that ion is displayed in the message window. The reference index is in the first column, then the wavelength, intensity and transition.
PLOT RATIO - prompts for and then plots specific line intensity ratios, using line indices available from the list. The ratios within a particular ion can be stored for later use using the SAVE button. To allow for blended lines in the observed spectra, multiple line indices can be given for the numerator and denominator. The format is fairly flexible but the nominator and denominator specification must be separated by a '/'. Otherwise the line indices can be separated by spaces or commas. The ratio values can be plotted either with a linear or a log scale.
HARDCOPY - the menu under this button will allow a variety of hardcopy plots (ratio plots or intensity plots) and the line details (+refs), which gives a record of the input. A line ratio has to be defined.
SAVE - it is sometimes useful to save the plotted line intensity ratios to study several different ions. You will be asked to enter file name to store ratio data. A line ratio has to be defined.
In the CHIANTI_NE case, a .CH_NE will be appended. An IDL structure called NE_RATIO will be saved. It has the TAGS: DENSITY,RATIO, TEMPERATURE, UNITS, COMMENT, DESC. The first two have the arrays of the densities and ratios, TEMPERATURE has the value of the constant temperature used, while the last three have a description of the units used, how the calculation was performed, and a description of the lines used to defined the ratio.
In the CHIANTI_TE case, a .CH_TE will be appended. An IDL structure called TE_RATIO will be saved. It has the TAGS: TEMP, RATIO, DENSITY, UNITS, COMMENT, DESC. The first two have the arrays of the temperatures and ratios, DENSITY has the value of the constant density used, while the last three have a description of the units used, how the calculation was performed, and a description of the lines used to defined the ratio.
Please note that previous versions of the above routines did not create the TEMPERATURE (DENSITY), UNITS, COMMENT tags.
The save file can be restored and replotted outside of CHIANTI_NE and CHIANTI_TE using the procedures PLOT_CHIANTI_NE and PLOT_CHIANTI_TE respectively, or used within user-defined procedures.
DELETE PLOT WINDOWS - to clear the ratio plots from the screen.
The ratio values stored in the save files created with the CHIANTI_NE and CHIANTI_TE routines can be replotted outside of CHIANTI_NE and CHIANTI_TE using the procedures PLOT_CHIANTI_NE and PLOT_CHIANTI_TE respectively. For example,
IDL > plot_chianti_te
Or
IDL > plot_chianti_ne
If no files are specified, a widget allows you to select any '*.CH_NE' or '*.CH_TE' files.
A LOG keyword allows the user to have the plot in a log scale.
It is also now possible to interactively modify the X and Y ranges and to create a postscript file. Users can modify these routines to e.g. over-plot observed data points.
Note: If you are interested in determining an isothermal temperature by using the ratio of lines emitted by different ions (and/or elements), then a possible way is to first calculte the contribution functions of the lines you are interested, and then calculate their ratio. Note, however, that such determinations can be very inaccurate, since they depend on the ionisation equilibrium chosen (and eventually on the element abundance).
To calculate the contribution function ( erg cm3 s-1 sr-1 by default) vs. temperature at a specified abundance, ionization equilibrium and pressure or density for the Fe XXIV line at 255.1 Å:
IDL > gofnt,'fe_10',170.,180.,temperature,g,desc
temperature, g are the arrays with the temperatures and the G(T) values. It is possible to calculate the G(T) at either constant electron density or pressure, via the KEYWORDS DENSITY or PRESSURE.
The KEYWORDS ABUND_NAME, IONEQ_NAME allow to run the routine in the background, giving names of the abundance and ionization fractions files.
The routine GOFNT allows the user to select a number of lines. If this is done, then the total sum of the G(T)'s of the selected lines is returned and plotted.
Optional outputs can be created. The default units are erg cm3 s-1 sr-1, unless the KEYWORD /PHOTONS is set, in which case the units are photons cm3 s-1 sr-1.
A procedure ('RAD_LOSS') calculates the total radiative loss rate as a function of temperature for specified set of abundances and/or ionization equilibria:
IDL > rad_loss,temperature,loss_rate
|
Given a set of observed spectral intensities, the problem is to invert a system of integral equations like the previous one. The procedure CHIANTI_DEM solves the system and calculates the DEM(T).
The inversion problem itself is not simple and requires some assumptions about the nature of the solution. A series of workshops was sponsored in 1990/91 to study differential emission measure techniques (Harrison and Thompson, 1992). It was found that most codes eventually gave consistent results, but that the DEM derived depends rather critically on the methods used to constrain the solution and the errors in the observed intensities and atomic data.
It is advisable to select a number of well resolved, unblended lines which are not density sensitive, emitted by various elements over a wide temperature interval. Appropriate values of the pressure (or density) and the elemental abundances must be chosen according to the region of the Sun being observed. The pressure value can be obtained once the values of the temperature and the density are estimated. To estimate the electron density the procedure CHIANTI_NE can be used. The temperature can be estimated for example using the procedure CHIANTI_TE.
The contribution functions C (T,lij,Ne) can be calculated using CHIANTI_DEM either at constant pressure or at constant electron density. It is also possible to vary the elemental abundances before starting the fit to deduce the DEM.
Many papers have been written on solar elemental abundances. See e.g. Meyer (1993) Widing and Feldman (1992), Mason (1992, 1995). A possible approach in determining elemental abundances is to use the detailed shape of the DEM distribution for ions from the same element and apply an iterative procedure to normalize the curves for different elements (e.g. Fludra and Shmelz 1995, Del Zanna et al. 1995).
The CHIANTI_DEM procedure
The main IDL routine which has been written to perform a differential emission measure analysis of EUV spectra using the CHIANTI atomic database is CHIANTI_DEM. Other procedures required to run CHIANTI_DEM are GET_CONTRIBUTIONS , DEM_FIT, ZION2SPECTROSCOPIC and Z2ELEMENT. The resulting DEM may then be used by other procedures to calculate a synthetic spectrum.
This package of routines will be replaced in the future by new more versatile versions.
The main inputs required by CHIANTI_DEM are :
1) the observed wavelength lobs [Å].
2) The observed flux Iobs in ergs cm-2 s-1 sr-1.
3) The corresponding error sobs on the flux in ergs cm-2 s-1 sr-1.
4) The value of dl [Å]. All the theoretical lines that may have contributed to the observed lines, i.e. that have a theoretical wavelength ltheo in a lobs ±dl range will be searched for. This value should correspond to the spectral resolution of the instrument at that wavelength.
5) The identification, written as a string of up to 20 characters. For example:
171.114 4811.0 1443.0 0.25 Fe IX
174.604 4005.0 1202.0 0.25 Fe X
180.448 3877.0 1163.0 0.25 Fe XI bl Fe X
195.149 3443.0 1033.0 0.25 Fe XII
Once the file with the observed fluxes is read, another IDL procedure, GET_CONTRIBUTIONS, is called by CHIANTI_DEM in order to calculate the contribution functions C(T,lij,Ne) at the given constant density or pressure.
GET_CONTRIBUTIONS searches the CHIANTI database for all the theoretical lines that may have contributed to the observed lines, i.e. that have a theoretical wavelength ltheo in a lobs ±dl interval.
Then, for each theoretical line selected, it calculates the C values for the temperature interval log(T)= 4.0 - 8.0 in steps of log(T) = 0.1.
If a constant pressure is selected, for each ion the contribution function is calculated at an electron density Ne equal to the ratio of the pressure and the temperature of maximum ionization fraction.
The C(T) values are stored by GET_CONTRIBUTIONS in the output file output.contributions that can be used later, if required, to re-calculate the DEM, changing various parameters (e.g. the abundances), without having to start again and read the CHIANTI database, which can take a long time.
The observed lines with no theoretical counterparts are automatically excluded. If this happens, you might consider starting again with a larger dl, to see if there are theoretical lines in the vicinity of the observed one.
Then you are asked to select an *.abund file present in the CHIANTI database or in the working directory, and eventually edit it, if you want to change some abundances.
The G(T) are calculated, multiplying each theoretical line by the abundance factor. The theoretical lines contributing to each blend are sorted by intensity and then their G(T) can be plotted if the keyword PLOT_GT was activated. It is recommended to do this the first time, to check if there are some observed lines which are heavily blended with lines of other elements. It might be better to exclude such lines in a second run.
The G(T) for each blend are then summed and plotted, and the calculation of the DEM starts, using the fitting routine DEM_FIT. A series of parameters can change the result (DEM), especially the number and position of the mesh points of the spline that represents the DEM. The fitting procedure is based on Bevington's Data Reduction and Error Analysis for the Physical Sciences. fortran programs.
The iteration is controlled using key-words (see below).
A series of outputs are created, all having extensions of the output name. For example, using test as the output name:
The abundance file, the ionization equilibrium file and the pressure used are written at the beginning.
Then there is one line for each observed line, with the identification present in the input file, the observed wavelength lobs, the observed flux Iobs, the calculated flux Itheo , the error on the flux sobs, the value ([(Itheo - Iobs)/(sobs )] )2 and finally the value of [(Itheo)/(Iobs)]
After this line, there is one line for each theoretical line contributing to the blend, with the identification, the theoretical wavelength ltheo, the configuration and terms, and the contribution (as a percentage) of each line in the blend to Itheo.
The first one has the G(T) of all the lines then used for the fit, with all the contributions for each line summed ( the labels refer to the identifiacation given in the input file).
The file test_dem.ps has the DEM (T) with the scales set as in the interactive session. The points are plotted at the temperature where the product G(T)*DEM(T) has a maximum. It is possible to label the points with the comment string present in the input file, or to use the dominant ion in the blend.
The file test_4plots.ps has some additional plots. The upper-right figure of test_4plots.ps plots the values [(Itheo)/(Iobs)] versus the temperature where G(T) has it's maximum.
The action of CHIANTI_DEM is controlled via the following keywords.
The default units are ergs cm-2 s-1 sr-1.
The default units are ergs cm-2 s-1 sr-1.
If set, it has to specify the name of the file previously created by GET_CONTRIBUTIONS, where all the contribution functions C(T) are stored.
There are also some actions controlled via the keyboard.
When you are asked for an answer ( [y/N] ) yes or no you should either type in y or n. The capital letter in [y/N] means that the default choice is n which is what you get if you simply hit the return key. In case you have [Y/n], hitting the return key is the same as choosing y .
You must specify the output file name and the value of the pressure (or the density). The input file name is optional.
IDL > CHIANTI_DEM,OUTPUT='test',FILE_INPUT='test_obs',PRESSURE=1e16,/PLOT_GT
Select the ionization equilibrium file (e.g. Arnaud & Raymond). If there are no problems about N_MATCHES, the routine will select the lines having max( C(T) ) ³ 10-30 and write the C(T) values to the file test.contributions.
Then you'll be asked to select an abundance file and if you want to edit it. Pick up the Feldman abundances. Then the G(T) are calculated, multiplying each theoretical line by the abundance factor, sorted (within each blend) by their max( G(T) ) value, and plotted ( see Fig. 8).
|
It is recommended that you check the plots at least once, to see if there are some observed lines that it might be better to exclude in a second run, for example because they are blends. Also check if your identifications are consistent with the lines found in the CHIANTI database.
The G(T) for each blend are then summed, and plotted ( see Fig. 9).
|
At the end of the fit, the files test.dem, test.general, test.out are created.
Have a close look at these outputs, and check if there are emission lines not well represented by the fit or with no theoretical counterparts.
You can use the routine a second time, excluding some of the lines, and/or varying some of the fitting parameters. In particular, changing MESH_POINTS or starting from an appropiate DEM can affect the resulting DEM. For example:
IDL> CHIANTI_DEM,OUT='test',FILE_IN='test_obs',FILE_GT='test.contributions', $ IDL> EXCLUDE_OBS_WVL=[ 284.153 ] ,$ IDL > MESH_POINTS= [ 4.85, 5.6, 6.25, 7.0 ],N_ITER=40
The files test.dem, test.general, test.out will be created.
Eventually, also the files test_dem.ps test_4plots.ps may be created.
|
Fig. 10 shows the resulting DEM. The error bars on the points simply reproduce the error on the observed fluxes.
|
The Fig. 11 is self-explanatory. The DEM figure is repeated in the upper-left plot with the same scale of the previous plot.
The file test.out , toghether with test.dem, can be used to reproduce these plots using user-written software. If the only concern is the postscript output, then users just have to copy the routine in the working area and modify the top procedure PRINT2D_PLOT.PRO that controls the postscript device. The default is landscape.
This package is mostly intended to be a quick method to obtain a DEM which can then be used to calculate a synthetic spectrum, to be compared with the observed data.
Try to give as input lines covering a broad range in temperatures, and that are not density sensitive.
Try to adjust the location of the mesh points.
If the resulting DEM does not give a good fit to the data, it might be a good idea to start again calculating the G(T) with different abundances or to check the effect of blends.
Try a different DEM as a starting point, but be careful about the end points at lower and higher temperatures where usually there are no constraints (no observed lines).
Consider the possible effect on the DEM of different structures along the line of sight. It is important to realise that the DEM gives an indication of the amount of plasma at different temperatures along the line of sight, assuming constant density or pressure. It is not therefore possible to infer direct information about the variation of the temperature with height from this function. The inclusion of density-sensitive lines in the fit may also cause problems.
Send comments to : Giulio Del Zanna g.del-zanna@damtp.cam.ac.uk
The previous routines have been modified as described:
Compared to the previous version, these are the main changes:
1-Rewritten as a wrapper routine using the new procedures.
2-Now the PRESSURE value is a keyword.
3-The calculations can be done at constant DENSITY.
4-Energies (keV) can be output instead of wavelengths in Angstroms
5-MASTERLIST can now be used both as an input string or as a keyword.
Compared to the previous version, these are the main changes:
1-Rewritten as a wrapper routine using the new procedures.
2-Now the PRESSURE value is a keyword.
3-The calculations can be done at constant DENSITY.
4-MASTERLIST can now be used both as an input string or as a keyword.
Compared to the previous SYNTHETIC, these are the main changes:
1-Rewritten as a wrapper routine using the new procedures.
2-Now the PRESSURE value is a keyword as the DENSITY value
3-The keyword CONT is now renamed CONTINUUM
4-Added keywords
PHOTONS (If set, intensities are in photons instead of ergs)
DEM_NAME, ABUND_NAME, IONEQ_NAME, to run the routine in the
background, giving names of the
DEM, abundance and ionization
fractions files.
NOPROT (If set, then proton rates are not included.)
RADTEMP, RPHOT (to include photoexcitation)
5-MASTERLIST can now be used both as an input string or as a keyword.
6-The description of the line details now has the spectroscopic designation at the end.
Is left unchanged except for a few minor changes.
Aside from a few small fixes, these are the main changes:
1-Rewritten as a wrapper routine using the new procedures.
2-Added keywords
ABUND_NAME, IONEQ_NAME, to run the routine in the
background, giving names of the
abundance and ionization
fractions files.
NOPROT (If set, then proton rates are not included.)
RADTEMP, RPHOT (to include photoexcitation)
Compared to the previous routine, these are the main changes:
1-Rewritten as a wrapper routine using the new procedures.
2-Added keywords
ABUND_NAME, IONEQ_NAME, to run the routine in the
background, giving names of the
abundance and ionization
fractions files.
NOPROT (If set, then proton rates are not included.)
RADTEMP, RPHOT (to include photoexcitation)
EM Emission measure values.
Is not distributed nor supported anymore. Is now replaced by ch_ss.pro
Compared to the previous routine, these are the main changes:
1-Modified the plotting, adding information about the single lines.
2-Added keywords
NOPROT (If set, then proton rates are not included.) RADTEMP, RPHOT (to include photoexcitation)
Compared to the previous routine, these are the main changes:
1-Rewritten as a wrapper.
2-Added keywords
NOPROT (If set, then proton rates are not included.) RADTEMP, RPHOT (to include photoexcitation)
2-Added keywords
PHOTONS (If set, intensities are in photons instead of ergs) IONEQ_NAME The ionization fractions file. NOPROT (If set, then proton rates are not included.) RADTEMP, RPHOT (to include photoexcitation)
The call is the same, but the calculations are done using the fitting formulae of Itoh et al. (ApJS 128, 125, 2000) and Sutherland (MNRAS 300, 321, 1998). Also, a few bugs have been fixed.
Added the keyword
PHOTONS (If set, intensities are in photons instead of ergs)
-Added keywords
NOPROT (If set, then proton rates are not included.) RADTEMP, RPHOT (to include photoexcitation)
These routines are in the other/ subdirectory:
Unchanged.
Unchanged.
Widget unchanged but the low-level routine now uses emiss_calc.pro.
Unchanged.
Widget unchanged but the low-level routine now uses emiss_calc.pro.
Unchanged.
Changed the low-level routine that calculates the G(T), to account for the v.4 variations. The proton rates are included in the calculation of the level population.
Unchanged.
Routines in the extra/ subdirectory:
Is now a wrapper routine calling the widget RATIO_PLOTTER
Is now a wrapper routine calling the widget RATIO_PLOTTER
A few keywords have been added/ modified, mainly as an update for V.4.
A few keywords have been added/ modified, mainly as an update for V.4.
A few keywords have been added/ modified, mainly as an update for V.4.
A few keywords have been added/ modified, mainly as an update for V.4.
A few keywords have been added/ modified, mainly as an update for V.4.
This section describes the changes applied to the CHIANTI database and software in order to include the proton rates.
The proton rate data files have suffices .psplups and have the following format
2 3 2 0.000e+00 1.027e-02 8.000e+02-2.150e-13 1.052e-13 4.397e-12 \ 2.232e-11 5.389e-11 8.708e-11 1.014e-10 7.658e-11-2.805e-12
(The \ indicates a break in the line.) Note that the Z and spectroscopic number are not given for each ion, in contrast to the electron files. The rest of the line is the same as that for the electron files, except in this case there are 9 spline values as a 9-point spline was fitted to the data.
This is done by the routine read_splups.pro which loads the data into an IDL structure. The call is
IDL> read_splups_ns, filename, splstr, splref , /prot
The structure splstr has the following tags
.lvl1 lower level index
.lvl2 upper level index
.t_type transition type
.gf gf value
.de Delta-E for transition (rydbergs)
.c_ups the scaling parameter
.nspl number of spline points
.spl Vector of length 9, containing spline points
The routine pop_solver solves the set of linear equations that determine the level balance of the ion. To include proton rates, an extra matrix containing the proton rate coefficients needs to be added to the equations. This matrix is created within pop_solver from the splstr structure mentioned above.
Note also that the same routine is used to descale the spline fits into proton rates as to descale the electron spline fits. This routine is descale_all.pro and is called as
descale_all, temp, splstr, index, ups
where temp can be an array of temperatures.
User-written routines can be modified to include proton rates through two steps.
For routines which do not directly call pop_solver, the only changes are to add the keywords noprot=noprot, abund_file and ioneq_file to the routines' argument list, and to the call to the routine that calls pop_solver.
For routines that directly call pop_solver, the following steps need to be followed.
The first is to add the keyword noprot=noprot to the routine's argument list.
The second is to add a common block analogous to those that already exist for the energy level, radiative and electron collision data. This common block is
COMMON proton, pstr, pe_ratio
The third step is to add a line which will read the data. This is
if keyword_set(noprot) then begin
pstr=-1
endif else begin
read_splups, pname, pstr, pref, /prot
endelse
Before the call to pop_solver, the proton to electron ratio must be evaluated. This is done with
pe_ratio=proton_dens(temp)
where temp contains the logarithm of the temperatures that will be passed to pop_solver.
To include the proton rates in CHIANTI it is necessary to know the proton number density Np. This quantity is usually expressed in terms of the ratio relative to the electron density. For a standard solar plasma this is a constant for temperatures beyond log T=4.6 with a value around 0.85. Thus one option is to simply fix the ratio as a constant.
As we want CHIANTI to be applicable for low temperature plasmas, however, we have decided to explicitly calculate the ratio making use of the ion balance and abundance files, that uniquely determine Np. The relevant routine is PROTON_DENS.PRO. Np is calculated from the ion balance and element abundance files contained in CHIANTI through the following expression
| (37) |
where Ab is the element abundance, Ai is the ith element (i.e., A1=H, A2=He, etc.), Z is the charge on the ion, F(Ai+Z, T) is the fraction of ions of element Ai in the form Ai+Z at temperature T.
The ion fractions contained in CHIANTI are tabulated over the range 4.0 £ log T £ 8.0. Above and below these values, we set R(T) to the values for log T=8.0 and log T=4.0, respectively.
The use of this routine has some side effects. Some routines for which the ratio may have some effects in the results don't require you to select the ion balance or abundance files. E.g., DENSITY_RATIOS.PRO does not require the user to select these files, however, at low temperatures one may see significant changes take place in line ratios on account of the change in the proton-to-electron ratio. We deal with this effect by using the default !abund\_file and !ioneq\_file files to derive the proton-to-electron ratio, but allowing the files to be directly specified by the user through keywords if he/she needs to do this.
We have modified the CHIANTI routines so as PROTON_DENS.PRO is called once at the beginning of the routine and the ratio data are passed to POP_SOLVER.PRO through a common block.
The modifications due to the proton-to-electron ratio in user-defined procedures are as follows:
common proton, pstr, pe_ratio
COMMON elements,abund,abund_ref,ioneq,ioneq_t,ioneq_ref
pe_ratio=proton_dens(temp)
The call to PROTON_DENS.PRO thus does not take place within POP_SOLVER.PRO
This section describes the changes in the IDL software required to incorporate the 9-point spline fits.
The modification to the .splups file is simple. Any transitions which are fitted with a 9-point spline will simply have four extra numbers placed on the end of the data line. Transitions fitted with a 5-point spline will be output as normal. Both 5 and 9-point fits can be found in the same .splups file.
This section describes the changes to the read_splups routine, and also the changes required to routines that call directly or indirectly read_splups.
For some routines (such as synthetic, ...?) the reading of the data files is delegated to the routine setup_ion.pro. The data is then transferred to the main routine via common blocks.
Every routine that makes a call to read_splups.pro has to be modified. Two changes are needed:
The read_splups call used to be
read_splups,upsname,t_type,gfu,deu,c_ups,splups,upsref
The new call is
read_splups, filename, splstr, splref [, /prot]
where /prot should be set if proton rates are to be read.
The original common block had the form
COMMON upsilon,t_type,deu,c_ups,splups
The new one should be
COMMON upsilon, splstr
This reads data from .splups or .psplups files into an IDL structure (the previous version read data into several individual arrays). The call is
IDL> read_splups, filename, splstr, splref [, /prot]
The structure splstr has the following tags
.lvl1 lower level index
.lvl2 upper level index
.t_type transition type
.gf gf value
.de Delta-E for transition (rydbergs)
.c_ups the scaling parameter
.nspl number of spline points
.spl Vector of length 9, containing spline points
This routine directly replaces descale_ups.pro in the CHIANTI software. It is called as
descale_all, temp, splstr, index, ups
An important difference is that the temperature is specified directly whereas previously the scaled temperature was given. In addition, several temperatures can be given at once rather than just one.
Note that there is no difference in how this routine treats the descaling of proton rates.
The only place in the CHIANTI software where this routine is called is in pop_solver.pro.
The way electron excitation rates are included in pop_solver has been changed. Only a single for loop is required now as the routine goes through each line in the structure. In addition, the routine can now descale the upsilons for several temperatures simultaneously.
This section describes the features of the routines that are contained in the extra/ directory and that were contributed by Peter Young:
These routines, described in more detail in Sect. D.2 below, have slightly different units of outputs, compared to the other routines.
First of all, Sect. 8 gives the theory
behind the interpretation of optically-thin emission lines which
serves to set out the notation used here.
Going back to Eq. 2, we write
| (38) |
The emissivity of the emission line resulting from a j-to-i
radiative decay is defined as
| (39) |
| (40) |
In order to relate the emissivity to the actual observed intensity of
a line, we make use of the third assumption, which tells us that the
intensity is proportional to the emissivity of the plasma, and so
| (41) |
Expanding el using Eqs 38 and 39 gives
| (42) |
| (43) |
| (44) |
On account of the ionisation fraction F(T) this function is sharply peaked, and a common approximation (e.g., Pottasch [3], Jordan & Wilson [1]) is to assume that G(T) has a constant value over a narrow temperature interval around G(Tmax), where Tmax is the temperature of maximum ionisation for the ion. Here we will use the temperature of maximum emission or Tmem which is the temperature at which Gl has its maximum. Defining
| (45) |
| (46) |
| (47) |
| (48) |
| (49) |
Now, solar emission lines are often measured as intensity (or radiance), I, with units typically of erg cm-2 sr-1 s-1. This quantity is related to Pl by
| (50) |
where dA is the projected area of the emitting element. One thus relates the observed intensity to an emission measure by
| (51) |
where EM(s) is the column emission measure, where s is the line-of-sight depth of the emitting region.
Stellar emission lines are measured in flux (or irradiance), E, with units typically of erg cm-2 s-1. E is related to Pl by
| (52) |
where d is the distance to the object. The observed flux is then related to the emission measure by
| (53) |
If one treats the emitting region as a uniform, spherical shell of thickness h then dV=4pR2dh (R the distance from the star centre of the shell; typically R=R*, the radius of the star) and so the expression for E becomes
| (54) |
where EM(h) is the emission measure over height. The factor 1/2 denotes that half the photons from the shell are emitted towards the stellar surface and so are destroyed. Jordan and co-workers (see, e.g., Jordan & Wilson [1], Jordan & Brown [2]) utilise this definition and an assumption of spherical symmetry to deduce energy balance relations in solar and stellar atmospheres.
The routines are divided into primary and secondary routines. The secondary ones are called by some of the primary routines, and chances are that you won't have to use them too often. They are described in Sect. D.3.
All of the routines have headers which give more detailed information about how they work. This header can be read in the normal IDL way through, e.g., doc_library,'ratio_plotter'.
| (55) |
Example: For Fe XIII, select a line/blend from lines
in the range 200 to 205 Å
pop_plot,26,13,wrange=[200,205]
Note how no single line shows zero density dependence, and so care should be taking in using Fe XIII in emission measure analyses. Compare with Fe XVI:
pop_plot,26,13,wrange=[330,370]
where both the 335 and 360 lines are OK.
This routine calculates Cl, defined in Eq. 47. It displays both this value and the values of DE Cl and 4p/ DE Cl. For lines for which njAji ~ Ne, Cl is insensitive to Ne, but for other lines Ne should be specified. Note that for blended lines only åDE Cl and 4p/ åDE Cl are output. The routine also outputs the Tmem of the lines, accurate to 0.02 dex.
Example: Work out Cl for the Fe XIII lines
between 200 and 205 Å at a density of 109 cm-3.
integral_calc,26,13,wrange=[200,205],dens=9.
From Eq. 51, an observed line intensity of 100 erg cm-2s-1sr-1 for the 202.044 line implies a column emission measure of EM(s) = 100 ×1.614 ×1020 / Ab(Fe), where 1.614 ×1020 is taken from 4pi/DE*C_lambda column of the output.
For Fe XIV, one can do:
integral_calc,26,14,wrange=[210,220],dens=9.
and so to get the same column emission measure for Fe XIV l211.32, an intensity of 100 ×1.614 ×1020 / 2.280 ×1020 = 70.8 erg cm-2s-1sr-1 is required, where 2.280 ×1020 is the value of 4pi/DE*C_lambda for Fe XIV l211.32.
Both temp\_plotter.pro and dens\_plotter.pro call a widget-based routine (ratio_plotter, via the keywords /temp and /dens) that allows the thorough investigation of density or temperature sensitive ratios. Observed line intensities can be input for line ratios, and densities or temperatures derived.
Example: to study density sensitive ratios of Fe XIII, simply
type in
dens_plotter,'fe_13'
Try inputting some line intensities and errors from the SERTS-89 spectrum (Thomas & Neupert [4]), and comparing the derived densities with those found by Young, Landi & Thomas [5] in Table 20.
Gives percentage level populations for all levels within the specified ion that have populations greater than 0.01%.
Example: Compute level populations for Fe XIII at a
density of 1010 cm-3:
show_pops,26,13,dens=10
Eq. 44 gives the definition of the
contribution function as calculated by the g_of_t
routine.
In it's default setting g_of_t.pro actually calculates:
|
Examples:
result=g_of_t(26,13,dens=9.)
result=g_of_t(26,13,wrange=[200,205],/abund)
result=g_of_t(26,13,/no_de)
One can also use this routine to derive the Tmem of the emission line, by way of the ion_interp.pro routine, e.g.,
result=g_of_t(26,13,dens=9.)
ion_interp,t,result,ti,g_ti,10
print,ti(where(g_ti eq max(g_ti)))
result is tabulated at 0.1 dex intervals in temperature. ion_interp interpolates result and in this case gives it at 0.01 dex intervals.
These routines are called by the routines above.
Calculates the ion emissivity (Eq. 40) for all transitions within the CHIANTI model of the ion. The returned data is in the form of a structure. The default is to calculate emissivities for temperatures Tmax and log Tmax±0.15, and densities log Ne=8.0, 8.5, 9.0,....,12.0.
Example:
emiss=emiss_calc(26,13)
Allows the selection of lines/blends from the emiss structure created by emiss_calc.pro. This routine is useful if you want to access the emissivities of lines directly, e.g.,
emiss=emiss_calc(26,13) em202=emiss_select(emiss,wra=[200,205],sel_ind=sel_ind)In this example, calling emiss_select yields a widget that allows one to select a line/blend from the 200-205 Å range. The emissivities of this line blend will be contained in em202, while the emiss index/indices of this line/blend will be contained in sel_ind.
When reading the ionisation equilibrium files, you will receive an array with absolute (as opposed to log) ion fractions tabulated at 0.1 dex intervals from log T = 4.0 to 8.0. A common need is to interpolate this data and obtain the ion fraction tabulated at smaller intervals. As the ion fractions are generally sharply peaked, normal interpolation will lead to negative ion fractions at several temperatures, and so a more satisfactory method is to interpolate the log of the ion fraction. However, you need to take the log of only the non-zero values of the ion fraction.
The several lines of code required to perform the interpolation are straightforward but irritating (when typed on many occasions!), and so this routine performs the task.
Example: Use g_of_t to create a G(T) function for
one of the Fe XIII lines,
result=g_of_t(26,13,dens=9.)
ion_interp,t,result,ti,g_ti,5
The G(T) function is now tabulated at 0.02 dex intervals. Note that if t is not specified, it is assumed to be a vector going from 4.0 to 8.0 in 0.1 dex intervals.
More details are found in the program headers (see the html version of this guide).
The tags of the line intensities structure are:
.lines A structure containing information about the lines.
Its size is the number of lines in the spectrum. The
tags are:
.iz The atomic number of the elements (e.g., 26=Fe)
.ion The ionisation stage (e.g., 13=XIII)
.snote The identification of the ion (e.g., 'Fe XXIV d')
.ident The identification of the transition, configuration
and terms in text form.
.ident_latex
The identification of the transition, configuration
and terms in latex form.
.lvl1 The lower level of the transition (see .elvlc
file for ion)
.lvl2 The upper level for transition.
.tmax The temperature of maximum emission of the line.
If the G(T) are output, tmax is the maximum of G(T).
If the isothermal approximation is used tmax=0.
If a DEM is used, tmax is the maximum of the
emissivity that includes the product of the ion
fraction and the DEM.
Rounded to nearest 0.1
.wvl Wavelength of the transition, in Angstroms.
.flag A flag, =-1 if the line has only theoretical energy
levels. Otherwise flag=0.
.int Intensity of line (erg/cm2/s/sr or phot/cm2/s/sr),
divided by the element abundance (exclusive with .goft).
.goft The G(T) of the line (optional /exclusive with .int).
.ioneq_name The ion balance file used (full path).
.ioneq_logt The Log10 T values associated.
.ioneq_ref The references.
.dem_name The differential emission measure file eventually used
(full path).
.dem The Log10 DEM values
.dem_logt The Log10 T values associated.
.dem_ref The references.
.model_name A string indicating the model used:
1- Constant density
2- Constant pressure
3- Function (Te,Ne)
.model_file Full path of the (Te,Ne) file if defined. Null string otherwise.
.model_ne the Ne value(s).
- a scalar if 'Constant density' is selected.
- an array if 'Function' is selected.
- 0. if constant pressure is selected.
.model_pe the Pe value.
- a scalar if constant pressure is selected.
- 0. if 'Constant density' is selected.
- an array=density*temperature if 'Function' is selected.
.model_te the Te values if 'Function' is selected. Otherwise 0.
.wvl_units The wavelength units.
.wvl_limits The wavelength limits specified by the user.
.int_units The intensity units (erg/cm2/s/sr or phot/cm2/s/sr) if
intensities are calculated, otherwise the G(T) units
(erg cm3/s/sr or phot cm3 /s/sr)
.logt_isothermal
The Log10(T) values used.
.logem_isothermal
The Log10(EM) values used.
.date The date and time when the structure was created.
.version The version number of the CHIANTI database used.
.add_protons
A flag (0/1) to indicate whether proton data were used (1)
or not (0) to calculate the level population.
.photoexcitation
A flag (0/1) to indicate if photoexcitation was included (1)
or not (0).
.radtemp
The blackbody radiation field temperature used (if
photoexcitation was included).
.rphot
Distance from the centre of the star in stellar radius units
(if photoexcitation was included).
The spectrum structure output of MAKE_CHIANTI_SPEC has the following ADDITIONAL tags (compared to the tags of the CHIANTI line intensities structure created by CH_SYNTHETIC:
LAMBDA The array of X-values
SPECTRUM The array of Y-values
UNITS The units of LAMBDA, SPECTRUM
WRANGE The wavelength range
INSTR_FWHM The Instrumental FWHM
BIN_SIZE Width of the Bins (fixed) in angstroms
ABUND_NAME The CHIANTI abundance file name
ABUND The abundance values
MIN_ABUND The minimum abundance value used
ABUND_REF The references
CONTINUUM The values of the continuum (if calculated)
FILE_EFFAREA The Effective Area File used (optional)
EFFAREA The array of effective area values
(optional - same size of LAMBDA)
.LINES An array of structures, for all the lines used
to calculate the SPECTRUM.
The tags are the same as those created by
CH_SYNTHETIC, plus
.PEAK The peak intensity of the line in the spectrum
(approx. value)
PROJECT
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME
CH_SS
PURPOSE:
Widget-based multi-purpose routine
to calculate CHIANTI line intensities and continua, to create a
synthetic spectrum, to make tables of lines, etc.
CALLING SEQUENCE:
IDL> ch_ss
PROCEDURE:
This routine calculates a synthetic spectrum by merging line
intensities and continua.
The widget is organised into four Sections:
SECTION 1:
-The Calculation of the CHIANTI line intensities.
This can be done in two ways:
1-Restore a save file with the CHIANTI line intensities already
calculated.
2-Calculate CHIANTI line intensities with a call to CH_SYNTHETIC.
In this case, A series of parameters must be set:
- Minimum and maximum wavelengths in Angstroms
- The model used for the calculation. Three are the options:
1) a constant density (cm^-3)
2) a constant pressure (cm^-3 K)
3) a general (Te,Ne) model. In this case, a file will be read.
This file should have two columns, one with the Te (K)
values, and one with the Ne (cm^-3) values.
- The ionization fraction file to be used. "*.ioneq" files
can be selected from either the CHIANTI database, the
working directory or selected via a widget.
- All ions ? If set to yes (default), then all the ions present in the
database will be included.
If set to no, then it is possible to select a list of ions
with a widget
- All lines ? If set to no (default), only the lines for which there are
observed energy levels are included
If set to yes, also the lines that do not have
corresponding observed energy levels are included. In this
case, the wavelengths are calculated from the theoretical
energy levels, and might not be very accurate.
- Isothermal ? If set to no (default), a DEM file must be selected.
"*.dem" files (i.e. files with a .dem extension)
can be selected from either the CHIANTI database, the
working directory or selected via a widget.
If set to yes, then the user is requested to enter one
or more temperatures (as logarithmic values - Log T )
and correspondent column emission measures EM
logarithmic values.
NOTE: if more than one value is entered, then the
sequence must be separated by commas (e.g.: 6.0,
6.5, 7.), and both Log T and Log EM must have the
same number of values
- Photoexcitation ?
If set to yes, you have to define:
Trad: The blackbody radiation field temperature
R/Ro: Distance from the centre of the star in stellar
radius units
Units: Photons or Ergs'
Protons: If set to Yes, the proton data are used to calculate the level population
Once all the parameters have been defined, the user should click on the
"Calculate intensities" button to start the calculation (which calls
CH_SYNTHETIC).
Once the calculation is finished, an IDL structure is loaded into
memory. It is then possible to save it for later use by clicking on the
"SAVE" button.
The RESTORE button is to restore previously saved files into an IDL
structure in memory.
Once the IDL structure with the line intensities is in the memory, it is
then possible to calculate and plot a spectrum (SECTION 2).
SECTION 2:
This section controls the parameters that are needed to fold the
line intensities and the continua into a synthetic
spectrum. These parameters are used by MAKE_CHIANTI_SPEC.
Before this is done, a set of line intensities MUST be in the
program memory. This is done either by calculating the
intensities or by restoring a save file with
previously calculated values (SECTION 1).
Setting the parameters:
-Minimum and maximum wavelengths in Angstroms
-spectrum bin size in Angstroms. Disallowed if an Effective area
file is used.
-instrumental FWHM: Setting this to a non-zero value broadens
each of the spectral lines with a Gaussian of
the specified FWHM (in Angstroms) so
mimicking the effects of instrumental
broadening.
-continuum: Add continua to the binned spectrum:
free-free, free-bound and two-photon.
Please note that the continuum calculation takes some
time and you may want to define a minimum abundance
value to speed the calculations.
- All lines ? If set to no (default), only the lines for which there are
observed energy levels are included.
If set to yes, the "unobserved lines" will be added, but
only if they are present in the structure.
-elemental abundances
"*.abund" files (i.e. files with a .abund
extension) can be selected either from the CHIANTI database,
the working directory, or via a widget.
-select a minimum abundance value
If set not null, only the lines of those elements
which have an abundance greater than the value set are
selected. Also, the continuum is calculated only for
those elements which have an abundance greater than
the value set. This can significantly speed up the
calculations. By default, the minimum value in the
selected abundance file is used. To have an idea of
what minimum abundance should be set, the abundances
of Allen (1973) give:
abundance (H) = 1.
abundance (He) = 0.085
abundance (C) = 3.3e-4
abundance (O) = 6.6e-4
abundance (Si) = 3.3e-5
abundance (Fe) = 3.9e-5
Eff. Area: Yes/No
If you want to fold the spectrum with an effective area.
If set to Yes, you are requested to choose an input ascii file
with two columns, the wavelength and the effective area values
(cm^2).
The wavelenghts in the file (that might not be linear) are used
to create the spectrum, that is multiplied with the effective
area values.
Note that this option only works well if a sufficient number
of bins is given. The line intensities contributing to each
bin are summed, and subsequently convolved with a gaussian
of full-width-half-maximum FWHM, if FWHM is not set = 0.
Please note that the convolution might not work if a small
number of bins is defined.
Also note that to have the correct output units (counts s-1
bin-1) the appropiately scaled DEM (or EM) values must be provided.
After this, by clicking on the "Calculate and plot" button the
program calculates and plots the synthetic spectrum.
Once the spectrum is displayed, it is then possible to
view the details of the lines by clicking with the mouse in the
plot window, and to perform various operations by clicking on
the buttons in SECTION 3
SECTION 3:
This Section allows the user to select a few parameters for the
plotting, and to create different types of OUTPUT.
Labels ? : Setting this to yes plots a vertical line for each
spectral line in the spectrum, and also writes a label
above the strongest lines indicating the ion from
which the line arises.
Min.: Only lines which have an intensity greater than the
value set here will be listed and, if requested,
labelled and selected for inclusion in the various
outputs. Setting the value=0. will result in all
lines being listed and written in the outputs.
X,Y, XOOM, UNZOOM: It si possible to select a region of the
spectrum, by zooming with the use of the mouse
or by setting the X,Y ranges.
NOTE that only the line details and portion of
the spectrum shown will be output.
LINEAR/LOG To plot the spectrum in linear or log scale
Create PS file: A postscript file is created.
Hardcopy: the postscript file "idl.ps" is created and sent to the
default printer.
Save Line details (latex): The details of the lines shown in the
plot will be saved in a latex file.
Save Line details (ascii): The details of the lines shown in the
plot will be saved in an ascii file.
Save Spectrum (ascii): The X,Y values of the plot are saved in
an ascii file.
Save Spectrum (IDL/FITS): The details of all the lines and the arrays
of the X,Y values of the plot are saved into
an IDL or FITS file. The IDL structure
has the following tags:
.LAMBDA: The array of wavelength X values
.SPECTRUM: The array of spectrum Y values
.UNITS The units of LAMBDA, SPECTRUM
.INSTR_FWHM The Instrumental FWHM
.BIN_SIZE Width of the Bins (fixed) in angstroms
.ABUND_NAME The CHIANTI abundance file name
.ABUND The abundance values
.MIN_ABUND The minimum abundance value used
.ABUND_REF The references
.CONTINUUM The values of the continuum (if
calculated)
.EFFAREA The array of effective area
values (optional)
.FILE_EFFAREA The name of the effective area file used (optional).
.IONEQ_NAME The ion balance file used (full path).
.IONEQ_LOGT The Log10 T values associated.
.IONEQ_REF The references.
.DEM_NAME The differential emission measure file eventually used
(full path).
.DEM The Log10 DEM values
.DEM_LOGT The Log10 T values associated.
.DEM_REF The references.
.MODEL_NAME A string indicating the model used
(e.g. constant density or constant pressure).
.MODEL_NE the Ne value.
.MODEL_PE the Pe value.
.WVL_UNITS The wavelength units.
.WVL_LIMITS The wavelength limits specified by the user.
.INT_UNITS The intensity units
.LOGT_ISOTHERMAL
The Log10(T) values used.
.LOGEM_ISOTHERMAL
The Log10(EM) values used.
.TIME The date and time when the structure was created.
.VERSION The version number of the CHIANTI database used.
.ADD_PROTONS
A flag (0/1) to indicate whether proton data were used (1)
or not (0) to calculate the level population.
.PHOTOEXCITATION
A flag (0/1) to indicate if photoexcitation was included (1)
or not (0).
.RADTEMP
The blackbody radiation field temperature used (if
photoexcitation was included).
.RPHOT
Distance from the centre of the star in stellar radius units
(if photoexcitation was included).
THEN, FOR EACH LINE USED TO CALCULATE THE
SPECTRUM:
.LINES A structure containing information about the lines.
Its size is the number of lines in the spectrum. The
tags are:
.peak The peak intensity value
.iz The atomic number of the elements (e.g., 26=Fe)
.ion The ionisation stage (e.g., 13=XIII)
.snote The identification of the ion (e.g., 'Fe XXIV d')
.ident The identification of the transition, configuration
and terms in text form.
.ident_latex
The identification of the transition, configuration
and terms in latex form.
.lvl1 The lower level of the transition (see .elvlc
file for ion)
.lvl2 The upper level for transition.
.tmax The temperature of maximum emission of the line
(i.e., the temperature at which the product of
the emissivity and the ion fraction has its
maximum). Rounded to nearest 0.1, and zero in case
the isothermal approximation is used.
.fwhm
.wvl Wavelength of the transition, in Angstroms.
.flag A flag, =-1 if the line has only theoretical energy
levels. Otherwise flag=0.
.int Intensity of line (with the abundance factor multiplied)
Save Spectrum (FITS): The entire information contained in the
IDL structure is stored in a FITS file.
SECTION 4:
Here, text information messages are printed.
INPUTS
None.
OPTIONAL INPUTS:
The font
OUTPUTS:
Many.
KEYWORD PARAMETERS:
FONT the font to be used. Can be useful to customize the appearance of
the widget.
CALLS:
CH_SYNTHETIC, CH_LINE_LIST, CH_DRAWBOX, MAKE_CHIANTI_SPEC, CH_XMENU_SEL,
plus many other CHIANTI and SolarSoft routines.
PROGRAMMING NOTES
Within CH_SS, there are several other routines which are:
OPLOT_LINES This overplots lines and a label on the displayed
spectrum.
SYN_CURSOR When the mouse is clicked when on the spectrum window,
this routine prints out the list of nearby lines and
their IDs in the text window.
CALC_SYN_SPECTRUM
Calculates line intensities with a call to CH_SYNTHETIC
PLOT_SYN_SPECTRUM This calls make_chianti_spec to produce the
intensity vs. wavelength plot.
SYN_MAIN_EVENT This handles the widget operations
SYN_WID This creates the widgets.
COMMON BLOCKS:
many
RESTRICTIONS:
SIDE EFFECTS:
EXAMPLE:
IDL> ch_ss
CATEGORY:
spectral synthesis.
WRITTEN :
Ver.1, 7-Nov-01, Giulio Del Zanna (GDZ) and Peter Young (PRY)
MODIFICATION HISTORY:
V.2, 7-Nov-01, GDZ . Fixed a small bug (now the spectrum plot is always
plotted within the widget), and modified the option to add continua.
Changed the suggested names of the outputs.
Corrected a bug when creating an IDL save file with the spectrum, when
no line details are present.
V.3 28-Jan-02 GDZ
fixed a bug in the density text widget, added a few buttons
and options, including the effective area.
Added noprot, rphot, radtemp keywords to the call to ch_synthetic
V 4, 18-Apr-2002, GDZ
Added photoexcitation, changed IDL save files to FITS files,
V.5, 21-May-2002, GDZ
fixed a few small bugs: checking min_abund before calculating the
spectrum; checking the ioneq file when
restoring the structure; changed the status of
all lines; chnaged the font system.
generalized directory concatenation to work for
Unix, Windows and VMS.
V.6, 15-July-2002, GDZ - New major revision.
Changed the chianti top directory (for Effective areas).
Changed Linear/Log button.
Rearranged the sizes of the buttons and added a special cursor to
highlight the area where details of the lines will be given. Works
only in linear scale.
Added quite a lot of new checks to avoid crashes and
fixed the problem with the zoom/unzoom/change units.
V.7, 2-Aug-02, GDZ
Modified the output labels on the plot, inside and on the axis.
Also modified a few minor things like the appearance of the Log T,EM
values.
Fixed a bug when creating the latex output.
Now it restores at the end previous colors and settings.
V.8, 8-Aug-02, GDZ
Changed the CHIANTI system variables. Fixed.
Also fixed a problem with the element ab. file.
V.9, 13-Aug-02, GDZ
Restored the correct use of ch_line_int, now only the lines in the
plot window are listed, and the ALL keyword is in use.
Now the correct xrange is loaded into COMMON when line int. are
restored. Now it checks if all ions were in the structure, when
restoring the line intensities, and flags the widget button accordingly.
Added a device,decomposed=0. to remove problems with colors.
Corrected the use of the DEM, IONEQ and ABUND pulldown menus,
avoiding conflicts between files in the working and CHIANTI
directory having the same name.
Added printing of references for ancillary files, and a check on the
element abundances vs. the elements present in the structure.
V.10, 7-Nov-03 GDZ
Modified format e8.2 to e9.2 for Windows compatibility.
Replaced f9.4 with f11.4 format for the wavelengths.
Some minor modifications to the widget.
Added extended details in the ascii output spectrum.
Added more explanations in the HELP buttons.
V.11, 22-Jul-2005 GDZ
-Added keV option and a few more extra checks.
V.12, 2-Aug-2005 GDZ
put RETAIN=2 in the main plotting window.
TO DO LIST:
Control the range of Angstroms when clicking
kev
Allow plots in intensities instead of intensities A-1
VERSION : V.12, 2-Aug-2005
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
CH_SYNTHETIC
PURPOSE:
to calculate CHIANTI line intensities or G(T) and output an IDL structure.
PROCEDURE:
This routine calculates as default line intensities for a user-specified
differential emission measure and ionisation balance. The actual
creation of a synthetic spectrum (i.e., wavelength vs. intensity)
is performed by other routines - see CH_SS.PRO and
MAKE_CHIANTI_SPEC.PRO.
Note that this routine does not include the element abundances
in the line intensities, as this will be performed by
make_chianti_spec. One of the reasons why element abundances are not
included in the line intensities calculation is so that it is easier
for the user to see how modifying abundances affects their spectra in
e.g. CH_SS.PRO.
The calculations are performed at constant pressure or
at constant density.
The routine can also output line intensities calculated with an
isothermal approximation.
If the isothermal approximation is not used, then the user will be asked
to select two files, that can either be in the
standard CHIANTI database or in the working directory.
These files are:
- an ionization fraction file
- a differential emission measure (DEM) file.
The routine can also output the contribution functions G(T) of the lines,
instead of the intensities, if the keyword GOFT is used. In this case,
only the ionization equilibrium file needs to be selected.
The G(T), or intensity per emission measure, is calculated as:
G=(hc/lambda_ij)*A_ji*(N_j(X^+m)/N(X^+m))*(N(X^+m)/N(X))/ N_e /(4.*!pi)
where A_ji is the A-value of the transition;
(N_j(X^+m)/N(X^+m)) is the population of the upper level,
calculated by solving the statistical equilibrium equations;
(N(X^+m)/N(X)) is the ionization equilibrium
N_e is the electron density.
unless /PHOTONS is set, in which case the (hc/lambda_ij) factor
is not included.
If not specified otherwise, with the use of the MASTERLIST or SNG_ION
keywords, then the standard masterlist of the ions, which has
all the ions in the current CHIANTI database, is used.
PROGRAMMING NOTES
The DEM is not assumed to be specified at 0.1 logT intervals (which
is how the ion fraction are specified). Thus this routine reads
in the DEM vs. logT information and then uses the IDL spline
function to tabulate the DEM over 0.1 logT intervals. The minimum
and maximum temperatures are those in the DEM file, rounded up to
the nearest 0.1. The new DEM function tabulated over 0.1 logT
intervals is contained in 'dem_int'.
For some of the dielectronic files, radiative decays that were in
the standard .wgfa file will also be present in the dielectronic
version of the .wgfa file. In these cases the line intensity
produced from the latter file needs to be ignored and so we have a
check in ch_synthetic to do this. An example is the 1-7 decay in
the ca_19.wgfa and ca_19d.wgfa files. In the latter case, the
model of the ion does not include electron excitation to level 7
and so the model for the 1-7 decay is incorrect, hence we ignore
it.
CATEGORY:
spectral synthesis.
CALLING SEQUENCE:
IDL> ch_synthetic,wmin,wmax, output=output, pressure=pressure,$
[MODEL_FILE=MODEL_FILE, err_msg=err_msg, msg=msg, $
density=density,all=all,sngl_ion=sngl_ion, $
photons=photons, masterlist=masterlist, $
save_file=save_file , verbose=verbose, $
logt_isothermal=logt_isothermal,$
logem_isothermal=logem_isothermal,$
goft=goft, ioneq_name=ioneq_name, dem_name=dem_name,$
noprot=noprot, rphot=rphot, radtemp=radtemp, progress=progress ]
INPUTS:
Wmin: minimum of desired wavelength range in Angstroms
Wmax: maximum of desired wavelength range in Angstroms
PRESSURE: pressure in emitting region (Pe, cm^-3 K).
Only a single value is accepted, and the calculation is
performed at constant pressure.
OPTIONAL INPUTS :
DENSITY: density in emitting region (Ne, cm^-3).
Only a single value is accepted, and the calculation is
performed at constant density, unless LOGT_ISOTHERMAL is
defined. In this case, DENSITY can be an array of values, but
has to have the same number of elements as LOGT_ISOTHERMAL.
MODEL_FILE Full path of the (Te,Ne) file if defined.
This file should have two columns, one with the Te (K)
values, and one with the Ne (cm^-3) values. If these
values are not sorted in ascending order of Te, the
routine does sort them.
SNGL_ION: specifies a single ion (e.g. SNGL_ION='Fe_10' to include
only Fe X lines) or an array (e.g. SNGL_ION=['Fe_10','Fe_11']
to include only Fe X and Fe XI lines) of ions to be used
instead of the complete set of ions specified in
!xuvtop/masterlist/masterlist.ions
MASTERLIST: string of a specific masterlist file (full path).
If defined as a keyword (i.e. MASTERLIST=1 or /MASTERLIST)
then a widget allows the user to select a user-defined
masterlist file. Shortcut for SNGL_ION.
IONEQ_NAME: Name of the ionization equilization name to use. If not
passed, then the user is prompted for it.
DEM_NAME: Name of the DEM file to used. If not passed, then the user
is prompted for it.
LOGT_ISOTHERMAL
Array of logarithmic temperatures.
If defined, the emissivities are calculated with an
isothermal approximation. The values are sorted in ascending
order.
LOGEM_ISOTHERMAL
Array of logarithmic emission measures.
If defined, the emissivities are calculated with an
isothermal approximation. The values are sorted in ascending
order. If LOGT_ISOTHERMAL is specified without
LOGEM_ISOTHERMAL then the emission measures are set to 1
(logem_isothermal=0).
RADTEMP The blackbody radiation field temperature (default 6000 K).
RPHOT Distance from the centre of the star in stellar radius units.
I.e., RPHOT=1 corresponds to the star's surface. (Default is
infinity, i.e., no photoexcitation.)
OUTPUTS:
OUTPUT: The name of the structure containing the line intensities and
details.
The tags of the structure are:
.lines A structure containing information about the lines.
Its size is the number of lines in the spectrum. The
tags are:
.iz The atomic number of the elements (e.g., 26=Fe)
.ion The ionisation stage (e.g., 13=XIII)
.snote The identification of the ion (e.g., 'Fe XXIV d')
.ident The identification of the transition, configuration
and terms in text form.
.ident_latex
The identification of the transition, configuration
and terms in latex form.
.lvl1 The lower level of the transition (see .elvlc
file for ion)
.lvl2 The upper level for transition.
.tmax The temperature of maximum emission of the line.
If the G(T) are output, tmax is the maximum of G(T).
If the isothermal approximation is used tmax=0.
If a DEM is used, tmax is the maximum of the
emissivity that includes the product of the ion
fraction and the DEM.
Rounded to nearest 0.1
.wvl Wavelength of the transition, in Angstroms.
.flag A flag, =-1 if the line has only theoretical energy
levels. Otherwise flag=0.
.int Intensity of line (erg/cm2/s/sr or phot/cm2/s/sr),
divided by the element abundance (exclusive with .goft).
.goft The G(T) of the line (optional /exclusive with .int).
.ioneq_name The ion balance file used (full path).
.ioneq_logt The Log10 T values associated.
.ioneq_ref The references.
.dem_name The differential emission measure file eventually used
(full path).
.dem The Log10 DEM values
.dem_logt The Log10 T values associated.
.dem_ref The references.
.model_name A string indicating the model used:
1- Constant density
2- Constant pressure
3- Function (Te,Ne)
.model_file Full path of the (Te,Ne) file if defined. Null string otherwise.
.model_ne the Ne value(s).
- a scalar if 'Constant density' is selected.
- an array if 'Function' is selected.
- 0. if constant pressure is selected.
.model_pe the Pe value.
- a scalar if constant pressure is selected.
- 0. if 'Constant density' is selected.
- an array=density*temperature if 'Function' is selected.
.model_te the Te values if 'Function' is selected. Otherwise 0.
.wvl_units The wavelength units.
.wvl_limits The wavelength limits specified by the user.
.int_units The intensity units.
1) If LOGT_ISOTHERMAL is defined, we have two cases:
a) LOGEM_ISOTHERMAL is not defined, and is therefore
assumed to be 0 (EM=1). In this case, units are
'photons cm+3 sr-1 s-1' or 'erg cm+3 sr-1 s-1'.
b) LOGEM_ISOTHERMAL is defined. In this case, units are
'photons cm-2 sr-1 s-1' or 'erg cm-2 sr-1 s-1'.
2) If LOGT_ISOTHERMAL is not defined, we have two cases:
a) intensities are calculated. In this case, units are
'photons cm-2 sr-1 s-1' or 'erg cm-2 sr-1 s-1'.
b) Contribution functions G(T) are calculated. In this
case, units are
'photons cm+3 sr-1 s-1' or 'erg cm+3 sr-1 s-1'.
.logt_isothermal
The Log10(T) values used.
.logem_isothermal
The Log10(EM) values used.
.date The date and time when the structure was created.
.version The version number of the CHIANTI database used.
.add_protons
A flag (0/1) to indicate whether proton data were used (1)
or not (0) to calculate the level population.
.photoexcitation
A flag (0/1) to indicate if photoexcitation was included (1)
or not (0).
.radtemp
The blackbody radiation field temperature used (if
photoexcitation was included).
.rphot
Distance from the centre of the star in stellar radius units
(if photoexcitation was included).
OPTIONAL OUTPUTS:
SAVE_FILE: If defined, then an IDL save file is created, with the output
structure.
GOFT: If set, the G(T) of the lines are calculated, and put in
the output structure, instead of the line intensities.
Units are 'photons cm+3 sr-1 s-1' or 'erg cm+3 sr-1 s-1'
KEYWORDS:
ALL: if set, then all lines are included. This means that lines for
which only an approximate wavelength is known,
denoted by a negative wavelength value in the .wgfa file, are
included. These are the lines for which there are no observed
energy levels.
PHOTONS: The output intensities will be in photons instead of
ergs.
VERBOSE: If set, the routine will list each ion it is looking at,
and how many lines from each ion it is including in the
spectrum.
GOFT: If set, the G(T) of the lines are calculated, and put in
the output structure, instead of the line intensities.
Units are 'photons cm+3 sr-1 s-1' or 'erg cm+3 sr-1 s-1'
NOPROT Switch off the inclusion of proton rates in the level
balance (default).
PROGRESS If set, a widget appears, showing the progress of the
calculation and allowing the user to halt the calculation.
NO_SUM_INT Prevents the summing of intensities over temperature.
Only works in conjunction with the LOGT_ISOTHERMAL
option, and is implemented in order to work the
ISOTHERMAL routine. The .INT tag in OUT.LINES becomes
an array with the same number of elements as
LOGT_ISOTHERMAL, corresponding to the intensities at
each temperature.
CALLS: CH_GET_FILE
many CHIANTI standard routines, including:
READ_IONEQ, READ_DEM, READ_MASTERLIST, ION2SPECTROSCOPIC,
ZION2FILENAME, READ_WGFA,READ_ELVLC,READ_SPLUPS,POP_SOLVER,
DESCALE_UPS, CONVERT_TERMS.
CONVERT_TERMS uses some standard SolarSoft routines:
REPSTR, STR_INDEX, DATATYPE,
VALID_NUM, DELVARX, INFO_PROGRESS, SAVEGEN
COMMON BLOCKS:
wgfa, wvl,gf,a_value
upsilon,splstr
elvlc,l1a,term,conf,ss,ll,jj,ecm,eryd,ecmth,erydth,eref
elements,abund,abund_ref,ioneq,ioneq_logt,ioneq_ref
radiative, radt, dilute
proton, pstr
ionrec,rec_rate,ci_rate,temp_ionrec,luprec,lupci,status
RESTRICTIONS:
SIDE EFFECTS:
CATEGORY:
spectral synthesis.
EXAMPLE:
This routine can be called in this way:
IDL> ch_synthetic,5.,10., output=structure, pressure=1.e+15
To make use of the output structure, use MAKE_CHIANTI_SPEC or CH_SS
PREV. HIST. :
Based on synthetic.pro, written by Ken Dere
WRITTEN :
Ver.1, 22-Jun-00, Peter Young (PRY) and Giulio Del Zanna (GDZ)
MODIFICATION HISTORY:
Ver.1, 22-Jun-00, Peter Young and Giulio Del Zanna
Ver.2, 25-Jul-00, PRY
Removed /all keyword; make_chianti_spec can be
used to filter out negative wavelengths.
Added flabel tag to output in order to pick out
dielectronic recombination lines.
Ver.3, 4-Oct-00, PRY
Replaced /all keyword.
Corrected bug when .wgfa files contain two A-values
for the same transition.
Ver.4, 5-Oct-00, PRY
Corrected bug that gave rise to lines from the same
transition when the dielectronic file existed.
V.5, 11-Oct-2000, GDZ
eliminate the abundance call; reinstate the /masterlist keyword;
added the tag ident_latex to have the identification in
late-style format; added a tag flag=-1 for the unobserved lines,
and =0 otherwise; reinstated all wavelengths > 0. ;
added the calculation of the G(T);
added a few other tags in the output, and various checks and
comments.
V.6 15-Oct-2000 ,GDZ
Replaced calls to solarsoft routines to standard IDL ones.
Corrected an error in the output creation, in relation to the
isothermal case. Added isothermal in the output. added checks to
the wavelengths. Default output name is TRANSITIONS. changed
const_net and added const_net_value + a few other things.
v.7, 27-Nov-2000, GDZ. Corrected an error in the calculation of the
G(T).
Version 8, 5-Dec-2000, GDZ, DAMTP. Fixed a bug when checking the
values in the .splups files.
V. 9, GDZ, 10-Apr-2001, corrected another error in the G(T) calc.
V. 10, GDZ, 30-Oct-2001 added CHIANTI Version number, changed isothermal
to logt_isothermal and added logem_isothermal to the output.
Removed the use of log T values, and the calculation.
Added err_msg, a text string with an error message.
Version 11, 8-Nov-01, GDZ
Changed the MASTERLIST keyword. Allowed double use, as a keyword
and as a string.
Version 12, 18-Nov-01, Peter Young
Added /NOPROT, RPHOT and RADTEMP keywords; changed upsilon
common block.
Version 13, 29-Apr-02, GDZ
Added no_protons, photoexcitation, rphot, radtemp
tags into the output structure.
Revised Header. Added the PROGRESS widget.
Added a check if the ion is present in the Ion. Frac. file.
Added informative MSG keyword.
Now uses savegen.pro to save the structure.
V. 14, 28-May-2002, GDZ:
generalize directory concatenation to work for Unix, Windows
and VMS.
modified tags:
limits -> wvl_limits
ioneq_t -> ioneq_logt
wvlunits -> wvl_units
intunits -> int_units
time --> date
no_protons -> add_protons
dem_t -> dem_logt
const_nte -> model_name
const_nte_value -> model_ne, model_pe, model_te
removed from the main STR: .ioneq ctemp
removed from the LINES STR: fwhm flabel
Added model_file input for model Ne(T). Had to considerably
modify the routine.
V. 15, 16-Jul-2002, Peter Young
Added keyword /NO_SUM_INT.
V. 16, 22-Jul-2002, Peter Young
Corrected a bug related to /NO_SUM_INT; logt_isothermal
can now be specified without logem_isothermal.
V. 17, 23-July-2002, GDZ
Modified a few checks on the input. Also, now it prints the
error message whenever the program aborts
V.18, 2-Aug-02, GDZ
Replaced all DBLARR and DOUBLE calls with floats.
Added a comment at the end of the routine when it finishes.
V.19, 8-Aug-02, GDZ
Added more error info. Changed the use of the DENSITY
keyword. It is possible to input an array of values if
LOGT_ISOTHERMAL is defined.
V. 20, 17-Sep-02, GDZ
Corrected a bug: the functional (T,N) form
is now only accepted if DENSITY is an array with at least two
values.
V. 21, 19-Sep-02, GDZ
Corrected the definition of the UNITS in case LOGT_ISOTHERMAL
is defined.
V. 22, 19-Aug-03, Peter Young
when logem_isothermal is input, the derived EM is now a
DOUBLE array rather than FLOAT, preventing infinities when
logem_isothermal values are large.
V. 23, 4-Oct-2003, GDZ
modified the input to POP_SOLVER, now it is dealt with an
input structure.
V.24, 10-Oct-2003, K.Dere
added modifications from K.Dere, regarding the satellite
lines.
V 25, 3-Nov-2003, GDZ
Added GROUP keyword, and modified so the progress widget can
be stopped within IDL Windows.
V 26, 17-Apr-2004, Enrico Landi (EL)
Added the recombination/ionization population processes.
V.27, 13-Apr-2005, EL
Replaced the main loop to calculate individual line intensities
with operations among arrays, to speed the whole program in case
of large numbers of lines.
VERSION : 27, 13-Apr-2004
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
SYNTHETIC
PURPOSE:
calculates a synthetic spectrum
PROCEDURE:
Calculations are done assuming either constant density or
constant pressure. See CH_SYNTHETIC for details.
CALLING SEQUENCE:
SYNTHETIC,Wmin, Wmax, Fwhm, Pressure= , Lambda, Spectrum ,List_wvl, List_ident
,[/all, density=, /cont, min_abund=]
INPUTS:
Wmin: lower limit of the wavelength/energy range of interest (Angstroms)
Wmax: upper limit of the wavelength/energy range of interest (Angstroms)
Pressure: pressure in emitting region (cm^-3 K), or
Density: density in emitting region (cm^-3).
Fwhm: gaussian full width at half maximum of the resolution of the output
spectrum, for example, to correspond to an observed spectrum
OPTIONAL INPUTS:
SNGL_ION: specifies a single ion (e.g. SNGL_ION='Fe_10' to include
only Fe X lines) or an array (e.g. SNGL_ION=['Fe_10','Fe_11']
to include only Fe X and Fe XI lines) of ions to be used
instead of the complete set of ions specified in
!xuvtop/masterlist/masterlist.ions
MASTERLIST: string of a specific masterlist file (full path).
If defined as a keyword (i.e. MASTERLIST=1 or /MASTERLIST)
then a widget allows the user to select a user-defined
masterlist file. Shortcut for SNGL_ION.
MIN_ABUND: If set, calculates the continuum only from those elements which
have an abundance greater than min_abund.
DEM_NAME: Name of the DEM file to used. If not passed, then the user
is prompted for it.
ABUND_NAME: Name of the abundance file to use. If not passed, then
the user is prompted for it.
IONEQ_NAME: Name of the ionization equilization name to use. If not
passed, then the user is prompted for it.
RPHOT Distance from the centre of the star in stellar radius units.
I.e., RPHOT=1 corresponds to the star's surface. (Default is
infinity, i.e., no photoexcitation.)
RADTEMP The blackbody radiation field temperature (default 6000 K).
OUTPUTS:
Lambda: wavelength array of calculated synthetic spectrum
Spectrum: intensity array (erg cm^-2 s^-1 str^-1 Ang^-1),
unless keyword photons is set then output is is
photons cm^-2 s^-1 str^-1 Ang^-1
List_wvl: a list of wavelengths for use with synthetic_plot.pro
List_ident: a list of line identifications for use with
synthetic_plot.pro
OPTIONAL OUTPUTS:
KEYWORD PARAMETERS:
ALL: if set, then all lines are included. This means that lines for which
only an approximate wavelength is known (only theoretical energy
levels are known) are included.
SNGL_ION: specifies a single ion (e.g. SNGL_ION='Fe_10' to include
only Fe X lines) or an array (e.g. SNGL_ION=['Fe_10','Fe_11']
to include only Fe X and Fe XI lines) of ions to be used
instead of the complete set of ions specified in
!xuvtop/masterlist/masterlist.ions
MASTERLIST: string of a specific masterlist file (full path).
If defined as a keyword (i.e. MASTERLIST=1 or /MASTERLIST)
then a widget allows the user to select a user-defined
masterlist file. Shortcut for SNGL_ION.
CONTINUUM: if set, then the continuum (free-free, free-bound and
two-photon) are included
MIN_ABUND: If set, calculates the continuum only from those elements which
have an abundance greater than min_abund. Can speed up the
calculations. For example, from Allen (1973):
abundance (H) = 1.
abundance (He) = 0.085
abundance (C) = 3.3e-4
abundance (O) = 6.6e-4
abundance (Si) = 3.3e-5
abundance (Fe) = 3.9e-5
PHOTONS: if set, intensities are in photons cm^-2 s^-1 sr^-1 Ang^-1
DEM_NAME: Name of the DEM file to used. If not passed, then the user
is prompted for it.
ABUND_NAME: Name of the abundance file to use. If not passed, then
the user is prompted for it.
IONEQ_NAME: Name of the ionization equilization name to use. If not
passed, then the user is prompted for it.
NOPROT If set, then proton rates are not included.
RADTEMP Specify background radiation temperature (default: 6000 K)
RPHOT Distance from the centre of the star in stellar radius units.
I.e., RPHOT=1 corresponds to the star's surface. (Default is
infinity, i.e., no photoexcitation.)
CALLS:
CH_SYNTHETIC, MAKE_CHIANTI_SPEC, READ_ABUND, STRPAD
COMMON BLOCKS: None
RESTRICTIONS:
SIDE EFFECTS:
EXAMPLE:
> synthetic,100.,200.,.1, pressure=1.e+16,lambda,spectrum,list_wvl,list_ident
CATEGORY:
spectral synthesis.
WRITTEN :
Version 1, 8-Nov-01, Giulio Del Zanna (GDZ).
Rewritten as a wrapper routine using the new procedures.
Compared to the previous SYNTHETIC, these are the main changes:
1-Now the PRESSURE value is a keyword as the DENSITY value
2-The keyword CONT is now renamed CONTINUUM
3-Added keywords PHOTONS, DEM_NAME, ABUND_NAME, IONEQ_NAME
4-MASTERLIST can now be used both as an input string or as a keyword.
5-The description of the line details now has the spectroscopic
designation at the end.
MODIFICATION HISTORY:
Version 2, 18-Nov-01, Peter Young
Added /noprot, rphot and radtemp keywords.
Version 3, 11-Dec-01, Peter Young
Changed call to ch_strpad to strpad.
Version 4, 28-Apr-02, GDZ, changed the call to make_chianti_spec and the
continuum keyword.
V. 5, 22-May-2002 GDZ. Removed const_net definitions.
V.6, 14-Feb-2003 GDZ.
Fixed a bug (keyword PHOTONS was not active).
VERSION : 6, 14-Feb-2003
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
synthetic_plot
PURPOSE:
to plot out synthetic spectra calculated with Synthetic
and interactively identify spectral lines
CATEGORY:
spectroscopy
CALLING SEQUENCE:
SYNTHETIC_PLOT,Wvl,Spectrum,List_wvl,List_ident,fwhm
INPUTS:
Wvl: wavelength array from synthetic
Spectrum: spectrum intensity array from synthetic
List_wvl: string array of spectral line wavelengths
List_ident: string array of spectral line identifications
Fwhm: when the cursor is clicked, spectral lines with fwhm
(Angstroms) of the cursor are printed out
KEYWORDS
xrange: similar to IDL keyword to determine wavelength range of plot
OUTPUTS:
None
PROCEDURE:
Click the left mouse button to select a wavelength
Click the right mouse button to exit
EXAMPLE:
> synthetic,100.,200.,.1,1.e+15,wvl,spectrum,list_wvl,list_ident
> synthetic_plot,wvl,spectrum,list_wvl,list_ident,0.1
note: it is not necessary for the two fwhm values to be the same
MODIFICATION HISTORY:
Written by: Ken Dere
May 1996: Version 2.0
Dec. 1998: revised by Ken Dere
V.4, 23 Oct 2000 GDZ, added the log keyword, and changed a few things
in the plot.
Ver.5, 12-Dec-2001, Peter Young
Changed style of printing, and made method of extracting the
intensity from list_ident compatible with the new version of
isothermal.pro.
VERSION 5 12 Dec 2001 Peter Young
NAME
ISOTHERMAL
PURPOSE:
Computes spectra from isothermal plasmas. A number of isothermal
plasmas can be included.
Note that this routine has a number of unique features that
distinguish it from the other CHIANTI synthetic spectra routines.
See the Programming Notes section.
INPUTS:
WMIN Minimum of desired wavelength range in Angstroms.
WMAX Maximum of desired wavelength range in Angstroms.
WAVESTEP Bin size of spectrum (in Angstroms)
TEMP Electron temperature (or array).
OPTIONAL INPUTS
PRESSURE Electron pressure in units of cm^-3 K.
EDENSITY Electron density in units of cm^-3.
EM Emission measure. The units of EM govern the intensity
units of the emission lines (i.e., column or volume
emission measure units). If EM is not specified, then the
emission measure is set to (N_e * N_H) where N_e is
derived from the user-specified PRESSURE or EDENSITY,
and N_H is derived from the routine PROTON_DENS.PRO.
SNGL_ION Rather than include the entire list of CHIANTI ions in
the calculation, this input can be used to select a
single ion, or a number of different ions. E.g.,
SNGL_ION='s_2' or SNGL_ION=['s_2','s_3','s_4'].
RADTEMP The blackbody radiation field temperature (default 6000 K).
RPHOT Distance from the centre of the star in stellar radius units.
I.e., RPHOT=1 corresponds to the star's surface. (Default is
infinity, i.e., no photoexcitation.)
MASTERLIST The list of ions that will be considered for the
spectrum is contained in the masterlist file in the
CHIANTI directories. The user can specify his own file
through this keyword. E.g.,
masterlist='/user/home/masterlist.ions'
ABUND_NAME: Name of the abundance file to use. If not passed, then
the user is prompted for it.
IONEQ_NAME: Name of the ionization equilization name to use. If not
passed, then the user is prompted for it.
KEYWORDS
NOPROT Switch off the inclusion of proton rates in the level
balance.
ERGS The units of the output spectrum are by default in photons.
Setting /ERGS switches to erg units.
CONT Adds continuum (free-free, free-bound, two-photon) to
spectrum.
OUTPUTS:
LAMBDA Wavelength array of calculated synthetic spectrum.
SPECTRUM Intensity array. The units depend on the user inputs to
ISOTHERMAL -- see note below.
LIST_WVL A list of wavelengths for use with synthetic_plot.pro
LIST_IDENT A list of line identifications for use with
synthetic_plot.pro
PROGRAMMING NOTES
Intensity Units
---------------
The units are of the form photons cm^3 s^-1 sr^-1 * (units of EM),
changing to ergs if the /ergs keyword is set.
The volume emission measure (N_e*N_H*V) has units cm^-3.
The column emission measure (N_e*N_H*h) has units cm^-5.
Unique features
---------------
The emission lines in the final spectrum have no width and thus
each occupies a single pixel of the spectrum. The size of the
pixels are set by WAVESTEP.
As stated above, the units of the output spectrum are
photons cm^3 s^-1 sr^-1, i.e., there is no "per angstrom" term.
This means that (i) the height of the emission lines in the
spectrum does not change with varying WAVESTEP, and (ii) the height
of continuum does change with WAVESTEP.
COMMON BLOCKS
ELEMENTS
CALLS
CH_SYNTHETIC, READ_ABUND, CH_GET_FILE, CONCAT_DIR, FREEFREE,
FREEBOUND, TWO_PHOTON
HISTORY
Ver.1, 8-Apr-02, Peter Young Rutherford Appleton Laboratory,
p.r.young@rl.ac.uk
Tries to replicate the behaviour of the original ISOTHERMAL which
was found in earlier versions of CHIANTI (v.3 and earlier).
MODIFICATION HISTORY
Ver. 2, Giulio Del Zanna (GDZ), 28-Apr-02
Added abund_name,ioneq_name keywords.
Also, added photons keyword in call to MAKE_CHIANTI_SPEC.
Ver. 3, Peter Young, 24-May-02
Modified to produce arrays of spectra when an array of
temperatures is given
V.4, GDZ, 28-May-02
Added a couple of checks on file existence and modified the call
to ch_synthetic and make_chianti_spec due to change of keyword
names.
V.5, Peter Young, 16-Jul-02
Restructured routine to avoid crashes when a large number of
temperatures is input.
V.6, 8-Aug-02 GDZ
Added one error checking
V.7, 18-Aug-03, Peter Young
Added EM= keyword.
VERSION :
Version 6, 8-Aug-02
PROJECT : CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME : MAKE_CHIANTI_SPEC
PURPOSE :
To create a CHIANTI synthetic spectrum
CALLING SEQUENCE:
IDL> make_chianti_spec, TRANSITIONS, LAMBDA, SPECTRUM,$
[BIN_SIZE= , ,INSTR_FWHM= , PIXEL=PIXEL, BINSIZE = BINSIZE, $
WRANGE= , ALL=ALL, continuum=continuum, $
ABUND_NAME= , MIN_ABUND=, photons=photons, effarea=effarea
PROCEDURE :
From information contained in the structure TRANSITIONS, constructs
a synthetic spectrum
By default, routine assumes thermal widths for lines.
PROGRAMMING NOTES
The line profile is constructed using the IDL gaussint routine.
For a wavelength pixel centred at l and with width dl, gaussint
is used to integrate the Gaussian up to l-dl/2 and up to l+dl/2.
The difference between the two is the intensity in this pixel.
INPUTS :
TRANSITIONS, the structure created by ch_synthetic.pro.
OPT. INPUTS :
LAMBDA Array of wavelengths (X-values). If not defined as input, it is
calculated on the basis of BIN_SIZE, and returned as an output.
If defined as input, the routine checks that there are at least
10 points in the wavelength range defined by WRANGE. If there
are, the corresponding subset of LAMBDA is returned, otherwise
the routine exits with an error.
BIN_SIZE Bin size in Angstroms of the spectrum to be created. A linear
spectrum is assumed. In case an effective area file is used, the
wavelenghts in the file (that might not be linear) are used to
create the spectrum, and this bin size looses any meaning.
WRANGE Allows a subset of the wavelength range to be turned into
a spectrum. When using syn_plot, this speeds up the routine
a lot if you've elected to zoom in on a region.
INSTR_FWHM Instrumental FWHM (Angstroms).
In case an effective area file is used, The line intensities
contributing to each bin are summed, and subsequently convolved
with a gaussian of full-width-half-maximum FWHM if FWHM is not
set = 0 . Please make sure that the FWHM value (if not set to
zero) is larger than the bin size.
ABUND_NAME A CHIANTI abundance file name can be set.
It allows the abundance file given in transitions.abund_name
(if present) to be over-ridden. Note that it also used for
the continuum calculation.
MIN_ABUND: If set, calculates line intensities only from those elements
which have an abundance greater than min_abund.
Can speed up the calculations. For example, from Allen
(1973):
abundance (H) = 1.
abundance (He) = 0.085
abundance (C) = 3.3e-4
abundance (O) = 6.6e-4
abundance (Si) = 3.3e-5
abundance (Fe) = 3.9e-5
FILE_EFFAREA
The Effective Area File (TWO COLUMNS - wavelengths in
Angstroms and cm^2 values) If defined, then the spectrum is
multiplied with these values. Any input LAMBDA value is
over-written by the wavelenghts in the file (that might not
be linear) and are used to create the spectrum.
Note that this option only works well if a sufficient number
of bins is given. The line intensities contributing to each
bin are summed, and subsequently convolved with a gaussian
of full-width-half-maximum FWHM, if FWHM is not set = 0.
Please note that the convolution might not work if a small
number of bins is defined.
OUTPUTS :
LAMBDA Array of wavelengths (X-values).
If not defined as input, it is
calculated on the basis of BIN_SIZE, and returned as an output.
If defined as input, the routine checks that there are at least
10 points in the wavelength range defined by WRANGE. If there
are, the corresponding subset of LAMBDA is returned, otherwise
the routine exits with an error.
SPECTRUM A structure containing all the information:
LAMBDA The array of X-values
SPECTRUM The array of Y-values
UNITS The units of LAMBDA, SPECTRUM
INSTR_FWHM The Instrumental FWHM
BIN_SIZE Width of the Bins (fixed) in angstroms
ABUND_NAME The CHIANTI abundance file name
ABUND The abundance values
MIN_ABUND The minimum abundance value used
ABUND_REF The references
CONTINUUM The values of the continuum (if calculated)
FILE_EFFAREA The Effective Area File used (optional)
EFFAREA The array of effective area values
(optional - same size of LAMBDA)
.LINES An array of structures, for all the lines used
to calculate the SPECTRUM.
The tags are the same as those created by
CH_SYNTHETIC, plus
.PEAK The peak intensity of the line in the spectrum
(approx. value)
OPT. OUTPUTS:
BINSIZE If BIN_SIZE is not specified, then the spectrum
bin-sizes are computed automatically, and the size of the
bin returned in BINSIZE.
KEYWORDS :
PIXEL The spectrum is given in /pixel units rather /ang
(DISABLED)
ALL Add lines that originally had negative wavelengths
PHOTONS If set=1, the output intensities will be in photons instead of
ergs.
CONTINUUM
If set, then the continuum is added to the
spectrum.
verbose
CALLS :
PRY: GET_ATOMIC_WEIGHTS
Chianti: FREEBOUND, FREEFREE
COMMON (with freefree freebound and two_photon):
elements,abund,abund_ref,ioneq,ioneq_logt,ioneq_ref
RESTRICTIONS: The input structure has to be of the type created by ch_synthetic.
The LAMBDA, EFFAREA values must be ordered in wavelength and the
LAMBDA values must be in Angstroms.
SIDE EFFECTS: None known yet.
EXAMPLES :
make_chianti_spec, output_struct, LAMBDA, SPECTRUM,$
bin_size=0.01, instr=0.1
CATEGORY :
spectral synthesis.
PREV. HIST. :
WRITTEN :
Peter Young , CfA, pyoung@cfa.harvard.edu 1-Sept-2000
MODIFICATION HISTORY:
Version 1, PRY 1-Sept-2000
Version 2, Giulio Del Zanna (GDZ) 10-Oct-2000
put ALL keyword, removed the FWHM obsolete and
confusing call. Reorganised various minor things.
Version 3, PRY 19-Oct-2000
Corrected the way continuum is treated for an isothermal
spectrum.
V. 4, 2-Nov-2001 GDZ. Now MIN_ABUND is effective not only in the
continuum calculation but also in the line spectrum.
Modified for the use of logt_isothermal
V.5, GDZ, added EFFAREA keyword: an ascii file with lambdas and
effective areas can be read
in. The line intensities are
calculated in a different way.
Also, changed the output.
V.6, GDZ, 28-Apr-02 redefined completely the OUTPUT structure.
Major revision (added two_photon verbose).
V.7, GDZ, 3-May-2002
fixed a bug, when negative angpix values occur.
V.8, GDZ, 22 May 2002, changed some tags of the output, and
added min_abund in the continuum call.
V.9, GDZ, 30-May-02 replaced fix() with round()
V. 10, 15-July-2002 , GDZ
changed the location of Effective area files.
V.11 14-Aug-02, GDZ
speeded up the routine, by changing the way the PEAK tag is
added to the structure. The drawback is that only the
'standard v.4 tags' are allowed, and future additions will
have to be dealt properly.
v.12 2-Dec-2002, GDZ.
Fixed a bug: Removed the plotting of the window with the effective areas.
v.13 26-Apr-2005, Enrico Landi (EL)
Fixed a minor bug: if the lines were more than 32768 (2^15), the main
loop crashed.
v.14 22-Jul-2005 GDZ
-fixed a bug. When the routine was run once without
defining the lambdas, and then with the lambdas
defined (the units were switched to photons)
-fixed a bug. When the effective areas were used,
all lines were used to create the spectrum.
-added hard-wired switch to photons when using
effective area files.
-added the keV option
-now can output a spectrum only with the continuum
(i.e. even if no emission lines are present).
15, 2-Aug-2005, GDZ
Added a check on the input structure. If it was
calculated with ch_synthetic and the keyword
/no_sum_int, it cannot be used here.
VERSION : 15, 2-Aug-2005
STILL TO DO:
-speed up the routine with the use of arrays.
-add the option to select only a list of ions, also in the
continuum procedures.
-Allow the use of user-defined line profiles.
-Enable PIXEL keyword
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
ASCII_WVL_DEM
PURPOSE:
create an ascii file of predicted spectral line intensities and
wavelengths corresponding to a selected abundance and differential
emission measure (DEM).
PROCEDURE:
Calculations are done assuming either constant density or
constant pressure. See CH_SYNTHETIC for details.
CALLING SEQUENCE:
ASCII_WVL_DEM, Wmin, Wmax, Pressure= , [density= ], $
[outfile= , mini= , sngl_ion=, /photons, /all, /masterlist], $
[/noprot, radtemp=, rphot=]
INPUTS:
Wmin: lower limit of the wavelength range of interest (Angstroms)
if kev keyword set, then wmin is in kev
Wmax: upper limit of the wavelength range of interest (Angstroms)
if kev keyword set, then wmax is in kev
Pressure: pressure in emitting region (cm^-3 K), or
Density: density in emitting region (cm^-3).
OPTIONAL INPUTS:
OUTFILE: the name of the output ascii file to be written.
MINI: Minimum intensity for a line to be included in the output.
SNGL_ION: specifies a single ion (e.g. SNGL_ION='Fe_10' to include
only Fe X lines) or an array (e.g. SNGL_ION=['Fe_10','Fe_11']
to include only Fe X and Fe XI lines) of ions to be used
instead of the complete set of ions specified in
!xuvtop/masterlist/masterlist.ions
MASTERLIST: string of a specific masterlist file (full path).
If defined as a keyword (i.e. MASTERLIST=1 or /MASTERLIST)
then a widget allows the user to select a user-defined
masterlist file. Shortcut for SNGL_ION.
OUTPUTS:
an ascii file: linelist.txt in the working directory by default
OPTIONAL OUTPUTS:
KEYWORD PARAMETERS:
MINI: Minimum intensity for a line to be included in the output
SNGL_ION: specifies a single ion (e.g. SNGL_ION='Fe_10' to include
only Fe X lines) or an array (e.g. SNGL_ION=['Fe_10','Fe_11']
to include only Fe X and Fe XI lines) of ions to be used
instead of the complete set of ions specified in
!xuvtop/masterlist/masterlist.ions
MASTERLIST: string of a specific masterlist file (full path).
If defined as a keyword (i.e. MASTERLIST=1 or /MASTERLIST)
then a widget allows the user to select a user-defined
masterlist file. Shortcut for SNGL_ION.
PHOTONS: units will be in photons rather than ergs
KEV: wavelengths will be given in kev rather than Angstroms
ALL: if set, then all lines are included. This means that lines
for which
only an approximate wavelength is known (only theoretical energy
levels are known) are included.
OUTFILE: the name of the output ascii file to be written. By
default a
file 'linelist.txt' in the user's working directory will be
created.
NOPROT If set, then the default setting will be NOT to use
proton rates. This can be changed within the routine.
RADTEMP Specify background radiation temperature (default: 6000 K)
RPHOT Distance from the centre of the star in stellar radius units.
I.e., RPHOT=1 corresponds to the star's surface. (Default is
infinity, i.e., no photoexcitation.)
CALLS:
CH_SYNTHETIC, CH_LINE_LIST
COMMON BLOCKS: None
RESTRICTIONS:
SIDE EFFECTS:
EXAMPLE:
IDL> ascii_wvl_dem,400.,800., out='linelist',$
pressure=1.e+15,mini=1.,sngl_ion='o_4'
CATEGORY:
spectral synthesis.
WRITTEN :
Version 1, 8-Nov-01, Giulio Del Zanna (GDZ).
Compared to the previous ASCII_WVL_DEM, these are the main changes:
1-Rewritten as a wrapper routine using the new procedures.
2-Now the PRESSURE value is a keyword.
3-The calculations can be done at constant DENSITY.
4-Energies (keV) can be output instead of wavelengths in Angstroms
5-MASTERLIST can now be used both as an input string or as a keyword.
MODIFICATION HISTORY:
18-Nov-01, Peter Young
Added /noprot, rphot and radtemp keywords
V. 2, 22-May-2002 GDZ. Removed const_net definitions.
VERSION : 2, 22-May-2002
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
LATEX_WVL_DEM
PURPOSE:
create a latex file of predicted spectral line intensities and
wavelengths corresponding to a selected abundance and differential
emission measure (DEM)
PROCEDURE:
Calculations are done assuming either constant density or
constant pressure. See CH_SYNTHETIC for details.
CALLING SEQUENCE:
LATEX_WVL_DEM, Wmin, Wmax, Pressure= , [density= ], $
[outfile= , mini= , sngl_ion=, /photons, /all, /masterlist]
INPUTS:
Wmin: lower limit of the wavelength/energy range of interest (Angstroms)
if kev keyword set, then wmin is in kev
Wmax: upper limit of the wavelength/energy range of interest (Angstroms)
if kev keyword set, then wmax is in kev
Pressure: pressure in emitting region (cm^-3 K), or
Density: density in emitting region (cm^-3).
OPTIONAL INPUTS:
OUTFILE: the name of the output latex file to be written.
MINI: Minimum intensity for a line to be included in the output.
SNGL_ION: specifies a single ion (e.g. SNGL_ION='Fe_10' to include
only Fe X lines) or an array (e.g. SNGL_ION=['Fe_10','Fe_11']
to include only Fe X and Fe XI lines) of ions to be used
instead of the complete set of ions specified in
!xuvtop/masterlist/masterlist.ions
MASTERLIST: string of a specific masterlist file (full path).
If defined as a keyword (i.e. MASTERLIST=1 or /MASTERLIST)
then a widget allows the user to select a user-defined
masterlist file. Shortcut for SNGL_ION.
RPHOT Distance from the centre of the star in stellar radius units.
I.e., RPHOT=1 corresponds to the star's surface. (Default is
infinity, i.e., no photoexcitation.)
RADTEMP The blackbody radiation field temperature (default 6000 K).
OUTPUTS:
a latex file: 'linelist.tex' in the working directory by default
OPTIONAL OUTPUTS:
KEYWORD PARAMETERS:
MINI: Minimum intensity for a line to be included in the output
SNGL_ION: specifies a single ion (e.g. SNGL_ION='Fe_10' to include
only Fe X lines) or an array (e.g. SNGL_ION=['Fe_10','Fe_11']
to include only Fe X and Fe XI lines) of ions to be used
instead of the complete set of ions specified in
!xuvtop/masterlist/masterlist.ions
MASTERLIST: string of a specific masterlist file (full path).
If defined as a keyword (i.e. MASTERLIST=1 or /MASTERLIST)
then a widget allows the user to select a user-defined
masterlist file. Shortcut for SNGL_ION.
PHOTONS: units will be in photons rather than ergs
KEV: wavelengths will be given in kev rather than Angstroms
ALL: if set, then all lines are included. This means that lines for which
only an approximate wavelength is known (only theoretical energy
levels are known) are included.
OUTFILE: the name of the output latex file to be written. By default a
file 'linelist.tex' in the user's working directory will be
created.
NOPROT If set, then proton rates are not included.
CALLS:
CH_SYNTHETIC, CH_LINE_LIST
COMMON BLOCKS: None
RESTRICTIONS:
SIDE EFFECTS:
EXAMPLE:
> latex_wvl_dem, 400.,800., mini=1, pressure=1.e+15,sngl_ion='o_4'
CATEGORY:
spectral synthesis.
WRITTEN :
Version 1, 8-Nov-01, Giulio Del Zanna (GDZ).
Compared to the previous LATEX_WVL_DEM, these are the main changes:
1-Rewritten as a wrapper routine using the new procedures.
2-Now the PRESSURE value is a keyword.
3-The calculations can be done at constant DENSITY.
4-MASTERLIST can now be used both as an input string or as a keyword.
MODIFICATION HISTORY:
Version 2, 18-Nov-01, Peter Young
Added /noprot, rphot and radtemp keywords.
V. 3, 22-May-2002 GDZ. Removed const_net definitions.
VERSION : Version 3, 22-May-2002
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
CH_LINE_LIST
PURPOSE:
Create a latex or an ascii file of predicted spectral line intensities and
wavelengths corresponding to selected parameters, as calculated by
CH_SYNTHETIC. Needs as input the line intensity structure calculated by
CH_SYNTHETIC (default) or the SPECTRUM structure output of
MAKE_CHIANTI_SPEC.
CALLING SEQUENCE:
IDL> ch_line_list, transitions, outname, latex=latex, ascii=ascii, $
abundfile=abundfile, min_abund=min_abund, $
wmin=wmin,wmax=wmax,$
SPECTRUM=SPECTRUM, minI=minI,photons=photons,kev=kev, $
all=all,no_sort=no_sort, sngl_ion=sngl_ion
PROCEDURE:
INPUTS:
The structure created by CH_SYNTHETIC
OPTIONAL INPUTS:
Wmin: lower limit of the wavelength/energy range of interest (Angstroms)
if kev keyword set, then wmin is in kev
Wmax: upper limit of the wavelength/energy range of interest (Angstroms)
if kev keyword set, then wmax is in kev
Mini: Minimum intensity for line to be included in output
SNGL_ION: specifies a single ion (or a list of ions) to be used instead
of the complete set of ions specified in the structure.
MIN_ABUND: If set, outputs only those elements which
have an abundance greater than min_abund.
For example, from Allen (1973):
abundance (H) = 1.
abundance (He) = 0.085
abundance (C) = 3.3e-4
abundance (O) = 6.6e-4
abundance (Si) = 3.3e-5
abundance (Fe) = 3.9e-5
KEYWORD PARAMETERS:
LATEX: Create a latex file (default, exclusive with /ASCII)
ASCII: Create an ascii file (exclusive with /LATEX)
MINI: Minimum intensity for line to be included in output
PHOTONS: units will be in photons rather than ergs
KEV: wavelengths will be given in kev rather than Angstroms
ALL: if set, then all lines are included. This means that lines for which
only an approximate wavelength is known, denoted by a negative
wavelength value in the .wgfa file, are included.
These lines are listed in the file with a * preceding the wavelength.
NO_SORT:
If set, then the lines are *not* sorted in wavelength (or energy).
SPECTRUM
If set, IT IS ASSUMED that the input structure is the SPECTRUM
structure output of MAKE_CHIANTI_SPEC, where the line
intensities have already been multiplied by the abundance factor!!
OUTPUTS:
A latex (default) or an ascii file with the line list
CALLS: Many SolarSoft routines.
COMMON BLOCKS:
none.
SIDE EFFECTS:
EXAMPLE:
> ch_line_list, trans,'linelist.tex',/latex, wmin=100.,wmax=200.,/all
CATEGORY:
spectral synthesis.
WRITTEN :
Version 1, Written by: Giulio Del Zanna (GDZ) Oct 31 2001.
MODIFICATION HISTORY:
V.2, 9-Nov-2001 GDZ.
Now correctly handles the case when no
abundances are passed to the routine.
v.3, 11-Dec-2001, PRY.
Removed calls to get_utc and anytim2cal. Replaced with
call to systime()
v.4, 29-Apr-02, GDZ
Fixed a few small bugs, some caused by a change in the
database file format for V4.
Added only_mini, file_effarea keywords to be able to use as
input the structure created by MAKE_CHIANTI_SPEC.
V.5, 22-May-2002, GDZ
generalized directory concatenation to work for
Unix, Windows and VMS. changed tags.
Changed and added various things, including flabel
V.6, 12-Aug-02, GDZ
Modified the output labeling, and fixed two bugs: 1) when /all was used
the keyword /mini was not working. 2) min_abund was not working
properly when /spectrum was used. Reduced size of latex output (was
12pt)
Changed output in isothermal case (no Tmax given). Better info printed (GDZ)
V.7, 3-Nov-03 GDZ
Modified format e8.2 to e9.2 for Windows compatibility.
v.8, 18-Jul-2005 GDZ
Modified the use of the /kev keyword. Also, now the
routine accepts input structure with the units in keV.
v.9, 4-Aug-2005 GDZ
Corrected a bug introduced in the previous version.
Also switched to \documentclass when making the latex file.
VERSION : 9, 4-Aug-2005
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME: EMISS_CALC()
PURPOSE:
To compute the emissivities of all lines of a specified ion over
given ranges of temperature and density.
CATEGORY:
Scientific analysis
EXPLANATION:
This routine calculates:
hc
-- * N_j * A_ji
lamb
where hc = 1.986 * 10^-8 erg AA, lamb is in angstroms, N_j is the
fraction of ions in the upper emitting level j, and A_ji is the
radiative decay rate for the transition.
The emissivities are stored in a structure called EMISS that also
holds the wavelength of the transition, the level numbers i and j
and also a 'flag', which is set to -1 if the wavelength is negative.
The temperature and density ranges can be specified directly using
the TEMP and DENS keywords. Setting TMAX to the log T_max of the
ion, gives emissivities for 3 temperatures: log T_max +- 0.15.
If DENS is not set, then it is set to 8 to 12 in 0.5 dex intervals.
STDENS allows the start density (of 8) to be changed to some other
value; ND allows the number of densities to be varied (default 9);
DINT allows the density interval to be varied (default 0.5).
CALLING SEQUENCE:
EMISS=EMISS_CALC (IZ, ION, [ TEMP=TEMP, DENS=DENS, RADT=RADT, $
DIL=DIL, PATH=PATH, /NO_DE, /PROTON, $
QUIET, PRESSURE=PRESSURE)
EXAMPLES:
EMISS=EMISS_CALC(26,13)
EMISS=EMISS_CALC(26,13,temp=[6.2],dens=findgen(5)+8)
EMISS=EMISS_CALC(26,13,temp=findgen(11)/100.+5.5,press=10.^15)
INPUTS:
IZ The atomic number of the ion
ION The spectroscopic number of the ion (e.g., 12 = XII)
OPTIONAL INPUTS:
TEMP Direct specification of the temperature range (log T)
DENS Direct specification of the density range (log Ne)
RADTEMP Specify background radiation temperature (default: 6000 K)
RPHOT Distance from the centre of the star in stellar radius units.
I.e., RPHOT=1 corresponds to the star's surface. (Default is
infinity, i.e., no photoexcitation.)
PATH If specified, the routine will look for the atomic data in
the PATH directory, rather than in the CHIANTI database
PRESSURE If a temperature array is given, and PRESSURE set,
then the emissivities will be evaluated at the
specified temperatures, but for densities =
pressure/temperature. If DENS is set, then it will
be ignored. The pressure is assumed to be in units
K * cm^-3.
ABUND_FILE The name of a CHIANTI abundance file. This is used for
calculating the proton to electron ratio. Default is
!abund_file.
IONEQ_FILE The name of a CHIANTI ion balance file. This is used for
calculating the proton to electron ratio and evaluating
the T_max of the ion. Default is !ioneq_file.
SUM_MWL_COEFFS An array of coefficients of the same length as
the array of temperatures. Electron and proton rate
coefficients will be calculated at each temperature
and then a weighted sum of the coefficients is
performed using SUM_MWL_COEFFS. This allows
non-Maxwellian energy distributions to be
incorporated into the level balance equations.
This keyword is not compatible with the PRESSURE
keyword.
RADFUNC The name of a user-defined function that will generate
a radiation spectrum as a function of temperature.
This radiation field will replace the black-body that
is assumed when using the RADTEMP keyword in the call
to pop_solver.
KEYWORDS:
NO_DE Drops the hc/lambda factor in the computation of the
emissivities. Useful for emission measure analyses involving
photon fluxes
NOPROT If set, then the default setting will be NOT to use
proton rates. This can be changed within the routine.
QUIET If set, don't list the temperatures and densities at which
the emissivities are caculated.
DIEL If the dielectronic recombination files exist for the ion,
then these are used to derive the emissivities.
NO_SETUP If emiss_calc is called from a routine where the ELEMENTS
common block has already been set up, then this keyword
stops emiss_calc loading up the common block
OUTPUT:
The structure that is output has the following tags:
.ion_name string; contains ion name, e.g., 'Fe XIII'
.lambda float; contains wavelength
.level1 integer; contains lower level of transition
.lvl1_desc string; gives config. and term of lower level
.level2 integer; contains upper level of transition
.lvl2_desc string; gives config. and term of upper level
.flag integer; a flag to mark particular transitions
.em fltarr(nt,nd); contains emissivities at particular
temperatures and densities.
PROGRAMMING NOTES:
Transitions where only theoretical energies are available for at
least one of the two levels are assigned negative wavelengths in
the .wgfa file. With emiss_calc, the wavelength is set to be
positive, but emiss.flag is set to -1 for that transition, so
that other routines can keep track of the theoretical wavelengths.
COMMON BLOCKS:
ELVLC, WGFA, UPSILON, RADIATIVE, PROTON, ELEMENTS, IONREC
CALLS:
SETUP_ION, POP_SOLVER
ZION2FILENAME, ZION2SPECTROSCOPIC
READ_PROT, PROTON_DENS
HISTORY:
Ver 1, PRY 28-Jun-97
Ver 2, PRY 26-Jul-97 - corrected problem with size of emiss
Ver 3, PRY 22-Sep-97 - allowed photo-excitation to be included
Ver 4, PRY 6-Jul-98 - added PATH
Ver 5, PRY 5-Sep-98 - added call to choose_ioneq
Ver 6, PRY 3-Dec-98 - dosen't crash if no params given
Ver 7, PRY 9-Jan-99 - allowed proton rates to be added through
/PROTON keyword.
Ver 8, PRY 10-Feb-99 - added /QUIET keyword
Ver 9, PRY 8-Oct-99 - for H-like ions, there's a 2-photon
transition with a non-zero A-value that is
assigned a zero wavelength (as it does not
produce an emission line). This caused
problems for dens_plotter, so emiss_calc
now removes this transition from the emiss
structure.
Ver 10, PRY 15-Dec-99 - added deu to the upsilon common block in
order to be consistent with the main Chianti
routines.
Ver 11, PRY 8-May-00 - added PRESSURE
Ver 12, PRY 17-Aug-00 - changed elvlc common block to match new
version of pop_solver
Ver 13, PRY 10-Oct-00 - now calls setup_ion to read ion data
Ver 14, PRY 1-Jun-00 - removed call to choose_ioneq; now makes use
of the !ioneq_file system variable.
Ver 15, PRY 25-Sep-01 - modified for 9-point splines and proton rates
Ver 16, PRY 9-Dec-01 - completed changes for v.4
V. 17, 29-May-2002, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
Now we only call zion2filename, corrected the call to
zion2spectroscopic (dielectronic cases were not handled
correctly).
V.18, 6-Aug-2002, Peter Young
Theoretical wavelengths weren't being flagged so this
has now been corrected.
V.19, 7-Aug-2002, Peter Young
Stopped "lines" with zero wavelength being included in
the structure.
Changed the use of CHIANTI system variables.
V.20 14-Aug-2002, GDZ
Modified the use of Version, to make it compatible with the
other CHIANTI v.4 routines.
V.21 10-Sep-2002, Peter Young
Allowed a density of 1 cm-3 to be input.
V.22 7-Aug-2003, Peter Young
Added keyword /NO_SETUP
V.23 4-Oct-2003, GDZ
modified the input to POP_SOLVER, now it is dealt with an
input structure.
V.24 5-Mar-2004, Enrico Landi (EL)
included ionization and recombination as level population
processes
V.25 6-May-2005, EL
corrected a minor incompatibility with IDL 5.6
V.26 5-Jul-2005, Peter Young
added RADFUNC= and SUM_MWL_COEFFS= keywords
V.27 1-Aug-2005, Peter Young
re-ordered code for setup to prevent crash
V.28 3-Aug-2005,GDZ
fixed bug, only define ioneq_ionrec when files are
there (it was failing with neutrals)
VERSION : 28 3-Aug-2005
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
GOFNT
PURPOSE:
calculate G(n,T) function (line intensity per unit emission measure)
PROCEDURE:
Must specify line to form numerator and denominator
Multiple lines can be selected and summed
This can now be done interactively or not.
CALLING SEQUENCE:
GOFNT,Ion,Wmin,Wmax,Temperature,G,Desc,density=
INPUTS:
Ion: the CHIANTI style name of the ion, i.e., 'c_5' for C V
Wmin: minimum of wavelength wavelength range of interest in Angstroms
Wmax: maximum of wavelength wavelength range of interest
OPTIONAL INPUTS:
Many - see the keywords below.
OUTPUTS:
Temperature: an array of temperatures
G: Intensity per unit emission measure N_e*N_H*dh [cm^-5].
The resulting units are therefore erg cm^+3 s^-1 sr-1
C(T)= 1/(4*!pi)* A_ji*(N_j(X^+m)/N(X^+m))*(N(X^+m)/N(X))*(N(X)/N(H))/N_e
unless /NOABUND is set, in which case
C(T)= 1/(4*!pi)* A_ji*(N_j(X^+m)/N(X^+m))*(N(X^+m)/N(X))/N_e
G(T)=(hc/lambda_ij)*C(T)
G(T)= C(T) if /PHOTONS is set
Desc: a short string description of the selected line
OPTIONAL OUTPUTS:
Postscript file withthe plot of G(T).
Ascii file with the values of G(T).
VALUE The array of G(T) values corresponding to logt0.
KEYWORD PARAMETERS:
PRESSURE: specifies the pressure in units of NeT (cm^-3 K). G is then
calculated at that constant pressure
DENSITY: specifies the electron density in units of cm^-3. G is then
calculated at that value of the electron density. If neither the
density or pressure keywords are specified, a constant
density of 1.e+10 cm^-3 is assumed
PHOTONS: sets output in photons/s
RPHOT Distance from the centre of the star in stellar radius units.
I.e., RPHOT=1 corresponds to the star's surface. (Default is
infinity, i.e., no photoexcitation.)
RADTEMP The blackbody radiation field temperature (default 6000 K).
OUTFILE: the (optional) name of the output ascii file where a
listing of the line ratio intensity as a function of
temperature is saved.
PSFILE: the (optional) name of the output postscript file
where a plot of the chosen G(T) is saved.
NOABUND: If set, the G(T)'s are not multiplied by the abundance
factor.
NOPROT If set, then proton rates are not included.
ABUND_NAME: Name of the abundance file to use. If not passed, then
the user is prompted for it.
IONEQ_NAME: Name of the ionization equilization name to use. If not
passed, then the user is prompted for it.
ALL If set, all lines are calculated, including
the 'unobserved' ones.
LOWER_LEVELS
UPPER_LEVELS
Arrays with the indices of the lower and upper levels
pertaining to the transitions you want to get.
If more than one couple is given, the G(T) of the
lines are summed.
Obviously, the given indices must correspond to transitions
that are present in the database.
ARCSECS
If set, units are photons (ergs) cm^+3 s^-1 arcsecs^-2
VERBOSE
LOGT0 An array of log T values for which the G(T) are wanted.
VALUE The array of G(T) values corresponding to logt0.
If logt0 is defined, and within the limits of the
temperatures for which G(T) NE 0, the array VALUE
is returned with a simple spline interpolation.
CALLS:
CH_SYNTHETIC, CH_XMENU_SEL
COMMON BLOCKS: None
RESTRICTIONS:
SIDE EFFECTS:
EXAMPLE:
IDL> gofnt,'o_5',1000.,1500.,temp,goft,desc,density=1.e+16
CATEGORY:
spectral diagnostics
MODIFICATION HISTORY:
Written by: Ken Dere
October 4, 1996: Version 1
14-Jul-2000 Peter Young, now calls pop_solver
26-Oct-2000 GDZ, added keyword NOABUND to not multiply for the abundence
factor. Corrected header for a wrong description.
Version 4, 21-Dec-2000, William Thompson, GSFC
Modified for better cross-platform graphics capability
Version 5, 8-Nov-01, Giulio Del Zanna (GDZ).
Rewritten as a wrapper routine using the new procedures.
Corrected a few inconsistencies in the plots.
Version 6, 18-Nov-01, Peter Young
Added /noprot, rphot and radtemp keywords.
Version 7, 11-Dec-01, Peter Young
Changed call to ch_strpad to strpad.
V. 8, GDZ, 28-Apr-02 Added abund_name,ioneq_name keywords.
v. 9 21-May-2002, GDZ
generalized directory concatenation to work for
Unix, Windows and VMS.
V.10, 15-Aug-02, GDZ
Major revision:
-Removed the call to ch_xselect_s, that did not work for long lists.
-Added a '*' in the line lists, to identify 'unobserved' lines.
-Replaced the commands to create PS file, to make it
cross-platform compatible.
-Added a large number of cosmetics, mainly lables to the axes and
titles.
-Added keyword ALL. If set, all lines are calculated, including
the 'unobserved' ones.
-Added the CHIANTI version number in the outputs.
V. 11, 19-Sep-02, GDZ
Clarified output units.
V.12, 25-Jun-03, GDZ,
Added many new keywords. Now is possible to use the routine
with background jobs, in not-interactive mode.
Rounded the wavelengths.
V.13, 24-Sept-2003, GDZ
Corrected a bug when logt0 is not defined.
V.14, 3-Nov-03 GDZ
Modified format e8.2 to e9.2 for Windows compatibility.
VERSION : 14, 3-Nov-03
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME: G_OF_T()
PURPOSE:
To compute DE * F(T) * n_j * A_ji / N_e for selected emission lines.
Option to also multiply by abundance.
CATEGORY:
Atomic data analysis
EXPLANATION:
The G-of-T function has a number of different definitions in the
literature. In the most basic form it contains only the temperature
dependent parts (i.e., 0.83*n_j*A_ji*F(T)/N_e), but often a Delta-E
and Ab(X) are added as well. Here, the _default_ form is:
Delta-E * 0.83 * n_j * A_ji * F(T) / N_e
By using the NO_DE keyword, the Delta-E can be omitted, while the
ABUND keyword allows the abundance to be added.
The function that is output is tabulated over 4.0 <= logT <= 8.0
in 0.1 dex intervals. If you want the function tabulated over
smaller intervals, run the ION_INTERP routine afterwards.
CALLING SEQUENCE:
EXAMPLES:
RESULT=G_OF_T(26,13)
RESULT=G_OF_T(26,13,DENS=7)
RESULT=G_OF_T(26,13,GOFTFILE='my_gofts.dat')
RESULT=G_OF_T(26,13,/ABUND)
RESULT=G_OF_T(26,13,ABUND_FILE=ABUND_FILE, IONEQ_FILE=IONEQ_FILE)
INPUTS:
IZ: The atomic number of the ion (e.g., 26 = Fe)
ION: The spectroscopic number of the ion (e.g., 12 = XII)
OPTIONAL INPUTS:
DENS: The logarithm (to base 10) of the density at which the
emissivities are calculated (default=10.)
WRANGE: Wavelength range from which lines are required. If not
specified, then the 10 strongest lines are displayed.
PATH: If specified, the routine will look for the atomic data in
the PATH directory, rather than in the CHIANTI database
GOFTFILE: By specifying GOFTFILE as a filename, the G-of-T
function can be stored in this file. It is stored
in the form a structure (called goft_list) with the following
labels:
goft_list.label: user-specified string, e.g., 'Si XII 520.7'
goft_list.func: fltarr(41), the G-of-T function
If the same GOFTFILE is specified for another ion, then the
G-of-T function is added to the existing structure. The GOFTFILE
option only works when the ABUND keyword is set. The GOFTFILE is
meant to be read by another routine called GOFT_PLOTTER.
INDEX: Allows the direct specification of indices within the
emiss structure. This allows the g_of_t routine to be
run without the menu widget appearing. If the /quiet
keyword is also used, then the routine will run "silently".
RADTEMP Specify background radiation temperature (default: 6000 K)
RPHOT Distance from the centre of the star in stellar radius units.
I.e., RPHOT=1 corresponds to the star's surface. (Default is
infinity, i.e., no photoexcitation.)
IONEQ_FILE Directly specify the name of the ion balance file
(including directory path). If not set, then a widget will
pop up allowing you to select a file.
ABUND_FILE Directly specify the name of the abundance file
(including directory path). One can also use /ABUND_FILE
to include the abundances in the G(T) function, but allow
the abundance file to be picked through a widget.
KEYWORDS:
NOPROT If set, then the default setting will be NOT to use
proton rates. This can be changed within the routine.
NO_DE: If set, then the output function will *not* contain the
Delta-E. Be careful using this if you are using blends
(as Delta-E is different for different wavelengths).
QUIET If set, then don't plot the G(T) function or print out
information to the screen.
CALLS:
EMISS_CALC, READ_IONEQ, READ_ABUND, EMISS_SELECT, CH_GET_FILE
RESTRICTIONS:
HISTORY:
Ver.1, PRY 28-Jul-97.
Ver.2, PRY 22-Jun-98, added CHOOSE keyword and removed RAY
Ver.3, PRY 4-Aug-98, cosmetic changes following comments of Giulio
Del Zanna
Ver.4, PRY 5-Sep-98, added call to choose_ioneq
Ver.5, PRY 23-Sep-98, added GOFTFILE input
Ver.6, PRY 3-Mar-99, now calls EMISS_SELECT
Ver.7, PRY 6-Nov-00, removed the /CHOOSE keyword; also changed
PICKFILE call to DIALOG_PICKFILE and removed call
to the CHIANTI routine ADD\_SUBDIR
Ver.8, PRY 18-Oct-01, adjusted for proton rates, and
photoexcitation.
Ver.9, PRY 9-Dec-01, completed modifications for v.4 of CHIANTI.
V. 10, 21-May-2002, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
Ver. 11, 9-Feb-2005, Peter Young
changed keyword_set(abund) to keyword_set(abund_file)
VERSION : 11, 9-Feb-2005
PROJECT
CHIANTI http://wwwsolar.nrl.navy.mil/chianti.html
CHIANTI is an atomic database package for the calculation of
continuum and emission line spectra from astrophysical plasmas. It is a
collaborative project involving the Naval Research Laboratory
(Washington DC, USA), the Arcetri Observatory (Firenze, Italy), and the
Cambridge University (United Kingdom).
NAME
dens_plotter
PURPOSE:
A widget-based routine to allow the analysis of density sensitive
ratios. **** See RATIO_PLOTTER for details. *****
CALLING SEQUENCE:
IDL> dens_plotter, name,$
EM, PATH=PATH, NOPROT=NOPROT, $
IONEQ_FILE=IONEQ_FILE, ABUND_FILE=ABUND_FILE
INPUTS:
The ion name (e.g. 'si_3' for Si III)
OPTIONAL INPUTS : none
OUTPUTS:
OPTIONAL OUTPUTS:
EM: Save the displayed emissivities to structure EM.
**** See RATIO_PLOTTER for details. *****
KEYWORDS:
PATH: Data in the CHIANTI format that is not in the CHIANTI
database can be read by specifying the directory in which
it lies through PATH.
ABUND_FILE The name of a CHIANTI abundance file. This is used for
calculating the proton to electron ratio. Default is
!abund_file.
IONEQ_FILE The name of a CHIANTI ion balance file. This is used for
calculating the proton to electron ratio and evaluating
the T_max of the ion. Default is !ioneq_file.
NOPROT If set, then the default setting will be NOT to use
proton rates. This can be changed within the routine.
CALLS: CONVERTNAME RATIO_PLOTTER
COMMON BLOCKS: none
RESTRICTIONS:
SIDE EFFECTS:
CATEGORY:
spectral synthesis.
EXAMPLE:
IDL> dens_plotter, 'si_9'
WRITTEN :
Ver.1, 18-Apr-2002, Giulio Del Zanna (GDZ) written as a wrapper
routine to call RATIO_PLOTTER.
MODIFIED: V.2, 2-Aug-2005, GDZ
Now the routine handles the dielectronic case
VERSION : 2, 2-Aug-2005
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
DENSITY_RATIOS
PURPOSE:
to calculate line intensity ratios as a function of electron density
CATEGORY:
scientific analysis
CALLING SEQUENCE:
DENSITY_RATIOS,Ion,Wmin,Wmax,Dmin,Dmax,Density,Ratio,Description
INPUTS:
Ion: the CHIANTI style name of the ion, i.e., 'c_5' for C V
wmin: minimum of the wavelength range of interest in Angstroms
wmax: maximum of the wavelength range of interest in Angstroms
dmin: log10 of the minimum desired density (8. = 10^8 cm^(-3) )
dmax: log10 of the maximum desired density range
INTERACTIVE INPUTS:
Must select the line for the numerator and denominator
It is possible to select multiple lines to be summed
KEYWORD PARAMETERS:
OUTFILE: the (optional) name of the output ascii file where a
listing of the line ratio intensity as a function of
density is saved. For example, outfile='den_rat.lis'
PSFILE: the (optional) name of the output postscript file
where a plot of the choses density sensitive line
ratio is saved. For example, psfile='den_rat.ps'
TEMP: to specify the temperature, otherwise the temperature at
the peak
of the ionization equilibrium is used. For example,
temp=1.e+6
/PHOTONS: if set, the ratio will be in photon units, as opposed
to ergs
RADTEMP Specify background radiation temperature (default: 6000 K)
RPHOT Distance from the centre of the star in stellar radius units.
I.e., RPHOT=1 corresponds to the star's surface. (Default is
infinity, i.e., no photoexcitation.)
NOPROT If set, then the default setting will be NOT to use
proton rates. This can be changed within the routine.
VERBOSE To print out information about the lines.
OUTPUTS:
Density: an array of the density values for which the selected
intensity ratio calculated
Ratio: an array of line intensity ratios
Description: a string describing the transitions selected
Plots the intensity ratio of the selected line as a function of density
COMMON BLOCKS:
None.
CALLS
EMISS_CALC, ION2SPECTROSCOPIC, CONVERTNAME, READ_IONEQ,
CH_XMENU_SEL
EXAMPLE:
density_ratios,'o_5',1000.,1500.,8.,13.,den,rat,desc
choose the ratio of 1371.294 to 1218.393
MODIFICATION HISTORY:
Written by: Ken Dere
March 1996: Version 2.0
May 28, 1996: Ken Dere added psfile keyword/option
Sept 1996: modified to work with VMS
and added keyword TEMP, Ken Dere
Feb. 2000: Modified for Version 3, K. Dere
14-Jul-2000 Peter Young, now calls pop_solver
26-Sep-2001 Modified for 9-point splines and proton rates;
added radtemp and rphot keywords for photoexcitation.
20-Nov-2001 Routine now calls emiss_calc to get emissivities.
V.9, 21-May-2002, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
V.10, 1-Aug-02 GDZ
Changed all the formats.
V.11, 06-Aug-02 GDZ
Changed the use of CHIANTI system variables.
V.12, 15-Aug-02, GDZ
Major revision:
-Added the keyword VERBOSE, to avoid printing out long lists of lines.
-Removed the call to ch_xselect_s, that did not work for long lists.
-Added a '*' in the line lists, to identify 'unobserved' lines.
-Replaced the commands to create PS file, to make it
cross-platform compatible.
-Added a large number of cosmetics, mainly lables to the axes and
titles, that were missing.
-Removed plotting in windows already present.
-Added the CHIANTI version number in the outputs.
V.13, 3-Nov-03 GDZ
Modified format e8.2 to e9.2 for Windows compatibility.
VERSION : 13, 3-Nov-03
Project : SOHO - CDS
Name : CHIANTI_NE
Purpose : Calculate and plot CHIANTI density sensitive line ratios.
Explanation : CHIANTI_NE (density ratios)
calculates and plots density sensitive line ratios based on
the CHIANTI atomic database of Dere et. al.
Use : IDL> chianti_ne
Inputs : None
Opt. Inputs : None
Outputs : None
Opt. Outputs: None.
Keywords : None
Calls : CALC_DMM_DR, plot_dmm_dr_fig , make_ion_list
Common : dmm_dr_com dmm_lines(with plot_dmm_dr_fig),
Restrictions: None
Side effects: None
Category : Spectral
Prev. Hist. : Started life as 'density_ratios' by Ken Dere
Written : C D Pike, RAL, 13-Jan-96
Modified : Added selection of els/ions from master file. CDP, 21-Jan-96
Added hardcopy of line list, refs etc. CDP, 22-Jan-96
Include multiple lines in ratio. CDP, 27-Jan-96
General upgrade and added temp/unit selections. CDP, 6-Jun-97
Added intensity ratio selection. CDP, 17-Jul-97
Added wavelength ranges. CDP, 18-Jul-97
Fixed typos introduced in version 7. CDP, 22-Jul-97
Float the user-supplied Log Temperature. CDP, 1-Aug-97
Update for IDL v5.2. CDP, 20-Apr-99
v. 11 Update list of elements. CDP, 18-Jun-99
V.12. Added ratio plots and hardcopies in linear scale, added various
checks and minor things. Added a few tags to the
ratio output structure (temperature, units, comment).
Removed optional output structure.
Updated to be CHIANTI v.3-compatible.
Giulio Del Zanna, DAMTP, 7-Oct-2000
Version 13, 21-Dec-2000, William Thompson, GSFC
Modified for better cross-platform graphics capability
V. 14, 1-May-02, GDZ, commented out a few refs.
V. 15, 21-May-2002, GDZ, changed the way to deal with fonts.
V.16, 17-Sep-2002 (GDZ)
added !p.multi = 0 upon exit and added X-label.
Version : Version 16, 17-Sep-2002
Project : SOHO - CDS
Name : PLOT_CHIANTI_NE
Purpose : Plots a density sensitive ration saved from CHIANTI_NE
Explanation : The routine CHIANTI_NE allows the calculated ratio to be
saved in an IDL save file. This routine retrieves and
plots the ratio.
Use : IDL> plot_chianti_ne, file, data
Inputs : file - save file name (an extension of .CH_NE will have
been added, specifying this is optional)
Opt. Inputs : None
Outputs : None
Opt. Outputs: data - returns the retrieved ratio structure
Keywords : log. If set, a log-log plot is produced.
Calls : print2d_plot
Common : None
Restrictions: None
Side effects: None
Category : Synthetic spectra
Prev. Hist. : None
Written : C D Pike, RAL, 7-Oct-96
Modified : v.2 Added a few extra things, including possibility to create a
postscript file.
Giulio Del Zanna (DAMTP), 10-Oct-2000
Version : Version 2, GDZ 10-Oct-2000
PROJECT
CHIANTI http://wwwsolar.nrl.navy.mil/chianti.html
CHIANTI is an atomic database package for the calculation of
continuum and emission line spectra from astrophysical plasmas. It is a
collaborative project involving the Naval Research Laboratory
(Washington DC, USA), the Arcetri Observatory (Firenze, Italy), and the
Cambridge University (United Kingdom).
NAME
temp_plotter
PURPOSE:
A widget-based routine to allow the analysis of temperature sensitive
ratios. **** See RATIO_PLOTTER for details. *****
CALLING SEQUENCE:
IDL> temp_plotter, name,$
EM, PATH=PATH, NOPROT=NOPROT, $
IONEQ_FILE=IONEQ_FILE, ABUND_FILE=ABUND_FILE
INPUTS:
The ion name (e.g. 'si_3' for Si III)
OPTIONAL INPUTS : none
OUTPUTS:
OPTIONAL OUTPUTS:
EM: Save the displayed emissivities to structure EM.
**** See RATIO_PLOTTER for details. *****
KEYWORDS:
PATH: Data in the CHIANTI format that is not in the CHIANTI
database can be read by specifying the directory in which
it lies through PATH.
ABUND_FILE The name of a CHIANTI abundance file. This is used for
calculating the proton to electron ratio. Default is
!abund_file.
IONEQ_FILE The name of a CHIANTI ion balance file. This is used for
calculating the proton to electron ratio and evaluating
the T_max of the ion. Default is !ioneq_file.
NOPROT If set, then the default setting will be NOT to use
proton rates. This can be changed within the routine.
CALLS: CONVERTNAME RATIO_PLOTTER
COMMON BLOCKS: none
RESTRICTIONS:
SIDE EFFECTS:
CATEGORY:
spectral synthesis.
EXAMPLE:
IDL> temp_plotter, 'fe_13'
WRITTEN :
Ver.1, 18-Apr-2002, Giulio Del Zanna (GDZ) written as a wrapper
routine to call RATIO_PLOTTER (written by P. Young).
MODIFIED: V.2, 2-Aug-2005, GDZ
Now the routine handles the dielectronic case
VERSION : 2, 2-Aug-2005
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
TEMPERATURE_RATIOS
PURPOSE:
calculate and display temperature sensitivity of line intensity ratios
CATEGORY:
spectral diagnostics
PROCEDURE :
The intensities (Population of the upper level * A) of the lines within
the selected ion are first calculated, either at constant pressure or
at constant density (however specified in the input). They are plotted
in window 0. The intensities relative to the brightest reference line
are then plotted in window 1. A widget allows the user to select a
number of lines (at least one!) for the numerator of the ratio, and a
number of lines for the denominator. In case of multiple selections, the
line intensities are summed. The ratio values are plotted in window 2, and
optionally also saved in a text file. A postscript file can also be
created. The ratio values, calculated at twice and half the prescribed
density are also calculated and overplotted, to show how the
temperature ratio also depends on the density.
CALLING SEQUENCE:
> temperature_ratios,ion,wmin,wmax,Log10(tempmin),Log10(tempmax),temperature,ratio,description,$
[pressure= ,density= , psfile= , outfile= ]
EXAMPLE:
> temperature_ratios,'c_4',100.,1600.,4.,6.,temp,ratio,desc,density=1.e+10,$
psfile='test.ps', outfile='test.txt'
then select the ratio of (384.17 + 384.19) to 1550.772
INPUTS:
Ion: the CHIANTI style name of the ion, i.e., 'c_5' for C V
Wmin: minimum wavelength limit in Angstroms
Wmax: maximum wavelength limit in Angstroms
Tempmin: log10 of lowest temperature of interest, i.e. 4 for 10.^4 K
Tempmax: log10 of highest temperature of interest
OPTIONAL INPUTS:
Must specify indices of lines which are to form the ratio
RADTEMP The blackbody radiation field temperature (default
6000 K).
RPHOT Distance from the centre of the star in stellar radius
units. I.e., RPHOT=1 corresponds to the star's surface.
(Default is infinity, i.e., no photoexcitation.)
ABUND_FILE The name of a CHIANTI abundance file. This is used for
calculating the proton to electron ratio. Default is
!abund_file.
IONEQ_FILE The name of a CHIANTI ion balance file. This is used for
calculating the proton to electron ratio and evaluating
the T_max of the ion. Default is !ioneq_file.
OUTPUTS:
Temperature: an array of temperatures spanning Tempmin to Tempmax
Ratio: an array of the intensity ratio of the selected lines
Desc: a short string description of the selected line ratio
OPTIONAL OUTPUTS:
Ps and/or text file with the intensity ratio.
KEYWORD PARAMETERS:
DENSITY: calculates the intensity ratios for constant density.
If neither density or pressure are specified, a constant
density of 1.e+10 cm^-3 is assumed as default.
OUTFILE: the (optional) name of the output ascii file where a
listing of the line ratio intensities as a function of
temperature is saved.
PSFILE: the (optional) name of the output postscript file
where a plot of the chosen temperature sensitive line
ratio is saved.
NOPROT Switches off inclusion of proton rates.
VERBOSE prints out information
CALLS:
read_ioneq, convertname, ion2spectroscopic,ion2filename,
ch_xmenu_sel, emiss_calc
COMMON:
elvlc,l1a,term,conf,ss,ll,jj,ecm,eryd,ecmth,erydth,eref
wgfa, wvl,gf,a_value
upsilon,t_type,deu,c_ups,splups
proton, pstr, pe_ratio
radiative, radt, dilute
RESTRICTIONS:
SIDE EFFECTS: None known yet.
MODIFICATION HISTORY:
Written by: Ken Dere
May 1996: Version 2.0, Ken Dere
April 2000: V. 3 Ken Dere modified for V3
14-Jul-2000 V. 4 Peter Young, now calls pop_solver
2-Oct-2000 V. 5 Giulio Del Zanna, corrected an error in the
creation of the string list of the lines in the ratio.
Also corrected a few minor errors.
Removed the device,window_state call, and added a few
other 'cosmetic' adjustments.
Version 6, 21-Dec-2000, William Thompson
Modified for better cross-platform capability.
Ver.7, 6-Dec-2001, Peter Young
Revised to call emiss_calc for the emissivities.
V.8, 21-May-2002, GDZ
generalized directory concatenation to work for
Unix, Windows and VMS.
V.9, 1-Aug-02 GDZ
Fixed label mistake, and changed all the formats.
V.10, 06-Aug-02 GDZ
Changed the use of CHIANTI system variables.
V.11, 15-Aug-02, GDZ
Major revision:
-Added the keyword VERBOSE, to avoid printing out long lists of lines.
-Removed the call to ch_xselect_s, that did not work for long lists.
-Added a '*' in the line lists, to identify 'unobserved' lines.
-Replaced the commands to create PS file, to make it
cross-platform compatible.
-Added a large number of cosmetics, mainly lables to the axes and
titles, that were missing.
-Removed plotting in windows already present.
-Removed the pressure keyword.
-Added the CHIANTI version number in the outputs.
V.12, 3-Nov-03 GDZ
Modified format e8.2 to e9.2 for Windows compatibility.
VERSION : 12, 3-Nov-03
Project : SOHO - CDS
Name : CHIANTI_TE
Purpose : Calculate and plot CHIANTI temperature sensitive line ratios.
Explanation : CHIANTI_TE (temperature ratios)
calculates and plots temp. sensitive line ratios based on
the CHIANTI atomic database of Dere et. al.
Use : IDL> chianti_te
Inputs : None
Opt. Inputs : None
Outputs : None
Opt. Outputs: none.
Keywords : None
Calls : CALC_DMM_TR, make_ion_list
Common : dmm_tr_com
Restrictions: None
Side effects: None
Category : Spectral
Prev. Hist. : Started life as 'temperature_ratios' by Ken Dere
Written : H.E. Mason, 3 Oct 1996
Modified : Update for IDL v5.2. CDP, 20-Apr-99
V.3. Update list of elements. CDP, 18-Jun-99
V.4 , Giulio Del Zanna (DAMTP), 10 Oct-2000
Rewritten completely, adding possibility to select the density
at which the intensities are calculated, making this routine
compatible ith CHIANTI v.3, and with the same characteristics as
CHIANTI_TE. Added ratio plots and hardcopies in linear scale, added various
checks and minor things. Added a few tags to the
ratio output structure (density, units, comment).
Removed optional output structure.
Version 5, 21-Dec-2000, William Thompson, GSFC
Modified for better cross-platform graphics capability
V. 6, 1-May-02, GDZ, commented out a few refs.
V.7, 21-May-2002, GDZ, fixed a bug with the fonts.
V.8, 17-Sep-2002 (GDZ)
added !p.multi = 0 upon exit and added X-label
Version : Version 8, 17-Sep-2002
Project : SOHO - CDS
Name : PLOT_CHIANTI_TE
Purpose : Plots a temperature sensitive ratio saved from CHIANTI_TE
Explanation : The routine CHIANTI_TE allows the calculated ratio to be
saved in an IDL save file. This routine retrieves and
plots the ratio.
Use : IDL> plot_chianti_te, file, data
Inputs : file - save file name (an extension of .CH_TE will have
been added, specifying this is optional)
Opt. Inputs : None
Outputs : None
Opt. Outputs: data - returns the retrieved ratio structure
Keywords : log. If set, a log-log plot is produced.
Calls : None
Common : None
Restrictions: None
Side effects: None
Category : Synthetic spectra
Prev. Hist. : None
Written : C D Pike, RAL, 7-Oct-96
Modified : v.2 Added a few extra things, including possibility to create a
postscript file.
Giulio Del Zanna (DAMTP), 10-Oct-2000
Version : Version 2, GDZ 10-Oct-2000
PROJECT : CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME
FREEFREE
PURPOSE:
This routine computes the free-free continuum (bremsstrahlung)
using the fitting formulae of Itoh et al. (ApJS 128, 125, 2000)
and Sutherland (MNRAS 300, 321, 1998).
The Itoh et al. data are valid for smaller ranges for temperature
and wavelength than Sutherland and so for points outside of their
ranges we use the data of Sutherland.
INPUTS
TEMP Temperature (in K).
WVL Wavelengths in angstroms. Can be a scalar or vector.
OUTPUTS
INT Free-free continuum intensity in units of
10^-40 erg cm^3/s/sr/Angstrom
[ integral(N_H N_e dh) in cm^-5 ] if a DEM is not defined.
If DEM values are defined, it is assumed that they are given
as N_H N_e dh/dT. The units are 10^-40 erg/cm^2/s/sr/Angstrom.
If T is given as a 1-D array, then the output will be a 2-D array,
with one element for each temperature and wavelength
(but also see SUMT).
OPTIONAL INPUTS
DEM_INT An array of same length as TEMP which contains the
differential emission measure values at each temperature.
The emissivity at each temperature is multiplied by the
DEM value and the d(logT) value.
MIN_ABUND This keyword allows the specification of a minimum abundance,
such that any elements with an abundance (relative to
hydrogen) less than MIN_ABUND will not be included in the
calculation. E.g., MIN_ABUND=1e-5.
KEYWORDS
NO_SETUP By default the routine asks the user which ion balance
and abundance files to use via pop-up widgets. If
/no_setup is used then this data is taken from the common
block.
SUMT The default is to output the intensity array as an array
of size (nwvl x nT). Setting this keyword performs a sum
over the temperatures to yield a vector of same size as
the input wavelengths, thus producing the complete
free-free spectrum.
PHOTONS Gives output emissivity in photon units rather than ergs.
CALLS
SUTHERLAND, ITOH
COMMON BLOCKS
ELEMENTS
PROGRAMMING NOTES
The Itoh fitting formula is only valid for (6.0 LE logT LE 8.5).
For temperatures below this, we thus switch to the Sutherland
fitting formula. There is very little (<1%) between the two at
logT=6.
Itoh also has a constraint on the quantity u=hc/kTl (l=wavelength),
such that (-4 LE log u LE 1.0). The upper limit corresponds to the
continuum being cut-off prematurely at low wavelengths. E.g., for
T=10^6 the cutoff is at 14.39 angstroms. For these low wavelengths
we also use the Sutherland data to complete the continuum. Note that
the continuum at these wavelengths is very weak
MODIFICATION HISTORY
Ver.1, 5-Dec-2001, Peter Young
Completely revised to call the separate itoh.pro and
sutherland.pro routines.
V. 2, 21-May-2002, Giulio Del Zanna (GDZ),
Corrected the description of the units.
Added verbose keyword and a printout.
V. 3, 22-May-2002, Peter Young (PRY)
Added MIN_ABUND optional input.
Changed ioneq_t to ioneq_logt (GDZ).
V 4, 25-May-2005, GDZ
corrected routine header.
VERSION : 4, 25-May-2005
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME
FREEBOUND
PURPOSE:
Calculates the free-bound (radiative recombination) continuum.
INPUTS
TEMP Temperature in K (can be an array).
WVL Wavelength in angstroms (can be an array).
OUTPUTS
INT Free-bound continuum intensity in units of
10^-40 erg cm^3/s/sr/Angstrom
( integral(N_H N_e dh) in cm^-5) if a DEM is not defined.
If DEM values are defined, it is assumed that they are given
as N_H N_e dh/dT. The units are 10^-40 erg/cm^2/s/srAngstrom
If T is given as a 1-D array, then the output will be a
2-D array, with one element for each temperature and
wavelength (but also see SUMT).
OPTIONAL INPUTS
DEM_INT The intensity array is multiplied by a DEM number for
each temperature. DEM_INT needs to be of the same size
as TEMPERATURE. It is needed for the synthetic spectrum
routines.
IZ Only calculate continuum for the element with atomic
number IZ
ION (To be used in conjunction with IZ.) Calculated continuum
for a single ion (IZ, ION).
KEYWORDS
NO_SETUP If the procedure setup_elements has already been called
then the keyword /nosetup should be set to avoid
repeating this step
MIN_ABUND If set, calculates the continuum only from those
elements which have an abundance greater than
min_abund. Can speed up the calculations. For
example:
abundance (H) = 1.
abundance (He) = 0.085
abundance (C) = 3.3e-4
abundance (Si) = 3.3e-5
abundance (Fe) = 3.9e-5
PHOTONS The output spectrum is given in photon units rather
than ergs.
SUMT When a set of temperatures is given to FREEBOUND, the
default is to output INTENSITY as an array of size
(nwvl x nT). With this keyword set, a summation over
the temperatures is performed.
VERBOSE Output information from FREEBOUND.
COMMON BLOCKS
ELEMENTS
CALLS
FREEBOUND_ION, SETUP_ELEMENTS, READ_KLGFB, GET_IEQ
HISTORY
Ver.1, 24-Jul-2002, Peter Young
Ver.2, 26-Jul-2002, Peter Young
revised call to freebound_ion; corrected ion fraction problem
V 3, 25-May-2005, GDZ
corrected routine header.
VERSION : 3, 25-May-2005
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
TWO_PHOTON
PURPOSE:
Calculate the 2 photon continuum from a hot, low density plasma.
For the hydrogen isoelectronic sequence, A values
Parpia, F. A., and Johnson, W. R., 1982, Phys. Rev. A, 26, 1142.
and distribution function as a function of Z is taken from:
Goldman, S.P. and Drake, G.W.F., 1981, Phys Rev A, 24, 183
For the helium isoelectronic sequence, A values are from:
Drake, G.W.F., 1986, Phys. Rev. A, 34, 2871
and the distribution function as a function of Z is taken from:
Drake, G.W.F., Victor, G.A., Dalgarno, A., 1969, Phys.
Rev. A, 180, 25.
in this paper the distribution is only given up to Z=10 but
extrapolation to higher Z appears to be OK.
Note that, unlike the freefree and freebound routines, two_photon
requies the electron density to be specified. This is because there
is a call to pop_solver
CALLING SEQUENCE:
TWO_PHOTON,temperature, density, wavelength, intensity
INPUTS:
TEMPERATURE Temperature in degrees Kelvin, can be a 1D array
WAVELENGTH Wavelengths in Angstroms.
OPTIONAL INPUTS:
DENSITY Electron density in cm^-3, can also be a 1D array
of the same size as Temperature. If there are several
temperatures specified but only one density, then
density is assumed the same at all temperatures.
If not specified, then default densities of 10^10
electrons/cm^3 are assumed.
DEM_INT An array of same length as TEMP which contains the
differential emission measure values at each temperature.
The emissivity at each temperature is multiplied by the
DEM value and the d(logT) value.
KEYWORD PARAMETERS:
NO_SETUP: If the procedure setup_elements has already been called
then the keyword /no_setup should be set to avoid
repeating this step
MIN_ABUND: If set, calculates the continuum only from those
elements which have an abundance greater than min_abund.
Can speed up the
calculations. For example:
abundance (H) = 1.
abundance (He) = 0.085
abundance (C) = 3.3e-4
abundance (Si) = 3.3e-5
abundance (Fe) = 3.9e-5
SUMT If several temperatures have been specified, then /sumt
will sum the emissivities over the different
temperatures, giving an output INTENSITY that has the
same size as WAVELENGTH.
PHOTONS If set the continuum emissivity is output in photon
units rather than erg units.
VERBOSE
OUTPUTS:
RAD 2 photon continuum intensity in units of
10^-40 erg cm^3/s/sr/Angstrom per unit emission measure
( integral(N_H N_e dh) in cm^-5) if a DEM is not defined.
If DEM values are defined, it is assumed that they are given
as N_H N_e dh/dT. The units are
10^-40 erg/cm^2/s/sr/Angstrom
If T is given as a 1-D array, then the output will be a 2-D array,
with one element for each temperature and wavelength
(but also see SUMT).
CALLS
POP_SOLVER, SETUP_ION, SETUP_ELEMENTS, READ_MASTERLIST,
CONVERTNAME
COMMON BLOCKS:
ELEMENTS, ELVLC, WGFA, UPSILON, PROTON
EXAMPLE:
> two_photon,1.e+6,3.e+10,wvl,int
> two_photon,1.e+6,3.e+10,wvl,int,min_abund=3.e-5
> two_photon,1.e+6,3.e+10,wvl,int,/no_setup
PROGRAMMING NOTES
For He 2-photon decays, the distribution function is from Table II
of Drake et al. (1969), except that the values have been divided by
the A-value from Drake (1986).
MODIFICATION HISTORY:
Written by: Ken Dere
February 2001: Version 1.0
Ver.2, 19-Dec-2001, Peter Young
Now allows an array of temperatures.
Added /SUMT keyword.
Added DEM_INT= optional input.
Switched to using spl_init & spl_interp for the spline fits.
Corrected a small bug.
Ver.3, 20-Dec-2001, Peter Young
Corrected a bug related to density indices.
Ver.4, 23-Apr-2002, Peter Young
Added /photons keyword.
Ver.5, 28-May-2002, Peter Young
Corrected way in which DEM_INT is handled.
V. 6, 28-May-2002, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
Corrected the description of the units and various
inaccuracies in the header.
V.7, 14-Aug-02, GDZ
Added keyword VERBOSE
V.8, 4-Oct-2003, GDZ
modified the input to POP_SOLVER, now it is dealt with an
input structure.
V.9, 8-Jun-2004, EL
modified the input to POP_SOLVER, now it includes ion/rec
V.10, 5-Jul-2005
corrected problems with the input structure for pop_solver
v.11 29-Jul-2005, GDZ
fixed bug, only define ioneq_ionrec when files are
there (it was failing with neutrals)
VERSION : 11 29-Jul-2005
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME: SHOW_POPS
PURPOSE:
To display populations of significant levels in a CHIANTI ion
model
CATEGORY:
Scientific analysis
EXPLANATION:
Displays percentage level populations and level IDs for all levels
in the specified ion with populations greater than 0.01%. If the
temperature is not specified, then it is taken to be where the
maximum of the ionisation fraction is.
CALLING SEQUENCE:
SHOW_POPS, IZ, ION [, POPSTR, DENS= , TEMP= , /NOPROT,
RADTEMP= , RPHOT= , /ALL, /DIEL, PATH=,
IONEQ_FILE= , ABUND_FILE= ]
EXAMPLES:
show_pops,26,13,popstr
show_pops,26,13,dens=7.5,temp=6.0,rphot=1.2
INPUTS:
IZ The atomic number of the ion
ION The spectroscopic number of the ion (e.g., 12 = XII)
OPTIONAL INPUTS:
DENS Logarithm of electron density
TEMP Logarithm of electron temperature. If not specified, then
T_max of the ion is used
RADTEMP Specify background radiation temperature (default: 6000 K)
RPHOT Distance from the centre of the star in stellar radius units.
I.e., RPHOT=1 corresponds to the star's surface. (Default is
infinity, i.e., no photoexcitation.)
PATH Directly specify the path where the ion data is contained,
e.g., path='/home/other_data/fe_13'
N_LEVELS The size of the ion model is automatically determined
from the information in the CHIANTI data files. Setting
this keyword allows the number of levels in the model to
be reduced. E.g., N_LEVELS=14 reduces the model to the
first 14 levels given in the .ELVLC file.
IONEQ_FILE To include proton rates in the level balance equations
requires the number of density of protons to be known,
and this requires an ion balance file and an abundance
file to be specified, which are done through the
IONEQ_FILE and ABUND_FILE keywords. If they are not set
then the default files specified by !ioneq_file and
!abund_file are used.
ABUND_FILE See IONEQ_FILE.
SUM_MWL_COEFFS An array of coefficients of the same length as
the array of temperatures. Electron and proton rate
coefficients will be calculated at each temperature
and then a weighted sum of the coefficients is
performed using SUM_MWL_COEFFS. This allows
non-Maxwellian energy distributions to be
incorporated into the level balance equations.
If this keyword is set for an ion that has ionization
and recombination included in the level balance, then
these processes will be switched off for the
calculation since their rates implicitly assume a
single Maxwellian to describe the ion fractions of
the neighbouring ions.
LEVEL Allows the control of which level populations are displayed
to the screen. If set to a positive scalar or array, then
only those levels are printed. If it is set to a negative
scalar (-n), then all level populations up to level n are
printed. E.g., LEVEL=20 (only level 20); LEVEL=[5,7,20]
(levels 5, 7 and 20); LEVEL=-20 (all levels up to level 20).
RADFUNC The name of a user-defined function that will generate
a radiation spectrum as a function of temperature.
This radiation field will replace the black-body that
is assumed when using the RADTEMP keyword in the call
to pop_solver.
; OPTIONAL OUTPUTS
POPSTR Send level population information to a structure. POPSTR has
the tags:
.dens Density (cm^-3)
.temp Temperature (K). Can be an array if SUM_MWL_COEFFS=
is used.
.radtemp RADTEMP. Set to -1 if RADTEMP not
set.
.rphot RPHOT value. Set to -1 if RPHOT not set.
.proton String set to 'yes' if proton rates included, 'no'
otherwise
.version CHIANTI version used to derive populations.
.date Date and time at which structure created.
.level Structure containing level information. Tags are:
.index CHIANTI level index
.term String containing level identifier.
.pop Population of level
.sumtst Set to 1 if the SUM_MWL_COEFFS keyword has been used.
Set to 0 otherwise.
.sum_mwl_coeffs Contains SUM_MWL_COEFFS. Set to -1 if sumtst=0.
KEYWORDS:
ALL Show populations for all levels.
NOPROT If set, then the default setting will be NOT to use
proton rates. This can be changed within the routine.
DIEL Use the dielectronic recombination files. E.g., for Fe XXII,
the routine will read in the fe_22d.* files instead of the
fe_22.* files.
COMMON BLOCKS:
ELVLC, WGFA, UPSILON, RADIATIVE, PROTON, ELEMENTS
CALLS:
ZION2FILENAME, POP_SOLVER, SETUP_ION, READ_IONEQ,
READ_ABUND, PROTON_DENS, CONCAT_DIR
HISTORY:
Ver 1, PRY 22-Sep-97
Ver.2, PRY 5-Sep-98 - added call to choose_ioneq
Ver.3, PRY 23-Apr-99 - calls pop_solver now; added DENS keyword
Ver.4, PRY 18-Dec-99 - added deu to upsilon common block to be
consistent with main Chianti routines.
Ver.5, PRY 7-Aug-00 - added /DIEL keyword to allow populations of
the dielectronic recombination files to be studied.
Also changed elvlc common block to match new
version of pop_solver.
Ver 6, PRY 10-Oct-00 - now calls setup_ion to read ion data
Ver 7, PRY 12-Nov-01 - modified for proton rates, photoexcitation,
and 9 pt splines.
Ver 8, PRY 9-Dec-01 - completed modifications for v4 of CHIANTI.
V. 9, 25-May-2002, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
Now we only call zion2filename
V. 10, 9-Aug-2002, Peter Young
corrected !ioneq_file problem
V. 11, 12-Aug-2002, Peter Young
added POPSTR output, and tidied up header.
V. 12, 4-Oct-2003, GDZ
modified the input to POP_SOLVER, now it is dealt with an
input structure.
V 13, 4-May-2005, Enrico Landi (EL)
Modified in order to include ionization and recombination
data in the input to POP_SOLVER
V.14, 26-May-2005, Peter Young (implemented by GDZ)
added SUM_MWL_COEFFS optional input for allowing
non-Maxwellian distributions to be considered.
added LEVEL= optional input to only print the populations of
a few levels.
V.15, 5-Jul-2005, Peter Young
added RADFUNC= and /QUIET keywords
VERSION : 15, 5-Jul-2005
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
PLOT_POPULATIONS
PURPOSE:
plot the population of a number of the lowest levels as a function of
electron density for a specific temperature
CATEGORY:
science.
CALLING SEQUENCE:
PLOT_POPULATIONS,Ion,T,Nlevels
INPUTS:
Ion: CHIANTI style name for the ion, i.e., 'c_6' for C VI
T: electron temperature (K)
OPTIONAL INPUT:
Nlevels: the number of levels for which populations are plotted
starts from level 1 (the ground level)
KEYWORD PARAMETERS:
OUTFILE: the (optional) name of the output file where the listing
is produced
PSFILE: the (optional) name of the output file where a postscript
plot produced
RADTEMP Specify background radiation temperature (default: 6000 K)
RPHOT Distance from the centre of the star in stellar radius units.
I.e., RPHOT=1 corresponds to the star's surface. (Default is
infinity, i.e., no photoexcitation.)
NOPROT If set, then the default setting will be NOT to use
proton rates. This can be changed within the routine.
NOT_INTERACTIVE Avoid interactive use.
OUTPUTS:
COMMON BLOCKS:
common elvlc,l1a,term,conf,ss,ll,jj,ecm,eryd,ecmth,erydth,eref
common wgfa, wvl,gf,a_value
common upsilon,t_type,c_ups,splups
CALLS
POP_SOLVER, ION2SPECTROSCOPIC, ION2FILENAME, READ_IP,
CONVERTNAME, READ_ELVLC, READ_WGFA2, READ_SPLUPS
EXAMPLE:
to plot populations of the 5 ground configuration levels of Fe XIII
and store these values in a file 'Fe_XIII.lis' for a temperature of 1.5 MK
> plot_populations,'fe_13',1.5e+6,5,outfile='Fe_XIII.lis'
MODIFICATION HISTORY:
Written by: Ken Dere
March 1996: Version 2.0
November 1997: Ken Dere, added psfile keyword
September 1999: Ken Dere, for Version 3,
14-Jul-2000 Peter Young, now calls pop_solver
Version 6, 21-Dec-2000, William Thompson
Modified for better cross-platform capability.
V. 7, 21-May-2002, Giulio Del Zanna (GDZ), modified the plotting bit
generalized directory concatenation to work for
Unix, Windows and VMS.
V 8, 15-July-2002, GDZ
Added keyword not_interactive
V 9, 4-Oct-2003, GDZ
modified the input to POP_SOLVER, now it is dealt with an
input structure.
V 10, 4-May-2005, Enrico Landi (EL)
Modified in order to include ionization and recombination
data in the input to POP_SOLVER, now it allows choice of .ioneq
file needed to include ionization and recombination.
V 11, 12-Aug-2005, GDZ
The number of levels is now optional. Also, a check that the
number of levels must be less than the levels in the file is
now enforced.
VERSION : 11, 12-Aug-2005
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME: POP_PLOT
PURPOSE:
To compute n_j A_ji / N_e for a selected transition(s) and plot it
against N_e. If it is insensitive to N_e, then the line(s) is
suitable for emission measure analysis.
CATEGORY:
Atomic data analysis
EXPLANATION:
The routine calls EMISS_CALC to give values of DE*n_j*A_ji at the
temperature TEMP and densities from 10^8 to 10^12. You are then
asked to select which transition(s) you are interested in. (If
more than one line is selected, the lines are blended.)
DE*n_j*A_ji/N_e is then plotted against density.
If TEMP is not specified, then the temperature at which the
ionisation fraction has its maximum is calculated. For the iron
ions, the ion balance calcs of Arnaud & Raymond are used,
otherwise Arnaud & Rothenflug are used. If TEMP is specified,
and the value is less than 20, then it is assumed that the log
of the temperature has been specified.
In emission measure work it is important to isolate lines for
which DE*n_j*A_ji/N_e is insensitive to density. If only such lines
are used, then the derived emission measure curve is independent
of density.
CALLING SEQUENCE:
POP_PLOT, IZ, ION, WRANGE=WRANGE, [TEMP=TEMP, /QUICK, DATA=DATA, $
DENS_RANGE=DENS_RANGE, DILUTE=DILUTE]
EXAMPLES:
POP_PLOT, 26, 14, WRANGE=[330,360]
- 3 lines should appear in the widget. Selecting 334.17 should show
a curve that falls off with density. Choosing 353.83 shows a curve
that rises with density. By selecting a blend of the two lines,
the curve will be insensitive to density, telling us that only a
blend of 334.17 and 353.83 is suitable for emission measure work.
POP_PLOT, 8, 4, WRANGE=[550,560], TEMP=6.0, /QUICK, DENS_RANGE=[6,10]
- O IV is a member of the boron sequence, and so calculations take a
lot longer. Giving the QUICK keyword speeds things up. The
temperature is well away from the T_max of the ion
INPUTS:
IZ The atomic number of the ion
ION The spectroscopic number of the ion (e.g., 12 = XII)
OPTIONAL INPUTS:
DILUTE Used to set radiative dilution factor. (Default: 0.0)
TEMP The temperature at which calculations are required. Usually
this will be the Tmax of the ion.
DENS_RANGE The default density range is log Ne = 8 to 12. By
inputting two integers, a different range can be chosen.
WRANGE Wavelength range from which lines are required. If not
given, then the user is allowed to choose from the complete
set of lines for the ion.
ABUND_FILE The name of a CHIANTI abundance file. This is used for
calculating the proton to electron ratio. Default is
!abund_file.
IONEQ_FILE The name of a CHIANTI ion balance file. This is used for
calculating the proton to electron ratio and evaluating
the T_max of the ion. Default is !ioneq_file.
RADTEMP The blackbody radiation field temperature (default
6000 K).
RPHOT Distance from the centre of the star in stellar radius
units. I.e., RPHOT=1 corresponds to the star's surface.
(Default is infinity, i.e., no photoexcitation.)
OPTIONAL OUTPUTS:
DATA: An array that contains the data that is plotted: data(*,0)
contains
the densities, while data(*,1) contains the Y-axis values.
KEYWORDS:
NOPROT If set, then the default setting will be NOT to use
proton rates. This can be changed within the routine.
QUICK: The density range over which the calculations are done is
8 to 12 in 0.2 intervals. This keyword forces the
calculations to be done at 0.5 intervals.
CALLS:
EMISS_CALC, EMISS_SELECT, READ_IONEQ
HISTORY:
Ver.1, PRY 28-Jul-97.
Ver.2, PRY 23-Sep-97 - added DILUTE keyword for photo-excitation
Ver.3, PRY 30-May-98 - added DENS_RANGE
Ver.4, PRY 5-Sep-98 - added call to choose_ioneq
Ver.5, PRY 7-Apr-99 - tidied up, and introduced call to emiss_select
Ver.6, PRY 7-Dec-01 - modified for v.4 of CHIANTI
V. 7, 21-May-2002, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
V.8, 06-Aug-02 GDZ
added ABUND_FILE to the call to emiss_calc (was missing).
Changed the use of CHIANTI system variables.
VERSION : 8, 06-Aug-02
NAME
POP_PROCESSES
PROJECT
CHIANTI
PURPOSE:
Outputs to the screen the contributions of the different physical
processes to the population of the specified level within the ion.
E.g., for Fe XIII, level 4, the output is:
Population leaving level 4
rad. decay: 1.51e+01 39.17%
e de-exc: 3.56e-01 0.92%
e exc: 2.28e+01 59.12%
p de-exc: 2.63e-01 0.68%
p exc: 4.05e-02 0.11%
stim. emiss: 0.00e+00 0.00%
photoexc: 0.00e+00 0.00%
--------
TOTAL 3.85e+01
Population entering level 4
rad. decay: 3.59e+01 93.19%
e de-exc: 3.81e-02 0.10%
e exc: 1.46e+00 3.79%
p de-exc: 3.18e-03 0.01%
p exc: 1.12e+00 2.91%
stim. emiss: 0.00e+00 0.00%
photoexc: 0.00e+00 0.00%
--------
TOTAL 3.85e+01
which shows that the level population is dominated by electron
excitation and cascading into the level, and by radiative decay
out of the level.
Note that the rates for each physical process are multiplied by the
population of originating level (this results in the totals for
entering and leaving the level to balance).
For some ions, ionization and recombination are additional processes
included when working out the level balance. Because of the way these
processes are included (see the v.5 paper for details), the populations
entering and leaving some levels *will not balance*.
INPUTS
IZ The atomic number of the ion
ION The spectroscopic number of the ion (e.g., 12 = XII)
OPTIONAL INPUTS
LEVEL The ion level for which information is required.
DENS Electron density at which rates calculated (units: cm^-3).
If not specified, a value of 10^10 is assumed.
TEMP Temperature at which rates calculated (units: K). If not set,
then T_max of the ion is used
PATH If the ion data-files are not in the CHIANTI directories,
then PATH allows you to choose an alternative location.
RPHOT Distance from the centre of the star in stellar radius units.
I.e., RPHOT=1 corresponds to the star's surface. (Default is
infinity, i.e., no photoexcitation.)
RADTEMP Specify background radiation temperature (default: 6000 K)
N_LEVELS Restrict the ion model to this number of levels. E.g., if
the CHIANTI model contains 40 levels for the ion, then
setting N_LEVELS=12 reduces the model to 12 levels.
RADFUNC The name of a user-defined function that will generate
a radiation spectrum as a function of temperature.
This radiation field will replace the black-body that
is assumed when using the RADTEMP keyword in the call
to pop_solver.
KEYWORDS
NOPROT If set, then the default setting will be NOT to use
proton rates. This can be changed within the routine.
CALLS
R2W, ZION2FILENAME, PROTON_DENS, POP_SOLVER, SETUP_ION
EXAMPLES
One can compare the effect of cascading on a level population by using
the N_LEVELS keyword. Consider the case of Fe XIV:
IDL> pop_processes,'fe_14',lev=5
IDL> pop_processes,'fe_14',lev=5,n_levels=12
With the first call there are two dominant terms to the population
entering level 5: approximately 47% for radiative decays (cascading)
and 53% for electron excitation. Setting n_levels=12, one finds that
the cascading contribution disappears as there are no longer any
high-lying levels that cascade into level 5. The cascading provides
a strong contribution to the population of this level.
HISTORY
Ver.1, 11-Sep-2002, Peter Young
Ver.2, 15-Jan-2004, Peter Young
modified call to pop_solver following recent revision to
pop_solver; changed input from IZ,ION to IONNAME to match other
CHIANTI routines
Ver.3, 26-May-2005, Peter Young
changed TEMP and DENS keywords
Ver.4, 10-Jun-2005, Peter Young
added common block for ionization/recombination data and modified
INPUT structure.
Ver.5, 14-Jun-2005, Peter Young
routine now prints the percentage contribution of each process;
added N_LEVELS= keyword
Ver.6, 1-Jul-2005, Peter Young
added warning for ions with ionization/recombination
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
RAD_LOSS
PURPOSE:
Calculates energy loss rate by free-free (ff), radiative
recombination (fb) and by line (bound-bound) radiation.
CATEGORY:
synthetic spectra
CALLING SEQUENCE:
RAD_LOSS,Temperature,Loss_rate
INPUTS:
None: The user will select an elemental abundance file and a
ionization equilibrium file through widgets.
KEYWORDS:
Pressure: pressure in emitting region (cm^-3 K)
density=pressure/temperature(K)
Density: density (cm^-3), constant for all temperatures
if neither density or pressure is set, then a default
constant density of 10^10 cm^-3 is used.
Psfile: to create a postscript plot of the radiative loss in
the file specified by the name assigned to 'Psfile'
Outfile: name of an ascii file where the radiative loss rate
as a function of temperature is output
RADTEMP Specify background radiation temperature (default: 6000 K)
RPHOT Distance from the centre of the star in stellar radius units.
I.e., RPHOT=1 corresponds to the star's surface. (Default is
infinity, i.e., no photoexcitation.)
NOPROT If set, then the default setting will be NOT to use
proton rates. This can be changed within the routine.
OUTPUTS:
Temperature: array of temperatures (K)
Loss_rate: energy loss rate in erg cm^3 s^-1
PROCEDURE:
if keyword pressure is set then calculations performed at constant pressure
if keyword density is set then calculations performed at constant density
otherwise, density is set to 1.e+10
pressure = density * temperature (cm^-3 K)
the user will be asked to select an abundance file and a
ionization balance file.
EXAMPLE:
> rad_loss,t,r
MODIFICATION HISTORY:
Written by: Ken Dere
January 1999: version 1, adopted from synthetic.pro
Version 2, 21-Dec-2000, William Thompson
Modified for better cross-platform capability.
Ver.3, 6-Dec-2001, Peter Young
Added /noprot, radtemp and dilute keywords.
Removed elvlc, wgfa and upsilon common blocks.
Removed calls to read_ip and read_masterlist (not needed).
Ver.4, 8-Jul-2003, Peter Young
Updated routine header (no changes to code).
V 5, 25-May-2005, GDZ
corrected routine header.
VERSION : 5, 25-May-2005, GDZ
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
Name : PLOT_IONEQ
Purpose : Plots the ionisation equilibrium values for an element.
Explanation :
Use : IDL> plot_ioneq, element [ ion=ion]
Inputs : element - the element name
Opt. Inputs : Ion (as keyword)
Outputs : None
Opt. Outputs: a postscript file.
Keywords : ION_RANGE - specify range of ions. E.g., ion_range=[5,8]
means V to VIII inclusive.
IONEQ_NAME: Name of the ionization equilization name to use.
If not passed, then the user is prompted for it.
NOT_INTERACTIVE Avoid interactive use.
Calls : Other CHIANTI routines
Common :
Restrictions: None
Side effects: None
Category : Spectral
Prev. Hist. : None
Written : C D Pike, RAL, 9-Jun-97
Modified : V.2. Update element list. modified definition of XUVTOP, and
allowed selection of ionization eq. file and creation of
postscript file.
Giulio Del Zanna (DAMTP) 10-Oct-2000
V.3, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
V 4, 15-July-2002, GDZ
Added keywords ioneq_name, not_interactive
V.5, 9-Feb-2005, Peter Young
Changed ion= keyword to ion_range=
VERSION : 5, 9-Feb-2005
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
Name : MAX_TEMP
Purpose : Calculates temperature at max ionisation ratio for an ion
Explanation :
Use : IDL> print,max_temp(ion)
Inputs : ion - the specific ion in the form eg 'Fe_XII' or 'Fe XII'
Opt. Inputs : None
Outputs : Function returns log of max temperature
Opt. Outputs: None
Keywords : ALL - if set produces a plot of all temperatures
Calls : Other CHIANTI routines
Common :
Restrictions: None
Side effects: None
Category : Spectral
Prev. Hist. : None
Written : C D Pike, RAL, 9-Jun-97
Modified : V.2 Update element list. CDP, 18-Jun-99
V.3 modified definition of XUVTOP, and allowed selection of
ionization eq. file. Giulio Del Zanna (DAMTP) 10-Oct-2000
V.4, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
VERSION : 4, 21-May-2002, GDZ
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
Name : CHIANTI_DEM
Purpose : Calculates the Differential Emission Measure DEM(T) using
the CHIANTI database, from a given set of observed lines.
Constant pressure or density can be used.
Category : diagnostic analysis
Explanation : This routine has several options, all in the form of keywords.
First, the input file with the observed fluxes is read.
THE FIRST TIME YOU USE THIS ROUTINE
you'll have to do the calculation of the contribution
functions G(T), so the routine GET_CONTRIBUTIONS will come
into play. You'll have to specify the value of the
pressure or density, and you'll be asked to select an
ionization equilibrium file and an abundance file.
GET_CONTRIBUTIONS searches the CHIANTI database (ion per ion)
for all the theoretical lines corresponding to the observed
lines, i.e. that lie in a OBS_WVL(i) +/- DELTA_LAMBDA_OBS(i)
interval centered on the observed wavelength OBS_WVL(i).
The routine calculates the C(T) values (G(T)=Ab(element)*C(T))
for the temperature interval log(T)= 4.0 - 8.0
with steps of log(T) = 0.1 .
You can either select a constant pressure OR a constant
density for all the lines; if you select a constant pressure,
for each ion the contribution function is calculated at an
electron density N_e equal to the ratio of the pressure
and the temperature of maximum ionization fraction:
C=C( T, N_e= P/T_ion )
The C(T) values are stored by GET_CONTRIBUTIONS in the output
file OUTPUT.CONTRIBUTIONS that can be used later to calculate
the DEM, changing various parameters,
without having to start again and read the CHIANTI database,
which can take long time.
In the case no theoretical lines corresponding to an observed
line are found, the routine writes the wavelength of the line
(to be excluded from the fit) in the array
EXCLU_OBS_WVL_NO_TEO. The lines with no theoretical
counterparts are then automatically excluded from the fit by
CHIANTI_DEM. You might consider the possibility to start again
incrementing the DELTA_LAMBDA_OBS, to see if there are
theoretical lines in the vicinity.
Note: if you want to exclude some of the observed lines from
the fit, you just have to use the keyword EXCLUDE_OBS_WVL,
BUT GET_CONTRIBUTIONS will store anyway the results (if any)
in the C(T) file.
After having excluded the lines in EXCLUDE_OBS_WVL,
any *.abund file present in the CHIANTI database or in
the working directory can be selected, and eventually edited,
if you like to change some abundances.
Then the $G(T)$ are calculated, multiplying each theoretical
line by the abundance factor. Then the
theoretical lines contributing to each blend are sorted by
intensity and then their G(T) can be plotted if the keyword
PLOT_GT is activated. It is recommended to do this the first
time, to check if there are some observed lines terribly
blended with lines of other elements, in which case it is
better to exclude them with a second run (if you are not
sure about the abundances).
Then the G(T) for each blend are summed and plotted.
Then the fit starts calling DEM_FIT.
A series of parameters can change the
result (DEM), especially the number and position of the mesh
points of the spline that represents the DEM. The keyword
MESH_POINTS serves for this purpose.
The other keywords that control the fit are N_ITER, DCHISQ_M.
At the end of the fit, the files OUTPUT.DEM and OUTPUT.GENERAL
are created.
Use : IDL>chianti_dem,output='serts89',file_input='serts89.obs',$
pressure=3.e15
Examples :
Assume you have a file input 'serts89.obs' like this:
243.031 491. 97. 0.1 He II
256.323 1580. 186. 0.1 He II b
315.024 253. 31. 0.1 Mg VIII
335.401 10400. 1650. 0.1 Fe XVI
319.839 113. 14. 0.1 Si VIII
356.027 218. 25. 0.1 Si X
IDL>chianti_dem,output='serts89',file_input='serts89.obs',$
pressure=3.e15,cut_gt=1e-30,/plot_gt
After having selected the ionization file,
the C(T) (with MAX(C(T)) gt 1e-30) are stored in the file
'serts89.contributions'. Then select one of the abundance
files.
Have a look at the plots of the G(T), and annotate
if there is a line you want to exclude, let's say the second.
Have a look at the DEM obtained ('serts89.dem') and at
the details contained in the file 'serts89.general'.
Maybe there is another line you want to exclude, let's say
the last one. Maybe you want to change the mesh points, too.
So run
IDL>chianti_dem,output='serts89_2',file_input='serts89.obs',$
file_gt='serts89.contributions',$
exclude_obs_wvl=[243.031,356.027 ],$
mesh_points= [4.5,5.,5.5,6.2,7.5]
The files 'serts89_2.dem' and 'serts89_2.general' will be
created. They have the essential information about what you
did.
Inputs : various, all in form of keywords. The required ones are
OUTPUT and FILE_GT (or PRESSURE/DENSITY)
Opt. Inputs : various... see the software note.
Outputs : OUTPUT.CONTRIBUTIONS
Created only if the keyword FILE_GT is NOT set.
Is the file where all the contribution functions G(T) are
stored. In the first two lines the ionization equilibrium
file name, and the constant value of pressure or density
adopted are reported. Then for each line you have reported
the observed wavelength, the theoretical one, the element and
ionization stage, then the C(T) values. At the end the
specification for each transition.
OUTPUT.DEM
Is the file where the log T and log DEM values are
written, with a format suitable
as input for the DMM_SS procedure,that calculates the
synthetic spectrum. At the end some info on how it was
calculated are printed.
OUTPUT.GENERAL
Is the file where general information is stored.
The abundance file, the ionization equilibrium file and the
constant value of pressure or density used are reported.
Then there is one line for each
observed line, with the provisional identification, the
observed wavelength, the observed flux, the theoretical one
(corresponding to the DEM), the error on the flux,
the square of the difference between the theoretical and the
observed fluxes divided by the error (this number should be
close to zero if the line is well reproduced), and finally
the ratio of the theoretical flux versus the observed one
(which should be close to 1).
After this line, there is one line per each theoretical line
contributing to the blend, with the identification, the
theoretical wavelength, the configuration and terms, and the
contribution to the total theoretical flux (in percentage)
of each line in the blend.
OUTPUT.OUT
This file , toghether with OUTPUT.DEM ,
can be used to reproduce the results using
user-written software. See the software notes.
The ouput has this format:
format='(a20,1x, 1f10.3,1x, 3e10.3, 1x, f4.2,1x,f6.3)'
Opt. Outputs:
An abundance file with the modifications inserted.
Postscript files of the G(T).
A postscript file with the DEM (OUTPUT.DEM.PS)
A postscript file with other plots too (OUTPUT_4PLOTS.PS)
Keywords :
ARCSEC:
optional. If set, it means that the intensities in the input
file are per arcsec-2 .
These intensities are then converted to
sterad-1 .
CUT_GT:
optional. If set, only the those theoretical lines that
have a MAX(C(T)) greater than the value set, are kept;
it is useful to set this value in order to reduce the number
of lines in the file where the C(T) are stored.;
if not set, a default value of 1e-30 is adopted.
DCHISQ_M:
optional. If not set, a default value of DCHISQ_MIN=1.e-5
is assumed. For each iteration, the CHISQ and it's variation
are calculated. As long as the iteration achieves an
improvement in CHISQ greater than DCHISQ_MIN , another
iteration will be performed.
DEM_FILE:
optional.If set (,/DEM_FILE) you have to choose a DEM file to
be used as a start, instead of the default constant value of
10.^22.
You can either choose one of the files in the CHIANTI database
or any you have in the working directory.
The values in the file are marked as crosses, the mesh points
are marked with triangles.
DENSITY :
the value of the density (Ne). Required if you do NOT have
already the contribution functions G(T).
EXCLUDE_OBS_WVL:
optional.
If set, you can exclude some of the observed lines from
the fit. Note that even if you set this keyword and run
GET_CONTRIBUTIONS all the theoretical lines found corresponding
to all the lines in the input file are written in the C(T)
file. It is only in the fit that the lines are excluded.
FILE_GT:
optional.
If NOT set, the routine GET_CONTRIBUTIONS is called.
If set, it has to specify the name of the file created by
GET_CONTRIBUTIONS, where all the contribution functions G(T)
are stored. In the first two lines the ionization equilibrium
file name, and the value of the pressure or density
adopted is reported. Then for each line you have reported
the observed wavelength, the theoretical one, the element and
ionization stage, then the C(T) values. At the end the
specification for each transition.
FILE_INPUT:
optional.
if set, you are not requested to select the observation file
using a widget-type search.
The input file must contain 5 columns, unformatted:
1)the observed wavelength (A)
2)the observed flux in erg cm-2 s-1 st-1
3)the corresponding error on the flux in erg cm-2 s-1 st-1
4)half the width (A) of the range (centered on the observed
wavelength) where you want to look for the corresponding
theoretical lines. A value of HWHM or more would do.
5)The identification, written as string (max 20 characters)
MESH_POINTS:
optional. It is a vector that specifies the mesh points for the
spline that represent the fitted DEM, in log(T).
If not set, the default values
[4.,4.5,5.,5.5,6.,6.5,7.,7.5,8.0] are assumed.
N_ITER:
optional.It is the number of iterations of the fitting routine.
If not set, a default value of 20 is assumed.
Changing this value alone might not affect the fit, since
also the value of DCHISQ_MIN is checked during the fit.
N_MATCHES:
optional.
In the unlikely event that more than 50 (default value for
N_MATCHES) theoretical lines corresponding to an observed
line are found, the routine stops; in this case, you have to
start again setting N_MATCHES equal to a greater number.
OUTPUT :
required.
It is the output name. Suffixes will be added when creating
the various outputs.
PHOT:
optional.
If set, it means that in the input file the intensities
are in photons instead of ergs.
PLOT_GT:
optional.
If set (,/PLOT_GT), plots of the G(T) for each
observed line not excluded are created.
PRESSURE:
the value of the pressure (Ne T). Required if you do NOT have
already the contribution functions G(T).
QUIET:
optional. Set to avoid various messages and the details of the
result.
Calls : GET_CONTRIBUTIONS
DEM_FIT
ZION2SPECTROSCOPIC
print2d_plot
Common : obs, obs_int,obs_sig,n_obs
obs_o, obs_wvl,obs_id,obs_delta_lambda
dem, d_dem_temp,dem_temp,log_dem_temp,log_t_mesh,log_dem_mesh
contr, ch_tot_contr
ab, abund_name,abund_info,xuvtop,ioneq_name
these are the commons with GET_CONTRIBUTIONS.PRO:
various, exclu_obs_wvl_no_teo,const_net,$
dem_temp_min,dem_temp_max,n_dem_temp,$
ch_wvl,ch_l1,ch_l2,ch_id,ch_z,ch_ion,ch_contr_wa,$
ch_pop,ch_contr_list, ch_term,ch_n_contr
Restrictions:
In the unlikely event that more than 50 (default value for
N_MATCHES) theoretical lines corresponding to an observed
line are found, the routine stops; in this case, you have to
start again setting N_MATCHES equal to a greater number.
Also, if the starting DEM values are not proper, or you
don't have enough constraints at lower and higher temperatures,
you might get "strange" results, and should consider using
different starting values.
Of course you need to have the enviroment variable CDS_SS_DERE
pointing to the CHIANTI database top directory.
Side effects: None known yet.
Category : spectrum
Prev. Hist. :
Written by Ken Dere (NRL) as part of the CHIANTI package
in collaboration with Brunella Monsignori Fossi, Enrico Landi
(Arcetri Observatory, Florence), Helen Mason and Peter Young
(DAMTP, Cambridge Univ.). Incorporated into the CDS software.
Written :
V. 1.0 5 November 1997 Giulio Del Zanna (GDZ),
UCLAN (University of Central Lancashire, UK)
Modified : Removed the print2d_plot subroutine. Increased the default value
of N_MATCHES from 20 to 50. Changed way to deal with xuvtop.
GDZ, 31-Oct-2000
Version : 2.0 GDZ, DAMTP, 31-Oct-2000
V.3, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
VERSION : 3, 21-May-2002, GDZ
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
PLOT_DEM
PURPOSE:
To plot differential emission measure (DEM) values
CATEGORY:
Widgets.
CALLING SEQUENCE:
PLOT_DEM,filename
INPUTS:
filename: the name of the DEM file to be plotted. The file must b
in the standard CHIANTI format for DEM files. If filename
is a blank string ('') then an interactive window will come
up to allow the user to select a DEM file from the CHIANTI
DEM directory or some other directory.
KEYWORD PARAMETERS:
PSFILE: If set, the a postscript plot will be place in the
file 'psfile' specified by the user
OUTPUTS:
None, other than a plot
EXAMPLE:
> plot_dem,'ademfile.dem'
or
> plot_dem,''
MODIFICATION HISTORY:
Written by: Ken Dere
June 1998: Version 1.0
Version 2, 21-Dec-2000, William Thompson, GSFC
Modified for better cross-platform graphics capability
V. 3, 21-May-2002, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
VERSION : 3, 21-May-2002
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME: INTEGRAL_CALC
PURPOSE:
To compute the atomic data integral for use in column or volume
emission measure work.
CATEGORY:
Scientific analysis
EXPLANATION:
Defining
G(T) = 0.83 * Fr(T) * N_j * A_ji / N_e
where Fr(T) is the ionisation fraction (e.g., from Arnaud &
Rothenflug), N_j the relative population of level j, A_ji the
A-value for the j->i transition and N_e the electron density. The
0.83 is the ratio of hydrogen to free electrons, which is constant
above around 10^4 K. This function is sharply-peaked at a
temperature T_mem (the temperature of maximum emission, which can
be different from the temperature of maximum ionisation, T_max)
and so an oft-used approximation is to take G(T) constant in the
range log T_mem - 0.15 to log T_mem + 0.15 and zero outside. The
value of the constant, which we call C_lambda here, is then given
by
C_lambda = integral { G(T) dT }
--------------------
T_mem * (10^0.15 - 10^-0.15)
If EM(s) is the column emission measure, F the flux (erg cm-2 s-1)
in a line lambda, Ab the abundance of the element and DE (erg) the
energy for the transition, then:
F = DE * Ab * C_lambda * EM(s)
If we are dealing with intensities I (erg cm-2 s-1 sr-1) then:
4pi * I = DE * Ab * C_lambda * EM(s)
This program extracts the ionisation balance and emissivities from
the CHIANTI database and calculates C_lambda for all lines in the
specified wavelength interval WRANGE by integrating over
0.02 dex temperature intervals, using the IDL INT_TABULATED function.
The C_lambda functions for all the lines in the selected wavelength
range WRANGE are displayed as well as the temperature of maximum
emission (T_mem), DE*C_lambda and 4pi/(DE*C_lambda). These latter
two quantities are useful for the emission measure analysis.
Any combination of the displayed lines can then be blended and the
corresponding quantities for the blend will be displayed.
The function Fr(T) * N_j * A_ji can also be plotted at this stage.
CALLING SEQUENCE:
INTEGRAL_CALC, IZ, ION, [WRANGE=WRANGE, /CHOOSE, DENS=DENS]
EXAMPLES:
INTEGRAL_CALC, 26, 13, WRANGE=[200,205], /CHOOSE
INTEGRAL_CALC, 14, 10, WRANGE=[250,270], DENS=10.
INPUTS:
IZ: The atomic number of the ion
ION: The spectroscopic number of the ion (e.g., 12 = XII)
OPTIONAL INPUTS:
DENS: The density at which the emissivities are calculated
(default=10.)
WRANGE: Wavelength range for which C_lambda functions are
calculated. If not given, then the 10 strongest lines
are printed.
INDEX: Particular elements in the emissivity structure can be
selected with INDEX. This allows integral_calc to be run
'silently'. The output is contained in the OUTSTR structure.
If index is given as, e.g., [7,8], then the C_lambda
functions for these two lines are summed and output.
PATH: Directly specify the directory path where the Chianti data
for the ion is found
ABUND_FILE The name of a CHIANTI abundance file. This is used for
calculating the proton to electron ratio. Default is
!abund_file.
IONEQ_FILE The name of a CHIANTI ion balance file. This is used for
calculating the proton to electron ratio and evaluating
the T_max of the ion. Default is !ioneq_file.
RADTEMP The blackbody radiation field temperature (default
6000 K).
RPHOT Distance from the centre of the star in stellar radius
units. I.e., RPHOT=1 corresponds to the star's surface.
(Default is infinity, i.e., no photoexcitation.)
KEYWORDS:
CHOOSE: Allow ion balance calculations to be selected manually
(see choose_ioneq.pro routine).
OPTIONAL OUTPUTS:
OUTSTR: A structure with the following tags
.tmem - the T_mem for the line(s)
.dec - total( de * c_lambda )
.pidec - 4 * pi / total( de * c_lambda )
Only output when INDEX is specified.
COMMON BLOCKS:
None.
CALLS:
EMISS_CALC, CH_GET_FILE, READ_IONEQ
HISTORY:
Ver.1: PRY, 28-JUN-97.
Ver.2: PRY, 7-OCT-97. Added TEMPI and GOFT, for plotting.
Ver.3: PRY, 31-JUL-98. Added PATH.
Ver.4: PRY, 6-APR-99. Added INDEX, OUTSTR. Removed TEMPI and GOFT
(these can be got from the g_of_t routine).
Ver.5: PRY, 9-Dec-01. Modified for v.4 of CHIANTI.
V.6, 21-May-2002, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
V.7, 06-Aug-02 GDZ
Changed the use of CHIANTI system variables.
VERSION : 7, 06-Aug-02
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
READ_ABUND
PURPOSE:
to read CHIANTI abundance files
CATEGORY:
science.
CALLING SEQUENCE:
READ_ABUND,File,Abundance,Reference
INPUTS:
File: the name (string) of the file containing the abundance values
(relative to hydrogen) usually of the form
'!xuvtop/abundance/*.abund'
OUTPUTS:
Abundance: an array of abuncance values
Reference: a string containing the reference to the chosen set
of abundances in the scientific literature
PROCEDURE:
You can describe the foobar superfloatation method being used here.
EXAMPLE:
> read_abund,'allen.abund',abundance,ref
abundance(26) = abundance of iron relative to hydrogen
quoted by C.W. Allen in Astrophysical Quantities
MODIFICATION HISTORY:
Written by: Ken Dere
March 1996: Version 2.0
V. 3, 21-May-2002, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
VERSION : 3, 21-May-2002
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
READ_DEM
PURPOSE:
to read values the differential emission measure as a function
of temperature
CATEGORY:
science.
CALLING SEQUENCE:
READ_DEM, File, T, Dem, Ref
INPUTS:
File: the name of the file containing the DEM values, usually in
!xuvtop/dem/*.dem
OUTPUTS:
T: Log10 values of temperature (K)
Dem: Log10 values of the differential emission measure
Ref: the reference to the DEM values in the scientific literature
OPTIONAL OUTPUTS:
Describe optional outputs here. If the routine doesn't have any,
just delete this section.
EXAMPLE:
> read_dem,!xuvtop+'/dem/active_region.dem',t,dem,ref
MODIFICATION HISTORY:
Written by: Ken Dere
March 1996: Version 2.0
V. 3, 21-May-2002, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
Ver.4, 20-Nov-2002, Peter Young
DEM values of -1 caused errors, so this has been corrected.
VERSION : 4, 20-Nov-2002
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
READ_IONEQ
PURPOSE:
to read files containing the ionization equilibrium values
CATEGORY:
science.
CALLING SEQUENCE:
READ_IONEQ, File, T, Ioneq, Ref
INPUTS:
File: for example, !xuvtop+'/ioneq/arnaud_rothenflug.ioneq'
OPTIONAL INPUTS:
None:
OUTPUTS:
T: array of log10 temperatures
Ioneq: 3-d array (T,element,ion)
of the fractional abundance of the ion in
ionization equilibrium.
Ref: reference in the scientific literature
EXAMPLE:
> read_ioneq,!xuvtop+'/ioneq/arnaud_rothenflug.ioneq'
> help,t,ioneq
> T FLOAT = Array(41)
> IONEQ FLOAT = Array(41, 28, 29)
> print, minmax(t)
> 4.00000 8.00000
> print,t(20)
> 6.0000
> print,ioneq(20,25,9)
> 0.269 = fractional abundance of Fe X in
ionization equilibrium
MODIFICATION HISTORY:
Written by: Ken Dere (KPD)
March 1996: Version 2.0
March 1999: KPD to read both number of temperature and number
of elements
25-Oct-2000 V. 4, Giulio Del Zanna (GDZ).
Corrected to interpret the '-1' as a reference only
if within the first 3 columns
V. 5, 21-May-2002, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
v.6, 25-Oct-2004, Peter Young
modified format statement so that it will read any number of
temperatures.
V 7, 25-May-2005, GDZ
corrected routine header.
VERSION : 7, 25-May-2005
PROJECT: CHIANTI
http://wwwsolar.nrl.navy.mil/chianti.html
CHIANTI is an atomic database package for the calculation of
continuum and emission line spectra from astrophysical plasmas. It is a
collaborative project involving the Naval Research Laboratory
(Washington DC, USA), the Arcetri Observatory (Firenze, Italy), and the
Cambridge University (United Kingdom).
NAME:
CH_READ_FITS
PURPOSE:
Read standard CHIANTI FITS binary table data containing the output from
CH_SYNTHETIC and output a TRANSITIONS structure.
CALLING SEQUENCE:
CH_READ_FITS, Filename, TRANSITIONS
INPUTS:
Filename = String containing the name of the CHIANTI FITS file written
by CH_WRITE_FITS.
OUTPUTS:
TRANSITIONS = Structure to be written.
OPTIONAL INPUTS: none
KEYWORDS: none
NOTES:
CALLS:
MRDFITS, ADD_TAG
COMMON BLOCKS: none.
RESTRICTIONS:
(3) The input FITS file must have been written by CH_WRITE_FITS
PREV. HIST. :
EXAMPLE:
ch_read_fits, 'file.fits', transitions
WRITTEN :
Ver.1, 8-Apr-02 Giulio Del Zanna (GDZ)
V.2 GDZ 31 May 2002 added more checks.
MODIfICATION HISTORY:
VERSION : 2, 31 May 2002
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
CH_WRITE_FITS
PURPOSE:
Write standard FITS binary table data from CHIANTI input structure.
CALLING SEQUENCE:
CH_WRITE_FITS, Input, Filename
INPUTS:
Input = Structure to be written to FITS file.
OUTPUTS:
Filename = String containing the name of the file to be written.
CH_WRITE_FITS creates two binary table extension in a single
FITS file. The second one is appended as a new extension.
OPTIONAL INPUTS: Header COMMENTS.
KEYWORDS:
head1, head2
Additional COMMENTS to be added at the bottom of the two binary tables.
NOTES:
Any existing FITS file can be over-written or not.
Use CH_READ_FITS to convert the FITS file back into a structure.
CALLS:
FXPAR(), FXADDPAR, IS_IEEE_BIG(), HOST_TO_IEEE, DIALOG_MESSAGE
COMMON BLOCKS: none.
RESTRICTIONS:
(1) Limited to 127 columns in tables by IDL structure limits.
(2) String columns with all columns of zero length crash the
program
(3) The input structure has to be of the type TRANSITIONS.
PREV. HIST. :
The subroutines in this procedure are extracted without modifications from
the MWRFITS.PRO routine, written by T. McGlynn Version 0.95 2000-11-06
and present in the ASTRON library (in SolarSoft under /gen/idl_libs/astron/).
EXAMPLE:
ch_write_fits, transitions , 'test.fits'
WRITTEN :
Ver.1, 22-May-02 Giulio Del Zanna (GDZ)
MODIfICATION HISTORY:
VERSION : 1, 22-May-02, GDZ
NAME
WHICH_LINE
PROJECT
CHIANTI
PURPOSE:
Upon given an ion name and wavelength, this routine prints out a list
of possible line IDs for the wavelength. Wavelengths within 1% of the
input wavelength are searched for.
INPUTS
IONNAME Name of an ion in the CHIANTI format. E.g., 'fe_13' for Fe XIII.
WVL A wavelength in angstroms.
OUTPUTS (to screen)
Prints a list of atomic transitions and wavelengths for lines close to
the input wavelength. A '*' is placed next to the closest wavelength
match.
KEYWORDS
NARROW Narrows the search range to 0.02% of the specified wavelength.
EXAMPLE
IDL> which_line,'o_6',1032
Wavelength i j Lower level Upper level A-value
1037.615 1 2 1s2.2s 2S1/2 - 1s2.2p 2P1/2 4.21e+008
1031.914 1 3 1s2.2s 2S1/2 - 1s2.2p 2P3/2 4.28e+008
CALLS
CONVERTNAME, ZION2FILENAME, READ_WGFA2, READ_ELVLC
HISTORY
Ver.1, 22-Jun-2004, Peter Young
Project : CHIANTI
CHIANTI is an atomic database package for the calculation of
continuum and emission line spectra from astrophysical plasmas. It is a
collaborative project involving the Naval Research Laboratory
(Washington DC, USA), the Arcetri Observatory (Firenze, Italy), and the
Cambridge University (United Kingdom).
Name : USE_CHIANTI
Purpose : Sets up system variables for use of CHIANTI routines
Explanation : The CHIANTI software uses system variables
that have to be defined. This routine is called by the
CHIANTI routines if these system variables are not defined.
** If one is using the solar-soft package, these should
already be defined*****.
** If the CHIANTI package is used as stand-alone, then
this routine can be used for the setup with e.g.:
use_chianti,'/home/data/chianti/'
if /home/data/chianti/ points to the actual place where
the CHIANTI top directory is.
Use : IDL> use_chianti, '/home/data/chianti/', $
[ioneq= , abund=]
Inputs : None
Opt. Inputs : The full pathname of the CHIANTI top directory.
Outputs : None
Opt. Outputs: None
Keywords : IONEQ - to define the default ionization eq. file to be used.
ABUND - to define the default abundance file to be used.
Calls : None
Common : None
Restrictions: None
Side effects: None
Category :
Prev. Hist. : Based on use_dere_chianti, written by C D Pike, RAL
Written : Giulio Del Zanna (GDZ) DAMTP (University of Cambridge, UK)
Modified : Version 1, GDZ 10-Oct-2000
Version 2, GDZ 10-Jan-2001
added the definition of the !abund_file
V. 3, GDZ, 2-May-2002 Modified substantially, adding a new
system variable.
V.4, 10-July-2002 GDZ
Removed the definition of !chianti_top, upon request.
V.5, 25-July-2002, GDZ
Fixed a problem with IDL versions earlier than 5.3 (the routine
would not compile). ALso, introduced the use of concat_dir for
cross-platform compatibility.
V.6, 06-Aug-02 GDZ
Changed the use of CHIANTI system variables. Added comments on
the which CHIANTI version is used.
V.7 12-Aug-02 GDZ Changed default abundance file. Removed '***'
V.8, GDZ 13-Feb-2003
Changed default ioneq file, to include ALL the elements.
V.9, 12-Aug-2005, GDZ
Changed default ioneq file from mazzotta_etal_ext to
mazzotta_etal_9.ioneq where ion fractions have been extended
up to 10^9 K. This is useful to avoid steps in the
emissivities at high-temperatures.
Version : V.9, 12-Aug-2005
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
ASCII_WVL_DEM
PURPOSE:
create an ascii file of predicted spectral line intensities and
wavelengths corresponding to a selected abundance and differential
emission measure (DEM).
PROCEDURE:
Calculations are done assuming either constant density or
constant pressure. See CH_SYNTHETIC for details.
CALLING SEQUENCE:
ASCII_WVL_DEM, Wmin, Wmax, Pressure= , [density= ], $
[outfile= , mini= , sngl_ion=, /photons, /all, /masterlist], $
[/noprot, radtemp=, rphot=]
INPUTS:
Wmin: lower limit of the wavelength range of interest (Angstroms)
if kev keyword set, then wmin is in kev
Wmax: upper limit of the wavelength range of interest (Angstroms)
if kev keyword set, then wmax is in kev
Pressure: pressure in emitting region (cm^-3 K), or
Density: density in emitting region (cm^-3).
OPTIONAL INPUTS:
OUTFILE: the name of the output ascii file to be written.
MINI: Minimum intensity for a line to be included in the output.
SNGL_ION: specifies a single ion (e.g. SNGL_ION='Fe_10' to include
only Fe X lines) or an array (e.g. SNGL_ION=['Fe_10','Fe_11']
to include only Fe X and Fe XI lines) of ions to be used
instead of the complete set of ions specified in
!xuvtop/masterlist/masterlist.ions
MASTERLIST: string of a specific masterlist file (full path).
If defined as a keyword (i.e. MASTERLIST=1 or /MASTERLIST)
then a widget allows the user to select a user-defined
masterlist file. Shortcut for SNGL_ION.
OUTPUTS:
an ascii file: linelist.txt in the working directory by default
OPTIONAL OUTPUTS:
KEYWORD PARAMETERS:
MINI: Minimum intensity for a line to be included in the output
SNGL_ION: specifies a single ion (e.g. SNGL_ION='Fe_10' to include
only Fe X lines) or an array (e.g. SNGL_ION=['Fe_10','Fe_11']
to include only Fe X and Fe XI lines) of ions to be used
instead of the complete set of ions specified in
!xuvtop/masterlist/masterlist.ions
MASTERLIST: string of a specific masterlist file (full path).
If defined as a keyword (i.e. MASTERLIST=1 or /MASTERLIST)
then a widget allows the user to select a user-defined
masterlist file. Shortcut for SNGL_ION.
PHOTONS: units will be in photons rather than ergs
KEV: wavelengths will be given in kev rather than Angstroms
ALL: if set, then all lines are included. This means that lines
for which
only an approximate wavelength is known (only theoretical energy
levels are known) are included.
OUTFILE: the name of the output ascii file to be written. By
default a
file 'linelist.txt' in the user's working directory will be
created.
NOPROT If set, then the default setting will be NOT to use
proton rates. This can be changed within the routine.
RADTEMP Specify background radiation temperature (default: 6000 K)
RPHOT Distance from the centre of the star in stellar radius units.
I.e., RPHOT=1 corresponds to the star's surface. (Default is
infinity, i.e., no photoexcitation.)
CALLS:
CH_SYNTHETIC, CH_LINE_LIST
COMMON BLOCKS: None
RESTRICTIONS:
SIDE EFFECTS:
EXAMPLE:
IDL> ascii_wvl_dem,400.,800., out='linelist',$
pressure=1.e+15,mini=1.,sngl_ion='o_4'
CATEGORY:
spectral synthesis.
WRITTEN :
Version 1, 8-Nov-01, Giulio Del Zanna (GDZ).
Compared to the previous ASCII_WVL_DEM, these are the main changes:
1-Rewritten as a wrapper routine using the new procedures.
2-Now the PRESSURE value is a keyword.
3-The calculations can be done at constant DENSITY.
4-Energies (keV) can be output instead of wavelengths in Angstroms
5-MASTERLIST can now be used both as an input string or as a keyword.
MODIFICATION HISTORY:
18-Nov-01, Peter Young
Added /noprot, rphot and radtemp keywords
V. 2, 22-May-2002 GDZ. Removed const_net definitions.
VERSION : 2, 22-May-2002
PROJECT: CHIANTI
NAME:
bb_rad_loss
PURPOSE:
calculates energy loss rate by line (bound-bound) radiation
CATEGORY:
synthetic spectra
CALLING SEQUENCE:
BB_RAD_LOSS,Temperature,Loss_rate
INPUTS:
None: the user will select various parameters such as the
choice of elemental abundances and ionization equilibria
KEYWORDS:
Pressure: pressure in emitting region (cm^-3 K)
density=pressure/temperature(K)
Density: density (cm^-3), constant for all temperatures
if neither density or pressure is set, then a
default constant density of 10^10 cm^-3 is used.
Sngl_ion: to calculate the loses spectrum for a single ion
NOPROT Switches off inclusion of proton rates.
RADTEMP The blackbody radiation field temperature (default
6000 K).
RPHOT Distance from the centre of the star in stellar radius
units. I.e., RPHOT=1 corresponds to the star's surface.
(Default is infinity, i.e., no photoexcitation.)
OUTPUTS:
Temperature: array of temperatures (K)
Loss_rate: energy loss rate in erg cm^3 s^-1
PROCEDURE:
if keyword pressure is set then calculations performed at constant pressure
if keyword density is set then calculations performed at constant density
otherwise, density is set to 1.e+10
pressure = density * temperature (cm^-3 K)
the user will be asked to select an abundance file.
COMMON BLOCKS:
ELVLC, WGFA, UPSILON, RADIATIVE, PROTON, ELEMENTS, IONREC
CALLS
READ_MASTERLIST,
SETUP_ELEMENTS, POP_SOLVER, CONVERTNAME, R2W, PROTON_DENS,
ZION2SPECTROSCOPIC, ZION2FILENAME, SETUP_ION
EXAMPLE:
> bb_rad_loss,t,r
MODIFICATION HISTORY:
Written by: Ken Dere
January 1999: version 1, adopted from synthetic.pro
14-Jul-2000 Peter Young, now calls pop_solver
Ver.2, 9-Dec-2001, Peter Young
Modified for v.4 of CHIANTI.
V.3, 4-Oct-2003, GDZ
modified the input to POP_SOLVER, now it is dealt with an
input structure. Also shorten the whole procedure, by calling
other procedures.
V.4, 5-Apr-2005, EL
modified the input to POP_SOLVER in order to add ion/rec
in the calculation of level populations. All the rest
is unchanged.
V 5, 25-May-2005, GDZ
corrected routine header.
VERSION : 5, 25-May-2005, GDZ
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
Name : CALC_DMM_DR
Purpose : Calculates CHIANTI density sensitive line ratios.
Explanation :
Use : Called from DMM_NE
Inputs : ciz - element number
cion - ion number
denmin, denmax - log density range
mess_win - message widget ID for DMM_NE use.
Opt. Inputs : None
Outputs : None
Opt. Outputs: None
Keywords : Temperature - if set use this temperature rather than
temp at max of ioneq.
Calls : EMISS_CALC
Common :
Restrictions: None
Side effects: None
Category : Spectral
Prev. Hist. : Based on density_ratios by K Dere.
Written : C D Pike, RAL, 22-Jan-96
Modified : Send warning message to widget. CDP, 27-Jan-96
Update generally. CDP, 7-Jun-97
Corrected typo in reading elvlc file. CDP, 14-Jul-97
Added minimum line ratio factor. CDP, 17-Jul-97
Added multiple wavelength ranges. CDP, 18-Jul-97
Fix typo for XXII stage. CDP, 05-Mar-98
Update list of elements. CDP, 18-Jun-99
v. 9. Correct hiccup in above. CDP, 13-Jul-99
Update for compatibility with CHIANTI v.3. Replaced populate
with pop_solver. Left out 'dielectronic' lines. ouput
temperature. plus various small additions.
Now ratios are calculated with 0.1 increment in log Ne
Giulio Del Zanna (GDZ) 10-Oct-2000
Ver.11, 7-Dec-01, Peter Young (PRY)
modified for v.4 of CHIANTI
Ver. 12, 1-May-02, GDZ
Fixed a bug: Added nlist = 0 when no lines are present.
V. 13, 21-May-2002, GDZ
generalized directory concatenation to work for
Unix, Windows and VMS.
V.14, 06-Aug-02 GDZ
Changed the use of CHIANTI system variables.
V.15, 16-Sep-2004, GDZ
added /NO_DE in call to emiss_calc as chianti_te expects
emissivities in photon units
Version : Version 15, 16-Sep-2004
Project : SOHO - CDS
Name : CALC_DMM_TR
Purpose : Calculates CHIANTI temperature sensitive line ratios.
Explanation :
Use : Called from DMM_TE
Inputs : ciz - element number
cion - ion number
wmin, wmax - wavelength range
temmin, temmax - log temperature range
mess_win - message widget ID for DMM_TE use.
Opt. Inputs : None
Outputs : None
Opt. Outputs: None
Keywords : None
Calls : EMISS_CALC
Common :
Restrictions: None
Side effects: None
Category : Spectral
Prev. Hist. : Based on temperature_ratios by K Dere.
Written : C D Pike, RAL, 22-Jan-96,
Modified : H E Mason, 03-Oct-96 (density to temperature)
Modified : Send warning message to widget. CDP, 27-Jan-96
Update list of elements and cut call to
read_elvl. CDP, 18-Jun-99
V.3. Fix hiccupp in above. CDP, 13-Jul-99
V.4. Rewritten completely, adding possibility to pass on the
density at which the intensities are calculated, and making
this routine compatible ith CHIANTI v.3.
Giulio Del Zanna (DAMTP), 10 Oct-2000
Ver.5, 7-Dec-2001, Peter Young
Modified for v.4 of CHIANTI.
Ver. 6, 1-May-02, GDZ
Fixed a bug: Added nlist = 0 when no lines are present.
V.7, 16-Sep-2004, Peter Young
added /NO_DE in call to emiss_calc as chianti_te expects
emissivities in photon units
Version : Version 7, 16-Sep-04
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
Name : CHIANTI_DEM
Purpose : Calculates the Differential Emission Measure DEM(T) using
the CHIANTI database, from a given set of observed lines.
Constant pressure or density can be used.
Category : diagnostic analysis
Explanation : This routine has several options, all in the form of keywords.
First, the input file with the observed fluxes is read.
THE FIRST TIME YOU USE THIS ROUTINE
you'll have to do the calculation of the contribution
functions G(T), so the routine GET_CONTRIBUTIONS will come
into play. You'll have to specify the value of the
pressure or density, and you'll be asked to select an
ionization equilibrium file and an abundance file.
GET_CONTRIBUTIONS searches the CHIANTI database (ion per ion)
for all the theoretical lines corresponding to the observed
lines, i.e. that lie in a OBS_WVL(i) +/- DELTA_LAMBDA_OBS(i)
interval centered on the observed wavelength OBS_WVL(i).
The routine calculates the C(T) values (G(T)=Ab(element)*C(T))
for the temperature interval log(T)= 4.0 - 8.0
with steps of log(T) = 0.1 .
You can either select a constant pressure OR a constant
density for all the lines; if you select a constant pressure,
for each ion the contribution function is calculated at an
electron density N_e equal to the ratio of the pressure
and the temperature of maximum ionization fraction:
C=C( T, N_e= P/T_ion )
The C(T) values are stored by GET_CONTRIBUTIONS in the output
file OUTPUT.CONTRIBUTIONS that can be used later to calculate
the DEM, changing various parameters,
without having to start again and read the CHIANTI database,
which can take long time.
In the case no theoretical lines corresponding to an observed
line are found, the routine writes the wavelength of the line
(to be excluded from the fit) in the array
EXCLU_OBS_WVL_NO_TEO. The lines with no theoretical
counterparts are then automatically excluded from the fit by
CHIANTI_DEM. You might consider the possibility to start again
incrementing the DELTA_LAMBDA_OBS, to see if there are
theoretical lines in the vicinity.
Note: if you want to exclude some of the observed lines from
the fit, you just have to use the keyword EXCLUDE_OBS_WVL,
BUT GET_CONTRIBUTIONS will store anyway the results (if any)
in the C(T) file.
After having excluded the lines in EXCLUDE_OBS_WVL,
any *.abund file present in the CHIANTI database or in
the working directory can be selected, and eventually edited,
if you like to change some abundances.
Then the $G(T)$ are calculated, multiplying each theoretical
line by the abundance factor. Then the
theoretical lines contributing to each blend are sorted by
intensity and then their G(T) can be plotted if the keyword
PLOT_GT is activated. It is recommended to do this the first
time, to check if there are some observed lines terribly
blended with lines of other elements, in which case it is
better to exclude them with a second run (if you are not
sure about the abundances).
Then the G(T) for each blend are summed and plotted.
Then the fit starts calling DEM_FIT.
A series of parameters can change the
result (DEM), especially the number and position of the mesh
points of the spline that represents the DEM. The keyword
MESH_POINTS serves for this purpose.
The other keywords that control the fit are N_ITER, DCHISQ_M.
At the end of the fit, the files OUTPUT.DEM and OUTPUT.GENERAL
are created.
Use : IDL>chianti_dem,output='serts89',file_input='serts89.obs',$
pressure=3.e15
Examples :
Assume you have a file input 'serts89.obs' like this:
243.031 491. 97. 0.1 He II
256.323 1580. 186. 0.1 He II b
315.024 253. 31. 0.1 Mg VIII
335.401 10400. 1650. 0.1 Fe XVI
319.839 113. 14. 0.1 Si VIII
356.027 218. 25. 0.1 Si X
IDL>chianti_dem,output='serts89',file_input='serts89.obs',$
pressure=3.e15,cut_gt=1e-30,/plot_gt
After having selected the ionization file,
the C(T) (with MAX(C(T)) gt 1e-30) are stored in the file
'serts89.contributions'. Then select one of the abundance
files.
Have a look at the plots of the G(T), and annotate
if there is a line you want to exclude, let's say the second.
Have a look at the DEM obtained ('serts89.dem') and at
the details contained in the file 'serts89.general'.
Maybe there is another line you want to exclude, let's say
the last one. Maybe you want to change the mesh points, too.
So run
IDL>chianti_dem,output='serts89_2',file_input='serts89.obs',$
file_gt='serts89.contributions',$
exclude_obs_wvl=[243.031,356.027 ],$
mesh_points= [4.5,5.,5.5,6.2,7.5]
The files 'serts89_2.dem' and 'serts89_2.general' will be
created. They have the essential information about what you
did.
Inputs : various, all in form of keywords. The required ones are
OUTPUT and FILE_GT (or PRESSURE/DENSITY)
Opt. Inputs : various... see the software note.
Outputs : OUTPUT.CONTRIBUTIONS
Created only if the keyword FILE_GT is NOT set.
Is the file where all the contribution functions G(T) are
stored. In the first two lines the ionization equilibrium
file name, and the constant value of pressure or density
adopted are reported. Then for each line you have reported
the observed wavelength, the theoretical one, the element and
ionization stage, then the C(T) values. At the end the
specification for each transition.
OUTPUT.DEM
Is the file where the log T and log DEM values are
written, with a format suitable
as input for the DMM_SS procedure,that calculates the
synthetic spectrum. At the end some info on how it was
calculated are printed.
OUTPUT.GENERAL
Is the file where general information is stored.
The abundance file, the ionization equilibrium file and the
constant value of pressure or density used are reported.
Then there is one line for each
observed line, with the provisional identification, the
observed wavelength, the observed flux, the theoretical one
(corresponding to the DEM), the error on the flux,
the square of the difference between the theoretical and the
observed fluxes divided by the error (this number should be
close to zero if the line is well reproduced), and finally
the ratio of the theoretical flux versus the observed one
(which should be close to 1).
After this line, there is one line per each theoretical line
contributing to the blend, with the identification, the
theoretical wavelength, the configuration and terms, and the
contribution to the total theoretical flux (in percentage)
of each line in the blend.
OUTPUT.OUT
This file , toghether with OUTPUT.DEM ,
can be used to reproduce the results using
user-written software. See the software notes.
The ouput has this format:
format='(a20,1x, 1f10.3,1x, 3e10.3, 1x, f4.2,1x,f6.3)'
Opt. Outputs:
An abundance file with the modifications inserted.
Postscript files of the G(T).
A postscript file with the DEM (OUTPUT.DEM.PS)
A postscript file with other plots too (OUTPUT_4PLOTS.PS)
Keywords :
ARCSEC:
optional. If set, it means that the intensities in the input
file are per arcsec-2 .
These intensities are then converted to
sterad-1 .
CUT_GT:
optional. If set, only the those theoretical lines that
have a MAX(C(T)) greater than the value set, are kept;
it is useful to set this value in order to reduce the number
of lines in the file where the C(T) are stored.;
if not set, a default value of 1e-30 is adopted.
DCHISQ_M:
optional. If not set, a default value of DCHISQ_MIN=1.e-5
is assumed. For each iteration, the CHISQ and it's variation
are calculated. As long as the iteration achieves an
improvement in CHISQ greater than DCHISQ_MIN , another
iteration will be performed.
DEM_FILE:
optional.If set (,/DEM_FILE) you have to choose a DEM file to
be used as a start, instead of the default constant value of
10.^22.
You can either choose one of the files in the CHIANTI database
or any you have in the working directory.
The values in the file are marked as crosses, the mesh points
are marked with triangles.
DENSITY :
the value of the density (Ne). Required if you do NOT have
already the contribution functions G(T).
EXCLUDE_OBS_WVL:
optional.
If set, you can exclude some of the observed lines from
the fit. Note that even if you set this keyword and run
GET_CONTRIBUTIONS all the theoretical lines found corresponding
to all the lines in the input file are written in the C(T)
file. It is only in the fit that the lines are excluded.
FILE_GT:
optional.
If NOT set, the routine GET_CONTRIBUTIONS is called.
If set, it has to specify the name of the file created by
GET_CONTRIBUTIONS, where all the contribution functions G(T)
are stored. In the first two lines the ionization equilibrium
file name, and the value of the pressure or density
adopted is reported. Then for each line you have reported
the observed wavelength, the theoretical one, the element and
ionization stage, then the C(T) values. At the end the
specification for each transition.
FILE_INPUT:
optional.
if set, you are not requested to select the observation file
using a widget-type search.
The input file must contain 5 columns, unformatted:
1)the observed wavelength (A)
2)the observed flux in erg cm-2 s-1 st-1
3)the corresponding error on the flux in erg cm-2 s-1 st-1
4)half the width (A) of the range (centered on the observed
wavelength) where you want to look for the corresponding
theoretical lines. A value of HWHM or more would do.
5)The identification, written as string (max 20 characters)
MESH_POINTS:
optional. It is a vector that specifies the mesh points for the
spline that represent the fitted DEM, in log(T).
If not set, the default values
[4.,4.5,5.,5.5,6.,6.5,7.,7.5,8.0] are assumed.
N_ITER:
optional.It is the number of iterations of the fitting routine.
If not set, a default value of 20 is assumed.
Changing this value alone might not affect the fit, since
also the value of DCHISQ_MIN is checked during the fit.
N_MATCHES:
optional.
In the unlikely event that more than 50 (default value for
N_MATCHES) theoretical lines corresponding to an observed
line are found, the routine stops; in this case, you have to
start again setting N_MATCHES equal to a greater number.
OUTPUT :
required.
It is the output name. Suffixes will be added when creating
the various outputs.
PHOT:
optional.
If set, it means that in the input file the intensities
are in photons instead of ergs.
PLOT_GT:
optional.
If set (,/PLOT_GT), plots of the G(T) for each
observed line not excluded are created.
PRESSURE:
the value of the pressure (Ne T). Required if you do NOT have
already the contribution functions G(T).
QUIET:
optional. Set to avoid various messages and the details of the
result.
Calls : GET_CONTRIBUTIONS
DEM_FIT
ZION2SPECTROSCOPIC
print2d_plot
Common : obs, obs_int,obs_sig,n_obs
obs_o, obs_wvl,obs_id,obs_delta_lambda
dem, d_dem_temp,dem_temp,log_dem_temp,log_t_mesh,log_dem_mesh
contr, ch_tot_contr
ab, abund_name,abund_info,xuvtop,ioneq_name
these are the commons with GET_CONTRIBUTIONS.PRO:
various, exclu_obs_wvl_no_teo,const_net,$
dem_temp_min,dem_temp_max,n_dem_temp,$
ch_wvl,ch_l1,ch_l2,ch_id,ch_z,ch_ion,ch_contr_wa,$
ch_pop,ch_contr_list, ch_term,ch_n_contr
Restrictions:
In the unlikely event that more than 50 (default value for
N_MATCHES) theoretical lines corresponding to an observed
line are found, the routine stops; in this case, you have to
start again setting N_MATCHES equal to a greater number.
Also, if the starting DEM values are not proper, or you
don't have enough constraints at lower and higher temperatures,
you might get "strange" results, and should consider using
different starting values.
Of course you need to have the enviroment variable CDS_SS_DERE
pointing to the CHIANTI database top directory.
Side effects: None known yet.
Category : spectrum
Prev. Hist. :
Written by Ken Dere (NRL) as part of the CHIANTI package
in collaboration with Brunella Monsignori Fossi, Enrico Landi
(Arcetri Observatory, Florence), Helen Mason and Peter Young
(DAMTP, Cambridge Univ.). Incorporated into the CDS software.
Written :
V. 1.0 5 November 1997 Giulio Del Zanna (GDZ),
UCLAN (University of Central Lancashire, UK)
Modified : Removed the print2d_plot subroutine. Increased the default value
of N_MATCHES from 20 to 50. Changed way to deal with xuvtop.
GDZ, 31-Oct-2000
Version : 2.0 GDZ, DAMTP, 31-Oct-2000
V.3, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
VERSION : 3, 21-May-2002, GDZ
Project : SOHO - CDS
Name : CHIANTI_NE
Purpose : Calculate and plot CHIANTI density sensitive line ratios.
Explanation : CHIANTI_NE (density ratios)
calculates and plots density sensitive line ratios based on
the CHIANTI atomic database of Dere et. al.
Use : IDL> chianti_ne
Inputs : None
Opt. Inputs : None
Outputs : None
Opt. Outputs: None.
Keywords : None
Calls : CALC_DMM_DR, plot_dmm_dr_fig , make_ion_list
Common : dmm_dr_com dmm_lines(with plot_dmm_dr_fig),
Restrictions: None
Side effects: None
Category : Spectral
Prev. Hist. : Started life as 'density_ratios' by Ken Dere
Written : C D Pike, RAL, 13-Jan-96
Modified : Added selection of els/ions from master file. CDP, 21-Jan-96
Added hardcopy of line list, refs etc. CDP, 22-Jan-96
Include multiple lines in ratio. CDP, 27-Jan-96
General upgrade and added temp/unit selections. CDP, 6-Jun-97
Added intensity ratio selection. CDP, 17-Jul-97
Added wavelength ranges. CDP, 18-Jul-97
Fixed typos introduced in version 7. CDP, 22-Jul-97
Float the user-supplied Log Temperature. CDP, 1-Aug-97
Update for IDL v5.2. CDP, 20-Apr-99
v. 11 Update list of elements. CDP, 18-Jun-99
V.12. Added ratio plots and hardcopies in linear scale, added various
checks and minor things. Added a few tags to the
ratio output structure (temperature, units, comment).
Removed optional output structure.
Updated to be CHIANTI v.3-compatible.
Giulio Del Zanna, DAMTP, 7-Oct-2000
Version 13, 21-Dec-2000, William Thompson, GSFC
Modified for better cross-platform graphics capability
V. 14, 1-May-02, GDZ, commented out a few refs.
V. 15, 21-May-2002, GDZ, changed the way to deal with fonts.
V.16, 17-Sep-2002 (GDZ)
added !p.multi = 0 upon exit and added X-label.
Version : Version 16, 17-Sep-2002
Project : SOHO - CDS
Name : CHIANTI_TE
Purpose : Calculate and plot CHIANTI temperature sensitive line ratios.
Explanation : CHIANTI_TE (temperature ratios)
calculates and plots temp. sensitive line ratios based on
the CHIANTI atomic database of Dere et. al.
Use : IDL> chianti_te
Inputs : None
Opt. Inputs : None
Outputs : None
Opt. Outputs: none.
Keywords : None
Calls : CALC_DMM_TR, make_ion_list
Common : dmm_tr_com
Restrictions: None
Side effects: None
Category : Spectral
Prev. Hist. : Started life as 'temperature_ratios' by Ken Dere
Written : H.E. Mason, 3 Oct 1996
Modified : Update for IDL v5.2. CDP, 20-Apr-99
V.3. Update list of elements. CDP, 18-Jun-99
V.4 , Giulio Del Zanna (DAMTP), 10 Oct-2000
Rewritten completely, adding possibility to select the density
at which the intensities are calculated, making this routine
compatible ith CHIANTI v.3, and with the same characteristics as
CHIANTI_TE. Added ratio plots and hardcopies in linear scale, added various
checks and minor things. Added a few tags to the
ratio output structure (density, units, comment).
Removed optional output structure.
Version 5, 21-Dec-2000, William Thompson, GSFC
Modified for better cross-platform graphics capability
V. 6, 1-May-02, GDZ, commented out a few refs.
V.7, 21-May-2002, GDZ, fixed a bug with the fonts.
V.8, 17-Sep-2002 (GDZ)
added !p.multi = 0 upon exit and added X-label
Version : Version 8, 17-Sep-2002
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME: ch_check_str
PURPOSE:
To check that an input structure is of the right type
PROCEDURE:
This function checks that the input structure has at least the basic
tags that should be present. Two types of basci structures are checked:
1) the standard CHIANTI structure, output of the synthetic program
CH_SYNTHETIC, that contains line INTENSITIES
2) The standard CHIANTI structure output of MAKE_CHIANTI_SPEC, that contains a
synthetic SPECTRUM.
CATEGORY:
spectral synthesis.
CALLING SEQUENCE:
IDL> result=ch_check_str (tran, [/int , /sp])
INPUTS: the IDL structure TRAN
OPTIONAL INPUTS :
OUTPUTS:
OPTIONAL OUTPUTS:
KEYWORDS:
intensities
spectrum
CALLS: required_tags
COMMON BLOCKS: none
RESTRICTIONS:
SIDE EFFECTS:
EXAMPLE:
PREV. HIST. :
WRITTEN :
Ver.1, 22-May-02, Giulio Del Zanna (GDZ), DAMTP
MODIFICATION HISTORY:
VERSION : 1, 22-May-02, GDZ
NAME
CH_DRAWBOX()
EXPLANATION
Allows the selection of a sub-region within a plot using a
"rubberband box".
INPUTS
WID ID of window where box is drawn. (!D.Window by default.)
INTERACTIVE INPUTS
By clicking-and-holding the left mouse button (LMB), a box will
appear on the plot window. Moving the mouse will change the size
of the box. When the box is in the right position, let go of the
LMB.
OPTIONAL INPUTS
COLOR The color index of the box. (!D.N_Colors-1 by default.)
KEYWORDS
DATA Box coordinates returned in DATA coordinates.
NORMAL Box coordinates returned in NORMAL coordinates.
OUTPUT
The function returns the box coordinates, either in device (default),
data or normal coordinates. See keywords /DATA and /NORMAL.
PREVIOUS HISTORY
This is a modified version of the routine drawbox.pro that is
available from
http://www.dfanning.com/documents/tips.html
HISTORY
Ver.1, 11-Dec-2001, Peter Young
PROJECT : CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME : CH_GET_FILE
PURPOSE : to select a file from either a selected directory or the working
directory, having an extension.
EXPLANATION : a file in either a selected directory or the working
directory, having an extension can be selected using a
widget. Note that both directory and extension have to be
supplied. If no file is found, an empty string is returned. ;
USE : IDL> name = ch_get_file( '~/', '.pro', tit=' Select a procedure ')
EXAMPLES : dir= concat_dir(!xuvtop),'dem')
dem_name=ch_get_file(path=dir,filter='*.dem',title='Select DEM File')
INPUTS : directory, extension
OPT. INPUTS :
OUTPUTS : the file name
OPT. OUTPUTS:
KEYWORDS : title
CALLS : findfile, break_file
COMMON : co
RESTRICTIONS: both directory and extension have to be
supplied.
SIDE EFFECTS:
CATEGORY :
PREV. HIST. : extracted from CDS/CHIANTI routines.
WRITTEN :
Giulio Del Zanna (GDZ),
DAMTP (University of Cambridge, UK)
MODIFIED : Version 1, GDZ 10-Oct-2000
V.2, GDZ, corrected a typo at the end of the file.
V.3, GDZ, generalized directory concatenation to work for
Unix, Windows and VMS.
V. 4, 19-July-2002, GDZ
Added the option to select files also with the standard IDL
dialaog_pickfile, and changed a few things...
V.5, 2-Aug-02, GDZ
reduced the size of the widget.
V.6, 12-Aug-02, GDZ
corrected for a bug in the directory output.
V.7, 3-Nov-03 GDZ
Fixed a bug when using Windows, the returned path was not
correct.
VERSION : 7, 3-Nov-03
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
CH_LINE_LIST
PURPOSE:
Create a latex or an ascii file of predicted spectral line intensities and
wavelengths corresponding to selected parameters, as calculated by
CH_SYNTHETIC. Needs as input the line intensity structure calculated by
CH_SYNTHETIC (default) or the SPECTRUM structure output of
MAKE_CHIANTI_SPEC.
CALLING SEQUENCE:
IDL> ch_line_list, transitions, outname, latex=latex, ascii=ascii, $
abundfile=abundfile, min_abund=min_abund, $
wmin=wmin,wmax=wmax,$
SPECTRUM=SPECTRUM, minI=minI,photons=photons,kev=kev, $
all=all,no_sort=no_sort, sngl_ion=sngl_ion
PROCEDURE:
INPUTS:
The structure created by CH_SYNTHETIC
OPTIONAL INPUTS:
Wmin: lower limit of the wavelength/energy range of interest (Angstroms)
if kev keyword set, then wmin is in kev
Wmax: upper limit of the wavelength/energy range of interest (Angstroms)
if kev keyword set, then wmax is in kev
Mini: Minimum intensity for line to be included in output
SNGL_ION: specifies a single ion (or a list of ions) to be used instead
of the complete set of ions specified in the structure.
MIN_ABUND: If set, outputs only those elements which
have an abundance greater than min_abund.
For example, from Allen (1973):
abundance (H) = 1.
abundance (He) = 0.085
abundance (C) = 3.3e-4
abundance (O) = 6.6e-4
abundance (Si) = 3.3e-5
abundance (Fe) = 3.9e-5
KEYWORD PARAMETERS:
LATEX: Create a latex file (default, exclusive with /ASCII)
ASCII: Create an ascii file (exclusive with /LATEX)
MINI: Minimum intensity for line to be included in output
PHOTONS: units will be in photons rather than ergs
KEV: wavelengths will be given in kev rather than Angstroms
ALL: if set, then all lines are included. This means that lines for which
only an approximate wavelength is known, denoted by a negative
wavelength value in the .wgfa file, are included.
These lines are listed in the file with a * preceding the wavelength.
NO_SORT:
If set, then the lines are *not* sorted in wavelength (or energy).
SPECTRUM
If set, IT IS ASSUMED that the input structure is the SPECTRUM
structure output of MAKE_CHIANTI_SPEC, where the line
intensities have already been multiplied by the abundance factor!!
OUTPUTS:
A latex (default) or an ascii file with the line list
CALLS: Many SolarSoft routines.
COMMON BLOCKS:
none.
SIDE EFFECTS:
EXAMPLE:
> ch_line_list, trans,'linelist.tex',/latex, wmin=100.,wmax=200.,/all
CATEGORY:
spectral synthesis.
WRITTEN :
Version 1, Written by: Giulio Del Zanna (GDZ) Oct 31 2001.
MODIFICATION HISTORY:
V.2, 9-Nov-2001 GDZ.
Now correctly handles the case when no
abundances are passed to the routine.
v.3, 11-Dec-2001, PRY.
Removed calls to get_utc and anytim2cal. Replaced with
call to systime()
v.4, 29-Apr-02, GDZ
Fixed a few small bugs, some caused by a change in the
database file format for V4.
Added only_mini, file_effarea keywords to be able to use as
input the structure created by MAKE_CHIANTI_SPEC.
V.5, 22-May-2002, GDZ
generalized directory concatenation to work for
Unix, Windows and VMS. changed tags.
Changed and added various things, including flabel
V.6, 12-Aug-02, GDZ
Modified the output labeling, and fixed two bugs: 1) when /all was used
the keyword /mini was not working. 2) min_abund was not working
properly when /spectrum was used. Reduced size of latex output (was
12pt)
Changed output in isothermal case (no Tmax given). Better info printed (GDZ)
V.7, 3-Nov-03 GDZ
Modified format e8.2 to e9.2 for Windows compatibility.
v.8, 18-Jul-2005 GDZ
Modified the use of the /kev keyword. Also, now the
routine accepts input structure with the units in keV.
v.9, 4-Aug-2005 GDZ
Corrected a bug introduced in the previous version.
Also switched to \documentclass when making the latex file.
VERSION : 9, 4-Aug-2005
PROJECT: CHIANTI
http://wwwsolar.nrl.navy.mil/chianti.html
CHIANTI is an atomic database package for the calculation of
continuum and emission line spectra from astrophysical plasmas. It is a
collaborative project involving the Naval Research Laboratory
(Washington DC, USA), the Arcetri Observatory (Firenze, Italy), and the
Cambridge University (United Kingdom).
NAME:
CH_READ_FITS
PURPOSE:
Read standard CHIANTI FITS binary table data containing the output from
CH_SYNTHETIC and output a TRANSITIONS structure.
CALLING SEQUENCE:
CH_READ_FITS, Filename, TRANSITIONS
INPUTS:
Filename = String containing the name of the CHIANTI FITS file written
by CH_WRITE_FITS.
OUTPUTS:
TRANSITIONS = Structure to be written.
OPTIONAL INPUTS: none
KEYWORDS: none
NOTES:
CALLS:
MRDFITS, ADD_TAG
COMMON BLOCKS: none.
RESTRICTIONS:
(3) The input FITS file must have been written by CH_WRITE_FITS
PREV. HIST. :
EXAMPLE:
ch_read_fits, 'file.fits', transitions
WRITTEN :
Ver.1, 8-Apr-02 Giulio Del Zanna (GDZ)
V.2 GDZ 31 May 2002 added more checks.
MODIfICATION HISTORY:
VERSION : 2, 31 May 2002
PROJECT
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME
CH_SS
PURPOSE:
Widget-based multi-purpose routine
to calculate CHIANTI line intensities and continua, to create a
synthetic spectrum, to make tables of lines, etc.
CALLING SEQUENCE:
IDL> ch_ss
PROCEDURE:
This routine calculates a synthetic spectrum by merging line
intensities and continua.
The widget is organised into four Sections:
SECTION 1:
-The Calculation of the CHIANTI line intensities.
This can be done in two ways:
1-Restore a save file with the CHIANTI line intensities already
calculated.
2-Calculate CHIANTI line intensities with a call to CH_SYNTHETIC.
In this case, A series of parameters must be set:
- Minimum and maximum wavelengths in Angstroms
- The model used for the calculation. Three are the options:
1) a constant density (cm^-3)
2) a constant pressure (cm^-3 K)
3) a general (Te,Ne) model. In this case, a file will be read.
This file should have two columns, one with the Te (K)
values, and one with the Ne (cm^-3) values.
- The ionization fraction file to be used. "*.ioneq" files
can be selected from either the CHIANTI database, the
working directory or selected via a widget.
- All ions ? If set to yes (default), then all the ions present in the
database will be included.
If set to no, then it is possible to select a list of ions
with a widget
- All lines ? If set to no (default), only the lines for which there are
observed energy levels are included
If set to yes, also the lines that do not have
corresponding observed energy levels are included. In this
case, the wavelengths are calculated from the theoretical
energy levels, and might not be very accurate.
- Isothermal ? If set to no (default), a DEM file must be selected.
"*.dem" files (i.e. files with a .dem extension)
can be selected from either the CHIANTI database, the
working directory or selected via a widget.
If set to yes, then the user is requested to enter one
or more temperatures (as logarithmic values - Log T )
and correspondent column emission measures EM
logarithmic values.
NOTE: if more than one value is entered, then the
sequence must be separated by commas (e.g.: 6.0,
6.5, 7.), and both Log T and Log EM must have the
same number of values
- Photoexcitation ?
If set to yes, you have to define:
Trad: The blackbody radiation field temperature
R/Ro: Distance from the centre of the star in stellar
radius units
Units: Photons or Ergs'
Protons: If set to Yes, the proton data are used to calculate the level population
Once all the parameters have been defined, the user should click on the
"Calculate intensities" button to start the calculation (which calls
CH_SYNTHETIC).
Once the calculation is finished, an IDL structure is loaded into
memory. It is then possible to save it for later use by clicking on the
"SAVE" button.
The RESTORE button is to restore previously saved files into an IDL
structure in memory.
Once the IDL structure with the line intensities is in the memory, it is
then possible to calculate and plot a spectrum (SECTION 2).
SECTION 2:
This section controls the parameters that are needed to fold the
line intensities and the continua into a synthetic
spectrum. These parameters are used by MAKE_CHIANTI_SPEC.
Before this is done, a set of line intensities MUST be in the
program memory. This is done either by calculating the
intensities or by restoring a save file with
previously calculated values (SECTION 1).
Setting the parameters:
-Minimum and maximum wavelengths in Angstroms
-spectrum bin size in Angstroms. Disallowed if an Effective area
file is used.
-instrumental FWHM: Setting this to a non-zero value broadens
each of the spectral lines with a Gaussian of
the specified FWHM (in Angstroms) so
mimicking the effects of instrumental
broadening.
-continuum: Add continua to the binned spectrum:
free-free, free-bound and two-photon.
Please note that the continuum calculation takes some
time and you may want to define a minimum abundance
value to speed the calculations.
- All lines ? If set to no (default), only the lines for which there are
observed energy levels are included.
If set to yes, the "unobserved lines" will be added, but
only if they are present in the structure.
-elemental abundances
"*.abund" files (i.e. files with a .abund
extension) can be selected either from the CHIANTI database,
the working directory, or via a widget.
-select a minimum abundance value
If set not null, only the lines of those elements
which have an abundance greater than the value set are
selected. Also, the continuum is calculated only for
those elements which have an abundance greater than
the value set. This can significantly speed up the
calculations. By default, the minimum value in the
selected abundance file is used. To have an idea of
what minimum abundance should be set, the abundances
of Allen (1973) give:
abundance (H) = 1.
abundance (He) = 0.085
abundance (C) = 3.3e-4
abundance (O) = 6.6e-4
abundance (Si) = 3.3e-5
abundance (Fe) = 3.9e-5
Eff. Area: Yes/No
If you want to fold the spectrum with an effective area.
If set to Yes, you are requested to choose an input ascii file
with two columns, the wavelength and the effective area values
(cm^2).
The wavelenghts in the file (that might not be linear) are used
to create the spectrum, that is multiplied with the effective
area values.
Note that this option only works well if a sufficient number
of bins is given. The line intensities contributing to each
bin are summed, and subsequently convolved with a gaussian
of full-width-half-maximum FWHM, if FWHM is not set = 0.
Please note that the convolution might not work if a small
number of bins is defined.
Also note that to have the correct output units (counts s-1
bin-1) the appropiately scaled DEM (or EM) values must be provided.
After this, by clicking on the "Calculate and plot" button the
program calculates and plots the synthetic spectrum.
Once the spectrum is displayed, it is then possible to
view the details of the lines by clicking with the mouse in the
plot window, and to perform various operations by clicking on
the buttons in SECTION 3
SECTION 3:
This Section allows the user to select a few parameters for the
plotting, and to create different types of OUTPUT.
Labels ? : Setting this to yes plots a vertical line for each
spectral line in the spectrum, and also writes a label
above the strongest lines indicating the ion from
which the line arises.
Min.: Only lines which have an intensity greater than the
value set here will be listed and, if requested,
labelled and selected for inclusion in the various
outputs. Setting the value=0. will result in all
lines being listed and written in the outputs.
X,Y, XOOM, UNZOOM: It si possible to select a region of the
spectrum, by zooming with the use of the mouse
or by setting the X,Y ranges.
NOTE that only the line details and portion of
the spectrum shown will be output.
LINEAR/LOG To plot the spectrum in linear or log scale
Create PS file: A postscript file is created.
Hardcopy: the postscript file "idl.ps" is created and sent to the
default printer.
Save Line details (latex): The details of the lines shown in the
plot will be saved in a latex file.
Save Line details (ascii): The details of the lines shown in the
plot will be saved in an ascii file.
Save Spectrum (ascii): The X,Y values of the plot are saved in
an ascii file.
Save Spectrum (IDL/FITS): The details of all the lines and the arrays
of the X,Y values of the plot are saved into
an IDL or FITS file. The IDL structure
has the following tags:
.LAMBDA: The array of wavelength X values
.SPECTRUM: The array of spectrum Y values
.UNITS The units of LAMBDA, SPECTRUM
.INSTR_FWHM The Instrumental FWHM
.BIN_SIZE Width of the Bins (fixed) in angstroms
.ABUND_NAME The CHIANTI abundance file name
.ABUND The abundance values
.MIN_ABUND The minimum abundance value used
.ABUND_REF The references
.CONTINUUM The values of the continuum (if
calculated)
.EFFAREA The array of effective area
values (optional)
.FILE_EFFAREA The name of the effective area file used (optional).
.IONEQ_NAME The ion balance file used (full path).
.IONEQ_LOGT The Log10 T values associated.
.IONEQ_REF The references.
.DEM_NAME The differential emission measure file eventually used
(full path).
.DEM The Log10 DEM values
.DEM_LOGT The Log10 T values associated.
.DEM_REF The references.
.MODEL_NAME A string indicating the model used
(e.g. constant density or constant pressure).
.MODEL_NE the Ne value.
.MODEL_PE the Pe value.
.WVL_UNITS The wavelength units.
.WVL_LIMITS The wavelength limits specified by the user.
.INT_UNITS The intensity units
.LOGT_ISOTHERMAL
The Log10(T) values used.
.LOGEM_ISOTHERMAL
The Log10(EM) values used.
.TIME The date and time when the structure was created.
.VERSION The version number of the CHIANTI database used.
.ADD_PROTONS
A flag (0/1) to indicate whether proton data were used (1)
or not (0) to calculate the level population.
.PHOTOEXCITATION
A flag (0/1) to indicate if photoexcitation was included (1)
or not (0).
.RADTEMP
The blackbody radiation field temperature used (if
photoexcitation was included).
.RPHOT
Distance from the centre of the star in stellar radius units
(if photoexcitation was included).
THEN, FOR EACH LINE USED TO CALCULATE THE
SPECTRUM:
.LINES A structure containing information about the lines.
Its size is the number of lines in the spectrum. The
tags are:
.peak The peak intensity value
.iz The atomic number of the elements (e.g., 26=Fe)
.ion The ionisation stage (e.g., 13=XIII)
.snote The identification of the ion (e.g., 'Fe XXIV d')
.ident The identification of the transition, configuration
and terms in text form.
.ident_latex
The identification of the transition, configuration
and terms in latex form.
.lvl1 The lower level of the transition (see .elvlc
file for ion)
.lvl2 The upper level for transition.
.tmax The temperature of maximum emission of the line
(i.e., the temperature at which the product of
the emissivity and the ion fraction has its
maximum). Rounded to nearest 0.1, and zero in case
the isothermal approximation is used.
.fwhm
.wvl Wavelength of the transition, in Angstroms.
.flag A flag, =-1 if the line has only theoretical energy
levels. Otherwise flag=0.
.int Intensity of line (with the abundance factor multiplied)
Save Spectrum (FITS): The entire information contained in the
IDL structure is stored in a FITS file.
SECTION 4:
Here, text information messages are printed.
INPUTS
None.
OPTIONAL INPUTS:
The font
OUTPUTS:
Many.
KEYWORD PARAMETERS:
FONT the font to be used. Can be useful to customize the appearance of
the widget.
CALLS:
CH_SYNTHETIC, CH_LINE_LIST, CH_DRAWBOX, MAKE_CHIANTI_SPEC, CH_XMENU_SEL,
plus many other CHIANTI and SolarSoft routines.
PROGRAMMING NOTES
Within CH_SS, there are several other routines which are:
OPLOT_LINES This overplots lines and a label on the displayed
spectrum.
SYN_CURSOR When the mouse is clicked when on the spectrum window,
this routine prints out the list of nearby lines and
their IDs in the text window.
CALC_SYN_SPECTRUM
Calculates line intensities with a call to CH_SYNTHETIC
PLOT_SYN_SPECTRUM This calls make_chianti_spec to produce the
intensity vs. wavelength plot.
SYN_MAIN_EVENT This handles the widget operations
SYN_WID This creates the widgets.
COMMON BLOCKS:
many
RESTRICTIONS:
SIDE EFFECTS:
EXAMPLE:
IDL> ch_ss
CATEGORY:
spectral synthesis.
WRITTEN :
Ver.1, 7-Nov-01, Giulio Del Zanna (GDZ) and Peter Young (PRY)
MODIFICATION HISTORY:
V.2, 7-Nov-01, GDZ . Fixed a small bug (now the spectrum plot is always
plotted within the widget), and modified the option to add continua.
Changed the suggested names of the outputs.
Corrected a bug when creating an IDL save file with the spectrum, when
no line details are present.
V.3 28-Jan-02 GDZ
fixed a bug in the density text widget, added a few buttons
and options, including the effective area.
Added noprot, rphot, radtemp keywords to the call to ch_synthetic
V 4, 18-Apr-2002, GDZ
Added photoexcitation, changed IDL save files to FITS files,
V.5, 21-May-2002, GDZ
fixed a few small bugs: checking min_abund before calculating the
spectrum; checking the ioneq file when
restoring the structure; changed the status of
all lines; chnaged the font system.
generalized directory concatenation to work for
Unix, Windows and VMS.
V.6, 15-July-2002, GDZ - New major revision.
Changed the chianti top directory (for Effective areas).
Changed Linear/Log button.
Rearranged the sizes of the buttons and added a special cursor to
highlight the area where details of the lines will be given. Works
only in linear scale.
Added quite a lot of new checks to avoid crashes and
fixed the problem with the zoom/unzoom/change units.
V.7, 2-Aug-02, GDZ
Modified the output labels on the plot, inside and on the axis.
Also modified a few minor things like the appearance of the Log T,EM
values.
Fixed a bug when creating the latex output.
Now it restores at the end previous colors and settings.
V.8, 8-Aug-02, GDZ
Changed the CHIANTI system variables. Fixed.
Also fixed a problem with the element ab. file.
V.9, 13-Aug-02, GDZ
Restored the correct use of ch_line_int, now only the lines in the
plot window are listed, and the ALL keyword is in use.
Now the correct xrange is loaded into COMMON when line int. are
restored. Now it checks if all ions were in the structure, when
restoring the line intensities, and flags the widget button accordingly.
Added a device,decomposed=0. to remove problems with colors.
Corrected the use of the DEM, IONEQ and ABUND pulldown menus,
avoiding conflicts between files in the working and CHIANTI
directory having the same name.
Added printing of references for ancillary files, and a check on the
element abundances vs. the elements present in the structure.
V.10, 7-Nov-03 GDZ
Modified format e8.2 to e9.2 for Windows compatibility.
Replaced f9.4 with f11.4 format for the wavelengths.
Some minor modifications to the widget.
Added extended details in the ascii output spectrum.
Added more explanations in the HELP buttons.
V.11, 22-Jul-2005 GDZ
-Added keV option and a few more extra checks.
V.12, 2-Aug-2005 GDZ
put RETAIN=2 in the main plotting window.
TO DO LIST:
Control the range of Angstroms when clicking
kev
Allow plots in intensities instead of intensities A-1
VERSION : V.12, 2-Aug-2005
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
CH_SYNTHETIC
PURPOSE:
to calculate CHIANTI line intensities or G(T) and output an IDL structure.
PROCEDURE:
This routine calculates as default line intensities for a user-specified
differential emission measure and ionisation balance. The actual
creation of a synthetic spectrum (i.e., wavelength vs. intensity)
is performed by other routines - see CH_SS.PRO and
MAKE_CHIANTI_SPEC.PRO.
Note that this routine does not include the element abundances
in the line intensities, as this will be performed by
make_chianti_spec. One of the reasons why element abundances are not
included in the line intensities calculation is so that it is easier
for the user to see how modifying abundances affects their spectra in
e.g. CH_SS.PRO.
The calculations are performed at constant pressure or
at constant density.
The routine can also output line intensities calculated with an
isothermal approximation.
If the isothermal approximation is not used, then the user will be asked
to select two files, that can either be in the
standard CHIANTI database or in the working directory.
These files are:
- an ionization fraction file
- a differential emission measure (DEM) file.
The routine can also output the contribution functions G(T) of the lines,
instead of the intensities, if the keyword GOFT is used. In this case,
only the ionization equilibrium file needs to be selected.
The G(T), or intensity per emission measure, is calculated as:
G=(hc/lambda_ij)*A_ji*(N_j(X^+m)/N(X^+m))*(N(X^+m)/N(X))/ N_e /(4.*!pi)
where A_ji is the A-value of the transition;
(N_j(X^+m)/N(X^+m)) is the population of the upper level,
calculated by solving the statistical equilibrium equations;
(N(X^+m)/N(X)) is the ionization equilibrium
N_e is the electron density.
unless /PHOTONS is set, in which case the (hc/lambda_ij) factor
is not included.
If not specified otherwise, with the use of the MASTERLIST or SNG_ION
keywords, then the standard masterlist of the ions, which has
all the ions in the current CHIANTI database, is used.
PROGRAMMING NOTES
The DEM is not assumed to be specified at 0.1 logT intervals (which
is how the ion fraction are specified). Thus this routine reads
in the DEM vs. logT information and then uses the IDL spline
function to tabulate the DEM over 0.1 logT intervals. The minimum
and maximum temperatures are those in the DEM file, rounded up to
the nearest 0.1. The new DEM function tabulated over 0.1 logT
intervals is contained in 'dem_int'.
For some of the dielectronic files, radiative decays that were in
the standard .wgfa file will also be present in the dielectronic
version of the .wgfa file. In these cases the line intensity
produced from the latter file needs to be ignored and so we have a
check in ch_synthetic to do this. An example is the 1-7 decay in
the ca_19.wgfa and ca_19d.wgfa files. In the latter case, the
model of the ion does not include electron excitation to level 7
and so the model for the 1-7 decay is incorrect, hence we ignore
it.
CATEGORY:
spectral synthesis.
CALLING SEQUENCE:
IDL> ch_synthetic,wmin,wmax, output=output, pressure=pressure,$
[MODEL_FILE=MODEL_FILE, err_msg=err_msg, msg=msg, $
density=density,all=all,sngl_ion=sngl_ion, $
photons=photons, masterlist=masterlist, $
save_file=save_file , verbose=verbose, $
logt_isothermal=logt_isothermal,$
logem_isothermal=logem_isothermal,$
goft=goft, ioneq_name=ioneq_name, dem_name=dem_name,$
noprot=noprot, rphot=rphot, radtemp=radtemp, progress=progress ]
INPUTS:
Wmin: minimum of desired wavelength range in Angstroms
Wmax: maximum of desired wavelength range in Angstroms
PRESSURE: pressure in emitting region (Pe, cm^-3 K).
Only a single value is accepted, and the calculation is
performed at constant pressure.
OPTIONAL INPUTS :
DENSITY: density in emitting region (Ne, cm^-3).
Only a single value is accepted, and the calculation is
performed at constant density, unless LOGT_ISOTHERMAL is
defined. In this case, DENSITY can be an array of values, but
has to have the same number of elements as LOGT_ISOTHERMAL.
MODEL_FILE Full path of the (Te,Ne) file if defined.
This file should have two columns, one with the Te (K)
values, and one with the Ne (cm^-3) values. If these
values are not sorted in ascending order of Te, the
routine does sort them.
SNGL_ION: specifies a single ion (e.g. SNGL_ION='Fe_10' to include
only Fe X lines) or an array (e.g. SNGL_ION=['Fe_10','Fe_11']
to include only Fe X and Fe XI lines) of ions to be used
instead of the complete set of ions specified in
!xuvtop/masterlist/masterlist.ions
MASTERLIST: string of a specific masterlist file (full path).
If defined as a keyword (i.e. MASTERLIST=1 or /MASTERLIST)
then a widget allows the user to select a user-defined
masterlist file. Shortcut for SNGL_ION.
IONEQ_NAME: Name of the ionization equilization name to use. If not
passed, then the user is prompted for it.
DEM_NAME: Name of the DEM file to used. If not passed, then the user
is prompted for it.
LOGT_ISOTHERMAL
Array of logarithmic temperatures.
If defined, the emissivities are calculated with an
isothermal approximation. The values are sorted in ascending
order.
LOGEM_ISOTHERMAL
Array of logarithmic emission measures.
If defined, the emissivities are calculated with an
isothermal approximation. The values are sorted in ascending
order. If LOGT_ISOTHERMAL is specified without
LOGEM_ISOTHERMAL then the emission measures are set to 1
(logem_isothermal=0).
RADTEMP The blackbody radiation field temperature (default 6000 K).
RPHOT Distance from the centre of the star in stellar radius units.
I.e., RPHOT=1 corresponds to the star's surface. (Default is
infinity, i.e., no photoexcitation.)
OUTPUTS:
OUTPUT: The name of the structure containing the line intensities and
details.
The tags of the structure are:
.lines A structure containing information about the lines.
Its size is the number of lines in the spectrum. The
tags are:
.iz The atomic number of the elements (e.g., 26=Fe)
.ion The ionisation stage (e.g., 13=XIII)
.snote The identification of the ion (e.g., 'Fe XXIV d')
.ident The identification of the transition, configuration
and terms in text form.
.ident_latex
The identification of the transition, configuration
and terms in latex form.
.lvl1 The lower level of the transition (see .elvlc
file for ion)
.lvl2 The upper level for transition.
.tmax The temperature of maximum emission of the line.
If the G(T) are output, tmax is the maximum of G(T).
If the isothermal approximation is used tmax=0.
If a DEM is used, tmax is the maximum of the
emissivity that includes the product of the ion
fraction and the DEM.
Rounded to nearest 0.1
.wvl Wavelength of the transition, in Angstroms.
.flag A flag, =-1 if the line has only theoretical energy
levels. Otherwise flag=0.
.int Intensity of line (erg/cm2/s/sr or phot/cm2/s/sr),
divided by the element abundance (exclusive with .goft).
.goft The G(T) of the line (optional /exclusive with .int).
.ioneq_name The ion balance file used (full path).
.ioneq_logt The Log10 T values associated.
.ioneq_ref The references.
.dem_name The differential emission measure file eventually used
(full path).
.dem The Log10 DEM values
.dem_logt The Log10 T values associated.
.dem_ref The references.
.model_name A string indicating the model used:
1- Constant density
2- Constant pressure
3- Function (Te,Ne)
.model_file Full path of the (Te,Ne) file if defined. Null string otherwise.
.model_ne the Ne value(s).
- a scalar if 'Constant density' is selected.
- an array if 'Function' is selected.
- 0. if constant pressure is selected.
.model_pe the Pe value.
- a scalar if constant pressure is selected.
- 0. if 'Constant density' is selected.
- an array=density*temperature if 'Function' is selected.
.model_te the Te values if 'Function' is selected. Otherwise 0.
.wvl_units The wavelength units.
.wvl_limits The wavelength limits specified by the user.
.int_units The intensity units.
1) If LOGT_ISOTHERMAL is defined, we have two cases:
a) LOGEM_ISOTHERMAL is not defined, and is therefore
assumed to be 0 (EM=1). In this case, units are
'photons cm+3 sr-1 s-1' or 'erg cm+3 sr-1 s-1'.
b) LOGEM_ISOTHERMAL is defined. In this case, units are
'photons cm-2 sr-1 s-1' or 'erg cm-2 sr-1 s-1'.
2) If LOGT_ISOTHERMAL is not defined, we have two cases:
a) intensities are calculated. In this case, units are
'photons cm-2 sr-1 s-1' or 'erg cm-2 sr-1 s-1'.
b) Contribution functions G(T) are calculated. In this
case, units are
'photons cm+3 sr-1 s-1' or 'erg cm+3 sr-1 s-1'.
.logt_isothermal
The Log10(T) values used.
.logem_isothermal
The Log10(EM) values used.
.date The date and time when the structure was created.
.version The version number of the CHIANTI database used.
.add_protons
A flag (0/1) to indicate whether proton data were used (1)
or not (0) to calculate the level population.
.photoexcitation
A flag (0/1) to indicate if photoexcitation was included (1)
or not (0).
.radtemp
The blackbody radiation field temperature used (if
photoexcitation was included).
.rphot
Distance from the centre of the star in stellar radius units
(if photoexcitation was included).
OPTIONAL OUTPUTS:
SAVE_FILE: If defined, then an IDL save file is created, with the output
structure.
GOFT: If set, the G(T) of the lines are calculated, and put in
the output structure, instead of the line intensities.
Units are 'photons cm+3 sr-1 s-1' or 'erg cm+3 sr-1 s-1'
KEYWORDS:
ALL: if set, then all lines are included. This means that lines for
which only an approximate wavelength is known,
denoted by a negative wavelength value in the .wgfa file, are
included. These are the lines for which there are no observed
energy levels.
PHOTONS: The output intensities will be in photons instead of
ergs.
VERBOSE: If set, the routine will list each ion it is looking at,
and how many lines from each ion it is including in the
spectrum.
GOFT: If set, the G(T) of the lines are calculated, and put in
the output structure, instead of the line intensities.
Units are 'photons cm+3 sr-1 s-1' or 'erg cm+3 sr-1 s-1'
NOPROT Switch off the inclusion of proton rates in the level
balance (default).
PROGRESS If set, a widget appears, showing the progress of the
calculation and allowing the user to halt the calculation.
NO_SUM_INT Prevents the summing of intensities over temperature.
Only works in conjunction with the LOGT_ISOTHERMAL
option, and is implemented in order to work the
ISOTHERMAL routine. The .INT tag in OUT.LINES becomes
an array with the same number of elements as
LOGT_ISOTHERMAL, corresponding to the intensities at
each temperature.
CALLS: CH_GET_FILE
many CHIANTI standard routines, including:
READ_IONEQ, READ_DEM, READ_MASTERLIST, ION2SPECTROSCOPIC,
ZION2FILENAME, READ_WGFA,READ_ELVLC,READ_SPLUPS,POP_SOLVER,
DESCALE_UPS, CONVERT_TERMS.
CONVERT_TERMS uses some standard SolarSoft routines:
REPSTR, STR_INDEX, DATATYPE,
VALID_NUM, DELVARX, INFO_PROGRESS, SAVEGEN
COMMON BLOCKS:
wgfa, wvl,gf,a_value
upsilon,splstr
elvlc,l1a,term,conf,ss,ll,jj,ecm,eryd,ecmth,erydth,eref
elements,abund,abund_ref,ioneq,ioneq_logt,ioneq_ref
radiative, radt, dilute
proton, pstr
ionrec,rec_rate,ci_rate,temp_ionrec,luprec,lupci,status
RESTRICTIONS:
SIDE EFFECTS:
CATEGORY:
spectral synthesis.
EXAMPLE:
This routine can be called in this way:
IDL> ch_synthetic,5.,10., output=structure, pressure=1.e+15
To make use of the output structure, use MAKE_CHIANTI_SPEC or CH_SS
PREV. HIST. :
Based on synthetic.pro, written by Ken Dere
WRITTEN :
Ver.1, 22-Jun-00, Peter Young (PRY) and Giulio Del Zanna (GDZ)
MODIFICATION HISTORY:
Ver.1, 22-Jun-00, Peter Young and Giulio Del Zanna
Ver.2, 25-Jul-00, PRY
Removed /all keyword; make_chianti_spec can be
used to filter out negative wavelengths.
Added flabel tag to output in order to pick out
dielectronic recombination lines.
Ver.3, 4-Oct-00, PRY
Replaced /all keyword.
Corrected bug when .wgfa files contain two A-values
for the same transition.
Ver.4, 5-Oct-00, PRY
Corrected bug that gave rise to lines from the same
transition when the dielectronic file existed.
V.5, 11-Oct-2000, GDZ
eliminate the abundance call; reinstate the /masterlist keyword;
added the tag ident_latex to have the identification in
late-style format; added a tag flag=-1 for the unobserved lines,
and =0 otherwise; reinstated all wavelengths > 0. ;
added the calculation of the G(T);
added a few other tags in the output, and various checks and
comments.
V.6 15-Oct-2000 ,GDZ
Replaced calls to solarsoft routines to standard IDL ones.
Corrected an error in the output creation, in relation to the
isothermal case. Added isothermal in the output. added checks to
the wavelengths. Default output name is TRANSITIONS. changed
const_net and added const_net_value + a few other things.
v.7, 27-Nov-2000, GDZ. Corrected an error in the calculation of the
G(T).
Version 8, 5-Dec-2000, GDZ, DAMTP. Fixed a bug when checking the
values in the .splups files.
V. 9, GDZ, 10-Apr-2001, corrected another error in the G(T) calc.
V. 10, GDZ, 30-Oct-2001 added CHIANTI Version number, changed isothermal
to logt_isothermal and added logem_isothermal to the output.
Removed the use of log T values, and the calculation.
Added err_msg, a text string with an error message.
Version 11, 8-Nov-01, GDZ
Changed the MASTERLIST keyword. Allowed double use, as a keyword
and as a string.
Version 12, 18-Nov-01, Peter Young
Added /NOPROT, RPHOT and RADTEMP keywords; changed upsilon
common block.
Version 13, 29-Apr-02, GDZ
Added no_protons, photoexcitation, rphot, radtemp
tags into the output structure.
Revised Header. Added the PROGRESS widget.
Added a check if the ion is present in the Ion. Frac. file.
Added informative MSG keyword.
Now uses savegen.pro to save the structure.
V. 14, 28-May-2002, GDZ:
generalize directory concatenation to work for Unix, Windows
and VMS.
modified tags:
limits -> wvl_limits
ioneq_t -> ioneq_logt
wvlunits -> wvl_units
intunits -> int_units
time --> date
no_protons -> add_protons
dem_t -> dem_logt
const_nte -> model_name
const_nte_value -> model_ne, model_pe, model_te
removed from the main STR: .ioneq ctemp
removed from the LINES STR: fwhm flabel
Added model_file input for model Ne(T). Had to considerably
modify the routine.
V. 15, 16-Jul-2002, Peter Young
Added keyword /NO_SUM_INT.
V. 16, 22-Jul-2002, Peter Young
Corrected a bug related to /NO_SUM_INT; logt_isothermal
can now be specified without logem_isothermal.
V. 17, 23-July-2002, GDZ
Modified a few checks on the input. Also, now it prints the
error message whenever the program aborts
V.18, 2-Aug-02, GDZ
Replaced all DBLARR and DOUBLE calls with floats.
Added a comment at the end of the routine when it finishes.
V.19, 8-Aug-02, GDZ
Added more error info. Changed the use of the DENSITY
keyword. It is possible to input an array of values if
LOGT_ISOTHERMAL is defined.
V. 20, 17-Sep-02, GDZ
Corrected a bug: the functional (T,N) form
is now only accepted if DENSITY is an array with at least two
values.
V. 21, 19-Sep-02, GDZ
Corrected the definition of the UNITS in case LOGT_ISOTHERMAL
is defined.
V. 22, 19-Aug-03, Peter Young
when logem_isothermal is input, the derived EM is now a
DOUBLE array rather than FLOAT, preventing infinities when
logem_isothermal values are large.
V. 23, 4-Oct-2003, GDZ
modified the input to POP_SOLVER, now it is dealt with an
input structure.
V.24, 10-Oct-2003, K.Dere
added modifications from K.Dere, regarding the satellite
lines.
V 25, 3-Nov-2003, GDZ
Added GROUP keyword, and modified so the progress widget can
be stopped within IDL Windows.
V 26, 17-Apr-2004, Enrico Landi (EL)
Added the recombination/ionization population processes.
V.27, 13-Apr-2005, EL
Replaced the main loop to calculate individual line intensities
with operations among arrays, to speed the whole program in case
of large numbers of lines.
VERSION : 27, 13-Apr-2004
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
CH_WRITE_FITS
PURPOSE:
Write standard FITS binary table data from CHIANTI input structure.
CALLING SEQUENCE:
CH_WRITE_FITS, Input, Filename
INPUTS:
Input = Structure to be written to FITS file.
OUTPUTS:
Filename = String containing the name of the file to be written.
CH_WRITE_FITS creates two binary table extension in a single
FITS file. The second one is appended as a new extension.
OPTIONAL INPUTS: Header COMMENTS.
KEYWORDS:
head1, head2
Additional COMMENTS to be added at the bottom of the two binary tables.
NOTES:
Any existing FITS file can be over-written or not.
Use CH_READ_FITS to convert the FITS file back into a structure.
CALLS:
FXPAR(), FXADDPAR, IS_IEEE_BIG(), HOST_TO_IEEE, DIALOG_MESSAGE
COMMON BLOCKS: none.
RESTRICTIONS:
(1) Limited to 127 columns in tables by IDL structure limits.
(2) String columns with all columns of zero length crash the
program
(3) The input structure has to be of the type TRANSITIONS.
PREV. HIST. :
The subroutines in this procedure are extracted without modifications from
the MWRFITS.PRO routine, written by T. McGlynn Version 0.95 2000-11-06
and present in the ASTRON library (in SolarSoft under /gen/idl_libs/astron/).
EXAMPLE:
ch_write_fits, transitions , 'test.fits'
WRITTEN :
Ver.1, 22-May-02 Giulio Del Zanna (GDZ)
MODIfICATION HISTORY:
VERSION : 1, 22-May-02, GDZ
NAME:
CH_XMENU_SEL
PURPOSE:
Allow user to select a set of items from a list. Widget equivalent
of WMENU_SEL
CALLING SEQUENCE:
ss = ch_xmenu_sel(array)
ss = ch_xmenu_sel(array, /one)
ss = ch_xmenu_sel(array, /fixed) - use fixed font (keep column alignement)
INPUTS:
ARRAY A string or string array of values to be displayed for
selection
OPTIONAL KEYWORD INPUT:
ONE If set then only one button may be turned on at a time.
TIT The title of the widget
GROUP The parent widget id (so that if the parent widget exits,
this widget is destroyed too)
FIXED_FONT If set, use fixed font (keep columns aligned)
SIZE_FONT Size of (fixed) font to use - default=15 (implies /FIXED)
NLINES How many lines to display. Default is 20
OUTPUTS:
The result returns the select indices of the array ARRAY.
RESTRICTIONS:
Must have widgets available.
HISTORY:
Written 30-Jan-95 by M.Morrison using Elaine Einfalt
YO_TAPE_WIDG as a starting point
10-Jul-96 (MDM) - Ajustment to make the output scaler if it
is a single item
11-nov-96 (SLF) - add FIXED_FONT and SIZE_FONT keywords
15-Apr-97 (MDM) - Re-added the 9-Jan-97 (MDM) modification
to merge with 11-Nov-96 version
9-Jan-97 (MDM) - Added NLINES option
22-Jul-97 (MDM) - Added call to WMENU_SEL if the device is
not X (so that terminal prompting is
enabled.
9-may-2001 Giulio Del Zanna (GDZ)
added keywords text and include, renamed ch_xmenu_sel
V.7, 15-Aug-2002 GDZ
Modified a few cosmetics, and add the option to have a TEXT string
array to add as a comment in the top widget.
V.8 30 Jan 2002, GDZ
Now it returns an ordered list, according to how the lines where
selected. It works only the first time the routine is called.
V.9, 30-Jun-2003, Peter Young
Added call to CHIANTI_FONT to correct problem with fixed font in
Windows.
V.10 3-Oct-2003, GDZ
inserted the ,/MODAL keyword within the main widget, for
compatibility with IDL v.5.4
VERSION : 10 3-Oct-2003
NAME
CI_REC_INTERP()
PROJECT
CHIANTI
EXPLANATION
For including ionization and recombination into the level balance, it's
necessary to interpolate the data stored in the CHIANTI files and, in
addition, perform extrapolation to lower or higher temperatures.
This routine performs the interpolation and extrapolation for general
input arrays.
INPUTS
TEMP Temperature at which rate required. Units: K. Must be a scalar
quantity.
RATE_TEMP Temperatures at which RATE is tabulated. Input as Log (base 10)
values.
RATE The rate coefficient, tabulated at temperatures RATE_TEMP.
KEYWORDS
EXTRAP_ABOVE Extrapolation to higher temperatures will only take place
if this keyword is set.
EXTRAP_BELOW Extrapolation to lower temperatures will only take place
if this keyword is set.
OUTPUT
The value of the rate coefficient at the temperature TEMP. If no data is
available at the specified temperature then a value of zero is returned.
HISTORY
Ver.1, 29-Jun-2005, Peter Young
adapted from original code by Enrico Landi
PROJECT: CHIANTI
CHIANTI is an atomic database package for the calculation of
continuum and emission line spectra from astrophysical plasmas. It is a
collaborative project involving the Naval Research Laboratory
(Washington DC, USA), the Arcetri Observatory (Firenze, Italy), and the
Cambridge University (United Kingdom).
NAME:
CONF2N
PURPOSE:
Extract the highest principal quantum number from the configuration
CALLING SEQUENCE:
CONF2N,conf,n
INPUTS:
Conf: the configuration returned from read_elvlc_direct
KEYWORD PARAMETERS:
None
OUTPUTS:
N: the principal quantum number
EXAMPLE:
> conf2n,'2s2.3p 2P1.0',n
> print,n
> 3
CALLS:
None
RESTRICTIONS
If the principal quantum number is 10 or greater, it will not be
picked up.
If the configurations are written in upper case (e.g., 3S2.3P2),
then the principal quantum numbers will not be picked up (a value
of 0 will be returned).
MODIFICATION HISTORY:
Ver.1, April-2000, Ken Dere
Ver.2, 17-Oct-2000, Peter Young
removed call to str_index
PROJECT: CHIANTI
PROJECT: CHIANTI
CHIANTI is an atomic database package for the calculation of
continuum and emission line spectra from astrophysical plasmas. It is a
collaborative project involving the Naval Research Laboratory
(Washington DC, USA), the Arcetri Observatory (Firenze, Italy), and the
Cambridge University (United Kingdom).
NAME:
convertname
PURPOSE:
Ion names as character strings are converted into
numerical values (note c_2 is C II or C^+1
in spectroscopic or atomic notation)
CATEGORY:
naming utility
CALLING SEQUENCE:
CONVERTNAME,Name,Iz,Ion
INPUTS:
Name: such as 'c_2'
OUTPUTS:
Iz: nuclear charge Z (6 for 'c_2', the equivalent of C II)
Ion: ionization stage: (2 for 'c_2')
OPTIONAL OUTPUTS
DIELECTRONIC Set to 1 if NAME has a 'd' appended to it
(indicating dielectronic recombination data) else
set to 0
EXAMPLE:
> convertname,'c_2',iz,ion
> print,iz,ion
> 6,2
> convertname,'o_6d',iz,ion
> print,iz,ion
> 8,6
MODIFICATION HISTORY:
Written by: Ken Dere
March 1996: Version 2.0
October 1999: Version 3. by kpd
Ver.4, 11-Dec-01, Peter Young
Revised routine, removing ch_repstr call.
Added DIELECTRONIC optional output.
PROJECT : CHIANTI
CHIANTI http://wwwsolar.nrl.navy.mil/chianti.html
CHIANTI is an atomic database package for the calculation of
continuum and emission line spectra from astrophysical plasmas. It is a
collaborative project involving the Naval Research Laboratory
(Washington DC, USA), the Arcetri Observatory (Firenze, Italy), and the
Cambridge University (United Kingdom).
NAME : CONVERT_TERMS
PURPOSE :
to convert the transition information into readable formats.
CALLING SEQUENCE:
IDL>this_design = convert_terms(l1, l2, result_latex =result_latex)
PROCEDURE:
This function is used to convert the transition information into
readable formats, including spaces and calulating the J values.
The process is quite complex since the notation of the level
designations in the CHIANTI files is not standard.
A very useful latex-style output is also created.
INPUTS :
l1: the index of the lower level
l2: the index of the upper level
the rest of the input info is taken from the COMMON.
OPT. INPUTS : none
OUTPUTS :
a string with the transition information.
OPT. OUTPUTS:
a string with the transition information in latex format.
KEYWORDS :
RESULT_LATEX: the name of an output string.
CALLS :
CONVERT_CONFIG (included here) and other SolarSoft routines.
COMMON BLOCKS: elvlc,l1a,term,conf,ss,ll,jj,ecm,eryd,ecmth,erydth,eref
from here, all the information needed is taken.
RESTRICTIONS: It will not convert every case.
SIDE EFFECTS: None known yet.
EXAMPLES :
this_design = convert_terms(l1, l2, result_latex =result_latex)
CATEGORY :
spectral synthesis.
PREV. HIST. :
parts of the function convert_terms are derived from the CHIANTI
routines.
WRITTEN :
Giulio Del Zanna (GDZ), 10-Oct-2000
DAMTP (University of Cambridge, UK)
MODIFIED : Version 1, GDZ 10-Oct-2000
Version 2, GDZ 10-Oct-2001
Uses standard SolarSoft routines.
V. 3, 18-Sep-2002, GDZ
Fixed a bug with the jvalue
VERSION : 3, 18-Sep-2002
PROJECT : CHIANTI
CHIANTI http://wwwsolar.nrl.navy.mil/chianti.html
CHIANTI is an atomic database package for the calculation of
continuum and emission line spectra from astrophysical plasmas. It is a
collaborative project involving the Naval Research Laboratory
(Washington DC, USA), the Arcetri Observatory (Firenze, Italy), and the
Cambridge University (United Kingdom).
NAME : CONVERT_TERMS_ALL
PURPOSE :
to convert level information into readable formats for all the levels
of an ion.
CALLING SEQUENCE:
IDL>convert_terms_all, res_ascii, res_latex
PROCEDURE:
This function is used to convert the level information into
readable formats, including spaces and calculating the J values.
A very useful latex-style output is also created.
It has been adapted to manage all the levels of a given ion
at once from the original routine CONVERT_TERMS.PRO.
INPUTS : all the input info is taken from the COMMON.
OPT. INPUTS : none
OUTPUTS :
RES_ASCII: a string array with the transition information in ASCII format.
RES_LATEX: a string array with the transition information in LATEX format.
CALLS :
CONVERT_CONFIG (included here) and other SolarSoft routines.
COMMON BLOCKS: elvlc,l1a,term,conf,ss,ll,jj,ecm,eryd,ecmth,erydth,eref
from here, all the information needed is taken.
RESTRICTIONS: It will not convert every case.
SIDE EFFECTS: None known yet.
EXAMPLES :
convert_terms_all, res_ascii, res_latex
CATEGORY :
spectral synthesis.
PREV. HIST. :
convert_terms_all has been derived from the existing CHIANTI
routine CONVERT_TERMS.
WRITTEN :
Enrico Landi, 11-Apr-2005
Naval Research Laboratory
MODIFIED : Version 1, EL 11-Apr-2005
VERSION : 1, 11-Apr-2005
NAME
CORRECT_POPS()
PROJECT
CHIANTI
EXPLANATION
Corrects CHIANTI level populations with the ionization and recombination
rate coefficients
INPUTS
PP The level populations that need to be corrected.
T Temperature at which calculation is performed. Units: K.
XNE Electron density at which calculation is performed. Units: cm^-3
IONREC Structure with the following tags
.rec Effective recomb. rate coefficients
.ci Effective ionization rate coefficients
.temp Temperatures at which rates are tabulated
.lev_up_rec Levels to which recombination takes place
.lev_up_ci Levels to which ionization takes place
.status Either +1 (ion/rec data exists) or -1 (dosen't exist)
.ioneq Ion fractions of the 3 ions
CC 2D matrix produced by MATRIX_SOLVER that contains the rate
coefficents from the standard CHIANTI processes.
OPTIONAL OUTPUTS
CRATE A 1D array of same size as POP containing the collisional
ionization rate coefficients (units: cm^3 s^-1).
RECRATE A 1D array of same size as POP containing the recombination
rate coefficients (units: cm^3 s^-1).
CORRECTION A 1D array of same size as POP containing the correction
factors for each level.
FRAC_LOW The ratio of the current ionization fraction to the fraction
of the one lower ion (i.e., less ionized).
FRAC_HIGH The ratio of the current ionization fraction to the fraction
of the one higher ion (i.e., more ionized).
CALLS
ION_FRAC_INTERP(), CI_REC_INTERP()
HISTORY
Ver.1, 10-Jun-2005, Peter Young
Taken original code of Enrico Landi and inserted it into a separate
routine.
Ver.2, 16-Aug-2005, Peter Young
Changed total_exc to be dblarr in order to prevent NaNs.
Project : SOHO - CDS
Name : DEM_FIT
Purpose : Calculates the Differential Emission Measure DEM(T) using
a set of values in common with other routines.
Category : diagnostic analysis
Explanation : This routine (called by CHIANTI_DEM.PRO) performs
a series of iterations in order to
find the DEM that minimize the chi^2. The values in common
with CHIANTI_DEM.PRO are used.
As a least squares fit to a non-linear
function, see pages 237-239, Bevington, Data Reduction and Error
Analysis for the Physical Sciences.
Use : IDL> dem_fit,y,chisqr
It has to be noted that a general use of this routine
is limited.
Inputs : the values stored in common.
Opt. Inputs : None
Outputs : log_dem_mesh,y ,chisqr
i.e. the DEM mesh values, the intensity values as resulted
from this model DEM, and the chi^2.
Opt. Outputs: None
Keywords :
FLAMBDA: the initial value of the parameter flambda.
SCALE: the initial value of the parameter scale, that
controls the steps of the iteration.
N_ITER:
optional.It is the number of iterations of the fitting routine.
If not set, a default value of 20 is assumed.
Changing this value alone might not affect the fit, since
also the value of DCHISQ_MIN is checked during the fit.
DCHISQ_M:
optional. If not set, a default value of DCHISQ_MIN=1.e-5
is assumed. For each iteration, the CHISQ and it's variation
are calculated. As long as the iteration achieves an
improvement in CHISQ greater than DCHISQ_MIN , another
iteration will be performed.
FAILED: If the fit fails,the routine returns and flags FAILED=1
QUIET:
optional. Set to avoid various messages
Calls : DEM_DERIV, DEM_FUNCTN, DEM_CHISQR
Common :
obs, obs_int,obs_sig,n_obs
dem, d_dem_temp,dem_temp,log_dem_temp,log_t_mesh,log_dem_mesh
contr,ch_tot_contr
Restrictions: Not always the fit is successful.
Side effects: None known.
Prev. Hist. :
Written by Ken Dere (NRL) as part of the CHIANTI package
in collaboration with Brunella Monsignori Fossi, Enrico Landi
(Arcetri Observatory, Florence), Helen Mason and Peter Young
(DAMTP, Cambridge Univ.). Incorporated into the CDS software.
Written :
Giulio Del Zanna (GDZ),
UCLAN (University of Central Lancashire, UK) 5 November 1997
HISTORY:
Ver 1, GDZ 5-Nov-97
Ver 2, EL 6-Apr-05
Renamed the variable "deriv" to "deriv1" to avoid conflicts
with an IDL routine with the same name.
Version : 2.0 6 April 2005
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
DENSITY_RATIOS
PURPOSE:
to calculate line intensity ratios as a function of electron density
CATEGORY:
scientific analysis
CALLING SEQUENCE:
DENSITY_RATIOS,Ion,Wmin,Wmax,Dmin,Dmax,Density,Ratio,Description
INPUTS:
Ion: the CHIANTI style name of the ion, i.e., 'c_5' for C V
wmin: minimum of the wavelength range of interest in Angstroms
wmax: maximum of the wavelength range of interest in Angstroms
dmin: log10 of the minimum desired density (8. = 10^8 cm^(-3) )
dmax: log10 of the maximum desired density range
INTERACTIVE INPUTS:
Must select the line for the numerator and denominator
It is possible to select multiple lines to be summed
KEYWORD PARAMETERS:
OUTFILE: the (optional) name of the output ascii file where a
listing of the line ratio intensity as a function of
density is saved. For example, outfile='den_rat.lis'
PSFILE: the (optional) name of the output postscript file
where a plot of the choses density sensitive line
ratio is saved. For example, psfile='den_rat.ps'
TEMP: to specify the temperature, otherwise the temperature at
the peak
of the ionization equilibrium is used. For example,
temp=1.e+6
/PHOTONS: if set, the ratio will be in photon units, as opposed
to ergs
RADTEMP Specify background radiation temperature (default: 6000 K)
RPHOT Distance from the centre of the star in stellar radius units.
I.e., RPHOT=1 corresponds to the star's surface. (Default is
infinity, i.e., no photoexcitation.)
NOPROT If set, then the default setting will be NOT to use
proton rates. This can be changed within the routine.
VERBOSE To print out information about the lines.
OUTPUTS:
Density: an array of the density values for which the selected
intensity ratio calculated
Ratio: an array of line intensity ratios
Description: a string describing the transitions selected
Plots the intensity ratio of the selected line as a function of density
COMMON BLOCKS:
None.
CALLS
EMISS_CALC, ION2SPECTROSCOPIC, CONVERTNAME, READ_IONEQ,
CH_XMENU_SEL
EXAMPLE:
density_ratios,'o_5',1000.,1500.,8.,13.,den,rat,desc
choose the ratio of 1371.294 to 1218.393
MODIFICATION HISTORY:
Written by: Ken Dere
March 1996: Version 2.0
May 28, 1996: Ken Dere added psfile keyword/option
Sept 1996: modified to work with VMS
and added keyword TEMP, Ken Dere
Feb. 2000: Modified for Version 3, K. Dere
14-Jul-2000 Peter Young, now calls pop_solver
26-Sep-2001 Modified for 9-point splines and proton rates;
added radtemp and rphot keywords for photoexcitation.
20-Nov-2001 Routine now calls emiss_calc to get emissivities.
V.9, 21-May-2002, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
V.10, 1-Aug-02 GDZ
Changed all the formats.
V.11, 06-Aug-02 GDZ
Changed the use of CHIANTI system variables.
V.12, 15-Aug-02, GDZ
Major revision:
-Added the keyword VERBOSE, to avoid printing out long lists of lines.
-Removed the call to ch_xselect_s, that did not work for long lists.
-Added a '*' in the line lists, to identify 'unobserved' lines.
-Replaced the commands to create PS file, to make it
cross-platform compatible.
-Added a large number of cosmetics, mainly lables to the axes and
titles, that were missing.
-Removed plotting in windows already present.
-Added the CHIANTI version number in the outputs.
V.13, 3-Nov-03 GDZ
Modified format e8.2 to e9.2 for Windows compatibility.
VERSION : 13, 3-Nov-03
PROJECT
CHIANTI http://wwwsolar.nrl.navy.mil/chianti.html
CHIANTI is an atomic database package for the calculation of
continuum and emission line spectra from astrophysical plasmas. It is a
collaborative project involving the Naval Research Laboratory
(Washington DC, USA), the Arcetri Observatory (Firenze, Italy), and the
Cambridge University (United Kingdom).
NAME
dens_plotter
PURPOSE:
A widget-based routine to allow the analysis of density sensitive
ratios. **** See RATIO_PLOTTER for details. *****
CALLING SEQUENCE:
IDL> dens_plotter, name,$
EM, PATH=PATH, NOPROT=NOPROT, $
IONEQ_FILE=IONEQ_FILE, ABUND_FILE=ABUND_FILE
INPUTS:
The ion name (e.g. 'si_3' for Si III)
OPTIONAL INPUTS : none
OUTPUTS:
OPTIONAL OUTPUTS:
EM: Save the displayed emissivities to structure EM.
**** See RATIO_PLOTTER for details. *****
KEYWORDS:
PATH: Data in the CHIANTI format that is not in the CHIANTI
database can be read by specifying the directory in which
it lies through PATH.
ABUND_FILE The name of a CHIANTI abundance file. This is used for
calculating the proton to electron ratio. Default is
!abund_file.
IONEQ_FILE The name of a CHIANTI ion balance file. This is used for
calculating the proton to electron ratio and evaluating
the T_max of the ion. Default is !ioneq_file.
NOPROT If set, then the default setting will be NOT to use
proton rates. This can be changed within the routine.
CALLS: CONVERTNAME RATIO_PLOTTER
COMMON BLOCKS: none
RESTRICTIONS:
SIDE EFFECTS:
CATEGORY:
spectral synthesis.
EXAMPLE:
IDL> dens_plotter, 'si_9'
WRITTEN :
Ver.1, 18-Apr-2002, Giulio Del Zanna (GDZ) written as a wrapper
routine to call RATIO_PLOTTER.
MODIFIED: V.2, 2-Aug-2005, GDZ
Now the routine handles the dielectronic case
VERSION : 2, 2-Aug-2005
EXPLANATION
This routine descales all types of spline fits into upsilons or
rates, i.e., it does both electron upsilons and proton rates,
and both 5-point and 10-point splines. In addition it can
simultaneously descale several temperatures at once.
INPUTS
TEMP Temperature(s), K.
SPLSTR Structure output by read_splups.
INDEX Index of structure.
OUTPUTS
UPS Upsilon value(s) at temperature(s) TEMP.
EXAMPLES
read_splups,splupsfile,splstr
descale_all,[1.e6,2.e6],splstr,5,ups
print,ups
HISTORY
Ver.1, 15-Mar-01, Peter Young
adapted from Ken Dere's descale_ups.pro.
Ver.2, 12-Nov-01, Peter Young
added type 6 transitions (for protons)
PROJECT: CHIANTI
CHIANTI is an atomic database package for the calculation of
continuum and emission line spectra from astrophysical plasmas. It is a
collaborative project involving the Naval Research Laboratory
(Washington DC, USA), the Arcetri Observatory (Firenze, Italy), and the
Cambridge University (United Kingdom).
NAME:
DESCALE_UPS
PURPOSE:
convert from Burgess-Tully scaling spline fits to Upsilons
CATEGORY:
science.
CALLING SEQUENCE:
DESCALE_UPS,Index,Jndex,xt,upsilion
INPUTS:
Index: index of lower energy level (lowest level is 1)
Jndex: index of upper energy level (lowest level is 1)
xt: scaled temperature
OPTIONAL INPUTS:
None:
KEYWORD PARAMETERS:
None:
OUTPUTS:
Upsilon: the Maxwellian averaged collision strength
COMMON BLOCKS:
common elvlc,l1a,term,conf,ss,ll,jj,ecm,eryd,ecmth,erydth,eref
common wgfa, wvl,gf,a_value
common upsilon,t_type,c_ups,splups
PROCEDURE:
see Burgess and Tully, 1992, Astron and Astrophys, 254, 436.
EXAMPLE:
;
MODIFICATION HISTORY:
Written by: Ken Dere
March 1996: Version 2.0
December 1998: Include transition type 5 (kpd)
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME: EMISS_CALC()
PURPOSE:
To compute the emissivities of all lines of a specified ion over
given ranges of temperature and density.
CATEGORY:
Scientific analysis
EXPLANATION:
This routine calculates:
hc
-- * N_j * A_ji
lamb
where hc = 1.986 * 10^-8 erg AA, lamb is in angstroms, N_j is the
fraction of ions in the upper emitting level j, and A_ji is the
radiative decay rate for the transition.
The emissivities are stored in a structure called EMISS that also
holds the wavelength of the transition, the level numbers i and j
and also a 'flag', which is set to -1 if the wavelength is negative.
The temperature and density ranges can be specified directly using
the TEMP and DENS keywords. Setting TMAX to the log T_max of the
ion, gives emissivities for 3 temperatures: log T_max +- 0.15.
If DENS is not set, then it is set to 8 to 12 in 0.5 dex intervals.
STDENS allows the start density (of 8) to be changed to some other
value; ND allows the number of densities to be varied (default 9);
DINT allows the density interval to be varied (default 0.5).
CALLING SEQUENCE:
EMISS=EMISS_CALC (IZ, ION, [ TEMP=TEMP, DENS=DENS, RADT=RADT, $
DIL=DIL, PATH=PATH, /NO_DE, /PROTON, $
QUIET, PRESSURE=PRESSURE)
EXAMPLES:
EMISS=EMISS_CALC(26,13)
EMISS=EMISS_CALC(26,13,temp=[6.2],dens=findgen(5)+8)
EMISS=EMISS_CALC(26,13,temp=findgen(11)/100.+5.5,press=10.^15)
INPUTS:
IZ The atomic number of the ion
ION The spectroscopic number of the ion (e.g., 12 = XII)
OPTIONAL INPUTS:
TEMP Direct specification of the temperature range (log T)
DENS Direct specification of the density range (log Ne)
RADTEMP Specify background radiation temperature (default: 6000 K)
RPHOT Distance from the centre of the star in stellar radius units.
I.e., RPHOT=1 corresponds to the star's surface. (Default is
infinity, i.e., no photoexcitation.)
PATH If specified, the routine will look for the atomic data in
the PATH directory, rather than in the CHIANTI database
PRESSURE If a temperature array is given, and PRESSURE set,
then the emissivities will be evaluated at the
specified temperatures, but for densities =
pressure/temperature. If DENS is set, then it will
be ignored. The pressure is assumed to be in units
K * cm^-3.
ABUND_FILE The name of a CHIANTI abundance file. This is used for
calculating the proton to electron ratio. Default is
!abund_file.
IONEQ_FILE The name of a CHIANTI ion balance file. This is used for
calculating the proton to electron ratio and evaluating
the T_max of the ion. Default is !ioneq_file.
SUM_MWL_COEFFS An array of coefficients of the same length as
the array of temperatures. Electron and proton rate
coefficients will be calculated at each temperature
and then a weighted sum of the coefficients is
performed using SUM_MWL_COEFFS. This allows
non-Maxwellian energy distributions to be
incorporated into the level balance equations.
This keyword is not compatible with the PRESSURE
keyword.
RADFUNC The name of a user-defined function that will generate
a radiation spectrum as a function of temperature.
This radiation field will replace the black-body that
is assumed when using the RADTEMP keyword in the call
to pop_solver.
KEYWORDS:
NO_DE Drops the hc/lambda factor in the computation of the
emissivities. Useful for emission measure analyses involving
photon fluxes
NOPROT If set, then the default setting will be NOT to use
proton rates. This can be changed within the routine.
QUIET If set, don't list the temperatures and densities at which
the emissivities are caculated.
DIEL If the dielectronic recombination files exist for the ion,
then these are used to derive the emissivities.
NO_SETUP If emiss_calc is called from a routine where the ELEMENTS
common block has already been set up, then this keyword
stops emiss_calc loading up the common block
OUTPUT:
The structure that is output has the following tags:
.ion_name string; contains ion name, e.g., 'Fe XIII'
.lambda float; contains wavelength
.level1 integer; contains lower level of transition
.lvl1_desc string; gives config. and term of lower level
.level2 integer; contains upper level of transition
.lvl2_desc string; gives config. and term of upper level
.flag integer; a flag to mark particular transitions
.em fltarr(nt,nd); contains emissivities at particular
temperatures and densities.
PROGRAMMING NOTES:
Transitions where only theoretical energies are available for at
least one of the two levels are assigned negative wavelengths in
the .wgfa file. With emiss_calc, the wavelength is set to be
positive, but emiss.flag is set to -1 for that transition, so
that other routines can keep track of the theoretical wavelengths.
COMMON BLOCKS:
ELVLC, WGFA, UPSILON, RADIATIVE, PROTON, ELEMENTS, IONREC
CALLS:
SETUP_ION, POP_SOLVER
ZION2FILENAME, ZION2SPECTROSCOPIC
READ_PROT, PROTON_DENS
HISTORY:
Ver 1, PRY 28-Jun-97
Ver 2, PRY 26-Jul-97 - corrected problem with size of emiss
Ver 3, PRY 22-Sep-97 - allowed photo-excitation to be included
Ver 4, PRY 6-Jul-98 - added PATH
Ver 5, PRY 5-Sep-98 - added call to choose_ioneq
Ver 6, PRY 3-Dec-98 - dosen't crash if no params given
Ver 7, PRY 9-Jan-99 - allowed proton rates to be added through
/PROTON keyword.
Ver 8, PRY 10-Feb-99 - added /QUIET keyword
Ver 9, PRY 8-Oct-99 - for H-like ions, there's a 2-photon
transition with a non-zero A-value that is
assigned a zero wavelength (as it does not
produce an emission line). This caused
problems for dens_plotter, so emiss_calc
now removes this transition from the emiss
structure.
Ver 10, PRY 15-Dec-99 - added deu to the upsilon common block in
order to be consistent with the main Chianti
routines.
Ver 11, PRY 8-May-00 - added PRESSURE
Ver 12, PRY 17-Aug-00 - changed elvlc common block to match new
version of pop_solver
Ver 13, PRY 10-Oct-00 - now calls setup_ion to read ion data
Ver 14, PRY 1-Jun-00 - removed call to choose_ioneq; now makes use
of the !ioneq_file system variable.
Ver 15, PRY 25-Sep-01 - modified for 9-point splines and proton rates
Ver 16, PRY 9-Dec-01 - completed changes for v.4
V. 17, 29-May-2002, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
Now we only call zion2filename, corrected the call to
zion2spectroscopic (dielectronic cases were not handled
correctly).
V.18, 6-Aug-2002, Peter Young
Theoretical wavelengths weren't being flagged so this
has now been corrected.
V.19, 7-Aug-2002, Peter Young
Stopped "lines" with zero wavelength being included in
the structure.
Changed the use of CHIANTI system variables.
V.20 14-Aug-2002, GDZ
Modified the use of Version, to make it compatible with the
other CHIANTI v.4 routines.
V.21 10-Sep-2002, Peter Young
Allowed a density of 1 cm-3 to be input.
V.22 7-Aug-2003, Peter Young
Added keyword /NO_SETUP
V.23 4-Oct-2003, GDZ
modified the input to POP_SOLVER, now it is dealt with an
input structure.
V.24 5-Mar-2004, Enrico Landi (EL)
included ionization and recombination as level population
processes
V.25 6-May-2005, EL
corrected a minor incompatibility with IDL 5.6
V.26 5-Jul-2005, Peter Young
added RADFUNC= and SUM_MWL_COEFFS= keywords
V.27 1-Aug-2005, Peter Young
re-ordered code for setup to prevent crash
V.28 3-Aug-2005,GDZ
fixed bug, only define ioneq_ionrec when files are
there (it was failing with neutrals)
VERSION : 28 3-Aug-2005
PROJECT: CHIANTI
CHIANTI is an atomic database package for the calculation of
astrophysical emission line spectra. It is a collaborative project
involving Ken Dere (Naval Research Laboratory, Washington DC),
Brunella Monsignori-Fossi and Enrico Landi (Arcetri Observatory,
Florence), and Helen Mason and Peter Young (DAMTP, Cambridge Univ.).
NAME
EMISS_SELECT()
PURPOSE
Allows emissivity arrays within EMISS structures to be selected
via a widget.
CATEGORY:
Atomic data analysis
CALLING SEQUENCE
em=emiss_select(emiss,index,sel_ind=sel_ind)
EXAMPLES
emiss=emiss_calc(26,13) ; calculate emiss for FeXIII
em=emiss_select(emiss)
em=emiss_select(emiss,indgen(10))
em=emiss_select(emiss,wra=[200,300],sel_ind=sel_ind)
INPUTS
EMISS A structure that is output by the routine EMISS_CALC
OPTIONAL INPUTS
INDEX A list of indices that allow a sub-set of wavelengths to
be displayed in the widget. If not specified, then
complete list of wavelengths is shown.
WRANGE Only show wavelengths lying in the specified wavelength
range, e.g., wrange=[200,300]
SEL_IND Contains the emiss index/indices of the selected
wavelengths.
GROUP If emiss_select is being called from another widget-based
routine, then one needs to set GROUP to the widget ID of
the top-level widget.
OUTPUTS
An array that contains the emissivities. If two or more lines were
selected, then the arrays are added together.
CALLS
HISTORY
Ver.1, PRY 1-Sep-97.
Ver.2, PRY 23-Feb-99, added WRANGE keyword
Ver.3, PRY 13-Sep-00, changed format of wavelengths in the
widget list
Ver.4, PRY 20-Nov-00, removed call to xselect_s - the widget
is now created internally.
Ver.5, PRY 27-Dec-00, changed switch to tst1 for IDL v5.4
Ver.6, PRY 6-Aug-02, added transition information to the widget,
and tidied up some of the code.
V.7, 15-Aug-2002 Giulio Del Zanna (GDZ)
Replaced the entire widget with a call to ch_xmenu_sel.
This works fine with very long lists of lines, while previously
the widget was very slow and sometimes would hang.
VERSION : 7, 15-Aug-2002
NAME
ZETA_0
EXPLANATION
Returns the value of zeta_0 (the number of vacancies in the ion given
by IZ and ION). See Sect. 2.2 of Mewe et al. (1986, A&AS 65, 511).
INPUTS
IZ Atomic number of ion (e.g., 26 -> Fe)
ION Spectroscopic number of ion (e.g., 13 -> XIII)
OUTPUTS
Value of zeta_0.
PROJECT: CHIANTI
CHIANTI is an atomic database package for the calculation of
continuum and emission line spectra from astrophysical plasmas. It is a
collaborative project involving the Naval Research Laboratory
(Washington DC, USA), the Arcetri Observatory (Firenze, Italy), and the
Cambridge University (United Kingdom).
NAME:
FF_RAD_LOSS
PURPOSE:
Calculate the free-free radiative energy losses losses.
Uses the free-free integrated gaunt factor calculations of
Sutherland, 1998, MNRAS, 300, 321
CALLING SEQUENCE:
FF_RAD_LOSS,Temperature,LossRate
INPUTS:
OPTIONAL INPUTS:
None
KEYWORD PARAMETERS:
NO_SETUP: If the procedure setup_elements has already been called then
the keyword /no_setup should be set to avoid repeating this step
MIN_ABUND: If set, calculates the continuum only from those elements which
have an abundance greater than min_abund. Can speed up the
calculations. For example:
abundance (H) = 1.
abundance (He) = 0.085
abundance (C) = 3.3e-4
abundance (Si) = 3.3e-5
abundance (Fe) = 3.9e-5
OUTPUTS:
Temperature: temperature in degrees Kelvin, can be a 1 D array
LossRate: radiative energy loss rate in erg s^-1 cm^3
(radiative loss rate per emission measure (N_e N_H V)
COMMON BLOCKS:
common elements,abund,abund_ref,ioneq,ioneq_t,ioneq_ref
EXAMPLE:
> ff_rad_loss,t,rad
> ff_rad_loss,t,rad,min_abund=3.e-5
> ff_rad_loss,t,rad,/no_setup,min_abund=1.e-6
MODIFICATION HISTORY:
Written by: Ken Dere
April 2000: Version 3.0
ROUTINE: findex
PURPOSE: Compute "floating point index" into a table using binary
search. The resulting output may be used with INTERPOLATE.
USEAGE: result = findex(u,v)
INPUT:
u a monitically increasing or decreasing 1-D grid
v a scalor, or array of values
OUTPUT:
result Floating point index. Integer part of RESULT(i) gives
the index into to U such that V(i) is between
U(RESULT(i)) and U(RESULT(i)+1). The fractional part
is the weighting factor
V(i)-U(RESULT(i))
---------------------
U(RESULT(i)+1)-U(RESULT(i))
DISCUSSION:
This routine is used to expedite one dimensional
interpolation on irregular 1-d grids. Using this routine
with INTERPOLATE is much faster then IDL's INTERPOL
procedure because it uses a binary instead of linear
search algorithm. The speedup is even more dramatic when
the same independent variable (V) and grid (U) are used
for several dependent variable interpolations.
EXAMPLE:
; In this example I found the FINDEX + INTERPOLATE combination
; to be about 60 times faster then INTERPOL.
u=randomu(iseed,200000) & u=u(sort(u))
v=randomu(iseed,10) & v=v(sort(v))
y=randomu(iseed,200000) & y=y(sort(y))
t=systime(1) & y1=interpolate(y,findex(u,v)) & print,systime(1)-t
t=systime(1) & y2=interpol(y,u,v) & print,systime(1)-t
print,f='(3(a,10f7.4/))','findex: ',y1,'interpol: ',y2,'diff: ',y1-y2
AUTHOR: Paul Ricchiazzi 21 Feb 97
Institute for Computational Earth System Science
University of California, Santa Barbara
paul@icess.ucsb.edu
REVISIONS:
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME
FREEBOUND
PURPOSE:
Calculates the free-bound (radiative recombination) continuum.
INPUTS
TEMP Temperature in K (can be an array).
WVL Wavelength in angstroms (can be an array).
OUTPUTS
INT Free-bound continuum intensity in units of
10^-40 erg cm^3/s/sr/Angstrom
( integral(N_H N_e dh) in cm^-5) if a DEM is not defined.
If DEM values are defined, it is assumed that they are given
as N_H N_e dh/dT. The units are 10^-40 erg/cm^2/s/srAngstrom
If T is given as a 1-D array, then the output will be a
2-D array, with one element for each temperature and
wavelength (but also see SUMT).
OPTIONAL INPUTS
DEM_INT The intensity array is multiplied by a DEM number for
each temperature. DEM_INT needs to be of the same size
as TEMPERATURE. It is needed for the synthetic spectrum
routines.
IZ Only calculate continuum for the element with atomic
number IZ
ION (To be used in conjunction with IZ.) Calculated continuum
for a single ion (IZ, ION).
KEYWORDS
NO_SETUP If the procedure setup_elements has already been called
then the keyword /nosetup should be set to avoid
repeating this step
MIN_ABUND If set, calculates the continuum only from those
elements which have an abundance greater than
min_abund. Can speed up the calculations. For
example:
abundance (H) = 1.
abundance (He) = 0.085
abundance (C) = 3.3e-4
abundance (Si) = 3.3e-5
abundance (Fe) = 3.9e-5
PHOTONS The output spectrum is given in photon units rather
than ergs.
SUMT When a set of temperatures is given to FREEBOUND, the
default is to output INTENSITY as an array of size
(nwvl x nT). With this keyword set, a summation over
the temperatures is performed.
VERBOSE Output information from FREEBOUND.
COMMON BLOCKS
ELEMENTS
CALLS
FREEBOUND_ION, SETUP_ELEMENTS, READ_KLGFB, GET_IEQ
HISTORY
Ver.1, 24-Jul-2002, Peter Young
Ver.2, 26-Jul-2002, Peter Young
revised call to freebound_ion; corrected ion fraction problem
V 3, 25-May-2005, GDZ
corrected routine header.
VERSION : 3, 25-May-2005
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME
FREEBOUND
EXPLANATION
Calculates the free-bound (radiative recombination) continuum
from a single ion. Note that the output does not contain the ion
fraction, element abundance or differential emission measure term.
INPUTS
TEMP Temperature in K (can be an array).
WVL Wavelength in angstroms (can be an array).
IZ Atomic number of ion (e.g., 26 = Fe)
ION Spectroscopic number of ion (e.g., 13 = XIII)
OUTPUTS
INT Free-bound continuum intensity. Needs to be multiplied by
element abundance, ion fraction and DEM to obtain the final
continuum intensity.
OPTIONAL INPUTS
IP The ionization potential of the ion.
VDATA An array containing the Verner & Yakovlev data array.
PE An array containing the PE data from READ_FBLVL
KLGFB An array containing the KLGFB data from READ_FBLVL
[Note: the above 3 inputs are used when calling freebound_ion from
freebound]
KEYWORDS
NOVERNER If set, then the Verner & Yakovlev cross-sections will
not be used.
COMMON BLOCKS
None.
CALLS
READ_FBLVL, ZION2FILENAME, VERNER_XS, KARZAS_XS, CONCAT_DIR,
READ_IP, READ_KLGFB, FILE_EXIST
PROGRAMMING NOTES
The way I treat the exponential function in the expression for the
emissivity may seem strange, but it saves a bit of time in the
calculation. Basically calculating exp(E-IP+E_i/T) for each level
was time consuming so I split it into exp(E-IP/T)*exp(E_i/T). The
first term comes out of the for loop, while the second term is the
exponential of a vector rather than an array. This made a ~30%
time-saving for freebound.
HISTORY
Ver.1, 24-Jul-2002, Peter Young
Ver.2, 26-Jul-2002, Peter Young
Added /noverner keyword.
Ver.3, 30-Jul-2002, Peter Young
Speeded up routine by modifying treatment of exponential.
PROJECT : CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME
FREEFREE
PURPOSE:
This routine computes the free-free continuum (bremsstrahlung)
using the fitting formulae of Itoh et al. (ApJS 128, 125, 2000)
and Sutherland (MNRAS 300, 321, 1998).
The Itoh et al. data are valid for smaller ranges for temperature
and wavelength than Sutherland and so for points outside of their
ranges we use the data of Sutherland.
INPUTS
TEMP Temperature (in K).
WVL Wavelengths in angstroms. Can be a scalar or vector.
OUTPUTS
INT Free-free continuum intensity in units of
10^-40 erg cm^3/s/sr/Angstrom
[ integral(N_H N_e dh) in cm^-5 ] if a DEM is not defined.
If DEM values are defined, it is assumed that they are given
as N_H N_e dh/dT. The units are 10^-40 erg/cm^2/s/sr/Angstrom.
If T is given as a 1-D array, then the output will be a 2-D array,
with one element for each temperature and wavelength
(but also see SUMT).
OPTIONAL INPUTS
DEM_INT An array of same length as TEMP which contains the
differential emission measure values at each temperature.
The emissivity at each temperature is multiplied by the
DEM value and the d(logT) value.
MIN_ABUND This keyword allows the specification of a minimum abundance,
such that any elements with an abundance (relative to
hydrogen) less than MIN_ABUND will not be included in the
calculation. E.g., MIN_ABUND=1e-5.
KEYWORDS
NO_SETUP By default the routine asks the user which ion balance
and abundance files to use via pop-up widgets. If
/no_setup is used then this data is taken from the common
block.
SUMT The default is to output the intensity array as an array
of size (nwvl x nT). Setting this keyword performs a sum
over the temperatures to yield a vector of same size as
the input wavelengths, thus producing the complete
free-free spectrum.
PHOTONS Gives output emissivity in photon units rather than ergs.
CALLS
SUTHERLAND, ITOH
COMMON BLOCKS
ELEMENTS
PROGRAMMING NOTES
The Itoh fitting formula is only valid for (6.0 LE logT LE 8.5).
For temperatures below this, we thus switch to the Sutherland
fitting formula. There is very little (<1%) between the two at
logT=6.
Itoh also has a constraint on the quantity u=hc/kTl (l=wavelength),
such that (-4 LE log u LE 1.0). The upper limit corresponds to the
continuum being cut-off prematurely at low wavelengths. E.g., for
T=10^6 the cutoff is at 14.39 angstroms. For these low wavelengths
we also use the Sutherland data to complete the continuum. Note that
the continuum at these wavelengths is very weak
MODIFICATION HISTORY
Ver.1, 5-Dec-2001, Peter Young
Completely revised to call the separate itoh.pro and
sutherland.pro routines.
V. 2, 21-May-2002, Giulio Del Zanna (GDZ),
Corrected the description of the units.
Added verbose keyword and a printout.
V. 3, 22-May-2002, Peter Young (PRY)
Added MIN_ABUND optional input.
Changed ioneq_t to ioneq_logt (GDZ).
V 4, 25-May-2005, GDZ
corrected routine header.
VERSION : 4, 25-May-2005
PROJECT: CHIANTI
CHIANTI is an atomic database package for the calculation of
continuum and emission line spectra from astrophysical plasmas. It is a
collaborative project involving the Naval Research Laboratory
(Washington DC, USA), the Arcetri Observatory (Firenze, Italy), and the
Cambridge University (United Kingdom).
NAME:
GET_ATOMIC_WEIGHT
PURPOSE:
to produce an atomic weight.
PROCEDURE:
This routine converts the ion atomic number into an atomic weight. Where
an element has more than one isotope, the weight is that of the most
common.
I've written this routine in order to apply a thermal broadening to
lines in a CHIANTI synthetic spectrum (see routine make_chianti_spec.pro).
CALLING SEQUENCE:
IDL>
EXAMPLES:
INPUTS:
IZ
OPT. INPUTS :
OUTPUTS:
the atomic weight
OPTIONAL OUTPUTS:
KEYWORDS:
CALLS:
COMMON:
RESTRICTIONS:
I go up to zinc (iz=30)
SIDE EFFECTS:
CATEGORY:
synthetic spectra
PREV. HIST. :
WRITTEN :
Ver.1, 22-Jun-00, Peter Young (PRY)
MODIFICATION HISTORY:
VERSION : V 1, 22-Jun-00, Peter Young (PRY)
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
Purpose : calculates the contribution functions G(T) at constant
pressure or density of the lines present in the CHIANTI
database, corresponding to a given set of observed lines.
Category :
Explanation : This routine is called by CHIANTI_DEM. It cannot be used as
a stand-alone routine.
The observation file is read by CHIANTI_DEM.
GET_CONTRIBUTIONS starts reading
the ionization equilibrium file and the masterlist of the
ions present in the CHIANTI database.
GET_CONTRIBUTIONS then searches the
CHIANTI database (ion per ion) for all the
theoretical lines corresponding to the observed lines, i.e.
that lie in a OBS_WVL(i) +/- DELTA_LAMBDA_OBS(i) interval
centered on the observed wavelength OBS_WVL(i).
Then calculates the G(T) values for the temperature interval
log(T)= 4.0 - 8.0 with steps of log(T) = 0.1
A constant pressure OR a constant density for all the lines
is used. If you select a constant pressure,
for each ion the contribution function is calculated at an
electron density N_e equal to the ratio of the pressure
and the temperature of maximum ionization fraction:
C=C( T, N_e = P/T_ion)
The C(T) values are stored by GET_CONTRIBUTIONS in the output
file OUTPUT.CONTRIBUTIONS.
In the case no theoretical lines corresponding to an observed
line are found, the routine writes the wavelength of the line
to be excluded from the fit in the array EXCLU_OBS_WVL_NO_TEO;
these lines are then excluded from the fitting by
CHIANTI_DEM. You might consider the possibility to start again
incrementing the DELTA_LAMBDA_OBS, to see if there are
theoretical lines in the vicinity.
Use : called by CHIANTI_DEM to calculate the contribution functions
Examples :
Inputs : Various, in form of keywords.
Opt. Inputs : none
Outputs : OUTPUT.CONTRIBUTIONS
Is the file where all the contribution functions G(T) are
stored. In the first two lines the ionization equilibrium
file name, and the constant value of pressure or density
adopted are reported. Then for each line you have reported
the observed wavelength, the theoretical one, the element and
ionization stage, then the C(T) values. At the end the
specification for each transition.
Opt. Outputs: None
Keywords : (all passed by CHIANTI_DEM)
CUT_GT: if set, only those
theoretical lines that have a MAX(G(T)) greater
than the value set, are kept; it is useful to
set this value in order to reduce the number
of lines in the file where the G(T) are stored.
DENSITY : the value of the density (Ne).
FILE_INPUT: if set, you are not
requested to select the observation file.
N_MATCHES:
In the unlikely event that more than 20 (default value for
N_MATCHES) theoretical lines corresponding to an observed
line are found, the routine stops; in this case, you have to
start again setting N_MATCHES equal to a greater number.
PRESSURE: the value of the pressure (Ne T)
OUTPUT : -the core name for the output
Calls :
READ_IONEQ
read_masterlist
CONVERTNAME
ion2spectroscopic
ZION2FILENAME
READ_WGFA2
READ_SPLUPS
POP_SOLVER
READ_ELVLC
READ_IONREC
CONVERT_TERMS
Common : elvlc - energy levels
wgfa - radiative data
upsilon - upsilon data
obs, obs_int,obs_sig,n_obs
obs_o, obs_wvl,obs_id,obs_delta_lambda
dem, d_dem_temp,dem_temp,log_dem_temp,log_t_mesh,log_dem_mesh
contr, ch_tot_contr
ab, abund_name,abund_info,xuvtop,ioneq_name
these are the commons with GET_CONTRIBUTIONS.PRO:
various, exclu_obs_wvl_no_teo,const_net,$
dem_temp_min,dem_temp_max,n_dem_temp,$
ch_wvl,ch_l1,ch_l2,ch_id,ch_z,ch_ion,ch_contr_wa,$
ch_pop,ch_contr_list, ch_term,ch_n_contr
Restrictions: ;
THIS IS NOT A STAND-ALONE PROCEDURE.
It is called by CHIANTI_DEM,
and has a lot of common blocks with other procedures.
In the unlikely event that more than 20 (default value for
N_MATCHES) theoretical lines corresponding to an observed
line are found, the routine stops; in this case, you have to
start again setting N_MATCHES equal to a greater number.
Of course you need to have the enviroment variable CDS_SS_DERE
pointing to the CHIANTI database top directory.
Side effects: None known.
Category : spectrum
Prev. Hist. :
Written by Ken Dere (NRL) as part of the CHIANTI package
in collaboration with Brunella Monsignori Fossi, Enrico Landi
(Arcetri Observatory, Florence), Helen Mason and Peter Young
(DAMTP, Cambridge Univ.). Incorporated into the CDS software.
Written :
Version 1, Giulio Del Zanna (GDZ) 5 November 1997
UCLAN (University of Central Lancashire, UK)
Modified :
Version 2, 31-Oct-2000, GDZ, DAMTP. Rewritten completely the routine,
to make it compatible with CHIANTI v.3. Based the core calculations on
new implementations due to Peter Young, CfA.
Version 3, 5-Dec-2000, GDZ, DAMTP. Fixed a bug when checking the
values in the .splups files.
Ver. 4, 25-Apr-02, GDZ
Revised to account for v.4 variations. By default the proton
rates are included in the calculation of the level population.
V.5, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
V. 6, 10-July-2002 GDZ
Corrected a bug. It now properly includes by default the
proton rates in the population solver.
V. 7, 4-Oct-2003, GDZ
modified the input to POP_SOLVER, now it is dealt with an
input structure.
V. 8, 3-Nov-03 GDZ
Modified format e8.2 to e9.2 for Windows compatibility.
V. 9, 4-May-05 Enrico Landi (EL)
Modified in order to include ionization and recombination
data in the input to POP_SOLVER
VERSION : 9, 4-May-05
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME
GET_IEQ()
EXPLANATION
For a specified ion (IZ, ION) and set of temperatures (TEMP) this
routine takes the ion fraction values tabulated in one of the CHIANTI
.IONEQ files, interpolates and extracts the values of the ion
fraction at the input temperatures.
INPUTS
TEMP The temperature(s) at which the ion fractions are required.
IZ The atomic number of the element (e.g., 26 = iron).
ION The spectroscopic number of the ion (e.g., 13 = XIII).
OPTIONAL INPUTS
IONEQ_LOGT The temperature output from the READ_IONEQ routine.
IONEQ_FRAC The ion fractions from the READ_IONEQ routine.
OUTPUT
A vector of same length as the input TEMP containing the ion
fractions at these temperatures.
CALLS
READ_IONEQ
HISTORY
Ver.1, 24-Jul-2002, Peter Young
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
GOFNT
PURPOSE:
calculate G(n,T) function (line intensity per unit emission measure)
PROCEDURE:
Must specify line to form numerator and denominator
Multiple lines can be selected and summed
This can now be done interactively or not.
CALLING SEQUENCE:
GOFNT,Ion,Wmin,Wmax,Temperature,G,Desc,density=
INPUTS:
Ion: the CHIANTI style name of the ion, i.e., 'c_5' for C V
Wmin: minimum of wavelength wavelength range of interest in Angstroms
Wmax: maximum of wavelength wavelength range of interest
OPTIONAL INPUTS:
Many - see the keywords below.
OUTPUTS:
Temperature: an array of temperatures
G: Intensity per unit emission measure N_e*N_H*dh [cm^-5].
The resulting units are therefore erg cm^+3 s^-1 sr-1
C(T)= 1/(4*!pi)* A_ji*(N_j(X^+m)/N(X^+m))*(N(X^+m)/N(X))*(N(X)/N(H))/N_e
unless /NOABUND is set, in which case
C(T)= 1/(4*!pi)* A_ji*(N_j(X^+m)/N(X^+m))*(N(X^+m)/N(X))/N_e
G(T)=(hc/lambda_ij)*C(T)
G(T)= C(T) if /PHOTONS is set
Desc: a short string description of the selected line
OPTIONAL OUTPUTS:
Postscript file withthe plot of G(T).
Ascii file with the values of G(T).
VALUE The array of G(T) values corresponding to logt0.
KEYWORD PARAMETERS:
PRESSURE: specifies the pressure in units of NeT (cm^-3 K). G is then
calculated at that constant pressure
DENSITY: specifies the electron density in units of cm^-3. G is then
calculated at that value of the electron density. If neither the
density or pressure keywords are specified, a constant
density of 1.e+10 cm^-3 is assumed
PHOTONS: sets output in photons/s
RPHOT Distance from the centre of the star in stellar radius units.
I.e., RPHOT=1 corresponds to the star's surface. (Default is
infinity, i.e., no photoexcitation.)
RADTEMP The blackbody radiation field temperature (default 6000 K).
OUTFILE: the (optional) name of the output ascii file where a
listing of the line ratio intensity as a function of
temperature is saved.
PSFILE: the (optional) name of the output postscript file
where a plot of the chosen G(T) is saved.
NOABUND: If set, the G(T)'s are not multiplied by the abundance
factor.
NOPROT If set, then proton rates are not included.
ABUND_NAME: Name of the abundance file to use. If not passed, then
the user is prompted for it.
IONEQ_NAME: Name of the ionization equilization name to use. If not
passed, then the user is prompted for it.
ALL If set, all lines are calculated, including
the 'unobserved' ones.
LOWER_LEVELS
UPPER_LEVELS
Arrays with the indices of the lower and upper levels
pertaining to the transitions you want to get.
If more than one couple is given, the G(T) of the
lines are summed.
Obviously, the given indices must correspond to transitions
that are present in the database.
ARCSECS
If set, units are photons (ergs) cm^+3 s^-1 arcsecs^-2
VERBOSE
LOGT0 An array of log T values for which the G(T) are wanted.
VALUE The array of G(T) values corresponding to logt0.
If logt0 is defined, and within the limits of the
temperatures for which G(T) NE 0, the array VALUE
is returned with a simple spline interpolation.
CALLS:
CH_SYNTHETIC, CH_XMENU_SEL
COMMON BLOCKS: None
RESTRICTIONS:
SIDE EFFECTS:
EXAMPLE:
IDL> gofnt,'o_5',1000.,1500.,temp,goft,desc,density=1.e+16
CATEGORY:
spectral diagnostics
MODIFICATION HISTORY:
Written by: Ken Dere
October 4, 1996: Version 1
14-Jul-2000 Peter Young, now calls pop_solver
26-Oct-2000 GDZ, added keyword NOABUND to not multiply for the abundence
factor. Corrected header for a wrong description.
Version 4, 21-Dec-2000, William Thompson, GSFC
Modified for better cross-platform graphics capability
Version 5, 8-Nov-01, Giulio Del Zanna (GDZ).
Rewritten as a wrapper routine using the new procedures.
Corrected a few inconsistencies in the plots.
Version 6, 18-Nov-01, Peter Young
Added /noprot, rphot and radtemp keywords.
Version 7, 11-Dec-01, Peter Young
Changed call to ch_strpad to strpad.
V. 8, GDZ, 28-Apr-02 Added abund_name,ioneq_name keywords.
v. 9 21-May-2002, GDZ
generalized directory concatenation to work for
Unix, Windows and VMS.
V.10, 15-Aug-02, GDZ
Major revision:
-Removed the call to ch_xselect_s, that did not work for long lists.
-Added a '*' in the line lists, to identify 'unobserved' lines.
-Replaced the commands to create PS file, to make it
cross-platform compatible.
-Added a large number of cosmetics, mainly lables to the axes and
titles.
-Added keyword ALL. If set, all lines are calculated, including
the 'unobserved' ones.
-Added the CHIANTI version number in the outputs.
V. 11, 19-Sep-02, GDZ
Clarified output units.
V.12, 25-Jun-03, GDZ,
Added many new keywords. Now is possible to use the routine
with background jobs, in not-interactive mode.
Rounded the wavelengths.
V.13, 24-Sept-2003, GDZ
Corrected a bug when logt0 is not defined.
V.14, 3-Nov-03 GDZ
Modified format e8.2 to e9.2 for Windows compatibility.
VERSION : 14, 3-Nov-03
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME: G_OF_T()
PURPOSE:
To compute DE * F(T) * n_j * A_ji / N_e for selected emission lines.
Option to also multiply by abundance.
CATEGORY:
Atomic data analysis
EXPLANATION:
The G-of-T function has a number of different definitions in the
literature. In the most basic form it contains only the temperature
dependent parts (i.e., 0.83*n_j*A_ji*F(T)/N_e), but often a Delta-E
and Ab(X) are added as well. Here, the _default_ form is:
Delta-E * 0.83 * n_j * A_ji * F(T) / N_e
By using the NO_DE keyword, the Delta-E can be omitted, while the
ABUND keyword allows the abundance to be added.
The function that is output is tabulated over 4.0 <= logT <= 8.0
in 0.1 dex intervals. If you want the function tabulated over
smaller intervals, run the ION_INTERP routine afterwards.
CALLING SEQUENCE:
EXAMPLES:
RESULT=G_OF_T(26,13)
RESULT=G_OF_T(26,13,DENS=7)
RESULT=G_OF_T(26,13,GOFTFILE='my_gofts.dat')
RESULT=G_OF_T(26,13,/ABUND)
RESULT=G_OF_T(26,13,ABUND_FILE=ABUND_FILE, IONEQ_FILE=IONEQ_FILE)
INPUTS:
IZ: The atomic number of the ion (e.g., 26 = Fe)
ION: The spectroscopic number of the ion (e.g., 12 = XII)
OPTIONAL INPUTS:
DENS: The logarithm (to base 10) of the density at which the
emissivities are calculated (default=10.)
WRANGE: Wavelength range from which lines are required. If not
specified, then the 10 strongest lines are displayed.
PATH: If specified, the routine will look for the atomic data in
the PATH directory, rather than in the CHIANTI database
GOFTFILE: By specifying GOFTFILE as a filename, the G-of-T
function can be stored in this file. It is stored
in the form a structure (called goft_list) with the following
labels:
goft_list.label: user-specified string, e.g., 'Si XII 520.7'
goft_list.func: fltarr(41), the G-of-T function
If the same GOFTFILE is specified for another ion, then the
G-of-T function is added to the existing structure. The GOFTFILE
option only works when the ABUND keyword is set. The GOFTFILE is
meant to be read by another routine called GOFT_PLOTTER.
INDEX: Allows the direct specification of indices within the
emiss structure. This allows the g_of_t routine to be
run without the menu widget appearing. If the /quiet
keyword is also used, then the routine will run "silently".
RADTEMP Specify background radiation temperature (default: 6000 K)
RPHOT Distance from the centre of the star in stellar radius units.
I.e., RPHOT=1 corresponds to the star's surface. (Default is
infinity, i.e., no photoexcitation.)
IONEQ_FILE Directly specify the name of the ion balance file
(including directory path). If not set, then a widget will
pop up allowing you to select a file.
ABUND_FILE Directly specify the name of the abundance file
(including directory path). One can also use /ABUND_FILE
to include the abundances in the G(T) function, but allow
the abundance file to be picked through a widget.
KEYWORDS:
NOPROT If set, then the default setting will be NOT to use
proton rates. This can be changed within the routine.
NO_DE: If set, then the output function will *not* contain the
Delta-E. Be careful using this if you are using blends
(as Delta-E is different for different wavelengths).
QUIET If set, then don't plot the G(T) function or print out
information to the screen.
CALLS:
EMISS_CALC, READ_IONEQ, READ_ABUND, EMISS_SELECT, CH_GET_FILE
RESTRICTIONS:
HISTORY:
Ver.1, PRY 28-Jul-97.
Ver.2, PRY 22-Jun-98, added CHOOSE keyword and removed RAY
Ver.3, PRY 4-Aug-98, cosmetic changes following comments of Giulio
Del Zanna
Ver.4, PRY 5-Sep-98, added call to choose_ioneq
Ver.5, PRY 23-Sep-98, added GOFTFILE input
Ver.6, PRY 3-Mar-99, now calls EMISS_SELECT
Ver.7, PRY 6-Nov-00, removed the /CHOOSE keyword; also changed
PICKFILE call to DIALOG_PICKFILE and removed call
to the CHIANTI routine ADD\_SUBDIR
Ver.8, PRY 18-Oct-01, adjusted for proton rates, and
photoexcitation.
Ver.9, PRY 9-Dec-01, completed modifications for v.4 of CHIANTI.
V. 10, 21-May-2002, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
Ver. 11, 9-Feb-2005, Peter Young
changed keyword_set(abund) to keyword_set(abund_file)
VERSION : 11, 9-Feb-2005
function hastogram returns a frequency histogram over a specified grid, calculated in a fast and clever way. really. works in haste, without waste. syntax f=hastogram(list,x,wts=wts) parameters list [INPUT; required] list of numbers to bin x [I/O] the required binning scheme 1: if not set, assumes a linear grid of size 100 from min(LIST) to max(LIST) 2: if scalar or 1-element vector, assumes this to be the number of bins * if -ve, log grid, else linear 3: if vector with more than 1 element, assumes it to be all the bin-beginning values and the final bin-ending value. * overwrites variable by adopted grid keywords wts [INPUT] if given, appropriately weights each element of LIST * default is unity * if size does not match size(LIST), will be appropriately interpolated _extra [JUNK] here only to prevent crashing the program description the problem is the following: if the number of bins is large, accumulating a frequency histogram by linear search takes too long, esp. in IDL if one uses for-loops. so, first create a monster array containing both the list elements and the grid values. then sort this array. this results in an array where the list elements are all nicely placed within the correct bins. now, if we've been keeping track of the positions of the list elements, it's an easy job to count up the number in each bin of the grid. to do the latter, we first create a new array made up of -1s in positions of list elements and position indices for grid values and reorder according to the above sort. then, replace each -1 by the nearest non-(-1) from the left. now each list element is assigned the correct bin number. voila! restrictions X must be sorted in increasing order. subroutines history vinay kashyap (Jan98) PINT_of_ALE added kludge to speed up in case max(X) < max(LIST) (VK; Sep98) added quit in case X is not sorted in ascending order (VK; JanMMI)
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME: INTEGRAL_CALC
PURPOSE:
To compute the atomic data integral for use in column or volume
emission measure work.
CATEGORY:
Scientific analysis
EXPLANATION:
Defining
G(T) = 0.83 * Fr(T) * N_j * A_ji / N_e
where Fr(T) is the ionisation fraction (e.g., from Arnaud &
Rothenflug), N_j the relative population of level j, A_ji the
A-value for the j->i transition and N_e the electron density. The
0.83 is the ratio of hydrogen to free electrons, which is constant
above around 10^4 K. This function is sharply-peaked at a
temperature T_mem (the temperature of maximum emission, which can
be different from the temperature of maximum ionisation, T_max)
and so an oft-used approximation is to take G(T) constant in the
range log T_mem - 0.15 to log T_mem + 0.15 and zero outside. The
value of the constant, which we call C_lambda here, is then given
by
C_lambda = integral { G(T) dT }
--------------------
T_mem * (10^0.15 - 10^-0.15)
If EM(s) is the column emission measure, F the flux (erg cm-2 s-1)
in a line lambda, Ab the abundance of the element and DE (erg) the
energy for the transition, then:
F = DE * Ab * C_lambda * EM(s)
If we are dealing with intensities I (erg cm-2 s-1 sr-1) then:
4pi * I = DE * Ab * C_lambda * EM(s)
This program extracts the ionisation balance and emissivities from
the CHIANTI database and calculates C_lambda for all lines in the
specified wavelength interval WRANGE by integrating over
0.02 dex temperature intervals, using the IDL INT_TABULATED function.
The C_lambda functions for all the lines in the selected wavelength
range WRANGE are displayed as well as the temperature of maximum
emission (T_mem), DE*C_lambda and 4pi/(DE*C_lambda). These latter
two quantities are useful for the emission measure analysis.
Any combination of the displayed lines can then be blended and the
corresponding quantities for the blend will be displayed.
The function Fr(T) * N_j * A_ji can also be plotted at this stage.
CALLING SEQUENCE:
INTEGRAL_CALC, IZ, ION, [WRANGE=WRANGE, /CHOOSE, DENS=DENS]
EXAMPLES:
INTEGRAL_CALC, 26, 13, WRANGE=[200,205], /CHOOSE
INTEGRAL_CALC, 14, 10, WRANGE=[250,270], DENS=10.
INPUTS:
IZ: The atomic number of the ion
ION: The spectroscopic number of the ion (e.g., 12 = XII)
OPTIONAL INPUTS:
DENS: The density at which the emissivities are calculated
(default=10.)
WRANGE: Wavelength range for which C_lambda functions are
calculated. If not given, then the 10 strongest lines
are printed.
INDEX: Particular elements in the emissivity structure can be
selected with INDEX. This allows integral_calc to be run
'silently'. The output is contained in the OUTSTR structure.
If index is given as, e.g., [7,8], then the C_lambda
functions for these two lines are summed and output.
PATH: Directly specify the directory path where the Chianti data
for the ion is found
ABUND_FILE The name of a CHIANTI abundance file. This is used for
calculating the proton to electron ratio. Default is
!abund_file.
IONEQ_FILE The name of a CHIANTI ion balance file. This is used for
calculating the proton to electron ratio and evaluating
the T_max of the ion. Default is !ioneq_file.
RADTEMP The blackbody radiation field temperature (default
6000 K).
RPHOT Distance from the centre of the star in stellar radius
units. I.e., RPHOT=1 corresponds to the star's surface.
(Default is infinity, i.e., no photoexcitation.)
KEYWORDS:
CHOOSE: Allow ion balance calculations to be selected manually
(see choose_ioneq.pro routine).
OPTIONAL OUTPUTS:
OUTSTR: A structure with the following tags
.tmem - the T_mem for the line(s)
.dec - total( de * c_lambda )
.pidec - 4 * pi / total( de * c_lambda )
Only output when INDEX is specified.
COMMON BLOCKS:
None.
CALLS:
EMISS_CALC, CH_GET_FILE, READ_IONEQ
HISTORY:
Ver.1: PRY, 28-JUN-97.
Ver.2: PRY, 7-OCT-97. Added TEMPI and GOFT, for plotting.
Ver.3: PRY, 31-JUL-98. Added PATH.
Ver.4: PRY, 6-APR-99. Added INDEX, OUTSTR. Removed TEMPI and GOFT
(these can be got from the g_of_t routine).
Ver.5: PRY, 9-Dec-01. Modified for v.4 of CHIANTI.
V.6, 21-May-2002, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
V.7, 06-Aug-02 GDZ
Changed the use of CHIANTI system variables.
VERSION : 7, 06-Aug-02
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
ion2filename
PURPOSE:
Ion names as character strings are converted to
provide their complete file name (with out suffix)
CATEGORY:
naming utility
CALLING SEQUENCE:
ION@FILENAME,Ion,Filename
INPUTS:
Name: such as 'c_2'
OUTPUTS:
Filename: !xuvtop/c/c_2/c_2
EXAMPLE:
> ion2filename,'c_2d',filename
> print,filename
> !xuvtop/c/c_2d/c_2d
MODIFICATION HISTORY:
Written by: Ken Dere
V.2, September 1999: added for use with Version 3
V.3, 21-May-2002, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
VERSION : 3, 21-May-2002
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
ION2SPECTROSCOPIC
PURPOSE:
provide identification string
CATEGORY:
database.
CALLING SEQUENCE:
ION2SPECTROSCOPIC, Ion, Spectroscopic
INPUTS:
Ion: CHIANTI notation for an ion, i.e., 'c_2' for C II
OUTPUTS:
Name: the spectroscopic notation for the ion, i.e. 'C II'
EXAMPLE:
> ion2spectroscopic,'fe_13',name
> print,name
> Fe XIII
> ion2spectroscopic,'o_6d',name
> print,name
> O VI d
MODIFICATION HISTORY:
Written by: Ken Dere
September 1999: Version 3.0
Ver.2, 11-Dec-2001, Peter Young
Revised routine; removed call to repstr
V.3, 29-May-2002, Giulio Del Zanna (GDZ)
Added output keyword dielectronic.
V.4, 12-Aug-02, GDZ
Corrected a typo concerning XXII.
VERSION : 4, 12-Aug-02
NAME
ION_FRAC_INTERP
PROJECT
CHIANTI
EXPLANATION
Performs interpolation of an ion fraction array (such as contained in
the CHIANTI .ioneq files) to yield ion fractions at temperatures TEMP.
Note that the ion must already have been selected before calling this
routine, since IONEQ_FRAC is a 1D array. The routine GET_IEQ is an
alternative if the ion has not been selected.
INPUTS
TEMP Temperature(s) for which ion fractions are required.
Units: K.
IONEQ_LOGT Log (base 10) of temperature (units: K). A 1D array of
temperatures for which the ion fraction is defined.
IONEQ_FRAC A 1D array of ion fractions at the temperatures defined by
ioneq_logt
OUTPUT
The ion fraction defined at the temperatures TEMP. If values of TEMP lie
outside the range of the ion fraction or the range of IONEQ_LOGT, then
values of 0 are returned at these temperatures.
HISTORY
Ver.1, 10-Jun-2005, Peter Young
EXPLANATION: When accessing ionisation balance data from the CHIANTI database, it is output at log temperature values from 4 to 8 at 0.1 intervals. For display purposes it is often nice to perform spline interpolation to give a smoother function. This interpolation should be performed on the logarithm of the data as this is more slowly varying. This routine performs such an interpolation. It is only essential to input G_T and N. Specifying T is optional (see below), while TI and G_TI are output. N gives the number of points within an interval over which interpolation is performed. INPUTS: G_T: Data for which interpolation required OPTIONAL INPUTS: T: Values at which is G_T is tabulated. If not specified, then taken as 4 to 8 in 0.1 intervals. N: Specifies `smoothness' of fit. E.g., N=5 means that single intervals are divided into 5 intervals. TI: If some temperatures are specified, then the SPLINE call is used to work out the values of G_TI that correspond to these temperatures. Only works if N is not specified. OUTPUTS T: If not specified, then output as an array from 4 to 8 in 0.1 intervals TI: Interpolated T values. If the TI are specified on the command line, then these values are returned. G_TI: Interpolated G_T values KEYWORDS PLOT - The interpolated data is displayed together with the original data. EXAMPLE: g_t=g_of_t(26,13,/ray) ion_interp,t,g_t,ti,g_ti,5,/plot plot,t,g_t,psym=2,xra=[5.8,6.7] oplot,ti,g_ti ion_interp,t,g_t,[6.112,6.254],g_ti,/plot CALLS: SPLINE HISTORY: Ver 1, PRY 17-JUN-98 Ver 2, PRY 10-AUG-98, corrected minor bug Ver 3, PRY 22-SEP-98, corrected interpolation error Ver 4, PRY 3-MAR-99, now allows TI to be specified CONTACT: Peter Young, Cambridge University (P.R.Young@damtp.cam.ac.uk)
NAME
ISOTHERMAL
PURPOSE:
Computes spectra from isothermal plasmas. A number of isothermal
plasmas can be included.
Note that this routine has a number of unique features that
distinguish it from the other CHIANTI synthetic spectra routines.
See the Programming Notes section.
INPUTS:
WMIN Minimum of desired wavelength range in Angstroms.
WMAX Maximum of desired wavelength range in Angstroms.
WAVESTEP Bin size of spectrum (in Angstroms)
TEMP Electron temperature (or array).
OPTIONAL INPUTS
PRESSURE Electron pressure in units of cm^-3 K.
EDENSITY Electron density in units of cm^-3.
EM Emission measure. The units of EM govern the intensity
units of the emission lines (i.e., column or volume
emission measure units). If EM is not specified, then the
emission measure is set to (N_e * N_H) where N_e is
derived from the user-specified PRESSURE or EDENSITY,
and N_H is derived from the routine PROTON_DENS.PRO.
SNGL_ION Rather than include the entire list of CHIANTI ions in
the calculation, this input can be used to select a
single ion, or a number of different ions. E.g.,
SNGL_ION='s_2' or SNGL_ION=['s_2','s_3','s_4'].
RADTEMP The blackbody radiation field temperature (default 6000 K).
RPHOT Distance from the centre of the star in stellar radius units.
I.e., RPHOT=1 corresponds to the star's surface. (Default is
infinity, i.e., no photoexcitation.)
MASTERLIST The list of ions that will be considered for the
spectrum is contained in the masterlist file in the
CHIANTI directories. The user can specify his own file
through this keyword. E.g.,
masterlist='/user/home/masterlist.ions'
ABUND_NAME: Name of the abundance file to use. If not passed, then
the user is prompted for it.
IONEQ_NAME: Name of the ionization equilization name to use. If not
passed, then the user is prompted for it.
KEYWORDS
NOPROT Switch off the inclusion of proton rates in the level
balance.
ERGS The units of the output spectrum are by default in photons.
Setting /ERGS switches to erg units.
CONT Adds continuum (free-free, free-bound, two-photon) to
spectrum.
OUTPUTS:
LAMBDA Wavelength array of calculated synthetic spectrum.
SPECTRUM Intensity array. The units depend on the user inputs to
ISOTHERMAL -- see note below.
LIST_WVL A list of wavelengths for use with synthetic_plot.pro
LIST_IDENT A list of line identifications for use with
synthetic_plot.pro
PROGRAMMING NOTES
Intensity Units
---------------
The units are of the form photons cm^3 s^-1 sr^-1 * (units of EM),
changing to ergs if the /ergs keyword is set.
The volume emission measure (N_e*N_H*V) has units cm^-3.
The column emission measure (N_e*N_H*h) has units cm^-5.
Unique features
---------------
The emission lines in the final spectrum have no width and thus
each occupies a single pixel of the spectrum. The size of the
pixels are set by WAVESTEP.
As stated above, the units of the output spectrum are
photons cm^3 s^-1 sr^-1, i.e., there is no "per angstrom" term.
This means that (i) the height of the emission lines in the
spectrum does not change with varying WAVESTEP, and (ii) the height
of continuum does change with WAVESTEP.
COMMON BLOCKS
ELEMENTS
CALLS
CH_SYNTHETIC, READ_ABUND, CH_GET_FILE, CONCAT_DIR, FREEFREE,
FREEBOUND, TWO_PHOTON
HISTORY
Ver.1, 8-Apr-02, Peter Young Rutherford Appleton Laboratory,
p.r.young@rl.ac.uk
Tries to replicate the behaviour of the original ISOTHERMAL which
was found in earlier versions of CHIANTI (v.3 and earlier).
MODIFICATION HISTORY
Ver. 2, Giulio Del Zanna (GDZ), 28-Apr-02
Added abund_name,ioneq_name keywords.
Also, added photons keyword in call to MAKE_CHIANTI_SPEC.
Ver. 3, Peter Young, 24-May-02
Modified to produce arrays of spectra when an array of
temperatures is given
V.4, GDZ, 28-May-02
Added a couple of checks on file existence and modified the call
to ch_synthetic and make_chianti_spec due to change of keyword
names.
V.5, Peter Young, 16-Jul-02
Restructured routine to avoid crashes when a large number of
temperatures is input.
V.6, 8-Aug-02 GDZ
Added one error checking
V.7, 18-Aug-03, Peter Young
Added EM= keyword.
VERSION :
Version 6, 8-Aug-02
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME
ITOH
EXPLANATION
Calculates the relativistic free-free continuum using the fitting
formula of Itoh et al. (ApJS 128, 125, 2000).
INPUTS
TEMP Temperature (in K).
WVL Wavelengths in angstroms. Can be a scalar or vector.
OUTPUTS
INT Free-free continuum emissivity in units of
10^-40 erg cm^3 / s / sr / Angstrom per unit emission
measure [ integral(N_e N_H dh) in cm^-5 ]. If T is given as
a 1-D array, then RAD will be output as a 2-D array,
with one element for each temperature and wavelength
(but also see SUMT).
OPTIONAL INPUTS
DEM_INT An array of same length as TEMP which contains the
differential emission measure values at each temperature.
The emissivity at each temperature is multiplied by the
DEM value and the d(logT) value.
MIN_ABUND This keyword allows the specification of a minimum abundance,
such that any elements with an abundance (relative to
hydrogen) less than MIN_ABUND will not be included in the
calculation. E.g., MIN_ABUND=1e-5.
KEYWORDS
NO_SETUP By default the routine asks the user which ion balance
and abundance files to use via pop-up widgets. If
/no_setup is used then this data is taken from the common
block.
SUMT The default is to output the intensity array as an array
of size (nwvl x nT). Setting this keyword performs a sum
over the temperatures to yield a vector of same size as
the input wavelengths, thus producing the complete
free-free spectrum.
PHOTONS Gives output emissivity in photon units rather than ergs.
CALLS
Chianti: SETUP_ELEMENTS
PROGRAMMING NOTES
In the Itoh et al. paper they state that their fitting formula is
valid for ion charges (Z_j) of 1-28. The data-file they provide
actually goes up to Z_j=30, and so you will see that the loop over
z (see below) goes up to 30.
There is no restriction on the elements for which the fitting
formula is valid, and so all elements are allowed to be included
(subject to their abundances being non-zero).
HISTORY
Ver.1, 3-Dec-2001, Peter Young
Ver.2, 22-May-2002, Peter Young
Added MIN_ABUND optional input.
Ver.3, 28-May-2002, Peter Young
Corrected way in which DEM is handled.
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME
KARZAS_XS()
EXPLANATION
Outputs the photoionization cross-section at the wavelengths WVL for
ionization of an N,L electron with ionization energy IONIZ_EN,
calculated using the Karzas & Latter (ApJS 6, 167, 1961) formulation.
The bound-free gaunt factor is derived from the tables of Karzas &
Latter.
INPUTS
WVL Wavelengths (in angstroms) for which cross-sections are
required (1-D array).
N Principal quantum number of the electron being removed in the
ionization.
L The orbital angular momentum of the electron being removed in the
ionization.
IONIZ_EN The ionization energy (in cm^-1) of the electron being
removed.
OPTIONAL INPUTS
PE Allows the PE array from READ_KLGFB to be directly input to
KARZAS_XS thus avoiding the need to read the K&L data
repeatedly for many ions. Requires KLGFB to also be input.
KLGFB Allows the KLGFB array from READ_KLGFB to be directly input to
KARZAS_XS thus avoiding the need to read the K&L data
repeatedly for many ions. Requires PE to also be input.
OUTPUT
The photoionization cross-section for the ionization of the outer
electron in units of mega-barns (Mb = 10^-18 cm^2) at the input
wavelengths. E.g., for Fe XIII (ground configuration
1s2.2s2.2p6.3s2.3p2) it is the cross-section for the removal of the
3p electron.
CALLS
READ_KLGFB
HISTORY
Ver.1, 24-Jul-2002, Peter Young
PROJECT: CHIANTI
CHIANTI is an atomic database package for the calculation of
continuum and emission line spectra from astrophysical plasmas. It is a
collaborative project involving the Naval Research Laboratory
(Washington DC, USA), the Arcetri Observatory (Firenze, Italy), and the
Cambridge University (United Kingdom).
NAME:
LANDSCAPE
PURPOSE:
:
CALLING SEQUENCE:
LANDSCAPE
INPUTS:
None
KEYWORD PARAMETERS:
None
OUTPUTS:
None
COMMON BLOCKS:
None
EXAMPLE:
to make a postscript file in landscape orientation
> set_plot,'ps'
> landscape
> plot,x,y
> device,/close
> set_plot,'x'
MODIFICATION HISTORY:
Written by: Ken Dere
March 1996: Version 2.0
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
LATEX_WVL_DEM
PURPOSE:
create a latex file of predicted spectral line intensities and
wavelengths corresponding to a selected abundance and differential
emission measure (DEM)
PROCEDURE:
Calculations are done assuming either constant density or
constant pressure. See CH_SYNTHETIC for details.
CALLING SEQUENCE:
LATEX_WVL_DEM, Wmin, Wmax, Pressure= , [density= ], $
[outfile= , mini= , sngl_ion=, /photons, /all, /masterlist]
INPUTS:
Wmin: lower limit of the wavelength/energy range of interest (Angstroms)
if kev keyword set, then wmin is in kev
Wmax: upper limit of the wavelength/energy range of interest (Angstroms)
if kev keyword set, then wmax is in kev
Pressure: pressure in emitting region (cm^-3 K), or
Density: density in emitting region (cm^-3).
OPTIONAL INPUTS:
OUTFILE: the name of the output latex file to be written.
MINI: Minimum intensity for a line to be included in the output.
SNGL_ION: specifies a single ion (e.g. SNGL_ION='Fe_10' to include
only Fe X lines) or an array (e.g. SNGL_ION=['Fe_10','Fe_11']
to include only Fe X and Fe XI lines) of ions to be used
instead of the complete set of ions specified in
!xuvtop/masterlist/masterlist.ions
MASTERLIST: string of a specific masterlist file (full path).
If defined as a keyword (i.e. MASTERLIST=1 or /MASTERLIST)
then a widget allows the user to select a user-defined
masterlist file. Shortcut for SNGL_ION.
RPHOT Distance from the centre of the star in stellar radius units.
I.e., RPHOT=1 corresponds to the star's surface. (Default is
infinity, i.e., no photoexcitation.)
RADTEMP The blackbody radiation field temperature (default 6000 K).
OUTPUTS:
a latex file: 'linelist.tex' in the working directory by default
OPTIONAL OUTPUTS:
KEYWORD PARAMETERS:
MINI: Minimum intensity for a line to be included in the output
SNGL_ION: specifies a single ion (e.g. SNGL_ION='Fe_10' to include
only Fe X lines) or an array (e.g. SNGL_ION=['Fe_10','Fe_11']
to include only Fe X and Fe XI lines) of ions to be used
instead of the complete set of ions specified in
!xuvtop/masterlist/masterlist.ions
MASTERLIST: string of a specific masterlist file (full path).
If defined as a keyword (i.e. MASTERLIST=1 or /MASTERLIST)
then a widget allows the user to select a user-defined
masterlist file. Shortcut for SNGL_ION.
PHOTONS: units will be in photons rather than ergs
KEV: wavelengths will be given in kev rather than Angstroms
ALL: if set, then all lines are included. This means that lines for which
only an approximate wavelength is known (only theoretical energy
levels are known) are included.
OUTFILE: the name of the output latex file to be written. By default a
file 'linelist.tex' in the user's working directory will be
created.
NOPROT If set, then proton rates are not included.
CALLS:
CH_SYNTHETIC, CH_LINE_LIST
COMMON BLOCKS: None
RESTRICTIONS:
SIDE EFFECTS:
EXAMPLE:
> latex_wvl_dem, 400.,800., mini=1, pressure=1.e+15,sngl_ion='o_4'
CATEGORY:
spectral synthesis.
WRITTEN :
Version 1, 8-Nov-01, Giulio Del Zanna (GDZ).
Compared to the previous LATEX_WVL_DEM, these are the main changes:
1-Rewritten as a wrapper routine using the new procedures.
2-Now the PRESSURE value is a keyword.
3-The calculations can be done at constant DENSITY.
4-MASTERLIST can now be used both as an input string or as a keyword.
MODIFICATION HISTORY:
Version 2, 18-Nov-01, Peter Young
Added /noprot, rphot and radtemp keywords.
V. 3, 22-May-2002 GDZ. Removed const_net definitions.
VERSION : Version 3, 22-May-2002
PROJECT : CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME : MAKE_CHIANTI_SPEC
PURPOSE :
To create a CHIANTI synthetic spectrum
CALLING SEQUENCE:
IDL> make_chianti_spec, TRANSITIONS, LAMBDA, SPECTRUM,$
[BIN_SIZE= , ,INSTR_FWHM= , PIXEL=PIXEL, BINSIZE = BINSIZE, $
WRANGE= , ALL=ALL, continuum=continuum, $
ABUND_NAME= , MIN_ABUND=, photons=photons, effarea=effarea
PROCEDURE :
From information contained in the structure TRANSITIONS, constructs
a synthetic spectrum
By default, routine assumes thermal widths for lines.
PROGRAMMING NOTES
The line profile is constructed using the IDL gaussint routine.
For a wavelength pixel centred at l and with width dl, gaussint
is used to integrate the Gaussian up to l-dl/2 and up to l+dl/2.
The difference between the two is the intensity in this pixel.
INPUTS :
TRANSITIONS, the structure created by ch_synthetic.pro.
OPT. INPUTS :
LAMBDA Array of wavelengths (X-values). If not defined as input, it is
calculated on the basis of BIN_SIZE, and returned as an output.
If defined as input, the routine checks that there are at least
10 points in the wavelength range defined by WRANGE. If there
are, the corresponding subset of LAMBDA is returned, otherwise
the routine exits with an error.
BIN_SIZE Bin size in Angstroms of the spectrum to be created. A linear
spectrum is assumed. In case an effective area file is used, the
wavelenghts in the file (that might not be linear) are used to
create the spectrum, and this bin size looses any meaning.
WRANGE Allows a subset of the wavelength range to be turned into
a spectrum. When using syn_plot, this speeds up the routine
a lot if you've elected to zoom in on a region.
INSTR_FWHM Instrumental FWHM (Angstroms).
In case an effective area file is used, The line intensities
contributing to each bin are summed, and subsequently convolved
with a gaussian of full-width-half-maximum FWHM if FWHM is not
set = 0 . Please make sure that the FWHM value (if not set to
zero) is larger than the bin size.
ABUND_NAME A CHIANTI abundance file name can be set.
It allows the abundance file given in transitions.abund_name
(if present) to be over-ridden. Note that it also used for
the continuum calculation.
MIN_ABUND: If set, calculates line intensities only from those elements
which have an abundance greater than min_abund.
Can speed up the calculations. For example, from Allen
(1973):
abundance (H) = 1.
abundance (He) = 0.085
abundance (C) = 3.3e-4
abundance (O) = 6.6e-4
abundance (Si) = 3.3e-5
abundance (Fe) = 3.9e-5
FILE_EFFAREA
The Effective Area File (TWO COLUMNS - wavelengths in
Angstroms and cm^2 values) If defined, then the spectrum is
multiplied with these values. Any input LAMBDA value is
over-written by the wavelenghts in the file (that might not
be linear) and are used to create the spectrum.
Note that this option only works well if a sufficient number
of bins is given. The line intensities contributing to each
bin are summed, and subsequently convolved with a gaussian
of full-width-half-maximum FWHM, if FWHM is not set = 0.
Please note that the convolution might not work if a small
number of bins is defined.
OUTPUTS :
LAMBDA Array of wavelengths (X-values).
If not defined as input, it is
calculated on the basis of BIN_SIZE, and returned as an output.
If defined as input, the routine checks that there are at least
10 points in the wavelength range defined by WRANGE. If there
are, the corresponding subset of LAMBDA is returned, otherwise
the routine exits with an error.
SPECTRUM A structure containing all the information:
LAMBDA The array of X-values
SPECTRUM The array of Y-values
UNITS The units of LAMBDA, SPECTRUM
INSTR_FWHM The Instrumental FWHM
BIN_SIZE Width of the Bins (fixed) in angstroms
ABUND_NAME The CHIANTI abundance file name
ABUND The abundance values
MIN_ABUND The minimum abundance value used
ABUND_REF The references
CONTINUUM The values of the continuum (if calculated)
FILE_EFFAREA The Effective Area File used (optional)
EFFAREA The array of effective area values
(optional - same size of LAMBDA)
.LINES An array of structures, for all the lines used
to calculate the SPECTRUM.
The tags are the same as those created by
CH_SYNTHETIC, plus
.PEAK The peak intensity of the line in the spectrum
(approx. value)
OPT. OUTPUTS:
BINSIZE If BIN_SIZE is not specified, then the spectrum
bin-sizes are computed automatically, and the size of the
bin returned in BINSIZE.
KEYWORDS :
PIXEL The spectrum is given in /pixel units rather /ang
(DISABLED)
ALL Add lines that originally had negative wavelengths
PHOTONS If set=1, the output intensities will be in photons instead of
ergs.
CONTINUUM
If set, then the continuum is added to the
spectrum.
verbose
CALLS :
PRY: GET_ATOMIC_WEIGHTS
Chianti: FREEBOUND, FREEFREE
COMMON (with freefree freebound and two_photon):
elements,abund,abund_ref,ioneq,ioneq_logt,ioneq_ref
RESTRICTIONS: The input structure has to be of the type created by ch_synthetic.
The LAMBDA, EFFAREA values must be ordered in wavelength and the
LAMBDA values must be in Angstroms.
SIDE EFFECTS: None known yet.
EXAMPLES :
make_chianti_spec, output_struct, LAMBDA, SPECTRUM,$
bin_size=0.01, instr=0.1
CATEGORY :
spectral synthesis.
PREV. HIST. :
WRITTEN :
Peter Young , CfA, pyoung@cfa.harvard.edu 1-Sept-2000
MODIFICATION HISTORY:
Version 1, PRY 1-Sept-2000
Version 2, Giulio Del Zanna (GDZ) 10-Oct-2000
put ALL keyword, removed the FWHM obsolete and
confusing call. Reorganised various minor things.
Version 3, PRY 19-Oct-2000
Corrected the way continuum is treated for an isothermal
spectrum.
V. 4, 2-Nov-2001 GDZ. Now MIN_ABUND is effective not only in the
continuum calculation but also in the line spectrum.
Modified for the use of logt_isothermal
V.5, GDZ, added EFFAREA keyword: an ascii file with lambdas and
effective areas can be read
in. The line intensities are
calculated in a different way.
Also, changed the output.
V.6, GDZ, 28-Apr-02 redefined completely the OUTPUT structure.
Major revision (added two_photon verbose).
V.7, GDZ, 3-May-2002
fixed a bug, when negative angpix values occur.
V.8, GDZ, 22 May 2002, changed some tags of the output, and
added min_abund in the continuum call.
V.9, GDZ, 30-May-02 replaced fix() with round()
V. 10, 15-July-2002 , GDZ
changed the location of Effective area files.
V.11 14-Aug-02, GDZ
speeded up the routine, by changing the way the PEAK tag is
added to the structure. The drawback is that only the
'standard v.4 tags' are allowed, and future additions will
have to be dealt properly.
v.12 2-Dec-2002, GDZ.
Fixed a bug: Removed the plotting of the window with the effective areas.
v.13 26-Apr-2005, Enrico Landi (EL)
Fixed a minor bug: if the lines were more than 32768 (2^15), the main
loop crashed.
v.14 22-Jul-2005 GDZ
-fixed a bug. When the routine was run once without
defining the lambdas, and then with the lambdas
defined (the units were switched to photons)
-fixed a bug. When the effective areas were used,
all lines were used to create the spectrum.
-added hard-wired switch to photons when using
effective area files.
-added the keV option
-now can output a spectrum only with the continuum
(i.e. even if no emission lines are present).
15, 2-Aug-2005, GDZ
Added a check on the input structure. If it was
calculated with ch_synthetic and the keyword
/no_sum_int, it cannot be used here.
VERSION : 15, 2-Aug-2005
STILL TO DO:
-speed up the routine with the use of arrays.
-add the option to select only a list of ions, also in the
continuum procedures.
-Allow the use of user-defined line profiles.
-Enable PIXEL keyword
Project : SOHO - CDS
Name : MAKE_ION_LIST
Purpose : Reads masters ions list and interprets.
Explanation : Reads the CHIANTI master ion list and returns the list of
available elements and ions in suitable arrays.
Use : IDL> make_ion_list, elements, ions
Inputs : None
Opt. Inputs : None
Outputs : elements - string array of all elements available
ions - 2-d string array of roman ionization stages
available for each element. (N,M) where N is
number of elements and M is large enough to
contain all ionization stages (Null if not used)
Opt. Outputs: None
Keywords : None
Calls : None
Common : None
Restrictions: None
Side effects: None
Category : Spectrum
Prev. Hist. : None
Written : C D Pike, RAL, 19-Jan-96
Modified : V.2 Increased array sizes. CDP, 25-Jun-96
V.3. Further increase of the array sizes, and removed the 'd'
directories from the masterlist, to be compatible with CHIANTI
removed call to concat_dir Giulio Del Zanna 16-Oct-2000.
V.4 21-May-2002, GDZ:
generalize directory concatenation to work for Unix, Windows
and VMS.
Version : Version 4 21-May-2002
NAME
MATRIX_SOLVER()
PROJECT
CHIANTI
EXPLANATION
Takes the matrices for the various atomic processes employed in
CHIANTI and returns the level populations.
INPUTS
XNE Electron density (cm^-3). Scalar.
AA 2-D array of transition probabilities.
QQ 2-D array of electron excitation rates.
PPR 2-D array of proton rates
AAX 2-D array of photoexcitation/stimulated emission rates.
OPTIONAL INPUT
FRAC_CUTOFF The fraction of non-zero elements in the C matrix below
which the sparse matrix solver is used. The default value
is zero (i.e., don't use sparse matrix solver).
OPTIONAL OUTPUT
C The 2D matrix containing all rate coefficients.
OUTPUT
A 1-D array of level populations, scaled so that the sum of the
populations is 1.
HISTORY
Ver.1, 1-Jul-2005, Peter Young
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
Name : MAX_TEMP
Purpose : Calculates temperature at max ionisation ratio for an ion
Explanation :
Use : IDL> print,max_temp(ion)
Inputs : ion - the specific ion in the form eg 'Fe_XII' or 'Fe XII'
Opt. Inputs : None
Outputs : Function returns log of max temperature
Opt. Outputs: None
Keywords : ALL - if set produces a plot of all temperatures
Calls : Other CHIANTI routines
Common :
Restrictions: None
Side effects: None
Category : Spectral
Prev. Hist. : None
Written : C D Pike, RAL, 9-Jun-97
Modified : V.2 Update element list. CDP, 18-Jun-99
V.3 modified definition of XUVTOP, and allowed selection of
ionization eq. file. Giulio Del Zanna (DAMTP) 10-Oct-2000
V.4, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
VERSION : 4, 21-May-2002, GDZ
function mid2bound given mid-bin values, make an intelligent determination of the bin boundaries and return said boundaries (actually, it's not all that intelligent. uses spline interpolation) given input array of N elements, returns array of N+1 elements. parameters m [INPUT; required] the mid-bin values from which to expand out keywords eps [INPUT] a small number, default is 1e-6 verbose [INPUT] controls chatter _extra [JUNK] here only to prevent crashing the program history vinay kashyap (OctMM)
Project : SOHO - CDS
Name : PLOT_CHIANTI_NE
Purpose : Plots a density sensitive ration saved from CHIANTI_NE
Explanation : The routine CHIANTI_NE allows the calculated ratio to be
saved in an IDL save file. This routine retrieves and
plots the ratio.
Use : IDL> plot_chianti_ne, file, data
Inputs : file - save file name (an extension of .CH_NE will have
been added, specifying this is optional)
Opt. Inputs : None
Outputs : None
Opt. Outputs: data - returns the retrieved ratio structure
Keywords : log. If set, a log-log plot is produced.
Calls : print2d_plot
Common : None
Restrictions: None
Side effects: None
Category : Synthetic spectra
Prev. Hist. : None
Written : C D Pike, RAL, 7-Oct-96
Modified : v.2 Added a few extra things, including possibility to create a
postscript file.
Giulio Del Zanna (DAMTP), 10-Oct-2000
Version : Version 2, GDZ 10-Oct-2000
Project : SOHO - CDS
Name : PLOT_CHIANTI_TE
Purpose : Plots a temperature sensitive ratio saved from CHIANTI_TE
Explanation : The routine CHIANTI_TE allows the calculated ratio to be
saved in an IDL save file. This routine retrieves and
plots the ratio.
Use : IDL> plot_chianti_te, file, data
Inputs : file - save file name (an extension of .CH_TE will have
been added, specifying this is optional)
Opt. Inputs : None
Outputs : None
Opt. Outputs: data - returns the retrieved ratio structure
Keywords : log. If set, a log-log plot is produced.
Calls : None
Common : None
Restrictions: None
Side effects: None
Category : Synthetic spectra
Prev. Hist. : None
Written : C D Pike, RAL, 7-Oct-96
Modified : v.2 Added a few extra things, including possibility to create a
postscript file.
Giulio Del Zanna (DAMTP), 10-Oct-2000
Version : Version 2, GDZ 10-Oct-2000
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
PLOT_DEM
PURPOSE:
To plot differential emission measure (DEM) values
CATEGORY:
Widgets.
CALLING SEQUENCE:
PLOT_DEM,filename
INPUTS:
filename: the name of the DEM file to be plotted. The file must b
in the standard CHIANTI format for DEM files. If filename
is a blank string ('') then an interactive window will come
up to allow the user to select a DEM file from the CHIANTI
DEM directory or some other directory.
KEYWORD PARAMETERS:
PSFILE: If set, the a postscript plot will be place in the
file 'psfile' specified by the user
OUTPUTS:
None, other than a plot
EXAMPLE:
> plot_dem,'ademfile.dem'
or
> plot_dem,''
MODIFICATION HISTORY:
Written by: Ken Dere
June 1998: Version 1.0
Version 2, 21-Dec-2000, William Thompson, GSFC
Modified for better cross-platform graphics capability
V. 3, 21-May-2002, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
VERSION : 3, 21-May-2002
Project : SOHO - CDS
Name : PLOT_DMM_DR_FIG
Purpose : Plots line intensities in DMM_DR
Explanation : Internal routine used by CHIANTI_NE for plotting individual
line intensities.
Use : Called by CHIANTI_NE
Inputs : Uses common
Opt. Inputs : None
Outputs : None
Opt. Outputs: None
Keywords : None
Calls : None
Common : dmm_lines
Restrictions: None
Side effects: None
Category : Spectral, plotting
Prev. Hist. : Originally included in density_ratios by K Dere
Written : C D Pike, RAL, 15-Jan-96
Modified : V.3 Fix bug in searching for peak line (IMAX). CDP, 27-Jan-96
Changed charsize in plots. CDP, 17-Jul-97
V.4 changed yranges in the plots. Removed common calls not
needed. Giulio Del Zanna 6-Oct-2000
Version : Version 4, 6-Oct-2000
Project : SOHO - CDS
Name : PLOT_DMM_TR_FIG
Purpose : Plots line intensities in DMM_TR
Explanation : Internal routine used by CHIANTI_TE for plotting individual
line intensities.
Use : Called by CHIANTI_TE
Inputs : Uses common
Opt. Inputs : None
Outputs : None
Opt. Outputs: None
Keywords : None
Calls : None
Common : dmm_lines
Restrictions: None
Side effects: None
Category : Spectral, plotting
Prev. Hist. : Originally included in density_ratios by K Dere
Written : C D Pike, RAL, 15-Jan-96
Modified : Fix bug in searching for peak line (IMAX). CDP, 27-Jan-96
V.1 H E Mason, 03-Oct-96
V.2 changed yranges in the plots. Removed common calls not
needed. reinstated the two plots. Changed various things.
Giulio Del Zanna (DAMTP), 10-Oct-2000
Version : Version 2,
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
Name : PLOT_IONEQ
Purpose : Plots the ionisation equilibrium values for an element.
Explanation :
Use : IDL> plot_ioneq, element [ ion=ion]
Inputs : element - the element name
Opt. Inputs : Ion (as keyword)
Outputs : None
Opt. Outputs: a postscript file.
Keywords : ION_RANGE - specify range of ions. E.g., ion_range=[5,8]
means V to VIII inclusive.
IONEQ_NAME: Name of the ionization equilization name to use.
If not passed, then the user is prompted for it.
NOT_INTERACTIVE Avoid interactive use.
Calls : Other CHIANTI routines
Common :
Restrictions: None
Side effects: None
Category : Spectral
Prev. Hist. : None
Written : C D Pike, RAL, 9-Jun-97
Modified : V.2. Update element list. modified definition of XUVTOP, and
allowed selection of ionization eq. file and creation of
postscript file.
Giulio Del Zanna (DAMTP) 10-Oct-2000
V.3, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
V 4, 15-July-2002, GDZ
Added keywords ioneq_name, not_interactive
V.5, 9-Feb-2005, Peter Young
Changed ion= keyword to ion_range=
VERSION : 5, 9-Feb-2005
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
PLOT_POPULATIONS
PURPOSE:
plot the population of a number of the lowest levels as a function of
electron density for a specific temperature
CATEGORY:
science.
CALLING SEQUENCE:
PLOT_POPULATIONS,Ion,T,Nlevels
INPUTS:
Ion: CHIANTI style name for the ion, i.e., 'c_6' for C VI
T: electron temperature (K)
OPTIONAL INPUT:
Nlevels: the number of levels for which populations are plotted
starts from level 1 (the ground level)
KEYWORD PARAMETERS:
OUTFILE: the (optional) name of the output file where the listing
is produced
PSFILE: the (optional) name of the output file where a postscript
plot produced
RADTEMP Specify background radiation temperature (default: 6000 K)
RPHOT Distance from the centre of the star in stellar radius units.
I.e., RPHOT=1 corresponds to the star's surface. (Default is
infinity, i.e., no photoexcitation.)
NOPROT If set, then the default setting will be NOT to use
proton rates. This can be changed within the routine.
NOT_INTERACTIVE Avoid interactive use.
OUTPUTS:
COMMON BLOCKS:
common elvlc,l1a,term,conf,ss,ll,jj,ecm,eryd,ecmth,erydth,eref
common wgfa, wvl,gf,a_value
common upsilon,t_type,c_ups,splups
CALLS
POP_SOLVER, ION2SPECTROSCOPIC, ION2FILENAME, READ_IP,
CONVERTNAME, READ_ELVLC, READ_WGFA2, READ_SPLUPS
EXAMPLE:
to plot populations of the 5 ground configuration levels of Fe XIII
and store these values in a file 'Fe_XIII.lis' for a temperature of 1.5 MK
> plot_populations,'fe_13',1.5e+6,5,outfile='Fe_XIII.lis'
MODIFICATION HISTORY:
Written by: Ken Dere
March 1996: Version 2.0
November 1997: Ken Dere, added psfile keyword
September 1999: Ken Dere, for Version 3,
14-Jul-2000 Peter Young, now calls pop_solver
Version 6, 21-Dec-2000, William Thompson
Modified for better cross-platform capability.
V. 7, 21-May-2002, Giulio Del Zanna (GDZ), modified the plotting bit
generalized directory concatenation to work for
Unix, Windows and VMS.
V 8, 15-July-2002, GDZ
Added keyword not_interactive
V 9, 4-Oct-2003, GDZ
modified the input to POP_SOLVER, now it is dealt with an
input structure.
V 10, 4-May-2005, Enrico Landi (EL)
Modified in order to include ionization and recombination
data in the input to POP_SOLVER, now it allows choice of .ioneq
file needed to include ionization and recombination.
V 11, 12-Aug-2005, GDZ
The number of levels is now optional. Also, a check that the
number of levels must be less than the levels in the file is
now enforced.
VERSION : 11, 12-Aug-2005
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME: POP_PLOT
PURPOSE:
To compute n_j A_ji / N_e for a selected transition(s) and plot it
against N_e. If it is insensitive to N_e, then the line(s) is
suitable for emission measure analysis.
CATEGORY:
Atomic data analysis
EXPLANATION:
The routine calls EMISS_CALC to give values of DE*n_j*A_ji at the
temperature TEMP and densities from 10^8 to 10^12. You are then
asked to select which transition(s) you are interested in. (If
more than one line is selected, the lines are blended.)
DE*n_j*A_ji/N_e is then plotted against density.
If TEMP is not specified, then the temperature at which the
ionisation fraction has its maximum is calculated. For the iron
ions, the ion balance calcs of Arnaud & Raymond are used,
otherwise Arnaud & Rothenflug are used. If TEMP is specified,
and the value is less than 20, then it is assumed that the log
of the temperature has been specified.
In emission measure work it is important to isolate lines for
which DE*n_j*A_ji/N_e is insensitive to density. If only such lines
are used, then the derived emission measure curve is independent
of density.
CALLING SEQUENCE:
POP_PLOT, IZ, ION, WRANGE=WRANGE, [TEMP=TEMP, /QUICK, DATA=DATA, $
DENS_RANGE=DENS_RANGE, DILUTE=DILUTE]
EXAMPLES:
POP_PLOT, 26, 14, WRANGE=[330,360]
- 3 lines should appear in the widget. Selecting 334.17 should show
a curve that falls off with density. Choosing 353.83 shows a curve
that rises with density. By selecting a blend of the two lines,
the curve will be insensitive to density, telling us that only a
blend of 334.17 and 353.83 is suitable for emission measure work.
POP_PLOT, 8, 4, WRANGE=[550,560], TEMP=6.0, /QUICK, DENS_RANGE=[6,10]
- O IV is a member of the boron sequence, and so calculations take a
lot longer. Giving the QUICK keyword speeds things up. The
temperature is well away from the T_max of the ion
INPUTS:
IZ The atomic number of the ion
ION The spectroscopic number of the ion (e.g., 12 = XII)
OPTIONAL INPUTS:
DILUTE Used to set radiative dilution factor. (Default: 0.0)
TEMP The temperature at which calculations are required. Usually
this will be the Tmax of the ion.
DENS_RANGE The default density range is log Ne = 8 to 12. By
inputting two integers, a different range can be chosen.
WRANGE Wavelength range from which lines are required. If not
given, then the user is allowed to choose from the complete
set of lines for the ion.
ABUND_FILE The name of a CHIANTI abundance file. This is used for
calculating the proton to electron ratio. Default is
!abund_file.
IONEQ_FILE The name of a CHIANTI ion balance file. This is used for
calculating the proton to electron ratio and evaluating
the T_max of the ion. Default is !ioneq_file.
RADTEMP The blackbody radiation field temperature (default
6000 K).
RPHOT Distance from the centre of the star in stellar radius
units. I.e., RPHOT=1 corresponds to the star's surface.
(Default is infinity, i.e., no photoexcitation.)
OPTIONAL OUTPUTS:
DATA: An array that contains the data that is plotted: data(*,0)
contains
the densities, while data(*,1) contains the Y-axis values.
KEYWORDS:
NOPROT If set, then the default setting will be NOT to use
proton rates. This can be changed within the routine.
QUICK: The density range over which the calculations are done is
8 to 12 in 0.2 intervals. This keyword forces the
calculations to be done at 0.5 intervals.
CALLS:
EMISS_CALC, EMISS_SELECT, READ_IONEQ
HISTORY:
Ver.1, PRY 28-Jul-97.
Ver.2, PRY 23-Sep-97 - added DILUTE keyword for photo-excitation
Ver.3, PRY 30-May-98 - added DENS_RANGE
Ver.4, PRY 5-Sep-98 - added call to choose_ioneq
Ver.5, PRY 7-Apr-99 - tidied up, and introduced call to emiss_select
Ver.6, PRY 7-Dec-01 - modified for v.4 of CHIANTI
V. 7, 21-May-2002, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
V.8, 06-Aug-02 GDZ
added ABUND_FILE to the call to emiss_calc (was missing).
Changed the use of CHIANTI system variables.
VERSION : 8, 06-Aug-02
NAME
POP_PROCESSES
PROJECT
CHIANTI
PURPOSE:
Outputs to the screen the contributions of the different physical
processes to the population of the specified level within the ion.
E.g., for Fe XIII, level 4, the output is:
Population leaving level 4
rad. decay: 1.51e+01 39.17%
e de-exc: 3.56e-01 0.92%
e exc: 2.28e+01 59.12%
p de-exc: 2.63e-01 0.68%
p exc: 4.05e-02 0.11%
stim. emiss: 0.00e+00 0.00%
photoexc: 0.00e+00 0.00%
--------
TOTAL 3.85e+01
Population entering level 4
rad. decay: 3.59e+01 93.19%
e de-exc: 3.81e-02 0.10%
e exc: 1.46e+00 3.79%
p de-exc: 3.18e-03 0.01%
p exc: 1.12e+00 2.91%
stim. emiss: 0.00e+00 0.00%
photoexc: 0.00e+00 0.00%
--------
TOTAL 3.85e+01
which shows that the level population is dominated by electron
excitation and cascading into the level, and by radiative decay
out of the level.
Note that the rates for each physical process are multiplied by the
population of originating level (this results in the totals for
entering and leaving the level to balance).
For some ions, ionization and recombination are additional processes
included when working out the level balance. Because of the way these
processes are included (see the v.5 paper for details), the populations
entering and leaving some levels *will not balance*.
INPUTS
IZ The atomic number of the ion
ION The spectroscopic number of the ion (e.g., 12 = XII)
OPTIONAL INPUTS
LEVEL The ion level for which information is required.
DENS Electron density at which rates calculated (units: cm^-3).
If not specified, a value of 10^10 is assumed.
TEMP Temperature at which rates calculated (units: K). If not set,
then T_max of the ion is used
PATH If the ion data-files are not in the CHIANTI directories,
then PATH allows you to choose an alternative location.
RPHOT Distance from the centre of the star in stellar radius units.
I.e., RPHOT=1 corresponds to the star's surface. (Default is
infinity, i.e., no photoexcitation.)
RADTEMP Specify background radiation temperature (default: 6000 K)
N_LEVELS Restrict the ion model to this number of levels. E.g., if
the CHIANTI model contains 40 levels for the ion, then
setting N_LEVELS=12 reduces the model to 12 levels.
RADFUNC The name of a user-defined function that will generate
a radiation spectrum as a function of temperature.
This radiation field will replace the black-body that
is assumed when using the RADTEMP keyword in the call
to pop_solver.
KEYWORDS
NOPROT If set, then the default setting will be NOT to use
proton rates. This can be changed within the routine.
CALLS
R2W, ZION2FILENAME, PROTON_DENS, POP_SOLVER, SETUP_ION
EXAMPLES
One can compare the effect of cascading on a level population by using
the N_LEVELS keyword. Consider the case of Fe XIV:
IDL> pop_processes,'fe_14',lev=5
IDL> pop_processes,'fe_14',lev=5,n_levels=12
With the first call there are two dominant terms to the population
entering level 5: approximately 47% for radiative decays (cascading)
and 53% for electron excitation. Setting n_levels=12, one finds that
the cascading contribution disappears as there are no longer any
high-lying levels that cascade into level 5. The cascading provides
a strong contribution to the population of this level.
HISTORY
Ver.1, 11-Sep-2002, Peter Young
Ver.2, 15-Jan-2004, Peter Young
modified call to pop_solver following recent revision to
pop_solver; changed input from IZ,ION to IONNAME to match other
CHIANTI routines
Ver.3, 26-May-2005, Peter Young
changed TEMP and DENS keywords
Ver.4, 10-Jun-2005, Peter Young
added common block for ionization/recombination data and modified
INPUT structure.
Ver.5, 14-Jun-2005, Peter Young
routine now prints the percentage contribution of each process;
added N_LEVELS= keyword
Ver.6, 1-Jul-2005, Peter Young
added warning for ions with ionization/recombination
PROJECT: CHIANTI
CHIANTI is an atomic database package for the calculation of
astrophysical emission line spectra. It is a collaborative project
involving Ken Dere (Naval Research Laboratory, Washington DC),
Brunella Monsignori-Fossi and Enrico Landi (Arcetri Observatory,
Florence), and Helen Mason and Peter Young (DAMTP, Cambridge Univ.).
NAME: POP_SOLVER
PURPOSE:
To solve the level balance equations for Chianti ions.
CATEGORY:
Scientific analysis
EXPLANATION:
This routine solves the level balance equations for the CHIANTI ions.
Atomic data is pre-loaded into the COMMON blocks, and so POP_SOLVER
can only be called indirectly through other routines.
The matrix equation Ax=b is solved where A contains all the atomic
data (electron rate coefficients, radiative decay rates, proton rate
coefficients, photoexcitation rates), x are the level populations,
and b a vector set to zeros except for the first element which is 1.
To solve the matrix equation, pop_solver calls out to the CHIANTI
routine matrix_solver.
The matrix A is created from the atomic data in the COMMON blocks.
In order to optimise POP_SOLVER, A is created where possible through
array operations rather than FOR loops.
With v.5 of CHIANTI the additional atomic processes of ionization
and recombination can be included when calculating the level
populations. These processes are not included in the matrix A.
Instead the level populations x are 'corrected' for ionization and
recombination afterwards. This correction is performed by the routine
correct_pops. More details of this method are found in the CHIANTI
v.5 paper.
CALLING SEQUENCE:
POP_SOLVER, T, XNE, POP, N_LEVELS=N_LEVELS
INPUTS:
T Temperatures, e.g., 10.^6
XNE Densities, e.g., 10.^8
OPTIONAL INPUTS:
N_LEVELS This allows the number of levels in the model to
be reduced. E.g., if the full model contains 100
levels, one could set n_levels=50. This can be
useful if one is interested in looking at the
effects of cascading from higher levels
SUM_MWL_COEFFS An array of coefficients of the same length as
the array of temperatures. Electron and proton rate
coefficients will be calculated at each temperature
and then a weighted sum of the coefficients is
performed using SUM_MWL_COEFFS. This allows
non-Maxwellian energy distributions to be
incorporated into the level balance equations.
RADFUNC The name of a user-defined function that will generate
a radiation spectrum as a function of temperature.
This radiation field will replace the black-body that
is assumed when using the RADTEMP keyword in the call
to pop_solver.
FRAC_CUTOFF The fraction of non-zero elements in the C matrix below
which the sparse matrix solver is used. See the routine
matrix_solver for more details.
OUTPUT:
POP An array of level populations of size
n_T x n_XNE x n_levels
OPTIONAL OUTPUTS
DATA_STR If POP_SOLVER is called for just 1 temperature and density,
then the individual data arrays for each of the physical
processes can be output through DATA_STR. This allows the
user to check for the dominant processes affecting the
population of a given level. DATA_STR is a structure with
the following tags:
.aa A-values (2D array)
.aax Photoexcitation/stimulated emission (2D array)
.cc Electron rate coefficients (2D array)
.ccp Proton rate coefficients (2D array)
.ion_rate Ionization rate (1D array)
.rec_rate Recombination rate (1D array)
.correction Correction factor for level pop (1D array)
.frac_low Ratio of N+1 ion fraction to N (scalar)
.frac_high Ratio of N-1 ion fraction to N (scalar)
The 2D arrays are such that, e.g., aa[0,20]
corresponds to an excitation, while aa[20,0] is a
de-excitation.
The 1D arrays are simply the rate coefficients into the
individual levels.
PROGRAMMING NOTES:
PROTON RATES
------------
To include the proton rates, it is necessary to have the
proton-to-electron ratio. This needs to be calculated before the
call to pop_solver, and the resulting ratio(s) passed through
'pe_ratio' in the common block 'proton'.
Note that there is no keyword to switch off proton rates (i.e.,
no /NOPROT keyword). To switch off proton rates, it is necessary
to set pstr=-1. This should be done by the calling routine.
COMMON BLOCKS:
None.
CALLS:
DESCALE_ALL, PROTON_DENS(), MATRIX_SOLVER(), CORRECT_POPS()
HISTORY:
Ver 1, PRY 29-Mar-99
Ver 2, PRY 30-Apr-99, added call to get_prot_rates
Ver 3, PRY 15-Dec-99, added deu to upsilon common block in order
to be consistent with the main Chianti routines.
Ver 4, PRY 9-May-00, corrected problem with threshold when dealing
with sparse matrices. Basically values less than 1.e-30 in
the c-matrix were being set to zero and giving rise to
NaN's in certain circumstances.
Ver.5, PRY 14-Jul-00, changed elvl common block to the elvlc common
block which is now the Chianti standard. Also, when
descaling upsilons, the routine now uses the Delta-E from
the .splups file.
Ver.6, PRY 9-Aug-00, changed routine to deal better with the
dielectronic recombination files
Ver.7, PRY 17-Aug-00, routine does not call LINBCG now if radtemp
is non-zero.
Ver.8, PRY 29-Aug-00, the sparse matrix section has been disabled.
Ver.9, PRY 12-Nov-01, calls routine proton_dens() to calculate the
proton to electron ratio.
Ver.10, PRY, 6-Dec-01, corrected bug when there are more levels
in .splups file than in .elvlc file (ZnXXV).
Ver.11, PRY, 11-Jul-02, removed ION keyword
Ver.12, PRY, 9-Aug-02, within the equation solving section, I've set
the population of the ground level (rather the n_level level)
to 1, and this seems to stop negative populations appearing
in extreme conditions.
Ver.12, PRY, 21-Aug-02, changed exp(-1/1/a) to exp(-a) in electron
excitation section which caused a hang-up in some
circumstances. Also, the routine now uses vector ECMC
(combined experimental and theoretical energies) in
determining if a level lies above or below another level.
Previously only used the observed energy vector. Also, the
exponential in the electron excitation section now uses the
(accurate) .elvlc energy separation rather than the .splups
energy separation, which can cause significant (~20-30%)
differences in level populations of high-lying levels at
low temperatures.
Ver.13, PRY, 10-Sep-02, corrected bug for proton rates. The excitation
and de-excitation rates were being swapped.
V. 14 4-Oct-2003 Giulio Del Zanna (GDZ).
-removed all COMMON blocks (note that only proton_dens.pro has
one: COMMON elements,abund,abund_ref,ioneq,ioneq_logt,ioneq_ref)
-only the essential information input is passed to the routine
via a new input structure.
-fixed a bug, that affected all the satellite lines, and was
introduced in v.12, included in CHIANTI v.4.0.
basically the ionization potential was not subtracted when
calculating the Delta E in the exponential.
V. 15 7-Oct-2004 Enrico Landi (EL)
Included ionization and recombination as level population
processes.
V. 16 6-Apr-2005 Enrico Landi (EL)
Included extrapolation of ionization and recombination rates
for temperatures beyond those provided in the .ci and .rec
files.
V. 17 10-Jun-2005 Peter Young
Tidied up code, introduced call to correct_pops for
ionization/recombination, and added radfunc= and
sum_mwl_coeffs= keywords
V. 18 12-Jul-2005, Peter Young
Improved implementation of RADFUNC keyword
V. 19 27-Jul-2005, Peter Young
Corrected bug when the ionrec structure does not exist.
V. 20 16-Aug-2005, Peter Young
Routine now catches any NaN values in the level populations
and prints a warning. All pops are set to zero in this case.
VERSION : 20, 16-Aug-2005
Project : SOHO - CDS
Name : print2d_plot
Purpose : this routine optionally changes the ranges of a 1D plot
and print the plot to a landscape postscript file.
Explanation :
This routine changes the keywords pr, x_min,x_max,y_min,y_max
in order to change the range of a 2-D plot, or to open a
SET_PLOT,'ps' and create a postscript.
This is done basically repeating the sequence of commands in the
calling routine, within a loop.
The routine that calls print2d_plot should have :
window,/free
;;to open a window
x_min=min(lambda) & x_max=max(lambda)
y_min=min(sp) & y_max=max(sp)
;; to set the initial limits of
;; a one-dimensional plot.
pr=''
begin_plot_sp:
plot,lambda,sp,xr=[x_min,x_max],yr=[y_min,y_max],$
xstyle=1,ystyle=1
;; to plot (etc....)
print2d_plot, pr=pr, x_min=x_min,x_max=x_max,$
y_min=y_min,y_max=y_max,$
go_to_line=go_to_line,$
out_name=out_name,/ask_name
or:
print2d_plot, pr=pr, x_min=x_min,x_max=x_max,$
y_min=y_min,y_max=y_max,$
go_to_line=go_to_line,$
out_name='spectrum.ps'
;;to create the ps file spectrum.ps
if go_to_line eq 'y' then goto,begin_plot_sp
If you have an image or a stack of images, the limits cannot be
changed and you should omit the min,max limits.
Use : IDL>
Examples :
Inputs :
Opt. Inputs :
Outputs :
Opt. Outputs:
Keywords :
Calls :
Common : None.
Restrictions: None.
Side effects: None known yet.
Category :
Prev. Hist. :
Written :
Giulio Del Zanna (GDZ),
UCLAN (University of Central Lancashire, UK)
Modified : Version 1, GDZ Fri Jan 30 12:21:59 1998
v.2 GDZ added set_plot, 'ps',/copy ,/inter 02-Feb-2000
Version 3, 21-Dec-2000, William Thompson
Modified for better cross-platform capability.
Ver 4, 1-May-02, GDZ
Modified the setup to go back to display.
Version : Version 4, 1-May-02
NAME
PROTON_DENS()
EXPLANATION
Calculates the ratio of the proton density to electron density using
abundance and ion balance files.
INPUTS
TEMP The logarithm (base 10) of the temperature(s) for which the
ratio is required. Can be an array.
OUTPUT
An array of same size as TEMP containing the proton-to-electron ratio.
KEYWORDS
HYDROGEN If set then the routine computes the ratio of hydrogen to
free electrons.
CALLS
READ_IONEQ, READ_ABUND
COMMON BLOCKS
ELEMENTS
PROGRAMMING NOTES
To work out the proton/electron ratio, an ion balance and abundance
file are required. These can be specified through the common block,
otherwise the default files are assumed (!ioneq_file and !abund_file).
Because the ion balance data is tabulated only for logT from 4.0 to
8.0, the proton/electron ratio can only be calculated for this range.
Above and below these temperatures, the values at 8.0 and 4.0 are
assumed, respectively.
I've added a check to see if the temperatures are tabulated at 0.1
dex intervals (e.g., 4.0, 4.1, etc.). If they are, then a quicker
algorithm is used to calculate p/e ratios. This is useful for
synthetic.pro.
HISTORY
Ver.1, 5-Dec-2001, Peter Young
Ver.2, 3-Dec-2001, Peter Young
Added /hydrogen keyword.
V. 3, 22-May-2002, GDZ:
generalize directory concatenation to work for Unix, Windows
and VMS.
V.4, 06-Aug-02 GDZ
Changed the use of CHIANTI system variables.
VERSION : 4, 06-Aug-02
NAME
R2W()
EXPLANATION
Converts a distance above a star into a dilution factor.
INPUTS
R Distance above a star's surface, measured from the star's
center, in stellar radii units. E.g., R=1 is the surface.
OUTPUT
Radiation dilution factor - a number between 0 and 0.5
HISTORY
Ver.1, 8-Aug-2001, Peter Young
Ver.2, 12-Nov-2001, Peter Young
catches error if r < 1.
CONTACT
Peter Young, CfA, pyoung@cfa.harvard.edu
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
RAD_LOSS
PURPOSE:
Calculates energy loss rate by free-free (ff), radiative
recombination (fb) and by line (bound-bound) radiation.
CATEGORY:
synthetic spectra
CALLING SEQUENCE:
RAD_LOSS,Temperature,Loss_rate
INPUTS:
None: The user will select an elemental abundance file and a
ionization equilibrium file through widgets.
KEYWORDS:
Pressure: pressure in emitting region (cm^-3 K)
density=pressure/temperature(K)
Density: density (cm^-3), constant for all temperatures
if neither density or pressure is set, then a default
constant density of 10^10 cm^-3 is used.
Psfile: to create a postscript plot of the radiative loss in
the file specified by the name assigned to 'Psfile'
Outfile: name of an ascii file where the radiative loss rate
as a function of temperature is output
RADTEMP Specify background radiation temperature (default: 6000 K)
RPHOT Distance from the centre of the star in stellar radius units.
I.e., RPHOT=1 corresponds to the star's surface. (Default is
infinity, i.e., no photoexcitation.)
NOPROT If set, then the default setting will be NOT to use
proton rates. This can be changed within the routine.
OUTPUTS:
Temperature: array of temperatures (K)
Loss_rate: energy loss rate in erg cm^3 s^-1
PROCEDURE:
if keyword pressure is set then calculations performed at constant pressure
if keyword density is set then calculations performed at constant density
otherwise, density is set to 1.e+10
pressure = density * temperature (cm^-3 K)
the user will be asked to select an abundance file and a
ionization balance file.
EXAMPLE:
> rad_loss,t,r
MODIFICATION HISTORY:
Written by: Ken Dere
January 1999: version 1, adopted from synthetic.pro
Version 2, 21-Dec-2000, William Thompson
Modified for better cross-platform capability.
Ver.3, 6-Dec-2001, Peter Young
Added /noprot, radtemp and dilute keywords.
Removed elvlc, wgfa and upsilon common blocks.
Removed calls to read_ip and read_masterlist (not needed).
Ver.4, 8-Jul-2003, Peter Young
Updated routine header (no changes to code).
V 5, 25-May-2005, GDZ
corrected routine header.
VERSION : 5, 25-May-2005, GDZ
NAME
RATE_COEFF()
PROJECT
CHIANTI
EXPLANATION
Returns the electron rate coefficient in units of cm^3 s^-1.
Either the entire excitation/de-excitation array for the specified
ion or, if the TRANS= keyword is used, the excitation rate for
the specified transition.
INPUTS
IONNAME The CHIANTI ion identifier, e.g., 'o_6' for O VI.
TEMP Specify temperature(s) at which upsilon(s) are required.
Note that this can be an array. Units: K.
KEYWORDS
QUIET Prevents printing of information to the screen.
OPTIONAL INPUTS
TRANS Level indices for transition, e.g., [1,2] for transition
1-2.
PATH If the data files are in a different directory from the
standard CHIANTI distribution, then this keyword should be
set to the directory. E.g., PATH='/home/mydata/o/o_6'
OUTPUTS
Returns the 2D array containing excitation and de-excitation
coefficients. If E(i) < E(j) then CC(i,j) will be the excitation
coefficient and CC(j,i) will be the de-excitation coefficent.
If the keyword TRANS= is set, then the routine only returns the
excitation coefficient for the specified transition.
EXAMPLES
IDL> help,rate_coeff('o_6',3e5)
DOUBLE = Array[40, 40]
IDL> result=rate_coeff('o_6',3e5,trans=[1,3])
Wavelength: 1031.91
Exc. rate coeff: 1.913e-008
De-exc. rate coeff: 1.522e-008
IDL> print,result
1.9130775e-008
CALLS
CONVERTNAME, ZION2FILENAME, ZION2NAME, SETUP_ION, POP_SOLVER,
READ_IONEQ, READ_ABUND, PROTON_DENS
HISTORY
Ver.1, 22-Jun-2004, Peter Young
Ver.2, 5-Jul-2005, Peter Young
updated for v.5 of CHIANTI
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME: RATIO_PLOTTER
PURPOSE:
A widget-based routine to allow the analysis of density or
temperature sensitive ratios.
EXPLANATION:
RATIO_PLOTTER is designed to study temperature and density
sensitive line ratios. For temperature ratios, just use the
keyword /temp; for density ratios just use /dens.
The routine allows line ratios relative to a
particular line (called the 'denominator line') to be viewed. One
can either choose a particular numerator, or one can simply view
all ratios within a specified wavelength range (see the button widget
just above the main plot window).
In the former case, the numerator line can be chosen either from the
strongest lines, or from all lines within a specified wavelength
range.
A wavelength range is selected via the sliders at the lower left of
the main widget.
A default set of emissivity parameters is used initially to create
the first plot that you see. To change the parameters, click on the
'CHANGE PARAMETERS' button near the top of the GUI. This activates
a new set of widgets allowing the user to change whether energy or
photon units are needed, whether proton rates are included, the
temperature/density range, etc. Note that while the parameters are
being changed, the user can not modify the line selection or plot
parameters.
When a particular numerator line has been selected, observed
intensities (and error bars) for both the denominator and numerator
can be input, and the derived density (plus error bars) can be seen
on the plot (click on 'PLOT ERROR BARS'), or in a text widget (see
the 'SHOW DERIVED DENSITIES' button).
The accuracy of the derived density or temperature is limited by the
intervals in the emissivity calculation. The intervals can be
changed on the widget (there are 4 choices given) and if a new
interval is selected, new emissivities should be calculated.
Using the smallest intervals will give the highest accuracy for
the computed density or temperature.
CALLING SEQUENCE:
RATIO_PLOTTER, IZ, ION [, /TEMP, /DENS, EM, PATH=, /NOPROT, $
IONEQ_FILE=, ABUND_FILE= ]
EXAMPLES:
RATIO_PLOTTER, 26, 13, /TEMP ; Fe XIII
RATIO_PLOTTER, 10, 6, /DENS ; Ne VI
RATIO_PLOTTER, 26, 13, /DENS, PATH='/home/new_chianti_data'
INPUTS:
IZ: The atomic number of the ion
ION: The spectroscopic number of the ion (e.g., 12 = XII)
OPT. INPUTS:
EM: Save the displayed emissivities to structure EM. This
structure is simply the structure EMISS_SELECT used in
the routine, with some extra tags. This structure has the
tags:
.lines.emiss Emissivities of line at requested densities
.lines.wavel Wavelength(s) of line (blend)
.dens Log10 electron density/densities
.temp Log10 electron temperature(s)
.rphot Photoexcitation radius
.radt Radiation temperature
.proton String indicating whether proton rates are
included.
.date The date and time at which structure was
created.
.version The version of CHIANTI that created the
structure.
PATH: Data in the CHIANTI format that is not in the CHIANTI
database can be read by specifying the directory in which
it lies through PATH.
ABUND_FILE The name of a CHIANTI abundance file. This is used for
calculating the proton to electron ratio. Default is
!abund_file.
IONEQ_FILE The name of a CHIANTI ion balance file. This is used for
calculating the proton to electron ratio and evaluating
the T_max of the ion. Default is !ioneq_file.
KEYWORDS:
DENSITY If set then ratios are plotted as a function of
density rather than temperature.
TEMPERATURE If set then the ratios are plotted as a function of
temperature rather than density.
NOPROT If set, then the default setting will be NOT to use
proton rates. This can be changed within the routine.
PROGRAMMING NOTES:
RATIO_PLOTTER is actually a collection of several routines....
DENS_FINDER - converts observed ratios into densities
INDEX_EXTRACTOR - a device for extracting indices out of arrays
WAVEL_PLOT - plots the little window in bottom left of GUI
DENS_PLOT - updates the plot window
DENS_MAIN_EVENT - responds to widget actions
SAMPLE_WID - sets up the widgets
RATIO_PLOTTER - loads up various initial parameters
The emissivities of all the ion's lines are stored in the
structure "emiss", while those of the selected lines are stored
in "emiss_sel". This latter can be output into IDL by giving the
"EM" optional input on the command line.
The routine is set up to allow more than one numerator to be
displayed at once, but I've never actually found a need to
implement this yet. (Note that you'll see "Numerator 1" on
the widget.)
CALLS:
EMISS_CALC, READ_IONEQ, EMISS_SELECT, ZION2NAME,
ZION2FILENAME, ZION2SPECTROSCOPIC, PS, PSCLOSE, IS_NUMBER,
CHIANTI_FONT, TRIM
INTERNAL PROCEDURES AND FUNCTIONS
DENS_FINDER, INDEX_EXTRACTOR, DENS_PLOT, DENS_MAIN_EVENT,
SAMPLE_WID, WAVEL_PLOT
COMMON BLOCKS
EMISS_DATA, SELECT, SLIDERS, PLOTTING, RAD_DATA, PROTON_RATES,
EXTRA, ELVLC, FILES, TEMP
HISTORY:
Ver.1: PRY, 15-SEP-97.
Ver.2: PRY, 6-JUL-98, added EM and PATH
Ver.3: PRY, 5-SEP-98, added call to choose_ioneq
Ver.4: PRY, 11-JAN-99, added PROTON keyword and widget to allow
the addition of proton rates
Ver.5: PRY, 3-FEB-99, added a title to the widget, and the name
of the ion to the ratio plot title
Ver.6: PRY, 25-MAR-99, corrected bug for wavelengths > 1000
angstroms
Ver.7: PRY, 1-JUN-99, routine now works in CDS environment
without use_dere_chianti
Ver.8: PRY, 22-FEB-00, corrected colour problem
Ver.9: PRY, 17-AUG-00, added windows identifying the numerator
and denominator transitions. This required an
extra routine (MAKE_STRINGS) and a common block
(ELVLC).
Ver.10: PRY, 25-AUG-00, added buttons to allow a choice between
ratios in energy or photon units.
Ver.11: PRY, 25-AUG-00, can now specify a wavelength range by
directly typing in the numbers
Ver.12: PRY, 30-Nov-00, changed call to emiss_select
Ver.13: PRY, 21-Dec-00, removed set_plot,'x' following help from
Bill Thompson
Ver.14, PRY, 27-Dec-00, changed switch to tst1 for IDL v5.4
Ver.15, PRY, 7-Dec-01, changed /prot keyword to /noprot to be
compatible with other CHIANTI routines.
Added /temperature keyword.
Ver.16, PRY, 28-May-02, removed SPLINE calls, changing them to
SPL_INIT and SPL_INTERP; changed density labels to
temperature labels where appropriate.
Ver.17, PRY, 29-May-02, made treatment of photoexcitation consistent
with other CHIANTI routines.
V. 18, 29-May-2002, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for Unix,
Windows and VMS.
Now we only call zion2filename.
When creating the ps file, ps and psclose are used.
v.19, 12-Jun-02 GDZ
fixed a small bug when finding the names of the files when the
keyword PATH is given.
v.20, 2-Aug-02, Peter Young
made some cosmetic changes following Giulio's suggestions.
v.21, 5-Aug-02, Peter Young
made various changes:
- the emissivity parameters (at top of widget) can only be
changed independently of line selection now
- the text widgets now check to make sure the user inputs
are numbers.
- extended the number of tags on the output EM structure
v.22, 6-Aug-02, Peter Young
corrected plot problem when viewing all temperature ratios
in a fixed wavelength range.
v.23, 8-Aug-02, Peter Young
a number of cosmetic changes to make the GUI more
user-friendly
v.24, 13-Aug-02, Peter Young
changed the temperature/density text widget so that numbers
are registered even if the return key has not been hit.
v.25, 14-Aug-02, Peter Young
photoexcitation button now works again; also some cosmetic
changes
V.26, 17-Sept-02, GDZ
added scrolling in main frame
V.27, 10-Feb-03, Peter Young
corrected bug related to fonts on Windows PCs
V.28, 13-Feb-03, Peter Young
corrected problem when ion balance data dosen't exist for
an ion
V.29, 18-Feb-03, Peter Young
added call to routine chianti_font to deal with fonts.
V.30, 28-Aug-03, Peter Young
corrected bug when two lines have the same wavelength by
introducing .ind tag to emiss_sel
V.31, 3-Nov-03, Giulio Del Zanna
Added printout of Ne(Te) vs. ratio values
Modified format e8.2 to e9.2 for Windows compatibility.
V.32, 6-Nov-03, Peter Young
Corrected bug when new emissivities are calculated that
prevented the emissivites in emiss_sel from being updated.
Also, the Ne(Te), ratio values are now printed to a pop-up
window through the new 'SHOW RATIO VALUES' button rather
than printed to the text window (see V.31).
V.33, 7-Nov-03, Giulio Del Zanna (GDZ)
Modified the popup widget by calling xpopup and adding
labels. Now it is possible to paste and copy the RATIO
values into a file.
V.34, 12-Dec-03, Peter Young
Lowered the position of the postscript plot on the paper so
that the title isn't chopped off on US letter-size paper.
V.35, 2-Aug-2005, GDZ
Various modifications. Now the routine handles the
dielectronic case. Added printing of line lists in the
line ratio plots. Added the option to print directly to
the PRINTER. Added the option to SAVE a structure
containing the emissivities into an IDL save file (using
SAVEGEN). Added retain=2 to the window. Added
logarithmic or linear plot switch. Added cleaning of the
variables at the start of the routine. Various minor
cosmetic changes.
V.36, 12-Aug-2005, GDZ
Reinstated some previous cosmetic features. Also adjusted
some sizes, added some checks (e.g. minimum is set to 1e-10 if
plot is in log scale -to avoid log(0)-; automatic scaling cannot
be set if log scale is on).
V.37, 15-Aug-2005, Peter Young
Corrected bug with derived densities when the theoretical ratio
is double-valued.
V.38, 15-Aug-2005, Peter Young
Corrected bug introduced by modification above.
V.39, 17-Aug-2005, Peter Young
Adjusted layout of widget, modified printing of wavelengths
in the plot window, and adjusted plot limits for log scale.
VERSION : 39, 17-Aug-2005
This procedure has a dual purpose: (i) to extract `emiss' indices from
`emiss_sel' and, (ii) create labels that will be displayed on the plot
window.
The lines that comprise the blend are contained in emiss_sel.label
as, e.g., '203.79+203.80'. This routine separates this string into
the separate wavelengths and looks in emiss.lambda to see which
indices they correspond to. The set of indices are output through INDEX.
INPUT
I Index of component in emiss_sel. E.g., for the denominator I=0,
for the numerator I=1.
OPTIONAL OUTPUT
INDEX Integer array of same length as the number of lines in the
numerator or denominator (based on value of I). The elements
give the indices of the lines as they appear in the EMISS
structure.
PLOT_LABEL A string containing the index to be used when labelling
the line ratio plots.
KEYWORD
PS Setting this adds an angstrom to the wavelength labels. (Only
works for the postscript device.)
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
READ_ABUND
PURPOSE:
to read CHIANTI abundance files
CATEGORY:
science.
CALLING SEQUENCE:
READ_ABUND,File,Abundance,Reference
INPUTS:
File: the name (string) of the file containing the abundance values
(relative to hydrogen) usually of the form
'!xuvtop/abundance/*.abund'
OUTPUTS:
Abundance: an array of abuncance values
Reference: a string containing the reference to the chosen set
of abundances in the scientific literature
PROCEDURE:
You can describe the foobar superfloatation method being used here.
EXAMPLE:
> read_abund,'allen.abund',abundance,ref
abundance(26) = abundance of iron relative to hydrogen
quoted by C.W. Allen in Astrophysical Quantities
MODIFICATION HISTORY:
Written by: Ken Dere
March 1996: Version 2.0
V. 3, 21-May-2002, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
VERSION : 3, 21-May-2002
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
READ_DEM
PURPOSE:
to read values the differential emission measure as a function
of temperature
CATEGORY:
science.
CALLING SEQUENCE:
READ_DEM, File, T, Dem, Ref
INPUTS:
File: the name of the file containing the DEM values, usually in
!xuvtop/dem/*.dem
OUTPUTS:
T: Log10 values of temperature (K)
Dem: Log10 values of the differential emission measure
Ref: the reference to the DEM values in the scientific literature
OPTIONAL OUTPUTS:
Describe optional outputs here. If the routine doesn't have any,
just delete this section.
EXAMPLE:
> read_dem,!xuvtop+'/dem/active_region.dem',t,dem,ref
MODIFICATION HISTORY:
Written by: Ken Dere
March 1996: Version 2.0
V. 3, 21-May-2002, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
Ver.4, 20-Nov-2002, Peter Young
DEM values of -1 caused errors, so this has been corrected.
VERSION : 4, 20-Nov-2002
PROJECT: CHIANTI
CHIANTI is an atomic database package for the calculation of
astrophysical emission line spectra. It is a collaborative project
involving Ken Dere (Naval Research Laboratory, Washington DC),
Brunella Monsignori-Fossi and Enrico Landi (Arcetri Observatory,
Florence), and Helen Mason and Peter Young (DAMTP, Cambridge Univ.).
NAME:
READ_ELVLC
PURPOSE:
to read files containing observed and theoretical energy levels
CATEGORY:
science.
CALLING SEQUENCE:
READ_ELVLC, File, L1, Term, Conf, ss, ll, jj, Ecm, Eryd, Ecmth, Erydth, Ref
INPUTS:
File: the name of the file
i.e., !xuvtop+'/si/si_12/si_12.elvlc' for Si XII
OPTIONAL INPUTS:
None:
OUTPUTS: L1 - level index
Term - configuration index
Conf - configuration description
ss - 2S+1
ll - L
jj - J
Ecm - observed energy (cm^-1)
Eryd - observed energy (Rydbergs)
Ecmth - theoretical energy (cm^-1)
Erydth - theoretical energy (Rydbergs)
Ref - reference
note: the theoretical energies are usually those used in the scattering
calculation and are only useful for predicting approximate
wavelengths
EXAMPLE:
> file = !xuvtop+'/si/si_12/si_12.elvlc'
> read_elvlc,file,l1,term,conf,ss,ll,jj,ecm,eryd,ref
>
MODIFICATION HISTORY:
Written by: Ken Dere
March 1996: Version 2.0
Ver.2, 6-Dec-2001, Peter Young
Modified the form of the "term" output. The J-value is now
represented by a fraction rather than a decimal.
PROJECT: CHIANTI
CHIANTI is an atomic database package for the calculation of
continuum and emission line spectra from astrophysical plasmas. It is a
collaborative project involving the Naval Research Laboratory
(Washington DC, USA), the Arcetri Observatory (Firenze, Italy), and the
Cambridge University (United Kingdom).
NAME:
READ_ELVLC_DIRECT
PURPOSE:
to read files containing observed energy levels
does not reformat some variables like READ_ELVL
CATEGORY:
science.
CALLING SEQUENCE:
READ_ELVLC_DIRECT, File, L1, Term, Conf, ss, ll, spd, jj, Ecm, Eryd, Ecmth, Erydth, Ref
INPUTS:
File: the name of the file
i.e., !xuvtop+'/si/si_12/si_12.elvl' for Si XII
OPTIONAL INPUTS:
None:
OUTPUTS: L1 - level index
Term - configuration index
Conf - configuration description
ss - 2S+1
ll - L
spd - 'S', 'P', etc to denote L value
jj - J
Mult - multiplicity 2J+1
Ecm - energy (cm^-1)
Eryd - energy (Rydbergs)
Ecmth - energy (cm^-1)
Erydth- energy (Rydbergs)
Ref - reference
EXAMPLE:
> file = !xuvtop+'/si/si_12/si_12.elvl'
> read_elvlc_direct,file,l1,term,conf,ss,ll,jj,ecm,eryd,ecmth,erydth,ref
>
MODIFICATION HISTORY:
Written by: Ken Dere
March 1996: Version 2.0
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
READ_FBLVL
PURPOSE:
To read files containing observed free-bound energy levels
CATEGORY:
Science.
CALLING SEQUENCE:
READ_FBLVL, File, L1, Conf, pqn, ll, spd, mult, Ecm, Ecmth, Ref
INPUTS:
File: the name of the file
e.g., !xuvtop+'/si/si_12/si_12.fblvl' for Si XII
OPTIONAL INPUTS:
None:
OUTPUTS: L1 - level index
CONF - configuration description
PQN - principal quantum number of electron being ionized
LL - L-value of ionized electron
SPD - 'S', 'P', etc to denote L value
MULT - multiplicity 2J+1
ECM - energy (cm^-1)
ECMTH - energy (cm^-1)
REF - reference
EXAMPLE:
> file = !xuvtop+'/si/si_12/si_12.elvlc'
> read_fblvl,file,l1,conf,pqn,ll,mult,ecm,ecmth,ref
>
HISTORY
Ver.1, 31-Jul-2002, Peter Young
PROJECT: CHIANTI
CHIANTI is an atomic database package for the calculation of
continuum and emission line spectra from astrophysical plasmas. It is
a collaborative project involving the Naval Research Laboratory
(Washington DC, USA), the Arcetri Observatory (Firenze, Italy), and the
Cambridge University (United Kingdom).
NAME:
READ_GFFGU
PURPOSE:
Read gffgu.dat file containing free-free gaunt factors of
R. S. Sutherland, 1998, MNRAS, 300, 321
note: the file available from the web site are mislabelled
CALLING SEQUENCE:
READ_GFFGU,g2,u,gff
INPUTS:
None
OUTPUTS:
g2,u,gff defined in the paper by Sutherland
COMMON BLOCKS:
None
MODIFICATION HISTORY:
Written by: Ken Dere
April 2000: Version 3.0
October 2001: Version 4 - Ken Dere -
corrected for the fact that the original
Sutherland file was mislabelled
November 2001: Corrected the address of the gffgu.dat file - Enrico Landi
PROJECT: CHIANTI
CHIANTI is an atomic database package for the calculation of
continuum and emission line spectra from astrophysical plasmas. It is a
collaborative project involving the Naval Research Laboratory
(Washington DC, USA), the Arcetri Observatory (Firenze, Italy), and the
Cambridge University (United Kingdom).
NAME:
READ_GFFINT
PURPOSE:
Read gffint file containing integrated free-free gaunt factors of
R. S. Sutherland, 1998, MNRAS, 300, 321
CALLING SEQUENCE:
READ_GFFINT,g2,gff,s1,s2,s3
INPUTS:
None
OUTPUTS:
g2,gff,s1,s2,s3 defined in the paper by Sutherland
COMMON BLOCKS:
None
MODIFICATION HISTORY:
Written by: Ken Dere
April 2000: Version 3.0
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
READ_IONEQ
PURPOSE:
to read files containing the ionization equilibrium values
CATEGORY:
science.
CALLING SEQUENCE:
READ_IONEQ, File, T, Ioneq, Ref
INPUTS:
File: for example, !xuvtop+'/ioneq/arnaud_rothenflug.ioneq'
OPTIONAL INPUTS:
None:
OUTPUTS:
T: array of log10 temperatures
Ioneq: 3-d array (T,element,ion)
of the fractional abundance of the ion in
ionization equilibrium.
Ref: reference in the scientific literature
EXAMPLE:
> read_ioneq,!xuvtop+'/ioneq/arnaud_rothenflug.ioneq'
> help,t,ioneq
> T FLOAT = Array(41)
> IONEQ FLOAT = Array(41, 28, 29)
> print, minmax(t)
> 4.00000 8.00000
> print,t(20)
> 6.0000
> print,ioneq(20,25,9)
> 0.269 = fractional abundance of Fe X in
ionization equilibrium
MODIFICATION HISTORY:
Written by: Ken Dere (KPD)
March 1996: Version 2.0
March 1999: KPD to read both number of temperature and number
of elements
25-Oct-2000 V. 4, Giulio Del Zanna (GDZ).
Corrected to interpret the '-1' as a reference only
if within the first 3 columns
V. 5, 21-May-2002, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
v.6, 25-Oct-2004, Peter Young
modified format statement so that it will read any number of
temperatures.
V 7, 25-May-2005, GDZ
corrected routine header.
VERSION : 7, 25-May-2005
PROJECT: CHIANTI
CHIANTI is an atomic database package for the calculation of
continuum and emission line spectra from astrophysical plasmas. It is a
collaborative project involving the Naval Research Laboratory
(Washington DC, USA), the Arcetri Observatory (Firenze, Italy), and the
Cambridge University (United Kingdom).
NAME:
READ_IP
PURPOSE:
to read values of ionization potentials
CALLING SEQUENCE:
READ_IP, File, IP, Ref
INPUTS:
File: the name of the file containing the IP values, usually
!xuvtop/ip/chianti.ip
OUTPUTS:
IP: Array values of ionization potential (cm^-1)
Ref: the reference to the IP values in the scientific literature
EXAMPLE:
> read_ip,!xuvtop+'/ip/chianti.ip',ip,ref
ip(2-1,2-1) give the ionization potential of He II (Z=2, Ion=2)
MODIFICATION HISTORY:
Written by: Ken Dere
March 1998: Version 1.0
PROJECT: CHIANTI
CHIANTI is an atomic database package for the calculation of
continuum and emission line spectra from astrophysical plasmas. It is a
collaborative project involving the Naval Research Laboratory
(Washington DC, USA), the Arcetri Observatory (Firenze, Italy), and the
Cambridge University (United Kingdom).
NAME:
READ_KLGFB
PURPOSE:
to read CHIANTI files file containing the free-bound gaunt factors for n=1-6
from Karzas and Latter, 1961, ApJSS, 6, 167
CATEGORY:
science.
CALLING SEQUENCE:
READ_KLGFB,PE,GFB
INPUTS:
File: none
OUTPUTS:
PE: an array of natural log of 41 values of Photon Energy values relative to
the recombination edge i.e., at the recombination edge, PE=0.
GFB: an array containing the natural log of free-bound gaunt factors indexed
by energy, n and l
PROCEDURE: reads the file: '!xuvtop/continuum/klgfb.dat'
EXAMPLE:
> read_klgfb,pe,klgfb
the free-bound gaunt factor vs. energy for recombination to a hydrogen 2p state
(n=2 and l=1) is given by klgfb(*,n-1,l-1)
MODIFICATION HISTORY:
Written by: Ken Dere
July 2002: Version 1.0
Version 2, 8-Aug-02, GDZ
corrected a typo.
VERSION : V.2, 8-Aug-02
PROJECT: CHIANTI
CHIANTI is an atomic database package for the calculation of
continuum and emission line spectra from astrophysical plasmas. It is a
collaborative project involving the Naval Research Laboratory
(Washington DC, USA), the Arcetri Observatory (Firenze, Italy), and the
Cambridge University (United Kingdom).
NAME:
READ_MASTERLIST
PURPOSE:
read the masterlist.ions types of file and output a list of ions
CATEGORY:
science.
CALLING SEQUENCE:
READ_MASTERLIST,filename,list
INPUTS:
filename: name of the masterlist file
KEYWORD PARAMETERS:
none
OUTPUTS:
list: list of ions
COMMON BLOCKS:
none;
EXAMPLE:
> read_masterlist,'!xuvtop/masterlist.masterlist.ions',list
MODIFICATION HISTORY:
Written by: Ken Dere
December 1998: first version
PROJECT: CHIANTI
CHIANTI is an atomic database package for the calculation of
continuum and emission line spectra from astrophysical plasmas. It
is a
collaborative project involving the Naval Research Laboratory
(Washington DC, USA), the Arcetri Observatory (Firenze, Italy), and the
Cambridge University (United Kingdom).
NAME:
READ_SPLUPS
PURPOSE:
to read file containing spline fits to the Burgess-Tully scaled
collision strengths
CATEGORY:
science.
CALLING SEQUENCE:
READ_SPLUPS, File, Splstr, Splref
INPUTS:
File: the name of the input file, i.e. !xuvtop/si/si_4/si_4.splups
OUTPUTS:
SPLSTR Structure containing the data from the file. The tags are
as follows:
.lvl1 lower level index
.lvl2 upper level index
.t_type transition type
.gf gf value
.de Delta-E for transition (rydbergs)
.c_ups the scaling parameter
.nspl
.spl Vector of length 9, containing spline points
OPTIONAL OUTPUTS
SPLREF String array containing references.
KEYWORDS
PROT Allows reading of .psplups files for proton rates.
PROCEDURE:
see Burgess and Tully, 1992, Astronomy and Astrophysics, 254, 436.
EXAMPLE:
> read_splups, !xuvtop+'/si/si_4/si_4.splups',splstr,splref
PROGRAMMING NOTES
This routine is marginally quicker (20-25%) reading the .splups
files than Ken's original routine. The improvement in speed is
through minimising the lines of code in the WHILE loop.
MODIFICATION HISTORY:
Written by: Ken Dere
March 1996: Version 2.0
Ver.3, 23-Jan-01, Peter Young
completely revised. Now reads into a structure and
handles 9 point spline fits.
Ver.4, 26-Jan-01, Peter Young
speeded up routine
Ver.5, 22-Mar-01, Peter Young
now checks if file exists
PROJECT: CHIANTI
CHIANTI is an atomic database package for the calculation of
continuum and emission line spectra from astrophysical plasmas. It is a
collaborative project involving the Naval Research Laboratory
(Washington DC, USA), the Arcetri Observatory (Firenze, Italy), and the
Cambridge University (United Kingdom).
NAME:
READ_WGFA
PURPOSE:
:
CATEGORY:
science
CALLING SEQUENCE:
READ_WGFA, File, Lvl1, Lvl2, Wvl, Gf, A_value, Ref
INPUTS:
File: name of the file containing the radiative data
i.e. !xuvtop/c/c_4/c_4.wgfa
OUTPUTS:
Lvl1: 1D array of indices of the lower level (starting at 1)
Lvl2: 1D array of indices of the upper level (starting at 1)
Wvl: 2D array of transition wavelengths in Angstroms
Gf: 2D array of weighted oscillator strength gf
A_value: 2D array of radiative transition probability (s^-1)
Ref: 1D string array of references to the data in the scientific literature
EXAMPLE:
> read_wgfa,!xuvtop+'/c/c_4/c_4.wgfa',lvl1,lvl2,wvl,gf,a,ref
MODIFICATION HISTORY:
Written by: Ken Dere
March 1996: Version 2.0
v.3, 6-Mar-02, Peter Young
Changed the way the reference string is read in order to
prevent '-1' problems.
v.4, 12-Mar-02, Peter Young
Corrected bug following above change.
PROJECT: CHIANTI
CHIANTI is an atomic database package for the calculation of
continuum and emission line spectra from astrophysical plasmas. It is a
collaborative project involving the Naval Research Laboratory
(Washington DC, USA), the Arcetri Observatory (Firenze, Italy), and the
Cambridge University (United Kingdom).
NAME:
READ_WGFA2
PURPOSE:
read radiative data files
a modified version of read_wgfa
needed to take account of two types of transitions between the same 2 levels:
for example, the M1 and the 2 photon E1 transition 1s-2s in hydrogenic ions
CATEGORY:
science
CALLING SEQUENCE:
READ_WGFA2, File, Lvl1, Lvl2, Wvl, Gf, A_value, Ref
INPUTS:
File: name of the file containing the radiative data
i.e. !xuvtop/c/c_4/c_4.wgfa
OUTPUTS:
Lvl1: 1D array of indices of the lower level (starting at 1)
Lvl2: 1D array of indices of the upper level (starting at 1)
Wvl: 1D array of transition wavelengths in Angstroms
Gf: 1D array of weighted oscillator strength gf
A_value: 1D array of the total radiative transition probability (s^-1)
Ref: 1D string array of references to the data in the scientific literature
EXAMPLE:
> read_wgfa2,!xuvtop+'/c/c_4/c_4.wgfa',lvl1,lvl2,wvl,gf,a,ref
MODIFICATION HISTORY:
Written by: Ken Dere
March 1996: Version 2.0
V.3, 3-Nov-03, Giulio Del Zanna (GDZ)
Modified size of input arrays. Now the routine can read a file up to
30 000 lines.
VERSION : 3, 3-Nov-03
function rebinw rebins the input array on a new grid and returns the output array. this routine is preferred over simple INTERPOL or SPLINE because this is guaranteed to e.g., conserve energy while rebinning spectra. syntax ff=rebinw(f,x,y,/perbin,nbin=nbin,wrange=wrange) parameters f [INPUT; required] array values x [INPUT; required] absissae for F 1: if size matches that of F, assumed to be mid-bin values 2: if size is size(F)+1, assumed to be bin boundaries (i.e., all the bin-beginners and a final bin-ender) 3: if neither of the above, this is assumed to be the desired *output* grid, and the absissae of the input are assumed to span the linear range 1..N(F) * Y is ignored on input, but will be overwritten on output y [I/O] the new absissa values 1: if scalar or 1-element vector on input, assumed to be number of bins in output * linear binning if +ve, log binning if -ve 2: if >1-element vector on input, assumed to be the desired output grid of bin boundaries, with the last element defining the final bin-ending value. 3: if not defined, takes value from NBIN NOTE: F extrapolates as zeros. keywords perbin [INPUT] if set, assumes that units of F(X) are [.../bin] nbin [I/O] number of bins in output * overwritten if defined via X or Y * linear binning if +ve, log binning if -ve * default: 1 wrange [INPUT] output grid range * ignored if defined via array Y (or X -- case 3) * overrides if determined via X and CASE 1 of Y * default: [1.,500.] _extra [JUNK] here only to prevent crashing the program restrictions beware that if Y is not sorted in ascending order, on output it will be! requires external procedure FINDEX.PRO history vinay kashyap (Jan98) forced x to be required inputs (Jun98) changed call to INTERPOL to combo call to INTERPOLATE/FINDEX (VK;99Jul) corrected long-standing "feature" of NBIN being useless, changed default behavior of Y=UNDEFINED, NBIN, and X=/=F (VK; MarMM)
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
SETUP_ELEMENTS
PURPOSE: read in ionization equilibrium and abundances
not for general user use
CALLING SEQUENCE:
SETUP_ELEMENTS
INPUTS:
None
OUTPUTS: reads data into common block
COMMON BLOCKS:
common elements,abund,abund_ref,ioneq,ioneq_logt,ioneq_ref
MODIFICATION HISTORY:
Written by: Ken Dere
Feb. 2000: Version 1.0 for CHIANTI version 3
V. 2, 21-May-2002, Giulio Del Zanna (GDZ):
generalized directory concatenation to work for
Unix, Windows and VMS.
V. 3, 16-Apr-2003, Peter Young
I had to use expand_path for DIR in order for the paths to be
recognised in Windows.
VERSION : 3, 16-Apr-2003
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
SETUP_ION
PURPOSE:
Several of the CHIANTI routines require the atomic data for ions
to be read into common blocks, and so this routine performs this
task for individual ions.
Note that the inputs WVLMIN and WVLMAX merely serve to check
whether the ion has lines lying in this wavelength range. If yes,
then the common blocks are filled with the data; if no, then the
common blocks are left empty.
An important point to note is that the
wgfa and upsilon common blocks contain their data in 2-D array
form, suitable for solving the level balance equations. When
dealing with dielectronic files, there will be some transitions
which will have two A-values, one representing autoionisation
rather than radiative decay. For the level balance equations,
these two A-values need to be summed together. However, for
computing the line emissivity, one needs to only use the radiative
decay A-value. For this purpose, the routine outputs the 1-D
arrays read by READ_WGFA2 which contain the two separate A-values,
allowing other routines to pick out just the radiative decay
A-value. These outputs are listed below (LVL1, LVL2, etc.).
CALLING SEQUENCE:
SETUP_ION,Ion,Wvlmin,Wvlmax,Wvltst,Lvl1,Lvl2,Wvl1,Gf1,A_value1
INPUTS
ION String specifying ion, e.g., 'c_2'
WVLMIN Minimum wavelength of interest (angstroms). If there are
no lines with wavelengths between WVLMIN and WVLMAX, then
no data is read into the common blocks. If both WVLMIN
and WVLMAX are set to -1, then no checks are made on the
wavelengths (i.e., the common blocks will be filled).
WVLMAX Maximum wavelength of interest (angstroms). See above.
OPTIONAL INPUT
PATH Can be used to specify a different directory to !xuvtop
for the location of the data files. E.g.,
path='/data/user/chianti/o_4'
KEYWORDS
NOPROT Switches off the inclusion of proton rates.
ALL By default the routine only looks for wavelengths which
are positive when checking if they lie in the wavelength
range. By setting /ALL then negative wavelengths are also
included.
OUTPUTS:
WVLTST The number of transitions lying between WVLMIN and WVLMAX.
If WVLMIN and WVLMAX are both -1, then WVLTST will
be the total number of transitions in the .wgfa file
(including any with zero wavelength).
LVL1 Number of final level of transition (1-D array)
LVL2 Number of initial level of transition (1-D array)
WVL1 Wavelenths (in angstroms) of spectral lines formed by this
ion (1-D array)
GF1 Oscillator strength (1-D array)
A_VALUE1 Radiative transition probability (1-D array)
OPTIONAL OUTPUTS
ANYLINES Contains the indices of the elements of lvl1, lvl2, wvl1,
gf1, a_value1 arrays for which the wavelengths lie in
specified wavelength range.
EXAMPLE:
IDL> setup_ion,'c_2',1000.,1500.,wvltst,Lvl1,Lvl2,Wvl1,Gf1,A_value1
IDL> print,wvltst
17
IDL> setup_ion,'c_2',-1,-1,wvltst,Lvl1,Lvl2,Wvl1,Gf1,A_value1
IDL> print,wvltst
43
IDL> setup_ion,'c_2',-1,0,wvltst,Lvl1,Lvl2,Wvl1,Gf1,A_value1
IDL> print,wvltst
0
COMMON BLOCKS:
common elvlc,l1a,term,conf,ss,ll,jj,ecm,eryd,ecmth,erydth,eref
common wgfa, wvl,gf,a_value
common upsilon,t_type,deu,c_ups,splups
CALLS
READ_WGFA2, READ_SPLUPS, READ_ELVLC, ION2FILENAME
MODIFICATION HISTORY:
Ver.1, Sep-99, Ken Dere
Ver.2, 10-Oct-00, Peter Young
Allowed wvlmin and wvlmax to take -1 values.
Removed elements common block.
Removed for-loop.
Added PATH.
Ver.3, 12-Nov-01, Peter Young
Added proton common block and /noprot keyword
Ver.4, 11-Dec-01, Peter Young
Added keyword /all.
V.5, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
V.6, 25-Feb-2004, Enrico Landi (EL)
Added call to read_ionrec.pro to read ionization
and recombination files.
VERSION : 6, 25-Feb-2004, EL
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME: SHOW_POPS
PURPOSE:
To display populations of significant levels in a CHIANTI ion
model
CATEGORY:
Scientific analysis
EXPLANATION:
Displays percentage level populations and level IDs for all levels
in the specified ion with populations greater than 0.01%. If the
temperature is not specified, then it is taken to be where the
maximum of the ionisation fraction is.
CALLING SEQUENCE:
SHOW_POPS, IZ, ION [, POPSTR, DENS= , TEMP= , /NOPROT,
RADTEMP= , RPHOT= , /ALL, /DIEL, PATH=,
IONEQ_FILE= , ABUND_FILE= ]
EXAMPLES:
show_pops,26,13,popstr
show_pops,26,13,dens=7.5,temp=6.0,rphot=1.2
INPUTS:
IZ The atomic number of the ion
ION The spectroscopic number of the ion (e.g., 12 = XII)
OPTIONAL INPUTS:
DENS Logarithm of electron density
TEMP Logarithm of electron temperature. If not specified, then
T_max of the ion is used
RADTEMP Specify background radiation temperature (default: 6000 K)
RPHOT Distance from the centre of the star in stellar radius units.
I.e., RPHOT=1 corresponds to the star's surface. (Default is
infinity, i.e., no photoexcitation.)
PATH Directly specify the path where the ion data is contained,
e.g., path='/home/other_data/fe_13'
N_LEVELS The size of the ion model is automatically determined
from the information in the CHIANTI data files. Setting
this keyword allows the number of levels in the model to
be reduced. E.g., N_LEVELS=14 reduces the model to the
first 14 levels given in the .ELVLC file.
IONEQ_FILE To include proton rates in the level balance equations
requires the number of density of protons to be known,
and this requires an ion balance file and an abundance
file to be specified, which are done through the
IONEQ_FILE and ABUND_FILE keywords. If they are not set
then the default files specified by !ioneq_file and
!abund_file are used.
ABUND_FILE See IONEQ_FILE.
SUM_MWL_COEFFS An array of coefficients of the same length as
the array of temperatures. Electron and proton rate
coefficients will be calculated at each temperature
and then a weighted sum of the coefficients is
performed using SUM_MWL_COEFFS. This allows
non-Maxwellian energy distributions to be
incorporated into the level balance equations.
If this keyword is set for an ion that has ionization
and recombination included in the level balance, then
these processes will be switched off for the
calculation since their rates implicitly assume a
single Maxwellian to describe the ion fractions of
the neighbouring ions.
LEVEL Allows the control of which level populations are displayed
to the screen. If set to a positive scalar or array, then
only those levels are printed. If it is set to a negative
scalar (-n), then all level populations up to level n are
printed. E.g., LEVEL=20 (only level 20); LEVEL=[5,7,20]
(levels 5, 7 and 20); LEVEL=-20 (all levels up to level 20).
RADFUNC The name of a user-defined function that will generate
a radiation spectrum as a function of temperature.
This radiation field will replace the black-body that
is assumed when using the RADTEMP keyword in the call
to pop_solver.
; OPTIONAL OUTPUTS
POPSTR Send level population information to a structure. POPSTR has
the tags:
.dens Density (cm^-3)
.temp Temperature (K). Can be an array if SUM_MWL_COEFFS=
is used.
.radtemp RADTEMP. Set to -1 if RADTEMP not
set.
.rphot RPHOT value. Set to -1 if RPHOT not set.
.proton String set to 'yes' if proton rates included, 'no'
otherwise
.version CHIANTI version used to derive populations.
.date Date and time at which structure created.
.level Structure containing level information. Tags are:
.index CHIANTI level index
.term String containing level identifier.
.pop Population of level
.sumtst Set to 1 if the SUM_MWL_COEFFS keyword has been used.
Set to 0 otherwise.
.sum_mwl_coeffs Contains SUM_MWL_COEFFS. Set to -1 if sumtst=0.
KEYWORDS:
ALL Show populations for all levels.
NOPROT If set, then the default setting will be NOT to use
proton rates. This can be changed within the routine.
DIEL Use the dielectronic recombination files. E.g., for Fe XXII,
the routine will read in the fe_22d.* files instead of the
fe_22.* files.
COMMON BLOCKS:
ELVLC, WGFA, UPSILON, RADIATIVE, PROTON, ELEMENTS
CALLS:
ZION2FILENAME, POP_SOLVER, SETUP_ION, READ_IONEQ,
READ_ABUND, PROTON_DENS, CONCAT_DIR
HISTORY:
Ver 1, PRY 22-Sep-97
Ver.2, PRY 5-Sep-98 - added call to choose_ioneq
Ver.3, PRY 23-Apr-99 - calls pop_solver now; added DENS keyword
Ver.4, PRY 18-Dec-99 - added deu to upsilon common block to be
consistent with main Chianti routines.
Ver.5, PRY 7-Aug-00 - added /DIEL keyword to allow populations of
the dielectronic recombination files to be studied.
Also changed elvlc common block to match new
version of pop_solver.
Ver 6, PRY 10-Oct-00 - now calls setup_ion to read ion data
Ver 7, PRY 12-Nov-01 - modified for proton rates, photoexcitation,
and 9 pt splines.
Ver 8, PRY 9-Dec-01 - completed modifications for v4 of CHIANTI.
V. 9, 25-May-2002, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
Now we only call zion2filename
V. 10, 9-Aug-2002, Peter Young
corrected !ioneq_file problem
V. 11, 12-Aug-2002, Peter Young
added POPSTR output, and tidied up header.
V. 12, 4-Oct-2003, GDZ
modified the input to POP_SOLVER, now it is dealt with an
input structure.
V 13, 4-May-2005, Enrico Landi (EL)
Modified in order to include ionization and recombination
data in the input to POP_SOLVER
V.14, 26-May-2005, Peter Young (implemented by GDZ)
added SUM_MWL_COEFFS optional input for allowing
non-Maxwellian distributions to be considered.
added LEVEL= optional input to only print the populations of
a few levels.
V.15, 5-Jul-2005, Peter Young
added RADFUNC= and /QUIET keywords
VERSION : 15, 5-Jul-2005
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
SPECTROSCOPIC2ION
PURPOSE:
provide identification string
CATEGORY:
database.
CALLING SEQUENCE:
SPECTROSCOPIC2ION, snote, Ion, dielectronic=dielectronic
INPUTS:
snote: the spectroscopic notation for the ion, i.e. 'C II'
OPTIONAL INPUTS: none
KEYWORD PARAMETERS:
OUTPUTS:
Ion: CHIANTI notation for an ion, i.e., 'c_2' for C II
OPTIONAL OUTPUTS: dielectronic (0/1)
EXAMPLE:
> spectroscopic2ion, 'O VI d', ion,dielectronic=dielectronic
> help, ion, dielectronic
> ION STRING = 'o_6d'
> DIELECTRONIC INT = 1
WRITTEN :
Version 1, Written by: Giulio Del Zanna (GDZ) 25-May-2002
MODIFICATION HISTORY:
V.2, 12-Aug-02, GDZ
Corrected a typo concerning XXII.
VERSION : 2, 12-Aug-02
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
SUTHERLAND
PURPOSE:
Calculate the free-free continuum from an hot, low density plasma
Uses the free-free gaunt factor calculations of Sutherland, 1998,
MNRAS, 300, 321.
Note that Sutherland's Eq.(15) has units of erg/cm^3/s. Comparing
with Rybicki & Lightman's Eq.5.14(a) (in their book 'Radiative
Processes in Astrophysics'), suggests that Sutherland's units
should be erg/cm^3/s/sr/Hz. We are assuming the latter to be
correct in this routine.
When using the DEM_INT optional input, FREEFREE expects the
differential emission measure to have been derived from a product
of N_e*N_H rather than N_e*N_e. This can be important when dealing
with a regime (typically T < 10^4.5) where H and He are not fully
ionised.
CALLING SEQUENCE:
SUTHERLAND,temperature, wavelength, intensity
INPUTS:
T Temperature in degrees Kelvin, can be a 1 D array
WVL Wavelength in Angstroms
OPTIONAL INPUTS:
None
KEYWORD PARAMETERS:
NO_SETUP: If the procedure setup_elements has already been called
then the keyword /no_setup should be set to avoid
repeating this step.
MIN_ABUND: If set, calculates the continuum only from those
elements which have an abundance greater than min_abund.
This can speed up the calculations. ;
DEM_INT The intensity array is multiplied by a DEM number for
each temperature. DEM_INT needs to be of the same size
as TEMPERATURE. It is needed for the synthetic spectrum
routines.
PHOTONS The output spectrum is given in photon units rather
than ergs.
SUMT The default is to output the intensity array as an array
of size (nwvl x nT). Setting this keyword performs a sum
over the temperatures to yield a vector of same size as
the input wavelengths, thus producing the complete
free-free spectrum.
OUTPUTS:
RAD Free-free continuum intensity in units
10^-40 erg cm^3 s^-1 str^-1 angstrom^-1 per unit
emission measure [ integral (N_e N_H dh) in cm^-5 ].
If T is given as a 1-D array, then RAD will be output
as a 2-D array, with one element for each temperature
and wavelength (but also see SUMT).
PROGRAMMING NOTES
The gaunt factors from Sutherland (MNRAS 300, 321, 1998) are a
function of uu and gg (see his Eq. 14). uu is a function of both
wavelength and T, while gg is a function of T only.
The gaunt factor (gff) is tabulated for values of uu and gg at
fixed intervals in log(uu) and log(gg). The log(uu) values go from
-4 to 4 in 0.2 steps; the log(gg) values go from -4 to 4 in 0.1 steps.
A particular (input) temperature and wavelength give rise to values
uu0 and gg0, the logs of which lie between -4 and 4. To derive the
corresponding gff0 value, I use the IDL routine BILINEAR.
BILINEAR requires, not uu and gg values as input, but indices.
E.g., the indices corresponding to the tabulated values of uu are
0 (=-4.0), 1 (=-3.8), 2 (=-3.6), etc. Thus, if log(uu0)=-3.76, then
i_uu0=1.20 is the index of uu0.
In order to make significant time-savings, I give BILINEAR all of
the wavelengths and temperatures in the same call for a particular
ion. To do this, I make my i_uu and i_gg values 2-D arrays of size
(nwvl x nT), and BILINEAR then produces a (nwvl x nT) array
containing the gff values.
A problem occurred if nT=1, as BILINEAR will turn the input uu and
gg vectors into 2-D arrays of size (nwvl x nwvl). If there are a
large number of wavelengths, this uses a lot of memory. To solve
this I make a 2 element temperature vector whose values are
identical, and then change this back to a 1 element vector after
BILINEAR has been called. See the parts of the code where I use
'tst1'.
COMMON BLOCKS:
common elements,abund,abund_ref,ioneq,ioneq_t,ioneq_ref
CALLS
READ_IP, READ_GFFGU, SETUP_ELEMENTS
EXAMPLES:
IDL> freefree,1.e+6,wvl,int
IDL> freefree,1.e+6,wvl,int,min_abund=3.e-5
IDL> freefree,1.e+6,wvl,int,/no_setup,min_abund=1.e-6
IDL> wvl=findgen(5001)/10. + 50.
IDL> temp=10.^(findgen(41)/10. +4.)
IDL> freefree,temp,wvl,int
MODIFICATION HISTORY:
Written by: Ken Dere
March 1999: Version 2.0
September 1999: Version 3.0
Ver.3.1, 11-Aug-00, Peter Young
Improved call to bilinear, allowing routine to solve for
all temperatures in one go. This makes the routine quicker,
and also lowers the memory usage of the routine when dealing
with many wavelengths.
Ver.3.2, 16-Aug-00, Peter Young
Corrected expression for 'gg', replacing ip with z^2.
Ver.3.3, 16-Oct-00, Peter Young
Now deals with dem_int correctly
Ver.3.4, 10-Oct-01, Ken Dere
Corrected for labelling errors in Sutherland's gffgu.dat file
No longer reads ionization potential file
Ver.3.5, 5-Dec-01, Peter Young
Corrected expression for gamma^2
Renamed routine sutherland.pro
Restructured code to make it run quicker.
Ver.3.6, 22-May-01, Peter Young
Re-instated the MIN_ABUND optional input.
Changed ioneq_t to ioneq_logt (GDZ).
Ver.3.7, 18-Aug-03, Peter Young
Activated /PHOTONS keyword
Ver.3.8, 5-Nov-03, Peter Young
Corrected bug found by Jim McTiernan when multiple temperatures
were input. The quantity 'newfactor' was not being calculated
correctly due to indexing problems.
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
SYNTHETIC
PURPOSE:
calculates a synthetic spectrum
PROCEDURE:
Calculations are done assuming either constant density or
constant pressure. See CH_SYNTHETIC for details.
CALLING SEQUENCE:
SYNTHETIC,Wmin, Wmax, Fwhm, Pressure= , Lambda, Spectrum ,List_wvl, List_ident
,[/all, density=, /cont, min_abund=]
INPUTS:
Wmin: lower limit of the wavelength/energy range of interest (Angstroms)
Wmax: upper limit of the wavelength/energy range of interest (Angstroms)
Pressure: pressure in emitting region (cm^-3 K), or
Density: density in emitting region (cm^-3).
Fwhm: gaussian full width at half maximum of the resolution of the output
spectrum, for example, to correspond to an observed spectrum
OPTIONAL INPUTS:
SNGL_ION: specifies a single ion (e.g. SNGL_ION='Fe_10' to include
only Fe X lines) or an array (e.g. SNGL_ION=['Fe_10','Fe_11']
to include only Fe X and Fe XI lines) of ions to be used
instead of the complete set of ions specified in
!xuvtop/masterlist/masterlist.ions
MASTERLIST: string of a specific masterlist file (full path).
If defined as a keyword (i.e. MASTERLIST=1 or /MASTERLIST)
then a widget allows the user to select a user-defined
masterlist file. Shortcut for SNGL_ION.
MIN_ABUND: If set, calculates the continuum only from those elements which
have an abundance greater than min_abund.
DEM_NAME: Name of the DEM file to used. If not passed, then the user
is prompted for it.
ABUND_NAME: Name of the abundance file to use. If not passed, then
the user is prompted for it.
IONEQ_NAME: Name of the ionization equilization name to use. If not
passed, then the user is prompted for it.
RPHOT Distance from the centre of the star in stellar radius units.
I.e., RPHOT=1 corresponds to the star's surface. (Default is
infinity, i.e., no photoexcitation.)
RADTEMP The blackbody radiation field temperature (default 6000 K).
OUTPUTS:
Lambda: wavelength array of calculated synthetic spectrum
Spectrum: intensity array (erg cm^-2 s^-1 str^-1 Ang^-1),
unless keyword photons is set then output is is
photons cm^-2 s^-1 str^-1 Ang^-1
List_wvl: a list of wavelengths for use with synthetic_plot.pro
List_ident: a list of line identifications for use with
synthetic_plot.pro
OPTIONAL OUTPUTS:
KEYWORD PARAMETERS:
ALL: if set, then all lines are included. This means that lines for which
only an approximate wavelength is known (only theoretical energy
levels are known) are included.
SNGL_ION: specifies a single ion (e.g. SNGL_ION='Fe_10' to include
only Fe X lines) or an array (e.g. SNGL_ION=['Fe_10','Fe_11']
to include only Fe X and Fe XI lines) of ions to be used
instead of the complete set of ions specified in
!xuvtop/masterlist/masterlist.ions
MASTERLIST: string of a specific masterlist file (full path).
If defined as a keyword (i.e. MASTERLIST=1 or /MASTERLIST)
then a widget allows the user to select a user-defined
masterlist file. Shortcut for SNGL_ION.
CONTINUUM: if set, then the continuum (free-free, free-bound and
two-photon) are included
MIN_ABUND: If set, calculates the continuum only from those elements which
have an abundance greater than min_abund. Can speed up the
calculations. For example, from Allen (1973):
abundance (H) = 1.
abundance (He) = 0.085
abundance (C) = 3.3e-4
abundance (O) = 6.6e-4
abundance (Si) = 3.3e-5
abundance (Fe) = 3.9e-5
PHOTONS: if set, intensities are in photons cm^-2 s^-1 sr^-1 Ang^-1
DEM_NAME: Name of the DEM file to used. If not passed, then the user
is prompted for it.
ABUND_NAME: Name of the abundance file to use. If not passed, then
the user is prompted for it.
IONEQ_NAME: Name of the ionization equilization name to use. If not
passed, then the user is prompted for it.
NOPROT If set, then proton rates are not included.
RADTEMP Specify background radiation temperature (default: 6000 K)
RPHOT Distance from the centre of the star in stellar radius units.
I.e., RPHOT=1 corresponds to the star's surface. (Default is
infinity, i.e., no photoexcitation.)
CALLS:
CH_SYNTHETIC, MAKE_CHIANTI_SPEC, READ_ABUND, STRPAD
COMMON BLOCKS: None
RESTRICTIONS:
SIDE EFFECTS:
EXAMPLE:
> synthetic,100.,200.,.1, pressure=1.e+16,lambda,spectrum,list_wvl,list_ident
CATEGORY:
spectral synthesis.
WRITTEN :
Version 1, 8-Nov-01, Giulio Del Zanna (GDZ).
Rewritten as a wrapper routine using the new procedures.
Compared to the previous SYNTHETIC, these are the main changes:
1-Now the PRESSURE value is a keyword as the DENSITY value
2-The keyword CONT is now renamed CONTINUUM
3-Added keywords PHOTONS, DEM_NAME, ABUND_NAME, IONEQ_NAME
4-MASTERLIST can now be used both as an input string or as a keyword.
5-The description of the line details now has the spectroscopic
designation at the end.
MODIFICATION HISTORY:
Version 2, 18-Nov-01, Peter Young
Added /noprot, rphot and radtemp keywords.
Version 3, 11-Dec-01, Peter Young
Changed call to ch_strpad to strpad.
Version 4, 28-Apr-02, GDZ, changed the call to make_chianti_spec and the
continuum keyword.
V. 5, 22-May-2002 GDZ. Removed const_net definitions.
V.6, 14-Feb-2003 GDZ.
Fixed a bug (keyword PHOTONS was not active).
VERSION : 6, 14-Feb-2003
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
synthetic_plot
PURPOSE:
to plot out synthetic spectra calculated with Synthetic
and interactively identify spectral lines
CATEGORY:
spectroscopy
CALLING SEQUENCE:
SYNTHETIC_PLOT,Wvl,Spectrum,List_wvl,List_ident,fwhm
INPUTS:
Wvl: wavelength array from synthetic
Spectrum: spectrum intensity array from synthetic
List_wvl: string array of spectral line wavelengths
List_ident: string array of spectral line identifications
Fwhm: when the cursor is clicked, spectral lines with fwhm
(Angstroms) of the cursor are printed out
KEYWORDS
xrange: similar to IDL keyword to determine wavelength range of plot
OUTPUTS:
None
PROCEDURE:
Click the left mouse button to select a wavelength
Click the right mouse button to exit
EXAMPLE:
> synthetic,100.,200.,.1,1.e+15,wvl,spectrum,list_wvl,list_ident
> synthetic_plot,wvl,spectrum,list_wvl,list_ident,0.1
note: it is not necessary for the two fwhm values to be the same
MODIFICATION HISTORY:
Written by: Ken Dere
May 1996: Version 2.0
Dec. 1998: revised by Ken Dere
V.4, 23 Oct 2000 GDZ, added the log keyword, and changed a few things
in the plot.
Ver.5, 12-Dec-2001, Peter Young
Changed style of printing, and made method of extracting the
intensity from list_ident compatible with the new version of
isothermal.pro.
VERSION 5 12 Dec 2001 Peter Young
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
TEMPERATURE_RATIOS
PURPOSE:
calculate and display temperature sensitivity of line intensity ratios
CATEGORY:
spectral diagnostics
PROCEDURE :
The intensities (Population of the upper level * A) of the lines within
the selected ion are first calculated, either at constant pressure or
at constant density (however specified in the input). They are plotted
in window 0. The intensities relative to the brightest reference line
are then plotted in window 1. A widget allows the user to select a
number of lines (at least one!) for the numerator of the ratio, and a
number of lines for the denominator. In case of multiple selections, the
line intensities are summed. The ratio values are plotted in window 2, and
optionally also saved in a text file. A postscript file can also be
created. The ratio values, calculated at twice and half the prescribed
density are also calculated and overplotted, to show how the
temperature ratio also depends on the density.
CALLING SEQUENCE:
> temperature_ratios,ion,wmin,wmax,Log10(tempmin),Log10(tempmax),temperature,ratio,description,$
[pressure= ,density= , psfile= , outfile= ]
EXAMPLE:
> temperature_ratios,'c_4',100.,1600.,4.,6.,temp,ratio,desc,density=1.e+10,$
psfile='test.ps', outfile='test.txt'
then select the ratio of (384.17 + 384.19) to 1550.772
INPUTS:
Ion: the CHIANTI style name of the ion, i.e., 'c_5' for C V
Wmin: minimum wavelength limit in Angstroms
Wmax: maximum wavelength limit in Angstroms
Tempmin: log10 of lowest temperature of interest, i.e. 4 for 10.^4 K
Tempmax: log10 of highest temperature of interest
OPTIONAL INPUTS:
Must specify indices of lines which are to form the ratio
RADTEMP The blackbody radiation field temperature (default
6000 K).
RPHOT Distance from the centre of the star in stellar radius
units. I.e., RPHOT=1 corresponds to the star's surface.
(Default is infinity, i.e., no photoexcitation.)
ABUND_FILE The name of a CHIANTI abundance file. This is used for
calculating the proton to electron ratio. Default is
!abund_file.
IONEQ_FILE The name of a CHIANTI ion balance file. This is used for
calculating the proton to electron ratio and evaluating
the T_max of the ion. Default is !ioneq_file.
OUTPUTS:
Temperature: an array of temperatures spanning Tempmin to Tempmax
Ratio: an array of the intensity ratio of the selected lines
Desc: a short string description of the selected line ratio
OPTIONAL OUTPUTS:
Ps and/or text file with the intensity ratio.
KEYWORD PARAMETERS:
DENSITY: calculates the intensity ratios for constant density.
If neither density or pressure are specified, a constant
density of 1.e+10 cm^-3 is assumed as default.
OUTFILE: the (optional) name of the output ascii file where a
listing of the line ratio intensities as a function of
temperature is saved.
PSFILE: the (optional) name of the output postscript file
where a plot of the chosen temperature sensitive line
ratio is saved.
NOPROT Switches off inclusion of proton rates.
VERBOSE prints out information
CALLS:
read_ioneq, convertname, ion2spectroscopic,ion2filename,
ch_xmenu_sel, emiss_calc
COMMON:
elvlc,l1a,term,conf,ss,ll,jj,ecm,eryd,ecmth,erydth,eref
wgfa, wvl,gf,a_value
upsilon,t_type,deu,c_ups,splups
proton, pstr, pe_ratio
radiative, radt, dilute
RESTRICTIONS:
SIDE EFFECTS: None known yet.
MODIFICATION HISTORY:
Written by: Ken Dere
May 1996: Version 2.0, Ken Dere
April 2000: V. 3 Ken Dere modified for V3
14-Jul-2000 V. 4 Peter Young, now calls pop_solver
2-Oct-2000 V. 5 Giulio Del Zanna, corrected an error in the
creation of the string list of the lines in the ratio.
Also corrected a few minor errors.
Removed the device,window_state call, and added a few
other 'cosmetic' adjustments.
Version 6, 21-Dec-2000, William Thompson
Modified for better cross-platform capability.
Ver.7, 6-Dec-2001, Peter Young
Revised to call emiss_calc for the emissivities.
V.8, 21-May-2002, GDZ
generalized directory concatenation to work for
Unix, Windows and VMS.
V.9, 1-Aug-02 GDZ
Fixed label mistake, and changed all the formats.
V.10, 06-Aug-02 GDZ
Changed the use of CHIANTI system variables.
V.11, 15-Aug-02, GDZ
Major revision:
-Added the keyword VERBOSE, to avoid printing out long lists of lines.
-Removed the call to ch_xselect_s, that did not work for long lists.
-Added a '*' in the line lists, to identify 'unobserved' lines.
-Replaced the commands to create PS file, to make it
cross-platform compatible.
-Added a large number of cosmetics, mainly lables to the axes and
titles, that were missing.
-Removed plotting in windows already present.
-Removed the pressure keyword.
-Added the CHIANTI version number in the outputs.
V.12, 3-Nov-03 GDZ
Modified format e8.2 to e9.2 for Windows compatibility.
VERSION : 12, 3-Nov-03
PROJECT
CHIANTI http://wwwsolar.nrl.navy.mil/chianti.html
CHIANTI is an atomic database package for the calculation of
continuum and emission line spectra from astrophysical plasmas. It is a
collaborative project involving the Naval Research Laboratory
(Washington DC, USA), the Arcetri Observatory (Firenze, Italy), and the
Cambridge University (United Kingdom).
NAME
temp_plotter
PURPOSE:
A widget-based routine to allow the analysis of temperature sensitive
ratios. **** See RATIO_PLOTTER for details. *****
CALLING SEQUENCE:
IDL> temp_plotter, name,$
EM, PATH=PATH, NOPROT=NOPROT, $
IONEQ_FILE=IONEQ_FILE, ABUND_FILE=ABUND_FILE
INPUTS:
The ion name (e.g. 'si_3' for Si III)
OPTIONAL INPUTS : none
OUTPUTS:
OPTIONAL OUTPUTS:
EM: Save the displayed emissivities to structure EM.
**** See RATIO_PLOTTER for details. *****
KEYWORDS:
PATH: Data in the CHIANTI format that is not in the CHIANTI
database can be read by specifying the directory in which
it lies through PATH.
ABUND_FILE The name of a CHIANTI abundance file. This is used for
calculating the proton to electron ratio. Default is
!abund_file.
IONEQ_FILE The name of a CHIANTI ion balance file. This is used for
calculating the proton to electron ratio and evaluating
the T_max of the ion. Default is !ioneq_file.
NOPROT If set, then the default setting will be NOT to use
proton rates. This can be changed within the routine.
CALLS: CONVERTNAME RATIO_PLOTTER
COMMON BLOCKS: none
RESTRICTIONS:
SIDE EFFECTS:
CATEGORY:
spectral synthesis.
EXAMPLE:
IDL> temp_plotter, 'fe_13'
WRITTEN :
Ver.1, 18-Apr-2002, Giulio Del Zanna (GDZ) written as a wrapper
routine to call RATIO_PLOTTER (written by P. Young).
MODIFIED: V.2, 2-Aug-2005, GDZ
Now the routine handles the dielectronic case
VERSION : 2, 2-Aug-2005
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
TWO_PHOTON
PURPOSE:
Calculate the 2 photon continuum from a hot, low density plasma.
For the hydrogen isoelectronic sequence, A values
Parpia, F. A., and Johnson, W. R., 1982, Phys. Rev. A, 26, 1142.
and distribution function as a function of Z is taken from:
Goldman, S.P. and Drake, G.W.F., 1981, Phys Rev A, 24, 183
For the helium isoelectronic sequence, A values are from:
Drake, G.W.F., 1986, Phys. Rev. A, 34, 2871
and the distribution function as a function of Z is taken from:
Drake, G.W.F., Victor, G.A., Dalgarno, A., 1969, Phys.
Rev. A, 180, 25.
in this paper the distribution is only given up to Z=10 but
extrapolation to higher Z appears to be OK.
Note that, unlike the freefree and freebound routines, two_photon
requies the electron density to be specified. This is because there
is a call to pop_solver
CALLING SEQUENCE:
TWO_PHOTON,temperature, density, wavelength, intensity
INPUTS:
TEMPERATURE Temperature in degrees Kelvin, can be a 1D array
WAVELENGTH Wavelengths in Angstroms.
OPTIONAL INPUTS:
DENSITY Electron density in cm^-3, can also be a 1D array
of the same size as Temperature. If there are several
temperatures specified but only one density, then
density is assumed the same at all temperatures.
If not specified, then default densities of 10^10
electrons/cm^3 are assumed.
DEM_INT An array of same length as TEMP which contains the
differential emission measure values at each temperature.
The emissivity at each temperature is multiplied by the
DEM value and the d(logT) value.
KEYWORD PARAMETERS:
NO_SETUP: If the procedure setup_elements has already been called
then the keyword /no_setup should be set to avoid
repeating this step
MIN_ABUND: If set, calculates the continuum only from those
elements which have an abundance greater than min_abund.
Can speed up the
calculations. For example:
abundance (H) = 1.
abundance (He) = 0.085
abundance (C) = 3.3e-4
abundance (Si) = 3.3e-5
abundance (Fe) = 3.9e-5
SUMT If several temperatures have been specified, then /sumt
will sum the emissivities over the different
temperatures, giving an output INTENSITY that has the
same size as WAVELENGTH.
PHOTONS If set the continuum emissivity is output in photon
units rather than erg units.
VERBOSE
OUTPUTS:
RAD 2 photon continuum intensity in units of
10^-40 erg cm^3/s/sr/Angstrom per unit emission measure
( integral(N_H N_e dh) in cm^-5) if a DEM is not defined.
If DEM values are defined, it is assumed that they are given
as N_H N_e dh/dT. The units are
10^-40 erg/cm^2/s/sr/Angstrom
If T is given as a 1-D array, then the output will be a 2-D array,
with one element for each temperature and wavelength
(but also see SUMT).
CALLS
POP_SOLVER, SETUP_ION, SETUP_ELEMENTS, READ_MASTERLIST,
CONVERTNAME
COMMON BLOCKS:
ELEMENTS, ELVLC, WGFA, UPSILON, PROTON
EXAMPLE:
> two_photon,1.e+6,3.e+10,wvl,int
> two_photon,1.e+6,3.e+10,wvl,int,min_abund=3.e-5
> two_photon,1.e+6,3.e+10,wvl,int,/no_setup
PROGRAMMING NOTES
For He 2-photon decays, the distribution function is from Table II
of Drake et al. (1969), except that the values have been divided by
the A-value from Drake (1986).
MODIFICATION HISTORY:
Written by: Ken Dere
February 2001: Version 1.0
Ver.2, 19-Dec-2001, Peter Young
Now allows an array of temperatures.
Added /SUMT keyword.
Added DEM_INT= optional input.
Switched to using spl_init & spl_interp for the spline fits.
Corrected a small bug.
Ver.3, 20-Dec-2001, Peter Young
Corrected a bug related to density indices.
Ver.4, 23-Apr-2002, Peter Young
Added /photons keyword.
Ver.5, 28-May-2002, Peter Young
Corrected way in which DEM_INT is handled.
V. 6, 28-May-2002, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS.
Corrected the description of the units and various
inaccuracies in the header.
V.7, 14-Aug-02, GDZ
Added keyword VERBOSE
V.8, 4-Oct-2003, GDZ
modified the input to POP_SOLVER, now it is dealt with an
input structure.
V.9, 8-Jun-2004, EL
modified the input to POP_SOLVER, now it includes ion/rec
V.10, 5-Jul-2005
corrected problems with the input structure for pop_solver
v.11 29-Jul-2005, GDZ
fixed bug, only define ioneq_ionrec when files are
there (it was failing with neutrals)
VERSION : 11 29-Jul-2005
Project : CHIANTI
CHIANTI is an atomic database package for the calculation of
continuum and emission line spectra from astrophysical plasmas. It is a
collaborative project involving the Naval Research Laboratory
(Washington DC, USA), the Arcetri Observatory (Firenze, Italy), and the
Cambridge University (United Kingdom).
Name : USE_CHIANTI
Purpose : Sets up system variables for use of CHIANTI routines
Explanation : The CHIANTI software uses system variables
that have to be defined. This routine is called by the
CHIANTI routines if these system variables are not defined.
** If one is using the solar-soft package, these should
already be defined*****.
** If the CHIANTI package is used as stand-alone, then
this routine can be used for the setup with e.g.:
use_chianti,'/home/data/chianti/'
if /home/data/chianti/ points to the actual place where
the CHIANTI top directory is.
Use : IDL> use_chianti, '/home/data/chianti/', $
[ioneq= , abund=]
Inputs : None
Opt. Inputs : The full pathname of the CHIANTI top directory.
Outputs : None
Opt. Outputs: None
Keywords : IONEQ - to define the default ionization eq. file to be used.
ABUND - to define the default abundance file to be used.
Calls : None
Common : None
Restrictions: None
Side effects: None
Category :
Prev. Hist. : Based on use_dere_chianti, written by C D Pike, RAL
Written : Giulio Del Zanna (GDZ) DAMTP (University of Cambridge, UK)
Modified : Version 1, GDZ 10-Oct-2000
Version 2, GDZ 10-Jan-2001
added the definition of the !abund_file
V. 3, GDZ, 2-May-2002 Modified substantially, adding a new
system variable.
V.4, 10-July-2002 GDZ
Removed the definition of !chianti_top, upon request.
V.5, 25-July-2002, GDZ
Fixed a problem with IDL versions earlier than 5.3 (the routine
would not compile). ALso, introduced the use of concat_dir for
cross-platform compatibility.
V.6, 06-Aug-02 GDZ
Changed the use of CHIANTI system variables. Added comments on
the which CHIANTI version is used.
V.7 12-Aug-02 GDZ Changed default abundance file. Removed '***'
V.8, GDZ 13-Feb-2003
Changed default ioneq file, to include ALL the elements.
V.9, 12-Aug-2005, GDZ
Changed default ioneq file from mazzotta_etal_ext to
mazzotta_etal_9.ioneq where ion fractions have been extended
up to 10^9 K. This is useful to avoid steps in the
emissivities at high-temperatures.
Version : V.9, 12-Aug-2005
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME
VERNER_XS()
EXPLANATION
Reads the Verner & Yakovlev (A&AS 109, 125, 1995) photoionization
cross-section data and generates the values of the cross-section at
the wavelengths WVL
INPUTS
IZ Atomic number of ion (e.g., 26 = Fe)
ION Spectroscopic number of ion (e.g., 13 = XIII)
WVL Wavelengths (in angstroms) for which cross-sections are
required (1-D array).
OPTIONAL INPUTS
DATA By default VERNER_XS reads the Verner & Yakovlev data file when
it is called. Through the DATA keyword the data array can be
sent to VERNER_XS instead.
OUTPUT
The photoionization cross-section for the ionization of the outer
electron in units of mega-barns (Mb = 10^-18 cm^2) at the input
wavelengths. E.g., for Fe XIII (ground configuration
1s2.2s2.2p6.3s2.3p2) it is the cross-section for the removal of the
3p electron.
HISTORY
Ver.1, 24-Jul-2002, Peter Young
NAME
W2R()
EXPLANATION
Converts a dilution factor into a distance above a star.
INPUTS
W Radiation dilution factor.
OUTPUT
Distance from star -- a number greater than 1.
HISTORY
Ver.1, 7-Dec-2001, Peter Young
CONTACT
Peter Young, CfA, pyoung@cfa.harvard.edu
NAME
WHICH_LINE
PROJECT
CHIANTI
PURPOSE:
Upon given an ion name and wavelength, this routine prints out a list
of possible line IDs for the wavelength. Wavelengths within 1% of the
input wavelength are searched for.
INPUTS
IONNAME Name of an ion in the CHIANTI format. E.g., 'fe_13' for Fe XIII.
WVL A wavelength in angstroms.
OUTPUTS (to screen)
Prints a list of atomic transitions and wavelengths for lines close to
the input wavelength. A '*' is placed next to the closest wavelength
match.
KEYWORDS
NARROW Narrows the search range to 0.02% of the specified wavelength.
EXAMPLE
IDL> which_line,'o_6',1032
Wavelength i j Lower level Upper level A-value
1037.615 1 2 1s2.2s 2S1/2 - 1s2.2p 2P1/2 4.21e+008
1031.914 1 3 1s2.2s 2S1/2 - 1s2.2p 2P3/2 4.28e+008
CALLS
CONVERTNAME, ZION2FILENAME, READ_WGFA2, READ_ELVLC
HISTORY
Ver.1, 22-Jun-2004, Peter Young
PROJECT: CHIANTI
CHIANTI is an atomic database package for the calculation of
continuum and emission line spectra from astrophysical plasmas. It is a
collaborative project involving the Naval Research Laboratory
(Washington DC, USA), the Arcetri Observatory (Firenze, Italy), and the
Cambridge University (United Kingdom).
NAME:
Z2ELEMENT
PURPOSE:
provide identification strings
CATEGORY:
database.
CALLING SEQUENCE:
Z2ELEMENT, Iz, Name
INPUTS:
Iz: nuclear charge of ion of interest, i.e. 26 for Fe
OUTPUTS:
Name: a string identifying the element
EXAMPLE:
> z2element,2,name
> print,name
> He
MODIFICATION HISTORY:
Written by: Ken Dere
March 1996: Version 2.0
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
ZION2FILENAME
PURPOSE:
help locate CHIANTI database files
CATEGORY:
database.
CALLING SEQUENCE:
ZION2FILENAME, Iz, Ion, Filename
INPUTS:
Iz: nuclear charge of ion of interest, i.e. 26 for Fe
Ion: charge state of ion of interest, i.e. 2 for Fe II
KEYWORDS:
diel: set if excitation of this ion is by dielectronic
recombination
OUTPUTS:
Filename: the complete filename and path specification for generic
CHIANTI database file, i.e. '.elvlc' suffix is not included
RESTRICTIONS:
!xuvtop must be set
EXAMPLE:
> zion2filename,26,2,filename
> print,filename
> /data1/xuv/fe/fe_2/fe_2 assuming !xuvtop = '/data1/xuv'
MODIFICATION HISTORY:
Written by: Ken Dere
March 1996: Version 2.0
Sept 1996: Modified for use with VMS
December 1998: Modified to diel keyword
V.5, 29-May-2002, Giulio Del Zanna (GDZ)
generalized directory concatenation to work for
Unix, Windows and VMS. Added keyword name to output just
the name of the file and changed the dielectronic keyword.
VERSION : 5, 29-May-2002
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics of
Astrophysical Plasmas. It is a collaborative project involving the Naval
Research Laboratory (USA), the University of Florence (Italy), the
University of Cambridge and the Rutherford Appleton Laboratory (UK).
NAME:
ZION2SPECTROSCOPIC
PURPOSE:
provide identification strings
CATEGORY:
database.
CALLING SEQUENCE:
ZION2SPECTROSCOPIC, Iz, Ion, Name
INPUTS:
Iz: nuclear charge of ion of interest, i.e. 26 for Fe
Ion: charge state of ion of interest, i.e. 2 for Fe II
OUTPUTS:
Name: the spectroscopic notation for the ion, i.e. 'Fe II'
EXAMPLE:
> zion2spectroscopic,26,2,name
> print,name
> Fe II
WRITTEN : Ken Dere
MODIFICATION HISTORY:
March 1996: Version 2.0
V.3, 25-May-2002, Giulio Del Zanna (GDZ)
added the DIELECTRONIC keyword.
VERSION : 3, 25-May-2002
NAME:
CHIANTI_FONT
PURPOSE:
Generates standard fonts for CHIANTI GUIs suitable for both Unix and
Windows operating systems.
CATEGORY:
Widgets, fonts
CALLING SEQUENCE:
CHIANTI_FONT, FONT [, /BIG, /FIXED ]
INPUTS:
None.
OPTIONAL INPUTS:
None.
KEYWORD PARAMETERS:
BIG Output a descriptor for a large font.
FIXED Output a descriptor for a fixed-width font.
OUTPUTS:
FONT A descriptor for a font suitable for passing to IDL widget
routines.
OPTIONAL OUTPUTS:
None.
COMMON BLOCKS:
None.
SIDE EFFECTS:
None.
RESTRICTIONS:
Has not been tried with a MAC OS.
PROCEDURE:
CHIANTI_FONT, FONT [, /BIG, /FIXED ]
EXAMPLE:
IDL> chianti_font,font
IDL> print,font
Arial*bold*16
MODIFICATION HISTORY:
Ver.1, 6-Aug-2003, Peter Young
PROJECT: CHIANTI
CHIANTI is an Atomic Database Package for Spectroscopic Diagnostics
of Astrophysical Plasmas. It is a collaborative project involving
the Naval Research Laboratory (USA), the University of Florence
(Italy), the University of Cambridge and the Rutherford Appleton
Laboratory (UK).
NAME:
FB_RAD_LOSS
PURPOSE:
Calculate the total radiative losses of a plasma due to the
free-bound (radiative recombination) continuum.
EXPLANATION
This routine does not use the same method of calculating the ion
continuum emissivities as the FREEBOUND routine. This is because a
modified version of FREEBOUND would be very slow for this purpose.
Instead, we use the method of Mewe et al. (A&AS 65, 511, 1986) which
is outlined in their Sect.2.2. The integration over the quantity
P_c(lambda,T) is very simple as the gaunt factor, G_c, has no
intrinsic lambda dependence other than through the limits.
Comparisons between the wavelength-resolved continuum emission
derived from the Mewe et al. method with the more sophisticated
method employed in FREEBOUND show excellent agreement with at most
10% differences at specific wavelengths.
CALLING SEQUENCE:
fb_rad_loss, temp, int, min_abund=min_abund, /no_setup
OUTPUTS
TEMP Temperatures (K). These are the temperatures at which the
ion fractions are defined (typically 10^4 to 10^8 in 0.1
dex intervals).
INT The emissivity in units of erg cm^3 s^-1.
OPTIONAL INPUTS:
MIN_ABUND Exclude elements whose abundances are less than MIN_ABUND.
(Note that Ab(H)=1.)
KEYWORD PARAMETERS:
NO_SETUP If the procedure setup_elements has already been called
then the keyword /nosetup should be set to avoid
repeating this step
PROGRAMMING NOTES
This routine computes the free-bound gaunt factor following the
prescription set out in Sect.2.2 of Mewe et al. (1986). The
expression for f_2 (Eq. 16 of Mewe et al.) contains several
quantities that need to be computed. Zeta_0 is computed internally
by the function ZETA_0 through a prescription evident from browsing
Table I of Mewe et al. Z_0 is computed from the ionization potential
of the recombined ion which is contained in the .ip file within the
database. The quantity n_0 (also used in deriving Z_0) is derived
using the routine CONF2N which extracts the highest n value from
the configuration description of the ground term of each ion.
The quantity Z is just the charge on the recombined ion; E_0 is the
ionization potential of the recombined ion, while E_n_0+1 is derived
from Mewe's Eq.7 with the prescription that z_n=Z and n=n_0+1.
The ions that are considered for the continuum are those for which
.fblvl files exist.
COMMON BLOCKS:
common elements,abund,abund_ref,ioneq,ioneq_t,ioneq_ref
INTERNAL FUNCTIONS
ZETA_0
CALLS
READ_IP, ZION2FILENAME, SETUP_ELEMENTS, FILE_EXIST,
READ_FBLVL, CONCAT_DIR, GET_IEQ
EXAMPLES
IDL> fb_rad_loss,temp,int
IDL> plot,temp,int,/xlog,/ylog
MODIFICATION HISTORY:
Ver.1, 1-Aug-2002, Peter Young
Completely new version of fb_rad_loss. Incorporates code from
a version of freebound not available in CHIANTI.
V 2, 25-May-2005, GDZ
corrected routine header.
VERSION: 2, 25-May-2005