4
1
mirror of https://github.com/pfloos/quack synced 2024-06-26 23:22:20 +02:00
quack/src/IntPak/CalcOmErf.f90

40 lines
732 B
Fortran
Raw Normal View History

2019-02-07 22:49:12 +01:00
subroutine CalcOmErf(maxm,ExpY,fG,NormYSq,Om)
2020-03-26 16:57:46 +01:00
! Compute the 0^m for the long-range Coulomb operator: (00|erf(mu r)/r|00)^m
2019-02-07 22:49:12 +01:00
implicit none
! Input variables
integer,intent(in) :: maxm
double precision,intent(in) :: ExpY,fG,NormYSq
! Local variables
integer :: m
double precision :: pi,t
double precision,allocatable :: Fm(:)
! Output variables
double precision,intent(inout):: Om (0:maxm)
allocate(Fm(0:maxm))
pi = 4d0*atan(1d0)
! Campute generalized Boys functions
t = fG*NormYSq
call CalcBoysF(maxm,t,Fm)
! Compute (00|00)^m
do m=0,maxm
Om(m) = (2d0/sqrt(pi))*sqrt(fG)*(fG/ExpY)**m*Fm(m)
2019-03-20 13:38:42 +01:00
end do
2019-02-07 22:49:12 +01:00
deallocate(Fm)
end subroutine CalcOmErf