coronal_impurities_m Module

Module for reading and interpolating tabulated rate coefficients for radiation rates of impurities as a function of electron temperature Dependency on electron density is small and thus neglected



Contents


Derived Types

type, public ::  coronal_impurity_t

Class for radiation rate coefficients

Components

Type Visibility Attributes Name Initial
real(kind=GP), public, allocatable, dimension(:) :: logte_tab

Tabulated logarithm of the electron temperature in eV

real(kind=GP), public, allocatable, dimension(:) :: log_radiation_tab

Tabulated logarithm of the normalised radiation rate coefficient

Type-Bound Procedures

procedure , public :: create => create_radrate_table Subroutine
procedure , public :: eval => eval_radrate Function

Functions

public function eval_radrate(self, te, l)

Evaluate the normalized rate coefficient through interpolation

Arguments

Type IntentOptional Attributes Name
class(coronal_impurity_t), intent(in) :: self

Instance of class

real(kind=GP), intent(in), dimension(:) :: te

Electron temperature

integer, intent(in) :: l

Array index

Return Value real(kind=gp)


Subroutines

public subroutine create_radrate_table(self, file_name, tab_length, te_ref, w_ref, c_imp)

Create rate coefficient object from data file

Arguments

Type IntentOptional Attributes Name
class(coronal_impurity_t), intent(inout) :: self

Instance of class

character(len=*), intent(in) :: file_name

Name of atomic data file to read coefficients from

integer, intent(in) :: tab_length

Length of the data set

real(kind=GP), intent(in) :: te_ref

Reference for electron temperature

real(kind=GP), intent(in) :: w_ref

Reference for rate coefficient

real(kind=GP), intent(in) :: c_imp

Impurity concentration (fraction of electron density)