]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MINICERN/mathlib/gen/u/djmnb64.F
This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / MINICERN / mathlib / gen / u / djmnb64.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1996/04/01 15:01:49 mclareni
6* Mathlib gen
7*
8*
9#include "gen/pilot.h"
10#if !defined(CERNLIB_DOUBLE)
11 FUNCTION RDJMNB(AJ,AM,AN,BETA)
12#endif
13#if defined(CERNLIB_DOUBLE)
14 FUNCTION DDJMNB(AJ,AM,AN,BETA)
15#include "gen/imp64.inc"
16#endif
17C Calculates the beta-term
18C d j mn (beta)
19C in the matrix element of the finite rotation operator
20C (Wigner's D-function), according to formula 4.3.1(3) in
21C D.A. Varshalovich, A.N. Moskalev, and V.K. Khersonskii,
22C Quantum Theory of Angular Momentum, World Scientific,
23C Singapore 1988
24
25
26 CHARACTER NAME*(*)
27 CHARACTER*80 ERRTXT
28#if !defined(CERNLIB_DOUBLE)
29 PARAMETER (NAME = 'DJMNB')
30#endif
31#if defined(CERNLIB_DOUBLE)
32 PARAMETER (NAME = 'DDJMNB')
33#endif
34 DIMENSION FCL(0:50)
35
36 PARAMETER (Z1 = 1, HF = Z1/2)
37 PARAMETER (F = 8.72664 62599 71647 88D-3)
38
39 DATA FCL( 0) /0/
40 DATA FCL( 1) /0/
41 DATA FCL( 2) /6.93147180559945309D-01/
42 DATA FCL( 3) /1.79175946922805500D+00/
43 DATA FCL( 4) /3.17805383034794562D+00/
44 DATA FCL( 5) /4.78749174278204599D+00/
45 DATA FCL( 6) /6.57925121201010100D+00/
46 DATA FCL( 7) /8.52516136106541430D+00/
47 DATA FCL( 8) /1.06046029027452502D+01/
48 DATA FCL( 9) /1.28018274800814696D+01/
49 DATA FCL(10) /1.51044125730755153D+01/
50 DATA FCL(11) /1.75023078458738858D+01/
51 DATA FCL(12) /1.99872144956618861D+01/
52 DATA FCL(13) /2.25521638531234229D+01/
53 DATA FCL(14) /2.51912211827386815D+01/
54 DATA FCL(15) /2.78992713838408916D+01/
55 DATA FCL(16) /3.06718601060806728D+01/
56 DATA FCL(17) /3.35050734501368889D+01/
57 DATA FCL(18) /3.63954452080330536D+01/
58 DATA FCL(19) /3.93398841871994940D+01/
59 DATA FCL(20) /4.23356164607534850D+01/
60 DATA FCL(21) /4.53801388984769080D+01/
61 DATA FCL(22) /4.84711813518352239D+01/
62 DATA FCL(23) /5.16066755677643736D+01/
63 DATA FCL(24) /5.47847293981123192D+01/
64 DATA FCL(25) /5.80036052229805199D+01/
65 DATA FCL(26) /6.12617017610020020D+01/
66 DATA FCL(27) /6.45575386270063311D+01/
67 DATA FCL(28) /6.78897431371815350D+01/
68 DATA FCL(29) /7.12570389671680090D+01/
69 DATA FCL(30) /7.46582363488301644D+01/
70 DATA FCL(31) /7.80922235533153106D+01/
71 DATA FCL(32) /8.15579594561150372D+01/
72 DATA FCL(33) /8.50544670175815174D+01/
73 DATA FCL(34) /8.85808275421976788D+01/
74 DATA FCL(35) /9.21361756036870925D+01/
75 DATA FCL(36) /9.57196945421432025D+01/
76 DATA FCL(37) /9.93306124547874269D+01/
77 DATA FCL(38) /1.02968198614513813D+02/
78 DATA FCL(39) /1.06631760260643459D+02/
79 DATA FCL(40) /1.10320639714757395D+02/
80 DATA FCL(41) /1.14034211781461703D+02/
81 DATA FCL(42) /1.17771881399745072D+02/
82 DATA FCL(43) /1.21533081515438634D+02/
83 DATA FCL(44) /1.25317271149356895D+02/
84 DATA FCL(45) /1.29123933639127215D+02/
85 DATA FCL(46) /1.32952575035616310D+02/
86 DATA FCL(47) /1.36802722637326368D+02/
87 DATA FCL(48) /1.40673923648234259D+02/
88 DATA FCL(49) /1.44565743946344886D+02/
89 DATA FCL(50) /1.48477766951773032D+02/
90
91 JPM=NINT(AJ+AM)
92 JPN=NINT(AJ+AN)
93 JMM=NINT(AJ-AM)
94 JMN=NINT(AJ-AN)
95 MPN=NINT(AM+AN)
96
97 IF(JPM .LT. 0 .OR. JPN .LT. 0 .OR. JMM .LT. 0 .OR. JMN .LT. 0
98 1 .OR. AJ .LT. 0 .OR. AJ .GT. 25
99 2 .OR. BETA .LT. 0 .OR. BETA .GT. 360) THEN
100 R=0
101 WRITE(ERRTXT,101) AJ,AM,AN,BETA
102 CALL MTLPRT(NAME,'U501.1',ERRTXT)
103 ELSEIF(BETA .EQ. 0) THEN
104 R=0
105 IF(JPM .EQ. JPN) R=1
106 ELSEIF(BETA .EQ. 180) THEN
107 R=0
108 IF(JPM .EQ. JMN) R=(-1)**MOD(ABS(JPM),2)
109 ELSEIF(BETA .EQ. 360) THEN
110 R=0
111 IF(JPM .EQ. JPN) R=(-1)**MOD(ABS(MPN),2)
112 ELSE
113 B=F*BETA
114 S=LOG(SIN(B))
115 C=LOG(ABS(COS(B)))
116 RT=HF*(FCL(JPM)+FCL(JMM)+FCL(JPN)+FCL(JMN))
117 K0=MAX(0,MPN)
118 KQ=K0+JPM
119 IF(BETA .GT. 180) KQ=KQ+MPN
120 Q=(-1)**KQ
121 KQ=K0+K0
122 CX=KQ-MPN
123 SX=JPM+JPN-KQ
124 R=0
125 DO 1 K = K0,MIN(JPM,JPN)
126 R=R+Q*EXP(RT-FCL(K)-FCL(JPM-K)-FCL(JPN-K)-FCL(K-MPN)+
127 1 CX*C+SX*S)
128 CX=CX+2
129 SX=SX-2
130 1 Q=-Q
131 ENDIF
132#if !defined(CERNLIB_DOUBLE)
133 RDJMNB=R
134#endif
135#if defined(CERNLIB_DOUBLE)
136 DDJMNB=R
137#endif
138 RETURN
139 101 FORMAT('ILLEGAL ARGUMENT(S) AJ = ',F6.1,' AM = ',F6.1,' AN = ',
140 1 F6.1,' BETA = ',F8.2)
141 END