This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / MINICERN / mathlib / gen / u / dwig9j64.F
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 DWIG9J(A,B,C,P,Q,R,X,Y,Z)
12       IMPLICIT DOUBLE PRECISION (A-H,O-Z)
13  
14       PARAMETER (R1 = 1, HF = R1/2)
15  
16       IA=NINT(2*A)
17       IB=NINT(2*B)
18       IC=NINT(2*C)
19       IP=NINT(2*P)
20       IQ=NINT(2*Q)
21       IR=NINT(2*R)
22       IX=NINT(2*X)
23       IY=NINT(2*Y)
24       IZ=NINT(2*Z)
25  
26       H=0
27       IF(IA .LT. 0 .OR. IB .LT. 0 .OR. IC .LT. 0 .OR.
28      1   IP .LT. 0 .OR. IQ .LT. 0 .OR. IR .LT. 0 .OR.
29      2   IX .LT. 0 .OR. IY .LT. 0 .OR. IZ .LT. 0) GO TO 99
30       J0=MAX(ABS(IA-IZ),ABS(IY-IP),ABS(IB-IR))
31       J1=MIN(IA+IZ,IY+IP,IB+IR)
32       S=0
33       V=(-1)**J0
34       DO 1 J = J0,J1
35       AJ=HF*J
36       H=DWIG6J(A,P,X,Y,Z,AJ)
37       IF(H .NE. 0) H=H*DWIG6J(B,Q,Y,P,AJ,R)
38       IF(H .NE. 0) H=H*DWIG6J(C,R,Z,AJ,A,B)
39       S=S+V*(AJ+HF)*H
40     1 V=-V
41       H=2*S
42    99 DWIG9J=H
43       RETURN
44       END
45 #endif