2 SUBROUTINE pxluc5 (N,NRLUDM,P,MSTU46,MSTU47,
3 + paru44,paru45,njet,ijmul,ipass)
61 parameter(locdim=2000)
62 REAL paru48,pimas,paru43
63 parameter(paru48=0.0001,pimas=0.13957,paru43=0.25)
64 INTEGER mstu42,mstu48,mstu43,mstu46,mstu47,itry1,itry2,
65 + i,j,idel,irec,iemp,ijet,imin,imax,njet,nrem,
66 + inew,iori,npre,ispl,nsav,itry,np,imin1,imin2,nrludm,
68 INTEGER k (locdim,5),ijmul (*),ipass (*)
70 + pmax,r2,tsav,psjt,r2acc,r2min,pxmas
71 REAL p(nrludm,*),v(locdim,5),ps(5)
72 DATA mstu42 / 2 /,mstu48 / 0 /, mstu43 / 1 /
92 IF(n+2*np.GE.locdim-5)
THEN
93 WRITE (6,fmt=
'('' PXLUC5: Error, not enough buffer'',
94 + ''space for jet-finer calculation'')')
106 p(n+np,4)=sqrt(
p(n+np,5)**2+
p(i,1)**2+
p(i,2)**2+
p(i,3)**2)
107 p(n+np,5)=sqrt(
p(i,1)**2+
p(i,2)**2+
p(i,3)**2)
109 130 ps(j)=ps(j)+
p(n+np,j)
116 ps(5)=sqrt(max(0.,ps(4)**2-ps(1)**2-ps(2)**2-ps(3)**2))
118 IF(np.LT.mstu47)
THEN
124 IF(mstu46.LE.3) r2acc=paru44**2
125 IF(mstu46.GE.4) r2acc=paru45*ps(5)**2
127 IF(np.LE.mstu47+2) rinit=0.
131 DO 170 i=n+np+1,n+2*np
137 DO 200 i=n+np+1,n+2*np
138 IF(
p(i,5).GT.2.*rinit) goto 200
142 190
p(n+1,j)=
p(n+1,j)+
p(i,j)
144 p(n+1,5)=sqrt(
p(n+1,1)**2+
p(n+1,2)**2+
p(n+1,3)**2)
145 IF(
p(n+1,5).GT.2.*rinit) npre=1
146 IF(rinit.GE.0.2*paru43.AND.npre+nrem.LT.mstu47) goto 160
151 DO 220 i=n+np+1,n+2*np
152 IF(k(i,4).NE.0.OR.
p(i,5).LE.pmax) goto 220
157 230
p(n+npre,j)=
p(imax,j)
162 DO 250 i=n+np+1,n+2*np
163 IF(k(i,4).NE.0) goto 250
165 IF(r2.GT.rinit**2) goto 250
169 240
p(n+npre,j)=
p(n+npre,j)+
p(i,j)
171 p(n+npre,5)=sqrt(
p(n+npre,1)**2+
p(n+npre,2)**2+
p(n+npre,3)**2)
176 DO 270 i=n+np+1,n+2*np
177 IF(k(i,4).NE.0) goto 270
179 IF(r2.GE.r2min) goto 270
185 280
p(n+npre,j)=
p(n+npre,j)+
p(imin,j)
186 p(n+npre,5)=sqrt(
p(n+npre,1)**2+
p(n+npre,2)**2+
p(n+npre,3)**2)
193 IF(rinit.GE.0.2*paru43.AND.npre+nrem.LT.mstu47) goto 160
194 IF(nrem.GT.0) goto 210
199 300
IF(mstu46.LE.1)
THEN
203 DO 340 i=n+np+1,n+2*np
205 DO 320 ijet=n+1,n+njet
206 IF(
p(ijet,5).LT.rinit) goto 320
208 IF(r2.GE.r2min) goto 320
214 330 v(imin,j)=v(imin,j)+
p(i,j)
220 p(i,5)=sqrt(
p(i,1)**2+
p(i,2)**2+
p(i,3)**2)
225 DO 370 itry1=n+1,n+njet-1
226 DO 370 itry2=itry1+1,n+njet
227 IF(mstu46.LE.2) r2=
pxrr2t(nrludm,
p,itry1,itry2)
228 IF(mstu46.GE.3) r2=
pxrr2m(nrludm,
p,itry1,itry2)
229 IF(r2.GE.r2min) goto 370
235 IF(njet.GT.mstu47.AND.r2min.LT.r2acc)
THEN
236 irec=
min(imin1,imin2)
237 idel=max(imin1,imin2)
239 380
p(irec,j)=
p(imin1,j)+
p(imin2,j)
240 p(irec,5)=sqrt(
p(irec,1)**2+
p(irec,2)**2+
p(irec,3)**2)
241 DO 390 i=idel+1,n+njet
245 DO 400 i=n+np+1,n+2*np
247 IF(iori.EQ.idel) k(i,4)=irec-n
248 400
IF(iori.GT.idel) k(i,4)=k(i,4)-1
253 ELSEIF(njet.EQ.mstu47.AND.mstu46.LE.1.AND.nloop.LE.2)
THEN
256 DO 420 i=n+np+1,n+2*np
257 420 k(n+k(i,4),5)=k(n+k(i,4),5)+1
260 430
IF(k(i,5).EQ.0) iemp=i
265 DO 440 i=n+np+1,n+2*np
266 IF(k(n+k(i,4),5).LE.1.OR.
p(i,5).LT.rinit) goto 440
269 IF(r2.LE.r2max) goto 440
277 450
p(ijet,j)=
p(ijet,j)-
p(ispl,j)
279 p(ijet,5)=sqrt(
p(ijet,1)**2+
p(ijet,2)**2+
p(ijet,3)**2)
280 IF(nloop.LE.2) goto 290
285 IF(mstu46.LE.1.AND.nloop.LE.2.AND.psjt/pss.GT.tsav+paru48)
294 DO 490 inew=n+1,n+njet
296 DO 470 itry=n+1,n+njet
297 IF(v(itry,4).LE.pemax) goto 470
306 480
p(inew,j)=v(imax,j)
310 DO 500 i=n+np+1,n+2*np
313 IF(k(k(i,3),1).NE.3) k(k(i,3),4)=iori-n
314 k(iori,4)=k(iori,4)+1
321 p(i,5)=sqrt(max(
p(i,4)**2-
p(i,5)**2,0.))
324 520
IF(k(i,4).EQ.0) iemp=i
331 ijmul(ij) = k(n+ij,4)
345 pxrr2t = (
p(i1,5)*
p(i2,5)-
p(i1,1)*
p(i2,1)-
p(i1,2)*
p(i2,2)-
346 +
p(i1,3)*
p(i2,3))*2.*
p(i1,5)*
p(i2,5)/(0.0001+
p(i1,5)+
p(i2,5))**2
354 pxrr2m = 2.*
p(i1,4)*
p(i2,4)*(1.-(
p(i1,1)*
p(i2,1)+
p(i1,2)*
355 +
p(i2,2)+
p(i1,3)*
p(i2,3))/(
p(i1,5)*
p(i2,5)))
real function pxrr2t(NRLUDM, P, I1, I2)
subroutine pxluc5(N, NRLUDM, P, MSTU46, MSTU47, PARU44, PARU45, NJET, IJMUL, IPASS)
double min(double a, double b)
real function pxrr2m(NRLUDM, P, I1, I2)