]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MINICERN/mathlib/gen/u/clebsg.F.ori
Merging the VirtualMC branch to the main development branch (HEAD)
[u/mrichter/AliRoot.git] / MINICERN / mathlib / gen / u / clebsg.F.ori
diff --git a/MINICERN/mathlib/gen/u/clebsg.F.ori b/MINICERN/mathlib/gen/u/clebsg.F.ori
deleted file mode 100644 (file)
index 3caf948..0000000
+++ /dev/null
@@ -1,466 +0,0 @@
-*
-* $Id$
-*
-* $Log$
-* Revision 1.1.1.1  1996/04/01 15:01:46  mclareni
-* Mathlib gen
-*
-*
-#include "gen/pilot.h"
-#if (defined(CERNLIB_IBM))&&(defined(CERNLIB_F4))
-      FUNCTION CLEBSG(/A/,/B/,/C/,/XX/,/YY/,/ZZ/,/GG/,/HH/,/PP/)
-#endif
-#if !defined(CERNLIB_IBM)||!defined(CERNLIB_F4)
-      FUNCTION CLEBSG( A , B , C , XX , YY , ZZ , GG , HH , PP )
-#endif
-C
-C         ADAPTED FROM HARWELL LIBRARY BY T. LINDELOF AND F. JAMES
-C         08/01/74 LAST UPDATE OF HARWELL LIBRARY
-C
-C     WIGN3J- WIGNER 3-J SYMBOL
-C     CLEBSG- CLEBSCH-GORDAN COEFFICIENT
-C     WIGN6J- WIGNER 6-J SYMBOL
-C     RACAHC- RACAH COEFFICIENT
-C     JAHNUF- U-FUNCTION (JAHN)
-C     WIGN9J- WIGNER 9-J SYMBOL
-C
-#if !defined(CERNLIB_F4)
-      REAL JAHNUF
-#endif
-      DIMENSION H(101),J(101)
-      DIMENSION AY(4),IAY(4)
-      COMMON/FGERCM/IERR,IERCT
-      DATA JJJ/0/
-      INTPTF(Q)=Q+Q+SIGN(.10,Q)
-      IPARF(I)=4*(I/4)-I+1
-C*IA  Q
-      DATA Q/0/
-      IERR= 0
-      KEY= 2
-      CALL NOARG(NARG)
-      IF (NARG.EQ.3) KEY=4
-      GO TO 1
-C
-#if (defined(CERNLIB_CDC))&&(defined(CERNLIB_F4))
-      ENTRY WIGN3J
-#endif
-#if (defined(CERNLIB_IBM))&&(defined(CERNLIB_F4))
-      ENTRY WIGN3J(/A/,/B/,/C/,/XX/,/YY/,/ZZ/,/GG/,/HH/,/PP/)
-#endif
-#if (!defined(CERNLIB_CDC)||!defined(CERNLIB_F4))&&(!defined(CERNLIB_IBM)||!defined(CERNLIB_F4))
-      ENTRY WIGN3J(A,B,C,XX,YY,ZZ,GG,HH,PP)
-#endif
-      IERR=0
-      CALL NOARG(NARG)
-      IF(NARG.EQ.3) GOTO 2
-      KEY=1
-      GOTO 1
-    2 KEY=3
-      GOTO 1
-C
-#if (defined(CERNLIB_CDC))&&(defined(CERNLIB_F4))
-      ENTRY RACAHC
-#endif
-#if (defined(CERNLIB_IBM))&&(defined(CERNLIB_F4))
-      ENTRY RACAHC(/A/,/B/,/C/,/XX/,/YY/,/ZZ/,/GG/,/HH/,/PP/)
-#endif
-#if (!defined(CERNLIB_CDC)||!defined(CERNLIB_F4))&&(!defined(CERNLIB_IBM)||!defined(CERNLIB_F4))
-      ENTRY RACAHC(A,B,C,XX,YY,ZZ,GG,HH,PP)
-#endif
-      KEY=12
-      IERR=0
-      GOTO 100
-C
-#if (defined(CERNLIB_CDC))&&(defined(CERNLIB_F4))
-      ENTRY WIGN6J
-#endif
-#if (defined(CERNLIB_IBM))&&(defined(CERNLIB_F4))
-      ENTRY WIGN6J(/A/,/B/,/C/,/XX/,/YY/,/ZZ/,/GG/,/HH/,/PP/)
-#endif
-#if (!defined(CERNLIB_CDC)||!defined(CERNLIB_F4))&&(!defined(CERNLIB_IBM)||!defined(CERNLIB_F4))
-      ENTRY WIGN6J(A,B,C,XX,YY,ZZ,GG,HH,PP)
-#endif
-      KEY=11
-      IERR=0
-      GOTO 100
-C
-#if (defined(CERNLIB_CDC))&&(defined(CERNLIB_F4))
-      ENTRY JAHNUF
-#endif
-#if (defined(CERNLIB_IBM))&&(defined(CERNLIB_F4))
-      ENTRY JAHNUF(/A/,/B/,/C/,/XX/,/YY/,/ZZ/,/GG/,/HH/,/PP/)
-#endif
-#if (!defined(CERNLIB_CDC)||!defined(CERNLIB_F4))&&(!defined(CERNLIB_IBM)||!defined(CERNLIB_F4))
-      ENTRY JAHNUF(A,B,C,XX,YY,ZZ,GG,HH,PP)
-#endif
-      KEY=13
-      IERR=0
-      GOTO 100
-C
-    1 K1=INTPTF(A)
-      K2=INTPTF(B)
-      K3=INTPTF(C)
-      IF(KEY.GE.3) GOTO 100
-      K4=INTPTF(XX)
-      K5=INTPTF(YY)
-      K6= INTPTF(ZZ)
-      IF (KEY.EQ.1) K6= -K6
-C
-  100 IF(JJJ.NE.0) GOTO 500
-      JJJ=1
-      IERCT=0
-      H(1)=1.0
-      J(1)=0
-      X=0.
-      DO 400 I=2,101
-      X=X+1.0
-      H(I)=H(I-1)*X
-      J(I)=J(I-1)
-  200 IF(H(I).LT.10.0) GOTO 400
-      H(I)=0.01*H(I)
-      J(I)=J(I)+2
-      GOTO 200
-  400 CONTINUE
-C
-  500 IF(KEY.LT.-5) GOTO 750
-      IF(KEY.GE.3) GOTO 320
-      IF((K4+K5-K6).NE.0) GOTO 710
-      M1=K1+K2-K3
-      M2=K2+K3-K1
-      M3=K3+K1-K2
-      M4=K1+K4
-      M5=K1-K4
-      M6=K2+K5
-      M7=K2-K5
-      M8=K3+K6
-      M9=K3-K6
-      M10=K1+K2+K3+2
-C
-      IF(M1.LT.0) GOTO 710
-      IF(M2.LT.0) GOTO 710
-      IF(M3.LT.0) GOTO 710
-      IF(M4.LT.0) GOTO 710
-      IF(M5.LT.0) GOTO 710
-      IF(M6.LT.0) GOTO 710
-      IF(M7.LT.0) GOTO 710
-      IF(M8.LT.0) GOTO 710
-      IF(M9.LT.0) GOTO 710
-      IF((M4-(M4/2)-(M4/2)).NE.0) GOTO 710
-      IF((M6-(M6/2)-(M6/2)).NE.0) GOTO 710
-      IF((M8-(M8/2)-(M8/2)).NE.0) GOTO 710
-      IF((M10-(M10/2)-(M10/2)).NE.0) GOTO 710
-C
-      Y=K3+1
-      M1=M1/2+1
-      M2=M2/2+1
-      M3=M3/2+1
-      M4=M4/2+1
-      M5=M5/2+1
-      M6=M6/2+1
-      M7=M7/2+1
-      M8=M8/2+1
-      M9=M9/2+1
-      M10=M10/2+1
-C
-      Y= SQRT(Y*H(M1)*H(M2)*H(M3)*H(M4)*H(M5)*
-     X H(M6)*H(M7)*H(M8)*H(M9)/H(M10))
-      IY=(J(M1)+J(M2)+J(M3)+J(M4)+J(M5)+
-     X J(M6)+J(M7)+J(M8)+J(M9)-J(M10))/2
-C
-      N4=M1
-      IF(N4.GT.M5)N4=M5
-      IF(N4.GT.M6)N4=M6
-      N4=N4-1
-      M2=K2-K3-K4
-      M3=K1+K5-K3
-      N5=0
-      IF(N5.LT.M2) N5=M2
-      IF(N5.LT.M3) N5=M3
-      N5PAR=IPARF(N5)
-      N5=N5/2
-      Z=0.0
-      GOTO 610
-C
-  700 MM1=M1-N5
-      MM2=M5-N5
-      MM3=M6-N5
-      MM4=N5-(M2/2)+1
-      MM5=N5-(M3/2)+1
-C
-      X=1./(H(MM1)*H(MM2)*H(MM3)*H(MM4)*H(MM5)*H(N5+1))
-      IX=-J(MM1)-J(MM2)-J(MM3)-J(MM4)-J(MM5)-J(N5+1)
-C
-  800 IF(IX+IY)900,210,110
-  900 X=0.1*X
-      IX=IX+1
-      GOTO 800
-  110 X=10.0  *X
-      IX=IX-1
-      GOTO 800
-C
-  210 IF(N5PAR.LT.0) X=-X
-      Z=Z+X
-C*UL  510 N5PAR=-N5PAR
-      N5PAR=-N5PAR
-      N5=N5+1
-C
-  610 IF(N5-N4)700,700,810
-C
- 710  CLEBSH=0.0
-      IERR=1
-      IERCT=IERCT+1
-      GOTO 220
-C
- 810  CLEBSH=Z*Y
-C*UL  910 GOTO(120,220),KEY
-      GOTO(120,220),KEY
-C
-  220 CLEBSG=CLEBSH
-      RETURN
-C
-  120 JS=K1-K2+K6
-      IF(JS.LT.0) JS=-JS
-      JSPAR=IPARF(JS)
-      CLEBSG=JSPAR*CLEBSH/ SQRT(K3+1.0  )
-      RETURN
-C
-  320 IF(KEY.GE.10) GOTO 130
-      KEY=KEY-2
-      IF((K1-(K1/2)-(K1/2)).NE.0) GOTO 420
-      IF((K2-(K2/2)-(K2/2)).NE.0) GOTO 420
-      IF((K3-(K3/2)-(K3/2)).NE.0) GOTO 420
-      IJ=K1+K2+K3
-      IJPAR=IPARF(IJ)
-      IF(IJPAR.LE.0) GOTO 420
-      M1=IJ-K1-K1
-      M2=IJ-K2-K2
-      M3=IJ-K3-K3
-      M4=IJ+2
-      IF(M1.LT.0) GOTO 420
-      IF(M2.LT.0) GOTO 420
-      IF(M3.LT.0) GOTO 420
-      M1=M1/2+1
-      M2=M2/2+1
-      M3=M3/2+1
-      M4=IJ/2+2
-      Y= SQRT(H(M1)*H(M2)*H(M3)/H(M4))
-      IY=(J(M1)+J(M2)+J(M3)-J(M4))/2
-      IJ=IJ/2
-      IJPAR=IPARF(IJ)
-      IJ=IJ/2+1
-      M1=M1/2+1
-      M2=M2/2+1
-      M3=M3/2+1
-      Z=H(IJ)/(H(M1)*H(M2)*H(M3))
-      IZ=J(IJ)-J(M1)-J(M2)-J(M3)
-      IZ=IZ+IY
-      CLEBSH=IJPAR*Y*Z*10.0  **IZ
-      GOTO(220,720),KEY
-C
-  720 JQ=K2-K1
-      IF(JQ.LT.0) JQ=-JQ
-      IJPAR=IPARF(JQ)
-      CLEBSG=CLEBSH*IJPAR* SQRT(K3+1.0  )
-      RETURN
-C
-  420 CLEBSH=0.0
-      IERR=1
-      IERCT=IERCT+1
-      GOTO(220,720),KEY
-C
-  130 IF(KEY.EQ.11) GOTO 450
-      IF(KEY.GT.19) GOTO 750
-C*UL  550 K1=INTPTF(A)
-      K1=INTPTF(A)
-      K2=INTPTF(B)
-      K3=INTPTF(YY)
-      K4=INTPTF(XX)
-      K5=INTPTF(C)
-      K6=INTPTF(ZZ)
-C
-  750 KA=K1
-      KB=K2
-      KC=K3
-      KEYTRI=1
-      GOTO 630
-C
-  230 KA=K4
-      KB=K5
-      KEYTRI=2
-      GOTO 630
-C
-  330 KB=K2
-      KC=K6
-      KEYTRI=3
-      GOTO 630
-C
-  430 KA=K1
-      KB=K5
-      KEYTRI=4
-      GOTO 630
-C
-  530 Y=AY(1)*AY(2)*AY(3)*AY(4)
-      IYY=IAY(1)+IAY(2)+IAY(3)+IAY(4)
-      M1=(K1+K2+K4+K5)/2+2
-      M2=(K1+K2-K3)/2+1
-      M3=(K4+K5-K3)/2+1
-      M4=(K1+K5-K6)/2+1
-      M5=(K2+K4-K6)/2+1
-      M6=K1+K4-K3-K6
-      M7=K2+K5-K3-K6
-C
-      N4=M1
-      IF(N4.GT.M2) N4=M2
-      IF(N4.GT.M3) N4=M3
-      IF(N4.GT.M4) N4=M4
-      IF(N4.GT.M5) N4=M5
-      N4=N4-1
-      N5=0
-      IF(N5.LT.M6) N5=M6
-      IF(N5.LT.M7) N5=M7
-      N5PAR=IPARF(N5)
-      N5=N5/2
-      M6=M6/2-1
-      M7=M7/2-1
-      Z=0.0
-      GOTO 730
-C
-  140 X=H(M1-N5)/(H(N5+1)*H(M2-N5)*H(M3-N5)*H(M4-N5)
-     X *H(M5-N5)*H(N5-M6)*H(N5-M7))
-      IX=J(M1-N5)-J(N5+1)-J(M2-N5)-J(M3-N5)-J(M4-N5)
-     X -J(M5-N5)-J(N5-M6)-J(N5-M7)
-  240 IF(IX+IYY)340,440,540
-  340 X=0.1*X
-      IX=IX+1
-      GOTO 240
-  540 X=10.0  *X
-      IX=IX-1
-      GOTO 240
-  440 IF(N5PAR.LT.0) X=-X
-      Z=Z+X
-      N5PAR=-N5PAR
-      N5=N5+1
-C
-  730 IF(N5.LE.N4) GOTO 140
-C
-      RACAH=Z*Y
-  840 IF(KEY.LT.-5) GOTO 160
-      KEY=KEY-10
-      GOTO(150,250,350),KEY
-C
-  830 RACAH=0.0
-      IERR=1
-      IERCT=IERCT+1
-      GOTO 840
-C
-  150 IJPAR=IPARF(K1+K2+K4+K5)
-      IF(IJPAR.LT.0) RACAH=-RACAH
-  250 CLEBSG=RACAH
-      RETURN
-C
-  350 FACTOR= SQRT((K3+1.0  )*(K6+1))
-      CLEBSG=FACTOR*RACAH
-      RETURN
-  450 K1=INTPTF(A)
-      K2=INTPTF(B)
-      K3=INTPTF(C)
-      K4=INTPTF(XX)
-      K5=INTPTF(YY)
-      K6=INTPTF(ZZ)
-      GOTO 750
-C
-C     TRIANGLE FUNCTION
-C
-  630 MA=KA+KB-KC
-      MB=KA-KB+KC
-      MC=-KA+KB+KC
-      MD=KA+KB+KC+2
-      IF(MA.LT.0) GOTO 830
-      IF(MB.LT.0) GOTO 830
-      IF(MC.LT.0) GOTO 830
-      IF((MD-(MD/2)-(MD/2)).NE.0) GOTO 830
-      MA=MA/2+1
-      MB=MB/2+1
-      MC=MC/2+1
-      MD=MD/2+1
-      AY(KEYTRI)= SQRT(H(MA)*H(MB)*H(MC)/H(MD))
-      IAY(KEYTRI)=(J(MA)+J(MB)+J(MC)-J(MD))/2
-      GOTO(230,330,430,530),KEYTRI
-C
-#if (defined(CERNLIB_CDC))&&(defined(CERNLIB_F4))
-      ENTRY WIGN9J
-#endif
-#if (defined(CERNLIB_IBM))&&(defined(CERNLIB_F4))
-      ENTRY WIGN9J(/A/,/B/,/C/,/XX/,/YY/,/ZZ/,/GG/,/HH/,/PP/)
-#endif
-#if (!defined(CERNLIB_CDC)||!defined(CERNLIB_F4))&&(!defined(CERNLIB_IBM)||!defined(CERNLIB_F4))
-      ENTRY WIGN9J(A,B,C,XX,YY,ZZ,GG,HH,PP)
-#endif
-C
-      KEY=-10
-      IERR=0
-C
-      KK1=INTPTF(A)
-      KK2=INTPTF(B)
-      KK3=INTPTF(C)
-      KK4=INTPTF(XX)
-      KK5=INTPTF(YY)
-      KK6=INTPTF(ZZ)
-      KK7=INTPTF(GG)
-      KK8=INTPTF(HH)
-      KK9=INTPTF(PP)
-C
-      KUP=KK1+KK9
-      M1=KK4+KK8
-      M2=KK2+KK6
-      IF(KUP.GT.M1) KUP=M1
-      IF(KUP.GT.M2) KUP=M2
-C
-      K=KK1-KK9
-      IF(K.LT.0) K=-K
-      M1=KK4-KK8
-      IF(M1.LT.0) M1=-M1
-      M2=KK2-KK6
-      IF(M2.LT.0) M2=-M2
-      IF(K.LT.M1) K=M1
-      IF(K.LT.M2) K=M2
-C
-      ANINE=0.0
-C
-  660 IF(K.GT.KUP) GOTO 260
-      K1=KK1
-      K2=KK4
-      K3=KK7
-      K4=KK8
-      K5=KK9
-      K6=K
-      KEYRAC=1
-      GOTO 100
-C
-  160 GOTO(360,460,560),KEYRAC
-C
-  360 RA=RACAH
-      K1=KK2
-      K2=KK8
-      K3=KK5
-      K4=KK4
-      K5=KK6
-      KEYRAC=2
-      GOTO 750
-C
-  460 RB=RACAH
-      K1=KK9
-      K2=KK6
-      K3=KK3
-      K4=KK2
-      K5=KK1
-      KEYRAC=3
-      GOTO 750
-C
-  560 ANINE=ANINE+RA*RB*RACAH*(K+1)
-      K=K+2
-      GOTO 660
-C
-  260 CLEBSG=ANINE
-      RETURN
-      END