```      subroutine bbitrp( ninmx  , noutmx ,
&                   nein   , neout  , te     ,
&		         nform1 , param1 , nform2 , param2 ,
&			 ein    , fin    , eout   , fout
&		        )

C-----------------------------------------------------------------------
C
C    ****************** fortran77 subroutine: bbitrp ******************
C
C  purpose: To interpolate/extrapolate numerical distribution from
C           fin(ein) to fout(eout).
C           A f=sqrt(E)*exp(-E) fit is chosen for interpolation
C           Extrapolation uses limit behaviour from nform1 and nform2
C
C
C  input : (i*4)  ninmx    = max no of input energies
C  input : (i*4)  noutmx   = max no of output energies
C  input : (i*4)  nein     = no of input energies
C  input : (i*4)  neout    = no of output energies
C  input : (r*8)  te       = temperature
C  input : (i*4)  nform1   = type of threshold behaviour
C                              1 => cutoff
C                              2 => energy^param1
C  input : (r*8)  param1   = parameter of threshold form
C  input : (i*4)  nform2   = type of high-energy behaviour
C                              1 => cutoff
C                              2 => energy^-param2(1)
C                              3 => exp(-param2(1)*energy)
C                              4 => exp(-param2(1)*energy^param2(2))
C  input : (r*8)  param2() = parameter of high-energy form
C
C  input : (r*8)  ein()    = input energy of distribution
C  input : (r*8)  fin()    = value of distribution at ein
C  input:  (r*8)  eout()   = output energy
C
C  output: (r*8)  fout()   = (value of distribution at eout)/sqrt(eout)
C
C
C  author: Paul Bryans, University of Strathclyde
C
C  date:   30/11/04
C
C  update:
C
C-----------------------------------------------------------------------
INTEGER             NEIN,        NEOUT,       NFORM1,      NFORM2
INTEGER             NINMX,       NOUTMX
REAL*8              EIN(NINMX),  EOUT(NOUTMX)
REAL*8              FIN(NINMX),  FOUT(NOUTMX),             PARAM1
REAL*8              PARAM2(2),   TE
```