Instituto Astronômico e Geofísico, Universidade de São Paulo, Av. Miguel Stéfano, 4200, 04301-904 São Paulo SP, Brazil

E-mail: ignacioalex@yahoo.com

E-mail: viegas@iagusp.usp.br

**Abstract:**
We describe a Fortran 90 program to calculate population ratios of
atomic levels.
The program solves the equations of statistical equilibrium considering
all possible
bound-bound processes: spontaneous, collisional or radiation induced
(the later either
directly or by fluorescence). There is no limit on the number of levels
or in the number
of processes that may be taken into account. The program may find a wide
range of
applicability in astronomical problems, such as interpreting
fine-structure absorption lines
or collisionally excited emission lines (such as coronal emission lines)
in the spectra
of several objects, and also in calculating the cooling rates due to
collisional excitation.

PACS: 95.30.Dr; 98.38.Bn; 98.58.Bz

*Key words:*

Level populations, statistical equilibrium equations, fine structure lines,
collisionally excited lines, coronal lines, cooling rates.

**PROGRAM SUMMARY**

*Title of program:* PopRatio

*Catalogue identifier:*

*Program obtainable from:*
http://www.iagusp.usp.br/~alexsilv/popratio

*Computer for which the program is designed and others on which it
has been tested:*

*Computer:* Intel Pentium Pro 200 MHz PC

*Installation:* Instituto Astronômico e Geofísico,
Universidade de São Paulo.

*Operating system under which the program has been tested:* DOS,
Windows 95.

*Programming language used:* Fortran 90.

*Memory required to execute with typical data:*

2,055 kbytes

*No. of bits in a word:* 32

*No. of processors used:* One

*Has the code been vectorised or parallelized?:* No

*No. of bytes in distributed program, including test data, etc.:*

981 058

*Distribution format:*

*Keywords:*

Level populations, statistical equilibrium equations, fine structure lines,
collisionally excited lines, coronal lines, cooling rates.

*Nature of physical problem:*

The purpose of this program it to calculate population ratios of atomic levels.
The excited level population ratios may be used to infer the physical
conditions from
observed fine-structure absorption lines or collisionally excited
emission lines
(such as coronal emission lines). Another possible use
is in calculating cooling rates due to collisional excitation of
low-lying levels.

*Method of Solution:*

The necessary atomic data is read from a separate input file. Next, the
rates for all
the bound-bound processes involved are evaluated and the system of
equilibrium equations is
solved. Several processes may be taken into account: spontaneous,
collisions with an arbitrary
number of particles, excitation or stimulated emission induced by
radiation fields
(either directly or by fluorescence). Built in radiation fields provided
are: a black body (such as the cosmic microwave background radiation),
the UV radiation
field of the Galaxy, the UV background of all QSOs and the hot halo
model radiation field.
Moreover, an arbitrary user-defined radiation field may also be included.

*Restrictions on the complexity of the problem:*

None. The code can handle an arbitrary number of processes and levels.
The required memory is dynamically allocated in run time.

*Typical running time:*

The following table gives the running times (in seconds) of the
testcases provided
in section 4:

System library | Distributed libraries | |

testcase #1 | 0.06 | 0.06 |

testcase #2 | 0.06 | 0.10 |

testcase #3 | 0.06 | 0.06 |

testcase #4 | 0.05 | 0.07 |

testcase #5 | 0.12 | 0.14 |

The listed values correspond to averages over 10 executions on a PC Pentium Pro 200 MHz. The column labelled "System library" gives the running times in case the routines from the MSIMSL library are used. The figures given in the next column correspond to the distributed version of PopRatio, that includes routines from the BLAS, LAPACK and PPPACK libraries. The testcases were run using unoptimized BLAS routines.

**LONG WRITE-UP**

**Table of Contents**

- INTRODUCTION
- METHOD OF SOLUTION
- The equations of statistical equilibrium
- Fluorescence
- Solving the system of statistical equilibrium equations

- THE PACKAGE POPRATIO
- The structure of PopRatio
- PRECISION
- PHYSMATH
- FIELDINTENSITIES
- POPRATIO
- Other packages used by PopRatio

- The atomic data input file
- Installing and running PopRatio
- Setting the accuracy of floating point operations
- Setting the radiation field
- Writing the main program

- The structure of PopRatio
- APPLICATIONS AND EXAMPLES OF USING
POPRATIO
- Testcase #1
- Testcase #2
- Testcase #3
- Testcase #4
- Testcase #5

- CONCLUDING REMARKS
- REFERENCES