]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEANT321/gstrag/giasho.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / GEANT321 / gstrag / giasho.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
62be6b28 5* Revision 1.1.1.1 1999/05/18 15:55:20 fca
6* AliRoot sources
7*
fe4da5cc 8* Revision 1.1.1.1 1995/10/24 10:21:37 cernlib
9* Geant
10*
11*
12#include "geant321/pilot.h"
13#if defined(CERNLIB_ASHO)
14*CMZ : 3.21/02 29/03/94 15.41.25 by S.Giani
15*-- Author :
16 SUBROUTINE GIASHO
17#include "geant321/gcbank.inc"
18#include "geant321/gcmate.inc"
19 DIMENSION E0ELM(100),NSELM(100)
20 DIMENSION ZSELM(7,100),ESELM(7,100)
21 DATA E0ELM /
22 + 0.0204,0.0385,3*0.,0.0738,0.0978,0.1157,0.1248,0.1338,
23 + 3*0.,0.1745,0.1791,2*0.,0.1816,12*0.,0.3018,0.2806,
24 + 0.2906,2*0.,0.3408,12*0.,0.4823,4*0.,0.5088,46*0. /
25 DATA NSELM /
26 + 1,1,3*0,2,2,2,2,2,3*0,3,3,2*0,3,12*0,4,4,4,2*0,4,12*0,
27 + 5,4*0,5,46*0/
28 DATA ZSELM /
29 + 1.,0.,0.,0.,0.,0.,0.,2.,0.,0.,0.,0.,0.,0.,21*0.,
30 + 4.,2.,0.,0.,0.,0.,0.,5.,2.,0.,0.,0.,0.,0.,
31 + 6.,2.,0.,0.,0.,0.,0.,7.,2.,0.,0.,0.,0.,0.,
32 + 8.,2.,0.,0.,0.,0.,0.,21*0.,
33 + 4.,8.,2.,0.,0.,0.,0.,5.,8.,2.,0.,0.,0.,0.,14*0.,
34 + 8.,8.,2.,0.,0.,0.,0.,84*0.,
35 + 3.,18.,8.,2.,0.,0.,0.,4.,18.,8.,2.,0.,0.,0.,
36 + 5.,18.,8.,2.,0.,0.,0.,14*0.,
37 + 8.,18.,8.,2.,0.,0.,0.,84*0.,
38 + 5.,18.,16.,8.,2.,0.,0.,28*0.,
39 + 8.,18.,18.,8.,2.,0.,0.,322*0./
40*23456789_123456789_123456789_123456789_123456789_123456789_123456789_12
41 DATA ESELM / 0.01360,0.,0.,0.,0.,0.,0.,0.02459,0.,0.,0.,0.,0.,0.,
42 +21*0., 0.01367,0.288,0.,0.,0.,0.,0.,0.01662,0.4030,0.,0.,0.,0.,
43 +0., 0.01742,0.5380,0.,0.,0.,0.,0.,0.02174,0.6940,0.,0.,0.,0.,0.,
44 +0.02643,0.8701,0.,0.,0.,0.,0.,21*0., .01047,.1147,1.844,0.,0.,0.,
45 +0.,.01247,.1467,2.148,0.,0.,0.,0., 14*0.,0.01845,0.2666,3.206,0.,
46 +0.,0.,0.,84*0., 0.00899,0.04480,1.169,10.37,0.,0.,0., 0.01063,
47 +0.06190,1.274,11.11,0.,0.,0., 0.01291,0.07953,1.384,11.87,0.,0.,
48 +0.,14*0., 0.01676,0.1412,1.750,14.33,0.,0.,0.,84*0., 0.00720,
49 +0.04012,0.5682,3.908,27.93,0.,0.,28*0., 0.01466,0.1006,0.8097,
50 +5.030,34.570,0.,0.,322*0./
51*
52*-----------------------------------------------------------------------
53*
54 DIMENSION ZSMED(50),ESMED(50)
55C-----------------------------------------------------------------------
56C
57 JMA = LQ(JMATE-NMAT)
58 JMIXT = LQ(JMA-5)
59 NCOMP = ABS(Q(JMA+11))
60 AMED = 0.
61 ZMED = 0.
62 E0CAL = 0. !Sum of Z(i)*log(I(i))
63 E0MED = 0.
64 NSMED = 0
65
66 DO 20 I = 1,NCOMP
67 IF(NCOMP.GT.1) THEN
68 IZ = Q(JMIXT+NCOMP+I)+0.5
69 WEIGHT = Q(JMIXT+2*NCOMP+I)/Q(JMIXT+I)
70 E0MED = E0MED + Q(JMIXT+NCOMP+I)*WEIGHT*LOG(E0ELM(IZ))
71 ZMED = ZMED + Q(JMIXT+NCOMP+I)*WEIGHT
72 AMED = AMED + Q(JMIXT+I)*WEIGHT
73 ELSE
74 IZ = Z+0.5
75 E0MED = E0ELM(IZ)
76 ZMED = Z
77 AMED = A
78 ENDIF
79 DO 10 J = 1,NSELM(IZ)
80 NSMED = NSMED + 1
81 IF(NCOMP.GT.1) THEN
82 ZSMED(NSMED) = ZSELM(J,IZ)*WEIGHT
83 ELSE
84 ZSMED(NSMED) = ZSELM(J,IZ)
85 ENDIF
86 ESMED(NSMED) = ESELM(J,IZ)
87 E0CAL = E0CAL + ZSMED(NSMED)*LOG(ESELM(J,IZ))
88 10 CONTINUE
89 20 CONTINUE
90 IF (NCOMP.GT.1) E0MED = EXP(E0MED/ZMED)
91 E0CAL = EXP(E0CAL/ZMED)
92 ALFA = E0MED/E0CAL
93C-----------------------------------------------------------------------
94C The following sets ZSMED and ESMED in the order of increase
95C of ESMED.
96C-----------------------------------------------------------------------
97 DO 40 I = 1,NSMED - 1
98 IMIN = I
99 EMIN = ESMED(I)
100 DO 30 J = I + 1,NSMED
101 IF (EMIN.LE.ESMED(J)) GOTO 30
102 EMIN = ESMED(J)
103 IMIN = J
104 30 CONTINUE
105 IF (I.EQ.IMIN) GOTO 40
106 X = ESMED(I)
107 Y = ZSMED(I)
108 ESMED(I) = ESMED(IMIN)
109 ZSMED(I) = ZSMED(IMIN)
110 ESMED(IMIN) = X
111 ZSMED(IMIN) = Y
112 40 CONTINUE
113C-----------------------------------------------------------------------
114C The following combines the first smallest oscillators whose
115C integer relative potentials are equal to 1.
116C-----------------------------------------------------------------------
117 ZMIN = 0.
118 EMIN = 0.
119 IMIN = 1
120 DO 50 I = 1,NSMED
121 J = ESMED(I)/ESMED(1) + 0.5
122 IF (J.GT.1) GOTO 60
123 ZMIN = ZMIN + ZSMED(I)
124 EMIN = EMIN + ZSMED(I)*LOG(ESMED(I))
125 IMIN = I
126 50 CONTINUE
127 60 ESMED(1) = EXP(EMIN/ZMIN)
128 ZSMED(1) = ZMIN
129 DO 70 I = IMIN + 1,NSMED
130 ZSMED(I - IMIN + 1) = ZSMED(I)
131 ESMED(I - IMIN + 1) = ESMED(I)
132 70 CONTINUE
133 NSMED = NSMED - IMIN + 1
134 JASHO = LQ(JMA-20)
135*
136* *** Store parameters of ASHO in material bank 20
137 Q(JASHO+1) = NSMED
138 Q(JASHO+2) = ZMED
139 Q(JASHO+3) = AMED
140 Q(JASHO+4) = ALFA
141 Q(JASHO+5) = E0MED
142 DO 80 KMED=1,NSMED
143 Q(JASHO+5+KMED) = ZSMED(KMED)
144 Q(JASHO+5+NSMED+KMED) = ESMED(KMED)
145 80 CONTINUE
146 NLEFT = 2*NSMED - 100
147 CALL MZPUSH(IXCONS,JASHO,0,NLEFT,'I')
148 END
62be6b28 149#else
150 SUBROUTINE GIASHO_DUMMY
151 END
fe4da5cc 152#endif