2024-07-25 10:27:17 +02:00

59 lines
1.6 KiB
Fortran
Executable File

! Set some necessary variables for the integral calculations
! nzipr(0:nprimmax)=0
nc12=nispher*nkspher
ccontr=nicontr*nkcontr
kkan=katoms+kang*natoms
nckl=nc12*nkcontr
nc121=nc12-1
nckl1=nckl-1
! Allocate memory
imem=premem
it5=imem
imem=imem+nc12*ccontr
it2=imem
imem=imem+nc12*nkprim
it4=imem
imem=imem+nc12*nkcontr*niprim
if(max(imem,imem+nc12)-imem1.gt.maxcor) then
write(iout,*)
write(iout,*) 'Insufficient memory for integral calculation! '
write(iout,*) 'Increase the memory available to the program '
write(iout,*) 'or run integral-direct calculations! '
call mrccend(1)
endif
! Loop over primitives
ptol=itol/dfloat(max(1,niprim*nkprim))
nzip=0
cf0=cf(0)
do iprim=1,niprim
a=gexpi(iprim)
jlength=it4+(iprim-1)*nckl
p=a
rp=1.d0/p
xpa=0.d0
ypa=0.d0
zpa=0.d0
xpq=ax-cx
ypq=ay-cy
zpq=az-cz
norm2=34.98683665524972569252564335974310d0*rp
rp=0.5d0*rp
argij=p*(xpq**2+ypq**2+zpq**2)
nzkp=0
! nzkpr(0:nprimmax)=0
do kprim=1,nkprim
ij=it2+nc12*(kprim-1)
c=gexpk(kprim)
psq=1.d0/(p+c)
alp=c*psq
alq=p*psq
norm=norm2*dsqrt(psq)/c
arg=alp*argij
! Prescreening: (ab|c) =< (00|0)
tt0_0=norm*cf0*arg**(-0.5d0)
if(dabs(tt0_0).gt.ptol) then
nzkp=nzkp+1
nzkpr(nzkp)=kprim
! nzkpr(kprim)=1
! Boys function