7 SUBROUTINE pyzdis(KFL1,KFL2,PR,Z)
10 IMPLICIT DOUBLE PRECISION(a-
h, o-
z)
14 common/
pydat1/mstu(200),paru(200),mstj(200),parj(200)
15 common/
pydat2/kchg(500,4),pmas(500,4),parf(2000),vckm(4,4)
22 IF(kfla.GE.10) kflh=mod(kfla/1000,10)
25 IF(mstj(11).EQ.1.OR.(mstj(11).EQ.3.AND.kflh.LE.3).OR.
28 IF(mstj(91).EQ.1) fa=parj(43)
29 IF(kflb.GE.10) fa=fa+parj(45)
31 IF(mstj(91).EQ.1) fbb=parj(44)
34 IF(kfla.GE.10)
fc=
fc-parj(45)
35 IF(kflb.GE.10)
fc=
fc+parj(45)
36 IF(mstj(11).GE.4.AND.(kflh.EQ.4.OR.kflh.EQ.5))
THEN
38 IF(mstj(11).EQ.5.AND.kflh.EQ.5) fred=parj(47)
39 fc=
fc+fred*fbb*parf(100+kflh)**2
42 IF(abs(
fc-1d0).GT.0.01d0) mc=2
48 IF(
fc.GT.fb) zmax=fb/
fc
49 ELSEIF(abs(
fc-fa).LT.0.01d0)
THEN
54 zmax=0.5d0*(fb+
fc-sqrt((fb-
fc)**2+4d0*fa*fb))/(
fc-fa)
55 IF(zmax.GT.0.9999d0.AND.fb.GT.100d0) zmax=min(zmax,1d0-fa/fb)
60 IF(zmax.LT.0.1d0)
THEN
67 fint=1d0+(1d0-1d0/zdivc)/(
fc-1d0)
69 ELSEIF(zmax.GT.0.85d0.AND.fb.GT.1d0)
THEN
71 fscb=sqrt(4d0+(
fc/fb)**2)
72 zdiv=fscb-1d0/zmax-(
fc/fb)*
log(zmax*0.5d0*(fscb+
fc/fb))
73 IF(ma.GE.2) zdiv=zdiv+(fa/fb)*
log(1d0-zmax)
74 zdiv=min(zmax,
max(0d0,zdiv))
75 fint=1d0+fb*(1d0-zdiv)
82 IF(fint*
pyr(0).LE.1d0)
THEN
88 z=(zdivc+
z*(1d0-zdivc))**(1d0/(1d0-
fc))
91 ELSEIF(mmax.EQ.3)
THEN
92 IF(fint*
pyr(0).LE.1d0)
THEN
101 IF(
z.LE.0d0.OR.
z.GE.1d0) goto 100
102 fexp=
fc*
log(zmax/
z)+fb*(1d0/zmax-1d0/
z)
103 IF(ma.GE.2) fexp=fexp+fa*
log((1d0-
z)/(1d0-zmax))
104 fval=exp(
max(-50d0,min(50d0,fexp)))
105 IF(fval.LT.
pyr(0)*fpre) goto 100
109 fc=parj(50+
max(1,kflh))
110 IF(mstj(91).EQ.1)
fc=parj(59)
112 IF(
fc.GE.0d0.AND.
fc.LE.1d0)
THEN
113 IF(
fc.GT.
pyr(0))
z=1d0-
z**(1d0/3d0)
114 ELSEIF(
fc.GT.-1.AND.
fc.LT.0d0)
THEN
115 IF(-4d0*
fc*
z*(1d0-
z)**2.LT.
pyr(0)*((1d0-
z)**2-
fc*
z)**2)
118 IF(
fc.GT.0d0)
z=1d0-
z**(1d0/
fc)
119 IF(
fc.LT.0d0)
z=
z**(-1d0/
fc)