1 | SUBROUTINE NIHILA
|
---|
2 |
|
---|
3 | C-----------------------------------------------------------------------
|
---|
4 | C (AN)NIHILA(TION)
|
---|
5 | C
|
---|
6 | C TREATES ANNIHILATION OF ANTINUCLEONS WITH FREE NUCLEONS
|
---|
7 | C MOMENTA CONSERVED IN ALL DIRECTIONS
|
---|
8 | C ENERGY CONSERVED BY MULTPLICATION OF ALL MOMENTA WITH A CORRECTION
|
---|
9 | C FACTOR, CONSERVING MOMENTUM BALANCE
|
---|
10 | C THIS SUBROUTINE IS CALLED FROM BOX60, BOX61, BOX62, AND BOX63
|
---|
11 | C
|
---|
12 | C DESIGN : D. HECK IK3 FZK KARLSRUHE
|
---|
13 | C-----------------------------------------------------------------------
|
---|
14 |
|
---|
15 | IMPLICIT DOUBLE PRECISION (A-H,O-Z)
|
---|
16 | *KEEP,ANNI.
|
---|
17 | COMMON /ANNI/ CAN,CANN
|
---|
18 | DOUBLE PRECISION CAN(50),CANN(50)
|
---|
19 | *KEEP,CONST.
|
---|
20 | COMMON /CONST/ PI,PI2,OB3,TB3,ENEPER
|
---|
21 | DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
|
---|
22 | *KEEP,MULT.
|
---|
23 | COMMON /MULT/ EKINL,MSMM,MULTMA,MULTOT
|
---|
24 | DOUBLE PRECISION EKINL
|
---|
25 | INTEGER MSMM,MULTMA(37,13),MULTOT(37,13)
|
---|
26 | *KEEP,PAM.
|
---|
27 | COMMON /PAM/ PAMA,SIGNUM
|
---|
28 | DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
|
---|
29 | *KEEP,PARPAR.
|
---|
30 | COMMON /PARPAR/ CURPAR,SECPAR,PRMPAR,OUTPAR,C,
|
---|
31 | * E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
|
---|
32 | DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
|
---|
33 | * C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
|
---|
34 | INTEGER ITYPE,LEVL
|
---|
35 | *KEEP,PARPAE.
|
---|
36 | DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
|
---|
37 | EQUIVALENCE (CURPAR(2),GAMMA), (CURPAR(3),COSTHE),
|
---|
38 | * (CURPAR(4), PHI ), (CURPAR(5), H ),
|
---|
39 | * (CURPAR(6), T ), (CURPAR(7), X ),
|
---|
40 | * (CURPAR(8), Y ), (CURPAR(9), CHI ),
|
---|
41 | * (CURPAR(10),BETA), (CURPAR(11),GCM ),
|
---|
42 | * (CURPAR(12),ECM )
|
---|
43 | *KEEP,RANDPA.
|
---|
44 | COMMON /RANDPA/ FAC,U1,U2,RD,NSEQ,ISEED,KNOR
|
---|
45 | DOUBLE PRECISION FAC,U1,U2
|
---|
46 | REAL RD(3000)
|
---|
47 | INTEGER ISEED(103,10),NSEQ
|
---|
48 | LOGICAL KNOR
|
---|
49 | *KEEP,RUNPAR.
|
---|
50 | COMMON /RUNPAR/ FIXHEI,THICK0,HILOECM,HILOELB,
|
---|
51 | * STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
|
---|
52 | * MONIOU,MDEBUG,NUCNUC,
|
---|
53 | * CETAPE,
|
---|
54 | * SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
|
---|
55 | * N1STTR,MDBASE,
|
---|
56 | * DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
|
---|
57 | * FIX1I,FMUADD,FNKG,FPRINT,FDBASE
|
---|
58 | * ,GHEISH,GHESIG
|
---|
59 | COMMON /RUNPAC/ DSN,HOST,USER
|
---|
60 | DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
|
---|
61 | REAL STEPFC
|
---|
62 | INTEGER NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
|
---|
63 | * SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
|
---|
64 | * N1STTR,MDBASE
|
---|
65 | INTEGER CETAPE
|
---|
66 | CHARACTER*79 DSN
|
---|
67 | CHARACTER*20 HOST,USER
|
---|
68 |
|
---|
69 | LOGICAL DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
|
---|
70 | * FIX1I,FMUADD,FNKG,FPRINT,FDBASE
|
---|
71 | * ,GHEISH,GHESIG
|
---|
72 | *KEEP,VKIN.
|
---|
73 | COMMON /VKIN/ BETACM
|
---|
74 | DOUBLE PRECISION BETACM
|
---|
75 | *KEND.
|
---|
76 |
|
---|
77 | DOUBLE PRECISION E(10),PHIPAR(10),PL(10),PTR(10),PTSQ(10)
|
---|
78 | DOUBLE PRECISION PX(10),PY(10)
|
---|
79 | DIMENSION ISEQ(10),NTYP(10)
|
---|
80 | C-----------------------------------------------------------------------
|
---|
81 |
|
---|
82 | IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
|
---|
83 | 444 FORMAT(' NIHILA: CURPAR=',1P,9E10.3)
|
---|
84 |
|
---|
85 | IREP = 0
|
---|
86 |
|
---|
87 | C RANDOM DECISION FOR ANNIHILATION WITH PROTON OR NEUTRON
|
---|
88 |
|
---|
89 | 20 CONTINUE
|
---|
90 | CALL RMMAR( RD,2,1 )
|
---|
91 | IREP = IREP + 1
|
---|
92 | C AFTER THE 5TH TRY, QUIT THE ANNIHILATION WITHOUT ANY PION GENERATED
|
---|
93 | IF ( IREP .GT. 5 ) GOTO 999
|
---|
94 | IF ( RD(1) .LE. 0.5 ) THEN
|
---|
95 |
|
---|
96 | C-----------------------------------------------------------------------
|
---|
97 | C ANTIPROTON - PROTON AND ANTINEUTRON - NEUTRON ANNIHILATION
|
---|
98 | IF ( RD(2) .LE. CANN(1) ) THEN
|
---|
99 | C ANNIHILATION INTO PI+, PI-
|
---|
100 | NPIPOS = 1
|
---|
101 | NPINEG = 1
|
---|
102 | NPIZ = 0
|
---|
103 | ELSEIF ( RD(2) .LE. CANN(2) ) THEN
|
---|
104 | C ANNIHILATION INTO PI+, PI-, PI0
|
---|
105 | NPIPOS = 1
|
---|
106 | NPINEG = 1
|
---|
107 | NPIZ = 1
|
---|
108 | ELSEIF ( RD(2) .LE. CANN(3) ) THEN
|
---|
109 | C ANNIHILATION INTO PI+, PI-, 2PI0
|
---|
110 | NPIPOS = 1
|
---|
111 | NPINEG = 1
|
---|
112 | NPIZ = 2
|
---|
113 | ELSEIF ( RD(2) .LE. CANN(4) ) THEN
|
---|
114 | C ANNIHILATION INTO PI+, PI-, 3PI0
|
---|
115 | NPIPOS = 1
|
---|
116 | NPINEG = 1
|
---|
117 | NPIZ = 3
|
---|
118 | ELSEIF ( RD(2) .LE. CANN(5) ) THEN
|
---|
119 | C ANNIHILATION INTO PI+, PI-, 4PI0
|
---|
120 | NPIPOS = 1
|
---|
121 | NPINEG = 1
|
---|
122 | NPIZ = 4
|
---|
123 | ELSEIF ( RD(2) .LE. CANN(6) ) THEN
|
---|
124 | C ANNIHILATION INTO 2PI+, 2PI-
|
---|
125 | NPIPOS = 2
|
---|
126 | NPINEG = 2
|
---|
127 | NPIZ = 0
|
---|
128 | ELSEIF ( RD(2) .LE. CANN(7) ) THEN
|
---|
129 | C ANNIHILATION INTO 2PI+, 2PI-, PI0
|
---|
130 | NPIPOS = 2
|
---|
131 | NPINEG = 2
|
---|
132 | NPIZ = 1
|
---|
133 | ELSEIF ( RD(2) .LE. CANN(8) ) THEN
|
---|
134 | C ANNIHILATION INTO 2PI+, 2PI-, 2PI0
|
---|
135 | NPIPOS = 2
|
---|
136 | NPINEG = 2
|
---|
137 | NPIZ = 2
|
---|
138 | ELSEIF ( RD(2) .LE. CANN(9) ) THEN
|
---|
139 | C ANNIHILATION INTO 2PI+, 2PI-, 3PI0
|
---|
140 | NPIPOS = 2
|
---|
141 | NPINEG = 2
|
---|
142 | NPIZ = 3
|
---|
143 | ELSEIF ( RD(2) .LE. CANN(10) ) THEN
|
---|
144 | C ANNIHILATION INTO 3PI+, 3PI-
|
---|
145 | NPIPOS = 3
|
---|
146 | NPINEG = 3
|
---|
147 | NPIZ = 0
|
---|
148 | ELSEIF ( RD(2) .LE. CANN(11) ) THEN
|
---|
149 | C ANNIHILATION INTO 3PI+, 3PI-, PI0
|
---|
150 | NPIPOS = 3
|
---|
151 | NPINEG = 3
|
---|
152 | NPIZ = 1
|
---|
153 | ELSEIF ( RD(2) .LE. CANN(12) ) THEN
|
---|
154 | C ANNIHILATION INTO 3PI+, 3PI-, 2PI0
|
---|
155 | NPIPOS = 3
|
---|
156 | NPINEG = 3
|
---|
157 | NPIZ = 2
|
---|
158 | ELSE
|
---|
159 | C ANNIHILATION INTO 4PI0
|
---|
160 | NPIPOS = 0
|
---|
161 | NPINEG = 0
|
---|
162 | NPIZ = 4
|
---|
163 | ENDIF
|
---|
164 |
|
---|
165 | ELSE
|
---|
166 | C-----------------------------------------------------------------------
|
---|
167 | C ANTIPROTON - NEUTRON (OR ANTINEUTRON - PROTON) ANNIHILATION
|
---|
168 | IF ( RD(2) .LE. CANN(13) ) THEN
|
---|
169 | C ANNIHILATION INTO PI-, PI0
|
---|
170 | NPIPOS = 0
|
---|
171 | NPINEG = 1
|
---|
172 | NPIZ = 1
|
---|
173 | ELSEIF ( RD(2) .LE. CANN(14) ) THEN
|
---|
174 | C ANNIHILATION INTO PI-, 2PI0
|
---|
175 | NPIPOS = 0
|
---|
176 | NPINEG = 1
|
---|
177 | NPIZ = 2
|
---|
178 | ELSEIF ( RD(2) .LE. CANN(15) ) THEN
|
---|
179 | C ANNIHILATION INTO PI-, 3PI0
|
---|
180 | NPIPOS = 0
|
---|
181 | NPINEG = 1
|
---|
182 | NPIZ = 3
|
---|
183 | ELSEIF ( RD(2) .LE. CANN(16) ) THEN
|
---|
184 | C ANNIHILATION INTO PI-, 4PI0
|
---|
185 | NPIPOS = 0
|
---|
186 | NPINEG = 1
|
---|
187 | NPIZ = 4
|
---|
188 | ELSEIF ( RD(2) .LE. CANN(17) ) THEN
|
---|
189 | C ANNIHILATION INTO PI-, 5PI0
|
---|
190 | NPIPOS = 0
|
---|
191 | NPINEG = 1
|
---|
192 | NPIZ = 5
|
---|
193 | ELSEIF ( RD(2) .LE. CANN(18) ) THEN
|
---|
194 | C ANNIHILATION INTO PI+, 2PI-
|
---|
195 | NPIPOS = 1
|
---|
196 | NPINEG = 2
|
---|
197 | NPIZ = 0
|
---|
198 | ELSEIF ( RD(2) .LE. CANN(19) ) THEN
|
---|
199 | C ANNIHILATION INTO PI+, 2PI-, PI0
|
---|
200 | NPIPOS = 1
|
---|
201 | NPINEG = 2
|
---|
202 | NPIZ = 1
|
---|
203 | ELSEIF ( RD(2) .LE. CANN(20) ) THEN
|
---|
204 | C ANNIHILATION INTO PI+, 2PI-, 2PI0
|
---|
205 | NPIPOS = 1
|
---|
206 | NPINEG = 2
|
---|
207 | NPIZ = 2
|
---|
208 | ELSEIF ( RD(2) .LE. CANN(21) ) THEN
|
---|
209 | C ANNIHILATION INTO PI+, 2PI-, 3PI0
|
---|
210 | NPIPOS = 1
|
---|
211 | NPINEG = 2
|
---|
212 | NPIZ = 3
|
---|
213 | ELSEIF ( RD(2) .LE. CANN(22) ) THEN
|
---|
214 | C ANNIHILATION INTO PI+, 2PI-, 4PI0
|
---|
215 | NPIPOS = 1
|
---|
216 | NPINEG = 2
|
---|
217 | NPIZ = 4
|
---|
218 | ELSEIF ( RD(2) .LE. CANN(23) ) THEN
|
---|
219 | C ANNIHILATION INTO 2PI+, 3PI-
|
---|
220 | NPIPOS = 2
|
---|
221 | NPINEG = 3
|
---|
222 | NPIZ = 0
|
---|
223 | ELSEIF ( RD(2) .LE. CANN(24) ) THEN
|
---|
224 | C ANNIHILATION INTO 2PI+, 3PI-, PI0
|
---|
225 | NPIPOS = 2
|
---|
226 | NPINEG = 3
|
---|
227 | NPIZ = 1
|
---|
228 | ELSEIF ( RD(2) .LE. CANN(25) ) THEN
|
---|
229 | C ANNIHILATION INTO 2PI+, 3PI-, 2PI0
|
---|
230 | NPIPOS = 2
|
---|
231 | NPINEG = 3
|
---|
232 | NPIZ = 2
|
---|
233 | ELSEIF ( RD(2) .LE. CANN(26) ) THEN
|
---|
234 | C ANNIHILATION INTO 2PI+, 3PI-, 3PI0
|
---|
235 | NPIPOS = 2
|
---|
236 | NPINEG = 3
|
---|
237 | NPIZ = 3
|
---|
238 | ELSE
|
---|
239 | C ANNIHILATION INTO 3PI+, 4PI-
|
---|
240 | NPIPOS = 3
|
---|
241 | NPINEG = 4
|
---|
242 | NPIZ = 0
|
---|
243 | ENDIF
|
---|
244 |
|
---|
245 | C CHARGE INVERSION IF ANTINEUTRON ANNIHILATES WITH PROTON
|
---|
246 | IF ( ITYPE .EQ. 25 ) THEN
|
---|
247 | NPINEG = NPINEG - 1
|
---|
248 | NPIPOS = NPIPOS + 1
|
---|
249 | ENDIF
|
---|
250 |
|
---|
251 | ENDIF
|
---|
252 |
|
---|
253 | NPI = NPIPOS + NPINEG + NPIZ
|
---|
254 | FNPI = 1.D0 / NPI
|
---|
255 | GCMI = 1.D0 / GCM
|
---|
256 |
|
---|
257 | C-----------------------------------------------------------------------
|
---|
258 | C CHARGE ASSIGNMENT
|
---|
259 |
|
---|
260 | DO 26 I = 1,NPI
|
---|
261 | IF ( I .LE. NPIZ ) THEN
|
---|
262 | C NEUTRAL PIONS
|
---|
263 | NTYP(I) = 7
|
---|
264 | ELSEIF ( I .LE. NPIZ+NPIPOS ) THEN
|
---|
265 | C POSITIVE PIONS
|
---|
266 | NTYP(I) = 8
|
---|
267 | ELSE
|
---|
268 | C NEGATIVE PIONS
|
---|
269 | NTYP(I) = 9
|
---|
270 | ENDIF
|
---|
271 | 26 CONTINUE
|
---|
272 |
|
---|
273 | C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
---|
274 | C KINEMATIC CALCULATIONS
|
---|
275 |
|
---|
276 | ISCALE = 0
|
---|
277 | 27 CONTINUE
|
---|
278 | ISCALE = ISCALE + 1
|
---|
279 | C AFTER THE 5TH TRY, TAKE A NEW SET OF PIONS
|
---|
280 | IF ( ISCALE .GT. 5 ) GOTO 20
|
---|
281 |
|
---|
282 | C DISTRIBUTUION OF TRANSVERSE MOMENTA PTR
|
---|
283 |
|
---|
284 | CORECT = 5.3333333333D0 * FNPI**1.5D0 * ECM
|
---|
285 | DO 28 I = 1,NPI
|
---|
286 | PTR(I) = PTRANS(DUMMY) * (1.33333333D0 + CORECT)
|
---|
287 | 28 CONTINUE
|
---|
288 |
|
---|
289 | SUMPX = 0.D0
|
---|
290 | SUMPY = 0.D0
|
---|
291 | CALL RMMAR( RD,NPI,1 )
|
---|
292 | DO 29 I = 1,NPI
|
---|
293 | C SELECT EMISSION ANGLE BY REDUCED RESIDUAL DIRECTION
|
---|
294 | IF ( SUMPX .NE. 0.D0 .OR. SUMPY .NE. 0.D0 ) THEN
|
---|
295 | PHISUM = ATAN2( SUMPY, SUMPX )
|
---|
296 | ELSE
|
---|
297 | PHISUM = 0.D0
|
---|
298 | ENDIF
|
---|
299 | PHIPAR(I) = PHISUM + PI + PI * (NPI+1-I) * (2.*RD(I)-1.) * FNPI
|
---|
300 | PX(I) = COS( PHIPAR(I) ) * PTR(I)
|
---|
301 | PY(I) = SIN( PHIPAR(I) ) * PTR(I)
|
---|
302 | SUMPX = SUMPX + PX(I)
|
---|
303 | SUMPY = SUMPY + PY(I)
|
---|
304 | 29 CONTINUE
|
---|
305 |
|
---|
306 | C CORRECTION OF TRANSVERSE MOMENTA TO KEEP TRANSVERSE MOMENTUM BALANCE
|
---|
307 | SUMPT2 = ECM
|
---|
308 | DPX = SUMPX * FNPI
|
---|
309 | DPY = SUMPY * FNPI
|
---|
310 | DO 30 I = 1,NPI
|
---|
311 | PX(I) = PX(I) - DPX
|
---|
312 | PY(I) = PY(I) - DPY
|
---|
313 | IF ( PX(I) .NE. 0.D0 .OR. PY(I) .NE. 0.D0 ) THEN
|
---|
314 | PHIPAR(I) = ATAN2( PY(I), PX(I) )
|
---|
315 | ELSE
|
---|
316 | PHIPAR(I) = 0.D0
|
---|
317 | ENDIF
|
---|
318 | PTSQ(I) = PX(I)**2 + PY(I)**2
|
---|
319 | SUMPT2 = SUMPT2 - SQRT( PAMA(NTYP(I))**2 + PTSQ(I) )
|
---|
320 | 30 CONTINUE
|
---|
321 |
|
---|
322 | C CHECK, IF C.M. ENERGY IS EXHAUSTED BY TRANSVERSE MOMENTA
|
---|
323 | C IF SO, TRY ANOTHER SET OF TRANSVERSE MOMENTA
|
---|
324 | IF ( SUMPT2 .LE. 0.D0 ) GOTO 27
|
---|
325 |
|
---|
326 | C DISTRIBUTION OF LONGITUDINAL MOMENTA PL
|
---|
327 |
|
---|
328 | C SUM1PL IS SUM OF ABS. VALUES OF LONGITUDINAL MOMENTA
|
---|
329 | F = SUMPT2 * FNPI
|
---|
330 | SUM1PL = 0.D0
|
---|
331 | DO 31 I = 1,NPI
|
---|
332 | FWHM = F + 0.5D0 * SQRT( PTSQ(I) )
|
---|
333 | PL(I) = ABS( RANNOR(0.D0,FWHM) )
|
---|
334 | SUM1PL = SUM1PL + PL(I)
|
---|
335 | C SET SEQUENCE COUNTER
|
---|
336 | ISEQ(I) = I
|
---|
337 | 31 CONTINUE
|
---|
338 |
|
---|
339 | C SORT ISEQ IN DECREASING SIZE OF THE LONGITUDINAL MOMENTUM
|
---|
340 | DO 33 I = 1,NPI
|
---|
341 | DO 32 K = I+1,NPI
|
---|
342 | IF ( PL(ISEQ(I)) .LT. PL(ISEQ(K)) ) THEN
|
---|
343 | IHELP = ISEQ(I)
|
---|
344 | ISEQ(I) = ISEQ(K)
|
---|
345 | ISEQ(K) = IHELP
|
---|
346 | ENDIF
|
---|
347 | 32 CONTINUE
|
---|
348 | 33 CONTINUE
|
---|
349 |
|
---|
350 | C TRY TO BALANCE LONGITUDINAL MOMENTA (TO MINIMIZE CORRECTIONS)
|
---|
351 | C START WITH LONG. MOMENTA IN FORWARD/BACKWARD DIRECTION BY RANDOM
|
---|
352 | CALL RMMAR( RD,1,1 )
|
---|
353 | IF ( RD(1) .LE. 0.5 ) PL(ISEQ(1)) = - PL(ISEQ(1))
|
---|
354 | SUMPL = PL(ISEQ(1))
|
---|
355 | DO 34 I = 2,NPI
|
---|
356 | SUM1PL = SUM1PL - PL(ISEQ(I))
|
---|
357 | C IF THERE IS NOT ENOUGH MOMENTUM LEFT, SELECT FORWARD/BACKWARD TO
|
---|
358 | C BALANCE MOMENTUM, ELSE CHOOSE DIRECTION BY RANDOM
|
---|
359 | IF ( PL(ISEQ(I))+ABS(SUMPL) .GT. SUM1PL ) THEN
|
---|
360 | IF ( PL(ISEQ(I))*SUMPL .GT. 0.D0 ) PL(ISEQ(I)) = -PL(ISEQ(I))
|
---|
361 | ELSE
|
---|
362 | CALL RMMAR( RD,1,1 )
|
---|
363 | IF ( RD(1) .LE. 0.5 ) PL(ISEQ(I)) = - PL(ISEQ(I))
|
---|
364 | ENDIF
|
---|
365 | SUMPL = SUMPL + PL(ISEQ(I))
|
---|
366 | 34 CONTINUE
|
---|
367 |
|
---|
368 | C CORRECTION OF LONGITUDINAL MOMENTA TO KEEP MOMENTUM BALANCE
|
---|
369 | DPL = SUMPL * FNPI
|
---|
370 | DO 35 I = 1,NPI
|
---|
371 | PL(I) = PL(I) - DPL
|
---|
372 | 35 CONTINUE
|
---|
373 |
|
---|
374 | C ITERATIVE CORRECTION OF ALL MOMENTA TO KEEP ENERGY BALANCE
|
---|
375 |
|
---|
376 | IREPET = 0
|
---|
377 | 36 CONTINUE
|
---|
378 | IREPET = IREPET + 1
|
---|
379 | IF ( IREPET .GT. 10 ) GOTO 27
|
---|
380 | ETOT = 0.D0
|
---|
381 | C CHECK ENERGY CONSERVATION
|
---|
382 | DO 37 I = 1,NPI
|
---|
383 | PTSQ(I) = PX(I)**2 + PY(I)**2
|
---|
384 | E(I) = SQRT( PAMA(NTYP(I))**2 + PTSQ(I) + PL(I)**2 )
|
---|
385 | ETOT = ETOT + E(I)
|
---|
386 | 37 CONTINUE
|
---|
387 |
|
---|
388 | ECORR = ECM / ETOT - 1.D0
|
---|
389 |
|
---|
390 | C LOOK WHETHER ENERGY IS CONSERVED WITHIN 1 %
|
---|
391 | IF ( ABS(ECORR) .GT. .01D0 ) THEN
|
---|
392 | C FACTOR IS MODIFIED WITH EMPIRICAL TERM 1/GCM FOR FASTER CONVERGENCE
|
---|
393 | FACT = (0.5D0+GCMI) * ECORR * 0.02D0 * NPI
|
---|
394 | DO 38 I = 1,NPI
|
---|
395 | PX(I) = PX(I) * ( FACT + 1.D0 )
|
---|
396 | PY(I) = PY(I) * ( FACT + 1.D0 )
|
---|
397 | PL(I) = PL(I) * ( FACT * 20.D0 + 1.D0 )
|
---|
398 | 38 CONTINUE
|
---|
399 | GOTO 36
|
---|
400 | ENDIF
|
---|
401 |
|
---|
402 | C LORENTZ TRANSFORMATION FROM C.M. TO LAB. FRAME
|
---|
403 |
|
---|
404 | DO 40 K = 5,8
|
---|
405 | SECPAR(K) = CURPAR(K)
|
---|
406 | 40 CONTINUE
|
---|
407 | DO 41 I = 1,NPI
|
---|
408 | PLLAB = GCM * ( PL(I) + BETACM * E(I) )
|
---|
409 | IF ( PLLAB .LE. 0.D0 ) GOTO 41
|
---|
410 | CTHETA = PLLAB / SQRT( PTSQ(I) + PLLAB**2 )
|
---|
411 | IF ( CTHETA .LT. C(27) ) GOTO 41
|
---|
412 | CALL ADDANG( COSTHE,PHI, CTHETA,PHIPAR(I), SECPAR(3),SECPAR(4) )
|
---|
413 | IF ( SECPAR(3) .LT. C(29) ) GOTO 41
|
---|
414 | SECPAR(1) = NTYP(I)
|
---|
415 | SECPAR(2) = GCM / PAMA(NTYP(I)) * ( PL(I) * BETACM + E(I) )
|
---|
416 | CALL TSTACK
|
---|
417 | 41 CONTINUE
|
---|
418 |
|
---|
419 | MSMM = MSMM + NPI
|
---|
420 | 999 CONTINUE
|
---|
421 |
|
---|
422 | RETURN
|
---|
423 | END
|
---|