17       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
   19       parameter( 
maxpro = 8 , mline = 1000 , mscahd = 250 )
 
   20       COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
 
   21       COMMON /haenvi/ nindep
 
   22       COMMON /haoutl/ noutl,nouter,noutco
 
   24       COMMON /haqqap/ aqqal,aqqpd,nqqal,nqqpd
 
   25       COMMON /outlev/ioutpo,ioutpa,iouxev,ioucol
 
   28       CHARACTER*8 projty,targty
 
   31       COMMON /user1/
title,projty,targty
 
   32       COMMON /user2/cmener,sdfrac,ptlar,istruf,isingd,idubld
 
   34       common/collis/
s,ijproj,ijtar,ptthr,ptthr2,iophrd,ijprlu,ijtalu
 
   36       COMMON /strufu/istrum,istrut
 
   52       IF((istruf.GE.16).OR.(istruf.LE.20)) 
THEN 
   58       IF ( ijproj.EQ.2 ) nha =-1
 
   61       IF ( ijtar .EQ.2 ) nhb =-1
 
   80       IF ( iopt.EQ.0 ) CALL 
harini 
   84       SUBROUTINE selhrd(MHARD,IJPVAL,IJTVAL,PTTHRE)
 
  108       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
  110       parameter( 
maxpro = 8 , mline = 1000 , mscahd = 250 )
 
  112       CHARACTER*8 projty,targty
 
  115       COMMON /user1/
title,projty,targty
 
  116       COMMON /user2/cmener,sdfrac,ptlar,istruf,isingd,idubld
 
  117       common/collis/
s,ijproj,ijtar,ptthr,ptthr2,iophrd,ijprlu,ijtalu
 
  118       COMMON /abrhrd/xh1(mscahd),xh2(mscahd),ijhi1(mscahd),
 
  119      *ijhi2(mscahd),ijhf1(mscahd),ijhf2(mscahd),phard1(mscahd,4),
 
  121       COMMON /outlev/ioutpo,ioutpa,iouxev,ioucol
 
  122       COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
 
  123       COMMON /haoutl/ noutl,nouter,noutco
 
  124       COMMON /haevtr/ line,lin,lrec1(mline),lrec2(mline),prec(0:3,mline)
 
  125       COMMON /harslt/ lscahd,lsc1hd,
 
  126      &                etahd(mscahd,2) ,pthd(mscahd),
 
  127      &                xhd(mscahd,2)   ,vhd(mscahd) ,x0hd(mscahd,2),
 
  128      &                ninhd(mscahd,2) ,nouthd(mscahd,2),
 
  129      &                n0inhd(mscahd,2),nbrahd(mscahd,2),nprohd(mscahd)
 
  130       DATA x1su/0./ , x2su/0./
 
  134       IF (ioutpa.GE.3) 
WRITE(6,221)
 
  135      *                  mhard,ijpval,ijtval
 
  136   221 
FORMAT (
' SELHRD  ',3i10)
 
  149         IF( ioutpa.GT. 6 )
WRITE(6,*)
n,x1su,x2su,xh1(
n),xh2(
n)
 
  153         IF ( iiia.GT. 0 .AND. iiia.LT.10 ) iii    = sign(iiia+10,iii)
 
  154         IF ( iiia.GE.10                  ) iii    = sign(iiia-10,iii)
 
  155         IF ( iiia.GE.10                  ) ijpval = 1
 
  159         IF ( iiia.GT. 0 .AND. iiia.LT.10 ) iii    = sign(iiia+10,iii)
 
  160         IF ( iiia.GE.10                  ) iii    = sign(iiia-10,iii)
 
  161         IF ( iiia.GE.10                  ) ijtval = 1
 
  169         ijhf1(
n) = nouthd(
n,1)
 
  170         ijhf2(
n) = nouthd(
n,2)
 
  173           phard1(
n,j) = prec(j,i3)
 
  174 20        phard2(
n,j) = prec(j,i4)
 
  175         phard1(
n,4)   = prec(0,i3)
 
  176         phard2(
n,4)   = prec(0,i4)
 
  181       IF (ioutpa.GE.3)
WRITE (6,101)
 
  182   101 
FORMAT(
' SELHRD OUTPUT FOR INITIAL STATE SCATTERED PARTONS')
 
  185      *    
WRITE (6,103)i,ijpval,ijtval,ijhi1(i),ijhi2(i),xh1(i),xh2(i)
 
  186   103   
FORMAT (
' I,IJPVAL,IJTVAL,IJHI1,IJHI2,XH1,XH2= ',5i5,2f12.6)
 
  188       IF (ioutpa.GE.3)
WRITE (6,301)
 
  189   301 
FORMAT(
' SELHRD OUTPUT FOR FINAL STATE SCATTERED PARTONS')
 
  192      *    
WRITE (6,303)i,ijhf1(i),ijhf2(i),(phard1(i,iii),iii=1,4)
 
  194      *    
WRITE (6,303)i,ijhf1(i),ijhf2(i),(phard2(i,iii),iii=1,4)
 
  195   303   
FORMAT (
' I,IJHI1,IJHI2,PHARD1 OR PHARD2 ',3i5,4f16.6)
 
  214       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
  216       parameter( 
maxpro = 8 , mline = 1000 , mscahd = 250 )
 
  217       COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
 
  218       COMMON /haenvi/ nindep
 
  219       COMMON /haevnt/ pt1,pt2,nhard,ntry,ihard,itry,irejev
 
  221       pt1    = max(pt1in,ptini(1))
 
  232       IF ( nindep.EQ.1 ) CALL 
hisfil 
  246       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
  248       parameter( 
maxpro = 8 , mline = 1000 , mscahd = 250 )
 
  249       parameter( tiny= 1.
d-30, 
one=1.d0, zsmall=1.
d-3 )
 
  250       COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
 
  251       COMMON /hapdco/ npdcor
 
  252       COMMON /haoutl/ noutl,nouter,noutco
 
  253       COMMON /haevnt/ pt1,pt2,nhard,ntry,ihard,itry,irejev
 
  254       COMMON /hasca / ptwant,
a,aln,z1max,z1dif,z2max,z2dif,
 
  255      &                
pt,etac,etad,
x1,
x2,v,u,w,w1,axx,
weight,mspr,irejsc
 
  256       COMMON /haxik / xrest,yrest,zmax,axxmax,wemax
 
  257       COMMON /haevtr/ line,lin,lrec1(mline),lrec2(mline),prec(0:3,mline)
 
  260       COMMON /haxsec/ xsecta(2,-1:
maxpro,4),xsect(5,-1:
maxpro),
 
  262       COMMON /harslt/ lscahd,lsc1hd,
 
  263      &                etahd(mscahd,2) ,pthd(mscahd),
 
  264      &                xhd(mscahd,2)   ,vhd(mscahd) ,x0hd(mscahd,2),
 
  265      &                ninhd(mscahd,2) ,nouthd(mscahd,2),
 
  266      &                n0inhd(mscahd,2),nbrahd(mscahd,2),nprohd(mscahd)
 
  267       itype(l)      = 
mod(lrec1(l),100)-50
 
  278       IF(itry.GT.ntry) goto 301
 
  280       xrest    = xshmx-nhard*sa
 
  281       yrest    = xshmx-nhard*sa
 
  282       IF(xrest*yrest.LT.aa) 
THEN 
  283         WRITE(6,*) 
' ****************** HAMULT ****************** ' 
  284         WRITE(6,*) 
' IT IS NOT POSSIBLE TO PRODUCE ',nhard,
' POMERONS ' 
  291       wemax =
sqrt(1-axxmax)
 
  297         a        = (2.*ptwant/ecm)**2
 
  301         IF ( pt1.LT.ptini(i) .AND. i.GT.1 ) goto 50
 
  303             xsect(1,m) = xsecta(1,m,i)
 
  304             xsect(2,m) = xsecta(2,m,i)
 
  317        etahd(ihard,1) = etac
 
  318        etahd(ihard,2) = etad
 
  321        if(zmax/
a-
one.lt.zsmall) 
THEN 
  322          CALL 
xcheck(x1s,x2s,linmax)
 
  326        wemax=
sqrt(1.-axxmax)
 
  328        IF(ihard.LT.nhard) goto 10
 
  331       IF ( npdcor.EQ.1     .AND.
 
  333      &     (1.-x1s)*(1.-x2s).LT.
rndm(ai)*(1.-aa*ihard)**2 ) goto 5
 
  344           IF ( abs(it).GT.10 .AND. ival.EQ.0 ) 
THEN 
  346           ELSEIF ( abs(it).GT.10 .AND. ival.EQ.1 ) 
THEN 
  347             it         = sign(abs(it)-10,it)
 
  348             lrec1(ind) = (lrec1(ind)/100)*100+50+it
 
  352           nouthd(i,k)  = itype(ind+2)
 
  358       IF ( ihard.NE.nhard .AND. nouter.EQ.1 ) 
THEN 
  359         WRITE(6,1010) nhard,ihard
 
  360 1010    
FORMAT(
' ###### HAMULT : CANNOT PRODUCE',i3,
' HARD SCATT.',
 
  361      &         
'; ONLY',i3,
' ARE PRODUCED !!!')
 
  368       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
  370       parameter( 
maxpro = 8 , mline = 1000 , mscahd = 250 )
 
  371       COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
 
  372       COMMON /hapdco/ npdcor
 
  373       COMMON /haoutl/ noutl,nouter,noutco
 
  374       COMMON /haevnt/ pt1,pt2,nhard,ntry,ihard,itry,irejev
 
  375       COMMON /hasca / ptwant,
a,aln,z1max,z1dif,z2max,z2dif,
 
  376      &                
pt,etac,etad,
x1,
x2,v,u,w,w1,axx,
weight,mspr,irejsc
 
  377       COMMON /haevtr/ line,lin,lrec1(mline),lrec2(mline),prec(0:3,mline)
 
  379       COMMON /haxsec/ xsecta(2,-1:
maxpro,4),xsect(5,-1:
maxpro),
 
  381       COMMON /harslt/ lscahd,lsc1hd,
 
  382      &                etahd(mscahd,2) ,pthd(mscahd),
 
  383      &                xhd(mscahd,2)   ,vhd(mscahd) ,x0hd(mscahd,2),
 
  384      &                ninhd(mscahd,2) ,nouthd(mscahd,2),
 
  385      &                n0inhd(mscahd,2),nbrahd(mscahd,2),nprohd(mscahd)
 
  391           prec(1,lp) = prec(1,l)
 
  392           prec(2,lp) = prec(2,l)
 
  393           prec(3,lp) = prec(3,l)
 
  394           prec(0,lp) = prec(0,l)
 
  395           lrec1( lp) = lrec1( l)
 
  396           lrec2( lp) = lrec2( l)
 
  400       ELSEIF( iopt.EQ.1 ) 
THEN 
  404           IF( ptest.EQ.qtest ) 
THEN 
  409         WRITE(6,*)
'  RECCHK: NO NEW LINMAX FOUND - LINMAX=',linmax
 
  412       WRITE(6,*)
'  RECCHK: IOPT OUT OF RANGE - 0 OR 1 - IOPT=',iopt
 
  417       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
  419       parameter( 
maxpro = 8 , mline = 1000 , mscahd = 250 )
 
  420       COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
 
  421       COMMON /hapdco/ npdcor
 
  422       COMMON /haoutl/ noutl,nouter,noutco
 
  423       COMMON /haevnt/ pt1,pt2,nhard,ntry,ihard,itry,irejev
 
  424       COMMON /hasca / ptwant,
a,aln,z1max,z1dif,z2max,z2dif,
 
  425      &                
pt,etac,etad,
x1,
x2,v,u,w,w1,axx,
weight,mspr,irejsc
 
  426       COMMON /haxik / xrest,yrest,zmax,axxmax,wemax
 
  427       COMMON /haevtr/ line,lin,lrec1(mline),lrec2(mline),prec(0:3,mline)
 
  430       COMMON /haxsec/ xsecta(2,-1:
maxpro,4),xsect(5,-1:
maxpro),
 
  432       COMMON /harslt/ lscahd,lsc1hd,
 
  433      &                etahd(mscahd,2) ,pthd(mscahd),
 
  434      &                xhd(mscahd,2)   ,vhd(mscahd) ,x0hd(mscahd,2),
 
  435      &                ninhd(mscahd,2) ,nouthd(mscahd,2),
 
  436      &                n0inhd(mscahd,2),nbrahd(mscahd,2),nprohd(mscahd)
 
  437       parameter(
one=1d0, zsmall=1
d-3)
 
  441         WRITE(6,*) 
'  ERROR IN XCHECK : IHARD < 1 ',ihard
 
  448         IF(xhd(i,1).GT.
xmax) 
THEN 
  452     IF(xhd(i,2).GT.
xmax) 
THEN 
  460       xrest=xrest+xhd(imax,1)-
sqrt(
a)
 
  461       yrest=yrest+xhd(imax,2)-
sqrt(
a)
 
  464       wemax=
sqrt(1.-axxmax)
 
  472           etahd(mh,1) = etahd(i,1)
 
  473           etahd(mh,2) = etahd(i,2)
 
  475           nprohd(mh)  = nprohd(i)
 
  478       CALL 
recchk( 4*imax,xhd1,0)
 
  481       IF(zmax/
a-
one.LT.zsmall) goto 50
 
  486       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
  488       COMMON /haevnt/ pt1,pt2,nhard,ntry,ihard,itry,irejev
 
  489       COMMON /hasca / ptwant,
a,aln,z1max,z1dif,z2max,z2dif,
 
  490      &                
pt,etac,etad,
x1,
x2,v,u,w,w1,axx,
weight,mspr,irejsc
 
  492       COMMON /haxik / xrest,yrest,zmax,axxmax,wemax
 
  493       parameter( tiny= 1.
d-30, 
one=1.d0 ,tiny6=1.
d-06)
 
  506       if(
rndm(1.1).gt.ww) goto 12
 
  514       uu=umin*(c**2+1.)/2./c
 
  515       if(uu.gt.2.*ym.and.uu.lt.ym+
z/ym) goto 13
 
  522       if(xrest.ge.yrest) 
then 
  525          if(xrest.eq.yrest) 
then 
  526            if(
rndm(3.).gt.0.5) 
then 
  544       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
  546       parameter( 
maxpro = 8 , mline = 1000 , mscahd = 250 )
 
  547       parameter( tiny= 1.
d-30, 
one=1.d0 ,tiny6=1.
d-06)
 
  548       COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
 
  549       COMMON /haevnt/ pt1,pt2,nhard,ntry,ihard,itry,irejev
 
  550       COMMON /hasca / ptwant,
a,aln,z1max,z1dif,z2max,z2dif,
 
  551      &                
pt,etac,etad,
x1,
x2,v,u,w,w1,axx,
weight,mspr,irejsc
 
  553       COMMON /haxik / xrest,yrest,zmax,axxmax,wemax
 
  555      &          3.80, 0.65, 2.00, 0.65, 0.89, 0.45, 0.445, 0.89 /
 
  559         v  =-0.5*w1/(w1+
rndm(ai)*w)
 
  561         r  = (1.+w)*2.25*(v*v*(3.-u*v-v/(u*u))-u)
 
  562         rmax=rm(1)*wemax*(1.+wemax)
 
  564         IF(wik.GT.1.d0) 
WRITE(6,*) 
' HARKIN : WIK > 1 : ',m,
r 
  566         IF(wik.LT.
rndm(ai)) goto 10
 
  567         IF ( 
rndm(aj).LE.0.5d0 ) v = u
 
  568       ELSEIF ( m.EQ.2 .OR. m.EQ.4 ) 
THEN 
  571         v  =-
exp(-0.6931472+
rndm(ai)*wl)
 
  573         r  = (u*u+v*v)*((16./27.)/u-(4./3.)*v)*(wl/w)*axx
 
  574         IF ( 
r*w.LT.rm(m)*
rndm(ai) ) goto 20
 
  575         IF ( 
rndm(aj).LE.0.5d0 ) v = u
 
  576       ELSEIF ( m.EQ.3 ) 
THEN 
  578         v  =-0.5*w1/(w1+
rndm(ai)*w)
 
  580         r  = (1.+w)*(1.+u*u)*(1.-(4./9.)*v*v/u)
 
  581         rmax=rm(3)*wemax*(1.+wemax)
 
  583         IF(wik.GT.1.d0) 
WRITE(6,*) 
' HARKIN : WIK > 1 : ',m,
r 
  585         IF(wik.LT.
rndm(ai)) goto 30
 
  586       ELSEIF ( m.EQ.5 ) 
THEN 
  588         v  =-0.5*axx/(w1+2.*
rndm(ai)*w)
 
  590         r  = (4./9.)*(1.+u*u+v*v*(u*u+v*v))-(8./27.)*u*u*v
 
  593         IF(wik.GT.1.d0) 
WRITE(6,*) 
' HARKIN : WIK > 1 : ',m,
r 
  595         IF(wik.LT.
rndm(ai)) goto 50
 
  596       ELSEIF ( m.EQ.6 ) 
THEN 
  598         v  =-0.5*(1.+w)+
rndm(ai)*w
 
  600         r  = (4./9.)*(u*u+v*v)*axx
 
  601         IF ( 
r*w.LT.rm(6)*
rndm(ai) ) goto 60
 
  602       ELSEIF ( m.EQ.7 ) 
THEN 
  604         v  =-0.5*w1/(w1+
rndm(ai)*w)
 
  606         r  = (1.+w)*((2./9.)*(1.+u*u+(1.+v*v)*v*v/(u*u))-(4./27.)*v/u)
 
  607         rmax=rm(7)*wemax*(1.+wemax)
 
  609         IF(wik.GT.1.d0) 
WRITE(6,*) 
' HARKIN : WIK > 1 : ',m,
r 
  611         IF(wik.LT.
rndm(ai)) goto 70
 
  612         IF ( 
rndm(aj).LE.0.5d0 ) v = u
 
  613       ELSEIF ( m.EQ.8 ) 
THEN 
  615         v  =-0.5*axx/(w1+2.*
rndm(ai)*w)
 
  620         IF(wik.GT.1.d0) 
WRITE(6,*) 
' HARKIN : WIK > 1 : ',m,
r 
  622         IF(wik.LT.
rndm(ai)) goto 80
 
  623       ELSEIF ( m.EQ.-1 ) 
THEN 
  626         v  =-
exp(-0.6931472+
rndm(ai)*wl)
 
  628         r  = (1.+v*v)*(v/(u*u)-(4./9.))*(wl/w)*axx
 
  629         IF ( 
r*w.LT.rm(-1)*
rndm(ai) ) goto 90
 
  632       v    = max(min(      v,-tiny6 ),-1.+tiny6 )
 
  633       u    = max(min(-1.e0-v,-tiny6 ),-1.+tiny6 )
 
  644       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
  646       COMMON /hacuts/ ptl,ptu,etacl,etacu,etadl,etadu
 
  647       COMMON /hasca / ptwant,
a,aln,z1max,z1dif,z2max,z2dif,
 
  648      &                
pt,etac,etad,
x1,
x2,v,u,w,w1,axx,
weight,mspr,irejsc
 
  651       IF (  
pt  .LT.ptl    .OR.  
pt  .GT.ptu
 
  652      & .OR. etac.LT.etacl  .OR.  etac.GT.etacu
 
  653      & .OR. etad.LT.etadl  .OR.  etad.GT.etadu ) iopt = 0
 
  658       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
  660       parameter( 
maxpro = 8 , mline = 1000 , mscahd = 250 )
 
  661       parameter( tiny= 1.
d-30, 
one=1.d0 ,tiny6=1.
d-06)
 
  662       COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
 
  663       COMMON /haqqap/ aqqal,aqqpd,nqqal,nqqpd
 
  664       COMMON /haevnt/ pt1,pt2,nhard,ntry,ihard,itry,irejev
 
  665       COMMON /hasca / ptwant,
a,aln,z1max,z1dif,z2max,z2dif,
 
  666      &                
pt,etac,etad,
x1,
x2,v,u,w,w1,axx,
weight,mspr,irejsc
 
  667       dimension pda(-6:6),pdb(-6:6)
 
  669       COMMON /haxsec/ xsecta(2,-1:
maxpro,4),xsect(5,-1:
maxpro),
 
  674       IF     ( nqqal.EQ.1 ) 
THEN 
  676       ELSEIF ( nqqal.EQ.2 ) 
THEN 
  677         qqal = aqqal*
x1*
x2*ecm*ecm
 
  678       ELSEIF ( nqqal.EQ.3 ) 
THEN 
  679         qqal = aqqal*
x1*
x2*ecm*ecm*(u*v)**(1./3.)
 
  680       ELSEIF ( nqqal.EQ.4 ) 
THEN 
  681         qqal = aqqal*
x1*
x2*ecm*ecm*u*v/(1.+v*v+u*u)
 
  683       IF     ( nqqpd.EQ.1 ) 
THEN 
  685       ELSEIF ( nqqpd.EQ.2 ) 
THEN 
  686         qqpd = aqqpd*
x1*
x2*ecm*ecm
 
  687       ELSEIF ( nqqpd.EQ.3 ) 
THEN 
  688         qqpd = aqqpd*
x1*
x2*ecm*ecm*(u*v)**(1./3.)
 
  689       ELSEIF ( nqqpd.EQ.4 ) 
THEN 
  690         qqpd = aqqpd*
x1*
x2*ecm*ecm*u*v/(1.+v*v+u*u)
 
  692       alpha = bqcd/
log(max(qqal/alasqr,1.1*
one))
 
  693       f  = xsect(1,mspr)*alpha**2
 
  698       IF ( mspr.EQ.1  .OR.  mspr.EQ.4 ) 
THEN 
  706           s2  = s2+pda(i)*pdb(-i)+pda(-i)*pdb( i)
 
  707           s3  = s3+pda(i)*pdb( i)+pda(-i)*pdb(-i)
 
  708           s4  = s4+pda(i)+pda(-i)
 
  709           s5  = s5+pdb(i)+pdb(-i)
 
  711         IF     ( mspr.EQ.2  .OR.  mspr.EQ.5  .OR.  mspr.EQ.6 ) 
THEN 
  713         ELSEIF ( mspr.EQ.3  .OR.  mspr.EQ.-1 ) 
THEN 
  714           pds = pda(0)*s5+pdb(0)*s4
 
  715         ELSEIF ( mspr.EQ.7 ) 
THEN 
  717         ELSEIF ( mspr.EQ.8 ) 
THEN 
  728       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
  730       parameter( 
maxpro = 8 , mline = 1000 , mscahd = 250 )
 
  731       COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
 
  732       COMMON /haoutl/ noutl,nouter,noutco
 
  733       COMMON /haevnt/ pt1,pt2,nhard,ntry,ihard,itry,irejev
 
  734       COMMON /hasca / ptwant,
a,aln,z1max,z1dif,z2max,z2dif,
 
  735      &                
pt,etac,etad,
x1,
x2,v,u,w,w1,axx,
weight,mspr,irejsc
 
  736       dimension pda(-6:6),pdb(-6:6)
 
  737       COMMON /haevtr/ line,lin,lrec1(mline),lrec2(mline),prec(0:3,mline)
 
  739       COMMON /haxsec/ xsecta(2,-1:
maxpro,4),xsect(5,-1:
maxpro),
 
  745         IF ( mxsect(0,m).EQ.1 ) xsect(2,0) = xsect(2,0)+xsect(2,m)
 
  756       b      = 
rndm(ai)*xsect(2,0)
 
  760       IF ( mxsect(0,mspr).EQ.1 ) sum = sum+xsect(2,mspr)
 
  761       IF ( sum.LT.b  .AND. mspr.LT.
maxpro ) goto 20
 
  766       IF ( iopt.EQ.0 ) goto 10
 
  770       IF( 
f .LE. 1.
d-15 ) 
f=0.
 
  771       xsect(3,mspr) = xsect(3,mspr)+
f 
  772       xsect(4,mspr) = xsect(4,mspr)+
f*
f 
  773       mxsect(1,mspr) = mxsect(1,mspr)+1
 
  792       mxsect(2,mspr) = mxsect(2,mspr)+1
 
  793       IF ( mspr.EQ.-1 ) mspr = 3
 
  796       scheck = 
rndm(ai)*pds
 
  797       IF     ( mspr.EQ.1  .OR.  mspr.EQ.4 ) 
THEN 
  800       ELSEIF ( mspr.EQ.2  .OR.  mspr.EQ.5  .OR.  mspr.EQ.6 ) 
THEN 
  802           IF ( ia.EQ.0 ) goto 610
 
  803           sum  = sum+pda(ia)*pdb(-ia)
 
  804           IF ( sum.GE.scheck ) goto 620
 
  807       ELSEIF ( mspr.EQ.3 ) 
THEN 
  810           IF ( ia.EQ.0 ) goto 630
 
  811           sum  = sum+pda(0)*pdb(ia)
 
  812           IF ( sum.GE.scheck ) goto 640
 
  813           sum  = sum+pda(ia)*pdb(0)
 
  814           IF ( sum.GE.scheck ) goto 650
 
  819       ELSEIF ( mspr.EQ.7 ) 
THEN 
  821           IF ( ia.EQ.0 ) goto 660
 
  822           sum  = sum+pda(ia)*pdb(ia)
 
  823           IF ( sum.GE.scheck ) goto 670
 
  826       ELSEIF ( mspr.EQ.8 ) 
THEN 
  828           IF ( ia.EQ.0 ) goto 690
 
  830             IF ( abs(ib).EQ.abs(ia)  .OR.  ib.EQ.0 ) goto 680
 
  831             sum = sum+pda(ia)*pdb(ib)
 
  832             IF ( sum.GE.scheck ) goto 700
 
  840       IF     ( mspr.EQ.2 ) 
THEN 
  843       ELSEIF ( mspr.EQ.4 ) 
THEN 
  844         ic = 
int(float(nf+nf)*
rndm(ai))+1
 
  845         IF ( ic.GT.nf ) ic = nf-ic
 
  847       ELSEIF ( mspr.EQ.6 ) 
THEN 
  848         ic = 
int(float(nf+nf-2)*
rndm(ai))+1
 
  849         IF ( ic.GT.nf-1 ) ic = nf-1-ic
 
  850         IF ( abs(ic).EQ.abs(ia) ) ic = sign(nf,ic)
 
  856       IF ( ((a1*a1)+(a2*a2)).GT.1.0d0 ) goto 30
 
  857       cosphi = ((a1*a1)-(a2*a2))/((a1*a1)+(a2*a2))
 
  858       sinphi = sign(((a1*a2)+(a1*a2))/((a1*a1)+(a2*a2)),
rndm(ai)-0.5)
 
  860       IF ( 
rndm(ai)*pda(ia).GT.pda(-ia) ) ia = sign(abs(ia)+10,ia)
 
  861       IF ( 
rndm(aj)*pdb(ib).GT.pdb(-ib) ) ib = sign(abs(ib)+10,ib)
 
  866       prec(3,line)  = 0.5*ecm*
x1 
  867       prec(0,line)  = prec(3,line)
 
  868       lrec1(line)   = ia+50+100*mspr
 
  873       prec(3,line)  =-0.5*ecm*
x2 
  874       prec(0,line)  =-prec(3,line)
 
  878       prec(1,line)  = 
pt*cosphi
 
  879       prec(2,line)  = 
pt*sinphi
 
  880       prec(3,line)  =-0.5*ecm*(u*
x1-v*
x2)
 
  881       prec(0,line)  =-0.5*ecm*(u*
x1+v*
x2)
 
  885       prec(1,line)  =-
pt*cosphi
 
  886       prec(2,line)  =-
pt*sinphi
 
  887       prec(3,line)  =-0.5*ecm*(v*
x1-u*
x2)
 
  888       prec(0,line)  =-0.5*ecm*(v*
x1+u*
x2)
 
  895       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
  897       parameter( 
maxpro = 8 , mline = 1000 , mscahd = 250 )
 
  898       COMMON /haoutl/ noutl,nouter,noutco
 
  899       COMMON /haevnt/ pt1,pt2,nhard,ntry,ihard,itry,irejev
 
  900       COMMON /haevtr/ line,lin,lrec1(mline),lrec2(mline),prec(0:3,mline)
 
  901       COMMON /harslt/ lscahd,lsc1hd,
 
  902      &                etahd(mscahd,2) ,pthd(mscahd),
 
  903      &                xhd(mscahd,2)   ,vhd(mscahd) ,x0hd(mscahd,2),
 
  904      &                ninhd(mscahd,2) ,nouthd(mscahd,2),
 
  905      &                n0inhd(mscahd,2),nbrahd(mscahd,2),nprohd(mscahd)
 
  908       IF ( noutl.GE.4 ) 
THEN 
  909       WRITE(6,1010) nhard,ihard,irejev
 
  910 1010  
FORMAT(
' ===HARD EVENT===    NHARD,NTRUE,REJECTIONS ',3i5,/
 
  911      &
'  IA IB IC ID     XA         XB         PT       YC       YD',
 
  914         phi = atan2(prec(1,4*
n-1),prec(2,4*
n-1))
 
  915         WRITE(6,1020) ninhd(
n,1),ninhd(
n,2),nouthd(
n,1),nouthd(
n,2),
 
  916      &             xhd(
n,1),xhd(
n,2),pthd(
n),etahd(
n,1),etahd(
n,2),
phi 
  917 1020    
FORMAT(1
x,4i3,2f11.7,4f9.3)
 
  920       IF ( noutl.GE.6 ) 
THEN 
  923 1030    
FORMAT(
'   EVENTRECORD')
 
  925           WRITE(6,1040) lrec1(l),lrec2(l),(prec(i,l),i=0,3)
 
  927 1040    
FORMAT(2i12,4(1pe12.4))
 
  944       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
  946       COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
 
  953       IF ( mspr.EQ.1 .OR. mspr.EQ.4 ) maxfl = 0
 
  959       IF     ( npd.EQ.1 .OR.  npd.EQ.2 ) 
THEN 
  961         WRITE(6,*) 
' unsupported PDF number: ',npd
 
  962       ELSEIF ( npd.GE.3 .AND. npd.LE.5 ) 
THEN 
  964         WRITE(6,*) 
' unsupported PDF number: ',npd
 
  967         WRITE(6,*) 
' unsupported PDF number: ',npd
 
  970         WRITE(6,*) 
' unsupported PDF number: ',npd
 
  973         WRITE(6,*) 
' unsupported PDF number: ',npd
 
  976         WRITE(6,*) 
' unsupported PDF number: ',npd
 
  977       ELSEIF(npd.EQ.10)
THEN 
  979         WRITE(6,*) 
' unsupported PDF number: ',npd
 
  980       ELSEIF(npd.EQ.11)
THEN 
  982         WRITE(6,*) 
' unsupported PDF number: ',npd
 
  983       ELSEIF(npd.EQ.12)
THEN 
  985         WRITE(6,*) 
' unsupported PDF number: ',npd
 
  987       ELSEIF((npd.GE.13).AND.(npd.LE.20)) 
THEN 
  989         WRITE(6,*) 
' unsupported PDF number: ',npd
 
  990       ELSEIF((npd.GE.21).AND.(npd.LE.23)) 
THEN 
  993         WRITE(6,*) 
' unsupported PDF number: ',npd
 
  997         IF ( pd(i).LT.1.
d-15 ) pd(i) = 0.0
 
 1000       IF ( ihatyp.EQ.-1 ) 
THEN 
 1074       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
 1083       dimension pdff(-6:2)
 
 1095       IF((mode.EQ.15)) 
THEN 
 1118       IF((mode.EQ.16)) 
THEN 
 1142       IF((mode.EQ.17)) 
THEN 
 1143       CALL 
structm(
x,
scale,upv,dnv,usea,dsea,str,chm,bot,top,glu)
 
 1190       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
 1192       parameter( 
maxpro = 8 , mline = 1000 , mscahd = 250 )
 
 1193       COMMON /hacons/ pi,pi2,pi4,gevtmb
 
 1194       COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
 
 1195       COMMON /hapadi/ npdm
 
 1196       COMMON /hapdco/ npdcor
 
 1197       COMMON /haqqap/ aqqal,aqqpd,nqqal,nqqpd
 
 1198       COMMON /haenvi/ nindep
 
 1199       COMMON /haoutl/ noutl,nouter,noutco
 
 1200       COMMON /hacuts/ ptl,ptu,etacl,etacu,etadl,etadu
 
 1201       COMMON /hagaup/ ngaup1,ngaup2,ngauet,ngauin
 
 1202       COMMON /haevtr/ line,lin,lrec1(mline),lrec2(mline),prec(0:3,mline)
 
 1203       COMMON /harslt/ lscahd,lsc1hd,
 
 1204      &                etahd(mscahd,2) ,pthd(mscahd),
 
 1205      &                xhd(mscahd,2)   ,vhd(mscahd) ,x0hd(mscahd,2),
 
 1206      &                ninhd(mscahd,2) ,nouthd(mscahd,2),
 
 1207      &                n0inhd(mscahd,2),nbrahd(mscahd,2),nprohd(mscahd)
 
 1209       COMMON /haxsec/ xsecta(2,-1:
maxpro,4),xsect(5,-1:
maxpro),
 
 1224 2000  
FORMAT(
'1***************************************************' 
 1225      & ,/,   
' MONTE-CARLO GENERATION OF HARD HADRONIC SCATTERINGS' 
 1226      & ,/,   
' ***************************************************',/)
 
 1231       IF ( inp(1:1).EQ.
'-' ) goto 10
 
 1233       READ(inp,1012,err=99) cw,
what 
 1238 1011  
FORMAT(
' *********.* CONTROL.CARD*****.',4(9
x,
'.'),/,1
x,a70,/)
 
 1239 1012  
FORMAT(a8,2
x,6e10.0)
 
 1240 1013  
FORMAT(
'     CARD IS INCORRECT, IGNORE AND TRY NEXT CARD',/)
 
 1244       IF     ( cw.EQ.
'END     ' ) 
THEN 
 1249 1030    
FORMAT(
' ******** END OF PROGRAM EXECUTION ********')
 
 1252       ELSEIF ( cw.EQ.
'COMMENT ' ) 
THEN 
 1261 20        
WRITE(6,1050) commnt
 
 1265       ELSEIF ( cw.EQ.
'ENERGYPT' ) 
THEN 
 1275         IF ( 
what(1).GT.0.0d0 ) ecm = 
what(1)
 
 1277           ptini(i) = 
what(i+1)
 
 1280       ELSEIF ( cw.EQ.
'PARDISTR' ) 
THEN 
 1301         IF ( ipd.GE.1 .AND. ipd.LE.15 ) npd = ipd
 
 1302         IF ( ipdm.EQ.1 ) npdm = ipdm
 
 1304       ELSEIF ( cw.EQ.
'CUTS    ' ) 
THEN 
 1326         IF ( ptu  .LE.ptl   ) ptu   = ptl  +1.0
 
 1327         IF ( etacu.LE.etacl ) etacu = etacl+1.0
 
 1328         IF ( etadu.LE.etadl ) etadu = etadl+1.0
 
 1330       ELSEIF ( cw.EQ.
'INTPOINT' ) 
THEN 
 1352       ELSEIF ( cw.EQ.
'FLAVOR  ' ) 
THEN 
 1357         IF ( nff.GE.0  .AND.  nff .LE.6 ) nf = nff
 
 1359       ELSEIF ( cw.EQ.
'PARTICLE' ) 
THEN 
 1368         IF ( abs(iha).EQ.1 ) nha = iha
 
 1370         IF ( abs(ihb).EQ.1 ) nhb = ihb
 
 1372       ELSEIF ( cw.EQ.
'OUTPUT  ' ) 
THEN 
 1382       ELSEIF ( cw.EQ.
'INIT    ' ) 
THEN 
 1388       ELSEIF ( cw.EQ.
'TESTINCL' ) 
THEN 
 1397           IF ( j.GE.1 .AND. j.LE.4 ) CALL 
hatest(j)
 
 1400       ELSEIF ( cw.EQ.
'TESTMC  ' ) 
THEN 
 1410         IF ( nevt.LE.0 ) nevt = 100
 
 1420       ELSEIF ( cw.EQ.
'SUBPRON ' ) 
THEN 
 1427           IF ( m.GE.1  .AND.  m.LE.
maxpro ) mxsect(0,m) = 1
 
 1429         mxsect(0,-1) = mxsect(0,3)
 
 1431       ELSEIF ( cw.EQ.
'SUBPROFF' ) 
THEN 
 1438           IF ( m.GE.1  .AND.  m.LE.
maxpro ) mxsect(0,m) = 0
 
 1440         mxsect(0,-1) = mxsect(0,3)
 
 1442       ELSEIF ( cw.EQ.
'HISOUT  ' ) 
THEN 
 1455           IF ( j.GE.1 .AND. j.LE.6 ) CALL 
hisout(j)
 
 1458       ELSEIF ( cw.EQ.
'HISINI  ' ) 
THEN 
 1464       ELSEIF ( cw.EQ.
'HARDSCAL' ) 
THEN 
 1480         IF ( 
what(2).GT.0.d0 )                   aqqal =     
what(2)
 
 1482         IF ( 
what(4).GT.0.d0 )                   aqqpd =     
what(4)
 
 1493       ELSEIF ( cw.EQ.
'PARDISCO' ) 
THEN 
 1504 9999    
FORMAT(
' ##### UNKNOWN CODEWORD;  CARD IS IGNORED ###',/)
 
 1521       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
 1523       parameter( 
maxpro = 8 , mline = 1000 , mscahd = 250 )
 
 1524       parameter( tiny= 1.
d-30, onep1=1.1d0 ,tiny6=1.
d-06)
 
 1525       COMMON /hacons/ pi,pi2,pi4,gevtmb
 
 1526       COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
 
 1527       COMMON /haqqap/ aqqal,aqqpd,nqqal,nqqpd
 
 1528       DOUBLE PRECISION ec,ed,xa,xb,sp,tp,up,
tt,uu,
 
 1530       dimension dsigmm(0:
maxpro),pda(-6:6),pdb(-6:6)
 
 1540       IF ( xa.GE.1.d0 .OR. xb.GE.1.d0 ) 
RETURN 
 1548       IF     ( nqqal.EQ.1 ) 
THEN 
 1550       ELSEIF ( nqqal.EQ.2 ) 
THEN 
 1552       ELSEIF ( nqqal.EQ.3 ) 
THEN 
 1553         qqal = aqqal*sp*(up*tp)**(1./3.)
 
 1554       ELSEIF ( nqqal.EQ.4 ) 
THEN 
 1555         qqal = aqqal*sp*up*tp/(1.+
tt+uu)
 
 1557       IF     ( nqqpd.EQ.1 ) 
THEN 
 1559       ELSEIF ( nqqpd.EQ.2 ) 
THEN 
 1561       ELSEIF ( nqqpd.EQ.3 ) 
THEN 
 1562         qqpd = aqqpd*sp*(up*tp)**(1./3.)
 
 1563       ELSEIF ( nqqpd.EQ.4 ) 
THEN 
 1564         qqpd = aqqpd*sp*up*tp/(1.+
tt+uu)
 
 1567       alpha  = bqcd/
log(max(qqal/alasqr,onep1))
 
 1568       factor = pi2*gevtmb*
pt*(alpha/sp)**2
 
 1580         s2  = s2+pda(i)*pdb(-i)+pda(-i)*pdb( i)
 
 1581         s3  = s3+pda(i)*pdb( i)+pda(-i)*pdb(-i)
 
 1582         s4  = s4+pda(i)+pda(-i)
 
 1583         s5  = s5+pdb(i)+pdb(-i)
 
 1587       dsigm(1) = 2.25*(3.-((up*tp)+up/
tt+tp/uu))
 
 1588       dsigm(6) = (4./9.)*(uu+
tt)
 
 1589       dsigm(8) = (4./9.)*(1.+uu)/
tt 
 1590       dsigm(2) = (16./27.)*(uu+
tt)/(up*tp)-3.*dsigm(6)
 
 1591       dsigm(3) = ((1.+uu)/
tt)-(4./9.)*(1.+uu)/up
 
 1592       dsigm(4) = (9./32.)*dsigm(2)
 
 1593       dsigm(5) = dsigm(6)+dsigm(8)-(8./27.)*uu/tp
 
 1594       dsigm(7) = 0.5*(dsigm(8)+(4./9.)*(1.+
tt)/uu-(8./27.)/(up*tp))
 
 1596       dsigm(1) = factor*dsigm(1)*s1
 
 1597       dsigm(2) = factor*dsigm(2)*s2
 
 1598       dsigm(3) = factor*dsigm(3)*(pda(0)*s5+pdb(0)*s4)
 
 1599       dsigm(4) = factor*dsigm(4)*s1*nf
 
 1600       dsigm(5) = factor*dsigm(5)*s2
 
 1601       dsigm(6) = factor*dsigm(6)*s2*max(0,(nf-1))
 
 1602       dsigm(7) = factor*dsigm(7)*s3
 
 1603       dsigm(8) = factor*dsigm(8)*(s4*s5-(s2+s3))
 
 1606         dsigm(0) = dsigm(0)+dsigm(m)
 
 1609         dsigmm(m) = dsigm(m)
 
 1617       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
 1619       parameter( 
maxpro = 8 , mline = 1000 , mscahd = 250 )
 
 1623       parameter( tiny= 1.
d-20 )
 
 1624       COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
 
 1625       COMMON /hagaup/ ngaup1,ngaup2,ngauet,ngauin
 
 1627       dimension absz(32),weig(32)
 
 1634       IF  ( arg.LE.ec .OR. arg.LE.1./ec ) 
RETURN 
 1636       edl =-
log(arg-1./ec)
 
 1638       CALL 
gset(edl,edu,npoint,absz,weig)
 
 1640         CALL 
csj2m(
pt,etac,absz(i),dsig1)
 
 1643           pctrl= dsig1(m)/tiny
 
 1645           IF( pctrl.GE.1.d0 ) 
THEN 
 1646             dsigm(m) = dsigm(m)+weig(i)*dsig1(m)
 
 1656       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
 1658       parameter( 
maxpro = 8 , mline = 1000 , mscahd = 250 )
 
 1659       COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
 
 1660       COMMON /hagaup/ ngaup1,ngaup2,ngauet,ngauin
 
 1662       dimension absz(32),weig(32)
 
 1668       IF ( amt.GE.1.d0 ) 
RETURN 
 1669       ecu = 
log((
sqrt(1.-amt*amt)+1.)/amt)
 
 1672       CALL 
gset(ecl,ecu,npoint,absz,weig)
 
 1676           dsigm(m) = dsigm(m)+weig(i)*dsig1(m)
 
 1687       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
 1689       parameter( 
maxpro = 8 , mline = 1000 , mscahd = 250 )
 
 1690       COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
 
 1691       COMMON /hagaup/ ngaup1,ngaup2,ngauet,ngauin
 
 1692       COMMON /xsecpt/ ptcut,sigs,dsigh
 
 1694       dimension absz(32),weig(32)
 
 1700       IF ( ptini(1).GE.ecm/2.d0 ) 
RETURN 
 1703       ptmax  = min(fac*ptmin,ecm/2.)
 
 1708  1000 
FORMAT(1
x,
' d sigma/ p_t d p_t ',e12.5)
 
 1712       ex     = 
log(sig1/(dsig1(0)+1.
e-30))/
log(fac)
 
 1715         IF ( ptmin.GE.ptmax ) goto 40
 
 1718         CALL 
gset(rl,ru,npoint,absz,weig)
 
 1723           f  = weig(i)*
pt/(
r*ex1)
 
 1725             dsigm(m) = dsigm(m)+
f*dsig1(m)
 
 1747       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
 1749       parameter( 
maxpro = 8 , mline = 1000 , mscahd = 250 )
 
 1750       parameter( tiny= 1.
d-30, 
one=1.d0 ,tiny6=1.
d-06,
zero=0.)
 
 1751       COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
 
 1753       COMMON /haxsec/ xsecta(2,-1:
maxpro,4),xsect(5,-1:
maxpro),
 
 1756       CHARACTER*11 pdset,partic
 
 1757       COMMON /peproc/ proc(0:
maxpro),pdset(23),partic(-1:1)
 
 1759       COMMON /histo / pt10,dpt1,eta10,deta1,pt20,dpt2,eta20,deta2,
 
 1760      &                
x(50,-5:5),ab(50,-5:5),hpe(50,-5:5),hep(50,5),
 
 1761      &                hpm(50,8),hem(50,8),hp(50),he(50),
 
 1770       xsect(2,0) = xsect(2,-1)
 
 1771       mxsect(1,0) = mxsect(1,-1)
 
 1772       mxsect(2,0) = mxsect(2,-1)
 
 1774         mxsect(1,0) = mxsect(1,0)+mxsect(1,m)
 
 1775         mxsect(2,0) = mxsect(2,0)+mxsect(2,m)
 
 1776 7       xsect(2,0) = xsect(2,0)+xsect(2,m)
 
 1778 1010  
FORMAT(1
x,20(
'=='),
' HISTO-OUTPUT ',i2,1
x,10(
'=='),/)
 
 1779       IF ( iout.EQ.1 ) 
THEN 
 1781 1040    
FORMAT(
'      PROCESS',15
x,
'EVENTS',22
x,
'HARD CROSS SECTION',/,
 
 1782      &         25
x,
'TOTAL  ACCEPT.',10
x,
'MONTE-CARLO',11
x,
'INCLUSIVE')
 
 1788           IF ( mxsect(1,m).GT.0 ) 
THEN 
 1789             sig(m)   = xsect(3,m)/mxsect(1,m)
 
 1790             stdev(m) = 
sqrt(max(
zero,xsect(4,m)-xsect(3,m)*sig(m)))/
 
 1793           IF ( m.EQ.3 .AND. mxsect(1,-1).GT.0 ) 
THEN 
 1794             sigg     = xsect(3,-1)/mxsect(1,-1)
 
 1795             sig(3)   = sig(3)+sigg
 
 1797      &       +
sqrt(max(
zero,xsect(4,-1)-xsect(3,-1)*sigg))/mxsect(1,-1)
 
 1799           sigsum = sigsum+sig(m)
 
 1800           stdevs = stdevs+stdev(m)
 
 1802         mxsect(1,3) = mxsect(1,3)+mxsect(1,-1)
 
 1803         mxsect(2,3) = mxsect(2,3)+mxsect(2,-1)
 
 1804         WRITE(6,1050) proc(0),(mxsect(l,0),l=0,2),
 
 1805      &                sigsum,stdevs,xsect(5,0)
 
 1807           IF ( mxsect(0,m).EQ.1 ) 
WRITE(6,1050) proc(m),
 
 1808      &              (mxsect(l,m),l=0,2),sig(m),stdev(m),xsect(5,m)
 
 1810 1050      
FORMAT(a19,i3,2i8,e14.4,
' +- ',e10.4,e14.4)
 
 1811         mxsect(1,3) = mxsect(1,3)-mxsect(1,-1)
 
 1812         mxsect(2,3) = mxsect(2,3)-mxsect(2,-1)
 
 1813       ELSEIF ( iout.EQ.2 ) 
THEN 
 1814         fac = xsect(2,0)/(dpt1*mxsect(1,0))
 
 1816           ab(i,1) = pt10+(i-1)*dpt1
 
 1817           IF ( hp(i).GT.1.
d-35 ) 
x(i,1) = log10(fac*hp(i))
 
 1820 1060    
FORMAT(
'  JET CROSS SECTION  PT-DISTRIBUTION',/)
 
 1821         CALL 
plot(ab(1,1),
x(1,1),50,1,50,pt10,dpt1,xsmin,xsstep)
 
 1822       ELSEIF ( iout.EQ.3 ) 
THEN 
 1823         fac = xsect(2,0)/(dpt1*mxsect(1,0))
 
 1825           pt = pt10+(i-1)*dpt1
 
 1828             IF ( hpm(i,j).GT.1.
d-35 ) 
x(i,j-6) = log10(fac*hpm(i,j))
 
 1832 1070    
FORMAT(
'  JET CROSS SECTION  PT-DISTRIBUTION',/,
 
 1833      &         
'                     FOR THE DIFF. SUBPROCESSES',/)
 
 1834         CALL 
plot(ab,
x,400,8,50,pt10,dpt1,xsmin,xsstep)
 
 1835       ELSEIF ( iout.EQ.4 ) 
THEN 
 1836         fac = xsect(2,0)/(dpt1*deta1*mxsect(1,0))
 
 1838           pt = pt10+(i-1)*dpt1
 
 1841             IF ( hpe(i,j).GT.1.
d-35 ) 
x(i,j) = log10(fac*hpe(i,j))
 
 1844         WRITE(6,1080) eta10,-eta10
 
 1845 1080    
FORMAT(
'  JET CROSS SECTION  PT-DISTRIBUTION',/,
 
 1846      &         
'                     RAP.=',f5.2,
'...',
f4.2,/)
 
 1847         CALL 
plot(ab,
x,550,11,50,pt10,dpt1,xsmin,xsstep)
 
 1848       ELSEIF ( iout.EQ.5 ) 
THEN 
 1849         fac = xsect(2,0)/(deta2*dpt2*mxsect(1,0))
 
 1851           eta = eta20+(i-1)*deta2
 
 1854             IF ( hep(i,j).GT.1.
d-35 ) 
x(i,j) = log10(fac*hep(i,j))
 
 1857         WRITE(6,1090) pt20,pt20+4.*dpt2
 
 1858 1090    
FORMAT(
'  JET CROSS SECTION   RAP.-DISTRIBUTION',/,
 
 1859      &         
'                      PT=',f6.2,
'...',f6.2,/)
 
 1860         CALL 
plot(ab(1,1),
x(1,1),250,5,50,eta20,deta2,xsmin,xsstep)
 
 1861       ELSEIF ( iout.EQ.6 ) 
THEN 
 1862         fac = xsect(2,0)/(deta2*mxsect(1,0))
 
 1864           eta = eta20+(i-1)*deta2
 
 1867             IF ( hem(i,j).GT.1.
d-35 ) 
x(i,j-6) = log10(fac*hem(i,j))
 
 1871 1100    
FORMAT(
'  JET CROSS SECTION  RAP.-DISTRIBUTION',/,
 
 1872      &         
'                     FOR THE DIFF. SUBPROCESSES',/)
 
 1873         CALL 
plot(ab,
x,400,8,50,eta20,deta2,xsmin,xsstep)
 
 1882       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
 1884       parameter( 
maxpro = 8 , mline = 1000 , mscahd = 250 )
 
 1886       COMMON /histo / pt10,dpt1,eta10,deta1,pt20,dpt2,eta20,deta2,
 
 1887      &                
x(50,-5:5),ab(50,-5:5),hpe(50,-5:5),hep(50,5),
 
 1888      &                hpm(50,8),hem(50,8),hp(50),he(50),
 
 1915       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
 1917       parameter( 
maxpro = 8 , mline = 1000 , mscahd = 250 )
 
 1918       COMMON /haevtr/ line,lin,lrec1(mline),lrec2(mline),prec(0:3,mline)
 
 1919       COMMON /harslt/ lscahd,lsc1hd,
 
 1920      &                etahd(mscahd,2) ,pthd(mscahd),
 
 1921      &                xhd(mscahd,2)   ,vhd(mscahd) ,x0hd(mscahd,2),
 
 1922      &                ninhd(mscahd,2) ,nouthd(mscahd,2),
 
 1923      &                n0inhd(mscahd,2),nbrahd(mscahd,2),nprohd(mscahd)
 
 1925       COMMON /histo / pt10,dpt1,eta10,deta1,pt20,dpt2,eta20,deta2,
 
 1926      &                
x(50,-5:5),ab(50,-5:5),hpe(50,-5:5),hep(50,5),
 
 1927      &                hpm(50,8),hem(50,8),hp(50),he(50),
 
 1934           ipt1   = 
int((pthd(
n)-pt10)/dpt1)+1
 
 1935           ieta1  = 
int((etahd(
n,k)-eta10)/deta1+0.5)-5
 
 1936           ipt2   = 
int((pthd(
n)-pt20)/dpt2)+1
 
 1937           ieta2  = 
int((etahd(
n,k)-eta20)/deta2+0.5)
 
 1938           IF ( ipt1.GE. 1 .AND. ipt1.LE.50 ) 
THEN 
 1939             hpm(ipt1,mspr)  = hpm(ipt1,mspr)+1.
 
 1940             hp(ipt1)        = hp(ipt1)+1.
 
 1941             IF ( abs(ieta1).LE.5 ) hpe(ipt1,ieta1) = hpe(ipt1,ieta1)+1.
 
 1943           IF ( ieta2.GE. 1 .AND. ieta2.LE.50 ) 
THEN 
 1944             hem(ieta2,mspr) = hem(ieta2,mspr)+1.
 
 1945             he(ieta2)       = he(ieta2)+1.
 
 1946             IF ( ipt2.GE.1 .AND. ipt2.LE.5 ) hep(ieta2,ipt2) =
 
 1947      &                                              hep(ieta2,ipt2)+1.
 
 1955       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
 1957       parameter( 
maxpro = 8 , mline = 1000 , mscahd = 250 )
 
 1958       COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
 
 1960       CHARACTER*11 pdset,partic
 
 1961       COMMON /peproc/ proc(0:
maxpro),pdset(23),partic(-1:1)
 
 1963       COMMON /histo / vvv(50),xs(50,6),ab(50,6),dsig(0:
maxpro),pd(-6:6),
 
 1965       IF ( iout.EQ.1 ) 
THEN 
 1967         WRITE(6,1010) ecm,ptini(1),(proc(m),dsig(m),m=0,
maxpro)
 
 1968 1010    
FORMAT(
'  HARD CROSS SECTIONS FOR SINGLE PROCESSES',/,
 
 1969      &   
'  AT CM-ENERGY=',e8.1,
' AND PTMIN=',f5.1,/,9(a25,e14.6,/))
 
 1970       ELSEIF ( iout.EQ.2 ) 
THEN 
 1988             CALL 
jtpdis(vvv(j),qq,1,1,pd)
 
 1989             IF ( pd(0).GT.1.
d-30 ) xs(j,i) = log10(pd(0))
 
 1992 1020    
FORMAT(
'   GLUONDISTRIBUTION OVER LOG10(X)  ( Q**2=10**I;',
 
 1994         CALL 
plot(ab,xs,250,5,50,ymax,-
dy,pdmin,pdstep)
 
 1995       ELSEIF ( iout.EQ.3 ) 
THEN 
 1999           b         = float(i-1)*qqstep+qqmin
 
 2011             IF ( pd(0).GT.1.
d-30 ) xs(i,j) = log10(pd(0))
 
 2014 1030    
FORMAT(
'   GLUONDISTRIBUTION OVER LOG10(Q**2)  ( X=10**(-I)' 
 2016         CALL 
plot(ab,xs,200,4,50,qqmin,qqstep,pdmin,pdstep)
 
 2017       ELSEIF ( iout.EQ.4 ) 
THEN 
 2024           pt        = (i-1)*ptstep+ptmin
 
 2034             IF ( dsig(0).GT.1.
d-30 ) xs(i,1) = log10(dsig(0))
 
 2037 1040    
FORMAT(
'  DIFFERENTIAL HARD CROSS SECTION OVER PT , RAP.=0.')
 
 2038         CALL 
plot(ab,xs,50,1,50,ptmin,ptstep,xsmin,xsstep)
 
 2057       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
 2059       parameter( 
maxpro = 8 , mline = 1000 , mscahd = 250 )
 
 2060       COMMON /hacons/ pi,pi2,pi4,gevtmb
 
 2061       COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
 
 2062       COMMON /hapdco/ npdcor
 
 2063       COMMON /haqqap/ aqqal,aqqpd,nqqal,nqqpd
 
 2064       COMMON /haoutl/ noutl,nouter,noutco
 
 2066       COMMON /haxsec/ xsecta(2,-1:
maxpro,4),xsect(5,-1:
maxpro),
 
 2069       CHARACTER*11 pdset,partic
 
 2070       COMMON /peproc/ proc(0:
maxpro),pdset(23),partic(-1:1)
 
 2071       dimension dsig(0:
maxpro),alam(23),q0s(23)
 
 2072       DATA alam / 0.20, 0.29, 0.107, 0.250, 0.178, 0.25,
 
 2073      *            0.10, 0.19, 0.190, 0.190, 0.190, 0.19,
 
 2074      *            0.215,0.215,0.215,
 
 2075      *            0.231,0.231,0.322, 0.247, 0.168,0.2,0.2,0.202 /
 
 2076       DATA q0s  / 5.0 , 5.0 , 5.0  , 5.0  , 5.0 , 0.2,
 
 2077      *            5.0 , 5.0 , 5.0  , 5.0  , 5.0 , 5.0,
 
 2078      *            5.0 , 5.0 , 5.0  , 4.0  , 4.0 , 4.0,
 
 2079      *            4.0 , 4.0 ,  0.4 ,0.4 ,1.60     /
 
 2081         IF ( noutl.GE.1 )CALL 
timdat 
 2082         alasqr = alam(npd)**2
 
 2084         bqcd   = pi4/(11.-(2./3.)*nf)
 
 2088           IF ( ptini(i).LE..5d0.OR.ptini(i).GE.ecm*.5d0)ptini(i)=1.
d+30
 
 2089           IF ( ptini(i).NE.1.
d+30 ) ini = ini+1
 
 2093             IF ( ptini(j).LT.ptini(i) ) 
THEN 
 2114           IF ( noutl.GE.10 ) 
WRITE(6,1060) ptini(i)
 
 2115 1060      
FORMAT(
' NORMALIZATION FOR PTMIN=',f10.4,
' CALCULATED')
 
 2117           IF ( noutl.GE.10 ) 
WRITE(6,1070) ptini(i)
 
 2118 1070      
FORMAT(
' MAXIMA FOR PTMIN=',f10.4,
' CALCULATED')
 
 2119           xsecta(1,0,i)   = ptini(i)
 
 2121             xsecta(1,m,i) = xsect(1,m)
 
 2122             xsecta(2,m,i) = xsect(2,m)
 
 2128           xsect(5,m) = dsig(m)
 
 2133         IF ( noutl.GE.10 ) 
WRITE(6,
'(/,1X,70(1H*))')
 
 2134         WRITE(6,1057) ptini(1),pdset(npd),
sqrt(alasqr),q0sqr
 
 2136      &         
' --- parameters of the hard scattering program ---',/,
 
 2137      &         
'       MIN. PT       :',f15.1,/,
 
 2138      &         
'       PARTON-DISTR. :',a15,/,
 
 2139      &         
'       LAMBDA        :',f15.3,/,
 
 2140      &         
'       Q0**2         :',f15.3,/)
 
 2141       IF ( noutl.GE.1 ) 
THEN 
 2142         WRITE(6,1050) partic(nha),partic(nhb),ecm,ptini(1),pdset(npd),
 
 2143      &                
sqrt(alasqr),q0sqr,npdcor,nqqal,aqqal,nqqpd,aqqpd
 
 2144 1050    
FORMAT(/,1
x,70(
'*'),/,
 
 2145      &         
'  HARD SCATTERING PROGRAM IS INITIALIZED FOR',/,
 
 2146      &         
'    PROJECTILE    :',a15,/,
 
 2147      &         
'    TARGET        :',a15,/,
 
 2148      &         
'    CM-ENERGY     :',f15.1,/,
 
 2149      &         
'    MIN. PT       :',f15.1,/,
 
 2150      &         
'    PARTON-DISTR. :',a15,/,
 
 2151      &         
'    LAMBDA        :',f15.3,/,
 
 2152      &         
'    Q0**2         :',f15.3,/,
 
 2153      &         
'    NPDCOR        :',i15,/,
 
 2155      &         
'    AQQAL         :',f15.3,/,
 
 2157      &         
'    AQQPD         :',f15.3,/)
 
 2164       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
 2166       parameter( 
maxpro = 8 , mline = 1000 , mscahd = 250 )
 
 2167       parameter( mxabwt = 1000 )
 
 2168       parameter( 
zero=0.d0, 
one=1.d0)
 
 2169       COMMON /hacons/ pi,pi2,pi4,gevtmb
 
 2170       COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
 
 2171       COMMON /hagaup/ ngaup1,ngaup2,ngauet,ngauin
 
 2173       COMMON /haxsec/ xsecta(2,-1:
maxpro,4),xsect(5,-1:
maxpro),
 
 2175       dimension       absz(mxabwt),weig(mxabwt)
 
 2177       DATA f124 / 1.,0.,4.,2.,2.,2.,4.,1.,4.,4. /
 
 2179       a      = (2.*ptini(ind)/ecm)**2
 
 2194           z2 = (1.-z1)*absz(i2)
 
 2206             va  =-0.5*w1/(w1+
z*w)
 
 2208             vb  =-0.5*faxx/(w1+2.*w*
z)
 
 2210             vc  =-
exp(hln+
z*wlog)
 
 2214             s(1)  = 
s(1)+(1.+w)*2.25*(va*va*(3.-ua*va-va/(ua*ua))-ua)*
 
 2216             s(2)  = 
s(2)+(vc*vc+uc*uc)*((16./27.)/uc-(4./3.)*vc)*fww*
 
 2218             s(3)  = 
s(3)+(1.+w)*(1.+ua*ua)*(1.-(4./9.)*va*va/ua)*weig(i)
 
 2219             s(5)  = 
s(5)+((4./9.)*(1.+ub*ub+(ub*ub+vb*vb)*vb*vb)-
 
 2220      &            (8./27.)*ua*ua*va)*weig(i)
 
 2221             s(6)  = 
s(6)+(4./9.)*(ue*ue+ve*ve)*faxx*weig(i)
 
 2222             s(7)  = 
s(7)+(1.+w)*((2./9.)*(1.+ua*ua+(1.+va*va)*va*va/
 
 2223      &            (ua*ua))-(4./27.)*va/ua)*weig(i)
 
 2224             s(8)  = 
s(8)+(4./9.)*(1.+ub*ub)*weig(i)
 
 2225             s(-1) = 
s(-1)+(1.+vc*vc)*(vc/(uc*uc)-(4./9.))*fww*weig(i)
 
 2227           s(4)    = 
s(2)*(9./32.)
 
 2229             s2(m) = s2(m)+
s(m)*weig(i2)*w
 
 2233           s1(m) = s1(m)+s2(m)*(1.-z1)*weig(i1)
 
 2236       fff    = pi*gevtmb*aln*aln/(
a*ecm*ecm)
 
 2238         xsect(1,m) = 
fff*f124(m)*s1(m)
 
 2240       xsect(1,4) = xsect(1,4)*nf
 
 2241       xsect(1,6) = xsect(1,6)*max(0,nf-1)
 
 2246       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
 2248       parameter( 
maxpro = 8 , mline = 1000 , mscahd = 250 )
 
 2249       parameter( nkm = 5 )
 
 2250       parameter( tiny= 1.
d-30 )
 
 2251       COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
 
 2253       COMMON /haxsec/ xsecta(2,-1:
maxpro,4),xsect(5,-1:
maxpro),
 
 2255       dimension 
z(3),
d(3),
ff(nkm)
 
 2272             IF ( 
f2.GT.
f3 ) 
z(i) = 
z(i)-
d(i)
 
 2273             IF ( 
f2.GT.
f3 ) 
d(i) =-
d(i)
 
 2278               IF ( 
f3.GT.
f2 ) goto 20
 
 2285           IF ( abs(fold-
f2)/
f2.GT.0.002d0.OR. it.LT.3 ) goto 10
 
 2288       xsect(2,1) = 
ff(1)*xsect(1,1)
 
 2289       xsect(2,2) = 
ff(2)*xsect(1,2)
 
 2290       xsect(2,3) = 
ff(4)*xsect(1,3)
 
 2291       xsect(2,4) = 
ff(1)*xsect(1,4)
 
 2292       xsect(2,5) = 
ff(2)*xsect(1,5)
 
 2293       xsect(2,6) = 
ff(2)*xsect(1,6)
 
 2294       xsect(2,7) = 
ff(3)*xsect(1,7)
 
 2295       xsect(2,8) = 
ff(5)*xsect(1,8)
 
 2296       xsect(2,-1)= 
ff(4)*xsect(1,-1)
 
 2301       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
 2303       parameter( 
maxpro = 8 , mline = 1000 , mscahd = 250 )
 
 2304       parameter( nkm = 5 )
 
 2305       parameter( tiny= 1.
d-30, 
one=1.d0 ,tiny6=1.
d-06,
zero=0.d0)
 
 2306       COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
 
 2307       COMMON /haqqap/ aqqal,aqqpd,nqqal,nqqpd
 
 2308       dimension 
f(nkm),pda(-6:6),pdb(-6:6),
z(3)
 
 2312       IF ( 
z(1).LE.0.0d0  .OR.  
z(1).GE.1.0d0 ) 
RETURN 
 2313       IF ( 
z(2).LE.0.0d0  .OR.  
z(2).GE.1.0d0 ) 
RETURN 
 2314       IF ( 
z(3).LT.0.0d0  .OR.  
z(3).GT.1.0d0 ) 
RETURN 
 2315       a     = (2.*ptini(ind)/ecm)**2
 
 2322       v   =-0.5+w*(
z(3)-0.5)
 
 2324       pt  = max(ptini(ind),
sqrt(u*v*
y1*ecm*ecm))
 
 2326       IF     ( nqqal.EQ.1 ) 
THEN 
 2328       ELSEIF ( nqqal.EQ.2 ) 
THEN 
 2329         qqal = aqqal*
y1*ecm*ecm
 
 2330       ELSEIF ( nqqal.EQ.3 ) 
THEN 
 2331         qqal = aqqal*
y1*ecm*ecm*(u*v)**(1./3.)
 
 2332       ELSEIF ( nqqal.EQ.4 ) 
THEN 
 2333         qqal = aqqal*
y1*ecm*ecm*u*v/(1.+v*v+u*u)
 
 2335       IF     ( nqqpd.EQ.1 ) 
THEN 
 2337       ELSEIF ( nqqpd.EQ.2 ) 
THEN 
 2338         qqpd = aqqpd*
y1*ecm*ecm
 
 2339       ELSEIF ( nqqpd.EQ.3 ) 
THEN 
 2340         qqpd = aqqpd*
y1*ecm*ecm*(u*v)**(1./3.)
 
 2341       ELSEIF ( nqqpd.EQ.4 ) 
THEN 
 2342         qqpd = aqqpd*
y1*ecm*ecm*u*v/(1.+v*v+u*u)
 
 2344       factor = (bqcd/
log(max(qqal/alasqr,1.1*
one)))**2
 
 2353         f(2) = 
f(2)+pda(i)*pdb(-i)+pda(-i)*pdb( i)
 
 2354         f(3) = 
f(3)+pda(i)*pdb( i)+pda(-i)*pdb(-i)
 
 2355         f(4) = 
f(4)+pda(i)+pda(-i)
 
 2356         f(5) = 
f(5)+pdb(i)+pdb(-i)
 
 2358       f(1)   = pda(0)*pdb(0)
 
 2359       t      = pda(0)*
f(5)+pdb(0)*
f(4)
 
 2360       f(5)   = 
f(4)*
f(5)-(
f(2)+
f(3))
 
 2362       fdis   = max(
zero,
f(nkon)*factor)
 
 2367       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
 2369       parameter( 
maxpro = 8 , mline = 1000 , mscahd = 250 )
 
 2370       COMMON /hacons/ pi,pi2,pi4,gevtmb
 
 2371       COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
 
 2372       COMMON /hapadi/ npdm
 
 2373       COMMON /hapdco/ npdcor
 
 2374       COMMON /haqqap/ aqqal,aqqpd,nqqal,nqqpd
 
 2375       COMMON /haoutl/ noutl,nouter,noutco
 
 2376       COMMON /hacuts/ ptl,ptu,etacl,etacu,etadl,etadu
 
 2377       COMMON /hagaup/ ngaup1,ngaup2,ngauet,ngauin
 
 2378       COMMON /haevtr/ line,lin,lrec1(mline),lrec2(mline),prec(0:3,mline)
 
 2380       COMMON /haxsec/ xsecta(2,-1:
maxpro,4),xsect(5,-1:
maxpro),
 
 2382       COMMON /haxsum/xshmx
 
 2399       bqcd     = pi4/(11.0-(2./3.)*nf)
 
 2451       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
 2453       parameter( 
maxpro = 8 , mline = 1000 , mscahd = 250 )
 
 2455       CHARACTER*11 pdset,partic
 
 2456       COMMON /peproc/ proc(0:
maxpro),pdset(23),partic(-1:1)
 
 2458       DATA proc   /  
'SUM OVER PROCESSES', 
'G  +G  --> G  +G  ',
 
 2459      &               
'Q  +QB --> G  +G  ', 
'G  +Q  --> G  +Q  ',
 
 2460      &               
'G  +G  --> Q  +QB ', 
'Q  +QB --> Q  +QB ',
 
 2461      &               
'Q  +QB --> QS +QBS', 
'Q  +Q  --> Q  +Q  ',
 
 2462      &               
'Q  +QS --> Q  +QS '                       /
 
 2463       DATA pdset  / 
' EHLQ SET 1',
' EHLQ SET 2',
' MRS  SET 1',
 
 2464      &              
' MRS  SET 2',
' MRS  SET 3',
' GRV LO    ',
 
 2465      &              
' HMRS SET 1',
' HMRS SET 2',
' KMRS SET 1',
 
 2466      &              
' KMRS SET 2',
' KMRS SET 3',
' KMRS SET 4',
 
 2467      &              
' MRS(S0)   ',
' MRS(D0)   ',
' MRS(D-)   ',
 
 2468      &              
' CTEQ 1M   ',
' CTEQ 1MS  ',
' CTEQ 1ML  ',
 
 2469      &              
' CTEQ 1D   ',
' CTEQ 1L   ',
' GRV94LO1  ' ,
 
 2470      &              
' GRV98LO   ',
' CTEQ96    '/
 
 2471       DATA partic / 
' ANTIPROTON',
'           ',
'     PROTON'   /
 
 2527        SUBROUTINE dor94lo (X, Q2, UV, DV, DEL, UDB, SB, GL)
 
 2528        IMPLICIT DOUBLE PRECISION (
a - 
z)
 
 2531        lam2 = 0.2322 * 0.2322
 
 2537        nu  =  2.284 + 0.802 * 
s + 0.055 * s2
 
 2538        aku =  0.590 - 0.024 * 
s 
 2539        bku =  0.131 + 0.063 * 
s 
 2540        au  = -0.449 - 0.138 * 
s - 0.076 * s2
 
 2541        bu  =  0.213 + 2.669 * 
s - 0.728 * s2
 
 2542        cu  =  8.854 - 9.135 * 
s + 1.979 * s2
 
 2543        du  =  2.997 + 0.753 * 
s - 0.076 * s2
 
 2544        uv  = 
dor94fv(
x, nu, aku, bku, au, bu, cu, du)
 
 2546        nd  =  0.371 + 0.083 * 
s + 0.039 * s2
 
 2548        bkd =  0.486 + 0.062 * 
s 
 2549        ad  = -0.509 + 3.310 * 
s - 1.248 * s2
 
 2550        bd  =  12.41 - 10.52 * 
s + 2.267 * s2
 
 2551        cd  =  6.373 - 6.208 * 
s + 1.418 * s2
 
 2552        dd  =  3.691 + 0.799 * 
s - 0.071 * s2
 
 2553        dv  = 
dor94fv(
x, nd, akd, bkd, ad, bd, cd, dd)
 
 2555        ne  =  0.082 + 0.014 * 
s + 0.008 * s2
 
 2556        ake =  0.409 - 0.005 * 
s 
 2557        bke =  0.799 + 0.071 * 
s 
 2558        ae  = -38.07 + 36.13 * 
s - 0.656 * s2
 
 2559        be  =  90.31 - 74.15 * 
s + 7.645 * s2
 
 2561        de  =  7.486 + 1.217 * 
s - 0.159 * s2
 
 2562        del = 
dor94fv(
x, ne, ake, bke, ae, be, ce, de)
 
 2566        akx =  0.410 - 0.232 * 
s 
 2567        bkx =  0.534 - 0.457 * 
s 
 2568        agx =  0.890 - 0.140 * 
s 
 2570        cx  =  0.320 + 0.683 * 
s 
 2571        dx  =  4.752 + 1.164 * 
s + 0.286 * s2
 
 2572        ex  =  4.119 + 1.713 * 
s 
 2573        esx =  0.682 + 2.978 * 
s 
 2574        udb=
dor94fw(
x, 
s, alx, bex, akx, bkx, agx, bgx, cx, 
dx, ex, esx)
 
 2578        aks =  1.798 - 0.596 * 
s 
 2579        as  = -5.548 + 3.669 * ds - 0.616 * 
s 
 2580        bs  =  18.92 - 16.73 * ds + 5.168 * 
s 
 2581        dst =  6.379 - 0.350 * 
s  + 0.142 * s2
 
 2582        est =  3.981 + 1.638 * 
s 
 2584        sb  = 
dor94fs(
x, 
s, als, bes, aks, as, bs, dst, est, ess)
 
 2588        akg =  1.742 - 0.930 * 
s 
 2590        ag  =  7.486 - 2.185 * 
s 
 2591        bg  =  16.69 - 22.74 * 
s  + 5.779 * s2
 
 2592        cg  = -25.59 + 29.71 * 
s  - 7.296 * s2
 
 2593        dg  =  2.792 + 2.215 * 
s  + 0.422 * s2 - 0.104 * s3
 
 2594        eg  =  0.807 + 2.005 * 
s 
 2595        esg =  3.841 + 0.316 * 
s 
 2596        gl =
dor94fw(
x, 
s, alg, beg, akg, bkg, ag, bg, cg, dg, eg, esg)
 
 2602        SUBROUTINE dor94ho (X, Q2, UV, DV, DEL, UDB, SB, GL)
 
 2603        IMPLICIT DOUBLE PRECISION (
a - 
z)
 
 2606        lam2 = 0.248 * 0.248
 
 2612        nu  =  1.304 + 0.863 * 
s 
 2613        aku =  0.558 - 0.020 * 
s 
 2615        au  = -0.113 + 0.283 * 
s - 0.321 * s2
 
 2616        bu  =  6.843 - 5.089 * 
s + 2.647 * s2 - 0.527 * s3
 
 2617        cu  =  7.771 - 10.09 * 
s + 2.630 * s2
 
 2618        du  =  3.315 + 1.145 * 
s - 0.583 * s2 + 0.154 * s3
 
 2619        uv  = 
dor94fv(
x, nu, aku, bku, au, bu, cu, du)
 
 2621        nd  =  0.102 - 0.017 * 
s + 0.005 * s2
 
 2622        akd =  0.270 - 0.019 * 
s 
 2624        ad  =  2.393 + 6.228 * 
s - 0.881 * s2
 
 2625        bd  =  46.06 + 4.673 * 
s - 14.98 * s2 + 1.331 * s3
 
 2626        cd  =  17.83 - 53.47 * 
s + 21.24 * s2
 
 2627        dd  =  4.081 + 0.976 * 
s - 0.485 * s2 + 0.152 * s3
 
 2628        dv  = 
dor94fv(
x, nd, akd, bkd, ad, bd, cd, dd)
 
 2630        ne  =  0.070 + 0.042 * 
s - 0.011 * s2 + 0.004 * s3
 
 2631        ake =  0.409 - 0.007 * 
s 
 2632        bke =  0.782 + 0.082 * 
s 
 2633        ae  = -29.65 + 26.49 * 
s + 5.429 * s2
 
 2634        be  =  90.20 - 74.97 * 
s + 4.526 * s2
 
 2636        de  =  8.122 + 2.120 * 
s - 1.088 * s2 + 0.231 * s3
 
 2637        del = 
dor94fv(
x, ne, ake, bke, ae, be, ce, de)
 
 2644        bgx =  3.210 - 1.866 * 
s 
 2646        dx  =  9.010 + 0.896 * ds + 0.222 * s2
 
 2647        ex  =  3.077 + 1.446 * 
s 
 2648        esx =  3.173 - 2.445 * ds + 2.207 * 
s 
 2649        udb=
dor94fw(
x, 
s, alx, bex, akx, bkx, agx, bgx, cx, 
dx, ex, esx)
 
 2653        aks =  1.690 + 0.650 * ds - 0.922 * 
s 
 2654        as  = -4.329 + 1.131 * 
s 
 2655        bs  =  9.568 - 1.744 * 
s 
 2656        dst =  9.377 + 1.088 * ds - 1.320 * 
s + 0.130 * s2
 
 2657        est =  3.031 + 1.639 * 
s 
 2658        ess =  5.837 + 0.815 * 
s 
 2659        sb  = 
dor94fs(
x, 
s, als, bes, aks, as, bs, dst, est, ess)
 
 2663        akg =  1.724 + 0.157 * 
s 
 2664        bkg =  0.800 + 1.016 * 
s 
 2665        ag  =  7.517 - 2.547 * 
s 
 2666        bg  =  34.09 - 52.21 * ds + 17.47 * 
s 
 2667        cg  =  4.039 + 1.491 * 
s 
 2668        dg  =  3.404 + 0.830 * 
s 
 2669        eg  = -1.112 + 3.438 * 
s  - 0.302 * s2
 
 2670        esg =  3.256 - 0.436 * 
s 
 2671        gl =
dor94fw(
x, 
s, alg, beg, akg, bkg, ag, bg, cg, dg, eg, esg)
 
 2677        SUBROUTINE dor94di (X, Q2, UV, DV, DEL, UDB, SB, GL)
 
 2678        IMPLICIT DOUBLE PRECISION (
a - 
z)
 
 2681        lam2 = 0.248 * 0.248
 
 2687        nu  =  2.484 + 0.116 * 
s + 0.093 * s2
 
 2688        aku =  0.563 - 0.025 * 
s 
 2689        bku =  0.054 + 0.154 * 
s 
 2690        au  = -0.326 - 0.058 * 
s - 0.135 * s2
 
 2691        bu  = -3.322 + 8.259 * 
s - 3.119 * s2 + 0.291 * s3
 
 2692        cu  =  11.52 - 12.99 * 
s + 3.161 * s2
 
 2693        du  =  2.808 + 1.400 * 
s - 0.557 * s2 + 0.119 * s3
 
 2694        uv  = 
dor94fv(
x, nu, aku, bku, au, bu, cu, du)
 
 2696        nd  =  0.156 - 0.017 * 
s 
 2697        akd =  0.299 - 0.022 * 
s 
 2698        bkd =  0.259 - 0.015 * 
s 
 2699        ad  =  3.445 + 1.278 * 
s + 0.326 * s2
 
 2700        bd  = -6.934 + 37.45 * 
s - 18.95 * s2 + 1.463 * s3
 
 2701        cd  =  55.45 - 69.92 * 
s + 20.78 * s2
 
 2702        dd  =  3.577 + 1.441 * 
s - 0.683 * s2 + 0.179 * s3
 
 2703        dv  = 
dor94fv(
x, nd, akd, bkd, ad, bd, cd, dd)
 
 2705        ne  =  0.099 + 0.019 * 
s + 0.002 * s2
 
 2706        ake =  0.419 - 0.013 * 
s 
 2707        bke =  1.064 - 0.038 * 
s 
 2708        ae  = -44.00 + 98.70 * 
s - 14.79 * s2
 
 2709        be  =  28.59 - 40.94 * 
s - 13.66 * s2 + 2.523 * s3
 
 2710        ce  =  84.57 - 108.8 * 
s + 31.52 * s2
 
 2711        de  =  7.469 + 2.480 * 
s - 0.866 * s2
 
 2712        del = 
dor94fv(
x, ne, ake, bke, ae, be, ce, de)
 
 2716        akx =  0.326 + 0.150 * 
s 
 2717        bkx =  0.956 + 0.405 * 
s 
 2719        bgx =  3.794 - 2.359 * ds
 
 2721        dx  =  7.941 + 0.534 * ds - 0.940 * 
s + 0.410 * s2
 
 2722        ex  =  3.049 + 1.597 * 
s 
 2723        esx =  4.396 - 4.594 * ds + 3.268 * 
s 
 2724        udb=
dor94fw(
x, 
s, alx, bex, akx, bkx, agx, bgx, cx, 
dx, ex, esx)
 
 2728        aks =  1.415 - 0.641 * ds
 
 2729        as  =  0.580 - 9.763 * ds + 6.795 * 
s  - 0.558 * s2
 
 2730        bs  =  5.617 + 5.709 * ds - 3.972 * 
s 
 2731        dst =  13.78 - 9.581 * 
s  + 5.370 * s2 - 0.996 * s3
 
 2732        est =  4.546 + 0.372 * s2
 
 2733        ess =  5.053 - 1.070 * 
s  + 0.805 * s2
 
 2734        sb  = 
dor94fs(
x, 
s, als, bes, aks, as, bs, dst, est, ess)
 
 2739        bkg =  2.427 + 1.311 * 
s  - 0.153 * s2
 
 2740        ag  =  25.09 - 7.935 * 
s 
 2741        bg  = -14.84 - 124.3 * ds + 72.18 * 
s 
 2742        cg  =  590.3 - 173.8 * 
s 
 2743        dg  =  5.196 + 1.857 * 
s 
 2744        eg  = -1.648 + 3.988 * 
s  - 0.432 * s2
 
 2745        esg =  3.232 - 0.542 * 
s 
 2746        gl = 
dor94fw(
x, 
s, alg, beg, akg, bkg, ag, bg, cg, dg, eg, esg)
 
 2753        IMPLICIT DOUBLE PRECISION (
a - 
z)
 
 2760        FUNCTION dor94fw (X, S, AL, BE, AK, BK, A, B, C, D, E, ES)
 
 2761        IMPLICIT DOUBLE PRECISION (
a - 
z)
 
 2765      1      * dexp(-
e + 
sqrt(es * 
s**be * lx))) * (1.- 
x)**
d 
 2769        FUNCTION dor94fs (X, S, AL, BE, AK, AG, B, D, E, ES)
 
 2770        IMPLICIT DOUBLE PRECISION (
a - 
z)
 
 2775      1       * dexp(-
e + 
sqrt(es * 
s**be * lx))
 
DOUBLE PRECISION function rndm(RDUMMY)
 
subroutine gset(AX, BX, NX, Z, W)
 
typedef int(XMLCALL *XML_NotStandaloneHandler)(void *userData)
 
subroutine csj1m(PT, ETAC, DSIGM)
 
subroutine selhrd(MHARD, IJPVAL, IJTVAL, PTTHRE)
 
void fill(G4double x, G4double weight=1.)
 
subroutine csj1mi(PT, DSIGM)
 
subroutine hafdis(PDS, PDA, PDB, FDISTR)
 
subroutine structm(XX, QQ, UPV, DNV, USEA, DSEA, STR, CHM, BOT, TOP, GLU)
 
G4int mod(G4int a, G4int b)
 
subroutine harevt(MHARD, PT1IN)
 
subroutine plot(X, Y, N, M, MM, XO, DX, YO, DY)
 
subroutine xcheck(X1S, X2S, LINMAX)
 
subroutine phkmrs(XQ, QQ, PD, MODE)
 
function dor94fw(X, S, AL, BE, AK, BK, A, B, C, D, E, ES)
 
subroutine dor94ho(X, Q2, UV, DV, DEL, UDB, SB, GL)
 
subroutine dor94di(X, Q2, UV, DV, DEL, UDB, SB, GL)
 
subroutine po_grv98lo(ISET, X, Q2, UV, DV, US, DS, SS, GL)
 
subroutine csj2m(PT, ETAC, ETAD, DSIGMM)
 
const char * what(void) const 
 
subroutine title(NA, NB, NCA, NCB)
 
static c2_log_p< float_type > & log()
make a *new object 
 
function dor94fv(X, N, AK, BK, A, B, C, D)
 
subroutine hafdi1(NKON, Z, FDIS, IND)
 
static c2_sqrt_p< float_type > & sqrt()
make a *new object 
 
subroutine recchk(LINMAX, X, IOPT)
 
subroutine dor94lo(X, Q2, UV, DV, DEL, UDB, SB, GL)
 
function dor94fs(X, S, AL, BE, AK, AG, B, D, E, ES)
 
float_type xmax() const 
return the upper bound of the domain for this function as set by set_domain() 
 
subroutine jtpdis(X, QQ, IHATYP, MSPR, PD)
 
static c2_exp_p< float_type > & exp()
make a *new object