5 * Revision 1.2 1996/09/30 14:25:47 ravndal
6 * Windows NT related modifications
8 * Revision 1.1.1.1 1995/10/24 10:22:02 cernlib
12 #include "geant321/pilot.h"
13 *CMZ : 3.21/02 29/03/94 15.41.46 by S.Giani
18 *=== pfnclv ===========================================================*
20 FUNCTION PFNCLV ( INC, LINNEW )
22 #include "geant321/dblprc.inc"
23 #include "geant321/dimpar.inc"
24 #include "geant321/iounit.inc"
26 *----------------------------------------------------------------------*
27 *----------------------------------------------------------------------*
29 #include "geant321/eva0.inc"
30 #include "geant321/nucdat.inc"
31 #include "geant321/nucgeo.inc"
32 #include "geant321/nuclev.inc"
34 LOGICAL LINNEW, LOCSEL
35 DIMENSION RADSCB (2), DEFPAI (2), DEFSHE (2), NMSHLL (2)
37 SAVE RADSCB, DEFPAI, DEFSHE, NMSHLL, NLEVEL, LOCSEL
38 DATA LOCSEL / .FALSE. /
40 *======================================================================*
41 *======================================================================*
44 IF ( ABS (RIMPCT) .GT. RUSNUC (I) ) THEN
53 EKCENT = EKFCEN (I) - EKFCHC
54 EKCENT = EKFCEN (I) - EKFCHC
55 EKCENT = MAX ( EKCENT, ZERZER )
56 JMIN = INT ( NAVNUC (I) * ( SQRT ( EKCENT * ( EKCENT + 2.D+00
57 & * AMNUCL (I) ) ) / PFRCEN (I) )**3 ) + 1
59 PROBTT = JMAX - JMIN + 1
61 RNDJTA = RNDM (1) * PROBTT
62 JMAX = MIN ( INT (RNDJTA) + JMIN, JMAX )
63 CUMMAX = CUMRAD (JMAX,I)
66 IF ( JUSNUC (JMAX,I) .EQ. INUCLV ) THEN
70 ELSE IF ( JUSNUC (JMAX,I) .EQ. -INUCLV ) THEN
72 IF ( RNDM (1) .LT. 0.5D+00 ) THEN
79 IF ( JUSNUC (JMAX,I) .NE. -1 ) THEN
80 DEFPAI (I) = PAENUC ( NTANUC (I), I )
86 PCJMAX = PFRCEN (I) * RMASS (JMAX) / RMASS (NAVNUC(I))
87 EKCJMX = SQRT ( PCJMAX**2 + AMNUSQ (I) ) - AMNUCL (I)
88 EKFERM = EKFCHC + EKCJMX - EKFCEN (I)
89 P_FNCLV = SQRT ( EKFERM * ( EKFERM + 2.D+00 * AMNUCL (I) ) )
92 DEFSHE (IO) = DEFMAG (IO)
95 IF ( JUSNUC (JMAX,I) .EQ. INUCLV ) THEN
99 ELSE IF ( I .EQ. IPRNUC (1) .AND. JMAX .EQ. JPRNUC (1) ) THEN
100 IF ( JUSNUC (JMAX,I) .EQ. -INUCLV .OR. JUSNUC (JMAX,I) .EQ.
106 ELSE IF ( JUSNUC (JMAX,I) .EQ. -INUCLV ) THEN
108 IF ( RNDM (1) .LT. 0.5D+00 ) THEN
114 IF ( JUSNUC (JMAX,I) .NE. -1 ) DEFPAI (I) = DEFPAI (I)
115 & + PAENUC ( NTANUC (I), I )
118 PCJMAX = PFRCEN (I) * RMASS (JMAX) / RMASS (NAVNUC(I))
119 EKCJMX = SQRT ( PCJMAX**2 + AMNUSQ (I) ) - AMNUCL (I)
120 EKFER2 = EKFCHC + EKCJMX - EKFCEN (I)
121 P_FNCLV = SQRT ( EKFER2 * ( EKFER2 + 2.D+00 * AMNUCL (I) ) )
123 PFNCLV = MIN ( P_FNCLV, PFCHCK )
124 IF ( JMAX .EQ. NAVNUC (I) ) THEN
125 RADSCB (NPRNUC) = NLSNUC (I) / ( CUMMAX - CUMRAD (JMAX-1,I) )
127 JNUCLN = 2 * ( JMAX - 1 ) + NLEVEL
129 RADSCB (NPRNUC) = 2.D+00 / ( CUMMAX - CUMRAD (JMAX-1,I) )
134 JPRNUC (NPRNUC) = JMAX
135 DO 3000 MG = MAGNUC (I), 2
136 IF ( MAGNUM (MG-1) .LT. JNUCLN ) GO TO 4000
141 IF ( MGSNUC (MG,I) .EQ. 0 .AND. NTANUC (I) .NE. MAGNUM (MG) ) THEN
142 DEFSHE (I) = SHENUC ( MAGNUM (MG) + 1, I )
143 & - SHENUC ( MAGNUM (MG), I ) + PAENUC (MAGNUM(MG),I)
146 DEFSHE (I) = DEFMAG (I)
148 IF ( NUSCIN .EQ. 0 ) THEN
149 DEFNUC (1) = MAX ( DEFSHE (1), ZERZER )
150 DEFNUC (2) = MAX ( DEFSHE (2), ZERZER )
152 DEFNUC (1) = MAX ( DEFPAI (1) + DEFRMI (1), DEFSHE (1), ZERZER)
153 DEFNUC (2) = MAX ( DEFPAI (2) + DEFRMI (2), DEFSHE (2), ZERZER)
157 *----------------------------------------------------------------------*
158 *----------------------------------------------------------------------*
165 IF ( MOD (MGSNUC(NMSHLL(N),I),2) .EQ. 0 )
166 & MGSNUC (NMSHLL(N),I) = MGSNUC (NMSHLL(N),I) + 1
167 IF ( JUSNUC (J,I) .EQ. -INUCLV .OR. JUSNUC (J,I) .EQ. -1 ) THEN
168 JUSNUC (J,I) = INUCLV
169 IF ( J .GE. JMXNUC (I) ) THEN
170 JMXNUC (I) = JMXNUC (I) - NLEVEL
171 RUSNUC (I) = RADSCB (N)**0.3333333333333333D+00
174 JUSNUC (J,I) = -INUCLV
176 NUSNUC (I) = NUSNUC (I) + 1
179 *=== End of function pfnclv ===========================================*