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_cx_3(Erel,m_max)result(sigma)!+Calculates an array of cross sections for proton-Hydrogen charge exchange interactions!+from the \(n=3\) state to m = 1..`m_max` states at energy `Erel`!+!+@note!+Cross sections are normalized to the total cross sections calculated by!+[[p_cx_janev(proc)]].!+!+@note!+Cross sections for the \(n=3 \rightarrow m=1\) states are calculated via!+equivalence principle using [[p_cx_1_3_adas(proc)]].!+!+@note!+Cross Sections for \(m \geq 6\) are calculated by "spreading" their!+expected total cross sections among the \( m \geq 6\) states.!+!+###Equation!+ $$H^+ + H(3) \rightarrow H(m=1..m_{max}) + H^+$$!+###References!+* Ref. 4 [[atomic_tables(module)]]real(Float64),intent(in)::Erel!+ Relative collision energy [keV/amu]integer,intent(in)::m_max!+ Number of `m` states to calculatereal(Float64),dimension(m_max)::sigma!+ Array of cross sections where the index refers to the `m`'th state [\(cm^2\)]real(Float64),parameter::n2=9.d0real(Float64)::eb,En,Em,sigma_m6,norm_facreal(Float64),dimension(m_max)::sigma1sigma=0.d0sigma1=0.d0sigma1=p_cx_1(Erel*n2,m_max)sigma(1)=p_cx_1_3_adas(Erel*n2)/n2sigma(2)=p_cx_3_2_adas(Erel)sigma(3)=p_cx_3_3_adas(Erel)sigma(4)=p_cx_3_4_adas(Erel)if(m_max.ge.5)thensigma(5)=p_cx_3_5_adas(Erel)endif if(m_max.ge.6)thensigma_m6=p_cx_3_6inf_adas(Erel)call m_spread(3,m_max,sigma_m6,sigma)endifnorm_fac=p_cx_janev(Erel,3)/sum(sigma)sigma=sigma*norm_facend function p_cx_3