PopRatio: a program to calculate atomic level populations in astrophysical plasmas. A.I. Silva, S.M. Viegas.

PROGRAM SUMMARY
Title of program: PopRatio
Catalogue identifier: ADNZ
Ref. in CPC: 136(2001)319
Distribution format: tar gzip file
Operating system: DOS, Windows 95
High speed store required: 2K words
Number of bits in a word: 32
Number of lines in distributed program, including test data, etc: 37953
Keywords: Level populations, Statistical equilibrium equations, Fine structure lines, Collisionally excited lines, Coronal lines, Cooling rates, Astrophysics, Interstellar medium.
Programming language used: Fortran
Computer: Intel Pentium Pro 200MHz, PC .

Nature of physical problem:
The purpose of this program is 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:
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 labeled "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.