Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
function p_excit(eb,n_max,m_max)result(sigma)!+Calculates a matrix of cross sections for a proton-Hydrogen impact excitation transitions!+from the \(n=1..n_{max} \rightarrow m=1..m_{max}\) states at energy `eb`!+!+###Equation!+$$ H^+ + H(n=1..n_{max}) \rightarrow H^+ + H(m=1..m_{max}), m \gt n $$!+!+###References!+* Eq. 29.b and Table 4 in Ref. 2 for \(n = 1\) and \(m = 2\) [[atomic_tables(module)]]!+* Eq. 30 and Table 5 in Ref. 2 for \(n = 1\) and \(m = 3-6\) [[atomic_tables(module)]]!+* Eq. 31 and Table 5 in Ref. 2 for \(n = 1\) and \(m \gt 6\) [[atomic_tables(module)]]!+* Eq. 32 and Table 6 in Ref. 2 for \(n = 2\) and \(m \le 5\) [[atomic_tables(module)]]!+* Eq. 33 and Table 6 in Ref. 2 for \(n = 2\) and \(m = 6-10\) [[atomic_tables(module)]]!+* Eq. 34 and Table 6 in Ref. 2 for \(n = 2\) and \(m \gt 10\) [[atomic_tables(module)]]!+* Eq. 35 and Table 7 in Ref. 2 for \(n = 3\) and \(m \le 6\) [[atomic_tables(module)]]!+* Eq. 36 and Table 7 in Ref. 2 for \(n = 3\) and \(m = 7-10\) [[atomic_tables(module)]]!+* Eq. 37 and Table 7 in Ref. 2 for \(n = 3\) and \(m \gt 10\) [[atomic_tables(module)]]!+* Eq. 38-39 in Ref. 2 for \(n \gt 3\) and \(m \gt 4\) [[atomic_tables(module)]]!+real(Float64),intent(in)::eb!+ Relative collision energy [keV/amu]integer,intent(in)::m_max!+ Number of initial atomic energy levels/statesinteger,intent(in)::n_max!+ Number of final atomic energy levels/statesreal(Float64),dimension(n_max,m_max)::sigma!+ Matrix of cross sections where the subscripts correspond!+ to the \(n \rightarrow m\) transitions: p_excit[n,m] [\(cm^2\)]real(Float64),dimension(12,12)::sigma_fullinteger::n,mdo n=1,12sigma_full(n,:)=p_excit_n(eb,n,12)enddosigma=sigma_full(1:n_max,1:m_max)end function p_excit