5 * Revision 1.1.1.1 1996/04/01 15:02:04 mclareni
10 #if !defined(CERNLIB_DOUBLE)
11 FUNCTION RFCONC(X,TAU,M)
12 #include "gen/defc64.inc"
15 #if defined(CERNLIB_DOUBLE)
16 FUNCTION DFCONC(X,TAU,M)
17 #include "gen/imp64.inc"
18 #include "gen/defc64.inc"
22 C Computes the (real) Conical Function of the first kind
23 C P M (-1/2 + I*TAU) (X)
24 C for M = 0 and M = 1. P m nu (x) is the Legendre function of
26 C Based on K.S. Koelbig, A program for computing the conical
27 C functions of the first kind P ... for m = 0 and m = 1,
28 C Computer Phys. Comm. 23 (1981) 51-61.
30 #include "gen/defc64.inc"
31 + CGM,CLG,CRG,I,A,B,C,TI,R,RR,U(0:3),V(0:3),W(19)
35 #if !defined(CERNLIB_DOUBLE)
36 PARAMETER (NAME = 'RFCONC')
38 #if defined(CERNLIB_DOUBLE)
39 PARAMETER (NAME = 'RFCONC/DFCONC')
41 DIMENSION T(7),H(9),S(5),P(11),D(-1:6)
44 PARAMETER (PI = 3.14159 26535 89793 24D+0)
45 PARAMETER (RPI = 1.77245 38509 05516 03D+0)
47 PARAMETER (Z1 = 1, HF = Z1/2, TH = 1+HF, C1 = Z1/10, C2 = Z1/5)
48 PARAMETER (RPH = 2/PI, RPW = 2/RPI, TW = 20, NMAX = 200)
52 #if !defined(CERNLIB_DOUBLE)
56 #if defined(CERNLIB_DOUBLE)
66 #if !defined(CERNLIB_DOUBLE)
78 IF(X .LE. -1 .OR. TAU .LT. 0 .OR. .NOT.(LM0 .OR. LM1)) THEN
80 WRITE(ERRTXT,101) X,TAU,M
81 CALL MTLPRT(NAME,'C331.1',ERRTXT)
93 FC=RPH*(FEE(Y)-HF*(1+X)*FEK(Y))/SQRT(1-X**2)
98 FC=RPH*FEK(Y)/SQRT(HF*(X+1))
100 FC=RPH*SQRT(HF/(X-1))*(FEE(Y)-FEK(Y))
108 IF(-1 .LT. X .AND. X .LE. 0) GO TO 11
109 IF(0 .LT. X .AND. X .LE. C1 .AND. TAU .LE. 17) GO TO 11
110 IF(C1 .LT. X .AND. X .LE. C2 .AND. TAU .LE. 5) GO TO 11
111 IF(C1 .LT. X .AND. X .LE. C2 .AND. TAU .LE. 17) GO TO 12
112 IF(C2 .LT. X .AND. X .LE. TH .AND. TAU .LE. 20) GO TO 12
113 IF(TH .LT. X .AND. TAU .LE. MAX(TW,X)) GO TO 13
144 D(1)=(H(1)-1)/(8*T(1))
145 D(2)=(9*H(2)+6*H(1)-15-Z*8*T(2))/(128*T(2))
146 D(3)=5*(15*H(3)+27*H(2)+21*H(1)-63-Z*T(2)*(16*H(1)+24))/
148 D(4)=7*(525*H(4)+1500*H(3)+2430*H(2)+1980*H(1)-6435
149 1 +192*T(4)-Z*T(2)*(720*H(2)+1600*H(1)+2160))/(32768*T(4))
150 D(5)=21*(2835*H(5)+11025*H(4)+24750*H(3)+38610*H(2)
151 1 +32175*H(1)-109395+T(4)*(1984*H(1)+4032)
152 2 -Z*T(2)*(4800*H(3)+15120*H(2)+26400*H(1)+34320))/
154 D(6)=11*(218295*H(6)+1071630*H(5)+3009825*H(4)+6142500*
155 1 H(3)+9398025*H(2)+7936110*H(1)-27776385+T(4)*(254016*H(2)
156 2 +749952*H(1)+1100736)-Z*T(2)*(441000*H(4)+1814400*H(3)
157 3 +4127760*H(2)+6552000*H(1)+8353800+31232*T(4)))/
161 D(0)=3*(1-H(1))/(8*T(1))
162 D(1)=(-15*H(2)+6*H(1)+9+Z*8*T(2))/(128*T(2))
163 D(2)=3*(-35*H(3)-15*H(2)+15*H(1)+35+Z*T(2)*(32*H(1)+8))/
165 D(3)=(-4725*H(4)-6300*H(3)-3150*H(2)+3780*H(1)+10395
166 1 -1216*T(4)+Z*T(2)*(6000*H(2)+5760*H(1)+1680))/(32768*T(4))
167 D(4)=7*(-10395*H(5)-23625*H(4)-28350*H(3)-14850*H(2)
168 1 +19305*H(1)+57915-T(4)*(6336*H(1)+6080)+Z*T(2)*
169 2 (16800*H(3)+30000*H(2)+25920*H(1)+7920))/(262144*T(5))
170 D(5)=(-2837835*H(6)-9168390*H(5)-16372125*H(4)-18918900*H(3)
171 1 -10135125*H(2)+13783770*H(1)+43648605-T(4)*(3044160*H(2)
172 2 +5588352*H(1)+4213440)+Z*T(2)*(5556600*H(4)+14817600*H(3)
173 3 +20790000*H(2)+17297280*H(1)+5405400+323072*T(4)))/
177 S0=D(0)+(-4*D(3)*S(1)+D(4))*P(4)+
178 1 (-192*D(5)*S(3)+144*D(6)*S(2))*P(8)
179 2 +Z*(-D(2)*P(2)+(-24*D(4)*S(2)+12*D(5)*S(1)-D(6))*P(6)
180 3 +(-1920*D(6)*S(4))*P(10))
181 S1=D(1)*P(1)+(8*(D(3)*S(2)-D(4)*S(1))+D(5))*P(5)
182 1 +(384*D(5)*S(4)-768*D(6)*S(3))*P(9)
183 2 +Z*(D(-1)*TAU+(2*D(2)*S(1)-D(3))*P(3)+(48*D(4)*S(3)
184 3 -72*D(5)*S(2)+18*D(6)*S(1))*P(7)+(3840*D(6)*S(5))*P(11))
185 FC=SQRT(T(1)/Y)*(B0*S0+B1*S1)
196 R1=R1/ABS(CGM(A+HF))**2
203 FC=RPI*(R1-2*X*R2/ABS(CGM(A-HF))**2)
204 IF(LM1) FC=2*FC/SQRT(1-X1)
207 12 LTA=X .GT. 1 .OR. X .LE. 1 .AND. TAU .LE. 5
215 IF(LM1) FC=SIGN(HF,1-X)*(TAU**2+HF**2)*SQRT(ABS(X**2-1))*FC
225 4 R1=EXP((TI-HF)*LOG(X+X)+CLG(1+TI)-CLG((TH-FM)+TI))*
228 IF(LM1) FC=FC/SQRT(1-X1)
246 W(12)=1+(W(11)/(W(5)+W(5)))*Y
250 W(16)=W(15)-W(7)-W(7)
253 V(1)=1+(W(10)/(C+C))*Y
254 V(2)=W(12)+(W(10)*W(11)/(12*W(6)))*Y2
257 U(2)=V(2)-W(9)*W(12)+(W(8)*W(10)/(W(6)+W(6)))*Y2
270 H(8)=8*H(5)**2*(H(4)-5)
285 W(17)=1+((H(9)+W(13)*FN+W(16))/(H(6)*W(5)))*Y
286 W(18)=-((W(11)*W(10)/H(6)+(H(9)-W(14)*FN+W(15))*W(11)*Y/H(7))/
288 W(19)=(W(2)*W(11)*W(4)*W(8)*W(9)/(H(8)*W(7)*W(12)))*Y3
289 V(3)=W(17)*V(2)+W(18)*V(1)+W(19)*V(0)
290 U(3)=W(17)*U(2)+W(18)*U(1)+W(19)*U(0)
292 IF(ABS(R-RR) .LT. EPS) GO TO JP, (1,2,3,4)
303 W(1)=W(1)*X1*(A+FN)*(B+FN)/((C+FN)*(FN+1))
305 IF(ABS(R-RR) .LT. EPS) GO TO JP, (1,2,3,4)
310 CALL MTLPRT(NAME,'C331.2',ERRTXT)
311 #if defined(CERNLIB_DOUBLE)
314 #if !defined(CERNLIB_DOUBLE)
319 101 FORMAT('ILLEGAL ARGUMENT(S) X = ',D15.8,' TAU = ',D15.8,
321 102 FORMAT('CONVERGENCE PROBLEM FOR HYPERGEOMETRIC FUNCTION, X = ',