]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MINICERN/mathlib/gen/u/dwig3j64.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / MINICERN / mathlib / gen / u / dwig3j64.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1996/04/01 15:01:48 mclareni
6* Mathlib gen
7*
8*
9#include "gen/pilot.h"
10#if defined(CERNLIB_DOUBLE)
11 FUNCTION DWIG3J(A1,B1,C1,X1,Y1,Z1)
12 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
13#endif
14#if !defined(CERNLIB_DOUBLE)
15 FUNCTION RWIG3J(A1,B1,C1,X1,Y1,Z1)
16#include "gen/imp64.inc"
17#endif
18 LOGICAL LCG,LJN,LRC
19
20 DIMENSION U(0:202)
21
22 PARAMETER (R1 = 1, HF = R1/2)
23
24 DATA U(0),U(2),(U(2*N-1),N=1,101) /103*0/
25 DATA U( 4),U( 6) /6.931471805599453D-01, 1.791759469228055D+00/
26 DATA U( 8),U( 10) /3.178053830347946D+00, 4.787491742782046D+00/
27 DATA U( 12),U( 14) /6.579251212010101D+00, 8.525161361065414D+00/
28 DATA U( 16),U( 18) /1.060460290274525D+01, 1.280182748008147D+01/
29 DATA U( 20),U( 22) /1.510441257307552D+01, 1.750230784587389D+01/
30 DATA U( 24),U( 26) /1.998721449566189D+01, 2.255216385312342D+01/
31 DATA U( 28),U( 30) /2.519122118273868D+01, 2.789927138384089D+01/
32 DATA U( 32),U( 34) /3.067186010608067D+01, 3.350507345013689D+01/
33 DATA U( 36),U( 38) /3.639544520803305D+01, 3.933988418719949D+01/
34 DATA U( 40),U( 42) /4.233561646075349D+01, 4.538013889847691D+01/
35 DATA U( 44),U( 46) /4.847118135183522D+01, 5.160667556776437D+01/
36 DATA U( 48),U( 50) /5.478472939811232D+01, 5.800360522298052D+01/
37 DATA U( 52),U( 54) /6.126170176100200D+01, 6.455753862700633D+01/
38 DATA U( 56),U( 58) /6.788974313718153D+01, 7.125703896716801D+01/
39 DATA U( 60),U( 62) /7.465823634883016D+01, 7.809222355331531D+01/
40 DATA U( 64),U( 66) /8.155795945611504D+01, 8.505446701758152D+01/
41 DATA U( 68),U( 70) /8.858082754219768D+01, 9.213617560368709D+01/
42 DATA U( 72),U( 74) /9.571969454214320D+01, 9.933061245478743D+01/
43 DATA U( 76),U( 78) /1.029681986145138D+02, 1.066317602606435D+02/
44 DATA U( 80),U( 82) /1.103206397147574D+02, 1.140342117814617D+02/
45 DATA U( 84),U( 86) /1.177718813997451D+02, 1.215330815154386D+02/
46 DATA U( 88),U( 90) /1.253172711493569D+02, 1.291239336391272D+02/
47 DATA U( 92),U( 94) /1.329525750356163D+02, 1.368027226373264D+02/
48 DATA U( 96),U( 98) /1.406739236482343D+02, 1.445657439463449D+02/
49 DATA U(100),U(102) /1.484777669517730D+02, 1.524095925844974D+02/
50 DATA U(104),U(106) /1.563608363030788D+02, 1.603311282166309D+02/
51 DATA U(108),U(110) /1.643201122631952D+02, 1.683274454484277D+02/
52 DATA U(112),U(114) /1.723527971391628D+02, 1.763958484069974D+02/
53 DATA U(116),U(118) /1.804562914175438D+02, 1.845338288614495D+02/
54 DATA U(120),U(122) /1.886281734236716D+02, 1.927390472878449D+02/
55 DATA U(124),U(126) /1.968661816728900D+02, 2.010093163992815D+02/
56 DATA U(128),U(130) /2.051681994826412D+02, 2.093425867525368D+02/
57 DATA U(132),U(134) /2.135322414945633D+02, 2.177369341139542D+02/
58 DATA U(136),U(138) /2.219564418191303D+02, 2.261905483237276D+02/
59 DATA U(140),U(142) /2.304390435657770D+02, 2.347017234428183D+02/
60 DATA U(144),U(146) /2.389783895618343D+02, 2.432688490029827D+02/
61 DATA U(148),U(150) /2.475729140961869D+02, 2.518904022097232D+02/
62 DATA U(152),U(154) /2.562211355500095D+02, 2.605649409718632D+02/
63 DATA U(156),U(158) /2.649216497985528D+02, 2.692910976510198D+02/
64 DATA U(160),U(162) /2.736731242856937D+02, 2.780675734403661D+02/
65 DATA U(164),U(166) /2.824742926876304D+02, 2.868931332954270D+02/
66 DATA U(168),U(170) /2.913239500942703D+02, 2.957666013507606D+02/
67 DATA U(172),U(174) /3.002209486470141D+02, 3.046868567656687D+02/
68 DATA U(176),U(178) /3.091641935801469D+02, 3.136528299498791D+02/
69 DATA U(180),U(182) /3.181526396202093D+02, 3.226634991267262D+02/
70 DATA U(184),U(186) /3.271852877037752D+02, 3.317178871969285D+02/
71 DATA U(188),U(190) /3.362611819791985D+02, 3.408150588707990D+02/
72 DATA U(192),U(194) /3.453794070622669D+02, 3.499541180407702D+02/
73 DATA U(196),U(198) /3.545390855194408D+02, 3.591342053695754D+02/
74 DATA U(200),U(202) /3.637393755555635D+02, 3.683544960724047D+02/
75
76 LCG=.FALSE.
77 GO TO 7
78
79#if defined(CERNLIB_DOUBLE)
80 ENTRY DCLEBG(A1,B1,C1,X1,Y1,Z1)
81#endif
82#if !defined(CERNLIB_DOUBLE)
83 ENTRY RCLEBG(A1,B1,C1,X1,Y1,Z1)
84#endif
85 LCG=.TRUE.
86
87 7 H=0
88 IA=NINT(2*A1)
89 IB=NINT(2*B1)
90 IC=NINT(2*C1)
91 IX=NINT(2*X1)
92 IY=NINT(2*Y1)
93 IZ=NINT(2*Z1)
94 IF(IA .LT. 0 .OR. IB .LT. 0 .OR. IC .LT. 0) GO TO 99
95 IF(MOD(IA+IB+IC,2) .NE. 0) GO TO 99
96 JX=ABS(IX)
97 JY=ABS(IY)
98 JZ=ABS(IZ)
99 IF(IA .LT. JX .OR. IB .LT. JY .OR. IC .LT. JZ) GO TO 99
100 IF(MOD(IA+JX,2) .NE. 0 .OR. MOD(IB+JY,2) .NE. 0) GOTO 99
101 IF(MOD(IC+JZ,2) .NE. 0) GO TO 99
102 IF(LCG) THEN
103 IZ=-IZ
104 J0=0
105 F=SQRT((IC+1)*R1)
106 ELSE
107 J0=IA-IB-IZ
108 F=1
109 ENDIF
110 IF(IX+IY+IZ .NE. 0 .OR. MOD(J0,2) .NE. 0) GO TO 99
111 K0=IA+IB+IC+2
112 K1=IA+IB-IC
113 K2=IA-IB+IC
114 K3=IB+IC-IA
115 IF(K1 .LT. 0 .OR. K2 .LT. 0 .OR. K3 .LT. 0) GO TO 99
116 K4=IA+IX
117 K5=IB+IY
118 K6=IC+IZ
119 K7=IA-IX
120 K8=IB-IY
121 K9=IC-IZ
122 K10=IB-IC-IX
123 K11=IA-IC+IY
124 KA=MAX(0,K10,K11)
125 KZ=MIN(K1,K5,K7)
126 W=HF*(U(K1)+U(K2)+U(K3)+U(K4)+U(K5)+U(K6)+U(K7)+U(K8)+U(K9)-U(K0))
127 S=0
128 Q=(-1)**((KA+J0)/2)
129 DO 1 K = KA,KZ,2
130 S=S+Q*EXP(W-(U(K)+U(K1-K)+U(K5-K)+U(K7-K)+U(K-K10)+U(K-K11)))
131 1 Q=-Q
132 H=F*S
133 GO TO 99
134
135#if defined(CERNLIB_DOUBLE)
136 ENTRY DWIG6J(A1,B1,C1,X1,Y1,Z1)
137#endif
138#if !defined(CERNLIB_DOUBLE)
139 ENTRY RWIG6J(A1,B1,C1,X1,Y1,Z1)
140#endif
141
142 LJN=.FALSE.
143 LRC=.FALSE.
144 A=A1
145 B=B1
146 C=C1
147 X=X1
148 Y=Y1
149 Z=Z1
150 GO TO 9
151
152#if defined(CERNLIB_DOUBLE)
153 ENTRY DRACAW(A1,B1,C1,X1,Y1,Z1)
154#endif
155#if !defined(CERNLIB_DOUBLE)
156 ENTRY RRACAW(A1,B1,C1,X1,Y1,Z1)
157#endif
158
159 LJN=.FALSE.
160 LRC=.TRUE.
161 GO TO 8
162
163#if defined(CERNLIB_DOUBLE)
164 ENTRY DJAHNU(A1,B1,C1,X1,Y1,Z1)
165#endif
166#if !defined(CERNLIB_DOUBLE)
167 ENTRY RJAHNU(A1,B1,C1,X1,Y1,Z1)
168#endif
169
170 LJN=.TRUE.
171 LRC=.FALSE.
172 8 A=A1
173 B=B1
174 C=Y1
175 X=X1
176 Y=C1
177 Z=Z1
178
179 9 H=0
180 IA=NINT(2*A)
181 IB=NINT(2*B)
182 IC=NINT(2*C)
183 IF(IA .LT. 0 .OR. IB .LT. 0 .OR. IC .LT. 0) GO TO 99
184 IX=NINT(2*X)
185 IY=NINT(2*Y)
186 IZ=NINT(2*Z)
187 IF(IX .LT. 0 .OR. IY .LT. 0 .OR. IZ .LT. 0) GO TO 99
188 IABC=IA+IB+IC
189 IAYZ=IA+IY+IZ
190 IF(MOD(IABC,2) .NE. 0 .OR. MOD(IAYZ,2) .NE. 0) GOTO 99
191 IXBZ=IX+IB+IZ
192 IXYC=IX+IY+IC
193 IF(MOD(IXBZ,2) .NE. 0 .OR. MOD(IXYC,2) .NE. 0) GOTO 99
194 K1=IA+IB-IC
195 K2=IA-IB+IC
196 K3=IB+IC-IA
197 IF(K1 .LT. 0 .OR. K2 .LT. 0 .OR. K3 .LT. 0) GO TO 99
198 K4=IA+IY-IZ
199 K5=IA-IY+IZ
200 K6=IY+IZ-IA
201 IF(K4 .LT. 0 .OR. K5 .LT. 0 .OR. K6 .LT. 0) GO TO 99
202 K7=IX+IB-IZ
203 K8=IX-IB+IZ
204 K9=IB+IZ-IX
205 IF(K7 .LT. 0 .OR. K8 .LT. 0 .OR. K9 .LT. 0) GO TO 99
206 K10=IX+IY-IC
207 K11=IX-IY+IC
208 K12=IY+IC-IX
209 IF(K10 .LT. 0 .OR. K11 .LT. 0 .OR. K12 .LT. 0) GO TO 99
210 IABXY=IA+IB+IX+IY
211 IBCYZ=IB+IC+IY+IZ
212 ICAZX=IC+IA+IZ+IX
213 KA=MAX(IABC,IAYZ,IXBZ,IXYC)
214 KZ=MIN(IABXY,IBCYZ,ICAZX)
215 J1=KA
216 IF(LRC .OR. LJN) J1=KA+IABXY
217 W=HF*(U(K1)+U(K2)+U(K3)-U(IABC+2)+U(K4)+U(K5)+U(K6)-U(IAYZ+2)+
218 1 U(K7)+U(K8)+U(K9)-U(IXBZ+2)+U(K10)+U(K11)+U(K12)-U(IXYC+2))
219 S=0
220 Q=(-1)**(J1/2)
221 DO 2 K = KA,KZ,2
222 S=S+Q*EXP(W+U(K+2)-(U(K-IABC)+U(K-IAYZ)+U(K-IXBZ)+U(K-IXYC)+
223 1 U(IABXY-K)+U(IBCYZ-K)+U(ICAZX-K)))
224 2 Q=-Q
225 H=S
226 IF(LJN) H=SQRT(((IC+1)*(IZ+1))*R1)*H
227
228 99 DWIG3J=H
229 RETURN
230 END