2 SUBROUTINE ckern(ITKDM,NT,PT,NJREQ,IERR)
46 DOUBLE PRECISION ytrans(nmxy)
47 DOUBLE PRECISION pcmj(nmxp,4,nmxp)
48 INTEGER ntrans(nmxy), njiter, njmax, ntrack
49 INTEGER icmj(nmxp,nmxy)
50 COMMON / ckcom / ytrans, pcmj, ntrans, icmj, njiter, njmax, ntrack
51 INTEGER itkdm,nt,nj,njreq,ierr
54 parameter( ntrk=300, nv=ntrk*(ntrk-2)+ntrk-(ntrk-2)*(ntrk-1)/2 )
55 LOGICAL ip(ntrk),lcall
56 INTEGER i,ii,j,k,l,imini,jmini,iad,ij(ntrk),jj(ntrk)
57 DOUBLE PRECISION pp(5),pl(5,ntrk),v(nv),pm,vmini,ysca,evis
59 DOUBLE PRECISION epsilon
60 DOUBLE PRECISION ycur(ntrk)
61 INTEGER icur, kix(ntrk)
65 DATA lcall / .false. /
66 DATA epsilon / 1d-12 /
76 print *,
' #################################################'
77 print *,
' ### C K E R N V E R S I O N 104 ###'
79 print *,
' #################################################'
81 +
' ##### CAMBRIDGE JET CLUSTERING 1 - ',njreq,
' JETS #####'
82 print *,
' #################################################'
92 WRITE(*,
'(''CAMJET: More than '',I3,'' input particles: '',I5)')
96 ELSEIF( nt.LT.2 )
THEN
97 WRITE(*,
'(''CAMJET: Less than 2 input particles: '',I5)') nt
114 evis = evis + dble(pt(4,i))
123 pl(ii,i)= dble(pt(ii,i))
125 pm=pl(1,i)**2+pl(2,i)**2+pl(3,i)**2
140 v(iad) = 2d0*(1d0-(pp(1)*pl(1,j) +pp(2)*pl(2,j)
141 & +pp(3)*pl(3,j))*pp(5)*pl(5,j))
153 IF (ip(j).AND.v(iad).LT.vmini)
THEN
167 ycur(icur) = vmini*
min(pl(4,imini),pl(4,jmini))**2
168 IF (ycur(icur)+epsilon.GE.ysca)
THEN
170 IF (pl(4,imini).LT.pl(4,jmini))
THEN
178 pl(ii,imini)=pl(ii,imini)+pl(ii,jmini)
180 pm=pl(1,imini)**2+pl(2,imini)**2+pl(3,imini)**2
182 pl(5,imini)=1d0/sqrt(pm)
193 IF (ij(i).EQ.jmini) ij(i)=imini
197 iad = nt*(k-1) + l - (k*(k+1))/2
198 v(iad) = 2d0*(1d0-(pl(1,k)*pl(1,l) +pl(2,k)*pl(2,l)
199 & +pl(3,k)*pl(3,l))*pl(5,k)*pl(5,l))
211 IF(njiter.LE.nmxy)
THEN
215 ytrans(njiter) = ysca
218 IF(njiter.LE.nmxp)
THEN
228 pcmj(njiter,ii,j)= pl(ii,i)
233 icmj(njiter,i)=jj(ij(i))
240 CALL
cksord(nt,ycur,kix,
'I')
245 IF(ycur(kix(i)).LT.ysca)
THEN
265 ytrans(i) = ytrans(i)/evis**2
266 IF(ntrans(i).GT.njmax) njmax = ntrans(i)
subroutine ckern(ITKDM, NT, PT, NJREQ, IERR)
double min(double a, double b)
subroutine cksord(ISZ, ARY, KIX, COPT)