mirror of
https://github.com/LCPQ/quantum_package
synced 2025-05-03 13:44:54 +02:00
Put all the same size and allocate in int.f90
This commit is contained in:
parent
4a82305042
commit
b964301fd6
@ -8,7 +8,7 @@ implicit none
|
|||||||
integer n_a(3),n_b(3)
|
integer n_a(3),n_b(3)
|
||||||
double precision g_a,g_b,a(3),b(3),c(3)
|
double precision g_a,g_b,a(3),b(3),c(3)
|
||||||
integer kmax_max,lmax_max
|
integer kmax_max,lmax_max
|
||||||
parameter (kmax_max=4,lmax_max=2)
|
parameter (kmax_max=2,lmax_max=2)
|
||||||
integer lmax,kmax,n_kl(kmax_max,0:lmax_max)
|
integer lmax,kmax,n_kl(kmax_max,0:lmax_max)
|
||||||
double precision v_kl(kmax_max,0:lmax_max),dz_kl(kmax_max,0:lmax_max)
|
double precision v_kl(kmax_max,0:lmax_max),dz_kl(kmax_max,0:lmax_max)
|
||||||
integer klocmax_max
|
integer klocmax_max
|
||||||
@ -29,7 +29,7 @@ implicit none
|
|||||||
integer n_a(3),n_b(3)
|
integer n_a(3),n_b(3)
|
||||||
double precision g_a,g_b,a(3),b(3),c(3),rmax
|
double precision g_a,g_b,a(3),b(3),c(3),rmax
|
||||||
integer kmax_max,lmax_max
|
integer kmax_max,lmax_max
|
||||||
parameter (kmax_max=4,lmax_max=2)
|
parameter (kmax_max=2,lmax_max=2)
|
||||||
integer lmax,kmax,n_kl(kmax_max,0:lmax_max)
|
integer lmax,kmax,n_kl(kmax_max,0:lmax_max)
|
||||||
double precision v_kl(kmax_max,0:lmax_max),dz_kl(kmax_max,0:lmax_max)
|
double precision v_kl(kmax_max,0:lmax_max),dz_kl(kmax_max,0:lmax_max)
|
||||||
integer klocmax_max;parameter (klocmax_max=10)
|
integer klocmax_max;parameter (klocmax_max=10)
|
||||||
@ -135,6 +135,14 @@ end
|
|||||||
if(l.gt.2)stop 'l > 2 not coded!'
|
if(l.gt.2)stop 'l > 2 not coded!'
|
||||||
|
|
||||||
end
|
end
|
||||||
|
! _
|
||||||
|
! | |
|
||||||
|
! __ __ _ __ ___ ___ _ _ __| | ___
|
||||||
|
! \ \ / / | '_ \/ __|/ _ \ | | |/ _` |/ _ \
|
||||||
|
! \ V / | |_) \__ \ __/ |_| | (_| | (_) |
|
||||||
|
! \_/ | .__/|___/\___|\__,_|\__,_|\___/
|
||||||
|
! | |
|
||||||
|
! |_|
|
||||||
|
|
||||||
!! Routine Vpseudo is based on formumla (66)
|
!! Routine Vpseudo is based on formumla (66)
|
||||||
!! of Kahn Baybutt TRuhlar J.Chem.Phys. vol.65 3826 (1976):
|
!! of Kahn Baybutt TRuhlar J.Chem.Phys. vol.65 3826 (1976):
|
||||||
@ -170,27 +178,60 @@ end
|
|||||||
double precision function Vpseudo &
|
double precision function Vpseudo &
|
||||||
(lmax,kmax,v_kl,n_kl,dz_kl,a,n_a,g_a,b,n_b,g_b,c)
|
(lmax,kmax,v_kl,n_kl,dz_kl,a,n_a,g_a,b,n_b,g_b,c)
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
|
! ___
|
||||||
|
! | ._ ._ _|_
|
||||||
|
! _|_ | | |_) |_| |_
|
||||||
|
! |
|
||||||
double precision, intent(in) :: a(3),g_a,b(3),g_b,c(3)
|
double precision, intent(in) :: a(3),g_a,b(3),g_b,c(3)
|
||||||
|
|
||||||
integer kmax_max,lmax_max,ntot_max,nkl_max
|
integer kmax_max,lmax_max,ntot_max,nkl_max
|
||||||
parameter (kmax_max=4,lmax_max=2,nkl_max=4)
|
parameter (kmax_max=2,lmax_max=2,nkl_max=4)
|
||||||
parameter (ntot_max=10)
|
parameter (ntot_max=10)
|
||||||
integer lmax,kmax,n_kl(kmax_max,0:lmax_max),l,k
|
integer, intent(in) :: lmax,kmax,n_kl(kmax_max,0:lmax_max)
|
||||||
double precision v_kl(kmax_max,0:lmax_max),dz_kl(kmax_max,0:lmax_max)
|
integer, intent(in) :: n_a(3),n_b(3)
|
||||||
double precision fourpi,f,prod,prodp,binom,accu,bigR,bigI,ylm
|
double precision, intent(in) :: v_kl(kmax_max,0:lmax_max),dz_kl(kmax_max,0:lmax_max)
|
||||||
double precision theta_AC0,phi_AC0,theta_BC0,phi_BC0,ac,bc,big
|
|
||||||
double precision areal,freal,breal,t1,t2,int_prod_bessel
|
|
||||||
integer ntot,ntotA,m,mu,mup,k1,k2,k3,ntotB,k1p,k2p,k3p,lambda,lambdap,ktot
|
!
|
||||||
integer n_a(3),n_b(3)
|
! | _ _ _. | _
|
||||||
double precision array_R(0:ntot_max+nkl_max,kmax_max,0:lmax_max,0:lmax_max+ntot_max,0:lmax_max+ntot_max)
|
! |_ (_) (_ (_| | (/_
|
||||||
double precision &
|
!
|
||||||
array_I_A(0:lmax_max+ntot_max,-(lmax_max+ntot_max):lmax_max+ntot_max,0:ntot_max,0:ntot_max,0:ntot_max)
|
|
||||||
double precision &
|
double precision :: fourpi,f,prod,prodp,binom,accu,bigR,bigI,ylm
|
||||||
array_I_B(0:lmax_max+ntot_max,-(lmax_max+ntot_max):lmax_max+ntot_max,0:ntot_max,0:ntot_max,0:ntot_max)
|
double precision :: theta_AC0,phi_AC0,theta_BC0,phi_BC0,ac,bc,big
|
||||||
|
double precision :: areal,freal,breal,t1,t2,int_prod_bessel
|
||||||
|
double precision :: arg
|
||||||
|
|
||||||
|
integer :: ntot,ntotA,m,mu,mup,k1,k2,k3,ntotB,k1p,k2p,k3p,lambda,lambdap,ktot
|
||||||
|
integer :: l,k
|
||||||
|
|
||||||
|
! _
|
||||||
|
! |_) o _ _. ._ ._ _.
|
||||||
|
! |_) | (_| (_| | | (_| \/
|
||||||
|
! _| /
|
||||||
|
|
||||||
double precision array_coefs_A(0:ntot_max,0:ntot_max,0:ntot_max)
|
double precision array_coefs_A(0:ntot_max,0:ntot_max,0:ntot_max)
|
||||||
double precision array_coefs_B(0:ntot_max,0:ntot_max,0:ntot_max)
|
double precision array_coefs_B(0:ntot_max,0:ntot_max,0:ntot_max)
|
||||||
double precision arg
|
|
||||||
|
double precision, allocatable :: array_R(:,:,:,:,:)
|
||||||
|
double precision, allocatable :: array_I_A(:,:,:,:,:)
|
||||||
|
double precision, allocatable :: array_I_B(:,:,:,:,:)
|
||||||
|
|
||||||
|
!=!=!=!=!=!=!=!=!=!
|
||||||
|
! A l l o c a t e !
|
||||||
|
!=!=!=!=!=!=!=!=!=!
|
||||||
|
|
||||||
|
allocate (array_R(0:ntot_max+nkl_max,kmax_max,0:lmax_max,0:lmax_max+ntot_max,0:lmax_max+ntot_max))
|
||||||
|
|
||||||
|
allocate (array_I_A(0:lmax_max+ntot_max,-(lmax_max+ntot_max):lmax_max+ntot_max,0:ntot_max,0:ntot_max,0:ntot_max))
|
||||||
|
|
||||||
|
allocate (array_I_B(0:lmax_max+ntot_max,-(lmax_max+ntot_max):lmax_max+ntot_max,0:ntot_max,0:ntot_max,0:ntot_max))
|
||||||
|
|
||||||
|
! _
|
||||||
|
! / _. | _ |
|
||||||
|
! \_ (_| | (_ |_| |
|
||||||
|
!
|
||||||
|
|
||||||
fourpi=4.d0*dacos(-1.d0)
|
fourpi=4.d0*dacos(-1.d0)
|
||||||
ac=dsqrt((a(1)-c(1))**2+(a(2)-c(2))**2+(a(3)-c(3))**2)
|
ac=dsqrt((a(1)-c(1))**2+(a(2)-c(2))**2+(a(3)-c(3))**2)
|
||||||
@ -212,7 +253,17 @@ if(ntot.gt.ntot_max)stop 'increase ntot_max'
|
|||||||
|
|
||||||
if(ac.eq.0.d0.and.bc.eq.0.d0)then
|
if(ac.eq.0.d0.and.bc.eq.0.d0)then
|
||||||
|
|
||||||
|
|
||||||
|
!=!=!=!=!=!
|
||||||
|
! I n i t !
|
||||||
|
!=!=!=!=!=!
|
||||||
|
|
||||||
accu=0.d0
|
accu=0.d0
|
||||||
|
|
||||||
|
!=!=!=!=!=!=!=!
|
||||||
|
! c a l c u l !
|
||||||
|
!=!=!=!=!=!=!=!
|
||||||
|
|
||||||
do k=1,kmax
|
do k=1,kmax
|
||||||
do l=0,lmax
|
do l=0,lmax
|
||||||
ktot=ntot+n_kl(k,l)
|
ktot=ntot+n_kl(k,l)
|
||||||
@ -223,11 +274,18 @@ if(ac.eq.0.d0.and.bc.eq.0.d0)then
|
|||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
Vpseudo=accu*fourpi
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
|
|
||||||
if(ac.ne.0.d0.and.bc.ne.0.d0)then
|
!=!=!=!=!
|
||||||
|
! E n d !
|
||||||
|
!=!=!=!=!
|
||||||
|
|
||||||
|
Vpseudo=accu*fourpi
|
||||||
|
|
||||||
|
else if(ac.ne.0.d0.and.bc.ne.0.d0)then
|
||||||
|
|
||||||
|
!=!=!=!=!=!
|
||||||
|
! I n i t !
|
||||||
|
!=!=!=!=!=!
|
||||||
|
|
||||||
f=fourpi**2
|
f=fourpi**2
|
||||||
|
|
||||||
@ -236,13 +294,16 @@ if(ac.ne.0.d0.and.bc.ne.0.d0)then
|
|||||||
theta_BC0=dacos( (b(3)-c(3))/bc )
|
theta_BC0=dacos( (b(3)-c(3))/bc )
|
||||||
phi_BC0=datan2((b(2)-c(2))/bc,(b(1)-c(1))/bc)
|
phi_BC0=datan2((b(2)-c(2))/bc,(b(1)-c(1))/bc)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
do ktot=0,ntotA+ntotB+nkl_max
|
do ktot=0,ntotA+ntotB+nkl_max
|
||||||
do lambda=0,lmax+ntotA
|
do lambda=0,lmax+ntotA
|
||||||
do lambdap=0,lmax+ntotB
|
do lambdap=0,lmax+ntotB
|
||||||
do k=1,kmax
|
do k=1,kmax
|
||||||
do l=0,lmax
|
do l=0,lmax
|
||||||
array_R(ktot,k,l,lambda,lambdap)= &
|
array_R(ktot,k,l,lambda,lambdap)= freal &
|
||||||
freal*int_prod_bessel(ktot+2,g_a+g_b+dz_kl(k,l),lambda,lambdap,areal,breal)
|
*int_prod_bessel(ktot+2,g_a+g_b+dz_kl(k,l),lambda,lambdap,areal,breal)
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
@ -267,6 +328,10 @@ if(ac.ne.0.d0.and.bc.ne.0.d0)then
|
|||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
|
!=!=!=!=!=!=!=!
|
||||||
|
! c a l c u l !
|
||||||
|
!=!=!=!=!=!=!=!
|
||||||
|
|
||||||
accu=0.d0
|
accu=0.d0
|
||||||
do l=0,lmax
|
do l=0,lmax
|
||||||
do m=-l,l
|
do m=-l,l
|
||||||
@ -321,20 +386,31 @@ if(ac.ne.0.d0.and.bc.ne.0.d0)then
|
|||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
Vpseudo=f*accu
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
|
|
||||||
if(ac.eq.0.d0.and.bc.ne.0.d0)then
|
enddo
|
||||||
|
enddo
|
||||||
|
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
|
||||||
|
!=!=!=!=!
|
||||||
|
! E n d !
|
||||||
|
!=!=!=!=!
|
||||||
|
|
||||||
|
Vpseudo=f*accu
|
||||||
|
|
||||||
|
else if(ac.eq.0.d0.and.bc.ne.0.d0)then
|
||||||
|
|
||||||
|
!=!=!=!=!=!
|
||||||
|
! I n i t !
|
||||||
|
!=!=!=!=!=!
|
||||||
|
|
||||||
f=fourpi**1.5d0
|
f=fourpi**1.5d0
|
||||||
theta_BC0=dacos( (b(3)-c(3))/bc )
|
theta_BC0=dacos( (b(3)-c(3))/bc )
|
||||||
@ -343,12 +419,14 @@ if(ac.eq.0.d0.and.bc.ne.0.d0)then
|
|||||||
areal=2.d0*g_a*ac
|
areal=2.d0*g_a*ac
|
||||||
breal=2.d0*g_b*bc
|
breal=2.d0*g_b*bc
|
||||||
freal=dexp(-g_a*ac**2-g_b*bc**2)
|
freal=dexp(-g_a*ac**2-g_b*bc**2)
|
||||||
|
|
||||||
do ktot=0,ntotA+ntotB+nkl_max
|
do ktot=0,ntotA+ntotB+nkl_max
|
||||||
do lambdap=0,lmax+ntotB
|
do lambdap=0,lmax+ntotB
|
||||||
do k=1,kmax
|
do k=1,kmax
|
||||||
do l=0,lmax
|
do l=0,lmax
|
||||||
array_R(ktot,k,l,0,lambdap)= &
|
|
||||||
freal*int_prod_bessel(ktot+2,g_a+g_b+dz_kl(k,l),0,lambdap,areal,breal)
|
array_R(ktot,k,l,0,lambdap)= freal &
|
||||||
|
*int_prod_bessel(ktot+2,g_a+g_b+dz_kl(k,l),0,lambdap,areal,breal)
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
@ -357,12 +435,17 @@ if(ac.eq.0.d0.and.bc.ne.0.d0)then
|
|||||||
do k1p=0,n_b(1)
|
do k1p=0,n_b(1)
|
||||||
do k2p=0,n_b(2)
|
do k2p=0,n_b(2)
|
||||||
do k3p=0,n_b(3)
|
do k3p=0,n_b(3)
|
||||||
|
|
||||||
array_coefs_B(k1p,k2p,k3p)=binom(n_b(1),k1p)*binom(n_b(2),k2p)*binom(n_b(3),k3p) &
|
array_coefs_B(k1p,k2p,k3p)=binom(n_b(1),k1p)*binom(n_b(2),k2p)*binom(n_b(3),k3p) &
|
||||||
*(c(1)-b(1))**(n_b(1)-k1p)*(c(2)-b(2))**(n_b(2)-k2p)*(c(3)-b(3))**(n_b(3)-k3p)
|
*(c(1)-b(1))**(n_b(1)-k1p)*(c(2)-b(2))**(n_b(2)-k2p)*(c(3)-b(3))**(n_b(3)-k3p)
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
|
!=!=!=!=!=!=!=!
|
||||||
|
! c a l c u l !
|
||||||
|
!=!=!=!=!=!=!=!
|
||||||
|
|
||||||
accu=0.d0
|
accu=0.d0
|
||||||
do l=0,lmax
|
do l=0,lmax
|
||||||
do m=-l,l
|
do m=-l,l
|
||||||
@ -390,21 +473,31 @@ if(ac.eq.0.d0.and.bc.ne.0.d0)then
|
|||||||
prodp=array_coefs_B(k1p,k2p,k3p)*ylm(lambdap,mup,theta_BC0,phi_BC0)*array_I_B(lambdap,mup,k1p,k2p,k3p)
|
prodp=array_coefs_B(k1p,k2p,k3p)*ylm(lambdap,mup,theta_BC0,phi_BC0)*array_I_B(lambdap,mup,k1p,k2p,k3p)
|
||||||
|
|
||||||
do k=1,kmax
|
do k=1,kmax
|
||||||
|
|
||||||
ktot=ntotA+k1p+k2p+k3p+n_kl(k,l)
|
ktot=ntotA+k1p+k2p+k3p+n_kl(k,l)
|
||||||
accu=accu+prod*prodp*v_kl(k,l)*array_R(ktot,k,l,0,lambdap)
|
accu=accu+prod*prodp*v_kl(k,l)*array_R(ktot,k,l,0,lambdap)
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
Vpseudo=f*accu
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
|
|
||||||
if(ac.ne.0.d0.and.bc.eq.0.d0)then
|
enddo
|
||||||
|
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
|
||||||
|
!=!=!=!=!
|
||||||
|
! E n d !
|
||||||
|
!=!=!=!=!
|
||||||
|
|
||||||
|
Vpseudo=f*accu
|
||||||
|
|
||||||
|
else if(ac.ne.0.d0.and.bc.eq.0.d0)then
|
||||||
|
|
||||||
|
!=!=!=!=!=!
|
||||||
|
! I n i t !
|
||||||
|
!=!=!=!=!=!
|
||||||
|
|
||||||
f=fourpi**1.5d0
|
f=fourpi**1.5d0
|
||||||
theta_AC0=dacos( (a(3)-c(3))/ac )
|
theta_AC0=dacos( (a(3)-c(3))/ac )
|
||||||
@ -413,12 +506,15 @@ if(ac.ne.0.d0.and.bc.eq.0.d0)then
|
|||||||
areal=2.d0*g_a*ac
|
areal=2.d0*g_a*ac
|
||||||
breal=2.d0*g_b*bc
|
breal=2.d0*g_b*bc
|
||||||
freal=dexp(-g_a*ac**2-g_b*bc**2)
|
freal=dexp(-g_a*ac**2-g_b*bc**2)
|
||||||
|
|
||||||
do ktot=0,ntotA+ntotB+nkl_max
|
do ktot=0,ntotA+ntotB+nkl_max
|
||||||
do lambda=0,lmax+ntotA
|
do lambda=0,lmax+ntotA
|
||||||
do k=1,kmax
|
do k=1,kmax
|
||||||
do l=0,lmax
|
do l=0,lmax
|
||||||
array_R(ktot,k,l,lambda,0)= &
|
|
||||||
freal*int_prod_bessel(ktot+2,g_a+g_b+dz_kl(k,l),lambda,0,areal,breal)
|
array_R(ktot,k,l,lambda,0)= freal &
|
||||||
|
*int_prod_bessel(ktot+2,g_a+g_b+dz_kl(k,l),lambda,0,areal,breal)
|
||||||
|
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
@ -427,12 +523,18 @@ if(ac.ne.0.d0.and.bc.eq.0.d0)then
|
|||||||
do k1=0,n_a(1)
|
do k1=0,n_a(1)
|
||||||
do k2=0,n_a(2)
|
do k2=0,n_a(2)
|
||||||
do k3=0,n_a(3)
|
do k3=0,n_a(3)
|
||||||
|
|
||||||
array_coefs_A(k1,k2,k3)=binom(n_a(1),k1)*binom(n_a(2),k2)*binom(n_a(3),k3) &
|
array_coefs_A(k1,k2,k3)=binom(n_a(1),k1)*binom(n_a(2),k2)*binom(n_a(3),k3) &
|
||||||
*(c(1)-a(1))**(n_a(1)-k1)*(c(2)-a(2))**(n_a(2)-k2)*(c(3)-a(3))**(n_a(3)-k3)
|
*(c(1)-a(1))**(n_a(1)-k1)*(c(2)-a(2))**(n_a(2)-k2)*(c(3)-a(3))**(n_a(3)-k3)
|
||||||
|
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
|
!=!=!=!=!=!=!=!
|
||||||
|
! c a l c u l !
|
||||||
|
!=!=!=!=!=!=!=!
|
||||||
|
|
||||||
accu=0.d0
|
accu=0.d0
|
||||||
do l=0,lmax
|
do l=0,lmax
|
||||||
do m=-l,l
|
do m=-l,l
|
||||||
@ -454,28 +556,52 @@ if(ac.ne.0.d0.and.bc.eq.0.d0)then
|
|||||||
do k1=0,n_a(1)
|
do k1=0,n_a(1)
|
||||||
do k2=0,n_a(2)
|
do k2=0,n_a(2)
|
||||||
do k3=0,n_a(3)
|
do k3=0,n_a(3)
|
||||||
|
|
||||||
prod=array_coefs_A(k1,k2,k3)*ylm(lambda,mu,theta_AC0,phi_AC0)*array_I_A(lambda,mu,k1,k2,k3)
|
prod=array_coefs_A(k1,k2,k3)*ylm(lambda,mu,theta_AC0,phi_AC0)*array_I_A(lambda,mu,k1,k2,k3)
|
||||||
prodp=bigI(0,0,l,m,n_b(1),n_b(2),n_b(3))
|
prodp=bigI(0,0,l,m,n_b(1),n_b(2),n_b(3))
|
||||||
|
|
||||||
do k=1,kmax
|
do k=1,kmax
|
||||||
ktot=k1+k2+k3+ntotB+n_kl(k,l)
|
ktot=k1+k2+k3+ntotB+n_kl(k,l)
|
||||||
accu=accu+prod*prodp*v_kl(k,l)*array_R(ktot,k,l,lambda,0)
|
accu=accu+prod*prodp*v_kl(k,l)*array_R(ktot,k,l,lambda,0)
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
|
!=!=!=!=!
|
||||||
|
! E n d !
|
||||||
|
!=!=!=!=!
|
||||||
|
|
||||||
Vpseudo=f*accu
|
Vpseudo=f*accu
|
||||||
return
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
! _
|
||||||
|
! |_ o ._ _. | o _ _
|
||||||
|
! | | | | (_| | | _> (/_
|
||||||
|
!
|
||||||
|
deallocate (array_R, array_I_A, array_I_B)
|
||||||
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
! _
|
||||||
|
! | |
|
||||||
|
!__ __ _ __ ___ ___ _ _ __| | ___ _ __ _ _ _ __ ___
|
||||||
|
!\ \ / / | '_ \/ __|/ _ \ | | |/ _` |/ _ \ | '_ \| | | | '_ ` _ \
|
||||||
|
! \ V / | |_) \__ \ __/ |_| | (_| | (_) | | | | | |_| | | | | | |
|
||||||
|
! \_/ | .__/|___/\___|\__,_|\__,_|\___/ |_| |_|\__,_|_| |_| |_|
|
||||||
|
! | |
|
||||||
|
! |_|
|
||||||
|
|
||||||
double precision function Vpseudo_num(npts,rmax,lmax,kmax,v_kl,n_kl,dz_kl,a,n_a,g_a,b,n_b,g_b,c)
|
double precision function Vpseudo_num(npts,rmax,lmax,kmax,v_kl,n_kl,dz_kl,a,n_a,g_a,b,n_b,g_b,c)
|
||||||
implicit none
|
implicit none
|
||||||
integer kmax_max,lmax_max
|
integer kmax_max,lmax_max
|
||||||
parameter (kmax_max=4,lmax_max=2)
|
parameter (kmax_max=2,lmax_max=2)
|
||||||
integer lmax,kmax, n_kl(kmax_max,0:lmax_max),l,m,k,kk
|
integer lmax,kmax, n_kl(kmax_max,0:lmax_max),l,m,k,kk
|
||||||
double precision v_kl(kmax_max,0:lmax_max),dz_kl(kmax_max,0:lmax_max)
|
double precision v_kl(kmax_max,0:lmax_max),dz_kl(kmax_max,0:lmax_max)
|
||||||
double precision a(3),g_a,b(3),g_b,c(3),ac(3),bc(3)
|
double precision a(3),g_a,b(3),g_b,c(3),ac(3),bc(3)
|
||||||
@ -1289,10 +1415,6 @@ integer :: n,k
|
|||||||
double precision prod
|
double precision prod
|
||||||
dblefact=1.d0
|
dblefact=1.d0
|
||||||
|
|
||||||
if (n.ge.3000) then
|
|
||||||
print*, n
|
|
||||||
endif
|
|
||||||
|
|
||||||
if(n.lt.0)return
|
if(n.lt.0)return
|
||||||
if(mod(n,2).eq.1)then
|
if(mod(n,2).eq.1)then
|
||||||
prod=1.d0
|
prod=1.d0
|
||||||
@ -1777,7 +1899,16 @@ end
|
|||||||
endif
|
endif
|
||||||
enddo
|
enddo
|
||||||
int_prod_bessel=int
|
int_prod_bessel=int
|
||||||
if(kcp.gt.100)print*,'**WARNING** bad convergence in int_prod_bessel'
|
if(kcp.gt.100) then
|
||||||
|
print*,"l",l
|
||||||
|
print*, "gam", gam
|
||||||
|
print*, "n", n
|
||||||
|
print*, "m", m
|
||||||
|
print*, "a", a
|
||||||
|
print*, "b", b
|
||||||
|
print*, "kcp", kcp
|
||||||
|
print*,'**WARNING** bad convergence in int_prod_bessel'
|
||||||
|
endif
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user