]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | * |
2 | * $Id$ | |
3 | * | |
4 | * $Log$ | |
5 | * Revision 1.1.1.1 1995/10/24 10:19:54 cernlib | |
6 | * Geant | |
7 | * | |
8 | * | |
9 | #include "geant321/pilot.h" | |
10 | *CMZ : 3.21/02 29/03/94 15.41.42 by S.Giani | |
11 | *-- Author : | |
12 | *$ CREATE CORRIN.FOR | |
13 | *COPY CORRIN | |
14 | * * | |
15 | *=== corrin ===========================================================* | |
16 | * * | |
17 | SUBROUTINE CORRIN ( ZZTAR, BBTAR, KPROJ, PPROJ, EKE ) | |
18 | ||
19 | #include "geant321/dblprc.inc" | |
20 | #include "geant321/dimpar.inc" | |
21 | #include "geant321/iounit.inc" | |
22 | * | |
23 | *----------------------------------------------------------------------* | |
24 | * * | |
25 | * Created on 10 may 1990 by Alfredo Ferrari & Paola Sala * | |
26 | * Infn - Milan * | |
27 | * * | |
28 | * Last change on 23-mar-93 by Alfredo Ferrari * | |
29 | * * | |
30 | * This version has been developed by A. Ferrari starting from the * | |
31 | * the one by J. M. Zazula: it includes a few differences mainly in * | |
32 | * the correlation since now we try to get the excitation energy * | |
33 | * from a correct energy balance * | |
34 | *----------------------------------------------------------------------* | |
35 | * | |
36 | #include "geant321/balanc.inc" | |
37 | #include "geant321/corinc.inc" | |
38 | #include "geant321/nucdat.inc" | |
39 | #include "geant321/parevt.inc" | |
40 | #include "geant321/part.inc" | |
41 | #include "geant321/resnuc.inc" | |
42 | PARAMETER ( ALFMAX = 5.00D+00 ) | |
43 | PARAMETER ( FINCFR = 1.00D+00 ) | |
44 | PARAMETER ( TMNOLD = 0.02D+00 ) | |
45 | COMMON / FKNUCO / HELP (2), HHLP (2), FTVTH (2), FINCX (2), | |
46 | & EKPOLD (2), BBOLD, ZZOLD, SQROLD, ASEASQ, | |
47 | & FSPRED, FEX0RD | |
48 | DIMENSION KPA (26) | |
49 | DIMENSION FRA(2,110), ESLOLD (2), AVMULT (2), EXDUMM (2), | |
50 | & V0WSAV (2), VEWSAV (2) | |
51 | REAL RNDM(3) | |
52 | LOGICAL LSTOP, LNUCNW, LLLIN, LLPOW | |
53 | SAVE FRA, FRAC, FRAC0, FRAMAX, KPA, IJJ, LSTOP, V0WSAV, VEWSAV | |
54 | DATA KPA/1,1,3,3,3,3,3,2,2,3,3,3,3,3,3,3,2,2,3,1,1,2,3,3,3,3/ | |
55 | * | |
56 | * Reduction factors for intran. cascade energy, taken from Alsmiller | |
57 | * Incoming baryons | |
58 | DATA (FRA(1,I), I=1,107) / .048D0,.076D0,0.10D0,.12D0, | |
59 | * .14D0,.16D0,.17D0,.19D0,.21D0,.22D0,.24D0, | |
60 | 1 .25D0,.26D0,.28D0,.29D0,.30D0,.315D0,.33D0,.34D0, | |
61 | * .35D0,.36D0,.38D0,.39D0,.40D0,.41D0,.42D0, | |
62 | 2 .43D0,.44D0,.46D0,.47D0,.48D0,.49D0,.50D0,.51D0, | |
63 | * .52D0,.53D0,.54D0,.55D0,.56D0,.57D0,.58D0,.59D0, | |
64 | 3 .60D0,.61D0,.62D0,.63D0,.635D0,.64D0,.65D0,.66D0, | |
65 | * .67D0,.675D0,.68D0,.69D0,.70D0,.71D0,.715D0, | |
66 | 4 .72D0,.725D0,.73D0,.735D0,.74D0,.75D0,.755D0, | |
67 | * .76D0,.767D0,.77D0,.77D0,.775D0,.78D0,.783D0, | |
68 | 5 .786D0,.79D0,.795D0,.80D0,.805D0,.81D0,.812D0, | |
69 | * .815D0,.82D0,.822D0,.824D0,.825D0,.825D0,.83D0, | |
70 | 6 .832D0,.834D0,.836D0,.838D0,.84D0,.843D0,.836D0, | |
71 | * .849D0,.852D0,.855D0,.856D0,.857D0,.858D0, | |
72 | 7 .859D0,.860D0,.862D0,.864D0,.866D0,.868D0,.870D0, | |
73 | * .872D0,.874D0/ | |
74 | * Incoming mesons | |
75 | DATA (FRA(2,I), I=1,63) / .048D0,.076D0,0.10D0,.12D0, | |
76 | * .14D0,.16D0,.17D0,.19D0,.21D0,.22D0,.24D0, | |
77 | 1 .25D0,.262D0,.274D0,.285D0,.295D0,.305D0,.315D0, | |
78 | * .327D0,.340D0,.345D0,.350D0,.360D0, | |
79 | 2 .370D0,.380D0,.385D0,.390D0,.398D0,.406D0,.415D0, | |
80 | * .420D0,.425D0,.430D0,.435D0,.440D0,.446D0, | |
81 | 3 .452D0,.458D0,.464D0,.470D0,.474D0,.478D0,.482D0, | |
82 | * .486D0,.490D0,.495D0,.500D0,.505D0,.510D0, | |
83 | 4 .515D0,.519D0,.523D0,.526D0,.520D0,.533D0,.537D0, | |
84 | * .540D0,.543D0,.547D0,.550D0,.555D0,.559D0, | |
85 | 5 .5625D0 / | |
86 | * | |
87 | IBPROJ = IBAR (KPROJ) | |
88 | IJJ = KPA (KPROJ) | |
89 | ANUAV = 1.D+00 | |
90 | ANCOLL = 1.D+00 | |
91 | ANUSEA = 1.D+00 | |
92 | NSEA = 0 | |
93 | LSTOP = .FALSE. | |
94 | * +-------------------------------------------------------------------* | |
95 | * | Incoming baryons | |
96 | IF ( IBPROJ .NE. 0 ) THEN | |
97 | * | +----------------------------------------------------------------* | |
98 | * | | | |
99 | IF ( IBTAR .LE. 107 ) THEN | |
100 | FRAC = FRA ( 1, IBTAR ) | |
101 | * | | | |
102 | * | +----------------------------------------------------------------* | |
103 | * | | | |
104 | ELSE IF (IBTAR .LE. 206) THEN | |
105 | FRAC = 0.739D+00 + 0.00126D+00 * BBTAR | |
106 | * | | | |
107 | * | +----------------------------------------------------------------* | |
108 | * | | | |
109 | ELSE | |
110 | FRAC = 1.D+00 | |
111 | END IF | |
112 | * | | | |
113 | * | +----------------------------------------------------------------* | |
114 | * | | |
115 | * +-------------------------------------------------------------------* | |
116 | * | Incoming mesons | |
117 | ELSE | |
118 | * | +----------------------------------------------------------------* | |
119 | * | | | |
120 | IF ( IBTAR .LE. 63 ) THEN | |
121 | FRAC = FRA ( 2, IBTAR ) * ( 1.D+00 + 0.1333D+00 * MAX ( | |
122 | & 0.D+00, BBTAR - 35.D+00 ) / 28.D+00 ) | |
123 | * | | | |
124 | * | +----------------------------------------------------------------* | |
125 | * | | | |
126 | ELSE IF ( IBTAR .LE. 107 ) THEN | |
127 | FRAC = 0.85D+00 * FRA ( 1, IBTAR ) | |
128 | * | | | |
129 | * | +----------------------------------------------------------------* | |
130 | * | | | |
131 | ELSE IF ( IBTAR .LE. 206 ) THEN | |
132 | FRAC = 0.6279D+00 + 0.001077D+00 * BBTAR | |
133 | * | | | |
134 | * | +----------------------------------------------------------------* | |
135 | * | | | |
136 | ELSE | |
137 | FRAC = 0.85D+00 | |
138 | END IF | |
139 | * | | | |
140 | * | +----------------------------------------------------------------* | |
141 | END IF | |
142 | * | | |
143 | * +-------------------------------------------------------------------* | |
144 | * +-------------------------------------------------------------------* | |
145 | * | | |
146 | IF ( BBTAR .NE. BBOLD .OR. ZZTAR .NE. ZZOLD ) THEN | |
147 | LNUCNW = .TRUE. | |
148 | * | Supply the fraction of the total kinetic energy to be | |
149 | * | used for intranuclear cascade nucleons | |
150 | SQRAMS = SQRT ( BBTAR ) | |
151 | ATO1O3 = BBTAR**0.3333333333333333D+00 | |
152 | * ZTO1O3 = ZZTAR**0.3333333333333333D+00 | |
153 | HKAP = BBTAR**2 / ( ZZTAR**2 + ( BBTAR - ZZTAR )**2 ) | |
154 | HHLP (1) = ( HKAP * ZZTAR )**0.3333333333333333D+00 / ATO1O3 | |
155 | HHLP (2) = ( HKAP * ( BBTAR - ZZTAR ) ) | |
156 | & **0.3333333333333333D+00 / ATO1O3 | |
157 | RDSNUC = R0NUCL * ATO1O3 | |
158 | RDSCOU = RCCOUL * ATO1O3 | |
159 | FLKCOU = DOST ( 1, ZZTAR ) | |
160 | VEFFNU (1) = COULPR * FLKCOU * ZZTAR / RDSCOU | |
161 | VEFFNU (2) = 0.D+00 | |
162 | AMRCAV = MAX ( 1.D+00, ( BBTAR - 2.D+00 ) ) * AMUC12 | |
163 | AMRCSQ = AMRCAV * AMRCAV | |
164 | * | +----------------------------------------------------------------* | |
165 | * | | | |
166 | DO 3000 I = 1, 2 | |
167 | PFRMMX (I) = HHLP (I) * APFRMX | |
168 | P2HELP = PFRMMX (I)**2 | |
169 | EFRMMX (I) = SQRT ( P2HELP + AMNUSQ (I) ) - AMNUCL (I) | |
170 | EFRMAV (I) = 0.3D+00 * P2HELP / AMNUCL (I) * ( 1.D+00 | |
171 | & - P2HELP / ( 5.6D+00 * AMNUSQ (I) ) ) | |
172 | ERCLAV (I) = 0.3D+00 * P2HELP / AMRCAV * ( 1.D+00 | |
173 | & - P2HELP / ( 5.6D+00 * AMRCSQ ) ) | |
174 | V0WELL (I) = EFRMMX (I) + EBNDNG (I) | |
175 | VEFFNU (I) = VEFFNU (I) + V0WELL (I) | |
176 | V0WSAV (I) = V0WELL (I) | |
177 | VEWSAV (I) = VEFFNU (I) | |
178 | ERCLMX = 0.5D+00 * P2HELP / AMRCAV * ( 1.D+00 | |
179 | & - 0.25D+00 * P2HELP / AMRCSQ ) | |
180 | EKMNNU (I) = VEFFNU (I) + EBNDNG (I) | |
181 | & - EFRMMX (I) + ERCLMX | |
182 | EKMXNU (I) = VEFFNU (I) + EBNDNG (I) | |
183 | EKMNAV (I) = VEFFNU (I) + EBNDNG (I) | |
184 | & - EFRMAV (I) + ERCLAV (I) | |
185 | ESWELL (I) = EBNDNG (I) + V0WELL (I) | |
186 | & - EFRMAV (I) + ERCLAV (I) | |
187 | FTVTH (I) = ( EKMNNU (I) / EFRMMX (I) )**3 | |
188 | FTVTH (I) = 0.4D+00 * SQRT ( FTVTH (I) ) | |
189 | 3000 CONTINUE | |
190 | * | | | |
191 | * | +----------------------------------------------------------------* | |
192 | BBOLD = BBTAR | |
193 | ZZOLD = ZZTAR | |
194 | SQROLD = SQRAMS | |
195 | * | | |
196 | * +-------------------------------------------------------------------* | |
197 | * | | |
198 | ELSE | |
199 | V0WSAV (1) = V0WELL (1) | |
200 | VEWSAV (1) = VEFFNU (1) | |
201 | V0WSAV (2) = V0WELL (2) | |
202 | VEWSAV (2) = VEFFNU (2) | |
203 | LNUCNW = .FALSE. | |
204 | END IF | |
205 | * | | |
206 | * +-------------------------------------------------------------------* | |
207 | FRAC0 = FRAC | |
208 | RETURN | |
209 | ENTRY CORSTP ( EKEFF ) | |
210 | LSTOP = .TRUE. | |
211 | ENTRY CORRNC ( EKEFF ) | |
212 | WEIGH1 = MIN ( 1.D+00, EKEFF / 4.D+00 ) | |
213 | FRAC = ( WEIGH1 * 2.5D+00 + ( 1.D+00 - WEIGH1 ) ) * FRAC0 | |
214 | FRAMAX = 2.5D+00 | |
215 | * The following is a reduction factor to bring Hannes's parametri- | |
216 | * zations for the average energy carried by cascade nucleons in | |
217 | * better agreement with experimental data | |
218 | FSPRED = FSPRD0 + ( 1.D+00 - FSPRD0 ) * MAX ( 8.D+00 - EKEFF, | |
219 | & 0.D+00 ) / 8.D+00 | |
220 | FSPRED = FSPRED * MIN ( EKEFF / 0.8D+00, 1.D+00 ) | |
221 | TMPFSP = 1.25D+00 * FSPRD0 | |
222 | FSPRED = MIN ( FSPRED, TMPFSP ) | |
223 | AVMULT (1) = FRAC * BNKEKA ( 1, EKEFF, BBOLD, SQROLD ) | |
224 | AVMULT (2) = FRAC * BNKEKA ( 2, EKEFF, BBOLD, SQROLD ) | |
225 | EKUPNU (1) = BEKEKA ( 2, EKEFF, BBOLD, SQROLD ) | |
226 | EKUPNU (2) = BEKEKA ( 3, EKEFF, BBOLD, SQROLD ) | |
227 | EINCP = FRAC * EKUPNU (1) | |
228 | EINCN = FRAC * EKUPNU (2) | |
229 | EKMAX = EKEFF - EBNDAV | |
230 | EKUPN0 = MAX ( EKUPNU (1), EKUPNU (2) ) | |
231 | * +-------------------------------------------------------------------* | |
232 | * | | |
233 | DO 4000 I = 1, 2 | |
234 | FINCUP (I) = BKEKA ( I, EKEFF, BBOLD ) | |
235 | RATRAT = MIN ( 1.D+00, 0.5D+00 * EKMAX / FINCUP (I) ) | |
236 | TMPFIN = 0.5D+00 * EKMAX | |
237 | FINCUP (I) = MIN ( FINCUP (I), TMPFIN ) | |
238 | EKPOLD (I) = EKUPNU (I) * FRAC * RATRAT | |
239 | EKUPNU (I) = FINCUP (I) | |
240 | TMPEKU = 1.5D+00 * EKMXNU (I) | |
241 | EKUPNU (I) = MAX ( FRAMAX * EKUPNU (I), TMPEKU ) | |
242 | TMPEKU = 0.7D+00 * EKEFF | |
243 | EKUPNU (I) = MIN ( EKUPNU (I), TMPEKU ) | |
244 | ESLOLD (I) = MAX ( FINCUP (I), TMNOLD ) | |
245 | FINCX (I) = ( ESLOLD (I) + ESWELL (I) ) / ESLOLD (I) * FSPRED | |
246 | ESLOPE (I) = MIN ( ESLOLD (I) * FINCX (I), EKMAX ) | |
247 | AHELP = EXP ( - EKPOLD (I) / ESLOLD (I) ) | |
248 | EKNOLD = ESLOLD (I) - EKPOLD (I) * AHELP / | |
249 | & ( 1.D+00 - AHELP ) | |
250 | EXMNAV (I) = EXP ( - EKMNAV (I) / ESLOPE (I) ) | |
251 | EXMNNU (I) = EXP ( - EKMNNU (I) / ESLOPE (I) ) | |
252 | EXUPNU (I) = EXP ( - EKUPNU (I) / ESLOPE (I) ) | |
253 | EKINAV (I) = ESLOPE (I) + ( EKMNAV (I) * EXMNAV (I) - | |
254 | & EKUPNU (I) * EXUPNU (I) ) / ( EXMNAV (I) - | |
255 | & EXUPNU (I) ) | |
256 | FINCUP (I) = AVMULT (I) * EKINAV (I) / EKPOLD (I) | |
257 | * FINCUP (I) = EKINAV (I) / EKNOLD | |
258 | 4000 CONTINUE | |
259 | * | | |
260 | * +-------------------------------------------------------------------* | |
261 | EINCP = EKPOLD (1) | |
262 | EINCN = EKPOLD (2) | |
263 | IF ( LSTOP ) RETURN | |
264 | * Power sampling | |
265 | LLPOW = .TRUE. | |
266 | LLLIN = .FALSE. | |
267 | * Take into account that a fraction 1/A^2/3 is lost because of | |
268 | * peripheral collisions | |
269 | PERCOR = ATO1O3 * ATO1O3 | |
270 | PERCOR = PERCOR / ( PERCOR - 1.D+00 ) | |
271 | EINCP0 = EINCP * FINCUP (1) * PERCOR | |
272 | EINCN0 = EINCN * FINCUP (2) * PERCOR | |
273 | EINCT = EINCP0 + EINCN0 | |
274 | * For the other distr,: | |
275 | EINCMX = EKEFF - EBNDAV - ( AV0WEL - AEFRMA ) / ( 1.D+00 + | |
276 | & 4.D+00 * ( AV0WEL - AEFRMA ) / EKEFF ) | |
277 | EIUSE = 0.5D+00 * ( EINCMX + EKMAX ) | |
278 | AHNORM = 0.D+00 | |
279 | EINCM0 = - AINFNT | |
280 | * +-------------------------------------------------------------------* | |
281 | * | Compute alfa: | |
282 | IF ( EINCMX .GT. 2.1D+00 * EINCT ) THEN | |
283 | EINFIN = MIN ( 0.95D+00 * EINCMX, ( ALFMAX + 2.D+00 ) * EINCT ) | |
284 | ALFA = EINFIN / EINCT - 2.D+00 | |
285 | * | | |
286 | * +-------------------------------------------------------------------* | |
287 | * | Energy interval too small, sample E uniformly | |
288 | ELSE | |
289 | LLPOW = .FALSE. | |
290 | END IF | |
291 | * | | |
292 | * +-------------------------------------------------------------------* | |
293 | EINCMN = 0.D+00 | |
294 | * +-------------------------------------------------------------------* | |
295 | * | Energy is so small that we cannot produce cascade nucleons, | |
296 | * | sample an excitation energy and return | |
297 | IF ( EINCMX .LE. EINCMN + 0.25D+00 * EBNDAV ) THEN | |
298 | ISAMPL = 50 | |
299 | * | | |
300 | * +-------------------------------------------------------------------* | |
301 | * | | |
302 | ELSE | |
303 | ISAMPL = 0 | |
304 | END IF | |
305 | * | | |
306 | * +-------------------------------------------------------------------* | |
307 | * +-------------------------------------------------------------------* | |
308 | * | Now make the linear sampling for Eincp, Eincn, on [0,Eicnmx] | |
309 | * | according to P(E)dE=A(Efin-E)^a dE | |
310 | 5000 CONTINUE | |
311 | ISAMPL = ISAMPL + 1 | |
312 | CALL GRNDM(RNDM,1) | |
313 | IF ( LLPOW ) THEN | |
314 | EIHELP = EINFIN * ( 1.D+00 - RNDM (1)**(1.D+00 | |
315 | & /(ALFA+1.D+00)) ) | |
316 | ELSE IF ( LLLIN ) THEN | |
317 | EINCMX = EINCM0 | |
318 | EIHELP = EINFIN - SQRT ( EINFIN**2 - 2.D+00 * RNDM (1) | |
319 | & / AHNORM ) | |
320 | ELSE | |
321 | EIHELP = EINCMX * RNDM (1) | |
322 | END IF | |
323 | * | *** end linear sampling *** | |
324 | EINCP = EINCP0 * EIHELP / EINCT | |
325 | EINCN = EINCN0 * EIHELP / EINCT | |
326 | AHELP = EKMNNU (1) / ESLOPE (1) | |
327 | AHELP = AHELP * FTVTH (1) * EINCP * ( 1.D+00 + AHELP * | |
328 | & 0.3333333333333333D+00 ) / ( 1.D+00 - EXUPNU (1) ) | |
329 | TVGRE0 = AHELP | |
330 | AHELP = EKMNNU (2) / ESLOPE (2) | |
331 | AHELP = AHELP * FTVTH (2) * EINCN * ( 1.D+00 + AHELP * | |
332 | & 0.3333333333333333D+00 ) / ( 1.D+00 - EXUPNU (2) ) | |
333 | TVGRE0 = TVGRE0 + AHELP | |
334 | * | +----------------------------------------------------------------* | |
335 | * | | Energy is so small that we cannot produce cascade nucleons, | |
336 | * | | sample an excitation energy and return | |
337 | IF ( ISAMPL .GE. 50 ) THEN | |
338 | CALL GRNDM(RNDM,3) | |
339 | PRNDM = MAX ( RNDM (1), RNDM (2), RNDM (3) ) | |
340 | TVGRE0 = MAX ( AV0WEL - PRNDM**2 * AEFRMX - EBNDAV, ZERZER ) | |
341 | EINCP = 0.D+00 | |
342 | EINCN = 0.D+00 | |
343 | TVGREY = 0.D+00 | |
344 | RETURN | |
345 | END IF | |
346 | * | | | |
347 | * | +----------------------------------------------------------------* | |
348 | * | Changed: | |
349 | IF ( EIHELP + TVGRE0 .GE. EIUSE ) GO TO 5000 | |
350 | * | | |
351 | * +--<--<--<--<--< Resampling! | |
352 | * | | |
353 | * +-------------------------------------------------------------------* | |
354 | PCR = EIHELP / EINCT | |
355 | FRAINC = FRAC * PCR | |
356 | TVGREY = 0.D+00 | |
357 | AGREYP = EINCP / EKINAV (1) | |
358 | AGREYN = EINCN / EKINAV (2) | |
359 | * ==== Discretize the distribution !!! ==== * | |
360 | CALL GRNDM(RNDM,2) | |
361 | NGREYP = INT ( AGREYP ) | |
362 | IF ( RNDM(1) .LT. AGREYP - NGREYP ) NGREYP = NGREYP + 1 | |
363 | NGREYN = INT ( AGREYN ) | |
364 | IF ( RNDM(2) .LT. AGREYN - NGREYN ) NGREYN = NGREYN + 1 | |
365 | * ==== | |
366 | AGREYT = AGREYP + AGREYN | |
367 | NGREYT = NGREYP + NGREYN | |
368 | PPROCS = AGREYP / AGREYT | |
369 | NGREYP = 0 | |
370 | NGREYN = 0 | |
371 | EINCP = 0.D+00 | |
372 | EINCN = 0.D+00 | |
373 | IF ( NGREYT .LE. 0 ) GO TO 9000 | |
374 | ARDUMM = MAX ( 1.D+00, BBOLD - 2.D+00 ) | |
375 | CALL RBKINI ( 1, .TRUE., EXDUMM, TKDUMM, TSDUMM, | |
376 | & PSDUMM, ARDUMM, TRDUMM ) | |
377 | V0SAV1 = V0WELL (1) | |
378 | V0SAV2 = V0WELL (2) | |
379 | VESAV1 = VEFFNU (1) | |
380 | VESAV2 = VEFFNU (2) | |
381 | V0WELL (1) = V0WSAV (1) | |
382 | V0WELL (2) = V0WSAV (2) | |
383 | VEFFNU (1) = VEWSAV (1) | |
384 | VEFFNU (2) = VEWSAV (2) | |
385 | IRETRY = 0 | |
386 | DO 8000 I = 1, NGREYT | |
387 | CALL GRNDM(RNDM,1) | |
388 | RNDMPR = RNDM (1) | |
389 | ARDUMM = MAX ( 1.D+00, ARDUMM - 1.D+00 ) | |
390 | 7500 CONTINUE | |
391 | IF ( RNDMPR .LT. PPROCS ) THEN | |
392 | NGREYP = NGREYP + 1 | |
393 | CALL RBKINI ( 1, .FALSE., EXDUMM, TKDUMM, TSDUMM, | |
394 | & PSDUMM, ARDUMM, TRDUMM ) | |
395 | EINCP = EINCP + TKDUMM | |
396 | IF ( EINCP + EINCN .GT. EINCMX .AND. IRETRY .LT. 5 ) THEN | |
397 | EINCP = EINCP - TKDUMM | |
398 | CALL RBKMIN (1) | |
399 | IRETRY = IRETRY + 1 | |
400 | GO TO 7500 | |
401 | END IF | |
402 | ELSE | |
403 | NGREYN = NGREYN + 1 | |
404 | CALL RBKINI ( 2, .FALSE., EXDUMM, TKDUMM, TSDUMM, | |
405 | & PSDUMM, ARDUMM, TRDUMM ) | |
406 | EINCN = EINCN + TKDUMM | |
407 | IF ( EINCP + EINCN .GT. EINCMX .AND. IRETRY .LT. 5 ) THEN | |
408 | EINCN = EINCN - TKDUMM | |
409 | CALL RBKMIN (2) | |
410 | IRETRY = IRETRY + 1 | |
411 | GO TO 7500 | |
412 | END IF | |
413 | END IF | |
414 | 8000 CONTINUE | |
415 | V0WELL (1) = V0SAV1 | |
416 | V0WELL (2) = V0SAV2 | |
417 | VEFFNU (1) = VESAV1 | |
418 | VEFFNU (2) = VESAV2 | |
419 | 9000 CONTINUE | |
420 | EINCT = EINCP + EINCN | |
421 | IF ( EINCT + TVGRE0 .GT. EIUSE ) THEN | |
422 | TVGRE0 = 0.D+00 | |
423 | EIUSE = MIN ( ONEONE, EINCMX / EINCT ) | |
424 | EINCP = EINCP * EIUSE | |
425 | EINCN = EINCN * EIUSE | |
426 | EINCT = EINCP + EINCN | |
427 | END IF | |
428 | RETURN | |
429 | *=== End of subroutine corrin =========================================* | |
430 | END |