37 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
40 parameter(conv=.38935d0)
41 parameter(pi=3.141592654d0,
45 parameter(thousa = 1000.d0)
48 COMMON /outlev/ioutpo,ioutpa,iouxev,ioucol
51 COMMON /pomtyp/ipim,icon,isig,lmax,mmax,
nmax,difel,difnu
52 common/pompar/alfa,alfap,
a,
c,ak
53 COMMON /sigma/sigsof,bs,zsof,sighar,bh,zhar,sigtrp,bt,ztrp,
57 CHARACTER*8 projty,targty
60 COMMON /user1/
title,projty,targty
61 COMMON /user2/cmener,sdfrac,ptlar,istruf,isingd,idubld
63 COMMON /strufu/istrum,istrut
68 COMMON /collpo/
s,ptthr,ptthr2
71 common/collis/spo,ijproj,ijtar,pttpo,pttpo2,iophrd,ijprlu,ijtalu
72 COMMON /haqqap/ aqqal,aqqpd,nqqal,nqqpd
76 dimension xsqsj(21),xxhhj4(21)
81 DATA xsqsj/0.005,0.01,0.02,0.035,0.053,
82 * 0.1,0.2,0.35,0.54,1.,2.,5.,
83 *10.,20.,40.,100.,200.,400.,1000.,2000.,4000./
86 DATA sqs/1.,2.,3.,4.,5.,10.,20.,30.,40.,100.,200.,500.,1000./
95 go to(10,20,30,40,50,60,70,80,90,100),isig
98 WRITE(6,*)
' This value of ISIG no longer available ISIG=',isig
104 WRITE(6,*)
' This value of ISIG no longer available ISIG=',isig
109 WRITE(6,*)
' This value of ISIG no longer available ISIG=',isig
116 WRITE(6,*)
' This value of ISIG no longer available ISIG=',isig
123 WRITE(6,*)
' This value of ISIG no longer available ISIG=',isig
130 WRITE(6,*)
' This value of ISIG no longer available ISIG=',isig
137 WRITE(6,*)
' This value of ISIG no longer available ISIG=',isig
142 WRITE(6,*)
' This value of ISIG no longer available ISIG=',isig
146 WRITE(6,*)
' This value of ISIG no longer available ISIG=',isig
175 IF(abs(ptthr-three).LT.eps)
THEN
176 WRITE(6,*)
' PTTHR=3. not available in dpmjet25'
177 WRITE(6,*)
' WARNING: no model parameter set available'
178 WRITE(6,*)
' for this combination of PTCUT and ISTRUF'
179 WRITE(6,*)
' (initialization using default values)'
190 IF(abs(ptthr-two).LT.eps)
THEN
191 WRITE(6,*)
' PTTHR=2. not available in dpmjet25'
192 WRITE(6,*)
' WARNING: no model parameter set available'
193 WRITE(6,*)
' for this combination of PTCUT and ISTRUF'
194 WRITE(6,*)
' (initialization using default values)'
211 WRITE(6,*)
' ISTRUT=1 (PTTHR=2.1+0.15*(LOG10(ECM/50.))**3)',
212 *
'not available in dpmjet25'
213 ptthr=2.1+0.15*(log10(ecm/50.))**3
215 WRITE(6,*)
' WARNING: no model parameter set available'
216 WRITE(6,*)
' for this combination of PTCUT and ISTRUF'
217 WRITE(6,*)
' (initialization using default values)'
237 ptthr=2.5+0.12*(log10(ecm/50.))**3
239 IF( istruf.EQ.9 )
THEN
240 WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
241 *
'and ISTRUF= ',istruf ,
' not available in dpmjet25'
243 ELSEIF( istruf.EQ.10 )
THEN
244 WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
245 *
'and ISTRUF= ',istruf ,
' not available in dpmjet25'
247 ELSEIF( istruf.EQ.11 )
THEN
248 WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
249 *
'and ISTRUF= ',istruf ,
' not available in dpmjet25'
251 ELSEIF( istruf.EQ.12 )
THEN
252 WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
253 *
'and ISTRUF= ',istruf ,
' not available in dpmjet25'
255 ELSEIF( istruf.EQ.13 )
THEN
256 WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
257 *
'and ISTRUF= ',istruf ,
' not available in dpmjet25'
259 ELSEIF( istruf.EQ.14 )
THEN
260 WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
261 *
'and ISTRUF= ',istruf ,
' not available in dpmjet25'
263 ELSEIF( istruf.EQ.15 )
THEN
264 WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
265 *
'and ISTRUF= ',istruf ,
' not available in dpmjet25'
268 ELSEIF( istruf.EQ.16 )
THEN
269 WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
270 *
'and ISTRUF= ',istruf ,
' not available in dpmjet25'
273 ELSEIF( istruf.EQ.17 )
THEN
274 WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
275 *
'and ISTRUF= ',istruf ,
' not available in dpmjet25'
277 ELSEIF( istruf.EQ.18 )
THEN
278 WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
279 *
'and ISTRUF= ',istruf ,
' not available in dpmjet25'
281 ELSEIF( istruf.EQ.19 )
THEN
282 WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
283 *
'and ISTRUF= ',istruf ,
' not available in dpmjet25'
285 ELSEIF( istruf.EQ.20 )
THEN
286 WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
287 *
'and ISTRUF= ',istruf ,
' not available in dpmjet25'
290 ELSEIF( istruf.EQ.21 )
THEN
299 ELSEIF( istruf.EQ.22 )
THEN
308 ELSEIF( istruf.EQ.23 )
THEN
318 WRITE(6,*)
' WARNING: no model parameter set available'
319 WRITE(6,*)
' for this combination of PTCUT and ISTRUF'
320 WRITE(6,*)
' (initialization using default values)'
350 sigsof=
a*
s**(alfa-1.)
356 IF(istruf.EQ.21)ak=2.
359 * sighar=ak*0.1*(
s-2450.)**0.35
360 IF(ecm.GE.thousa*xsqsj(2))
THEN
363 IF(ecm.LT.xsqsj(iii)*thousa.AND.
364 * ecm.GE.thousa*xsqsj(i))
THEN
365 dsq=ecm-thousa*xsqsj(i)
366 ddsq=thousa*(xsqsj(iii)-xsqsj(i))
367 dhs=(xxhhj4(iii)-xxhhj4(i))
368 sighar=ak*(xxhhj4(i)+dhs*dsq/ddsq)*0.5
384 bsdca=bsdoca+2.*alsca*alns
385 sigtrp=g3ca*gaca*
log(
s/10.)/(8.*3.14*bsdca)
386 IF (sigtrp.LT.0.d0)sigtrp=0.01
389 alo1sq=(
log(
s/400.))**2
390 alo2sq=(
log(25./
s))**2
391 alo3sq=(
log(5./20.))**2
392 sigloo=
a*gaca**2*(alo1sq+alo2sq-2.*alo3sq)/(32.*3.14*bddca)
432 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
435 CHARACTER*8 projty,targty
438 COMMON /user1/
title,projty,targty
439 COMMON /user2/cmener,sdfrac,ptlar,istruf,isingd,idubld
443 COMMON /collpo/
s,ptthr,ptthr2
446 common/collis/spo,ijproj,ijtar,pttpo,pttpo2,iophrd,ijprlu,ijtalu
447 COMMON /strufu/istrum,istrut
452 parameter(epsil=1.
d-4,
457 & 0.000000
e+00,0.137854
e-04, .02, .13, .37, 1.32,
458 & 3.88, 8.02, 13.15, 24.32, 43.43, 79.69, 113.13,
459 & 147.5, 180.47, 221.01, 250.37,
460 & 279.4, 320.1, 349.6, 381.6,
462 & .000000
e+00, .494767
e-05, .02, .14, .41,
463 & 1.48, 4.17, 7.92, 11.90, 19.03, 28.59, 42.36,
464 & 52.78, 62.86, 72.65, 85.61, 95.97,
465 & 96., 96., 96., 96.,
468 & 0.517461
e-05, .02, .14, .42, 1.49, 4.14,
469 & 7.87, 11.93, 19.58, 30.67, 48.39, 63.08,
470 & 78.1, 93.28, 114.33, 132.24,
471 & 133., 133., 133., 133.,
474 & 0.717097
e-05, .03, .19, .54, 1.91, 5.33, 10.11,
475 & 16.16, 24.21, 36.41, 54.21, 67.92, 81.44,
476 & 94.81,112.9, 127.63,
477 & 128., 128., 128., 128.,
480 & 0.761464
e-05, .02, .17, .47, 1.56, 4.19,
481 & 7.76, 11.48, 18.11, 26.97, 39.82, 49.86, 59.35,
482 & 68.88, 81.65, 91.94,
483 & 92., 92., 92., 92.,
486 & .620779
e-05, .02, .12, .34, 1.19, 3.27,
487 & 6.16, 9.27, 14.99, 23.2, 36.85, 49.45,
488 & 64.43, 82.38, 112.06, 140.36,
489 & 141., 141., 141., 141.,
492 & .620779
e-05, .01, .05, .14, 0.55, 1.87,
493 & 4.29, 7.49, 14.81, 27.8, 55.99, 77.49,
494 & 105.98,138.48, 189.33, 236.37,
495 & 294., 395., 496., 629.,
498 & .620779
e-05, .01, .10, .31, 1.16, 3.76,
499 & 8.31, 14.16, 27.11, 49.3, 90.93,129.77,
500 & 174.16,223.83, 300.20, 370.00,
501 & 455., 600., 746., 936.,
504 & .620779
e-05, .01, .08, .27, 1.17, 4.15,
505 & 9.60, 16.75, 32.88, 61.1,125.98,169.87,
506 & 233.75,308.22, 426.95, 537.90,
507 & 673., 898., 1112., 1379./
510 IF( abs(ptthr-three).LT.epsil )
THEN
511 WRITE(6,*)
' ERROR RDXSEC: invalid pdf No. ',istruf
513 ELSEIF( abs(ptthr-two).LT.epsil )
THEN
514 WRITE(6,*)
' ERROR RDXSEC: invalid pdf No. ',istruf
516 ELSEIF( istrut.EQ.1 )
THEN
517 WRITE(6,*)
' ERROR RDXSEC: invalid pdf No. ',istruf
519 ELSEIF( istrut.EQ.2 )
THEN
520 IF( (istruf.GE.9).AND.(istruf.LE.20) )
THEN
521 WRITE(6,*)
' ERROR RDXSEC: invalid pdf No. ',istruf
523 ELSEIF( (istruf.GE.21).AND.(istruf.LE.23) )
THEN
525 nxs = 21*(istruf-15)+i
529 WRITE(6,*)
' ERROR RDXSEC: invalid pdf No. ',istruf
533 WRITE(6,*)
' ERROR RDXSEC: PTCUT ',ptthr,
' not supported ***'
544 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
546 COMMON /pomene/poen(28),poen1(28),poen2(28),nestep
547 DATA poen/20.d0,50.d0,100.d0,200.d0,500.d0,
549 * 2000.d0,3000.d0,4000.d0,6000.d0,8000.d0,10000.d0,
550 *15000.d0,20000.d0,30000.d0,40000.d0,60000.d0,
551 *80000.d0,100000.d0,150000.d0,200000.d0,300000.d0
552 *,400000.d0,600000.d0,800000.d0,1000000.d0,2000000.d0/
553 DATA poen1/5.d0,30.d0,70.d0,150.d0,300.d0,
554 * 700.d0,1200.d0,1700.d0,
555 * 2500.d0,3500.d0,5000.d0,7000.d0,9000.d0,
556 *12000.d0,17000.d0,25000.d0,35000.d0,50000.d0,
557 *70000.d0,90000.d0,120000.d0,170000.d0,250000.d0,
558 *250000.d0,500000.d0,700000.d0,900000.d0,1500000.d0/
559 DATA poen2/30.d0,70.d0,150.d0,300.d0,
560 * 700.d0,1200.d0,1700.d0,2500.d0,
561 * 3500.d0,5000.d0,7000.d0,9000.d0,12000.d0,
562 *17000.d0,25000.d0,35000.d0,50000.d0,70000.d0,
563 *90000.d0,120000.d0,170000.d0,250000.d0,350000.d0,
564 *500000.d0,700000.d0,900000.d0,1500000.d0,3000000.d0/
572 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
587 COMMON /pomene/poen(28),poen1(28),poen2(28),nestep
588 COMMON /pomtab/ipomta
590 parameter(mxpa25=30,mxpa26=mxpa25+1,mxpa13=13)
591 parameter(mxpa50=250,mxpa51=mxpa50+1)
592 parameter(mxpu50=100,mxpu51=mxpu50+1)
594 COMMON /polmn/plmn(0:mxpa25,0:mxpa50,0:mxpa13),
595 * plmncu(0:mxpa25,0:mxpa50,0:mxpa13)
596 COMMON /polmn1/ plmnee(0:mxpa25,0:mxpu50,0:mxpa13,28)
604 CALL getenv(
'INIDAT',inidat)
607 * ,
status=
'UNKNOWN',err=99)
609 IF (ipomta.EQ.0)
THEN
616 plmnee(jj,kk,ll,ii)=plmncu(jj,kk,ll)
620 WRITE(iunit,7102) nestep
622 WRITE(iunit,7101) poen(ii), poen1(ii), poen2(ii)
623 WRITE(iunit,101)(((plmnee(jj,kk,ll,ii),ll=0,mxpa13),
624 * kk=0,mxpu50),jj=0,mxpa25)
630 ELSEIF (ipomta.EQ.1)
THEN
631 READ(iunit,7102) nestep
634 READ(iunit,7101) poen(ii), poen1(ii), poen2(ii)
635 WRITE(6,7101) poen(ii), poen1(ii), poen2(ii)
636 READ(iunit,101)(((plmnee(jj,kk,ll,ii),ll=0,mxpa13),
637 * kk=0,mxpu50),jj=0,mxpa25)
645 WRITE(6,
'(A)')
'Error in PRBLM2 : file pomtab.dat ERROR'
671 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
673 parameter(
zero=0.d0,
one=1.d0)
674 parameter(conv=0.38935d0)
675 parameter(pi=3.141592654d0)
676 parameter(mxpa25=30,mxpa26=mxpa25+1,mxpa13=13)
678 parameter(mxpa50=250,mxpa51=mxpa50+1)
685 parameter(mxlmn=5,lsqrt=.true.)
686 DOUBLE PRECISION dtiny
690 parameter(tiny=1.2
d-38,dtiny=1.
d-70,tin=1.
d-22,tinexp=-700.d0)
693 parameter(tinyex = -48.d0)
696 COMMON /polmn/plmn(0:mxpa25,0:mxpa50,0:mxpa13),
697 * plmncu(0:mxpa25,0:mxpa50,0:mxpa13)
698 COMMON /polmn0/pdifr,phard,psoft,alfah,betah,
699 * sigtot,sigqel,sigel,sigine,sighin,sigd,sigdd
702 COMMON /pomtyp/ipim,icon,isig,lmax,mmax,
nmax,difel,difnu
703 COMMON /sigma/sigsof,bs,zsof,sighar,bh,zhar,sigtrp,bt,ztrp,
705 common/pompar/alfa,alfap,
a,
c,ak
706 COMMON /singdi/silmsd,sigdi
708 COMMON /outlev/ioutpo,ioutpa,iouxev,ioucol
711 CHARACTER*8 projty,targty
714 COMMON /user1/
title,projty,targty
715 COMMON /user2/cmener,sdfrac,ptlar,istruf,isingd,idubld
717 DOUBLE PRECISION sig,sigp,sigm,sign,sigo
718 dimension sig(0:mxpa25,0:mxpa50,0:mxpa13),
719 &sigp(0:mxpa25,0:mxpa50,0:mxpa13),sigm(0:mxpa25,0:mxpa50,0:mxpa13),
720 &sign(0:mxpa25,0:mxpa50,0:mxpa13),sigo(0:mxpa25,0:mxpa50,0:mxpa13)
721 dimension xpnt(mxpa96),wght(mxpa96),
722 &ssoft(0:mxpa25),shard(0:mxpa50),strpl(0:mxpa25)
724 dimension fak(0:mxpa13),cmbin(0:mxpa13,0:mxpa13)
726 & expsop,expsoh,exmsop,exmsoh,exnsop,exnsoh,exosop,exosoh,
727 & exphap,exphah,exmhap,exmhah,exnhap,exnhah,exohap,exohah,
728 & exptrp,exptrh,exmtrp,exmtrh,exntrp,exntrh,exotrp,exotrh,
729 & explop,exploh,exmlop,exmloh,exnlop,exnloh,exolop,exoloh,
730 & expexh,exmexh,exnexh,exoexh,expexp,exmexp,exnexp,exoexp
731 DOUBLE PRECISION fapsof,famsof,fansof,faosof,
732 & faphar,famhar,fanhar,faohar,
733 & faptrp,famtrp,fantrp,faotrp,
734 & faploo,famloo,fanloo,faoloo
735 DOUBLE PRECISION denom,denomi,xpntk,wghtk,rmxlmn
736 & ,sigsum,siginl,sighri
741 IF(icon/10.EQ.4)
nmax=2
742 IF(icon/10.EQ.5)
nmax=1
745 IF(
nmax.GT.mxpa13)
THEN
746 WRITE(6,*)
' arrays limit NMAX set to' , mxpa13
749 IF( mmax.GT.mxpa50)
THEN
750 WRITE(6,*)
' arrays limit MMAX set to' , mxpa50
753 IF( lmax.GT.mxpa25)
THEN
754 WRITE(6,*)
' arrays limit LMAX set to' , mxpa25
762 nnmaxi=(mxpa13-nmaxi)/(1+nmaxi)
765 ELSEIF(
nmax.EQ.2)
THEN
769 ELSEIF(
nmax.EQ.1)
THEN
773 ELSEIF(
nmax.LE.0)
THEN
792 IF(icon/10.EQ.4)
nmax=2
793 IF(icon/10.EQ.5)
nmax=1
846 IF(alalam.LE.1.
d-2)
THEN
855 IF(ecm.LT.2000.d0)
THEN
865 IF(ioutpo.GE.0)
WRITE (6,*)
' ALAM,REDU= ',alam,redu
871 zharp=(1.+alam)**2*zhar
872 zsofp=(1.+alam)**2*zsof
873 zloop=(1.+alam)**2*zloo * redu
874 zharm=(1.-alam)**2*zhar
875 zsofm=(1.-alam)**2*zsof
876 zloom=(1.-alam)**2*zloo * redu
877 zharn=(1.-alam**2)*zhar
878 zsofn=(1.-alam**2)*zsof
879 zloon=(1.-alam**2)*zloo * redu
880 zharo=(1.-alam**2)*zhar
881 zsofo=(1.-alam**2)*zsof
882 zlooo=(1.-alam**2)*zloo * redu
884 ztrpp=(1.+alam)**3*ztrp * redu
885 ztrpm=(1.-alam)**3*ztrp * redu
886 ztrpn=(1.-alam**2)*(1.+alam)*ztrp * redu
887 ztrpo=(1.-alam**2)*(1.-alam)*ztrp * redu
898 fapsof=fapsof*
sqrt( zsofp/float(l))
899 famsof=famsof*
sqrt( zsofm/float(l))
900 fansof=fansof*
sqrt( zsofn/float(l))
901 faosof=faosof*
sqrt( zsofo/float(l))
902 IF ( fapsof .LT.dtiny ) fapsof=0.
903 IF ( famsof .LT.dtiny ) famsof=0.
904 IF ( fansof .LT.dtiny ) fansof=0.
905 IF ( faosof .LT.dtiny ) faosof=0.
906 ELSEIF(.NOT.lsqrt)
THEN
907 fapsof=fapsof*zsofp/float(l)
908 famsof=famsof*zsofm/float(l)
909 fansof=fansof*zsofn/float(l)
910 faosof=faosof*zsofo/float(l)
911 IF (fapsof.LT.dtiny ) fapsof=0.
912 IF (famsof.LT.dtiny ) famsof=0.
913 IF (fansof.LT.dtiny ) fansof=0.
914 IF (faosof.LT.dtiny ) faosof=0.
924 faphar=faphar*
sqrt( zharp/float(m) )
925 famhar=famhar*
sqrt( zharm/float(m) )
926 fanhar=fanhar*
sqrt( zharn/float(m) )
927 faohar=faohar*
sqrt( zharo/float(m) )
928 IF ( fapsof*faphar .LT.dtiny ) faphar=0.
929 IF ( famsof*famhar .LT.dtiny ) famhar=0.
930 IF ( fansof*fanhar .LT.dtiny ) fanhar=0.
931 IF ( faosof*faohar .LT.dtiny ) faohar=0.
932 ELSEIF(.NOT.lsqrt)
THEN
933 faphar=faphar*zharp/float(m)
934 famhar=famhar*zharm/float(m)
935 fanhar=fanhar*zharn/float(m)
936 faohar=faohar*zharo/float(m)
937 IF (fapsof*faphar.LT.dtiny ) faphar=0.
938 IF (famsof*famhar.LT.dtiny ) famhar=0.
939 IF (fansof*fanhar.LT.dtiny ) fanhar=0.
940 IF (faosof*faohar.LT.dtiny ) faohar=0.
949 faptrp=-faptrp*
sqrt( ztrpp/float(
n) )
950 famtrp=-famtrp*
sqrt( ztrpm/float(
n) )
951 fantrp=-fantrp*
sqrt( ztrpn/float(
n) )
952 faotrp=-faotrp*
sqrt( ztrpo/float(
n) )
953 IF (abs(faptrp*fapsof*faphar).LT.dtiny ) faptrp=0.
954 IF (abs(famtrp*famsof*famhar).LT.dtiny ) famtrp=0.
955 IF (abs(fantrp*fansof*fanhar).LT.dtiny ) fantrp=0.
956 IF (abs(faotrp*faosof*faohar).LT.dtiny ) faotrp=0.
957 ELSEIF(.NOT.lsqrt)
THEN
958 faptrp=-faptrp*ztrpp/float(
n)
959 famtrp=-famtrp*ztrpm/float(
n)
960 fantrp=-fantrp*ztrpn/float(
n)
961 faotrp=-faotrp*ztrpo/float(
n)
962 IF (abs(faptrp*fapsof*faphar).LT.dtiny ) faptrp=0.
963 IF (abs(famtrp*famsof*famhar).LT.dtiny ) famtrp=0.
964 IF (abs(fantrp*fansof*fanhar).LT.dtiny ) fantrp=0.
965 IF (abs(faotrp*faosof*faohar).LT.dtiny ) faotrp=0.
971 IF(
nmax.LE.2 .AND.
n.EQ.1 .AND. nn.EQ.1 ) go to 750
978 faploo=-faploo*
sqrt( zloop/float(nn))
979 famloo=-famloo*
sqrt( zloom/float(nn))
980 fanloo=-fanloo*
sqrt( zloon/float(nn))
981 faoloo=-faoloo*
sqrt( zlooo/float(nn))
982 IF(abs(faploo*faptrp*fapsof*faphar).LT.dtiny )faploo=0.
983 IF(abs(famloo*famtrp*famsof*famhar).LT.dtiny )famloo=0.
984 IF(abs(fanloo*fantrp*fansof*fanhar).LT.dtiny )fanloo=0.
985 IF(abs(faoloo*faotrp*faosof*faohar).LT.dtiny )faoloo=0.
986 ELSEIF(.NOT.lsqrt)
THEN
987 faploo=-faploo*zloop/float(nn)
988 famloo=-famloo*zloom/float(nn)
989 fanloo=-fanloo*zloon/float(nn)
990 faoloo=-faoloo*zlooo/float(nn)
991 IF(abs(faploo*faptrp*fapsof*faphar).LT.dtiny )faploo=0.
992 IF(abs(famloo*famtrp*famsof*famhar).LT.dtiny )famloo=0.
993 IF(abs(fanloo*fantrp*fansof*fanhar).LT.dtiny )fanloo=0.
994 IF(abs(faoloo*faotrp*faosof*faohar).LT.dtiny )faoloo=0.
998 IF(l.EQ.0.AND.m.EQ.0.AND.
n.EQ.0.AND.nn.EQ.0) go to 750
1000 denom=dble(m)/dble(bh)+dble(l)/dble(bs)+dble(
n)/dble(bt)
1001 & +dble(nn)/dble(bt)
1006 IF ( (m+l+
n+nn) .LE. mxlmn )
THEN
1011 rmxlmn = dble(m+l+
n+nn) /dble(mxlmn)
1013 wghtk= dble(wght(k)) * xpntk**(rmxlmn-1.)
1014 denomi= denom / rmxlmn
1017 exposp=-zsofp*xpntk**(1./(denomi*dble(bs)))
1018 exposm=-zsofm*xpntk**(1./(denomi*dble(bs)))
1019 exposn=-zsofn*xpntk**(1./(denomi*dble(bs)))
1020 exposo=-zsofo*xpntk**(1./(denomi*dble(bs)))
1022 expohp=-zharp*xpntk**(1./(denomi*dble(bh)))
1023 expohm=-zharm*xpntk**(1./(denomi*dble(bh)))
1024 expohn=-zharn*xpntk**(1./(denomi*dble(bh)))
1025 expoho=-zharo*xpntk**(1./(denomi*dble(bh)))
1027 expotp=+ztrpp*xpntk**(1./(denomi*dble(bt)))
1028 expotm=+ztrpm*xpntk**(1./(denomi*dble(bt)))
1029 expotn=+ztrpn*xpntk**(1./(denomi*dble(bt)))
1030 expoto=+ztrpo*xpntk**(1./(denomi*dble(bt)))
1032 expolp=+zloop*xpntk**(1./(denomi*dble(bt)))
1033 expolm=+zloom*xpntk**(1./(denomi*dble(bt)))
1034 expoln=+zloon*xpntk**(1./(denomi*dble(bt)))
1035 expolo=+zlooo*xpntk**(1./(denomi*dble(bt)))
1037 IF(ioutpo.GE.7)
THEN
1039 *
' K=',k,
' EXPOS/H=',exposp,expohp,
' DENOMI/BH=',denomi,bh
1041 *
' K=',k,
' EXPOS/H=',exposm,expohm,
' DENOMI/BH=',denomi,bh
1043 *
' K=',k,
' EXPOS/H=',exposn,expohn,
' DENOMI/BH=',denomi,bh
1045 *
' K=',k,
'XPNT=',xpntk,
'WGHT=',wghtk,
'DENO=',denomi
1051 IF( exposp .GT. tinexp)
THEN
1052 expsoh=
exp(0.5d00*exposp)
1053 exmsoh=
exp(0.5d00*exposm)
1054 exnsoh=
exp(0.5d00*exposn)
1055 exosoh=
exp(0.5d00*exposo)
1067 IF( expohp .GT. tinexp)
THEN
1068 exphah=
exp(0.5d00*expohp)
1069 exmhah=
exp(0.5d00*expohm)
1070 exnhah=
exp(0.5d00*expohn)
1071 exohah=
exp(0.5d00*expoho)
1084 IF( expotp .GT. tinexp)
THEN
1085 exptrh=
exp(0.5d00*expotp)
1086 exmtrh=
exp(0.5d00*expotm)
1087 exntrh=
exp(0.5d00*expotn)
1088 exotrh=
exp(0.5d00*expoto)
1099 ELSEIF(
nmax.LE.2)
THEN
1100 exptrh= 1 + 0.5*expotp
1101 exmtrh= 1 + 0.5*expotm
1102 exntrh= 1 + 0.5*expotn
1103 exotrh= 1 + 0.5*expoto
1111 IF( expolp .GT. tinexp)
THEN
1112 exploh=
exp(0.5d00*expolp)
1113 exmloh=
exp(0.5d00*expolm)
1114 exnloh=
exp(0.5d00*expoln)
1115 exoloh=
exp(0.5d00*expolo)
1126 ELSEIF(
nmax.EQ.2 )
THEN
1127 exploh= 1 + 0.5*expolp
1128 exmloh= 1 + 0.5*expolm
1129 exnloh= 1 + 0.5*expoln
1130 exoloh= 1 + 0.5*expolo
1135 ELSEIF(
nmax.LE.1 )
THEN
1146 expexh = expsoh *exphah *exptrh *exploh
1147 exmexh = exmsoh *exmhah *exmtrh *exmloh
1148 exnexh = exnsoh *exnhah *exntrh *exnloh
1149 exoexh = exosoh *exohah *exotrh *exoloh
1150 expexp = expsop *exphap *exptrp *explop
1151 exmexp = exmsop *exmhap *exmtrp *exmlop
1152 exnexp = exnsop *exnhap *exntrp *exnlop
1153 exoexp = exosop *exohap *exotrp *exolop
1155 IF( (
nmax.LE.2 .AND.
n.EQ.1 ) .OR.
1156 * (
nmax.EQ.2 .AND. nn.EQ.1 ) .OR.
1158 sigp(l,m,nnn)=sigp(l,m,nnn)+expsop *exphap *wghtk
1159 sigm(l,m,nnn)=sigm(l,m,nnn)+exmsop *exmhap *wghtk
1160 sign(l,m,nnn)=sign(l,m,nnn)+exnsop *exnhap *wghtk
1161 sigo(l,m,nnn)=sigo(l,m,nnn)+exosop *exohap *wghtk
1163 sigp(l,m,nnn)=sigp(l,m,nnn)+expexp*wghtk
1164 sigm(l,m,nnn)=sigm(l,m,nnn)+exmexp*wghtk
1165 sign(l,m,nnn)=sign(l,m,nnn)+exnexp*wghtk
1166 sigo(l,m,nnn)=sigo(l,m,nnn)+exoexp*wghtk
1171 IF(l.EQ.1.AND.m.EQ.0.AND.
n.EQ.0.AND.nn.EQ.0)
THEN
1173 IF ( (m+l+
n+nn) .GT. mxlmn )
THEN
1174 WRITE(6,*)
' MXLMN too low ' , mxlmn,m,l,
n,nn
1177 wghfac = wghtk/xpntk *pi4/denomi
1178 IF (
nmax.GE.3 )
THEN
1179 sigele = sigele + wghfac *
1180 * 0.0625*( 1.-expexh + 1.-exmexh
1181 * +1.-exnexh + 1.-exoexh )**2
1183 silmsd = silmsd + wghfac *
1184 * 0.125*(expexh -exmexh)**2
1185 silmdd = silmdd + wghfac *
1186 * 0.0625*(expexh+exmexh-exnexh-exoexh)**2
1187 ELSEIF(
nmax.LE.2 )
THEN
1188 sigele = sigele + wghfac *
1189 * 0.0625*( ( 1.-expexh + 1.-exmexh
1190 * +1.-exnexh + 1.-exoexh
1193 * +(1.-exptrh)*(1-exploh) *expsoh *exphah
1194 * +(1.-exmtrh)*(1-exmloh) *exmsoh *exmhah
1195 * +(1.-exntrh)*(1-exnloh) *exnsoh *exnhah
1196 * +(1.-exotrh)*(1-exoloh) *exosoh *exohah)**2
1198 * - ( (2.-exptrh-exploh) *expsoh *exphah
1199 * +(2.-exmtrh-exmloh) *exmsoh *exmhah
1200 * +(2.-exntrh-exnloh) *exnsoh *exnhah
1201 * +(2.-exotrh-exoloh) *exosoh *exohah ) **2)
1203 silmsd = silmsd + wghfac *
1204 * 0.125*( ( expexh -exmexh
1206 * -(1.-exptrh)*(1-exploh) *expsoh*exphah
1207 * +(1.-exmtrh)*(1-exmloh) *exmsoh*exmhah )**2
1209 * -( (2.-exptrh-exploh) *expsoh *exphah
1210 * -(2.-exmtrh-exmloh) *exmsoh*exmhah ) **2)
1211 silmdd = silmdd + wghfac *
1212 * 0.0625*( (expexh+exmexh-exnexh-exoexh
1214 * -(1.-exptrh)*(1-exploh) *expsoh *exphah
1215 * -(1.-exmtrh)*(1-exmloh) *exmsoh *exmhah
1216 * +(1.-exntrh)*(1-exnloh) *exnsoh *exnhah
1217 * +(1.-exotrh)*(1-exoloh) *exosoh *exohah)**2
1219 * - ( (2.-exptrh-exploh) *expsoh *exphah
1220 * +(2.-exmtrh-exmloh) *exmsoh *exmhah
1221 * -(2.-exntrh-exnloh) *exnsoh *exnhah
1222 * -(2.-exotrh-exoloh) *exosoh *exohah ) **2)
1224 IF(
nmax.NE.2 )
THEN
1225 sigtot=sigtot+2.*wghfac*
1226 * 0.25*( 1.-expexh + 1.-exmexh +
1227 * 1.-exnexh + 1.-exoexh )
1228 sigine = sigine + wghfac *
1229 * 0.25*( 1.-expexp + 1.-exmexp +
1230 * 1.-exnexp + 1.-exoexp )
1232 sigsin=sigsin+ wghfac *
1233 * 0.25*( (exphap-expexp)
1236 * +(exohap-exoexp) )
1238 sighin=sighin+ wghfac*
1239 * 0.25*( 1.-exphap + 1.-exmhap +
1240 * 1.-exnhap + 1.-exohap )
1241 ELSEIF(
nmax.EQ.2 )
THEN
1242 sigtot=sigtot+2.*wghfac*
1243 * 0.25*( 1.-expexh + 1.-exmexh +
1244 * 1.-exnexh + 1.-exoexh
1247 * +(1.-exptrh)*(1-exploh) *expsoh *exphah
1248 * +(1.-exmtrh)*(1-exmloh) *exmsoh *exmhah
1249 * +(1.-exntrh)*(1-exnloh) *exnsoh *exnhah
1250 * +(1.-exotrh)*(1-exoloh) *exosoh *exohah )
1251 sigine = sigine + wghfac *
1252 * 0.25*( 1.-expexp + 1.-exmexp +
1253 * 1.-exnexp + 1.-exoexp
1256 * +(1.-exptrp)*(1-explop) *expsop *exphap
1257 * +(1.-exmtrp)*(1-exmlop) *exmsop *exmhap
1258 * +(1.-exntrp)*(1-exnlop) *exnsop *exnhap
1259 * +(1.-exotrp)*(1-exolop) *exosop *exohap )
1261 sigsin=sigsin+ wghfac *
1262 * 0.25*( (exphap-expexp)
1267 * +(1.-exptrp)*(1-explop) *expsop *exphap
1268 * +(1.-exmtrp)*(1-exmlop) *exmsop *exmhap
1269 * +(1.-exntrp)*(1-exnlop) *exnsop *exnhap
1270 * +(1.-exotrp)*(1-exolop) *exosop *exohap)
1272 sighin=sighin+ wghfac*
1273 * 0.25*( 1.-exphap + 1.-exmhap +
1274 * 1.-exnhap + 1.-exohap )
1278 IF(
nmax.GE.3 )
THEN
1279 sighmd=sighmd + wghfac *
1280 * 0.25*( (exptrp-1.)*expexp
1281 * +(exmtrp-1.)*exmexp
1282 * +(exntrp-1.)*exnexp
1283 * +(exotrp-1.)*exoexp)
1285 sighmd=sighmd + wghfac *
1286 * 0.25*( expotp * expsop*exphap
1287 * +expotm * exmsop*exmhap
1288 * +expotn * exnsop*exnhap
1289 * +expoto * exosop*exohap )
1291 IF(
nmax.GE.3 )
THEN
1292 sihmdd=sihmdd + wghfac *
1293 * 0.25*( (explop-1.)*expexp
1294 * +(exmlop-1.)*exmexp
1295 * +(exnlop-1.)*exnexp
1296 * +(exolop-1.)*exoexp)
1297 ELSEIF (
nmax.EQ.2 )
THEN
1298 sihmdd=sihmdd + wghfac *
1299 * 0.25*( expolp * expsop*exphap
1300 * +expolm * exmsop*exmhap
1301 * +expoln * exnsop*exnhap
1302 * +expolo * exosop*exohap )
1317 IF(abs(faphar*fapsof*faptrp*faploo*sigp(l,m,nnn)).LT.dtiny)
1321 sigp(l,m,nnn)=faphar*fapsof*faptrp*faploo*sigp(l,m,nnn)
1322 * * abs(faphar*fapsof*faptrp*faploo)/denomi*pi4
1323 ELSEIF(.NOT.lsqrt)
THEN
1324 sigp(l,m,nnn)=faphar*fapsof*faptrp*faploo*sigp(l,m,nnn)
1327 IF(abs(famhar*famsof*famtrp*famloo*sigm(l,m,nnn)).LT.dtiny)
1331 sigm(l,m,nnn)=famhar*famsof*famtrp*famloo*sigm(l,m,nnn)
1332 * * abs( famhar*famsof*famtrp*famloo)/denomi*pi4
1333 ELSEIF(.NOT.lsqrt)
THEN
1334 sigm(l,m,nnn)=famhar*famsof*famtrp*famloo*sigm(l,m,nnn)
1337 IF(abs(fanhar*fansof*fantrp*fanloo*sign(l,m,nnn)).LT.dtiny)
1341 sign(l,m,nnn)=fanhar*fansof*fantrp*fanloo*sign(l,m,nnn)
1342 * * abs( fanhar*fansof*fantrp*fanloo)/denomi*pi4
1343 ELSEIF(.NOT.lsqrt)
THEN
1344 sign(l,m,nnn)=fanhar*fansof*fantrp*fanloo*sign(l,m,nnn)
1347 IF(abs(faohar*faosof*faotrp*faoloo*sigo(l,m,nnn)).LT.dtiny)
1351 sigo(l,m,nnn)=faohar*faosof*faotrp*faoloo*sigo(l,m,nnn)
1352 * * abs( faohar*faosof*faotrp*faoloo/denomi)*pi4
1353 ELSEIF(.NOT.lsqrt)
THEN
1354 sigo(l,m,nnn)=faohar*faosof*faotrp*faoloo*sigo(l,m,nnn)
1365 nnnmax=nmaxi+(nmaxi+1)*nnmaxi
1369 sig(l,m,nnn)=(sigp(l,m,nnn)+sigm(l,m,nnn)+
1370 * sign(l,m,nnn)+sigo(l,m,nnn) )/4.
1381 IF(
nmax.LE.2 .AND.
n.EQ.1 .AND. nn.EQ.1 ) go to 4
1383 sigsum=sigsum + sig(l,m,nnn)
1385 IF(m.EQ.0.OR.l.GE.1) sigsme=sigsme + sig(l,m,nnn)
1386 shard(m)=shard(m)+sig(l,m,nnn)
1387 ssoft(l)=ssoft(l)+sig(l,m,nnn)
1388 strpl(
n)=strpl(
n)+sig(l,m,nnn)
1389 siginl = siginl + sig(l,m,nnn)
1390 IF(m.GE.1) sighri = sighri + sig(l,m,nnn)
1391 IF(l.EQ.0.AND.m.EQ.0.AND.nn.EQ.0.AND.
n.GE.1)
THEN
1392 sigdi = sigdi + (-1)**
n*sig(l,m,nnn)
1393 ELSEIF(l.EQ.0.AND.m.EQ.0.AND.
n.EQ.0.AND.nn.GE.1)
THEN
1394 sigddi= sigddi + (-1)**nn*sig(l,m,nnn)
1400 siglmd=silmsd+silmdd
1401 sithmd=sighmd+sihmdd
1402 sigd = siglmd + sithmd
1403 slhmdd =
sqrt(abs(silmdd*sihmdd))
1404 sigdd= silmdd + sihmdd + slhmdd
1410 IF(lentry.EQ.1.AND.ioutpo.LE.1)
RETURN
1413 WRITE(6,*)
' --- properties of events ---'
1415 WRITE(6,*)
' Energy=',ecm
1417 WRITE(6,*)
' max.contributing soft/hard/diffr./doubl.diffr. cuts'
1418 WRITE(6,*)
' LMAXI= MMAXI= NMAXI= NNMAXI='
1419 WRITE(6,
'(15X,4I9)') lmaxi,mmaxi,nmaxi,nnmaxi
1420 WRITE(6,*)
' methode used: '
1421 WRITE(6,*)
' ISIG= ICON= IPIM= '
1422 WRITE(6,
'(15X,3I9)') isig,icon,ipim
1424 WRITE(6,*)
' --- bare cross section and eikonal constants ---'
1428 WRITE(6,*)
' ALFA =',alfa,
' ALFAP =',alfap,
' A =',
a
1429 WRITE(6,*)
' C =',
c,
' AK =',ak
1430 WRITE(6,*)
' ALALAM =',alalam
1432 WRITE(6,*)
' SIGSOF=',sigsof,
' BS=',bs,
' ZSOF=',zsof
1433 WRITE(6,*)
' SIGHAR=',sighar,
' BH=',bh,
' ZHAR=',zhar
1434 WRITE(6,*)
' SIGTRP=',sigtrp,
' BT=',bt,
' ZTRP=',ztrp
1435 WRITE(6,*)
' SIGLOO=',sigloo,
' BT=',bt,
' ZLOO=',zloo
1437 WRITE(6,*)
' --- observable cross sections ---'
1439 WRITE(6,*)
' TOTAL X-SECTION = ',sigtot
1440 WRITE(6,*)
' ELASTIC X-SECTION = ',sigele
1441 WRITE(6,*)
' INELASTIC X-SECTION-LMD = ',sigine
1442 WRITE(6,*)
' INELASTIC X-SECTION = ',sigin
1443 WRITE(6,*)
' HARD INEL. X-SECTION = ',sighin
1445 WRITE(6,*)
' LOW MASS SING./DOUB.DIFFR.X-SECTION= ',silmsd,silmdd
1446 WRITE(6,*)
' => LOW MASS TOTAL DIFFRACTIV.X-SECTION= ',siglmd
1447 WRITE(6,*)
' HIGH MASS SING./DOUB.DIFFR.X-SECTION= ',sigdi,sigddi
1448 WRITE(6,*)
' => HIGH MASS TOTAL DIFFRACTIV.X-SECTION= ',sithmd
1449 WRITE(6,*)
' ESTIMAT.MIXED (LM+HM) DOUBL.DIFFRAC.X.SEC.= ',slhmdd
1451 WRITE(6,*)
' DIFFRACTIVE X-SECTION = ',sigd
1452 WRITE(6,*)
' DOUBLY DIFFRACTIVE X-SECT. =',sigdd
1455 IF(ioutpo.GE.0)
THEN
1456 WRITE(6,*)
' --- observ. x-sections, altern. calculated ---'
1457 WRITE(6,*)
' ELASTIC X-SECTION = ',sigel
1458 WRITE(6,*)
' INELASTIC X-SECTION-LMD = ',siginl
1459 WRITE(6,*)
' HARD INEL. X-SECTION= ',sighri
1460 WRITE(6,*)
' HIGH MASS SING./DOUB.DIFFR.X-SECT.=',sighmd,sihmdd
1461 WRITE(6,*)
' X-SECTION FOR (L,M,N,NN)= 1000 0100 0010 0001'
1462 WRITE(6,*)
' ',sig(1,0,0),sig(0,1,0)
1463 * ,sig(0,0,1),sig(0,0,2)
1467 IF(ioutpo.GE.2)
THEN
1470 IF( nmaxi.LT.2)nnmaxp=1
1474 48
WRITE(6,101)(sig(l,m,
n),m=0,7)
1477 50
WRITE(6,101)(sig(l,m,
n),m=8,15)
1480 &
' # CUT-POMERON SSOFT X-SECT. SHARD X-SECT.'
1482 58
WRITE (6,103)l,ssoft(l),shard(l)
1500 cmbin(i,j)=fak(i)/(fak(j)*fak(i-j))
1506 IF(icon.EQ.44.OR.icon.EQ.46.OR.icon.EQ.48.
1507 * or.icon.EQ.54)
THEN
1510 plmntm=sig(l,m,0)/(sigsum+tin)
1511 plmn(l,m,0) = plmntm + plmn(l,m,0)
1514 plmntm=sig(l,m,1)/(sigsum+tin)
1516 IF(l+2.LE.lmaxi)
THEN
1517 plmn(l+2,m,0) = (-2.)* plmntm + plmn(l+2,m,0)
1518 plmn(l+1,m,0) = 4. * plmntm + plmn(l+1,m,0)
1520 plmn(lmaxi,m,0) = (-2.)* plmntm + plmn(lmaxi,m,0)
1521 plmn(lmaxi,m,0) = 4. * plmntm + plmn(lmaxi,m,0)
1523 IF(l.EQ.0 .AND. m.EQ.0)
THEN
1524 plmn(l ,m,1) = (-1.)* plmntm + plmn(l ,m,1)
1526 plmn(l ,m,0) = (-1.)* plmntm + plmn(l ,m,0)
1529 plmntm=sig(l,m,2)/(sigsum+tin)
1531 IF(l+2.LE.lmaxi)
THEN
1532 plmn(l+2,m,0) = (-2.)* plmntm + plmn(l+2,m,0)
1533 plmn(l+1,m,0) = 4. * plmntm + plmn(l+1,m,0)
1535 plmn(lmaxi,m,0) = (-2.)* plmntm + plmn(lmaxi,m,0)
1536 plmn(lmaxi,m,0) = 4. * plmntm + plmn(lmaxi,m,0)
1538 IF(l.EQ.0 .AND. m.EQ.0)
THEN
1539 plmn(l ,m,2) = (-1.)* plmntm + plmn(l ,m,2)
1541 plmn(l ,m,0) = (-1.)* plmntm + plmn(l ,m,0)
1547 IF(
nmax.LE.2 .AND.
n.EQ.1 .AND. nn.EQ.1) go to 51
1551 plmntm=sig(l,m,nnn)/(sigsum+tin)
1556 DO 511 n1cut=0,
n-n0cut
1560 cmb1=cmbin(
n-n2cut,n1cut)
1564 DO 511 nn1cut=0,nn-nn0cut
1565 nn2cut=nn-nn0cut-nn1cut
1567 cmbn0=cmbin(nn,nn2cut)
1568 cmbn1=cmbin(nn-nn2cut,nn1cut)
1579 l2str=l2str + n1cut + nn1cut + n2cut + nn2cut
1582 nl2str= n2cut + nn2cut
1583 ELSEIF(
nmax.GE.3)
THEN
1585 l2str=l2str+n2cut+nn2cut
1587 IF((icon.EQ.26.OR.icon.EQ.36.OR.icon.EQ.46.OR.icon.EQ.56)
1588 & .AND. (l2str.GE.1.OR.m2str.GE.1))
THEN
1589 l2str=l2str + nl2str
1596 IF(l2str.GT.lmaxi) l2str=lmaxi
1597 IF(m2str.GT.lmaxi) m2str=lmaxi
1598 nnnstr =n2str +(nmaxi+1)*nn2str
1599 * +(nnmaxi+1)*(nmaxi+1)*nl2str
1600 IF(nnnstr.GT.mxpa13) nnnstr=mxpa13
1603 plmn(l2str,m2str,nnnstr) = plmntm
1604 * *cmb0*cmb1 * (-2)**n2cut * (4)**n1cut * (-1)**n0cut
1605 * *cmbn0*cmbn1*(-2)**nn2cut* (4)**nn1cut* (-1)**nn0cut
1606 & + plmn(l2str,m2str,nnnstr)
1613 IF(abs(tmmp-1.d0).GT..03d0)
THEN
1615 &
' NORMALISATION ERROR SUM PLM before LMD reatribution=',tmmp
1622 plmfac= (sigsum+tin) / (sigsum+tin +siglmd)
1623 plmn(0,0,1)= plmn(0,0,1) +
1624 & ( silmsd - slhmdd ) / (sigsum+tin)
1625 plmn(0,0,2)= plmn(0,0,2) +
1626 & ( silmdd + slhmdd ) / (sigsum+tin)
1644 IF(
nmax.LE.2 .AND.
n+nn+nl.GE.2) go to 6
1645 nnn =
n +(nmaxi+1)*nn +(nnmaxi+1)*(nmaxi+1)* nl
1648 IF(nl.EQ.0)tmmp1 = tmmp1 + sig(l,m,nnn)
1649 tmmp = tmmp + sig(l,m,nnn)
1650 plmn(l,m,nnn)=plmn(l,m,nnn) * plmfac
1651 tmp =
tmp + plmn(l,m,nnn)
1653 IF(plmn(l,m,nnn).LT.-.000005d0)
1654 &
WRITE(6,*)
' 0>PLMN',plmn(l,m,nnn),l,m,
n,nn,nl
1655 avsofn=avsofn+plmn(l,m,nnn)*l
1656 avharn=avharn+plmn(l,m,nnn)*m
1657 avdifn=avdifn+plmn(l,m,nnn)*
n
1658 avddfn=avddfn+plmn(l,m,nnn)*nn
1659 avdlfn=avdlfn+plmn(l,m,nnn)*nl
1660 IF (m.EQ.0)psoft=psoft+plmn(l,m,nnn)
1663 IF(abs(
tmp-1.d0).GT..01d0)
THEN
1665 &
' NORMALISATION ERROR SUM PLM before M reatribution=',
tmp
1669 IF(abs(tmmp-1.d0).GT..01d0 .OR.abs(tmmp1-1.d0).GT..01d0)
THEN
1671 &
' NORMALISATION ERROR TMMP,TMMP1=',tmmp,tmmp1
1681 IF(
nmax.LE.2 .AND.
n+nn+nl.GE.2) go to 61
1682 nnn =
n +(nmaxi+1)*nn +(nnmaxi+1)*(nmaxi+1)* nl
1689 IF (l.EQ.0.AND.m.GE.1)
THEN
1690 plmn(1,m,nnn)=plmn(1,m,nnn)+plmn(0,m,nnn)
1694 temp = temp + plmn(l,m,nnn)
1695 plmncu(l,m,nnn)=temp
1698 IF(ioutpo.GE.3)
WRITE (6,*)
' M,(L,PLMN(L,M,N),L=0,LMAX)'
1699 IF(ioutpo.GE.3)
WRITE (6,106) m,(l,plmn(l,m,
n),l=0,lmaxi)
1700 IF(ioutpo.GE.2)
WRITE (6,*)
' M,(L,PLMNCU(L,M,N),L=0,LMAX/2)'
1701 IF(ioutpo.GE.2)
WRITE (6,106) m,(l,plmncu(l,m,
n),l=0,lmaxi/2)
1702 106
FORMAT (i3,9(i3,e11.2))
1707 IF(abs(temp-1.d0).GT..01d0)
THEN
1708 WRITE(6,*)
' NORMALISATION ERROR SUM PLM=',temp
1709 plmfac=1./(temp+tin)
1713 IF(ioutpo.GE.1)
WRITE (6,*)
1714 &
'(((L,M,N,PLMN(L,M,N),N=0,2),M=0,5),L=0,7)'
1715 IF(ioutpo.GE.1)
WRITE (6,1106)
1716 & (((l,m,
n,plmn(l,m,
n),
n=0,2),m=0,5),l=0,7)
1717 IF(ioutpo.GE.1)
WRITE (6,*)
1718 &
'(((L,M,N,SIG(L,M,N),N=0,2),M=0,5),L=0,7)'
1719 IF(ioutpo.GE.1)
WRITE (6,1106)
1720 & (((l,m,
n,sig(l,m,
n),
n=0,2),m=0,5),l=0,7)
1721 1106
FORMAT (1
x,3(i5,i5,i5,g12.5))
1724 alfah=sighin/(sigine+0.00001)
1726 WRITE(6,116)avsofn,avharn,avdifn,avddfn,avdlfn,
1727 & phard,psoft,alfah,betah
1728 116
FORMAT(/
'--- various averages:'/
1729 & /
' AVSOFN= AVHARN= AVDIFN= AVDDFN= AVDLFN='
1731 & /
' PHARD= PSOFT= ALFAH= BETAH= '
1733 IF(ioutpo.GE.1)
WRITE(6,*)
'SIGSUM=SIGINL-LMD',sigsum
1735 IF(ioutpo.GE.1)
WRITE(6,610) sigtot,sigine,sigd,sigdd,sighin
1736 610
FORMAT (
' SIGTOT,SIGINE,SIGD,SIGDD,SIGHIN= '/
' ',5e18.6)
1738 101
FORMAT(
' ',10e10.3)
1740 103
FORMAT(
' ',5
x,i4,5
x,2e15.3)
1749 SUBROUTINE samplx(L2STR,M2STR,N2STR,NN2STR,NL2STR)
1758 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
1760 COMMON /nncms/ gamcm,bgcm,umo,pcm,eproj,pproj
1762 COMMON /pomene/poen(28),poen1(28),poen2(28),nestep
1763 parameter(mxpu50=100,mxpu51=mxpu50+1)
1764 parameter(mxpa25=30,mxpa26=mxpa25+1,mxpa13=13)
1766 parameter(mxpa50=250,mxpa51=mxpa50+1)
1770 COMMON /outlev/ioutpo,ioutpa,iouxev,ioucol
1771 COMMON /pomtyp/ipim,icon,isig,lmax,mmax,
nmax,difel,difnu
1773 COMMON /polmn/plmn(0:mxpa25,0:mxpa50,0:mxpa13),
1774 * plmncu(0:mxpa25,0:mxpa50,0:mxpa13)
1776 COMMON /polmn1/ plmnee(0:mxpa25,0:mxpu50,0:mxpa13,28)
1777 COMMON /polmn0/pdifr,phard,psoft,alfah,betah,
1778 * sigtot,sigqel,sigel,sigine,sighin,sigd,sigdd
1780 parameter(pi=3.141592654d0)
1785 IF(umo.GE.poen1(ii).AND.umo.LT.poen2(ii))
THEN
1799 ELSEIF(ipim.EQ.2)
THEN
1802 nnmaxi=(13-nmaxi)/(1+nmaxi)
1805 ELSEIF(
nmax.EQ.2)
THEN
1809 ELSEIF(
nmax.EQ.1)
THEN
1819 IF (
x.LE.plmncu(0,0,0) .AND. nprint.LT.100)
THEN
1820 WRITE(6,*)
' No generator of elastic events '
1821 WRITE(6,*)
' PLMNCU (0,0,0) =!= 0 = ',plmncu(0,0,0)
1829 nnn =
n +(nmaxi+1)*nn +(nnmaxi+1)*(nmaxi+1)* nl
1834 IF (
x.LE.plmnee(l,m,nnn,ipoen))
THEN
1848 IF(nprint.LT.100)
WRITE(6,*)
' RAR.IN SAMPLM,PLMNCU,RND=',
1849 & plmncu(lmax, mmax,nnn),
x,nprint
1850 IF( plmncu(lmax,mmax,nnn) .GT. 0.1d0 )
RETURN
1851 IF( plmncu(lmax,0,0) .GT. 0.1d0 )
RETURN
1852 WRITE(6,*)
' RAR.IN SAMPLM- PROBLEM SEEMS BAD, DECIDE TO STOP'
1868 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
1870 COMMON /nncms/ gamcm,bgcm,umo,pcm,eproj,pproj
1872 COMMON /pomene/poen(28),poen1(28),poen2(28),nestep
1873 parameter(mxpu50=100,mxpu51=mxpu50+1)
1875 COMMON /outlev/ioutpo,ioutpa,iouxev,ioucol
1876 COMMON /pomtyp/ipim,icon,isig,lmax,mmax,
nmax,difel,difnu
1878 parameter(mxpa25=30,mxpa26=mxpa25+1,mxpa13=13)
1880 parameter(mxpa50=250,mxpa51=mxpa50+1)
1883 COMMON /polmn/plmn(0:mxpa25,0:mxpa50,0:mxpa13),
1884 * plmncu(0:mxpa25,0:mxpa50,0:mxpa13)
1886 COMMON /polmn1/ plmnee(0:mxpa25,0:mxpu50,0:mxpa13,28)
1887 COMMON /polmn0/pdifr,phard,psoft,alfah,betah,
1888 * sigtot,sigqel,sigel,sigine,sighin,sigd,sigdd
1890 parameter(pi=3.141592654d0)
1893 IF(umo.GE.poen1(ii).AND.umo.LT.poen2(ii))
THEN
1903 IF (
x.LE.plmncu(0,0,0))
THEN
1904 WRITE(6,*)
' No generator of elastic events '
1905 WRITE(6,*)
' PLMNCU (0,0,0) =!= 0 = ',plmncu(0,0,0)
1915 IF (
x.LE.plmnee(l,m,
n,ipoen))
THEN
1926 WRITE(6,*)
' RAR.IN SAMPLM,PLMNCU,RND=',plmncu(lmax,mmax,
nmax),
x
1927 IF( plmncu(lmax,mmax,
nmax) .GT. 0.1d0 )
RETURN
1928 IF( plmncu(lmax,0,0) .GT. 0.1d0 )
RETURN
1929 WRITE(6,*)
' RAR.IN SAMPLM- PROBLEM SEEMS BAD, DECIDE TO STOP'
1997 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
2001 parameter(mxpa25=30,mxpa26=mxpa25+1,mxpa13=13)
2003 parameter(mxpa50=250,mxpa51=mxpa50+1)
2006 COMMON /polmn/plmn(0:mxpa25,0:mxpa50,0:mxpa13),
2007 * plmncu(0:mxpa25,0:mxpa50,0:mxpa13)
2008 COMMON /polmn0/pdifr,phard,psoft,alfah,betah,
2009 * sigtot,sigqel,sigel,sigine,sighin,sigd,sigdd
2012 COMMON /histoo/as(50,9),aecm(50,9),asig(50,9),alos(50,9),
2013 * aloecm(50,9),ndislm(0:mxpa25,0:mxpa50,0:mxpa13)
2015 COMMON /outlev/ioutpo,ioutpa,iouxev,ioucol
2020 common/pompar/alfa,alfap,
a,
c,ak
2025 COMMON /sigma/sigsof,bs,zsof,sighar,bh,zhar,sigtrp,bt,ztrp,
2030 COMMON /pomtyp/ipim,icon,isig,lmax,mmax,
nmax,difel,difnu
2031 COMMON /alala/alalam
2034 COMMON /collpo/
s,ptthr,ptthr2
2036 COMMON /collis/ss,ijproj,ijtar,pttpo,pttpo2,iophrd,ijprlu,ijtalu
2040 parameter(pi=3.141592654d0)
2056 *
' ------ testing the energy dependence of x-sections ----------'
2058 IF(ioutpo.GT.-1)
WRITE(6,*)
2059 *
' (as function of ALAM i.e.a low mass diffr.parameter)'
2060 WRITE(6,*)
' -----------------------------------------------'
2064 IF(ioutpo.GT.-1 .OR. iijj.EQ.6)
THEN
2068 IF(ioutpo.GT.-1)
WRITE(6,1008)alalam
2069 1008
FORMAT (
' ALAM= ',f10.3)
2091 nnmaxi=(13-nmaxi)/(1+nmaxi)
2094 ELSEIF(
nmax.EQ.2)
THEN
2098 ELSEIF(
nmax.EQ.1)
THEN
2105 IF(ipim.LT.1.AND.ipim.GT.9)
THEN
2106 WRITE(6,*)
'RETURN caused by IPIM=',ipim
2115 * (
'--- sample distribution for L soft and M hard inelastic'
2116 * ,
' pomerons (string pairs)--- '
2117 * / 20
x,
'at ECM = ',f10.2,
' S = ',f12.1)
2125 IF(icon.EQ.12)go to 100
2128 CALL
samplx(l2str,m2str,n2str,nn2str,nl2str)
2129 nnnstr =n2str +(nmaxi+1)*nn2str
2130 * +(nnmaxi+1)*(nmaxi+1)*nl2str
2131 ndislm(l2str,m2str,nnnstr)=ndislm(l2str,m2str,nnnstr)+1
2133 CALL
samplm(l2str,m2str,n2str)
2134 ndislm(l2str,m2str,n2str)=ndislm(l2str,m2str,n2str)+1
2139 *
' with no diffractive contribution'
2142 *
' ....... vertical: NSTR, horizontal MSTR .........'
2143 DO 3344 l=0,
min(20,lmaxi)
2144 3344
WRITE(6,34)l,(ndislm(l,m,0),m=0,20)
2149 WRITE(6,*)
' WITH NSTR=',
n
2150 DO 334 l=0,
min(20,lmaxi)
2151 WRITE(6,34)l,(ndislm(l,m,
n),m=0,20)
2155 jmpa50 =
int(mxpa50/25)
2157 WRITE(6,*)
'WIDE PLOT 0<L<',mxpa25,
' 0<M<'
2158 & ,mxpa50,
' IN STEPS OF ',jmpa50
2161 WRITE(6,35)l,(ndislm(l,m,
n),m=0,mxpa50,jmpa50)
2166 34
FORMAT (i5,
':',21i4)
2189 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
2193 COMMON /outlev/ioutpo,ioutpa,iouxev,ioucol
2195 parameter(mxpa25=30,mxpa26=mxpa25+1,mxpa13=13)
2196 parameter(
zero=0.d0,
one=1.d0)
2198 parameter(mxpa50=250,mxpa51=mxpa50+1)
2201 COMMON /polmn/plmn(0:mxpa25,0:mxpa50,0:mxpa13),
2202 * plmncu(0:mxpa25,0:mxpa50,0:mxpa13)
2203 COMMON /polmn0/pdifr,phard,psoft,alfah,betah,
2204 * sigtot,sigqel,sigel,sigine,sighin,sigd,sigdd
2207 COMMON /pomtyp/ipim,icon,isig,lmax,mmax,
nmax,difel,difnu
2208 common/pompar/alfa,alfap,
a,
c,ak
2209 COMMON /sigma/sigsof,bs,zsof,sighar,bh,zhar,sigtrp,bt,ztrp,
2212 COMMON /topdr/itopd,idumtp
2215 COMMON /histoo/as(50,9),aecm(50,9),asig(50,9),alos(50,9),
2216 * aloecm(50,9),ndislm(0:mxpa25,0:mxpa50,0:mxpa13)
2218 parameter(pi=3.141592654d0)
2225 IF(ioutpo.GT.-1)istep=7
2236 alos(i,iii)=log10(
s)
2237 aloecm(i,iii)=log10(ecm)
2245 IF(i.EQ.1 .AND. ioutpo.GE.0 )
WRITE(6,*)
2246 &
' s-dep. by integr.with Y,PHI,LMD'
2249 IF(i.EQ.1 .AND. ioutpo.GE.0 )
WRITE(6,*)
2250 &
' s-dep. by integr.with Y,PHI,LMD (DEFAULT)'
2262 asig(i,7)=sigtot-sigine
2263 asig(i,8)=sigine-sighin
2265 WRITE (6,1007)ecm,sigtot,sigine,sigel,sigd
2266 1007
FORMAT (
' ECM,SIGTOT,SIGINE,SIGEL,SIGD',f10.1,4e14.3)
2274 991
FORMAT (//
' shown as line printer plott'/
' with'/
2276 1
' (*) SIGTOT total x-section',
2277 2
' (2) SIGINE inelastic x-section'/
2278 3
' (3) SIGHIN hard inelastic cross section, one or more jets',
2279 4
' (4) SIGSOF input soft x-section'/
2280 5
' (5) SIGHAR input hard x-sections',
2281 6
' (6) SIGTRP input diffractive x-section (triple pomeron)'/
2282 7
' (7) SIGTOT-SIGINE elastic x-section',
2283 8
' (8) SIGINE-SIGHIN non-hard inelastic x-section, (no jets)'/
2284 9
' (9) SIGD diffractive xross section '/
2285 *
' are plotted against LOG(10)of(CMENERGY)' //)
2291 IF (itopd.EQ.1)
THEN
2293 95
FORMAT(
' NEW FRAME'/
' SET FONT DUPLEX'/
' SET SCALE X LOG'/
2294 *
' SET LIMITS X FROM 1.0 TO 1E5 Y FROM 0. TO 200'/
2295 *
' TITLE TOP < TOTAL,INEL. AND HARD (MINIJET) CROSS SECT.<'/
2296 *
' TITLE BOTTOM <C.M.ENERGY [GEV]<'/
2297 *
' TITLE < DUAL UNITARIZATION OF SOFT AND HARD CROSS SECTIONS<'/
2298 *
' TITLE LEFT LINES=-1 <CROSS SECTION [MB]<'/
2299 *
' TITLE 3 8.5 < SOLID = TOTAL X.S. <'/
2300 *
' TITLE < DASHED= INELASTIC X.S. <'/
2301 *
' TITLE < DOTTED= HARD X.S.<'/
2302 *
' TITLE < DOT-DASH= HARD INPUT X.S. <'/
2303 *
' TITLE < DOT-DASH= ELASTIC X.S. <')
2306 IF (iuu.EQ.4)go to 94
2307 IF (iuu.EQ.6)go to 94
2308 IF (iuu.EQ.1)
WRITE(7,97)
2309 97
FORMAT (
' SET TEXTURE SOLID')
2310 IF (iuu.EQ.2)
WRITE(7,98)
2311 98
FORMAT (
' SET TEXTURE DASHES')
2312 IF (iuu.EQ.3)
WRITE(7,99)
2313 99
FORMAT (
' SET TEXTURE DOTS')
2314 IF (iuu.EQ.5)
WRITE(7,197)
2315 197
FORMAT (
' SET TEXTURE DOTDASH')
2317 WRITE(7,92)aecm(iu,iuu),asig(iu,iuu)