 
real(fp) function elec_sigv(Te, icode)
  use iso_c_binding, only: fp => c_double
  IMPLICIT NONE
  real(fp) Te      ! electron temperature, KEV
  integer icode  ! reaction selection (see below)
!  return rate coefficient <sigma*v> , M**3/sec, in elec_sigv
  real(fp) svrc_janev,sveih_janev,sveihe_janev
  if(icode.eq.0) then
     ! H+,e recombination
     elec_sigv = 1.e-6_fp * svrc_janev(1.e+3_fp*Te)
  else if(icode.eq.1) then
 
     ! H0,e impact ionization
 
     elec_sigv = 1.e-6_fp * sveih_janev(1.e+3_fp*Te)
 
  else if(icode.eq.2) then
 
     ! He0,e impact ionization
 
     elec_sigv = 1.e-6_fp * sveihe_janev(1.e+3_fp*Te)
 
  else if(icode.eq.3) then
 
     ! Li0,e impact ionization  ** use H0 formula for now *******
 
     elec_sigv = 1.e-6_fp * sveih_janev(1.e+3_fp*Te)
 
  else
     call errmsg_exit('? sigsub/elec_sigv:  invalid "icode".')
  endif
end function elec_sigv
