]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEANT321/gphys/gfshdc.F
This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / GEANT321 / gphys / gfshdc.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1995/10/24 10:21:25 cernlib
6* Geant
7*
8*
9#include "geant321/pilot.h"
10*CMZ : 3.21/02 29/03/94 15.41.21 by S.Giani
11*-- Author :
12 SUBROUTINE GFSHDC(IELEM,Z)
13C.
14C. ******************************************************************
15C. * *
16C. * Fetch Shell Decay Constants *
17C. * *
18C. * ==>CALLED BY : GPHXSI *
19C. * AUTHOR : J. Chwastowski *
20C. * *
21C. ******************************************************************
22C.
23#include "geant321/gcbank.inc"
24#include "geant321/gcjloc.inc"
25#include "geant321/gconsp.inc"
26#include "geant321/gcunit.inc"
27 REAL ONEEV
28 PARAMETER (ONEEV = 1.E-9)
29 DIMENSION PRB(4),PRBR(92),ER(92),PRBNR(92),ENR(92)
30 DIMENSION ESHL(24),NRAD(24),NONRAD(24)
31 PARAMETER (NFNBIN = 17, NSHELL = 4)
32C
33C Push NZ JPFN banks which will contain constants for each Z
34C
35 JPHXS = LQ(JPHOT-1)
36C
37C Get Z, the shell potentials and the decay modes
38C
39 DO 10 I = 1,24
40 ESHL(I) = 0.0
41 NRAD(I) = 0
42 NONRAD(I) = 0
43 10 CONTINUE
44 DO 20 I = 1,4
45 PRB(I) = 0.0
46 20 CONTINUE
47 DO 30 I = 1,92
48 PRBNR(I) = 0.0
49 PRBNR(I) = 0.0
50 ENR(I) = 0.0
51 ER(I) = 0.0
52 30 CONTINUE
53 CALL GFSHLS(Z,ESHL,NSHLL)
54 CALL GFRDT(Z,ESHL,NSHELL,NWR,NRAD,PRBR,ER)
55 CALL GFNRDT(Z,ESHL,NSHELL,NWNR,NONRAD,PRBNR,ENR)
56C Calculate how many words are needed for the final state bank JPHFN
57 NWORD = 0
58 DO 40 J = 1,NSHELL
59 IF(NRAD(J).GT.0) NWORD = NWORD+2*NRAD(J)+1
60 IF(NONRAD(J).GT.0) NWORD = NWORD+2*NONRAD(J)+1
61 40 CONTINUE
62 NBOOK = NWORD+NFNBIN
63 JPHFN = LQ(JPHXS-IELEM)
64C Push bank to store final state parameters
65 CALL MZPUSH(IXCONS,JPHFN,0,NBOOK,'R')
66 NUSED = 5*Q(JPHFN+1)+1
67 JPHFN = JPHFN+NUSED
68 Q(JPHFN+1) = NSHELL
69C Get probability of the shell radiative decay
70 CALL GFSDPR(Z,NSHELL,PRB)
71C
72C Copy potentials and radiative decay probabilities
73C
74 DO 50 J = 1,NSHELL
75 IF(ESHL(J).GT.0.0) THEN
76 Q(JPHFN+1+J) = ESHL(J)*ONEEV
77 Q(JPHFN+1+J+NSHELL) = PRB(J)
78 ELSE
79C if the shell potential is zero set it to -1
80 Q(JPHFN+1+J) = -1.
81 Q(JPHFN+1+J+NSHELL) = -1.
82 ENDIF
83 50 CONTINUE
84C
85C Now configurations of the final state
86C
87 K = 18
88 KR = 1
89 KNR = 1
90 IF(NWORD.GT.0) THEN
91 Q(JPHFN+10) = 18+NUSED
92 DO 100 J = 1,NSHELL
93 IF(ESHL(J).GT.0.0) THEN
94 IF(NRAD(J).GT.0) THEN
95 IF(J.GT.1) Q(JPHFN+9+J) = K+NUSED
96 Q(JPHFN+K) = NRAD(J)
97 K = K+1
98 KER = KR+NRAD(J)-1
99 DO 60 L = KR,KER
100 Q(JPHFN+K) = PRBR(L)
101 K = K+1
102 60 CONTINUE
103 DO 70 L = KR,KER
104 Q(JPHFN+K) = ER(L)
105 K = K+1
106 70 CONTINUE
107 KR = KR+NRAD(J)
108 ENDIF
109 IF(NONRAD(J).GT.0) THEN
110 Q(JPHFN+13+J) = K+NUSED
111 Q(JPHFN+K) = NONRAD(J)
112 K = K+1
113 KNER = KNR+NONRAD(J)-1
114 DO 80 L = KNR,KNER
115 Q(JPHFN+K) = PRBNR(L)
116 K = K+1
117 80 CONTINUE
118 DO 90 L = KNR,KNER
119 Q(JPHFN+K) = ENR(L)
120 K = K+1
121 90 CONTINUE
122 KNR = KNR+NONRAD(J)
123 ENDIF
124 ENDIF
125 100 CONTINUE
126 ELSE
127C You should never land here unless Z < 6
128 IF(Z.GT.5.) THEN
129C CALL MZDROP(IXCONS,JPHFN,'L')
130 WRITE(CHMAIL,'(A25,I3)') ' GFSHDC. JPHFN Z > 5. Z = ',Z
131 CALL GMAIL(0,0)
132 ENDIF
133 ENDIF
134 END