!******************** start file psigls.for ; group sigs2 ******************
!%
!!!-------------------------------------/cross.for
!!! routines to calculate cross sections
!!!
!
! all energies are in ev
! er - relative energy per nucleon
!
!
real(fp) function psigls_olson (zer,zimp)
  ! 7/18/79 - s.l.d.
  ! calculates impact and charge exchange by impurities
  ! needs z of impurity and relative energy of neutral
  ! olson et al., p.r.l. 41,num 3,p. 163. (1978)
  ! er - relative energy in ev (per nucleon)
  ! eg. er=ebeam/abeam+1.5*ti/aplas
  ! units are cm**2
  !
  !============
  use iso_c_binding, only: fp => c_double
  implicit none
  real(fp) :: zer,zimp,con1,con2
  !============
  con1=zer/(3.2e4_fp*zimp)
  if (con1.gt.87.0_fp) goto 10
  con2=1.0_fp-exp(-con1)
  goto 20
10 con2=1.0_fp
20 psigls_olson=4.6e-16_fp*zimp*con2/con1
  return
end function psigls_olson
!******************** end file psigls.for ; group sigs2 ******************
