This page was created by the IDL library routine
`mk_html_help`

. For more information on
this routine, refer to the IDL Online Help Navigator
or type:

? mk_html_help

at the IDL command line prompt.

**Last modified: **Tue Jan 4 12:52:37 2011.

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. Ver.3, 1-Feb-2006, Peter Young Corrected error: sum of populations is now renormalized to 1. Ver.4, 12-Jun-2009, Enrico Landi Changed the temperature array for ion fractions, now taken from the IONREC variable Ver.5, 6-Jul-2009, Enrico Landi Corrected error in the definition of total_rate Ver.6, 30-Oct-2009, Enrico Landi Corrected error in the calculation of the correction factor

**(See level_population/correct_pops.pro)**

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 Ver.2, 10-Mar-2006, Peter Young commented out warning message about status as the level populations are still accurate to < 0.001% when this occurs and so it's not neccessary to warn users.

**(See level_population/matrix_solver.pro)**

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. V 12, 12-Jun-2009, Enrico Landi Changed the definition of the temperature array for ion fractions in the IONREC variable, now taken directly from the output of READ_IONEQ.PRO VERSION : 12, 12-Jun-2009

**(See level_population/plot_populations.pro)**

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

**(See level_population/pop_plot.pro)**

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 Ver.7, 12-Jun-2009, Enrico Landi Changed the definition of the temperature array for ion fractions in the IONREC variable, now taken directly from the output of READ_IONEQ.PRO

**(See level_population/pop_processes.pro)**

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. V. 21 1-Aug-2006, Enrico Landi Changed the way recombination is handled for the He-like ions. Collision rates are redefined including recombination rates (plus cascades) for the levels for which they are available, scaled by the ratio of the abundances of the recombining and recombined ion. VERSION : 21, 1-Aug-2006

**(See level_population/pop_solver.pro)**

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. If the keyword /ALL is set, the output populations are relative values and not percentages. All levels are shown. 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. the output populations are relative values and not percentages. 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 V.16, 14-Sept-2005 Giulio Del Zanna modified header. v.17, 12-Dec-2005, Peter Young routine now performs check on existence of .splups file instead of .elvlc since with v.5 some ions have a .elvlc file but nothing else (fe_3, fe_4) v.18, 12-Jun-2009, Enrico Landi Changed the definition of the temperature array for ion fractions in the IONREC variable, now taken directly from the output of READ_IONEQ.PRO VERSION : 18, 12-Jun-2009

**(See level_population/show_pops.pro)**