# ADAS Subroutine Library adas2xx

- Subroutine adwlpol: Evaluates lam-pole radial matrix elements using distorted waves
- Subroutine adwrd2: Calculates square of bound free dipole integral in distorted wave approximation.
- Subroutine agiidw: Calculates bound-free g-factors using distorted waves, Burgess-Seaton Peach or hydrogenic approximations
- Subroutine aphotdw: Calculate photo integrals using giidw bound-free Gaunt-factors
- Subroutine ass: Calculates asymptotic integrals using power series modules
- Subroutine ass2: Calculate asymptotic part of integrals over wave functions
- Subroutine b1data: To fetch data from input specific z excitation file. (electron impact transitions only).
- Subroutine b1rate: To calculate the excitation and de-exciatation rate coeffi- cients for a set of input temperature(kelvin)/ gamma pairs.
- Subroutine b1spln: 1) performs cubic spline on log(temperature) versus log(gamma) input data. (`scef' versus `gamma' , nv data pairs)
- Subroutine b1tran: To set up selected transition parameters.
- Subroutine b2gspc: Subroutine to generate precursors of spline coefficients suitable for both forward and backward interpolation
- Subroutine b2nfas: Subroutine to provide a spline interpolate making use of specified asymptotic behaviour
- Subroutine b2nfit: Subroutine to perform spline interpolation
- Subroutine b2ngas: Subroutine initialises common arrays required for splining with smooth fitting to an asymptotic form
- Subroutine b2sort: To sort an array so that xa is in increasing order
- Subroutine b2spij3: Subroutine to calculate splines with various end conditions.
- Subroutine b3data: To fetch data from input general z excitation file. (electron impact transitions only).
- Subroutine b3leve: To evaluate ionisation and level energies for a selected member of an isoelectronic sequence from the general z data
- Subroutine b3reac: To interpolate data for a single transition from a general z excitation file to a selected sequence member
- Subroutine b4datd: Process dielectronic data files to prepare dielectronic and auger data for ADAS204
- Subroutine b4flnm: To prepare a unix dataset name from a string which may include an ADAS environment variable and comments.
- Subroutine b4matv: Matrix inversion with accompanying solution of linear equations
- Subroutine b4proj: Subroutine to establish the projected influence of high n-shells in the bundle-n collisional dielectronic model on low n-shells
- Subroutine b4spln: Performs cubic spline on log(temperature <ev> ) versus log(scaled ionization rate coefficients). input data for a given ionzing ion combination data-block.
- Subroutine b4sszd: To extract and interpolate zero-density ionization rate- coefficients for given element nuclear charge and data-block for an input set of electron temperatures (ev).
- Subroutine b4sumd: To sum Badnell dielectronic rate coefficient data over the representative set to give zero density total and radiated power from satellite lines
- Subroutine b5wr12: To output metastable population parameters to the passing file on stream `iunit'.
- Subroutine b6ispc: To identify in the ordinary level index the index for the upper level of the specific line power transition requested.
- Subroutine b6loss: To calculate the direct line power loss for each level and for the specific line power transition given by `istrn'.
- Subroutine b6lpwr: To calculate zero density and high n projection line powers, for a given temperature.
- Subroutine b6norm: To normalise total/specific line powers for level 1 and total equilibrium line powers to stage total population.
- Subroutine b6spcl: To calculate specific line powers for metastables and specific equilibrium line power.
- Subroutine b6totl: To calculate total line powers for metastables and total equilibrium line powers.
- Subroutine b6wr12: To output total line power parameters to the passing file on stream `iunit'.
- Subroutine b6wr13: To output specific line power parameters to the passing file on stream `iunit'.
- Subroutine b7data: To input data from a contour passing file. Population data for diagnostic use.
- Subroutine b7datc: Check consistency of adf04 file with contour passing file data.
- Subroutine b7lrat: To calculate the spectrum-line intensity ratio for two composite lines from their individual spectrum line intensities.
- Subroutine b8corp: Corrects unphysical low temperature recombination contributions to a pec.
- Subroutine b8corr: Corrects unphysical low temperature recombination contributions to a pec.
- Subroutine b8cors: There is a low temperature problem in the calculation of the sxb coefficients. Replace the effetive zero values with an exp(e/kt) derived from first good points.
- Subroutine b8data: To fetch data from input copase data set, including multiple parents on free-electron and charge exchange on recombination, inclusion of explicit contributions by ionisation.
- Subroutine b8getp: To fetch data from expansion file and condensed bundle-n matrix file and combine with collisional-radiative data for in the low level population solution.
- Subroutine b8loss: To calculate the direct line power loss for each level and identify the strongest specific line power transitions to each metastable level.
- Subroutine b8mcca: To construct whole rate matrix `cc' for transitions between all energy levels at a fixed temperature and given density `dene/denp'.
- Subroutine b8norm: To normalise total/specific line powers for level 1 and total equilibrium line powers to stage total population.
- Subroutine b8popm: To construct metastable level populations.
- Subroutine b8popo: To construct ordinary/non-metastable level populations.
- Subroutine b8rcom: To establish recombination rate coefficients for a set of temperatures given by the array `tout()' using cubic splines on a set of rate coefficients covering the temperatures given by the array `tin()'.
- Subroutine b8scom: To establish ionisation rate coefficients z --> z+1 for a set of temperatures given by the array `tea()' using cubic splines on a set of rate coefficients covering the temperatures given by the array `scef()'.
- Subroutine b8setp: To set up parameters in the shared pooled for panel display
- Subroutine b8spln: Performs cubic spline on log(temperature and density) versus log(collisional-radiative matrix coefficients) input data
- Subroutine b8splt: Performs cubic spline on log(temperature and density) versus log(collisional-radiative matrix coefficients) input data
- Subroutine b8stkb: To stack up in `stv' the recombination contribution for each non-metastable/ordinary excited level for a given temperature and density.
- Subroutine b8stkd: To stack up in `vred' the recombination rate contributions for each metastable level for a given temperature and density.
- Subroutine b8stke: To stack up in `stv' the recombination contribution for each non-metastable/ordinary excited level for a given temperature and density, but adding a three-body recombination part from v3
- Subroutine b8stkf: To stack up in `vred' the recombination rate contributions for each metastable level for a given temperature and density and include three-body recombination part
- Subroutine b8stvm: To calculate and stack up in `stvm' the metastable level recombination coefficients for a given temperature and density.
- Subroutine b8toth: To calculate total charge exchange driven line power.
- Subroutine b8totl: To calculate total/specific line powers for metastables and total/specific equilibrium line powers.
- Subroutine b8ttyp: To sort transition arrays into seven transition/recomb types
- Subroutine b8winf: Write information section of adf10, adf13 and adf15 files.
- Subroutine b8wrmc: To output data to generalised collisional radiative coefficient passing file master.pass final storage is expected to be in master condensed files
- Subroutine b8wrps: To output data to pec and sxb passing files.
- Subroutine b9data: To fetch data from input copase data set, including multiple parents on free-electron and charge exchange on recombination, inclusion of explicit contributions by ionisation.
- Subroutine b9pars: To analyse the tail character string of the first line of a specific ion file into binding wave numbers for different parents and statistical weights for the parents. Modification of b8pars.
- Subroutine badata: To fetch data from input copase data set, including multiple parents on free-electron and charge exchange on recombination, inclusion of explicit contributions by ionisation.
- Subroutine bapars: To analyse the tail character string of the first line of a specific ion file into binding wave numbers for different parents and statistical weights for the parents. Modification of b8pars.
- Subroutine baprs1: To analyse the tail character string of a level data line of a specific ion file into wave-number and sets of (parent identifier, effective zeta for the parent) pairs.
- Subroutine baubnd: To unbundle a specific ion file according to the split up fractions obtained from a superstructure file, filling in with the statistical method of Saraph, Seaton & Shemming (1969), when no data is available.
- Subroutine bbitrp: To interpolate/extrapolate numerical distribution from fin(ein) to fout(eout). a f=sqrt(e)*exp(-e) fit is chosen for interpolation extrapolation uses limit behaviour from nform1 and nform2
- Subroutine bbprs1: To analyse the tail character string of a level data line of a specific ion file into wave-number and sets of (parent identifier, effective zeta for the parent) pairs.
- Subroutine bbprs3: To analyse a configuration character string into a integer array of occupation numbers in a standard order
- Subroutine bbrint: To calculate radiative recombination coefficient when electron distribution is not Maxwellian.
- Subroutine bbspln: 1) performs cubic spline on log(temp) versus log(rad.rec.coeff.) input data. (`tin' versus `rrcin' , nblock data pairs)
- Subroutine bdcf3: Tabulates asymptotically decaying bound coulomb function
- Subroutine bdcf7: Calculates a numerical radial wave function in a distorted coulomb potential described by shell screening.
- Subroutine bddrsm2: -------- to sum Badnell dielectronic rate coefficient data over the representative set to give zero density total and radiated power from satellite lines
- Subroutine bdwr14: To interpolate ionisation rate data from adf23 file and write supplemented adf04 file.
- Subroutine bdxref: To fetch data from input adf18/a23_a04 cross-reference file.
- Subroutine bexcoef: To calculate complete sets of spectrum line emissivities for the ions of an element
- Subroutine bfdata: To fetch data from input adf04 data set, including multiple parents on free-electron and charge exchange on recombination, inclusion of explicit contributions by ionisation.
- Subroutine bftran: To implement the transformation described by Burgess and Tully ( see reference (1)) which is used to assess and compact data.
- Subroutine bfttyp: To sort transition arrays into four transition/recomb types and assign initial types to electron impact transitions
- Subroutine bfwr11: Produces an adf04 type file, where the contents is considered as the output data set from ADAS215.
- Subroutine bgcoef: Calculates collisional-radiative population
- Subroutine bgdiff: Calculates the absolute difference from 1.0 for temperature or density and updates the set of arrays holding the top ndtr contributing transitions.
- Subroutine bgeset: To set the error multipler according to error values
- Subroutine bghist: Writes unformatted histogram data to iunit.
- Subroutine bgperr: Parses error information from adf04 files.
- Subroutine bgrerr: Reads error information in adf04 specific ion file and passes back 4 arrays associated with each transition tpye of excitation, recombination and charge exchange.
- Subroutine bgrwer: To read or write error information from/to IDL. the size of the arrays has already been passes to IDL.
- Subroutine bgseed: Sets iseed to a value based on the time/date. This seed is for use with the lapack routine dlarnd.
- Subroutine bgsetm: To set up parameters to pass to IDL
- Subroutine bgtest: Examines the collison strengths of adf04 files for any discrepencies, outlyiny points, mistakes etc.
- Subroutine bgtran: To implement the transformation described by Burgess and Tully ( see reference (1)) which is used to assess and compact data.
- Subroutine bgwerr: Writes error information to iunit
- Subroutine bgwexp: Writes (unformatted) explore error data to iunit.
- Subroutine bgwr33: Writes unformatted data to iunit
- Subroutine bxchkm: To check if transitions exist to the metastable levels.
- Subroutine bxcoef: Calculates collisional-radiative populations for series 8 codes. modification of bgcoef.for
- Subroutine bxcstr: To take the last `imax' non-blank bytes of the `cstrga' string and place them in the `cstrgb' string.
- Subroutine bxdata: To fetch data from input copase data set.
- Subroutine bxiord: To set up the index of ordinary excited levels in complete level list `iordr()'.
- Subroutine bxmcca: To construct whole rate matrix `cc' for transitions between all energy levels at a fixed temperature and given density `dene/denp'.
- Subroutine bxmcma: To stack up non-metastable/ordinary excited level rate matrix `cmat' from whole rate matrix `cc' for all transit'ns between all energy levels at a fixed temperature and density
- Subroutine bxmcra: To construct a-value matrix `cra' for transitions between all energy levels.
- Subroutine bxmcrc: To construct excitation/de-exciatation rate coefficient matrix `crc' for transitions between all energy levels at a given temperature `it' and for a given transition type
- Subroutine bxmpop: To calculate and stack up in `stkm' the metastable level populations for a given temperature and density.
- Subroutine bxpopm: To construct metastable level populations.
- Subroutine bxpopo: To construct ordinary/non-metastable level populations.
- Subroutine bxrate: To calculate the excitation and de-excitation rate coeffici- ents for a set of input temperatures `tout' & transitions of a specified type (electron or proton impact).
- Subroutine bxrcom: To establish recombination rate coefficients for a set of temperatures given by the array `tout()' using cubic splines on a set of rate coefficients covering the temperatures given by the array `tin()'.
- Subroutine bxsetp: To set up parameters in the shared pooled for panel display
- Subroutine bxstka: To stack up in `stck' the non-metastable/ordinary excited level population dependence on metastable level for a given temperature and density.
- Subroutine bxstkb: To stack up in `stv' the recombination contribution for each non-metastable/ordinary excited level for a given temperature and density.
- Subroutine bxstkc: To stack up in `cred' the transition rate between metasta- ble levels for a given temperature stable level for a given temperature and density.
- Subroutine bxstkd: To stack up in `vred' the recombination rate contributions for each metastable level for a given temperature and density.
- Subroutine bxstvm: To calculate and stack up in `stvm' the metastable level recombination coefficients for a given temperature and density.
- Subroutine bxttyp: To sort transition arrays into seven transition/recomb types
- Subroutine bxwr11: To output data to contour passing file. Population data for diagnostic use.
- Subroutine chindx: To re-index & alter terms for a bundled set of levels
- Subroutine dielcl: This subroutine is not yet properly documented
- Subroutine dnaq: Given a0 and its first nmax derivatives in array a, and given q and nmax, calculates b0 and array b, being the value and first nmax derivatives of (a0)**q
- Subroutine effz3: Searches for the effective potential for a single electron distorted wave function for a specified screening or a specified energy. (original by A. Burgess, DAMTP, university of Cambridge)
- Subroutine escape: Computes escape factors.
- Subroutine fintb: Unknown
- Subroutine gext: Produces one electron orbitals from specified functional forms
- Subroutine isort: Sort an integer array so that it is in increasing order
- Subroutine ngffmh: Evaluates electron temperature and frequency averaged hydrogenic free free Gaunt factor.
- Subroutine pchg: Evaluates Peach amplitude g(v,l,e,l1) by table interpolation
- Subroutine pchx: Evaluates Peach phase x(v,l,e,l1) by table interpolation
- Subroutine phase: Calculates asymptotic phase of free coulomb real function fcf4
- Subroutine qpoly: Quadratic interpolation of x1,y1,x2,y2,x3,y3 -> y for given x
- Subroutine r2photo: -------- updated version of rphoto to allow
- Subroutine r8necip: Evaluates a shell contribution to the ionisation rate coefficient in the ecip approximation, and returns the three-body recombination coefficient in reduced form ie. Omitting the weighting factor w(i)/w+
- Subroutine rd2fs: Generation of hydrogenic bound-free radial integrals using recurrence relations. Unix-IDL port:
- Subroutine voigt: Computes line profiles