2 parameter (mmrye=1,mmryk=1) !memory saving factor
4 parameter (kollmx=15000/mmrye,npommx=80)
5 parameter (mamx=210/mmryk,ngrmx=1,ntymi=0,ntymx=2)
7 !----------------------------------------------------------------------
9 !----------------------------------------------------------------------
11 double precision om1int,om1intc
12 * ,atilde,btildep,btildepp
13 common/comega/om1int(kollmx),om1intc(kollmx)
14 common/comtilde/atilde(ntymi:ntymx,kollmx)
15 *,btildep(ntymi:ntymx,kollmx),btildepp(ntymi:ntymx,kollmx)
18 !----------------------------------------------------------------------
19 ! POMERON CONFIGURATION
20 !----------------------------------------------------------------------
22 common/col/koll,iproj(kollmx),itarg(kollmx),coord(4,kollmx)
23 common/col1/kremn(mamx,mamx,2),lremn(mamx,2)
24 dimension kproj(mamx,mamx),ktarg(mamx,mamx)
25 *,lproj(mamx),ltarg(mamx)
26 equivalence (kproj(1,1),kremn(1,1,1)),(ktarg(1,1),kremn(1,1,2))
27 equivalence (lproj(1),lremn(1,1)),(ltarg(1),lremn(1,2))
28 double precision gammaV
29 common/col6/kproj3(mamx,mamx),ktarg3(mamx,mamx)
30 *,lproj3(mamx),ltarg3(mamx)
31 *,epsilongp(kollmx,0:1),epsilongt(kollmx,0:1)
32 *,epsilongs(kollmx,0:1),gammaV(kollmx)
33 *,epsilongf(kollmx),epsilongb(kollmx)
34 common/col4/bk(kollmx),bhpr(npommx,kollmx),bkx(kollmx)
36 common/col7/zparremn(kollmx,2)
37 real zparpro(kollmx),zpartar(kollmx)
38 equivalence (zparpro(1),zparremn(1,1)),(zpartar(1),zparremn(1,2))
40 !----------------------------------------------------------------------
41 ! koll: number of relevant pairs
42 ! iproj(k): projectile index for k-th pair
43 ! itarg(k): target index for k-th pair
44 ! lproj(ip): number of pairs linked to projectile ip
45 ! kproj(ip,l): corresponding pair index of the l-th pair
46 ! ltarg(it): number of pairs linked to target it
47 ! ktarg(it,l): corresponding pair index of the l-th pair
48 ! bk(k): b value of the k-th pair (=sqrt(bx**2.+by**2.))
49 ! bkx(k): bx value of the k-th pair
50 ! bky(k): by value of the k-th pair
51 ! lproj3(ip): number of pairs linked to projectile ip (no diffraction)
52 ! kproj3(ip,l): corresponding pair index of the l-th pair (no diffraction)
53 ! ltarg3(it): number of pairs linked to target it (no diffraction)
54 ! ktarg3(it,l): corresponding pair index of the l-th pair (no diffraction)
55 !----------------------------------------------------------------------
57 common/cems3/nprt(kollmx),npr(0:3,kollmx)
58 common/cems4/nprmx(kollmx)
60 !----------------------------------------------------------------------
61 ! nprt(k): number of pomerons of collision k
62 ! npr(id,k): number of pomerons of type id of collision k
63 ! (id: 0=zero, 1=soft, 2=reggeon, 3=hard)
64 ! nprmx(k): maximum number of pomerons of collision k
65 !----------------------------------------------------------------------
67 common/cems2/itpr(kollmx),idpr(npommx,kollmx),ivpr(npommx,kollmx)
68 *,idfpr(npommx,kollmx)
69 *,nvpr(npommx,kollmx),nbkpr(npommx,kollmx)
71 !----------------------------------------------------------------------
72 ! itpr(k): interaction type of collision k
73 ! (0=nothing, 1=inelastic, 2=diffractive)
74 ! idpr(n,k): type of pomeron (n,k)
75 ! (0=zero, 1=soft, 2=reggeon, 3=hard)
76 ! ivpr(n,k): status of pomeron (n,k) (0=virtual, 1=real, 2=backup)
77 ! nbkpr(n,k): position of the backup pomeron
78 ! nvpr(n,k): position of the pomeron for this backup pomeron
79 ! idfpr(n,k): link of pomeron (n,k) (0=no, 1=pro&tar, 2=pro, 3=tar)
80 ! idfpr=-1 means backup pomeron
81 !----------------------------------------------------------------------
83 double precision xpr,ypr,xppr,xmpr,xpprbor,xmprbor
84 common/cems1/xpr(npommx,kollmx),ypr(npommx,kollmx)
85 common/cems1c/xppr(npommx,kollmx),xmpr(npommx,kollmx)
86 common/cems1d/xpprbor(npommx,kollmx),xmprbor(npommx,kollmx)
87 common/cems1e/nemispr(2,npommx,kollmx),ptprboo(2,npommx,kollmx)
89 !----------------------------------------------------------------------
90 ! xpr(n,k): x=x+x- of pomeron (n,k)
91 ! ypr(n,k): rapidity of pomeron (n,k)
92 ! xpprbor(n,k): x+ of in Born parton of pomeron (n,k)
93 ! xmprbor(n,k): x- of in Born parton of pomeron (n,k)
94 ! nemispr(i,n,k): number of up (i=1) and down (i=2) emissions
95 !----------------------------------------------------------------------
97 double precision xp1pr,xp2pr,xm1pr,xm2pr,xxp1pr,xyp1pr
98 * ,xxp2pr,xyp2pr,xxm1pr,xym1pr,xxm2pr,xym2pr
99 common/cems7/xp1pr(npommx,kollmx),xp2pr(npommx,kollmx)
100 * ,xm1pr(npommx,kollmx),xm2pr(npommx,kollmx)
101 * ,idp1pr(npommx,kollmx),idp2pr(npommx,kollmx)
102 * ,idm1pr(npommx,kollmx),idm2pr(npommx,kollmx)
103 common/cems8/xxp1pr(npommx,kollmx),xyp1pr(npommx,kollmx)
104 * ,xxp2pr(npommx,kollmx),xyp2pr(npommx,kollmx)
105 * ,xxm1pr(npommx,kollmx),xym1pr(npommx,kollmx)
106 * ,xxm2pr(npommx,kollmx),xym2pr(npommx,kollmx)
108 !----------------------------------------------------------------------
109 ! xp1pr(n,k): x of string end p1 p1 p2
110 ! xp2pr(n,k): x of string end p2 \ /
111 ! xm1pr(n,k): x of string end m1 \ /
112 ! xm2pr(n,k): x of string end m2 \/
113 ! idp1pr(n,k): id of string end p1 ( 0=0 ) /\
114 ! idp2pr(n,k): id of string end p2 ( 1=s 2=v ) / \
115 ! idm1pr(n,k): id of string end m1 ( 4=ss 5=vv ) / \
116 ! idm2pr(n,k): id of string end m2 ( 8=f ) m1 m2
117 ! xxp1pr(n,k),xyp1pr(n,k): px,py of string end p1
118 ! xxp2pr(n,k),xyp2pr(n,k): px,py of string end p2
119 ! xxm1pr(n,k),xym1pr(n,k): px,py of string end m1
120 ! xxm2pr(n,k),xym2pr(n,k): px,py of string end m2
121 !----------------------------------------------------------------------
124 common/cems11/xme(mamx)
126 !----------------------------------------------------------------------
127 ! xme(j): x- exchange for nucleon j
128 !----------------------------------------------------------------------
130 common/cems22/idhpr(npommx,kollmx),idrpr(npommx,kollmx)
131 * ,idsppr(npommx,kollmx),idstpr(npommx,kollmx)
133 !----------------------------------------------------------------------
134 ! idhpr(n,k): flav hard Pom (n,k) (0=gg,1=qg,2=gq,3=qq)
135 ! idrpr(n,k): flav Regg (n,k) (0=ss,1=0va0,2=v00a,3=0as0,4=s00a,5=0sv0,6=v00s)
136 ! idsppr(n,k): flav soft P (n,k) (proj) (0=ss,1=vs,2=sa,3=va,4=dd,5=svv,6=aas)
137 ! idstpr(n,k): flav soft P (n,k) (targ) (0=ss,1=vs,2=sa,3=va,4=dd,5=svv,6=aas)
138 !----------------------------------------------------------------------
141 !----------------------------------------------------------------------
142 ! REMNANT CONFIGURATION
143 !----------------------------------------------------------------------
145 common/remn2/zzremn(mamx,2)
146 common/remn/icremn(2,mamx,2)
147 dimension icproj(2,mamx),ictarg(2,mamx)
148 double precision xpp,xmp,xpt,xmt,xxp,xyp,xxt,xyt
149 double precision xpz,xmz,xxz,xyz
150 common/cemsr/xpz(mamx,2),xmz(mamx,2)
151 * ,xxz(mamx,2),xyz(mamx,2)
152 * ,idz(mamx,2),ivz(mamx,2)
153 * ,isz(mamx,2),iaz(mamx,2)
154 dimension xpp(mamx),xmp(mamx),xpt(mamx),xmt(mamx)
155 * ,xxp(mamx),xyp(mamx),xxt(mamx),xyt(mamx)
156 * ,idp(mamx),ivp(mamx),ivt(mamx),idt(mamx)
157 * ,isp(mamx),iap(mamx),ist(mamx),iat(mamx)
159 equivalence (icproj(1,1),icremn(1,1,1))
160 * ,(ictarg(1,1),icremn(1,1,2))
161 equivalence (xpp(1),xpz(1,1)),(xmt(1),xpz(1,2))
162 * ,(xmp(1),xmz(1,1)),(xpt(1),xmz(1,2))
163 * ,(xxp(1),xxz(1,1)),(xxt(1),xxz(1,2))
164 * ,(xyp(1),xyz(1,1)),(xyt(1),xyz(1,2))
165 * ,(idp(1),idz(1,1)),(idt(1),idz(1,2))
166 * ,(ivp(1),ivz(1,1)),(ivt(1),ivz(1,2))
167 * ,(isp(1),isz(1,1)),(ist(1),isz(1,2))
168 * ,(iap(1),iaz(1,1)),(iat(1),iaz(1,2))
170 !----------------------------------------------------------------------
171 ! xpp(ip),xmp(ip),xpt(it),xmt(it): x+,x- of projectile ip / target it
172 ! xxp(ip),xyp(ip),xxt(it),xyt(it): px,py of projectile ip / target it
173 ! idp(ip),idt(it): diquark counter
174 ! ivp(ip),ivt(it): valenve quark counter
175 ! isp(ip),ist(it): sea quark counter
176 ! iap(ip),iat(it): anti valence quark counter
177 !----------------------------------------------------------------------
179 double precision xpmn,xtmn,xpmx,xtmx,xppmx,xptmx,xmpmx,xmtmx
180 * ,xppmn ,xptmn,xmpmn,xmtmn,xpos,xtos
181 double precision xzmn,xzmx,xpzmx,xmzmx
183 common/cemsr1/xzmn(mamx,2),xzmx(mamx,2)
189 dimension xpmn(mamx),xtmn(mamx),xpmx(mamx),xtmx(mamx)
190 * ,xppmx(mamx),xptmx(mamx)
191 * ,xmpmx(mamx),xmtmx(mamx)
192 * ,xppmn(mamx),xptmn(mamx)
193 * ,xmpmn(mamx),xmtmn(mamx)
194 * ,xpos(mamx),xtos(mamx)
196 equivalence ( xpmn(1), xzmn(1,1)),( xtmn(1), xzmn(1,2))
197 * ,( xpmx(1), xzmx(1,1)),( xtmx(1), xzmx(1,2))
198 * ,(xppmx(1),xpzmx(1,1)),(xptmx(1),xpzmx(1,2))
199 * ,(xmpmx(1),xmzmx(1,1)),(xmtmx(1),xmzmx(1,2))
200 * ,(xppmn(1),xpzmn(1,1)),(xptmn(1),xpzmn(1,2))
201 * ,(xmpmn(1),xmzmn(1,1)),(xmtmn(1),xmzmn(1,2))
202 * ,( xpos(1), xzos(1,1)),( xtos(1), xzos(1,2))
204 !----------------------------------------------------------------------
205 ! xpmn(ip),xtmn(it),xpmx(ip),xtmx(it): x proj/targ minimum/maximum
206 ! xppmx(ip),xptmx(it),xmpmx(ip),xmtmx(it): x+/x- proj/targ maximum
207 ! xppmn(ip),xptmn(it),xmpmn(ip),xmtmn(it): x+/x- proj/targ minimum
208 ! xpos(ip),xtos(it): x value for on shell condition proj/targ
209 !----------------------------------------------------------------------
211 common/cemsr3/kolp(mamx),kolt(mamx),npp(mamx),npt(mamx)
212 common/cemsr4/iez(mamx,2),ifz(mamx,2)
213 dimension iep(mamx),iet(mamx),ifp(mamx),ift(mamx)
214 equivalence (iep(1),iez(1,1)),(iet(1),iez(1,2))
215 * ,(ifp(1),ifz(1,1)),(ift(1),ifz(1,2))
217 !----------------------------------------------------------------------
218 ! kolp(ip),kolt(it): number of cut Pomerons of proj ip / targ it
219 ! iep(ip),iet(it): excitation type of proj ip / targ it
220 ! (0=none,1=inelastic,2=diffractive)
221 ! ifp(ip),ift(it): remnant flip flag proj/targ (0=no,1=yes)
222 ! if3dp(ip), if3dp(it): triple pomeron diffraction (if 1)
223 !----------------------------------------------------------------------
226 !----------------------------------------------------------------------
227 ! transfer from emsini
228 !----------------------------------------------------------------------
230 double precision amzmn,ampmn,amtmn,ammn,amemn,amemx,amprmn,xis
231 &,delxi,ddelx,r3pompi,r3pommi,r3pompi3,r3pommi3
232 parameter (ntypmx=19)
233 common/cems12/ammn(0:ntypmx),amprmn(0:ntypmx)
234 common/cemsr6/amzmn(0:1,2),amemn(0:1,0:6),amemx(0:2)
235 dimension ampmn(0:1),amtmn(0:1)
236 equivalence (ampmn(0),amzmn(0,1)), (amtmn(0),amzmn(0,2))
237 common/cemsr13/xis,delxi,ddelx,r3pompi,r3pommi
238 &,r3pompi3,r3pommi3,ucfpro,ucftar
240 !----------------------------------------------------------------------
242 !----------------------------------------------------------------------
245 *xxpr,xxpr0,yx,yx0,xxppr,xxmpr,xxppr0,xxmpr0
246 *,xmtx,xmtx0,xmtlx,xmtlx0
247 *,xppx,xppx0,xpplx,xpplx0
248 *,xppst,xmpst,xposst,xpest,xppstx0,xmpstx0,xppstx,xmpstx
249 *,xmtst,xptst,xtosst,xmest,xmtstx0,xptstx0,xmtstx,xptstx
250 dimension nprx(0:3),nprx0(0:3)
251 *,xppst(mamx),xmpst(mamx),xposst(mamx),xpest(mamx)
252 *,xmtst(mamx),xptst(mamx),xtosst(mamx),xmest(mamx)
256 *xxpr,xxpr0,yx,yx0,xxppr,xxmpr,xxppr0,xxmpr0
257 *,xmtx,xmtx0,xmtlx,xmtlx0
258 *,xppx,xppx0,xpplx,xpplx0
260 *,npplx0,nptlx0,npplx,nptlx
261 *,nppx,nppx0,nptx,nptx0,nprx,nprx0,nprtx,nprtx0
262 *,xppst,xmpst,xposst,xpest,xppstx0,xmpstx0,xppstx,xmpstx
263 *,xmtst,xptst,xtosst,xmest,xmtstx0,xptstx0,xmtstx,xptstx
266 !----------------------------------------------------------------------
268 !----------------------------------------------------------------------
270 double precision facto,fctrl
271 common/factori/facto(0:npommx),fctrl(0:npommx), nfctrl