You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
1.9 KiB
71 lines
1.9 KiB
double complex function HPL3at1(n1,n2,n3)
|
|
implicit none
|
|
integer n1,n2,n3,j
|
|
double complex ris,myi
|
|
double precision pi, zeta2, zeta3,ll2
|
|
|
|
pi=3.1415926535897932385D0
|
|
zeta3=1.20205690315959428539973816151d0
|
|
zeta2=pi**2/6d0
|
|
myi = dcmplx(0d0,1d0)
|
|
ll2 = dlog(2d0)
|
|
|
|
j=1+(n3+1)*1+(n2+1)*3+(n1+1)*9
|
|
ris = dcmplx(0d0,0d0)
|
|
|
|
if(j.le.18.or.j.eq.23) then
|
|
select case (j)
|
|
case (1)
|
|
ris =ll2**3d0/6d0
|
|
case (2)
|
|
ris =-(pi**2d0*ll2)/12d0 + zeta3/8d0
|
|
case (3)
|
|
ris =-ll2**3d0/6d0 + zeta3/8d0
|
|
case (4)
|
|
ris =(pi**2d0*ll2)/12d0 - zeta3/4d0
|
|
case (5)
|
|
ris =(3d0*zeta3)/4d0
|
|
case (6)
|
|
ris =(pi**2d0*ll2)/6d0 - (5d0*zeta3)/8d0
|
|
case (7)
|
|
ris =(pi**2d0*ll2)/12d0
|
|
& - ll2**3d0/6d0-zeta3/4d0
|
|
case (8)
|
|
ris =(pi**2d0*ll2)/12d0 - zeta3
|
|
case (9)
|
|
ris =-(pi**2*ll2)/12d0+ll2**3/6d0
|
|
& +(7d0*zeta3)/8d0
|
|
case (10)
|
|
ris =zeta3/8d0
|
|
case (11)
|
|
ris =(-3d0*zeta3)/2d0
|
|
case (12)
|
|
ris =-(pi**2d0*ll2)/4d0 + (13d0*zeta3)/8d0
|
|
case (13)
|
|
ris =(3d0*zeta3)/4d0
|
|
case (14)
|
|
ris =0d0
|
|
case (15)
|
|
ris =zeta3
|
|
case (16)
|
|
ris =(pi**2d0*ll2)/4d0 - zeta3
|
|
case (17)
|
|
ris =-2d0*zeta3
|
|
case (18)
|
|
ris =zeta3
|
|
case (23)
|
|
ris =zeta3
|
|
end select
|
|
else
|
|
print*, ""
|
|
print*, "****************"
|
|
print*, "ERROR in HPL3: "
|
|
print*, "HPL3(",n1,",",n2,",",n3
|
|
& ,",1) is divergent!"
|
|
print*, "Aborting..."
|
|
print*,"****************"
|
|
stop
|
|
endif
|
|
HPL3at1=ris
|
|
return
|
|
end function
|