	function regge(edet)
c	x is defined as p parallel/p parallel max in the c m
c
	include '/u1/gcf/e350/crystal/cb/const'
	include '/u1/gcf/e350/crystal/cb/pperpd'
	include '/u1/gcf/e350/crystal/cb/type'
	include '/u1/gcf/e350/crystal/cb/parms'
	include '/u1/rgk/icicle/cb/dblsct'
	include '/u1/gcf/e350/crystal/cb/clouds'
	include '/u1/gcf/e350/crystal/cb/beam'
	include '/u1/gcf/e350/crystal/cb/x'
	include '/u1/gcf/e350/crystal/cb/it'
c
	data ircnt/0/
c
	ptsq=(edet*pperpd)**2
	x=(-aeta(ibm)*edet+agam(ibm)*sqrt(edet**2-am2i-ptsq))/(-aeta(ibm)
& *enhigh(ibm)+agam(ibm)*sqrt(enhigh(ibm)**2-am2i-ptsq))
	if (x.ge.1.) goto 200
c
201	regge=(1.-x)**(const-2.0*alpha)*((sreal(ibm,it)/sreg)**(const-1.))
	if (jpart(1).le.2.and.abs(const-0.5).lt.0.01) return
	amul=1.+const-2.*alpha
	regge=regge/(x1**amul/amul-x2**amul/amul)
	if (dopipi) regge=regge*(1.0+0.084/sqrt(1.-x))
	return
c
200	print 100,x,edet,ebm(ibm),avt
100	format(' x greater than one in regge.   x is '1pe16.5
& ' at energy of '1pe16.5' with beam energy '1pe16.5/'  t '1pe16.5) 

	if (x.gt.1.00001) ircnt=ircnt+1
	if (ircnt.gt.5) call abort
	x=.99999
	goto 201
c
	end
