5 * Revision 1.1.1.1 1996/04/01 15:02:58 mclareni
10 #if defined(CERNLIB_DOUBLE)
11 FUNCTION DVNSPC(R,RHO,D)
13 #include "gen/imp64.inc"
16 PARAMETER(NAME='DVNSPC')
18 #if !defined(CERNLIB_DOUBLE)
19 FUNCTION RVNSPC(R,RHO,D)
22 PARAMETER(NAME='RVNSPC')
26 C F. LAMARCHE and C. LEROY, Evaluation of the volume of
27 C a sphere with a cylinder by elliptic integrals,
28 C Computer Phys. Comm. 59 (1990) 359-369
31 PARAMETER (C1 = 4*Z1/3, C2 = 2*Z1/3, C3 = 4*Z1/9, C4 = Z1/3)
32 PARAMETER (PI = 3.14159 26535 89793 24D0)
33 PARAMETER (SF = 4*PI/3, SFH = 2*PI/3, C0 = 2*PI/3-8*Z1/9)
41 IF(RC .EQ. 0 .OR. RS .EQ. 0 .OR. DA .GE. RS+RC) THEN
43 ELSEIF(DR .LE. DA .AND. DA .LE. -DR) THEN
45 ELSEIF(DA .EQ. RC .AND. RS .EQ. 2*DA) THEN
47 ELSEIF(DA .EQ. 0) THEN
49 IF(RS .GT. RC) V=V-SQRT(RS2-RC**2)**3
66 #if defined(CERNLIB_DOUBLE)
67 V=SFH*RS3+C3*SQRT(A)*(AB*DELIKC(XK)-2*(A+AB)*DELIEC(XK))
69 V=C1*(DELI3C(SQRT(1-XK2),XK2,B/C)*A**2*S/C
70 1 -DELIKC(XK)*(A*S-C4*AB*AC)
71 2 -DELIEC(XK)*AC*(S+C2*(AB+AC)))/SQRT(AC)
73 #if !defined(CERNLIB_DOUBLE)
74 V=SFH*RS3+C3*SQRT(A)*(AB*RELIKC(XK)-2*(A+AB)*RELIEC(XK))
76 V=C1*(RELI3C(SQRT(1-XK2),XK2,B/C)*A**2*S/C
77 1 -RELIKC(XK)*(A*S-C4*AB*AC)
78 2 -RELIEC(XK)*AC*(S+C2*(AB+AC)))/SQRT(AC)
80 IF(RC .GT. DA) V=V+SF*RS3
82 ELSEIF(DA .EQ. DR) THEN
83 V=C1*(RS3*ATAN2(2*SQRT(DA*RC),BM)-SQRT(AC)*(S+C2*AC))
86 #if defined(CERNLIB_DOUBLE)
87 V=SFH*RS3+C3*(AB*(B-2*AB)*DELIKC(XK)+2*A*(AB-B)*DELIEC(XK))/
90 V=C1*(DELI3C(SQRT(1-XK2),XK2,B/C)*B**2*S/C
91 1 +DELIKC(XK)*(S*(AB-B)+C4*AB*(BC-2*AB))
92 2 -DELIEC(XK)*AC*(S-C2*(AB-BC)))/SQRT(AC)
94 #if !defined(CERNLIB_DOUBLE)
95 V=SFH*RS3+C3*(AB*(B-2*AB)*RELIKC(XK)+2*A*(AB-B)*RELIEC(XK))/
98 V=C1*(RELI3C(SQRT(1-XK2),XK2,B/C)*B**2*S/C
99 1 +RELIKC(XK)*(S*(AB-B)+C4*AB*(BC-2*AB))
100 2 -RELIEC(XK)*AC*(S-C2*(AB-BC)))/SQRT(AC)
102 IF(RC .GT. DA) V=V+SF*RS3
106 #if defined(CERNLIB_DOUBLE)
109 #if !defined(CERNLIB_DOUBLE)