#ifndef F77II_H
#define F77II_H

//-----------------------------------------------------------------------------
//
//  Peter Richter (prichter@princeton.edu)
//  Princeton Plasma Physics Laboratory
//  August 2000
//
//  f77ii.h - Interface for F77 ionization reaction routines.
//
//-----------------------------------------------------------------------------

#include "preact/fortran.h"

// initialize reaction and return handle...
integer_function F77NAME(ii_init)(integer& icode, integer& ierrlo,
			      	  integer& ierrhi);

// sigma, vrel as real*8 functions of Erel...
real_function F77NAME(ii_sigma)(integer& ihandle, real_8& Erel);
real_function F77NAME(ii_vrel)(integer& ihandle, real_8& Erel);

// sigma*v for beam to cold (T=0) target...
subroutine F77NAME(ii_coldtarget_sigmatimesv)(integer& ihandle, real_8 *E,
					      real_8 *f, integer& n);
subroutine F77NAME(ii_coldtarget_erange)(integer& ihandle, real_8& Emin,
					 real_8& Emax,
					 integer& min_policy,
					 integer& max_policy);
subroutine F77NAME(ii_coldtarget_epolicy)(integer& ihandle,
					  integer& min_policy,
					  integer& max_policy);

// <sigma*v> for beam to warm (T>0) target...
subroutine F77NAME(ii_warmtarget_sigmatimesv)(integer& ihandle, real_8 *E,
					      real_8 *T, real_8 *f,integer& n);
subroutine F77NAME(ii_warmtarget_erange)(integer& ihandle, real_8& Emin,
					 real_8& Emax,
					 integer& min_policy,
					 integer& max_policy);
subroutine F77NAME(ii_warmtarget_trange)(integer& ihandle, real_8& Tmin,
					 real_8& Tmax,
					 integer& min_policy,
					 integer& max_policy);
subroutine F77NAME(ii_warmtarget_epolicy)(integer& ihandle,
					  integer& min_policy,
					  integer& max_policy);
subroutine F77NAME(ii_warmtarget_tpolicy)(integer& ihandle,
					  integer& min_policy,
					  integer& max_policy);

//-----------------------------------------------------------------------------

#endif
