diff --git a/src/BasCor/LSD_SR.f b/src/BasCor/LSD_SR.f deleted file mode 100644 index 72ffe09..0000000 --- a/src/BasCor/LSD_SR.f +++ /dev/null @@ -1,515 +0,0 @@ - subroutine lsdsr(rs,z,mu,excsr,vxcsrup,vxcsrdown) -ccc Hartree atomic units used -ccc for given density parameter 'rs', spin polarization 'z' -ccc and cutoff parameter 'mu' -ccc gives the complementary short-range exchange-correlation -ccc energy (i.e., xc energy of jellium minus xc energy of long-range -ccc interacting electron gas) => 'excsr' -ccc and the corresponding exchange-correlation potentials for -ccc spin-up and spin-down electrons => 'vxcsrup','vxcsrdown' -ccc from Paziani, Moroni, Gori-Giorgi, and Bachelet, cond-mat/0601353 - - implicit none - double precision rs,z,mu,excsr,vxcsrup,vxcsrdown - double precision eclr,exlr,ec,ecd,ecz,ex - double precision vclrup,vclrdown,vxlrup,vxlrdown - double precision vxup,vxdown,vcup,vcdown - double precision pi,alpha,cf - pi=dacos(-1.d0) - alpha=(4.d0/9.d0/pi)**(1.d0/3.d0) - cf=1.d0/alpha - - ex=-3.d0*cf/rs/8.d0/pi*((1.d0+z)**(4.d0/3.d0)+ - $ (1.d0-z)**(4.d0/3.d0)) - ex = 0d0 - - vxup=-(1.d0+z)**(1.d0/3.d0)*(3.d0/2.d0/pi)**(2.d0/3.d0)/rs - vxdown=-(1.d0-z)**(1.d0/3.d0)*(3.d0/2.d0/pi)**(2.d0/3.d0)/rs - vxup = 0d0 - vxdown = 0d0 - - call ecPW(rs,z,ec,ecd,ecz) - vcup=ec-rs/3.d0*ecd-(z-1.d0)*ecz - vcdown=ec-rs/3.d0*ecd-(z+1.d0)*ecz - - call exchangelr(rs,z,mu,exlr) - exlr = 0d0 - call vexchangelr(rs,z,mu,vxlrup,vxlrdown) - vxlrup = 0d0 - vxlrdown = 0d0 - - call ecorrlr(rs,z,mu,eclr) - call vcorrlr(rs,z,mu,vclrup,vclrdown) - - excsr=ex+ec-(exlr+eclr) - vxcsrup=vxup+vcup-(vxlrup+vclrup) - vxcsrdown=vxdown+vcdown-(vxlrdown+vclrdown) - - return - end - - - - subroutine ecorrlr(rs,z,mu,eclr) -ccc Hartree atomic units used -ccc for given density parameter rs, spin polarization z -ccc and cutoff parameter mu -ccc gives the correlation energy of the LR gas -ccc => eclr - implicit none - double precision rs,z,mu,eclr,ec,ecd,ecz - double precision pi,alpha,cf,phi - double precision g0,dpol,d2anti,d3anti,Qrpa - double precision coe2,coe3,coe4,coe5 - double precision a1,a2,a3,a4,b0 - double precision q1a,q2a,q3a,t1a,t2a,t3a,adib - pi=dacos(-1.d0) - alpha=(4.d0/9.d0/pi)**(1.d0/3.d0) - cf=1.d0/alpha - - phi=((1.d0+z)**(2.d0/3.d0)+(1.d0-z)**(2.d0/3.d0))/2.d0 -cc parameters from the fit - adib = 0.784949d0 - q1a = -0.388d0 - q2a = 0.676d0 - q3a = 0.547d0 - t1a = -4.95d0 - t2a = 1.d0 - t3a = 0.31d0 - - b0=adib*rs - - d2anti=(q1a*rs+q2a*rs**2)*exp(-abs(q3a)*rs)/rs**2 - d3anti=(t1a*rs+t2a*rs**2)*exp(-abs(t3a)*rs)/rs**3 - - coe2=-3.d0/8.d0/rs**3*(1.d0-z**2)*(g0(rs)-0.5d0) - - coe3=-(1.d0-z**2)*g0(rs)/(sqrt(2.d0*pi)*rs**3) - - if(abs(z).eq.1.d0) then - - coe4=-9.d0/64.d0/rs**3*(dpol(rs) - $ -cf**2*2**(5.d0/3.d0)/5.d0/rs**2) - coe5=-9.d0/40.d0/(sqrt(2.d0*pi)*rs**3)*dpol(rs) - - else - - coe4=-9.d0/64.d0/rs**3*(((1.d0+z)/2.d0)**2* - $ dpol(rs*(2/(1.d0+z))**(1.d0/3.d0))+((1.d0-z)/2.d0)**2 - $ *dpol(rs*(2.d0/(1.d0-z))**(1.d0/3.d0))+ - $ (1.-z**2)*d2anti-cf**2/10.d0*((1.d0+z)**(8.d0/3.d0) - $ +(1.-z)**(8.d0/3.d0))/rs**2) - - coe5=-9.d0/40.d0/(sqrt(2.d0*pi)*rs**3)*(((1.d0+z)/2.d0)**2 - $ *dpol(rs*(2.d0/(1.d0+z))**(1.d0/3.d0))+((1.d0-z)/2.d0)**2 - $ *dpol(rs*(2.d0/(1.d0-z))**(1.d0/3.d0))+(1.d0-z**2)* - $ d3anti) - endif - - call ecPW(rs,z,ec,ecd,ecz) - - a1=4.d0*b0**6*coe3+b0**8*coe5 - a2=4.d0*b0**6*coe2+b0**8*coe4+6.d0*b0**4*ec - a3=b0**8*coe3 - a4=b0**6*(b0**2*coe2+4.d0*ec) - - eclr=(phi**3*Qrpa(mu*sqrt(rs)/phi)+a1*mu**3+a2*mu**4+a3*mu**5+ - $ a4*mu**6+b0**8*mu**8*ec)/((1.d0+b0**2*mu**2)**4) - - return - end - - subroutine vcorrlr(rs,z,mu,vclrup,vclrdown) -ccc Hartree atomic units used -ccc for given density parameter rs, spin polarization z -ccc and cutoff mu it gives the correlation LSD potential for LR interaction -ccc => vclrup (spin-up electrons), vclrdown (spin-down electrons) - implicit none - double precision rs,z,mu,eclr,eclrrs,eclrz,vclrup,vclrdown - double precision ec,ecd,ecz - double precision pi,alpha,cf,phi - double precision g0,dpol,d2anti,d3anti,Qrpa - double precision g0d,dpold,d2antid,d3antid,Qrpad,x - double precision coe2,coe3,coe4,coe5 - double precision coe2rs,coe3rs,coe4rs,coe5rs - double precision coe2z,coe3z,coe4z,coe5z - double precision a1,a2,a3,a4,a5,b0,a1rs,a2rs,a3rs,a4rs,a5rs, - $ b0rs,a1z,a2z,a3z,a4z,a5z,b0z - double precision q1a,q2a,q3a,t1a,t2a,t3a,adib - - pi=dacos(-1.d0) - alpha=(4.d0/9.d0/pi)**(1.d0/3.d0) - cf=1.d0/alpha - - phi=((1.d0+z)**(2.d0/3.d0)+(1.d0-z)**(2.d0/3.d0))/2.d0 -cc parameters from the fit - adib = 0.784949d0 - q1a = -0.388d0 - q2a = 0.676d0 - q3a = 0.547d0 - t1a = -4.95d0 - t2a = 1.d0 - t3a = 0.31d0 - - b0=adib*rs - - d2anti=(q1a+q2a*rs)*exp(-q3a*rs)/rs - d3anti=(t1a+t2a*rs)*exp(-t3a*rs)/rs**2 - - d2antid=-((q1a + q1a*q3a*rs + q2a*q3a*rs**2)/ - - rs**2)*exp(-q3a*rs) - d3antid=-((rs*t2a*(1 + rs*t3a) + t1a*(2 + rs*t3a))/ - - rs**3)*exp(-rs*t3a) - - coe2=-3.d0/8.d0/rs**3*(1.d0-z**2)*(g0(rs)-0.5d0) - coe2rs=-3.d0/8.d0/rs**3*(1.d0-z**2)*g0d(rs)+ - $ 9.d0/8.d0/rs**4*(1.d0-z**2)*(g0(rs)-0.5d0) - coe2z=-3.d0/8.d0/rs**3*(-2.d0*z)*(g0(rs)-0.5d0) - - coe3=-(1.d0-z**2)*g0(rs)/(sqrt(2.d0*pi)*rs**3) - coe3rs=-(1.d0-z**2)*g0d(rs)/(sqrt(2.d0*pi)*rs**3)+ - $ 3.d0*(1.d0-z**2)*g0(rs)/(sqrt(2.d0*pi)*rs**4) - coe3z=2.d0*z*g0(rs)/(sqrt(2.d0*pi)*rs**3) - - if(abs(z).eq.1.d0) then - - coe4=-9.d0/64.d0/rs**3*(dpol(rs) - $ -cf**2*2**(5.d0/3.d0)/5.d0/rs**2) - coe4rs=-3.d0/rs*coe4-9.d0/64.d0/rs**3*(dpold(rs) - $ +2.d0*cf**2*2**(5.d0/3.d0)/5.d0/rs**3) - coe4z=-9.d0/64.d0/rs**3*(dpol(rs)-rs/6.d0*dpold(rs)-2.d0*d2anti - $ -4.d0/15.d0/rs**2*cf**2*2.d0**(5.d0/3.d0))*z - coe5=-9.d0/40.d0/(sqrt(2.d0*pi)*rs**3)*dpol(rs) - coe5rs=-3.d0/rs*coe5-9.d0/40.d0/(sqrt(2.d0*pi)*rs**3)*dpold(rs) - coe5z=-9.d0/40.d0/(sqrt(2.d0*pi)*rs**3)*(dpol(rs)-rs/6.d0* - $ dpold(rs)-2.d0*d3anti)*z - - else - - coe4=-9.d0/64.d0/rs**3*(((1.d0+z)/2.d0)**2* - $ dpol(rs*(2/(1.d0+z))**(1.d0/3.d0))+((1.d0-z)/2.d0)**2 - $ *dpol(rs*(2.d0/(1.d0-z))**(1.d0/3.d0))+ - $ (1.-z**2)*d2anti-cf**2/10.d0*((1.d0+z)**(8.d0/3.d0) - $ +(1.-z)**(8.d0/3.d0))/rs**2) - coe4rs=-3.d0/rs*coe4-9.d0/64.d0/rs**3*( - $ ((1.d0+z)/2.d0)**(5.d0/3.d0)*dpold(rs*(2/(1.d0+z))** - $ (1.d0/3.d0))+((1.d0-z)/2.d0)**(5.d0/3.d0)* - $ dpold(rs*(2/(1.d0-z))**(1.d0/3.d0))+(1.d0-z**2)* - $ d2antid+cf**2/5.d0*((1.d0+z)**(8.d0/3.d0) - $ +(1.d0-z)**(8.d0/3.d0))/rs**3) - coe4z=-9.d0/64.d0/rs**3*(1.d0/2.d0*(1.d0+z)* - $ dpol(rs*(2/(1.d0+z))**(1.d0/3.d0))-1.d0/2.d0*(1.d0-z)* - $ dpol(rs*(2/(1.d0-z))**(1.d0/3.d0))-rs/6.d0* - $ ((1.d0+z)/2.d0)**(2.d0/3.d0)*dpold(rs*(2/(1.d0+z)) - $ **(1.d0/3.d0))+rs/6.d0*((1.d0-z)/2.d0)**(2.d0/3.d0) - $ *dpold(rs*(2/(1.d0-z))**(1.d0/3.d0))-2.d0*z*d2anti- - $ 4.d0/15.d0/rs**2*cf**2*((1.d0+z)**(5.d0/3.d0)- - $ (1.d0-z)**(5.d0/3.d0))) - - coe5=-9.d0/40.d0/(sqrt(2.d0*pi)*rs**3)*(((1.d0+z)/2.d0)**2 - $ *dpol(rs*(2.d0/(1.d0+z))**(1.d0/3.d0))+((1.d0-z)/2.d0)**2 - $ *dpol(rs*(2.d0/(1.d0-z))**(1.d0/3.d0))+(1.d0-z**2)* - $ d3anti) - coe5rs=-3.d0/rs*coe5-9.d0/(40.d0*sqrt(2.d0*pi)*rs**3)*( - $ ((1.d0+z)/2.d0)**(5.d0/3.d0)*dpold(rs*(2/(1.d0+z))** - $ (1.d0/3.d0))+((1.d0-z)/2.d0)**(5.d0/3.d0)* - $ dpold(rs*(2/(1.d0-z))**(1.d0/3.d0))+(1.d0-z**2)* - $ d3antid) - coe5z=-9.d0/40.d0/(sqrt(2.d0*pi)*rs**3)*(1.d0/2.d0*(1.d0+z)* - $ dpol(rs*(2/(1.d0+z))**(1.d0/3.d0))-1.d0/2.d0*(1.d0-z)* - $ dpol(rs*(2/(1.d0-z))**(1.d0/3.d0))-rs/6.d0* - $ ((1.d0+z)/2.d0)**(2.d0/3.d0)*dpold(rs*(2/(1.d0+z)) - $ **(1.d0/3.d0))+rs/6.d0*((1.d0-z)/2.d0)**(2.d0/3.d0) - $ *dpold(rs*(2/(1.d0-z))**(1.d0/3.d0))-2.d0*z*d3anti) - - endif - - call ecPW(rs,z,ec,ecd,ecz) - - a1=4.d0*b0**6*coe3+b0**8*coe5 - a1rs=24.d0*adib*b0**5*coe3+4.d0*b0**6*coe3rs+8.d0*adib*b0**7* - $ coe5+b0**8*coe5rs - a1z=4.d0*b0**6*coe3z+b0**8*coe5z - - a2=4.d0*b0**6*coe2+b0**8*coe4+6.d0*b0**4*ec - a2rs=24.d0*adib*b0**5*coe2+4.d0*b0**6*coe2rs+8.d0*adib*b0**7* - $ coe4+b0**8*coe4rs+24.d0*adib*b0**3*ec+6.d0*b0**4*ecd - a2z=4.d0*b0**6*coe2z+b0**8*coe4z+6.d0*b0**4*ecz - - a3=b0**8*coe3 - a3rs=8.d0*adib*b0**7*coe3+b0**8*coe3rs - a3z=b0**8*coe3z - - a4=b0**6*(b0**2*coe2+4.d0*ec) - a4rs=8.d0*adib*b0**7*coe2+b0**8*coe2rs+24.d0*adib*b0**5*ec+ - $ 4.d0*b0**6*ecd - a4z=b0**6*(b0**2*coe2z+4.d0*ecz) - - a5=b0**8*ec - a5rs=8.d0*adib*b0**7*ec+b0**8*ecd - a5z=b0**8*ecz - - x=mu*sqrt(rs)/phi - - eclr=(phi**3*Qrpa(x)+a1*mu**3+a2*mu**4+a3*mu**5+ - $ a4*mu**6+a5*mu**8)/((1.d0+b0**2*mu**2)**4) - - eclrrs=-4.d0/(1.d0+b0**2*mu**2)*2.d0*adib*b0*mu**2*eclr+ - $ 1.d0/((1.d0+b0**2*mu**2)**4)*(phi**2*mu/(2.d0*sqrt(rs)) - $ *Qrpad(x)+ - $ a1rs*mu**3+a2rs*mu**4+a3rs*mu**5+a4rs*mu**6+a5rs*mu**8) - - - if(z.eq.1.d0) then - vclrup=eclr-rs/3.d0*eclrrs - vclrdown=0.d0 - elseif(z.eq.-1.d0) then - vclrup=0.d0 - vclrdown=eclr-rs/3.d0*eclrrs - else - - eclrz=(phi**2*((1.d0+z)**(-1.d0/3.d0)-(1.d0-z)**(-1.d0/3.d0)) - $ *Qrpa(x)-phi*Qrpad(x)*mu*sqrt(rs)*((1.d0+z)**(-1.d0/3.d0) - $ -(1.d0-z)**(-1.d0/3.d0))/3.d0+ - $ a1z*mu**3+a2z*mu**4+a3z*mu**5+ - $ a4z*mu**6+a5z*mu**8)/((1.d0+b0**2*mu**2)**4) - - vclrup=eclr-rs/3.d0*eclrrs-(z-1.d0)*eclrz - vclrdown=eclr-rs/3.d0*eclrrs-(z+1.d0)*eclrz - endif - return - end - - - double precision function g0(x) -ccc on-top pair-distribution function -ccc Gori-Giorgi and Perdew, PRB 64, 155102 (2001) -ccc x -> rs - implicit none - double precision C0f,D0f,E0f,F0f,x - C0f = 0.0819306d0 - D0f = 0.752411d0 - E0f = -0.0127713d0 - F0f = 0.00185898d0 - g0=(1.d0-(0.7317d0-D0f)*x+C0f*x**2+E0f*x**3+ - $ F0f*x**4)*exp(-abs(D0f)*x)/2.d0 - return - end - - double precision function g0d(rs) -ccc derivative of on-top pair-distribution function -ccc Gori-Giorgi and Perdew, PRB 64, 155102 (2001) - implicit none - double precision Bg0,Cg0,Dg0,Eg0,Fg0,rs - Cg0 = 0.0819306d0 - Fg0 = 0.752411d0 - Dg0 = -0.0127713d0 - Eg0 = 0.00185898d0 - Bg0 =0.7317d0-Fg0 - g0d=(-Bg0+2*Cg0*rs+3*Dg0*rs**2+4*Eg0*rs**3)/2.d0*exp(-Fg0*rs) - - - (Fg0*(1 - Bg0*rs + Cg0*rs**2 + Dg0*rs**3 + Eg0*rs**4))/ - - 2.d0*exp(-Fg0*rs) - return - end - - - double precision function dpol(rs) - implicit none - double precision cf,pi,rs,p2p,p3p - pi=dacos(-1.d0) - cf=(9.d0*pi/4.d0)**(1.d0/3.d0) - p2p = 0.04d0 - p3p = 0.4319d0 - dpol=2.d0**(5.d0/3.d0)/5.d0*cf**2/rs**2*(1.d0+(p3p-0.454555d0)*rs) - $ /(1.d0+p3p*rs+p2p*rs**2) - return - end - - double precision function dpold(rs) - implicit none - double precision cf,pi,rs,p2p,p3p - pi=dacos(-1.d0) - cf=(9.d0*pi/4.d0)**(1.d0/3.d0) - p2p = 0.04d0 - p3p = 0.4319d0 - dpold=2.d0**(5.d0/3.d0)/5.d0*cf**2* - - (-2. + (0.454555 - 4.*p3p)*rs + - - (-4.*p2p + - - (0.90911 - 2.*p3p)*p3p)*rs**2 - - + p2p*(1.363665 - 3.*p3p)* - - rs**3)/ - - (rs**3*(1. + p3p*rs + p2p*rs**2)**2) - return - end - - double precision function Qrpa(x) - implicit none - double precision pi,a2,b2,c2,d2,x,Acoul - pi=dacos(-1.d0) - Acoul=2.d0*(log(2.d0)-1.d0)/pi**2 - a2 = 5.84605d0 - c2 = 3.91744d0 - d2 = 3.44851d0 - b2=d2-3.d0/(2.d0*pi*Acoul)*(4.d0/(9.d0*pi))**(1.d0/3.d0) - Qrpa=Acoul*log((1.d0+a2*x+b2*x**2+c2*x**3)/(1.d0+a2*x+d2*x**2)) - return - end - - double precision function Qrpad(x) - implicit none - double precision pi,a2,b2,c2,d2,x,Acoul - pi=dacos(-1.d0) - Acoul=2.d0*(log(2.d0)-1.d0)/pi**2 - a2 = 5.84605d0 - c2 = 3.91744d0 - d2 = 3.44851d0 - b2=d2-3.d0/(2.d0*pi*Acoul)*(4.d0/(9.d0*pi))**(1.d0/3.d0) - Qrpad=Acoul*((x*(b2*(2.d0 + a2*x) + - - c2*x*(3.d0 + 2.d0*a2*x) + - - d2*(-2.d0 - a2*x + c2*x**3)))/ - - ((1.d0 + a2*x + d2*x**2)* - - (1.d0 + a2*x + b2*x**2 + c2*x**3))) - return - end - - subroutine exchangelr(rs,z,mu,exlr) -ccc Hartree atomic units used -ccc for given density parameter rs, spin polarization z -ccc and cutoff mu it gives the exchange energy of the LR gas -ccc => exlr - implicit none - double precision rs,z,mu,exlr - double precision pi,alpha,fx,y - pi=dacos(-1.d0) - alpha=(4.d0/9.d0/pi)**(1.d0/3.d0) - if(abs(z).eq.1.d0) then - y=mu*alpha*rs/2.d0/2.d0**(1.d0/3.d0) - fx=-((-3*y + 4*y**3 +(2*y - 4*y**3)*exp(-1./(4.*y**2)) + - $ sqrt(pi)*erf(1/(2.*y)))/pi) - exlr=mu*fx - else - y=mu*alpha*rs/2.d0/(1.+z)**(1.d0/3.d0) - fx=-((-3*y + 4*y**3 +(2*y - 4*y**3)*exp(-1./(4.*y**2)) + - $ sqrt(pi)*erf(1/(2.*y)))/pi) - exlr=(1.d0+z)*mu*fx/2.d0 - y=mu*alpha*rs/2.d0/(1.-z)**(1.d0/3.d0) - fx=-((-3*y + 4*y**3 +(2*y - 4*y**3)*exp(-1./(4.*y**2)) + - $ sqrt(pi)*erf(1/(2.*y)))/pi) - exlr=exlr+(1.d0-z)*mu*fx/2.d0 - endif - return - end - - subroutine vexchangelr(rs,z,mu,vxlrup,vxlrdown) -ccc Hartree atomic units used -ccc for given density parameter rs, spin polarization z -ccc and cutoff mu it gives the exchange LSD potential for LR interaction -ccc => vxlrup (spin-up electrons), vxlrdown (spin-down electrons) - implicit none - double precision rs,z,mu,vxlrup,vxlrdown - double precision pi,alpha,fx,fx1,y,exlr,derrs,derz - pi=dacos(-1.d0) - alpha=(4.d0/9.d0/pi)**(1.d0/3.d0) - if(z.eq.1.d0) then - vxlrup=(rs*alpha*mu**2)/ - - (2**(1.d0/3.d0)*pi) - (rs*alpha*mu**2)/(2**(1.d0/3.d0)*pi)* - - exp(-2**(2.d0/3.d0)/(rs**2*alpha**2*mu**2)) - - - (mu*erf(2**(1.d0/3.d0)/(rs*alpha*mu)))/sqrt(Pi) - vxlrdown=0.d0 - elseif(z.eq.-1.d0) then - vxlrdown=(rs*alpha*mu**2)/ - - (2**(1.d0/3.d0)*pi) - (rs*alpha*mu**2)/(2**(1.d0/3.d0)*pi)* - - exp(-2**(2.d0/3.d0)/(rs**2*alpha**2*mu**2)) - - - (mu*erf(2**(1.d0/3.d0)/(rs*alpha*mu)))/sqrt(Pi) - vxlrup=0.d0 - else - y=mu*alpha*rs/2.d0/(1.+z)**(1.d0/3.d0) - fx=-((-3*y + 4*y**3 +(2*y - 4*y**3)*exp(-1./(4.*y**2)) + - $ sqrt(pi)*erf(1/(2.*y)))/pi) - fx1=(3.d0*(1 + (-4.d0 + 4.d0*exp(-1.d0/(4.d0*y**2)))*y**2))/pi - derrs=1.d0/4.d0*(1.d0+z)**(2.d0/3.d0)*mu**2*alpha*fx1 - derz=1.d0/2.d0*mu*fx-1.d0/6.d0*fx1*mu*y - vxlrup=rs/3.d0*derrs+(z-1.d0)*derz - vxlrdown=rs/3.d0*derrs+(z+1.d0)*derz - - y=mu*alpha*rs/2.d0/(1.-z)**(1.d0/3.d0) - fx=-((-3*y + 4*y**3 +(2*y - 4*y**3)*exp(-1./(4.*y**2)) + - $ sqrt(pi)*erf(1/(2.*y)))/pi) - fx1=(3.d0*(1 + (-4.d0 + 4.d0*exp(-1.d0/(4.d0*y**2)))*y**2))/pi - derrs=1.d0/4.d0*(1.d0-z)**(2.d0/3.d0)*mu**2*alpha*fx1 - derz=-1.d0/2.d0*mu*fx+1.d0/6.d0*fx1*mu*y - vxlrup=vxlrup+rs/3.d0*derrs+(z-1.d0)*derz - vxlrdown=vxlrdown+rs/3.d0*derrs+(z+1.d0)*derz - - call exchangelr(rs,z,mu,exlr) - vxlrup=exlr-vxlrup - vxlrdown=exlr-vxlrdown - endif - return - end - -cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -c correlation energy and its derivative w.r.t. rs and z at mu=infinity -c Perdew & Wang PRB 45, 13244 (1992) -cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc - subroutine ecPW(x,y,ec,ecd,ecz) -c in Hartree; ec=ec(rs,zeta) -c x -> rs; y -> zeta -ccc ecd is d/drs ec -ccc ecz is d/dz ec - implicit none - double precision pi,f02,ff,x,y,ec,ecd,ec0,ec0d,ec1,ec1d, - $ aaa,G,Gd,alfac,alfacd,ecz - pi=dacos(-1.d0) - - f02=4.d0/(9.d0*(2.d0**(1.d0/3.d0)-1.d0)) - - ff=((1.d0+y)**(4.d0/3.d0)+(1.d0-y)**(4.d0/3.d0)- - $ 2.d0)/(2.d0**(4.d0/3.d0)-2.d0) - - aaa=(1.d0-log(2.d0))/pi**2 - call GPW(x,aaa,0.21370d0,7.5957d0,3.5876d0, - $ 1.6382d0,0.49294d0,G,Gd) - ec0=G - ec0d=Gd - - aaa=aaa/2.d0 - call GPW(x,aaa,0.20548d0,14.1189d0,6.1977d0, - $ 3.3662d0,0.62517d0,G,Gd) - ec1=G - ec1d=Gd - call GPW(x,0.016887d0,0.11125d0,10.357d0,3.6231d0, - $ 0.88026d0,0.49671d0,G,Gd) - alfac=-G - alfacd=-Gd - - ec=ec0+alfac*ff/f02*(1.d0-y**4)+(ec1-ec0)*ff*y**4 - ecd=ec0d+alfacd*ff/f02*(1.d0-y**4)+(ec1d-ec0d)* - $ ff*y**4 - ecz=alfac*(-4.d0*y**3)*ff/f02+alfac*(1.d0-y**4)/f02* - $ 4.d0/3.d0*((1.d0+y)**(1.d0/3.d0)-(1.d0-y)**(1.d0/3.d0))/ - $ (2.d0**(4.d0/3.d0)-2.d0)+(ec1-ec0)*(4.d0*y**3*ff+ - $ 4.d0/3.d0*((1.d0+y)**(1.d0/3.d0)-(1.d0-y)**(1.d0/3.d0))/ - $ (2.d0**(4.d0/3.d0)-2.d0)*y**4) - - return - end - - subroutine GPW(x,Ac,alfa1,beta1,beta2,beta3,beta4,G,Gd) -ccc Gd is d/drs G - implicit none - double precision G,Gd,Ac,alfa1,beta1,beta2,beta3,beta4,x - G=-2.d0*Ac*(1.d0+alfa1*x)*dlog(1.d0+1.d0/(2.d0* - $ Ac*(beta1*x**0.5d0+ - $ beta2*x+beta3*x**1.5d0+beta4*x**2))) - Gd=(1.d0+alfa1*x)*(beta2+beta1/(2.d0*sqrt(x))+3.d0*beta3* - $ sqrt(x)/2.d0+2.d0*beta4*x)/((beta1*sqrt(x)+beta2*x+ - $ beta3*x**(3.d0/2.d0)+beta4*x**2)**2*(1.d0+1.d0/ - $ (2.d0*Ac*(beta1*sqrt(x)+beta2*x+beta3*x**(3.d0/2.d0)+ - $ beta4*x**2))))-2.d0*Ac*alfa1*dlog(1.d0+1.d0/(2.d0*Ac* - $ (beta1*sqrt(x)+beta2*x+beta3*x**(3.d0/2.d0)+ - $ beta4*x**2))) - return - end -ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc diff --git a/src/BasCor/Makefile b/src/BasCor/Makefile deleted file mode 100644 index 6ca514e..0000000 --- a/src/BasCor/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -default: - ninja - make -C .. - -clean: - ninja -t clean - -debug: - ninja -t clean - make -C .. debug diff --git a/src/BasCor/basis_correction.f90 b/src/BasCor/basis_correction.f90 deleted file mode 100644 index 44b7ec7..0000000 --- a/src/BasCor/basis_correction.f90 +++ /dev/null @@ -1,90 +0,0 @@ -subroutine basis_correction(nBas,nO,nShell,CenterShell,TotAngMomShell,KShell,DShell,ExpShell, & - ERI,e,c,P,eG0W0) - -! Compute the basis set incompleteness error - - implicit none - include 'parameters.h' - -! Input variables - - integer,intent(in) :: nBas - integer,intent(in) :: nO - - integer,intent(in) :: nShell - integer,intent(in) :: TotAngMomShell(maxShell),KShell(maxShell) - double precision,intent(in) :: CenterShell(maxShell,ncart),DShell(maxShell,maxK),ExpShell(maxShell,maxK) - - double precision,intent(in) :: ERI(nBas,nBas,nBas,nBas) - double precision,intent(in) :: e(nBas) - double precision,intent(in) :: c(nBas,nBas) - double precision,intent(in) :: P(nBas,nBas) - - double precision,intent(in) :: eG0W0(nBas) - -! Local variables - - integer :: SGn - integer :: nRad - integer :: nAng - integer :: nGrid - double precision,allocatable :: root(:,:) - double precision,allocatable :: weight(:) - double precision,allocatable :: AO(:,:) - double precision,allocatable :: dAO(:,:,:) - double precision,allocatable :: MO(:,:) - double precision,allocatable :: dMO(:,:,:) - double precision,allocatable :: rho(:) - double precision,allocatable :: f(:) - double precision,allocatable :: mu(:) - -! Output variables - -! Hello world - - write(*,*) - write(*,*)'************************************************' - write(*,*)'| Basis set incompleteness correction |' - write(*,*)'************************************************' - write(*,*) - -! Set quadrature grid - - SGn = 1 - - call read_grid(SGn,nRad,nAng,nGrid) - -! Memory allocation - - allocate(root(ncart,nGrid),weight(nGrid)) - allocate(AO(nBas,nGrid),dAO(ncart,nBas,nGrid),MO(nBas,nGrid),dMO(ncart,nBas,nGrid)) - allocate(rho(nGrid),f(nGrid),mu(nGrid)) - - call quadrature_grid(nRad,nAng,nGrid,root,weight) - -! Calculate AO values at grid points - - call AO_values_grid(nBas,nShell,CenterShell,TotAngMomShell,KShell,DShell,ExpShell,nGrid,root,AO,dAO) - -! Calculate MO values at grid points - - call MO_values_grid(nBas,nGrid,c,AO,dAO,MO,dMO) - -! Compute one-electron density at grid points - - call density(nGrid,nBas,P,AO,rho) - -! Compute range-sepration function - - call f_grid(nBas,nO,nGrid,MO,ERI,f) - call mu_grid(nGrid,rho,f,mu) - -! Compute energy correction - - call ec_srlda(nGrid,weight,rho,mu) - -! Compute orbital corrections - - call fc_srlda(nBas,nGrid,weight,MO,rho,mu,eG0W0) - -end subroutine basis_correction diff --git a/src/BasCor/dft_grid.f b/src/BasCor/dft_grid.f deleted file mode 100644 index 66eb029..0000000 --- a/src/BasCor/dft_grid.f +++ /dev/null @@ -1,3017 +0,0 @@ -c----------------------------------------------------------------------- - - SUBROUTINE EulMac(Pts,Wts,N,R) -c ****************************************************************** -c * * -c * EulMac constructs an Euler-Maclaurin quadrature formula for * -c * * -c * inf * -c * Integral [r**2 g(r)] dr * -c * 0 * -c * * -c * OUTPUT: * -c * Pts - Quadrature points * -c * Wts - Quadrature weights * -c * * -c * INPUT: * -c * N - Number of points desired * -c * R - Length scaling factor * -c * * -c ****************************************************************** - IMPLICIT REAL*8 (a-h,o-z) - REAL*8 Pts(N),Wts(N) - T = R**3 * FLOAT(N+1) - DO i = 1,N - U = FLOAT(i) - V = FLOAT(N-i+1) - Pts(i) = R * (U/V)**2 - Wts(i) = 2 * T * U**5 / V**7 - END DO - RETURN - END - -c----------------------------------------------------------------------- - - SUBROUTINE Lebdev(Pts,Wts,N) -c ****************************************************************** -c * * -c * Lebdev returns a Lebedev formula for quadrature on the * -c * surface of the unit sphere having the desired number * -c * of points. * -c * * -c * OUTPUT: * -c * Pts - Cartesian coordinates of quadrature points * -c * Wts - Quadrature weights * -c * * -c * INPUT: * -c * N - Number of quadrature points desired * -c * * -c * N Description * -c * --- ----------- * -c * 1 Debugging formula * -c * 4 2nd-degree, Tetrahedral formula * -c * 6 3rd-degree, Octahedral formula * -c * 18 5th-degree, Abramowitz & Stegun, p. 894 * -c * 26 7th-degree, Abramowitz & Stegun, p. 894 * -c * 38 9th-degree, Ref. 1 * -c * 50 11th-degree, Ref. 1 * -c * 86 15th-degree, Ref. 1 * -c * 110 17th-degree, Ref. 1 * -c * 146 19th-degree, Ref. 2 * -c * 194 23rd-degree, Ref. 2 * -c * 302 29th-degree, Ref. 3 * -c * * -c * Refs: 1) Zh. Vychisl. Mat. Mat. Fiz. 15, 48 (1975). * -c * 2) Zh. Vychisl. Mat. Mat. Fiz. 16, 293 (1976). * -c * 3) Sibirsk. Mat. Zh. 18, 132 (1977). * -c * * -c ****************************************************************** - IMPLICIT REAL*8 (a-h,o-z) - PARAMETER (NLeb=31,MaxB=30,MaxC=10,MaxD=90) - REAL*8 Pts(3,*),Wts(*),A(3,NLeb),B(MaxB,NLeb),C(MaxC,NLeb), - $ D(MaxD,NLeb),T(MaxB,NLeb),V(MaxC,NLeb),S(2,MaxD,NLeb), - $ mk,lk,r(3),Guess(3) - INTEGER SetTyp(6,NLeb),Pmt(3,6) - SAVE SetTyp,Pmt,Guess - SAVE A,B,C,D,T,V,S - DATA SetTyp / 1,0,0,0,0,0, - $ 1,1,0,0,0,0, - $ 1,1,1,0,0,0, - $ 1,0,1,0,1,0, - $ 1,1,1,1,0,0, - $ 1,1,1,1,1,0, - $ 1,0,1,2,1,0, - $ 1,0,1,3,1,0, - $ 1,1,1,3,0,1, - $ 1,1,1,3,1,1, - $ 1,1,1,4,1,1, - $ 1,0,1,5,2,1, - $ 1,1,1,5,1,2, - $ 1,0,1,6,2,2, - $ 1,0,1,6,2,3, - $ 1,1,1,7,2,4, - $ 1,0,1,9,3,6, - $ 1,1,1,10,3,9, - $ 1,0,1,12,4,12, - $ 1,1,1,13,4,16, - $ 1,0,1,15,5,20, - $ 1,1,1,16,5,25, - $ 1,0,1,18,6,30, - $ 1,1,1,19,6,36, - $ 1,0,1,21,7,42, - $ 1,1,1,22,7,49, - $ 1,0,1,24,8,56, - $ 1,1,1,25,8,64, - $ 1,0,1,27,9,72, - $ 1,1,1,28,9,81, - $ 1,0,1,30,10,90 / - DATA Pmt / 1,2,3, 2,3,1, 3,1,2, 2,1,3, 1,3,2, 3,2,1 / - DATA Guess / 0.15D0,0.5D0,0.85D0 / - - DATA A(1,1) - $ / 0.1666666666666666666666666666666667D+00 / - DATA (A(j,2),j=1,2) - $ / 0.3333333333333333333333333333333333D-01, - $ 0.6666666666666666666666666666666667D-01 / - DATA (A(j,3),j=1,3) - $ / 0.4761904761904761904761904761904762D-01, - $ 0.3809523809523809523809523809523810D-01, - $ 0.3214285714285714285714285714285714D-01 / - DATA (A(j,4),j=1,3) - $ / 0.9523809523809523809523809523809525D-02, 0D0, - $ 0.3214285714285714285714285714285714D-01 / - DATA (A(j,5),j=1,3) - $ / 0.1269841269841269841269841269841270D-01, - $ 0.2257495590828924162257495590828924D-01, - $ 0.2109375D-01 / - DATA (A(j,6),j=1,3) - $ / 5.130671797338D-04, - $ 1.660406956574D-02, - $ -2.958603896104D-02 / - DATA (A(j,7),j=1,3) - $ / 0.1154401154401154401154401154401154D-01, 0D0, - $ 0.1194390908585628232369892597364696D-01 / - DATA (A(j,8),j=1,3) - $ / 0.3828270494937161603828270494937183D-02, 0D0, - $ 0.9793737512487512487512487512487502D-02 / - DATA (A(j,9),j=1,3) - $ / 0.5996313688621380929073236765544457D-03, - $ 0.7372999718620756423057432684105612D-02, - $ 0.7210515360144487777633059968342821D-02 / - DATA (A(j,10),j=1,3) - $ / 5.544842902037D-03, - $ 6.071332770671D-03, - $ 6.383674773515D-03 / - DATA (A(j,11),j=1,3) - $ / 0.1782340447244611157367271048698676D-02, - $ 0.5716905949977101892992128388320993D-02, - $ 0.5573383178848737968367849584466468D-02 / - DATA (A(j,12),j=1,3) - $ / -5.522639919727D-02, - $ 0.000000000000D+00, - $ 4.450274607445D-03 / - DATA (A(j,13),j=1,3) - $ / -1.313769127327D-03, - $ -2.522728704859D-03, - $ 4.186853881701D-03 / - DATA (A(j,14),j=1,3) - $ / 0.8545911725128148134231210325881270D-03, 0D0, - $ 0.3599119285025571458863978589612291D-02 / - DATA (A(j,15),j=1,3) - $ / 3.006796749454D-03, - $ 0.000000000000D+00, - $ 3.050627745651D-03 / - DATA (A(j,16),j=1,3) - $ / 5.265897968224D-04, - $ 2.548219972003D-03, - $ 2.512317418927D-03 / - DATA (A(j,17),j=1,3) - $ / 3.095121295306D-04, - $ 0.000000000000D+00, - $ 1.852379698597D-03 / - DATA (A(j,18),j=1,3) - $ / 2.192942088181D-04, - $ 1.436433617319D-03, - $ 1.421940344336D-03 / - DATA (A(j,19),j=1,3) - $ / 1.438294190527D-04, - $ 0.000000000000D+00, - $ 1.125772288287D-03 / - DATA (A(j,20),j=1,3) - $ / 1.105189233268D-04, - $ 9.205232738091D-04, - $ 9.133159786444D-04 / - DATA (A(j,21),j=1,3) - $ / 7.777160743261D-05, - $ 0.000000000000D+00, - $ 7.557646413005D-04 / - DATA (A(j,22),j=1,3) - $ / 6.309049437421D-05, - $ 6.398287705572D-04, - $ 6.357185073531D-04 / - DATA (A(j,23),j=1,3) - $ / 4.656031899197D-05, - $ 0.000000000000D+00, - $ 5.421549195296D-04 / - DATA (A(j,24),j=1,3) - $ / 3.922616270665D-05, - $ 4.703831750854D-04, - $ 4.678202801282D-04 / - DATA (A(j,25),j=1,3) - $ / 2.998675149888D-05, - $ 0.000000000000D+00, - $ 4.077860529495D-04 / - DATA (A(j,26),j=1,3) - $ / 2.599095953755D-05, - $ 3.603134089688D-04, - $ 3.586067974412D-04 / - DATA (A(j,27),j=1,3) - $ / 2.040382730826D-05, - $ 0.000000000000D+00, - $ 3.178149703890D-04 / - DATA (A(j,28),j=1,3) - $ / 1.807395252197D-05, - $ 2.848008782239D-04, - $ 2.836065837531D-04 / - DATA (A(j,29),j=1,3) - $ / 1.449063022538D-05, - $ 0.000000000000D+00, - $ 2.546377329828D-04 / - DATA (A(j,30),j=1,3) - $ / 9.687521879421D-05, - $ 2.307897895368D-04, - $ 2.297310852499D-04 / - DATA (A(j,31),j=1,3) - $ / 9.080510764308D-05, - $ 0.000000000000D+00, - $ 2.084824361988D-04 / - DATA B(1,5) - $ / 0.2017333553791887125220458553791887D-01 / - DATA B(1,6) - $ / 2.657620708216D-02 / - DATA (B(j,7),j=1,2) - $ / 0.1111055571060340251094684821601397D-01, - $ 0.1187650129453714201378828059940252D-01 / - DATA (B(j,8),j=1,3) - $ / 0.8211737283191110975989934052273075D-02, - $ 0.9595471336070962849453181172902595D-02, - $ 0.9942814891178103281400658285264506D-02 / - DATA (B(j,9),j=1,3) - $ / 0.7574394159054033722687485747138069D-02, - $ 0.6753829486314477440735417324864531D-02, - $ 0.7116355493117555387600892849539733D-02 / - DATA (B(j,10),j=1,3) - $ / 5.183387587748D-03, - $ 6.317929009814D-03, - $ 6.201670006589D-03 / - DATA (B(j,11),j=1,4) - $ / 0.5518771467273613691727684601193794D-02, - $ 0.5158237711805383103249161547187927D-02, - $ 0.5608704082587996843749366738551845D-02, - $ 0.4106777028169394090728611285645817D-02 / - DATA (B(j,12),j=1,5) - $ / 4.496841067921D-03, - $ 5.049153450479D-03, - $ 3.976408018052D-03, - $ 4.401400650381D-03, - $ 1.724544350544D-02 / - DATA (B(j,13),j=1,5) - $ / 5.315167977811D-03, - $ 4.047142377086D-03, - $ 4.112482394407D-03, - $ 3.595584899759D-03, - $ 4.256131351428D-03 / - DATA (B(j,14),j=1,6) - $ / 0.3650045807677255428654332201126546D-02, - $ 0.3604822601419881711314809131043636D-02, - $ 0.3576729661743367075562081375609260D-02, - $ 0.3449788424305883310013027710484181D-02, - $ 0.3108953122413675254845876980830533D-02, - $ 0.2352101413689164378792171183376706D-02 / - DATA (B(j,15),j=1,6) - $ / 1.621104600289D-03, - $ 3.005701484902D-03, - $ 2.990992529654D-03, - $ 2.982170644108D-03, - $ 2.721564237311D-03, - $ 3.033513795811D-03 / - DATA (B(j,16),j=1,7) - $ / 2.530403801186D-03, - $ 2.014279020919D-03, - $ 2.501725168403D-03, - $ 2.513267174598D-03, - $ 2.302694782227D-03, - $ 1.462495621595D-03, - $ 2.445373437313D-03 / - DATA (B(j,17),j=1,9) - $ / 1.871790639278D-03, - $ 1.858812585438D-03, - $ 1.852028828296D-03, - $ 1.846715956151D-03, - $ 1.818471778163D-03, - $ 1.749564657281D-03, - $ 1.617210647254D-03, - $ 1.384737234852D-03, - $ 9.764331165051D-04 / - DATA (B(j,18),j=1,10) - $ / 6.798123511051D-04, - $ 9.913184235295D-04, - $ 1.180207833239D-03, - $ 1.296599602081D-03, - $ 1.365871427428D-03, - $ 1.402988604775D-03, - $ 1.418645563596D-03, - $ 1.421376741852D-03, - $ 1.423996475491D-03, - $ 1.431554042179D-03 / - DATA (B(j,19),j=1,12) - $ / 4.948029341949D-04, - $ 7.357990109125D-04, - $ 8.889132771304D-04, - $ 9.888347838921D-04, - $ 1.053299681709D-03, - $ 1.092778807015D-03, - $ 1.114389394063D-03, - $ 1.123724788052D-03, - $ 1.125239325244D-03, - $ 1.126153271816D-03, - $ 1.130286931124D-03, - $ 1.134986534364D-03 / - DATA (B(j,20),j=1,13) - $ / 3.690421898018D-04, - $ 5.603990928681D-04, - $ 6.865297629283D-04, - $ 7.720338551146D-04, - $ 8.301545958895D-04, - $ 8.686692550180D-04, - $ 8.927076285847D-04, - $ 9.060820238568D-04, - $ 9.119777254941D-04, - $ 9.128720138604D-04, - $ 9.130714935692D-04, - $ 9.152873784554D-04, - $ 9.187436274322D-04 / - DATA (B(j,21),j=1,15) - $ / 2.841633806091D-04, - $ 4.374419127054D-04, - $ 5.417174740872D-04, - $ 6.148000891359D-04, - $ 6.664394485801D-04, - $ 7.025039356923D-04, - $ 7.268511789250D-04, - $ 7.422637534209D-04, - $ 7.509545035841D-04, - $ 7.548535057718D-04, - $ 7.554088969774D-04, - $ 7.553147174443D-04, - $ 7.564767653292D-04, - $ 7.587991808519D-04, - $ 7.608261832033D-04 / - DATA (B(j,22),j=1,16) - $ / 2.221207162188D-04, - $ 3.475784022287D-04, - $ 4.350742443590D-04, - $ 4.978569136522D-04, - $ 5.435036221998D-04, - $ 5.765913388220D-04, - $ 6.001200359226D-04, - $ 6.162178172718D-04, - $ 6.265218152438D-04, - $ 6.323987160974D-04, - $ 6.350767851541D-04, - $ 6.354362775297D-04, - $ 6.352302462706D-04, - $ 6.358117881418D-04, - $ 6.373101590310D-04, - $ 6.390428961369D-04 / - DATA (B(j,23),j=1,18) - $ / 1.778522133347D-04, - $ 2.811325405683D-04, - $ 3.548896312631D-04, - $ 4.090310897173D-04, - $ 4.493286134170D-04, - $ 4.793728447963D-04, - $ 5.015415319164D-04, - $ 5.175127372678D-04, - $ 5.285522262081D-04, - $ 5.356832703714D-04, - $ 5.397914736175D-04, - $ 5.416899441600D-04, - $ 5.419308476890D-04, - $ 5.416936902031D-04, - $ 5.419544338703D-04, - $ 5.428983656631D-04, - $ 5.442286500098D-04, - $ 5.452250345057D-04 / - DATA (B(j,24),j=1,19) - $ / 1.437832228980D-04, - $ 2.303572493578D-04, - $ 2.933110752447D-04, - $ 3.402905998360D-04, - $ 3.759138466870D-04, - $ 4.030638447900D-04, - $ 4.236591432242D-04, - $ 4.390522656947D-04, - $ 4.502523466626D-04, - $ 4.580577727784D-04, - $ 4.631391616616D-04, - $ 4.660928953699D-04, - $ 4.674751807937D-04, - $ 4.676414903933D-04, - $ 4.674086492348D-04, - $ 4.674928539483D-04, - $ 4.680748979686D-04, - $ 4.690449806389D-04, - $ 4.699877075861D-04 / - DATA (B(j,25),j=1,21) - $ / 1.185349192521D-04, - $ 1.913408643426D-04, - $ 2.452886577210D-04, - $ 2.862408183289D-04, - $ 3.178032258257D-04, - $ 3.422945667634D-04, - $ 3.612790520236D-04, - $ 3.758638229819D-04, - $ 3.868711798860D-04, - $ 3.949429933190D-04, - $ 4.006068107541D-04, - $ 4.043192149673D-04, - $ 4.064947495808D-04, - $ 4.075245619813D-04, - $ 4.076423540894D-04, - $ 4.074280862252D-04, - $ 4.074163756012D-04, - $ 4.077647795071D-04, - $ 4.084517552783D-04, - $ 4.092468459224D-04, - $ 4.097872687241D-04 / - DATA (B(j,26),j=1,22) - $ / 9.831528474386D-05, - $ 1.605023107954D-04, - $ 2.072200131464D-04, - $ 2.431297618814D-04, - $ 2.711819064497D-04, - $ 2.932762038321D-04, - $ 3.107032514197D-04, - $ 3.243808058921D-04, - $ 3.349899091374D-04, - $ 3.430580688505D-04, - $ 3.490124109290D-04, - $ 3.532148948562D-04, - $ 3.559862669063D-04, - $ 3.576224317551D-04, - $ 3.584050533086D-04, - $ 3.584903581373D-04, - $ 3.582991879041D-04, - $ 3.582371187963D-04, - $ 3.584353631122D-04, - $ 3.589120166518D-04, - $ 3.595445704532D-04, - $ 3.600943557111D-04 / - DATA (B(j,27),j=1,24) - $ / 8.288115128076D-05, - $ 1.360883192523D-04, - $ 1.766854454543D-04, - $ 2.083153161230D-04, - $ 2.333279544657D-04, - $ 2.532809539930D-04, - $ 2.692472184211D-04, - $ 2.819949946812D-04, - $ 2.920953593973D-04, - $ 2.999889782948D-04, - $ 3.060292120497D-04, - $ 3.105109167522D-04, - $ 3.136902387550D-04, - $ 3.157984652455D-04, - $ 3.170516518425D-04, - $ 3.176568425634D-04, - $ 3.177198411207D-04, - $ 3.175519492395D-04, - $ 3.174654952635D-04, - $ 3.175676415468D-04, - $ 3.178923417835D-04, - $ 3.183788287532D-04, - $ 3.188755151919D-04, - $ 3.191916889314D-04 / - DATA (B(j,28),j=1,25) - $ / 7.013149266674D-05, - $ 1.162798021957D-04, - $ 1.518728583972D-04, - $ 1.798796108217D-04, - $ 2.022593385973D-04, - $ 2.203093105575D-04, - $ 2.349294234300D-04, - $ 2.467682058747D-04, - $ 2.563092683572D-04, - $ 2.639253896763D-04, - $ 2.699137479265D-04, - $ 2.745196420167D-04, - $ 2.779529197398D-04, - $ 2.803996086684D-04, - $ 2.820302356716D-04, - $ 2.830056747491D-04, - $ 2.834808950777D-04, - $ 2.835282339079D-04, - $ 2.833819267066D-04, - $ 2.832858336907D-04, - $ 2.833268235451D-04, - $ 2.835432677029D-04, - $ 2.839091722743D-04, - $ 2.843308178876D-04, - $ 2.846703550534D-04 / - DATA (B(j,29),j=1,27) - $ / 6.018432961087D-05, - $ 1.002286583264D-04, - $ 1.315222931028D-04, - $ 1.564213746877D-04, - $ 1.765118841508D-04, - $ 1.928737099311D-04, - $ 2.062658534263D-04, - $ 2.172395445954D-04, - $ 2.262076188876D-04, - $ 2.334885699462D-04, - $ 2.393355273179D-04, - $ 2.439559200469D-04, - $ 2.475251866060D-04, - $ 2.501965558159D-04, - $ 2.521081407926D-04, - $ 2.533881002388D-04, - $ 2.541582900848D-04, - $ 2.545365737526D-04, - $ 2.545726993067D-04, - $ 2.544456197466D-04, - $ 2.543481596881D-04, - $ 2.543506451429D-04, - $ 2.544905675494D-04, - $ 2.547611407344D-04, - $ 2.551060375449D-04, - $ 2.554291933816D-04, - $ 2.556255710686D-04 / - DATA (B(j,30),j=1,28) - $ / 7.386265944002D-05, - $ 8.257977698542D-05, - $ 9.706044762058D-05, - $ 1.302393847117D-04, - $ 1.541957004601D-04, - $ 1.704459770092D-04, - $ 1.827374890943D-04, - $ 1.926360817436D-04, - $ 2.008010239495D-04, - $ 2.075635983209D-04, - $ 2.131306638691D-04, - $ 2.176562329937D-04, - $ 2.212682262991D-04, - $ 2.240799515669D-04, - $ 2.261959816188D-04, - $ 2.277156368809D-04, - $ 2.287351772128D-04, - $ 2.293490814084D-04, - $ 2.296505312376D-04, - $ 2.296793832319D-04, - $ 2.295785443843D-04, - $ 2.295017931529D-04, - $ 2.295059638185D-04, - $ 2.296232343237D-04, - $ 2.298530178741D-04, - $ 2.301579790281D-04, - $ 2.304690404997D-04, - $ 2.307027995907D-04 / - DATA (B(j,31),j=1,30) - $ / 5.011105657240D-05, - $ 5.942520409684D-05, - $ 9.564394826110D-05, - $ 1.185530657126D-04, - $ 1.364510114230D-04, - $ 1.505828825605D-04, - $ 1.619298749867D-04, - $ 1.712450504268D-04, - $ 1.789891098165D-04, - $ 1.854474955630D-04, - $ 1.908148636674D-04, - $ 1.952377405282D-04, - $ 1.988349254282D-04, - $ 2.017079807160D-04, - $ 2.039473082709D-04, - $ 2.056360279289D-04, - $ 2.068525823067D-04, - $ 2.076724877534D-04, - $ 2.081694278238D-04, - $ 2.084157631219D-04, - $ 2.084381531129D-04, - $ 2.083476277129D-04, - $ 2.082686194460D-04, - $ 2.082475686112D-04, - $ 2.083139860290D-04, - $ 2.084745561831D-04, - $ 2.087091313376D-04, - $ 2.089718413298D-04, - $ 2.092003303480D-04, - $ 2.093336148263D-04 / - DATA C(1,4) - $ / 0.2857142857142857142857142857142857D-01 / - DATA C(1,6) - $ / 1.652217099372D-02 / - DATA C(1,7) - $ / 0.1181230374690447536447922630736498D-01 / - DATA C(1,8) - $ / 0.9694996361663028329694996361663027D-02 / - DATA C(1,10) - $ / 5.477143385137D-03 / - DATA C(1,11) - $ / 0.5051846064614808475989311960063897D-02 / - DATA (C(j,12),j=1,2) - $ / 4.231083095357D-03, - $ 5.198069864064D-03 / - DATA C(1,13) - $ / 4.229582700647D-03 / - DATA (C(j,14),j=1,2) - $ / 0.3600820932216460272799206341770999D-02, - $ 0.2982344963171803851951110469245206D-02 / - DATA (C(j,15),j=1,2) - $ / 3.007949555219D-03, - $ 2.881964603055D-03 / - DATA (C(j,16),j=1,2) - $ / 2.417442375639D-03, - $ 1.910951282180D-03 / - DATA (C(j,17),j=1,3) - $ / 1.857161196774D-03, - $ 1.705153996396D-03, - $ 1.300321685886D-03 / - DATA (C(j,18),j=1,3) - $ / 9.254401499865D-04, - $ 1.250239995054D-03, - $ 1.394365843329D-03 / - DATA (C(j,19),j=1,4) - $ / 6.823367927110D-04, - $ 9.454158160447D-04, - $ 1.074429975386D-03, - $ 1.129300086569D-03 / - DATA (C(j,20),j=1,4) - $ / 5.176977312966D-04, - $ 7.331143682101D-04, - $ 8.463232836380D-04, - $ 9.031122694254D-04 / - DATA (C(j,21),j=1,5) - $ / 4.021680447875D-04, - $ 5.804871793946D-04, - $ 6.792151955945D-04, - $ 7.336741211286D-04, - $ 7.581866300990D-04 / - DATA (C(j,22),j=1,5) - $ / 3.186913449947D-04, - $ 4.678028558592D-04, - $ 5.538829697599D-04, - $ 6.044475907190D-04, - $ 6.313575103509D-04 / - DATA (C(j,23),j=1,6) - $ / 2.568002497729D-04, - $ 3.827211700292D-04, - $ 4.579491561918D-04, - $ 5.042003969084D-04, - $ 5.312708889976D-04, - $ 5.438401790747D-04 / - DATA (C(j,24),j=1,6) - $ / 2.099942281069D-04, - $ 3.172269150713D-04, - $ 3.832051358547D-04, - $ 4.252193818147D-04, - $ 4.513807963755D-04, - $ 4.657797469114D-04 / - DATA (C(j,25),j=1,7) - $ / 1.738986811745D-04, - $ 2.659616045280D-04, - $ 3.240596008172D-04, - $ 3.621195964433D-04, - $ 3.868838330761D-04, - $ 4.018911532693D-04, - $ 4.089929432983D-04 / - DATA (C(j,26),j=1,7) - $ / 1.456447096742D-04, - $ 2.252370188284D-04, - $ 2.766135443475D-04, - $ 3.110729491501D-04, - $ 3.342506712303D-04, - $ 3.491981834027D-04, - $ 3.576003604349D-04 / - DATA (C(j,27),j=1,8) - $ / 1.231779611745D-04, - $ 1.924661373840D-04, - $ 2.380881867403D-04, - $ 2.693100663038D-04, - $ 2.908673382834D-04, - $ 3.053914619382D-04, - $ 3.143916684148D-04, - $ 3.187042244055D-04 / - DATA (C(j,28),j=1,8) - $ / 1.051193406972D-04, - $ 1.657871838797D-04, - $ 2.064648113714D-04, - $ 2.347942745820D-04, - $ 2.547775326598D-04, - $ 2.686876684847D-04, - $ 2.778665755516D-04, - $ 2.830996616783D-04 / - DATA (C(j,29),j=1,9) - $ / 9.041339695118D-05, - $ 1.438426330079D-04, - $ 1.802523089821D-04, - $ 2.060052290565D-04, - $ 2.245002248967D-04, - $ 2.377059847731D-04, - $ 2.468118955883D-04, - $ 2.525410872967D-04, - $ 2.553101409933D-04 / - DATA (C(j,30),j=1,9) - $ / 9.312274696671D-05, - $ 1.199919385877D-04, - $ 1.598039138878D-04, - $ 1.822253763575D-04, - $ 1.988579593655D-04, - $ 2.112620102533D-04, - $ 2.201594887699D-04, - $ 2.261622590895D-04, - $ 2.296458453436D-04 / - DATA (C(j,31),j=1,10) - $ / 7.591708117365D-05, - $ 1.083383968169D-04, - $ 1.403019395293D-04, - $ 1.615970179286D-04, - $ 1.771144187505D-04, - $ 1.887760022988D-04, - $ 1.973474670768D-04, - $ 2.033787661235D-04, - $ 2.072343626517D-04, - $ 2.091177834227D-04 / - DATA D(1,9) - $ / 0.6991087353303262394171485080575989D-02 / - DATA D(1,10) - $ / 5.968383987681D-03 / - DATA D(1,11) - $ / 0.5530248916233093701297682691433032D-02 / - DATA D(1,12) - $ / 4.695720972569D-03 / - DATA (D(j,13),j=1,2) - $ / 4.080914225781D-03, - $ 4.071467593831D-03 / - DATA (D(j,14),j=1,2) - $ / 0.3571540554273387081232979203123946D-02, - $ 0.3392312205006170181978826539456957D-02 / - DATA (D(j,15),j=1,3) - $ / 2.958357626536D-03, - $ 3.036020026407D-03, - $ 2.832187403926D-03 / - DATA (D(j,16),j=1,4) - $ / 2.416930044325D-03, - $ 2.512236854563D-03, - $ 2.496644054553D-03, - $ 2.236607760438D-03 / - DATA (D(j,17),j=1,6) - $ / 1.842866472905D-03, - $ 1.802658934377D-03, - $ 1.849830560444D-03, - $ 1.713904507107D-03, - $ 1.555213603397D-03, - $ 1.802239128009D-03 / - DATA (D(j,18),j=1,9) - $ / 1.127089094672D-03, - $ 1.345753760911D-03, - $ 1.424957283317D-03, - $ 1.261523341238D-03, - $ 1.392547106053D-03, - $ 1.418761677878D-03, - $ 1.338366684480D-03, - $ 1.393700862676D-03, - $ 1.415914757467D-03 / - DATA (D(j,19),j=1,12) - $ / 8.436884500902D-04, - $ 1.075255720449D-03, - $ 1.108577236864D-03, - $ 9.566475323783D-04, - $ 1.080663250717D-03, - $ 1.126797131196D-03, - $ 1.022568715358D-03, - $ 1.108960267713D-03, - $ 1.122790653436D-03, - $ 1.032401847117D-03, - $ 1.107249382284D-03, - $ 1.121780048520D-03 / - DATA (D(j,20),j=1,16) - $ / 6.485778453163D-04, - $ 7.435030910982D-04, - $ 7.998527891839D-04, - $ 8.101731497468D-04, - $ 8.483389574594D-04, - $ 8.556299257312D-04, - $ 8.803208679738D-04, - $ 8.811048182426D-04, - $ 8.850282341265D-04, - $ 9.021342299041D-04, - $ 9.010091677105D-04, - $ 9.022692938427D-04, - $ 9.158016174693D-04, - $ 9.131578003189D-04, - $ 9.107813579483D-04, - $ 9.105760258970D-04 / - DATA (D(j,21),j=1,20) - $ / 7.538257859801D-04, - $ 7.483517247053D-04, - $ 7.371763661112D-04, - $ 7.183448895757D-04, - $ 6.895815529822D-04, - $ 6.480105801793D-04, - $ 5.897558896595D-04, - $ 5.095708849247D-04, - $ 7.536906428910D-04, - $ 7.472505965575D-04, - $ 7.343017132280D-04, - $ 7.130871582177D-04, - $ 6.817022032113D-04, - $ 6.380941145604D-04, - $ 7.550381377920D-04, - $ 7.478646640145D-04, - $ 7.335918720601D-04, - $ 7.110120527658D-04, - $ 7.571363978690D-04, - $ 7.489908329079D-04 / - DATA (D(j,22),j=1,25) - $ / 4.078626431856D-04, - $ 4.759933057813D-04, - $ 5.268151186413D-04, - $ 5.643048560507D-04, - $ 5.914501076613D-04, - $ 6.104561257874D-04, - $ 6.230252860708D-04, - $ 6.305618761761D-04, - $ 6.343092767598D-04, - $ 5.176268945738D-04, - $ 5.564840313314D-04, - $ 5.856426671039D-04, - $ 6.066386925777D-04, - $ 6.208824962234D-04, - $ 6.296314297823D-04, - $ 6.340423756792D-04, - $ 5.829627677107D-04, - $ 6.048693376081D-04, - $ 6.202362317732D-04, - $ 6.299005328404D-04, - $ 6.347722390609D-04, - $ 6.203778981239D-04, - $ 6.308414671240D-04, - $ 6.362706466959D-04, - $ 6.375414170333D-04 / - DATA (D(j,23),j=1,30) - $ / 3.316041873197D-04, - $ 3.899113567154D-04, - $ 4.343343327201D-04, - $ 4.679415262319D-04, - $ 4.930847981631D-04, - $ 5.115031867540D-04, - $ 5.245217148457D-04, - $ 5.332041499895D-04, - $ 5.384583126022D-04, - $ 5.411067210799D-04, - $ 4.259797391469D-04, - $ 4.604931368460D-04, - $ 4.871814878255D-04, - $ 5.072242910075D-04, - $ 5.217069845235D-04, - $ 5.315785966280D-04, - $ 5.376833708759D-04, - $ 5.408032092070D-04, - $ 4.842744917905D-04, - $ 5.048926076188D-04, - $ 5.202607980478D-04, - $ 5.309932388326D-04, - $ 5.377419770895D-04, - $ 5.411696331678D-04, - $ 5.197996293282D-04, - $ 5.311120836623D-04, - $ 5.384309319957D-04, - $ 5.421859504052D-04, - $ 5.390948355046D-04, - $ 5.433312705028D-04 / - DATA (D(j,24),j=1,36) - $ / 2.733362800523D-04, - $ 3.235485368464D-04, - $ 3.624908726013D-04, - $ 3.925540070713D-04, - $ 4.156129781116D-04, - $ 4.330644984623D-04, - $ 4.459677725921D-04, - $ 4.551593004457D-04, - $ 4.613341462750D-04, - $ 4.651019618270D-04, - $ 4.670249536101D-04, - $ 3.549555576442D-04, - $ 3.856108245249D-04, - $ 4.098622845757D-04, - $ 4.286328604269D-04, - $ 4.427802198994D-04, - $ 4.530473511489D-04, - $ 4.600805475703D-04, - $ 4.644599059958D-04, - $ 4.667274455713D-04, - $ 4.069360518020D-04, - $ 4.260442819919D-04, - $ 4.408678508029D-04, - $ 4.518748115549D-04, - $ 4.595564875375D-04, - $ 4.643988774316D-04, - $ 4.668827491647D-04, - $ 4.400541823742D-04, - $ 4.514512890194D-04, - $ 4.596198627348D-04, - $ 4.648659016802D-04, - $ 4.675502017158D-04, - $ 4.598494476456D-04, - $ 4.654916955152D-04, - $ 4.684709779505D-04, - $ 4.691445539107D-04 / - DATA (D(j,25),j=1,42) - $ / 2.279907527706D-04, - $ 2.715205490579D-04, - $ 3.057917896704D-04, - $ 3.326913052453D-04, - $ 3.537334711890D-04, - $ 3.700567500783D-04, - $ 3.825245372589D-04, - $ 3.918125171518D-04, - $ 3.984720419938D-04, - $ 4.029746003338D-04, - $ 4.057428632157D-04, - $ 4.071719274115D-04, - $ 2.990236950664D-04, - $ 3.262951734213D-04, - $ 3.482634608242D-04, - $ 3.656596681701D-04, - $ 3.791740467794D-04, - $ 3.894034450157D-04, - $ 3.968600245508D-04, - $ 4.019931351420D-04, - $ 4.052108801279D-04, - $ 4.068978613941D-04, - $ 3.454275351320D-04, - $ 3.629963537008D-04, - $ 3.770187233890D-04, - $ 3.878608613694D-04, - $ 3.959065270221D-04, - $ 4.015286975464D-04, - $ 4.050866785615D-04, - $ 4.069320185052D-04, - $ 3.760120964063D-04, - $ 3.870969564418D-04, - $ 3.955287790534D-04, - $ 4.015361911303D-04, - $ 4.053836986720D-04, - $ 4.073578673299D-04, - $ 3.954628379231D-04, - $ 4.017645508848D-04, - $ 4.059030348651D-04, - $ 4.080565809485D-04, - $ 4.063018753665D-04, - $ 4.087191292800D-04 / - DATA (D(j,26),j=1,49) - $ / 1.921921305789D-04, - $ 2.301458216496D-04, - $ 2.604248549523D-04, - $ 2.845275425871D-04, - $ 3.036870897975D-04, - $ 3.188414832298D-04, - $ 3.307046414722D-04, - $ 3.398330969031D-04, - $ 3.466757899705D-04, - $ 3.516095923230D-04, - $ 3.549645184048D-04, - $ 3.570415969441D-04, - $ 3.581251798496D-04, - $ 2.543491329913D-04, - $ 2.786711051331D-04, - $ 2.985552361084D-04, - $ 3.145867929154D-04, - $ 3.273290662068D-04, - $ 3.372705511944D-04, - $ 3.448274437852D-04, - $ 3.503592783049D-04, - $ 3.541854792663D-04, - $ 3.565995517909D-04, - $ 3.578802078303D-04, - $ 2.958644592861D-04, - $ 3.119548129117D-04, - $ 3.250745225006D-04, - $ 3.355153415935D-04, - $ 3.435847568549D-04, - $ 3.495786831622D-04, - $ 3.537767805535D-04, - $ 3.564459815421D-04, - $ 3.578464061225D-04, - $ 3.239748762836D-04, - $ 3.345491784174D-04, - $ 3.429126177302D-04, - $ 3.492420343097D-04, - $ 3.537399050235D-04, - $ 3.566209152659D-04, - $ 3.581084321920D-04, - $ 3.426522117592D-04, - $ 3.491848770121D-04, - $ 3.539318235231D-04, - $ 3.570231438459D-04, - $ 3.586207335052D-04, - $ 3.541196205164D-04, - $ 3.574296911574D-04, - $ 3.591993279819D-04, - $ 3.595855034662D-04 / - DATA (D(j,27),j=1,56) - $ / 1.635219535870D-04, - $ 1.968109917696D-04, - $ 2.236754342250D-04, - $ 2.453186687017D-04, - $ 2.627551791581D-04, - $ 2.767654860152D-04, - $ 2.879467027766D-04, - $ 2.967639918919D-04, - $ 3.035900684660D-04, - $ 3.087338237298D-04, - $ 3.124608838860D-04, - $ 3.150084294227D-04, - $ 3.165958398598D-04, - $ 3.174320440957D-04, - $ 2.182188909813D-04, - $ 2.399727933921D-04, - $ 2.579796133515D-04, - $ 2.727114052624D-04, - $ 2.846327656281D-04, - $ 2.941491102051D-04, - $ 3.016049492136D-04, - $ 3.072949726176D-04, - $ 3.114768142886D-04, - $ 3.143823673666D-04, - $ 3.162269764662D-04, - $ 3.172164663760D-04, - $ 2.554575398967D-04, - $ 2.701704069136D-04, - $ 2.823693413469D-04, - $ 2.922898463214D-04, - $ 3.001829062162D-04, - $ 3.062890864543D-04, - $ 3.108328279265D-04, - $ 3.140243146201D-04, - $ 3.160638030977D-04, - $ 3.171462882206D-04, - $ 2.812388416032D-04, - $ 2.912137500288D-04, - $ 2.993241256502D-04, - $ 3.057101738984D-04, - $ 3.105319326251D-04, - $ 3.139565514428D-04, - $ 3.161543006806D-04, - $ 3.172985960613D-04, - $ 2.989400336901D-04, - $ 3.054555883948D-04, - $ 3.104764960808D-04, - $ 3.141015825978D-04, - $ 3.164520621160D-04, - $ 3.176652305912D-04, - $ 3.105097161024D-04, - $ 3.143014117891D-04, - $ 3.168172866287D-04, - $ 3.181401865571D-04, - $ 3.170663659156D-04, - $ 3.185447944626D-04 / - DATA (D(j,28),j=1,64) - $ / 1.403063340168D-04, - $ 1.696504125939D-04, - $ 1.935787242745D-04, - $ 2.130614510522D-04, - $ 2.289381265931D-04, - $ 2.418630292816D-04, - $ 2.523400495631D-04, - $ 2.607623973450D-04, - $ 2.674441032689D-04, - $ 2.726432360343D-04, - $ 2.765787685925D-04, - $ 2.794428690642D-04, - $ 2.814099002063D-04, - $ 2.826429531579D-04, - $ 2.832983542551D-04, - $ 1.886695565285D-04, - $ 2.081867882748D-04, - $ 2.245148680601D-04, - $ 2.380370491512D-04, - $ 2.491398041852D-04, - $ 2.581632405881D-04, - $ 2.653965506227D-04, - $ 2.710857216747D-04, - $ 2.754434093904D-04, - $ 2.786579932519D-04, - $ 2.809011080679D-04, - $ 2.823336184561D-04, - $ 2.831101175806D-04, - $ 2.221679970355D-04, - $ 2.356185734271D-04, - $ 2.469228344806D-04, - $ 2.562726348642D-04, - $ 2.638756726753D-04, - $ 2.699311157391D-04, - $ 2.746233268404D-04, - $ 2.781225674455D-04, - $ 2.805881254046D-04, - $ 2.821719877005D-04, - $ 2.830222502333D-04, - $ 2.457995956745D-04, - $ 2.551474407504D-04, - $ 2.629065335195D-04, - $ 2.691900449925D-04, - $ 2.741275485754D-04, - $ 2.778530970123D-04, - $ 2.805010567647D-04, - $ 2.822055834031D-04, - $ 2.831016901243D-04, - $ 2.624474901132D-04, - $ 2.688034163039D-04, - $ 2.738932751288D-04, - $ 2.777944791243D-04, - $ 2.806011661661D-04, - $ 2.824181456597D-04, - $ 2.833585216578D-04, - $ 2.738165236963D-04, - $ 2.778365208203D-04, - $ 2.807852940419D-04, - $ 2.827245949675D-04, - $ 2.837342344830D-04, - $ 2.809233907611D-04, - $ 2.829930809743D-04, - $ 2.841097874111D-04, - $ 2.843455206009D-04 / - DATA (D(j,29),j=1,72) - $ / 1.212879733669D-04, - $ 1.472872881271D-04, - $ 1.686846601011D-04, - $ 1.862698414660D-04, - $ 2.007430956992D-04, - $ 2.126568125395D-04, - $ 2.224394603372D-04, - $ 2.304264522673D-04, - $ 2.368854288424D-04, - $ 2.420352089462D-04, - $ 2.460597113081D-04, - $ 2.491181912258D-04, - $ 2.513528194206D-04, - $ 2.528943096693D-04, - $ 2.538660368488D-04, - $ 2.543868648299D-04, - $ 1.642595537825D-04, - $ 1.818246659849D-04, - $ 1.966565649492D-04, - $ 2.090677905658D-04, - $ 2.193820409511D-04, - $ 2.278870827662D-04, - $ 2.348283192282D-04, - $ 2.404139755581D-04, - $ 2.448227407761D-04, - $ 2.482110455593D-04, - $ 2.507192397774D-04, - $ 2.524765968535D-04, - $ 2.536052388539D-04, - $ 2.542230588033D-04, - $ 1.944817013048D-04, - $ 2.067862362747D-04, - $ 2.172440734649D-04, - $ 2.260125991723D-04, - $ 2.332655008690D-04, - $ 2.391699681532D-04, - $ 2.438801528274D-04, - $ 2.475370504261D-04, - $ 2.502707235641D-04, - $ 2.522031701054D-04, - $ 2.534511269979D-04, - $ 2.541284914955D-04, - $ 2.161509250688D-04, - $ 2.248778513438D-04, - $ 2.322388803405D-04, - $ 2.383265471001D-04, - $ 2.432476675020D-04, - $ 2.471122223751D-04, - $ 2.500291752487D-04, - $ 2.521055942765D-04, - $ 2.534472785576D-04, - $ 2.541599713080D-04, - $ 2.317380975863D-04, - $ 2.378550733720D-04, - $ 2.428884456739D-04, - $ 2.469002655757D-04, - $ 2.499657574266D-04, - $ 2.521676168486D-04, - $ 2.535935662645D-04, - $ 2.543356743363D-04, - $ 2.427353285202D-04, - $ 2.468258039744D-04, - $ 2.500060956440D-04, - $ 2.523238365421D-04, - $ 2.538399260253D-04, - $ 2.546255927268D-04, - $ 2.500583360048D-04, - $ 2.524777638260D-04, - $ 2.540951193861D-04, - $ 2.549524085027D-04, - $ 2.542569507009D-04, - $ 2.552114127580D-04 / - DATA (D(j,30),j=1,81) - $ / 1.006006990267D-04, - $ 1.227676689636D-04, - $ 1.467864280270D-04, - $ 1.644178912101D-04, - $ 1.777664890719D-04, - $ 1.884825664517D-04, - $ 1.973269246454D-04, - $ 2.046767775855D-04, - $ 2.107600125918D-04, - $ 2.157416362267D-04, - $ 2.197557816921D-04, - $ 2.229192611835D-04, - $ 2.253385110213D-04, - $ 2.271137107549D-04, - $ 2.283414092918D-04, - $ 2.291161673130D-04, - $ 2.295313908577D-04, - $ 1.438204721359D-04, - $ 1.607738025495D-04, - $ 1.741483853528D-04, - $ 1.851918467519D-04, - $ 1.944628638071D-04, - $ 2.022495446275D-04, - $ 2.087462382439D-04, - $ 2.141074754818D-04, - $ 2.184640913748D-04, - $ 2.219309165220D-04, - $ 2.246123118341D-04, - $ 2.266062766915D-04, - $ 2.280072952231D-04, - $ 2.289082025203D-04, - $ 2.294012695120D-04, - $ 1.722434488737D-04, - $ 1.830237421455D-04, - $ 1.923855349998D-04, - $ 2.004067861936D-04, - $ 2.071817297354D-04, - $ 2.128250834102D-04, - $ 2.174513719440D-04, - $ 2.211661839150D-04, - $ 2.240665257813D-04, - $ 2.262439516633D-04, - $ 2.277874557232D-04, - $ 2.287854314455D-04, - $ 2.293268499616D-04, - $ 1.912628201530D-04, - $ 1.992499672239D-04, - $ 2.061275533454D-04, - $ 2.119318215969D-04, - $ 2.167416581883D-04, - $ 2.206430730517D-04, - $ 2.237186938700D-04, - $ 2.260480075033D-04, - $ 2.277098884559D-04, - $ 2.287845715110D-04, - $ 2.293547268236D-04, - $ 2.056073839853D-04, - $ 2.114235865832D-04, - $ 2.163175629771D-04, - $ 2.203392158112D-04, - $ 2.235473176848D-04, - $ 2.260024141501D-04, - $ 2.277675929329D-04, - $ 2.289102112285D-04, - $ 2.295027954625D-04, - $ 2.161281589880D-04, - $ 2.201980477395D-04, - $ 2.234952066593D-04, - $ 2.260540098521D-04, - $ 2.279157981900D-04, - $ 2.291296918566D-04, - $ 2.297533752537D-04, - $ 2.234927356466D-04, - $ 2.261288012985D-04, - $ 2.280818160924D-04, - $ 2.293773295180D-04, - $ 2.300528767339D-04, - $ 2.281893855066D-04, - $ 2.295720444841D-04, - $ 2.303227649027D-04, - $ 2.304831913227D-04 / - DATA (D(j,31),j=1,90) - $ / 9.316684484676D-05, - $ 1.116193688683D-04, - $ 1.298623551559D-04, - $ 1.450236832456D-04, - $ 1.572719958150D-04, - $ 1.673234785867D-04, - $ 1.756860118725D-04, - $ 1.826776290439D-04, - $ 1.885116347993D-04, - $ 1.933457860171D-04, - $ 1.973060671902D-04, - $ 2.004987099616D-04, - $ 2.030170909281D-04, - $ 2.049461460119D-04, - $ 2.063653565200D-04, - $ 2.073507927381D-04, - $ 2.079764593256D-04, - $ 2.083150534969D-04, - $ 1.262715121591D-04, - $ 1.414386128546D-04, - $ 1.538740401314D-04, - $ 1.642434942331D-04, - $ 1.729790609237D-04, - $ 1.803505190261D-04, - $ 1.865475350080D-04, - $ 1.917182669679D-04, - $ 1.959851709034D-04, - $ 1.994529548118D-04, - $ 2.022138911147D-04, - $ 2.043518024209D-04, - $ 2.059450313018D-04, - $ 2.070685715318D-04, - $ 2.077955310694D-04, - $ 2.081980387825D-04, - $ 1.521318610378D-04, - $ 1.622772720186D-04, - $ 1.710498139421D-04, - $ 1.785911149449D-04, - $ 1.850125313688D-04, - $ 1.904229703933D-04, - $ 1.949259956122D-04, - $ 1.986161545364D-04, - $ 2.015790585641D-04, - $ 2.038934198707D-04, - $ 2.056334060538D-04, - $ 2.068705959462D-04, - $ 2.076753906106D-04, - $ 2.081179391735D-04, - $ 1.700345216229D-04, - $ 1.774906779990D-04, - $ 1.839659377003D-04, - $ 1.894987462975D-04, - $ 1.941548809453D-04, - $ 1.980078427252D-04, - $ 2.011296284744D-04, - $ 2.035888456967D-04, - $ 2.054516325352D-04, - $ 2.067831033093D-04, - $ 2.076485320285D-04, - $ 2.081141439525D-04, - $ 1.834383015469D-04, - $ 1.889540591778D-04, - $ 1.936677023597D-04, - $ 1.976176495067D-04, - $ 2.008536004561D-04, - $ 2.034280351712D-04, - $ 2.053944466028D-04, - $ 2.068077642882D-04, - $ 2.077250949662D-04, - $ 2.082062440705D-04, - $ 1.934374486547D-04, - $ 1.974107010484D-04, - $ 2.007129290389D-04, - $ 2.033736947471D-04, - $ 2.054287125902D-04, - $ 2.069184936819D-04, - $ 2.078883689809D-04, - $ 2.083886366116D-04, - $ 2.006593275471D-04, - $ 2.033728426135D-04, - $ 2.055008781378D-04, - $ 2.070651783519D-04, - $ 2.080953335094D-04, - $ 2.086284998989D-04, - $ 2.055549387645D-04, - $ 2.071871850268D-04, - $ 2.082856600432D-04, - $ 2.088705858819D-04, - $ 2.083995867536D-04, - $ 2.090509712890D-04 / - DATA T(1,5) - $ / 0.8181818181818181818181818181818182D+00 / - DATA T(1,6) - $ / 5.384615384615D-01 / - DATA (T(j,7),j=1,2) - $ / 0.7267874717859796704165651796807734D+00, - $ 0.3574502702964873455463383113455231D-01 / - DATA (T(j,8),j=1,3) - $ / 0.9314644031018293303224605304347612D+00, - $ 0.6868596818254220443790837922198527D+00, - $ 0.4663755190139312657722805586200992D-01 / - DATA (T(j,9),j=1,3) - $ / 0.9504078675707184426846816938057038D+00, - $ 0.6513939748997038757216963384831041D+00, - $ 0.8485503877651973792968123939638137D-01 / - DATA (T(j,10),j=1,3) - $ / 8.698222012652D-01, - $ 9.047678687586D-02, - $ 6.269402078753D-01 / - DATA (T(j,11),j=1,4) - $ / 0.6044957060804405750447234008859784D+00, - $ 0.8326728518658924875446408288494448D+00, - $ 0.9871975115337203051106504992126892D-01, - $ 0.9662345478896000071306665444955087D+00 / - DATA (T(j,12),j=1,5) - $ / 5.964306905285D-01, - $ 8.729497118674D-01, - $ 2.505958825460D-02, - $ 1.321218431685D-01, - $ 9.967380323911D-01 / - DATA (T(j,13),j=1,5) - $ / 8.944445076768D-03, - $ 9.794958119190D-01, - $ 5.680244067058D-01, - $ 7.851702770073D-01, - $ 1.234223195584D-01 / - DATA (T(j,14),j=1,6) - $ / 0.1670263452397559527894216050589478D-01, - $ 0.1376663615296993115240758106286862D+00, - $ 0.5527209402223704445129158599195226D+00, - $ 0.7528054592119942363108765505527784D+00, - $ 0.9014635004999312167764818860483434D+00, - $ 0.9814976282327591629905429780488349D+00 / - DATA (T(j,15),j=1,6) - $ / 5.945454002988D-04, - $ 5.402203703739D-01, - $ 9.256923187369D-01, - $ 3.940277055740D-02, - $ 7.396031168627D-01, - $ 1.553935521769D-01 / - DATA (T(j,16),j=1,7) - $ / 4.521867205820D-02, - $ 9.369991395852D-01, - $ 5.169847287690D-01, - $ 1.662296171180D-01, - $ 8.362605039899D-01, - $ 9.885448198023D-01, - $ 6.915326150206D-01 / - DATA (T(j,17),j=1,9) - $ / 8.499071157004D-03, - $ 7.309241451287D-02, - $ 1.878129101389D-01, - $ 4.910765962311D-01, - $ 6.445470516095D-01, - $ 7.798280397298D-01, - $ 8.862606172978D-01, - $ 9.574242528006D-01, - $ 9.925701118262D-01 / - DATA (T(j,18),j=1,10) - $ / 9.948240702572D-01, - $ 9.698305546361D-01, - $ 9.178342725293D-01, - $ 8.378069504767D-01, - $ 7.325681115488D-01, - $ 6.078094018620D-01, - $ 4.714805969587D-01, - $ 2.045860732578D-01, - $ 9.766956607994D-02, - $ 2.564988139436D-02 / - DATA (T(j,19),j=1,12) - $ / 9.963140927997D-01, - $ 9.778900314101D-01, - $ 9.387482592540D-01, - $ 8.772246746062D-01, - $ 7.943585455913D-01, - $ 6.932173043199D-01, - $ 5.784863558578D-01, - $ 4.561664690726D-01, - $ 2.179572378274D-01, - $ 1.187585706869D-01, - $ 4.492456248653D-02, - $ 5.130054883064D-03 / - DATA (T(j,20),j=1,13) - $ / 9.972432661185D-01, - $ 9.832918591320D-01, - $ 9.531160121935D-01, - $ 9.048709833904D-01, - $ 8.387022528272D-01, - $ 7.562335791706D-01, - $ 6.602760541723D-01, - $ 5.546219829385D-01, - $ 4.438787406634D-01, - $ 2.288483219154D-01, - $ 1.367748697861D-01, - $ 6.379865467742D-02, - $ 1.646761018263D-02 / - DATA (T(j,21),j=1,15) - $ / 9.979143363622D-01, - $ 9.870821836647D-01, - $ 9.633179740561D-01, - $ 9.248083829058D-01, - $ 8.712377374379D-01, - $ 8.034039688176D-01, - $ 7.230000705325D-01, - $ 6.324652733202D-01, - $ 5.348679212522D-01, - $ 4.338074285872D-01, - $ 2.378818655932D-01, - $ 1.522209580433D-01, - $ 8.135995958492D-02, - $ 3.030214670670D-02, - $ 3.428730539433D-03 / - DATA (T(j,22),j=1,16) - $ / 9.983630237732D-01, - $ 9.897967765640D-01, - $ 9.707567294011D-01, - $ 9.395403165681D-01, - $ 8.956079044098D-01, - $ 8.392773092892D-01, - $ 7.715552422867D-01, - $ 6.940259701211D-01, - $ 6.087661259570D-01, - $ 5.182736014735D-01, - $ 4.254066807507D-01, - $ 2.454906841822D-01, - $ 1.655487699575D-01, - $ 9.735443800302D-02, - $ 4.479239363750D-02, - $ 1.145055801973D-02 / - DATA (T(j,23),j=1,18) - $ / 9.987088311582D-01, - $ 9.918097335390D-01, - $ 9.763133912218D-01, - $ 9.506598648348D-01, - $ 9.142055993122D-01, - $ 8.669840470267D-01, - $ 8.095706458671D-01, - $ 7.429956925500D-01, - $ 6.686799248593D-01, - $ 5.883818288042D-01, - $ 5.041522063181D-01, - $ 4.182948169149D-01, - $ 2.519844086135D-01, - $ 1.771329459727D-01, - $ 1.117955803473D-01, - $ 5.903799592608D-02, - $ 2.178402115775D-02, - $ 2.451992741952D-03 / - DATA (T(j,24),j=1,19) - $ / 9.989511574237D-01, - $ 9.933204314931D-01, - $ 9.805438375683D-01, - $ 9.592074206194D-01, - $ 9.286352335000D-01, - $ 8.886937286268D-01, - $ 8.396828658238D-01, - $ 7.822665416652D-01, - $ 7.174223164050D-01, - $ 6.464012407924D-01, - $ 5.706935220112D-01, - $ 4.919983454862D-01, - $ 4.121975439374D-01, - $ 2.575898262997D-01, - $ 1.872756753374D-01, - $ 1.247993889749D-01, - $ 7.261765804749D-02, - $ 3.312137636649D-02, - $ 8.417236823685D-03 / - DATA (T(j,25),j=1,21) - $ / 9.991466902796D-01, - $ 9.944855716680D-01, - $ 9.838234632028D-01, - $ 9.658860301760D-01, - $ 9.399993362096D-01, - $ 9.059324566313D-01, - $ 8.638072400724D-01, - $ 8.140411316291D-01, - $ 7.573067651943D-01, - $ 6.945004533758D-01, - $ 6.267156986940D-01, - $ 5.552199298894D-01, - $ 4.814338171375D-01, - $ 4.069131375459D-01, - $ 2.624764638322D-01, - $ 1.962187240256D-01, - $ 1.365132316146D-01, - $ 8.535636714473D-02, - $ 4.471687997947D-02, - $ 1.640096644131D-02, - $ 1.840045732112D-03 / - DATA (T(j,26),j=1,22) - $ / 9.992885189311D-01, - $ 9.953915828809D-01, - $ 9.864042520502D-01, - $ 9.711803952656D-01, - $ 9.490701367673D-01, - $ 9.197889831582D-01, - $ 8.833431744669D-01, - $ 8.399822331704D-01, - $ 7.901657878871D-01, - $ 7.345382177116D-01, - $ 6.739077428303D-01, - $ 6.092282380884D-01, - $ 5.415829837787D-01, - $ 4.721701147608D-01, - $ 4.022898149774D-01, - $ 2.667735478837D-01, - $ 2.041557967831D-01, - $ 1.470855543505D-01, - $ 9.720572111608D-02, - $ 5.615089573608D-02, - $ 2.546158767116D-02, - $ 6.445772776470D-03 / - DATA (T(j,27),j=1,24) - $ / 9.994073420632D-01, - $ 9.961123635856D-01, - $ 9.884641646671D-01, - $ 9.754318546307D-01, - $ 9.563979477620D-01, - $ 9.310509351946D-01, - $ 8.993221205576D-01, - $ 8.613454952223D-01, - $ 8.174299827256D-01, - $ 7.680385836004D-01, - $ 7.137714962065D-01, - $ 6.553516400609D-01, - $ 5.936117744635D-01, - $ 5.294828626297D-01, - $ 4.639836046032D-01, - $ 3.982111946111D-01, - $ 2.705812594860D-01, - $ 2.112428880825D-01, - $ 1.566537859453D-01, - $ 1.081813807457D-01, - $ 6.719449812399D-02, - $ 3.500727310883D-02, - $ 1.278754655613D-02, - $ 1.431532615062D-03 / - DATA (T(j,28),j=1,25) - $ / 9.994957296951D-01, - $ 9.966883326993D-01, - $ 9.901273792384D-01, - $ 9.788850620034D-01, - $ 9.623820738475D-01, - $ 9.402970090556D-01, - $ 9.125132210219D-01, - $ 8.790847449096D-01, - $ 8.402127700885D-01, - $ 7.962281729465D-01, - $ 7.475776139174D-01, - $ 6.948117962164D-01, - $ 6.385751144432D-01, - $ 5.795963018215D-01, - $ 5.186799213004D-01, - $ 4.566986870675D-01, - $ 3.945866619032D-01, - $ 2.739783714988D-01, - $ 2.176064094230D-01, - $ 1.653403045802D-01, - $ 1.183298694951D-01, - $ 7.773098966363D-02, - $ 4.466798054937D-02, - $ 2.017192474359D-02, - $ 5.093170320417D-03 / - DATA (T(j,29),j=1,27) - $ / 9.995719869698D-01, - $ 9.971576600497D-01, - $ 9.914856530125D-01, - $ 9.817192019176D-01, - $ 9.673171465902D-01, - $ 9.479584191551D-01, - $ 9.234964401467D-01, - $ 8.939297875880D-01, - $ 8.593820093211D-01, - $ 8.200867705184D-01, - $ 7.763761965513D-01, - $ 7.286711767696D-01, - $ 6.774729173835D-01, - $ 6.233553492065D-01, - $ 5.669581965619D-01, - $ 5.089806415522D-01, - $ 4.501755926475D-01, - $ 3.913445897309D-01, - $ 2.770276760350D-01, - $ 2.233495933818D-01, - $ 1.732520657435D-01, - $ 1.277108517503D-01, - $ 8.770980631329D-02, - $ 5.421499904934D-02, - $ 2.813244088150D-02, - $ 1.024671752643D-02, - $ 1.145352939215D-03 / - DATA (T(j,30),j=1,28) - $ / 9.989088743731D-01, - $ 9.962102993790D-01, - $ 9.917073393298D-01, - $ 9.837857998144D-01, - $ 9.713578655261D-01, - $ 9.542943302118D-01, - $ 9.325833410688D-01, - $ 9.062484628251D-01, - $ 8.753788404822D-01, - $ 8.401387270275D-01, - $ 8.007691896507D-01, - $ 7.575863866917D-01, - $ 7.109771117958D-01, - $ 6.613927586878D-01, - $ 6.093429313239D-01, - $ 5.553894658468D-01, - $ 5.001411954546D-01, - $ 4.442495352346D-01, - $ 3.884048318656D-01, - $ 2.797945214663D-01, - $ 2.285783449909D-01, - $ 1.805015075513D-01, - $ 1.364013229385D-01, - $ 9.712474739578D-02, - $ 6.350928432754D-02, - $ 3.635223834954D-02, - $ 1.636637023025D-02, - $ 4.124219647904D-03 / - DATA (T(j,31),j=1,30) - $ / 9.989389971209D-01, - $ 9.971766766769D-01, - $ 9.932210680541D-01, - $ 9.858774895456D-01, - $ 9.747806632069D-01, - $ 9.596648815557D-01, - $ 9.403911068227D-01, - $ 9.169172562840D-01, - $ 8.892819476318D-01, - $ 8.575967401872D-01, - $ 8.220412264133D-01, - $ 7.828591148688D-01, - $ 7.403541401852D-01, - $ 6.948854820542D-01, - $ 6.468629521677D-01, - $ 5.967423110144D-01, - $ 5.450209571873D-01, - $ 4.922340999168D-01, - $ 4.389514398161D-01, - $ 3.857743293940D-01, - $ 2.822860252999D-01, - $ 2.333147039100D-01, - $ 1.871234394479D-01, - $ 1.444334326043D-01, - $ 1.059750740154D-01, - $ 7.247445615933D-02, - $ 4.463176524570D-02, - $ 2.308962476585D-02, - $ 8.391804478010D-03, - $ 9.369553857840D-04 / - DATA V(1,4) - $ / 0.1666666666666666666666666666666667D+00 / - DATA V(1,6) - $ / 9.230769230769D-02 / - DATA V(1,7) - $ / 0.1204416503145642398318048555452501D+00 / - DATA V(1,8) - $ / 0.1764705882352941176470588235294118D+00 / - DATA V(1,10) - $ / 6.365787851418D-02 / - DATA V(1,11) - $ / 0.1052631578947368421052631578947368D+00 / - DATA (V(j,12),j=1,2) - $ / 2.241341590046D-01, - $ 1.099238120099D-01 / - DATA V(1,13) - $ / 2.000000000000D-01 / - DATA (V(j,14),j=1,2) - $ / 0.2200933352980389748216629900695196D+00, - $ 0.6502727546573595539690409835852654D-01 / - DATA (V(j,15),j=1,2) - $ / 3.596678808994D-02, - $ 1.235753913415D-01 / - DATA (V(j,16),j=1,2) - $ / 1.729411966868D-01, - $ 4.225960886354D-02 / - DATA (V(j,17),j=1,3) - $ / 2.341637248281D-01, - $ 1.324832577106D-01, - $ 2.886374289129D-02 / - DATA (V(j,18),j=1,3) - $ / 2.049596194512D-02, - $ 1.017279217943D-01, - $ 2.036494032906D-01 / - DATA (V(j,19),j=1,4) - $ / 1.506003684306D-02, - $ 7.900261587096D-02, - $ 1.719853162752D-01, - $ 2.402517778395D-01 / - DATA (V(j,20),j=1,4) - $ / 1.136778532904D-02, - $ 6.222580539453D-02, - $ 1.438013602306D-01, - $ 2.193546368679D-01 / - DATA (V(j,21),j=1,5) - $ / 8.792305136058D-03, - $ 4.971678820596D-02, - $ 1.201226934566D-01, - $ 1.951924693303D-01, - $ 2.434103199047D-01 / - DATA (V(j,22),j=1,5) - $ / 6.931793227193D-03, - $ 4.026427008452D-02, - $ 1.006819324273D-01, - $ 1.715283250278D-01, - $ 2.283217882342D-01 / - DATA (V(j,23),j=1,6) - $ / 5.562298027336D-03, - $ 3.301750717439D-02, - $ 8.484487674046D-02, - $ 1.499289480598D-01, - $ 2.096284259050D-01, - $ 2.452528151503D-01 / - DATA (V(j,24),j=1,6) - $ / 4.527512122481D-03, - $ 2.738571398249D-02, - $ 7.194952348015D-02, - $ 1.308804820581D-01, - $ 1.901173218958D-01, - $ 2.338875244150D-01 / - DATA (V(j,25),j=1,7) - $ / 3.735731627098D-03, - $ 2.295065371381D-02, - $ 6.141474850635D-02, - $ 1.143710170433D-01, - $ 1.712602015573D-01, - $ 2.191192968469D-01, - $ 2.464193318434D-01 / - DATA (V(j,26),j=1,7) - $ / 3.116273598316D-03, - $ 1.941497033326D-02, - $ 5.276331953232D-02, - $ 1.001818528622D-01, - $ 1.537591183728D-01, - $ 2.029938620347D-01, - $ 2.375671797837D-01 / - DATA (V(j,27),j=1,8) - $ / 2.627354807340D-03, - $ 1.656404962657D-02, - $ 4.561529461067D-02, - $ 8.802772716296D-02, - $ 1.378848650427D-01, - $ 1.867467953993D-01, - $ 2.256575483187D-01, - $ 2.472038245618D-01 / - DATA (V(j,28),j=1,8) - $ / 2.234379876148D-03, - $ 1.424164112360D-02, - $ 3.967132880296D-02, - $ 7.762064909155D-02, - $ 1.236763051633D-01, - $ 1.710839672061D-01, - $ 2.122104053470D-01, - $ 2.401218883665D-01 / - DATA (V(j,29),j=1,9) - $ / 1.916700390235D-03, - $ 1.233154590152D-02, - $ 3.469648744997D-02, - $ 6.869692636008D-02, - $ 1.110548585874D-01, - $ 1.563770127604D-01, - $ 1.982285434988D-01, - $ 2.303388051827D-01, - $ 2.477564007390D-01 / - DATA (V(j,30),j=1,9) - $ / 2.107454820561D-03, - $ 1.088942170828D-02, - $ 3.046535458878D-02, - $ 6.119972584598D-02, - $ 1.000546103726D-01, - $ 1.428810642988D-01, - $ 1.843759068265D-01, - $ 2.190027552378D-01, - $ 2.419625136213D-01 / - DATA (V(j,31),j=1,10) - $ / 1.472668018817D-03, - $ 9.580098341667D-03, - $ 2.697810682946D-02, - $ 5.452463307450D-02, - $ 9.015147652015D-02, - $ 1.304525252537D-01, - $ 1.709907279210D-01, - $ 2.069300631045D-01, - $ 2.337963076105D-01, - $ 2.481595158077D-01 / - DATA (S(i,1,9),i=1,2) - $ / 1.403553811713D-01, - $ 4.493328323270D-01 / - DATA (S(i,1,10),i=1,2) - $ / 4.990453161796D-01, - $ 1.446630744325D-01 / - DATA (S(i,1,11),i=1,2) - $ / 1.590417105384D-01, - $ 8.360360154825D-01 / - DATA (S(i,1,12),i=1,2) - $ / 2.272181808998D-01, - $ 4.864661535887D-01 / - DATA ((S(i,j,13),i=1,2),j=1,2) - $ / 3.233484542693D-01, - $ 1.153112011010D-01, - $ 2.314790158713D-01, - $ 5.244939240922D-01 / - DATA ((S(i,j,14),i=1,2),j=1,2) - $ / 2.510034751770D-01, - $ 8.000727494074D-01, - $ 1.233548532583D-01, - $ 4.127724083169D-01 / - DATA ((S(i,j,15),i=1,2),j=1,3) - $ / 2.899558825500D-01, - $ 7.934537856582D-01, - $ 9.684121455104D-02, - $ 8.280801506687D-01, - $ 1.833434647042D-01, - $ 9.074658265305D-01 / - DATA ((S(i,j,16),i=1,2),j=1,4) - $ / 2.054823696403D-01, - $ 8.689460322872D-01, - $ 5.905157048925D-01, - $ 7.999278543857D-01, - $ 5.550152361077D-01, - $ 7.717462626916D-01, - $ 9.371809858554D-01, - $ 3.344363145343D-01 / - DATA ((S(i,j,17),i=1,2),j=1,6) - $ / 5.610263808622D-01, - $ 3.518280927734D-01, - $ 4.742392842552D-01, - $ 2.634716655938D-01, - $ 5.984126497885D-01, - $ 1.816640840360D-01, - $ 3.791035407696D-01, - $ 1.720795225657D-01, - $ 2.778673190586D-01, - $ 8.213021581933D-02, - $ 5.033564271075D-01, - $ 8.999205842075D-02 / - DATA ((S(i,j,18),i=1,2),j=1,9) - $ / 6.944024393349D-02, - $ 2.355187894242D-01, - $ 2.269004109529D-01, - $ 4.102182474046D-01, - $ 8.025574607775D-02, - $ 6.214302417482D-01, - $ 1.467999527897D-01, - $ 3.245284345717D-01, - $ 1.571507769825D-01, - $ 5.224482189697D-01, - $ 2.365702993157D-01, - $ 6.017546634090D-01, - $ 7.714815866766D-02, - $ 4.346575516141D-01, - $ 3.062936666211D-01, - $ 4.908826589038D-01, - $ 3.822477379525D-01, - $ 5.648768149100D-01 / - DATA ((S(i,j,19),i=1,2),j=1,12) - $ / 5.974048614181D-02, - $ 2.029128752778D-01, - $ 1.375760408474D-01, - $ 4.602621942484D-01, - $ 3.391016526336D-01, - $ 5.030673999662D-01, - $ 1.271675191440D-01, - $ 2.817606422442D-01, - $ 2.693120740414D-01, - $ 4.331561291720D-01, - $ 1.419786452602D-01, - $ 6.256167358581D-01, - $ 6.709284600738D-02, - $ 3.798395216859D-01, - $ 7.057738183256D-02, - $ 5.517505421424D-01, - $ 2.783888477882D-01, - $ 6.029619156159D-01, - $ 1.979578938917D-01, - $ 3.589606329589D-01, - $ 2.087307061103D-01, - $ 5.348666438135D-01, - $ 4.055122137873D-01, - $ 5.674997546074D-01 / - DATA ((S(i,j,20),i=1,2),j=1,16) - $ / 9.827986018264D-01, - $ 1.771774022615D-01, - $ 9.624249230326D-01, - $ 2.475716463426D-01, - $ 9.402007994129D-01, - $ 3.354616289066D-01, - $ 9.320822040143D-01, - $ 3.173615246612D-01, - $ 9.043674199393D-01, - $ 4.090268427085D-01, - $ 8.912407560075D-01, - $ 3.854291150669D-01, - $ 8.676435628463D-01, - $ 4.932221184851D-01, - $ 8.581979986042D-01, - $ 4.785320675922D-01, - $ 8.396753624050D-01, - $ 4.507422593157D-01, - $ 8.165288564022D-01, - $ 5.632123020762D-01, - $ 8.015469370784D-01, - $ 5.434303569694D-01, - $ 7.773563069070D-01, - $ 5.123518486420D-01, - $ 7.661621213900D-01, - $ 6.394279634749D-01, - $ 7.553584143534D-01, - $ 6.269805509024D-01, - $ 7.344305757560D-01, - $ 6.031161693096D-01, - $ 7.043837184022D-01, - $ 5.693702498468D-01 / - DATA ((S(i,j,21),i=1,2),j=1,20) - $ / 5.707522908892D-01, - $ 4.387028039890D-01, - $ 5.196463388403D-01, - $ 3.858908414763D-01, - $ 4.646337531215D-01, - $ 3.301937372344D-01, - $ 4.063901697558D-01, - $ 2.725423573564D-01, - $ 3.456329466643D-01, - $ 2.139510237495D-01, - $ 2.831395121050D-01, - $ 1.555922309787D-01, - $ 2.197682022925D-01, - $ 9.892878979686D-02, - $ 1.564696098650D-01, - $ 4.598642910676D-02, - $ 6.027356673721D-01, - $ 3.376625140173D-01, - $ 5.496032320255D-01, - $ 2.822301309728D-01, - $ 4.921707755235D-01, - $ 2.248632342593D-01, - $ 4.309422998598D-01, - $ 1.666224723456D-01, - $ 3.664108182314D-01, - $ 1.086964901822D-01, - $ 2.990189057758D-01, - $ 5.251989784120D-02, - $ 6.268724013145D-01, - $ 2.297523657550D-01, - $ 5.707324144835D-01, - $ 1.723080607094D-01, - $ 5.096360901960D-01, - $ 1.140238465391D-01, - $ 4.438729938312D-01, - $ 5.611522095883D-02, - $ 6.419978471082D-01, - $ 1.164174423141D-01, - $ 5.817218061803D-01, - $ 5.797589531445D-02 / - DATA ((S(i,j,22),i=1,2),j=1,25) - $ / 1.394983311832D-01, - $ 4.097581162050D-02, - $ 1.967999180485D-01, - $ 8.851987391293D-02, - $ 2.546183732549D-01, - $ 1.397680182970D-01, - $ 3.121281074714D-01, - $ 1.929452542227D-01, - $ 3.685981078502D-01, - $ 2.467898337062D-01, - $ 4.233760321548D-01, - $ 3.003104124785D-01, - $ 4.758671236059D-01, - $ 3.526684328175D-01, - $ 5.255178579796D-01, - $ 4.031134861146D-01, - $ 5.718025633735D-01, - $ 4.509426448342D-01, - $ 2.686927772723D-01, - $ 4.711322502423D-02, - $ 3.306006819905D-01, - $ 9.784487303943D-02, - $ 3.904906850595D-01, - $ 1.505395810025D-01, - $ 4.479957951904D-01, - $ 2.039728156296D-01, - $ 5.027076848920D-01, - $ 2.571529941121D-01, - $ 5.542087392260D-01, - $ 3.092191375816D-01, - $ 6.020850887375D-01, - $ 3.593807506130D-01, - $ 4.019851409180D-01, - $ 5.063389934379D-02, - $ 4.635614567450D-01, - $ 1.032422269161D-01, - $ 5.215860931592D-01, - $ 1.566322094006D-01, - $ 5.758202499099D-01, - $ 2.098082827491D-01, - $ 6.259893683877D-01, - $ 2.618824114553D-01, - $ 5.313795124812D-01, - $ 5.263245019339D-02, - $ 5.893317955932D-01, - $ 1.061059730982D-01, - $ 6.426246321216D-01, - $ 1.594171564034D-01, - $ 6.511904367376D-01, - $ 5.354789536566D-02 / - DATA ((S(i,j,23),i=1,2),j=1,30) - $ / 1.253901572367D-01, - $ 3.681917226440D-02, - $ 1.775721510384D-01, - $ 7.982487607213D-02, - $ 2.305693358216D-01, - $ 1.264640966592D-01, - $ 2.836502845992D-01, - $ 1.751585683419D-01, - $ 3.361794746233D-01, - $ 2.247995907633D-01, - $ 3.875979172265D-01, - $ 2.745299257422D-01, - $ 4.374019316999D-01, - $ 3.236373482441D-01, - $ 4.851275843340D-01, - $ 3.714967859437D-01, - $ 5.303391803807D-01, - $ 4.175353646322D-01, - $ 5.726197380596D-01, - $ 4.612084406355D-01, - $ 2.431520732565D-01, - $ 4.258040133044D-02, - $ 3.002096800896D-01, - $ 8.869424306723D-02, - $ 3.558554457457D-01, - $ 1.368811706511D-01, - $ 4.097782537049D-01, - $ 1.860739985015D-01, - $ 4.616337666067D-01, - $ 2.354235077396D-01, - $ 5.110707008418D-01, - $ 2.842074921347D-01, - $ 5.577415286164D-01, - $ 3.317784414984D-01, - $ 6.013060431367D-01, - $ 3.775299002041D-01, - $ 3.661596767262D-01, - $ 4.599367887165D-02, - $ 4.237633153507D-01, - $ 9.404893773654D-02, - $ 4.786328454658D-01, - $ 1.431377109092D-01, - $ 5.305702076790D-01, - $ 1.924186388844D-01, - $ 5.793436224232D-01, - $ 2.411590944775D-01, - $ 6.247069017095D-01, - $ 2.886871491584D-01, - $ 4.874315552535D-01, - $ 4.804978774953D-02, - $ 5.427337322059D-01, - $ 9.716857199367D-02, - $ 5.943493747247D-01, - $ 1.465205839795D-01, - $ 6.421314033565D-01, - $ 1.953579449804D-01, - $ 6.020628374714D-01, - $ 4.916375015738D-02, - $ 6.529222529857D-01, - $ 9.861621540127D-02 / - DATA ((S(i,j,24),i=1,2),j=1,36) - $ / 1.135081039844D-01, - $ 3.331954884663D-02, - $ 1.612866626099D-01, - $ 7.247167465437D-02, - $ 2.100786550168D-01, - $ 1.151539110850D-01, - $ 2.592282009460D-01, - $ 1.599491097144D-01, - $ 3.081740561320D-01, - $ 2.058699956028D-01, - $ 3.564289781578D-01, - $ 2.521624953503D-01, - $ 4.035587288241D-01, - $ 2.982090785798D-01, - $ 4.491671196374D-01, - $ 3.434762087236D-01, - $ 4.928854782917D-01, - $ 3.874831357203D-01, - $ 5.343646791959D-01, - $ 4.297814821747D-01, - $ 5.732683216531D-01, - $ 4.699402260944D-01, - $ 2.214131583219D-01, - $ 3.873602040644D-02, - $ 2.741796504750D-01, - $ 8.089496256902D-02, - $ 3.259797439149D-01, - $ 1.251732177621D-01, - $ 3.765441148827D-01, - $ 1.706260286403D-01, - $ 4.255773574531D-01, - $ 2.165115147300D-01, - $ 4.727795117058D-01, - $ 2.622089812225D-01, - $ 5.178546895819D-01, - $ 3.071721431296D-01, - $ 5.605141192097D-01, - $ 3.508998998801D-01, - $ 6.004763319353D-01, - $ 3.929160876167D-01, - $ 3.352842634947D-01, - $ 4.202563457288D-02, - $ 3.891971629815D-01, - $ 8.614309758871D-02, - $ 4.409875565542D-01, - $ 1.314500879380D-01, - $ 4.904893058592D-01, - $ 1.772189657384D-01, - $ 5.375056138770D-01, - $ 2.228277110050D-01, - $ 5.818255708670D-01, - $ 2.677179935014D-01, - $ 6.232334858145D-01, - $ 3.113675035544D-01, - $ 4.489485354492D-01, - $ 4.409162378368D-02, - $ 5.015136875933D-01, - $ 8.939009917748D-02, - $ 5.511300550513D-01, - $ 1.351806029383D-01, - $ 5.976720409858D-01, - $ 1.808370355053D-01, - $ 6.409956378989D-01, - $ 2.257852192302D-01, - $ 5.581222330828D-01, - $ 4.532173421637D-02, - $ 6.074705984162D-01, - $ 9.117488031840D-02, - $ 6.532272537379D-01, - $ 1.369294213140D-01, - $ 6.594761494500D-01, - $ 4.589901487276D-02 / - DATA ((S(i,j,25),i=1,2),j=1,42) - $ / 1.033958573552D-01, - $ 3.034544009064D-02, - $ 1.473521412414D-01, - $ 6.618803044247D-02, - $ 1.924552158706D-01, - $ 1.054431128988D-01, - $ 2.381094362890D-01, - $ 1.468263551239D-01, - $ 2.838121707937D-01, - $ 1.894486108188D-01, - $ 3.291323133373D-01, - $ 2.326374238762D-01, - $ 3.736896978741D-01, - $ 2.758485808486D-01, - $ 4.171406040760D-01, - $ 3.186179331997D-01, - $ 4.591677985257D-01, - $ 3.605329796304D-01, - $ 4.994733831718D-01, - $ 4.012147253587D-01, - $ 5.377731830445D-01, - $ 4.403050025571D-01, - $ 5.737917830001D-01, - $ 4.774565904277D-01, - $ 2.027323586271D-01, - $ 3.544122504976D-02, - $ 2.516942375187D-01, - $ 7.418304388646D-02, - $ 3.000227995257D-01, - $ 1.150502745727D-01, - $ 3.474806691046D-01, - $ 1.571963371209D-01, - $ 3.938103180359D-01, - $ 1.999631877247D-01, - $ 4.387519590456D-01, - $ 2.428073457847D-01, - $ 4.820503960078D-01, - $ 2.852575132906D-01, - $ 5.234573778475D-01, - $ 3.268884208675D-01, - $ 5.627318647235D-01, - $ 3.673033321676D-01, - $ 5.996390607157D-01, - $ 4.061211551830D-01, - $ 3.084780753792D-01, - $ 3.860125523100D-02, - $ 3.589988275920D-01, - $ 7.928938987105D-02, - $ 4.078628415882D-01, - $ 1.212614643030D-01, - $ 4.549287258890D-01, - $ 1.638770827383D-01, - $ 5.000278512957D-01, - $ 2.065965798260D-01, - $ 5.429785044928D-01, - $ 2.489436378852D-01, - $ 5.835939850492D-01, - $ 2.904811368947D-01, - $ 6.216870353445D-01, - $ 3.307941957667D-01, - $ 4.151104662709D-01, - $ 4.064829146053D-02, - $ 4.649804275009D-01, - $ 8.258424547295D-02, - $ 5.124695757010D-01, - $ 1.251841962027D-01, - $ 5.574711100606D-01, - $ 1.679107505976D-01, - $ 5.998597333287D-01, - $ 2.102805057359D-01, - $ 6.395007148517D-01, - $ 2.518418087774D-01, - $ 5.188456224746D-01, - $ 4.194321676078D-02, - $ 5.664190707943D-01, - $ 8.457661551921D-02, - $ 6.110464353283D-01, - $ 1.273652932519D-01, - $ 6.526430302052D-01, - $ 1.698173239076D-01, - $ 6.167551880378D-01, - $ 4.266398851549D-02, - $ 6.607195418355D-01, - $ 8.551925814238D-02 / - DATA ((S(i,j,26),i=1,2),j=1,49) - $ / 9.469870086838D-02, - $ 2.778748387309D-02, - $ 1.353170300568D-01, - $ 6.076569878628D-02, - $ 1.771679481726D-01, - $ 9.703072762711D-02, - $ 2.197066664232D-01, - $ 1.354112458525D-01, - $ 2.624783557375D-01, - $ 1.750996479744D-01, - $ 3.050969521214D-01, - $ 2.154896907450D-01, - $ 3.472252637196D-01, - $ 2.560954625740D-01, - $ 3.885610219026D-01, - $ 2.965070050624D-01, - $ 4.288273776063D-01, - $ 3.363641488734D-01, - $ 4.677662471303D-01, - $ 3.753400029837D-01, - $ 5.051333589553D-01, - $ 4.131297522144D-01, - $ 5.406942145810D-01, - $ 4.494423776082D-01, - $ 5.742204122576D-01, - $ 4.839938958842D-01, - $ 1.865407027225D-01, - $ 3.259144851071D-02, - $ 2.321186453689D-01, - $ 6.835679505297D-02, - $ 2.773159142524D-01, - $ 1.062284864452D-01, - $ 3.219200192237D-01, - $ 1.454404409323D-01, - $ 3.657032593944D-01, - $ 1.854018282583D-01, - $ 4.084376778364D-01, - $ 2.256297412015D-01, - $ 4.499004945751D-01, - $ 2.657104425001D-01, - $ 4.898758141326D-01, - $ 3.052755487632D-01, - $ 5.281547442266D-01, - $ 3.439863920645D-01, - $ 5.645346989814D-01, - $ 3.815229456122D-01, - $ 5.988181252160D-01, - $ 4.175752420967D-01, - $ 2.850425424472D-01, - $ 3.562149509863D-02, - $ 3.324619433028D-01, - $ 7.330318886871D-02, - $ 3.785848333076D-01, - $ 1.123226296008D-01, - $ 4.232891028562D-01, - $ 1.521084193338D-01, - $ 4.664287050830D-01, - $ 1.921844459224D-01, - $ 5.078458493736D-01, - $ 2.321360989678D-01, - $ 5.473779816204D-01, - $ 2.715886486361D-01, - $ 5.848617133811D-01, - $ 3.101924707571D-01, - $ 6.201348281585D-01, - $ 3.476121052891D-01, - $ 3.852191185388D-01, - $ 3.763224880035D-02, - $ 4.325025061073D-01, - $ 7.659581935637D-02, - $ 4.778486229734D-01, - $ 1.163381306084D-01, - $ 5.211663693009D-01, - $ 1.563890598753D-01, - $ 5.623469504854D-01, - $ 1.963320810149D-01, - $ 6.012718188659D-01, - $ 2.357847407259D-01, - $ 6.378179206390D-01, - $ 2.743846121244D-01, - $ 4.836936460215D-01, - $ 3.895902610739D-02, - $ 5.293792562684D-01, - $ 7.871246819313D-02, - $ 5.726281253100D-01, - $ 1.187963808203D-01, - $ 6.133658776169D-01, - $ 1.587914708062D-01, - $ 6.515085491865D-01, - $ 1.983058575228D-01, - $ 5.778692716065D-01, - $ 3.977209689792D-02, - $ 6.207904288086D-01, - $ 7.990157592981D-02, - $ 6.608688171047D-01, - $ 1.199671308754D-01, - $ 6.656263089489D-01, - $ 4.015955957806D-02 / - DATA ((S(i,j,27),i=1,2),j=1,56) - $ / 8.715738780836D-02, 2.557175233368D-02, - $ 1.248383123134D-01, 5.604823383377D-02, - $ 1.638062693383D-01, 8.968568601901D-02, - $ 2.035586203373D-01, 1.254086651976D-01, - $ 2.436798975294D-01, 1.624780150162D-01, - $ 2.838207507774D-01, 2.003422342683D-01, - $ 3.236787502218D-01, 2.385628026255D-01, - $ 3.629849554841D-01, 2.767731148784D-01, - $ 4.014948081992D-01, 3.146542308245D-01, - $ 4.389818379260D-01, 3.519196415895D-01, - $ 4.752331143674D-01, 3.883050984024D-01, - $ 5.100457318374D-01, 4.235613423909D-01, - $ 5.432238388955D-01, 4.574484717196D-01, - $ 5.745758685072D-01, 4.897311639256D-01, - $ 1.723981437593D-01, 3.010630597881D-02, - $ 2.149553257845D-01, 6.326031554205D-02, - $ 2.573256081247D-01, 9.848566980259D-02, - $ 2.993163751238D-01, 1.350835952384D-01, - $ 3.407238005148D-01, 1.725184055442D-01, - $ 3.813454978483D-01, 2.103559279731D-01, - $ 4.209848104423D-01, 2.482278774555D-01, - $ 4.594519699996D-01, 2.858099509983D-01, - $ 4.965640166186D-01, 3.228075659915D-01, - $ 5.321441655572D-01, 3.589459907204D-01, - $ 5.660208438582D-01, 3.939630088864D-01, - $ 5.980264315964D-01, 4.276029922949D-01, - $ 2.644215852351D-01, 3.300939429073D-02, - $ 3.090113743443D-01, 6.803887650079D-02, - $ 3.525871079198D-01, 1.044326136207D-01, - $ 3.950418005354D-01, 1.416751597518D-01, - $ 4.362475663430D-01, 1.793408610505D-01, - $ 4.760661812146D-01, 2.170630750176D-01, - $ 5.143551042512D-01, 2.545145157816D-01, - $ 5.509709026936D-01, 2.913940101707D-01, - $ 5.857711030329D-01, 3.274169910911D-01, - $ 6.186149917404D-01, 3.623081329317D-01, - $ 3.586894569557D-01, 3.497354386450D-02, - $ 4.035266610019D-01, 7.129736739757D-02, - $ 4.467775312333D-01, 1.084758620193D-01, - $ 4.883638346609D-01, 1.460915689242D-01, - $ 5.281908348435D-01, 1.837790832370D-01, - $ 5.661542687149D-01, 2.212075390874D-01, - $ 6.021450102031D-01, 2.580682841161D-01, - $ 6.360520783610D-01, 2.940656362094D-01, - $ 4.521611065087D-01, 3.631055365867D-02, - $ 4.959365651561D-01, 7.348318468484D-02, - $ 5.376815804038D-01, 1.111087643813D-01, - $ 5.773314480244D-01, 1.488226085145D-01, - $ 6.148113245575D-01, 1.862892274135D-01, - $ 6.500407462842D-01, 2.231909701714D-01, - $ 5.425151448707D-01, 3.718201306119D-02, - $ 5.841860556908D-01, 7.483616335067D-02, - $ 6.234632186851D-01, 1.125990834266D-01, - $ 6.602934551849D-01, 1.501303813158D-01, - $ 6.278573968375D-01, 3.767559930246D-02, - $ 6.665611711265D-01, 7.548443301360D-02 / - DATA ((S(i,j,28),i=1,2),j=1,64) - $ / 8.056516651369D-02, 2.363454684003D-02, - $ 1.156476077139D-01, 5.191291632546D-02, - $ 1.520473382760D-01, 8.322715736995D-02, - $ 1.892986699746D-01, 1.165855667994D-01, - $ 2.270194446778D-01, 1.513077167410D-01, - $ 2.648908185093D-01, 1.868882025808D-01, - $ 3.026389259574D-01, 2.229277629776D-01, - $ 3.400220296151D-01, 2.590951840746D-01, - $ 3.768217953336D-01, 2.951047291751D-01, - $ 4.128372900922D-01, 3.307019714170D-01, - $ 4.478807131816D-01, 3.656544101088D-01, - $ 4.817742034089D-01, 3.997448951940D-01, - $ 5.143472814653D-01, 4.327667110812D-01, - $ 5.454346213906D-01, 4.645196123532D-01, - $ 5.748739313170D-01, 4.948063555703D-01, - $ 1.599598738286D-01, 2.792357590049D-02, - $ 1.998097412501D-01, 5.877141038139D-02, - $ 2.396228952566D-01, 9.164573914691D-02, - $ 2.792228341098D-01, 1.259049641963D-01, - $ 3.184251107547D-01, 1.610594823401D-01, - $ 3.570481164426D-01, 1.967151653461D-01, - $ 3.949164710492D-01, 2.325404606175D-01, - $ 4.318617293971D-01, 2.682461141151D-01, - $ 4.677221009932D-01, 3.035720116012D-01, - $ 5.023417939271D-01, 3.382781859197D-01, - $ 5.355701836636D-01, 3.721383065626D-01, - $ 5.672608451329D-01, 4.049346360466D-01, - $ 5.972704202540D-01, 4.364538098634D-01, - $ 2.461687022334D-01, 3.070423166833D-02, - $ 2.881774566287D-01, 6.338034669282D-02, - $ 3.293963604117D-01, 9.742862487068D-02, - $ 3.697303822241D-01, 1.323799532282D-01, - $ 4.090663023135D-01, 1.678497018129D-01, - $ 4.472819355412D-01, 2.035095105326D-01, - $ 4.842513377231D-01, 2.390692566672D-01, - $ 5.198477629963D-01, 2.742649818076D-01, - $ 5.539453011883D-01, 3.088503806580D-01, - $ 5.864196762401D-01, 3.425904245907D-01, - $ 6.171484466668D-01, 3.752562294789D-01, - $ 3.350337830566D-01, 3.261589934635D-02, - $ 3.775773224758D-01, 6.658438928082D-02, - $ 4.188155229849D-01, 1.014565797158D-01, - $ 4.586805892009D-01, 1.368573320844D-01, - $ 4.970895714224D-01, 1.724614851952D-01, - $ 5.339505133961D-01, 2.079779381416D-01, - $ 5.691665792531D-01, 2.431385788322D-01, - $ 6.026387682680D-01, 2.776901883050D-01, - $ 6.342676150163D-01, 3.113881356387D-01, - $ 4.237951119537D-01, 3.394877848664D-02, - $ 4.656918683235D-01, 6.880219556291D-02, - $ 5.058857069186D-01, 1.041946859722D-01, - $ 5.443204666714D-01, 1.398039738736D-01, - $ 5.809298813760D-01, 1.753373381196D-01, - $ 6.156416039447D-01, 2.105215793514D-01, - $ 6.483801351067D-01, 2.450953312157D-01, - $ 5.103616577252D-01, 3.485560643801D-02, - $ 5.506738792581D-01, 7.026308631512D-02, - $ 5.889573040995D-01, 1.059035061296D-01, - $ 6.251641589517D-01, 1.414823925236D-01, - $ 6.592414921570D-01, 1.767207908215D-01, - $ 5.930314017533D-01, 3.542189339562D-02, - $ 6.309812253390D-01, 7.109574040370D-02, - $ 6.666296011353D-01, 1.067259792283D-01, - $ 6.703715271050D-01, 3.569455268821D-02 / - DATA ((S(i,j,29),i=1,2),j=1,72) - $ / 7.476563943166D-02, 2.193168509461D-02, - $ 1.075341482001D-01, 4.826419281534D-02, - $ 1.416344885203D-01, 7.751191883576D-02, - $ 1.766325315389D-01, 1.087558139248D-01, - $ 2.121744174482D-01, 1.413661374253D-01, - $ 2.479669443408D-01, 1.748768214259D-01, - $ 2.837600452294D-01, 2.089216406612D-01, - $ 3.193344933194D-01, 2.431987685546D-01, - $ 3.544935442439D-01, 2.774497054378D-01, - $ 3.890571932288D-01, 3.114460356157D-01, - $ 4.228581214259D-01, 3.449806851913D-01, - $ 4.557387211304D-01, 3.778618641248D-01, - $ 4.875487950542D-01, 4.099086391699D-01, - $ 5.181436529963D-01, 4.409474925854D-01, - $ 5.473824095601D-01, 4.708094517711D-01, - $ 5.751263398976D-01, 4.993275140355D-01, - $ 1.489515746840D-01, 2.599381993267D-02, - $ 1.863656444352D-01, 5.479286532462D-02, - $ 2.238602880356D-01, 8.556763251425D-02, - $ 2.612723375728D-01, 1.177257802267D-01, - $ 2.984332990206D-01, 1.508168456193D-01, - $ 3.351786584663D-01, 1.844801892178D-01, - $ 3.713505522209D-01, 2.184145236088D-01, - $ 4.067981098955D-01, 2.523590641486D-01, - $ 4.413769993688D-01, 2.860812976901D-01, - $ 4.749487182516D-01, 3.193686757809D-01, - $ 5.073798105075D-01, 3.520226949548D-01, - $ 5.385410448879D-01, 3.838544395668D-01, - $ 5.683065353671D-01, 4.146810037641D-01, - $ 5.965527620664D-01, 4.443224094681D-01, - $ 2.299227700856D-01, 2.865757664058D-02, - $ 2.695752998553D-01, 5.923421684486D-02, - $ 3.086178716611D-01, 9.117817776058D-02, - $ 3.469649871659D-01, 1.240593814083D-01, - $ 3.845153566320D-01, 1.575272058259D-01, - $ 4.211600033403D-01, 1.912845163525D-01, - $ 4.567867834330D-01, 2.250710177858D-01, - $ 4.912829319232D-01, 2.586521303441D-01, - $ 5.245364793304D-01, 2.918112242865D-01, - $ 5.564369788916D-01, 3.243439239068D-01, - $ 5.868757697775D-01, 3.560536787835D-01, - $ 6.157458853520D-01, 3.867480821243D-01, - $ 3.138461110672D-01, 3.051374637507D-02, - $ 3.542495872051D-01, 6.237111233731D-02, - $ 3.935751553120D-01, 9.516223952402D-02, - $ 4.317634668111D-01, 1.285467341509D-01, - $ 4.687413842251D-01, 1.622318931656D-01, - $ 5.044274237060D-01, 1.959581153836D-01, - $ 5.387354077926D-01, 2.294888081184D-01, - $ 5.715768898356D-01, 2.626031152714D-01, - $ 6.028627200136D-01, 2.950904075287D-01, - $ 6.325039812653D-01, 3.267458451113D-01, - $ 3.981986708423D-01, 3.183291458750D-02, - $ 4.382791182133D-01, 6.459548193881D-02, - $ 4.769233057218D-01, 9.795757037088D-02, - $ 5.140823911194D-01, 1.316307235127D-01, - $ 5.496977833863D-01, 1.653556486359D-01, - $ 5.837047306513D-01, 1.988931724127D-01, - $ 6.160349566927D-01, 2.320174581439D-01, - $ 6.466185353209D-01, 2.645106562169D-01, - $ 4.810835158795D-01, 3.275917807744D-02, - $ 5.199925041324D-01, 6.612546183967D-02, - $ 5.571717692207D-01, 9.981498331474D-02, - $ 5.925789250836D-01, 1.335687001410D-01, - $ 6.261658523860D-01, 1.671444402896D-01, - $ 6.578811126669D-01, 2.003106382156D-01, - $ 5.609624612998D-01, 3.337500940231D-02, - $ 5.979959659985D-01, 6.708750335902D-02, - $ 6.330523711054D-01, 1.008792126425D-01, - $ 6.660960998104D-01, 1.345050343172D-01, - $ 6.365384364586D-01, 3.372799460737D-02, - $ 6.710994302899D-01, 6.755249309678D-02 / - DATA ((S(i,j,30),i=1,2),j=1,81) - $ / 7.345133894143D-02, 2.177844081486D-02, - $ 1.009859834045D-01, 4.590362185775D-02, - $ 1.324289619749D-01, 7.255063095691D-02, - $ 1.654272109607D-01, 1.017825451961D-01, - $ 1.990767186776D-01, 1.325652320980D-01, - $ 2.330125945523D-01, 1.642765374497D-01, - $ 2.670080611108D-01, 1.965360374338D-01, - $ 3.008753376294D-01, 2.290726770542D-01, - $ 3.344475596168D-01, 2.616645495371D-01, - $ 3.675709724071D-01, 2.941150728843D-01, - $ 4.001000887588D-01, 3.262440400919D-01, - $ 4.318956350436D-01, 3.578835350612D-01, - $ 4.628239056796D-01, 3.888751854044D-01, - $ 4.927563229774D-01, 4.190678003223D-01, - $ 5.215687136708D-01, 4.483151836884D-01, - $ 5.491402346985D-01, 4.764740676088D-01, - $ 5.753520160126D-01, 5.034021310998D-01, - $ 1.388326356418D-01, 2.435436510373D-02, - $ 1.743686900537D-01, 5.118897057343D-02, - $ 2.099737037950D-01, 8.014695048540D-02, - $ 2.454492590909D-01, 1.105117874156D-01, - $ 2.807219257864D-01, 1.417950531571D-01, - $ 3.156842271976D-01, 1.736604945720D-01, - $ 3.502090945178D-01, 2.058466324694D-01, - $ 3.841684849520D-01, 2.381284261196D-01, - $ 4.174372367906D-01, 2.703031270423D-01, - $ 4.498926465012D-01, 3.021845683091D-01, - $ 4.814146229808D-01, 3.335993355166D-01, - $ 5.118863625735D-01, 3.643833735518D-01, - $ 5.411947455119D-01, 3.943789541958D-01, - $ 5.692301500357D-01, 4.234320144404D-01, - $ 5.958857204140D-01, 4.513897947419D-01, - $ 2.156270284786D-01, 2.681225755444D-02, - $ 2.532385054910D-01, 5.557495747806D-02, - $ 2.902564617772D-01, 8.569368062950D-02, - $ 3.266979823143D-01, 1.167367450324D-01, - $ 3.625039627494D-01, 1.483861994003D-01, - $ 3.975838937549D-01, 1.803821503011D-01, - $ 4.318396099010D-01, 2.124962965666D-01, - $ 4.651706555733D-01, 2.445221837806D-01, - $ 4.974752649621D-01, 2.762701224323D-01, - $ 5.286517579628D-01, 3.075627775211D-01, - $ 5.586001195732D-01, 3.382311089827D-01, - $ 5.872229902021D-01, 3.681108834741D-01, - $ 6.144258616235D-01, 3.970397446873D-01, - $ 2.951676508065D-01, 2.867499538750D-02, - $ 3.335085485473D-01, 5.867879341904D-02, - $ 3.709561760636D-01, 8.961099205022D-02, - $ 4.074722861667D-01, 1.211627927626D-01, - $ 4.429923648839D-01, 1.530748903555D-01, - $ 4.774428052722D-01, 1.851176436722D-01, - $ 5.107446539536D-01, 2.170829107658D-01, - $ 5.428151370543D-01, 2.487786689026D-01, - $ 5.735699292557D-01, 2.800239952795D-01, - $ 6.029253794563D-01, 3.106445702878D-01, - $ 6.307998987073D-01, 3.404689500841D-01, - $ 3.752652273693D-01, 2.997145098184D-02, - $ 4.135383879344D-01, 6.086725898678D-02, - $ 4.506113885154D-01, 9.238849548436D-02, - $ 4.864401554606D-01, 1.242786603852D-01, - $ 5.209708076612D-01, 1.563086731483D-01, - $ 5.541422135830D-01, 1.882696509389D-01, - $ 5.858880915114D-01, 2.199672979126D-01, - $ 6.161399390603D-01, 2.512165482925D-01, - $ 6.448296482255D-01, 2.818368701872D-01, - $ 4.544796274918D-01, 3.088970405060D-02, - $ 4.919389072147D-01, 6.240947677637D-02, - $ 5.279313026985D-01, 9.430706144280D-02, - $ 5.624169925571D-01, 1.263547818770D-01, - $ 5.953484627093D-01, 1.583430788823D-01, - $ 6.266730715339D-01, 1.900748462556D-01, - $ 6.563363204279D-01, 2.213599519593D-01, - $ 5.314574716586D-01, 3.152508811515D-02, - $ 5.674614932298D-01, 6.343865291466D-02, - $ 6.017706004970D-01, 9.551503504224D-02, - $ 6.343471270264D-01, 1.275440099801D-01, - $ 6.651494599128D-01, 1.593252037672D-01, - $ 6.050184986006D-01, 3.192538338496D-02, - $ 6.390163550880D-01, 6.402824353962D-02, - $ 6.711199107088D-01, 9.609805077003D-02, - $ 6.741354429572D-01, 3.211853196273D-02 / - DATA ((S(i,j,31),i=1,2),j=1,90) - $ / 6.655644120217D-02, 1.936508874588D-02, - $ 9.446246161270D-02, 4.252442002116D-02, - $ 1.242651925453D-01, 6.806529315354D-02, - $ 1.553438064847D-01, 9.560957491205D-02, - $ 1.871137110543D-01, 1.245931657453D-01, - $ 2.192612628836D-01, 1.545385828779D-01, - $ 2.515682807207D-01, 1.851004249723D-01, - $ 2.838535866287D-01, 2.160182608272D-01, - $ 3.159578817529D-01, 2.470799012277D-01, - $ 3.477370882791D-01, 2.781014208986D-01, - $ 3.790576960891D-01, 3.089172523516D-01, - $ 4.097938317810D-01, 3.393750055472D-01, - $ 4.398256572860D-01, 3.693322470988D-01, - $ 4.690384114718D-01, 3.986541005610D-01, - $ 4.973216048301D-01, 4.272112491409D-01, - $ 5.245681526132D-01, 4.548781735310D-01, - $ 5.506733911804D-01, 4.815315355023D-01, - $ 5.755339829522D-01, 5.070486445802D-01, - $ 1.305472386056D-01, 2.284970375722D-02, - $ 1.637327908216D-01, 4.812254338288D-02, - $ 1.972734634150D-01, 7.531734457512D-02, - $ 2.308694653110D-01, 1.039043639882D-01, - $ 2.643899218338D-01, 1.334526587118D-01, - $ 2.977171599622D-01, 1.636414868936D-01, - $ 3.307293903032D-01, 1.942195406167D-01, - $ 3.633069198219D-01, 2.249752879944D-01, - $ 3.953346955923D-01, 2.557218821820D-01, - $ 4.267018394185D-01, 2.862897925213D-01, - $ 4.573009622572D-01, 3.165224536637D-01, - $ 4.870279559856D-01, 3.462730221636D-01, - $ 5.157819581450D-01, 3.754016870283D-01, - $ 5.434651666465D-01, 4.037733784994D-01, - $ 5.699823887765D-01, 4.312557784139D-01, - $ 5.952403350948D-01, 4.577175367122D-01, - $ 2.025152599210D-01, 2.520253617720D-02, - $ 2.381066653274D-01, 5.223254506119D-02, - $ 2.732823383652D-01, 8.060669688589D-02, - $ 3.080137692611D-01, 1.099335754081D-01, - $ 3.422405614588D-01, 1.399120955960D-01, - $ 3.758808773890D-01, 1.702977801652D-01, - $ 4.088458383439D-01, 2.008799256602D-01, - $ 4.410450550841D-01, 2.314703052181D-01, - $ 4.723879420561D-01, 2.618972111376D-01, - $ 5.027843561874D-01, 2.920013195600D-01, - $ 5.321453674452D-01, 3.216322555191D-01, - $ 5.603839113834D-01, 3.506456615934D-01, - $ 5.874150706875D-01, 3.789007181306D-01, - $ 6.131559381660D-01, 4.062580170573D-01, - $ 2.778497016395D-01, 2.696271276876D-02, - $ 3.143733562262D-01, 5.523469316960D-02, - $ 3.501485810262D-01, 8.445193201626D-02, - $ 3.851430322304D-01, 1.143263119336D-01, - $ 4.193013979470D-01, 1.446177898344D-01, - $ 4.525585960459D-01, 1.751165438438D-01, - $ 4.848447779623D-01, 2.056338306746D-01, - $ 5.160871208277D-01, 2.359965487229D-01, - $ 5.462112185697D-01, 2.660430223139D-01, - $ 5.751425068102D-01, 2.956193664498D-01, - $ 6.028073872854D-01, 3.245763905313D-01, - $ 6.291338275278D-01, 3.527670026207D-01, - $ 3.541797528439D-01, 2.823853479436D-02, - $ 3.908234972075D-01, 5.741296374713D-02, - $ 4.264408450108D-01, 8.724646633650D-02, - $ 4.609949666553D-01, 1.175034422916D-01, - $ 4.944389496536D-01, 1.479755652628D-01, - $ 5.267194884346D-01, 1.784740659484D-01, - $ 5.577787810221D-01, 2.088245700431D-01, - $ 5.875563763537D-01, 2.388628136571D-01, - $ 6.159910016391D-01, 2.684308928769D-01, - $ 6.430219602956D-01, 2.973740761960D-01, - $ 4.300647036214D-01, 2.916399920494D-02, - $ 4.661486308936D-01, 5.898803024756D-02, - $ 5.009658555287D-01, 8.924162698525D-02, - $ 5.344824270448D-01, 1.197185199637D-01, - $ 5.666575997416D-01, 1.502300756161D-01, - $ 5.974457471405D-01, 1.806004191914D-01, - $ 6.267984444117D-01, 2.106621764786D-01, - $ 6.546664713575D-01, 2.402526932672D-01, - $ 5.042711004437D-01, 2.982529203608D-02, - $ 5.392127456774D-01, 6.008728062340D-02, - $ 5.726819437669D-01, 9.058227674571D-02, - $ 6.046469254207D-01, 1.211219235803D-01, - $ 6.350716157435D-01, 1.515286404792D-01, - $ 6.639177679185D-01, 1.816314681256D-01, - $ 5.757276040972D-01, 3.026991752575D-02, - $ 6.090265823140D-01, 6.078402297871D-02, - $ 6.406735344388D-01, 9.135459984177D-02, - $ 6.706397927794D-01, 1.218024155967D-01, - $ 6.435019674427D-01, 3.052608357661D-02, - $ 6.747218676376D-01, 6.112185773983D-02 / - - Pi = ACOS(-1d0) - Pi4 = 4 * Pi - -c Determine if the number of points requested is valid, and, if the -c formula is simple enough, go ahead and put it in now... - - IF (N.eq.1) THEN - Pts(1,1) = 0D0 - Pts(2,1) = 0D0 - Pts(3,1) = 1D0 - Wts (1) = Pi4 - RETURN - ELSEIF (N.eq.4) THEN - CALL VRLoad(Pts,12,SQRT(1D0/3D0)) - CALL VRLoad(Wts,4,Pi) - Pts(1,2) = -Pts(1,2) - Pts(2,2) = -Pts(2,2) - Pts(1,3) = -Pts(1,3) - Pts(3,3) = -Pts(3,3) - Pts(2,4) = -Pts(2,4) - Pts(3,4) = -Pts(3,4) - RETURN - ELSEIF (N.eq.6) THEN - Leb = 1 - ELSEIF (N.eq.18) THEN - Leb = 2 - ELSEIF (N.eq.26) THEN - Leb = 3 - ELSEIF (N.eq.38) THEN - Leb = 4 - ELSEIF (N.eq.50) THEN - Leb = 5 - ELSEIF (N.eq.74) THEN - Leb = 6 - ELSEIF (N.eq.86) THEN - Leb = 7 - ELSEIF (N.eq.110) THEN - Leb = 8 - ELSEIF (N.eq.146) THEN - Leb = 9 - ELSEIF (N.eq.170) THEN - Leb = 10 - ELSEIF (N.eq.194) THEN - Leb = 11 - ELSEIF (N.eq.230) THEN - Leb = 12 - ELSEIF (N.eq.266) THEN - Leb = 13 - ELSEIF (N.eq.302) THEN - Leb = 14 - ELSEIF (N.eq.350) THEN - Leb = 15 - ELSEIF (N.eq.434) THEN - Leb = 16 - ELSEIF (N.eq.590) THEN - Leb = 17 - ELSEIF (N.eq.770) THEN - Leb = 18 - ELSEIF (N.eq.974) THEN - Leb = 19 - ELSEIF (N.eq.1202) THEN - Leb = 20 - ELSEIF (N.eq.1454) THEN - Leb = 21 - ELSEIF (N.eq.1730) THEN - Leb = 22 - ELSEIF (N.eq.2030) THEN - Leb = 23 - ELSEIF (N.eq.2354) THEN - Leb = 24 - ELSEIF (N.eq.2702) THEN - Leb = 25 - ELSEIF (N.eq.3074) THEN - Leb = 26 - ELSEIF (N.eq.3470) THEN - Leb = 27 - ELSEIF (N.eq.3890) THEN - Leb = 28 - ELSEIF (N.eq.4334) THEN - Leb = 29 - ELSEIF (N.eq.4802) THEN - Leb = 30 - ELSEIF (N.eq.5294) THEN - Leb = 31 - ELSE - write(*,*)'Valid Angular Grids are :' - write(*,*)'6, 18, 26, 38, 50, 74, 86, 110, 146, 170, 194, 230' - write(*,*)'266, 302, 434, 590, 770, 974, 1202, 1454, 1730' - write(*,*)'2030, 2354, 2702, 3074, 3470, 3890, 4334, 4802, 5294' - CALL EXIT - ENDIF - -c Construct the Lebedev octahedral sets from their defining -c parameters. See the references given above... - - iPt = 0 - -c First, the special sets... - -c 6-point set (A1)... - - IF (SetTyp(1,Leb).eq.1) THEN - CALL VRLoad(Pts(1,iPt+1),18,0D0) - CALL VRLoad(Wts(iPt+1),6,A(1,Leb)) - z = 1D0 - DO 100 i = 1,6 - Pts((i+1)/2,iPt+i) = z - z = -z - 100 CONTINUE - iPt = iPt + 6 - ENDIF - -c 12-point set (A2)... - - IF (SetTyp(2,Leb).eq.1) THEN - CALL VRLoad(Pts(1,iPt+1),36,0D0) - CALL VRLoad(Wts(iPt+1),12,A(2,Leb)) - z = SQRT(0.5D0) - DO 200 i = 1,2 - DO 210 j = i+1,3 - Pts(i,iPt+1) = z - Pts(j,iPt+1) = z - Pts(i,iPt+2) = z - Pts(j,iPt+2) = -z - Pts(i,iPt+3) = -z - Pts(j,iPt+3) = z - Pts(i,iPt+4) = -z - Pts(j,iPt+4) = -z - iPt = iPt + 4 - 210 CONTINUE - 200 CONTINUE - ENDIF - -c 8-point set (A3)... - - IF (SetTyp(3,Leb).eq.1) THEN - CALL VRLoad(Wts(iPt+1),8,A(3,Leb)) - z = SQRT(1D0/3D0) - DO 300 i1 = 0,1 - DO 310 i2 = 0,1 - DO 320 i3 = 0,1 - Pts(1,iPt+1) = (-1)**i1 * z - Pts(2,iPt+1) = (-1)**i2 * z - Pts(3,iPt+1) = (-1)**i3 * z - iPt = iPt + 1 - 320 CONTINUE - 310 CONTINUE - 300 CONTINUE - ENDIF - -c Next, the general sets... - -c 24-point sets (Bk)... - - DO 400 k = 1,SetTyp(4,Leb) - CALL VRLoad(Wts(iPt+1),24,B(k,Leb)) - mk = SQRT(ABS(T(k,Leb))) - lk = SQRT((1D0-mk**2)/2) - DO 410 j = 1,3 - DO 420 i1 = 0,1 - DO 430 i2 = 0,1 - DO 440 i3 = 0,1 - Pts(Pmt(1,j),iPt+1) = (-1)**i1 * mk - Pts(Pmt(2,j),iPt+1) = (-1)**i2 * lk - Pts(Pmt(3,j),iPt+1) = (-1)**i3 * lk - iPt = iPt + 1 - 440 CONTINUE - 430 CONTINUE - 420 CONTINUE - 410 CONTINUE - 400 CONTINUE - -c 24-point sets (Ck)... - - DO 500 k = 1,SetTyp(5,Leb) - CALL VRLoad(Wts(iPt+1),24,C(k,Leb)) - pk = SQRT(ABS((1D0+SQRT(1D0-4*V(k,Leb)))/2)) - qk = SQRT(1D0-pk**2) - DO 510 j = 1,6 - DO 520 i1 = 0,1 - DO 530 i2 = 0,1 - Pts(Pmt(1,j),iPt+1) = (-1)**i1 * pk - Pts(Pmt(2,j),iPt+1) = (-1)**i2 * qk - Pts(Pmt(3,j),iPt+1) = 0D0 - iPt = iPt + 1 - 530 CONTINUE - 520 CONTINUE - 510 CONTINUE - 500 CONTINUE - -c 48-point sets (Dk)... - - DO 600 k = 1,SetTyp(6,Leb) - CALL VRLoad(Wts(iPt+1),48,D(k,Leb)) - -c To find the base-points r,s,w, we must find the roots -c of a polynomial (See Ref. 2)... - - s1k = S(1,k,Leb) - s2k = S(2,k,Leb) - s3k = SQRT(1-s1k*s1k-s2k*s2k) - - DO j = 1,6 - do i1 = 0,1 - do i2 = 0,1 - do i3 = 0,1 - Pts(Pmt(1,j),iPt+1) = (-1)**i1*s1k - Pts(Pmt(2,j),iPt+1) = (-1)**i2*s3k - Pts(Pmt(3,j),iPt+1) = (-1)**i3*s2k - iPt = iPt + 1 - enddo - enddo - enddo - enddo - 600 CONTINUE - -c Scale the weights by 4*Pi and we're done... - - CALL VRScale(Wts,N,Pi4) - RETURN - END - -c----------------------------------------------------------------------- - - SUBROUTINE VRload(A,N,Value) - IMPLICIT REAL*8 (a-h,o-z) - REAL*8 A(N) - DO i = 1,N - A(i) = Value - END DO - RETURN - END - -c----------------------------------------------------------------------- - - SUBROUTINE VRscale(A,N,Scale) - IMPLICIT REAL*8 (a-h,o-z) - REAL*8 A(N) - DO i = 1, N - A(i) = Scale * A(i) - END DO - RETURN - END diff --git a/src/BasCor/ec_srlda.f90 b/src/BasCor/ec_srlda.f90 deleted file mode 100644 index 96ffd03..0000000 --- a/src/BasCor/ec_srlda.f90 +++ /dev/null @@ -1,52 +0,0 @@ -subroutine ec_srlda(nGrid,weight,rho,mu) - -! Compute sr-lda ec - - implicit none - include 'parameters.h' - -! Input variables - - integer,intent(in) :: nGrid - double precision,intent(in) :: weight(nGrid) - double precision,intent(in) :: rho(nGrid) - double precision,intent(in) :: mu(nGrid) - -! Local variables - - integer :: iG - double precision :: r,ra,rb - double precision :: rs - double precision :: ec_lda,ecmd_lda - double precision :: ec,ecmd,vcup,vcdw - -! Initialization - - ec_lda = 0d0 - ecmd_lda = 0d0 - - do iG=1,ngrid - - r = max(0d0,rho(iG)) - ra = 0.5d0*r - rb = 0.5d0*r - - if(r > threshold) then - - rs = (4d0*pi*r/3d0)**(-1d0/3d0) - - call lsdsr(rs,0d0,mu(iG),ec,vcup,vcdw) - call ESRC_MD_LDAERF(mu(iG),ra,rb,.true.,ecmd) - ec_lda = ec_lda + weight(iG)*ec*r - ecmd_lda = ecmd_lda + weight(iG)*ecmd*r - - end if - - end do - - write(*,*) - write(*,'(A32,1X,F16.10)') 'Ec(sr-LDA) = ',ec_lda - write(*,'(A32,1X,F16.10)') 'Ecmd(sr-LDA) = ',ec_lda + ecmd_lda - write(*,*) - -end subroutine ec_srlda diff --git a/src/BasCor/ecmd_lda.f90 b/src/BasCor/ecmd_lda.f90 deleted file mode 100644 index a7fa705..0000000 --- a/src/BasCor/ecmd_lda.f90 +++ /dev/null @@ -1,200 +0,0 @@ -!**************************************************************************** - subroutine ESRC_MD_LDAERF (mu,rho_a,rho_b,dospin,e) -!***************************************************************************** -! Short-range spin-dependent LDA correlation functional with multideterminant reference -! for OEP calculations from Section V of -! Paziani, Moroni, Gori-Giorgi and Bachelet, PRB 73, 155111 (2006) -! -! Input: rhot : total density -! rhos : spin density -! mu : Interation parameter -! dospin : use spin density -! -! Ouput: e : energy -! -! Created: 26-08-11, J. Toulouse -!***************************************************************************** - implicit none - - double precision, intent(in) :: rho_a,rho_b,mu - logical, intent(in) :: dospin - double precision, intent(out):: e - - double precision :: e1 - double precision :: rhoa,rhob - double precision :: rhot, rhos - rhoa=max(rho_a,1.0d-15) - rhob=max(rho_b,1.0d-15) - rhot = rhoa + rhob - rhos = rhoa - rhob - - call ec_only_lda_sr(mu,rho_a,rho_b,e1) - if(isnan(e1))then - print*,'e1 is NaN' - print*,mu,rho_a,rho_b - stop - endif - e1 = 0d0 - call DELTA_LRSR_LDAERF (rhot,rhos,mu,dospin,e) - if(isnan(e))then - print*,'e is NaN' - print*,mu,rhot,rhos - stop - endif - e = e1 + e - - end - -!**************************************************************************** - subroutine DELTA_LRSR_LDAERF (rhot,rhos,mu,dospin,e) -!***************************************************************************** -! LDA approximation to term Delta_(LR-SR) from Eq. 42 of -! Paziani, Moroni, Gori-Giorgi and Bachelet, PRB 73, 155111 (2006) -! -! Input: rhot : total density -! rhos : spin density -! mu : Interation parameter -! dospin : use spin density -! -! Ouput: e : energy -! -! Warning: not tested for z != 0 -! -! Created: 26-08-11, J. Toulouse -!***************************************************************************** - implicit none - - double precision rhot, rhos, mu - logical dospin - double precision e - - double precision f13, f83, pi, rsfac, alpha2 - double precision rs, rs2, rs3 - - double precision rhoa, rhob, z, z2, onepz, onemz, zp, zm, phi8 - double precision g0s,g0f - double precision bd2, bd3 - double precision c45, c4, c5 - double precision bc2, bc4, bc3t, bc5t, d0 - double precision delta2,delta3,delta4,delta5,delta6 - double precision delta - - parameter(f13 = 0.333333333333333d0) - parameter(f83 = 2.6666666666666665d0) - parameter(pi = 3.141592653589793d0) - parameter(rsfac = 0.620350490899400d0) - parameter(alpha2 = 0.2715053589826032d0) - - rs = rsfac/(rhot**f13) - rs2 = rs*rs - rs3 = rs2*rs - -! Spin-unpolarized case - if (.not.dospin) then - z = 0.d0 - -! Spin-polarized case - else - rhoa=max((rhot+rhos)*.5d0,1.0d-15) - rhob=max((rhot-rhos)*.5d0,1.0d-15) - z=min((rhoa-rhob)/(rhoa+rhob),0.9999999999d0) - endif - - z2=z*z - - bd2=dexp(-0.547d0*rs)*(-0.388d0*rs+0.676*rs2)/rs2 - bd3=dexp(-0.31d0*rs)*(-4.95d0*rs+rs2)/rs3 - - onepz=1.d0+z - onemz=1.d0-z - phi8=0.5d0*(onepz**f83+onemz**f83) - - zp=onepz/2.d0 - zm=onemz/2.d0 - c45=(zp**2)*g0s(rs*zp**(-f13))+(zm**2)*g0s(rs*zm**(-f13)) - c4=c45+(1.d0-z2)*bd2-phi8/(5.d0*alpha2*rs2) - c5=c45+(1.d0-z2)*bd3 - - bc2=-3.d0*(1-z2)*(g0f(rs)-0.5d0)/(8.d0*rs3) - bc4=-9.d0*c4/(64.d0*rs3) - bc3t=-(1-z2)*g0f(rs)*(2.d0*dsqrt(2.d0)-1)/(2.d0*dsqrt(pi)*rs3) - bc5t = -3.d0*c5*(3.d0-dsqrt(2.d0))/(20.d0*dsqrt(2.d0*pi)*rs3) - - d0=(0.70605d0+0.12927d0*z2)*rs - delta2=0.073867d0*(rs**(1.5d0)) - delta3=4*(d0**6)*bc3t+(d0**8)*bc5t; - delta4=4*(d0**6)*bc2+(d0**8)*bc4; - delta5=(d0**8)*bc3t; - delta6=(d0**8)*bc2; - delta=(delta2*(mu**2)+delta3*(mu**3)+delta4*(mu**4)+delta5*(mu**5)+delta6*(mu**6))/((1+(d0**2)*(mu**2))**4) - - -! multiply by rhot to get energy density -! e=delta*rhot - e=delta - - end - -!***************************************************************************** - double precision function g0s(rs) -!***************************************************************************** -! g"(0,rs,z=1) from Eq. 32 of -! Paziani, Moroni, Gori-Giorgi and Bachelet, PRB 73, 155111 (2006) -! -! Created: 26-08-11, J. Toulouse -!***************************************************************************** - implicit none - double precision rs - double precision rs2, f53, alpha2 - parameter(f53 = 1.6666666666666667d0) - parameter(alpha2 = 0.2715053589826032d0) - rs2=rs*rs - g0s=(2.d0**f53)*(1.d0-0.02267d0*rs)/((5.d0*alpha2*rs2)*(1.d0+0.4319d0*rs+0.04d0*rs2)) - end - - double precision function g0f(x) -!cc on-top pair-distribution function -!cc Gori-Giorgi and Perdew, PRB 64, 155102 (2001) -!cc x -> rs - implicit none - double precision C0f,D0f,E0f,F0f,x - C0f = 0.0819306d0 - D0f = 0.752411d0 - E0f = -0.0127713d0 - F0f = 0.00185898d0 - g0f=(1.d0-(0.7317d0-D0f)*x+C0f*x**2+E0f*x**3+ & - F0f*x**4)*exp(-abs(D0f)*x)/2.d0 - return - end - -subroutine ec_only_lda_sr(mu,rho_a,rho_b,ec) - implicit none - include 'parameters.h' - - double precision, intent(out) :: ec - double precision, intent(in) :: mu,rho_a,rho_b - -! Double precision numbers - - double precision :: rsfac,rho,rs,rhoa,rhob,z - double precision :: eccoul, ecd, ecz, ecdd, eczd - double precision :: eclr - rsfac = (3.0d0/(4.0d0*pi))**(1d0/3d0) - - ec = 0.d0 -! Test on density - rho = rho_a + rho_b - if (dabs(rho).ge.1.d-12) then - - rs=rsfac/(rho**(1d0/3d0)) - rhoa=max(rho_a,1.0d-15) - rhob=max(rho_b,1.0d-15) - z=(rhoa-rhob)/(rhoa+rhob) - - call ecPW(rs,z,eccoul,ecd,ecz,ecdd,eczd) - call ecorrlr(rs,z,mu,eclr) - ec=(eccoul-eclr)*rho - - endif - -end diff --git a/src/BasCor/f_grid.f90 b/src/BasCor/f_grid.f90 deleted file mode 100644 index 63bd3f8..0000000 --- a/src/BasCor/f_grid.f90 +++ /dev/null @@ -1,44 +0,0 @@ -subroutine f_grid(nBas,nO,nGrid,MO,ERI,f) - -! Compute f - - implicit none - include 'parameters.h' - -! Input variables - - integer,intent(in) :: nBas - integer,intent(in) :: nO - integer,intent(in) :: nGrid - double precision,intent(in) :: MO(nBas,nGrid) - double precision,intent(in) :: ERI(nBas,nBas,nBas,nBas) - -! Local variables - - integer :: p,q - integer :: i,j - integer :: iG - -! Output variables - - double precision,intent(out) :: f(nGrid) - -! Initialization - - f(:) = 0d0 - - do p=1,nBas - do q=1,nBas - do i=1,nO - do j=1,nO - do iG=1,ngrid - - f(iG) = f(iG) + MO(p,iG)*MO(q,iG)*ERI(p,q,i,j)*MO(i,iG)*MO(j,iG) - - end do - end do - end do - end do - end do - -end subroutine f_grid diff --git a/src/BasCor/fc_srlda.f90 b/src/BasCor/fc_srlda.f90 deleted file mode 100644 index 4af54ae..0000000 --- a/src/BasCor/fc_srlda.f90 +++ /dev/null @@ -1,88 +0,0 @@ -subroutine fc_srlda(nBas,nGrid,weight,MO,rho,mu,eG0W0) - -! Compute sr-lda ec - - implicit none - include 'parameters.h' - -! Input variables - - integer,intent(in) :: nBas - integer,intent(in) :: nGrid - double precision,intent(in) :: weight(nGrid) - double precision,intent(in) :: MO(nBas,nGrid) - double precision,intent(in) :: rho(nGrid) - double precision,intent(in) :: mu(nGrid) - double precision,intent(in) :: eG0W0(nBas) - -! Local variables - - integer :: iG,p - double precision :: r,ra,rb,rap,ram - double precision :: rs,rsp,rsm - double precision :: ec,ecp,ecm,vcup,vcdw - double precision,parameter :: delta = 1d-6 - double precision,allocatable :: de(:) - -! Memory allocation - - allocate(de(nBas)) - -! Initialization - - de(:) = 0d0 - - do iG=1,ngrid - - r = max(0d0,rho(iG)) - ra = 0.5d0*r - rb = 0.5d0*r - - if(r > threshold) then - - rs = (4d0*pi*r/3d0)**(-1d0/3d0) - -! call lsdsr(rs,0d0,mu(iG),ec,vcup,vcdw) - if(abs(ra) > delta) then - - rap = ra + delta - ram = ra - delta - - rsp = (4d0*pi*rap/3d0)**(-1d0/3d0) - rsm = (4d0*pi*ram/3d0)**(-1d0/3d0) - -! call lsdsr(rsp,0d0,mu(iG),ecp,vcup,vcdw) -! call lsdsr(rsm,0d0,mu(iG),ecm,vcup,vcdw) - call lsdsr(rs,0d0,mu(iG),ec,vcup,vcdw) - - -! call ESRC_MD_LDAERF(mu(iG),rap,rb,.true.,ecp) -! call ESRC_MD_LDAERF(mu(iG),ram,rb,.true.,ecm) - -! vcup = (ecp - ecm)/(2d0*delta) - - else - - vcup = 0d0 - - end if - - do p=1,nBas - - de(p)= de(p) + weight(iG)*vcup*MO(p,iG)**2 - - end do - - end if - - end do - - print*, 'Eigenvalues correction from srDFT (in eV)' - call matout(nBas,1,de(:)*HaToeV) - - print*, 'Corrected G0W0 eigenvalues (in eV)' - call matout(nBas,1,(eG0W0(:) + de(:))*HaToeV) - - - -end subroutine fc_srlda diff --git a/src/BasCor/mu_grid.f90 b/src/BasCor/mu_grid.f90 deleted file mode 100644 index b86425e..0000000 --- a/src/BasCor/mu_grid.f90 +++ /dev/null @@ -1,46 +0,0 @@ -subroutine mu_grid(nGrid,rho,f,mu) - -! Compute mu - - implicit none - include 'parameters.h' - -! Input variables - - integer,intent(in) :: nGrid - double precision,intent(in) :: rho(nGrid) - double precision,intent(in) :: f(nGrid) - -! Local variables - - integer :: iG - double precision,parameter :: thres = 1d-10 - double precision :: n2 - -! Output variables - - double precision,intent(out) :: mu(nGrid) - -! Initialization - - mu(:) = 0d0 - - do iG=1,ngrid - - n2 = 0.25d0*rho(iG)**2 - - if(abs(n2) > thres) then - - mu(iG) = f(iG)/n2 - - else - - mu(iG) = 1d0/thres - - end if - - end do - - mu(:) = 0.5d0*sqrt(pi)*mu(:) - -end subroutine mu_grid diff --git a/src/BasCor/quadrature_grid.f90 b/src/BasCor/quadrature_grid.f90 deleted file mode 100644 index 30a7152..0000000 --- a/src/BasCor/quadrature_grid.f90 +++ /dev/null @@ -1,77 +0,0 @@ -subroutine quadrature_grid(nRad,nAng,nGrid,root,weight) - -! Build roots and weights of quadrature grid - - implicit none - include 'parameters.h' - -! Input variables - - integer,intent(in) :: nRad,nAng,nGrid - -! Local variables - - integer :: i,j,k - double precision :: scale - double precision,allocatable :: Radius(:) - double precision,allocatable :: RadWeight(:) - double precision,allocatable :: XYZ(:,:) - double precision,allocatable :: XYZWeight(:) - -! Output variables - - double precision,intent(out) :: root(3,nGrid) - double precision,intent(out) :: weight(nGrid) - -! Memory allocation - - allocate(Radius(nRad),RadWeight(nRad),XYZ(3,nAng),XYZWeight(nAng)) - -! Find the radial grid - - scale = 1d0 - call EulMac(Radius,RadWeight,nRad,scale) - - write(*,20) - write(*,30) - write(*,20) - do i = 1,nRad - write(*,40) i,Radius(i),RadWeight(i) - end do - write(*,20) - write(*,*) - -! Find the angular grid - - call Lebdev(XYZ,XYZWeight,nAng) - - write(*,20) - write(*,50) - write(*,20) - do j = 1,nAng - write(*,60) j,(XYZ(k,j),k=1,3), XYZWeight(j) - end do - write(*,20) - -! Form the roots and weights - - k = 0 - do i=1,nRad - do j=1,nAng - k = k + 1 - root(:,k) = Radius(i)*XYZ(:,j) - weight(k) = RadWeight(i)*XYZWeight(j) - enddo - enddo - -! Compute values of the basis functions (and the its gradient if required) at each grid point - -20 format(T2,58('-')) -30 format(T20,'Radial Quadrature',/, & - T6,'I',T26,'Radius',T50,'Weight') -40 format(T3,I4,T18,F17.10,T35,F25.10) -50 format(T20,'Angular Quadrature',/, & - T6,'I',T19,'X',T29,'Y',T39,'Z',T54,'Weight') -60 format(T3,I4,T13,3F10.5,T50,F10.5) - -end subroutine quadrature_grid diff --git a/src/BasCor/read_F12_integrals.f90 b/src/BasCor/read_F12_integrals.f90 deleted file mode 100644 index 93fe2e5..0000000 --- a/src/BasCor/read_F12_integrals.f90 +++ /dev/null @@ -1,169 +0,0 @@ -subroutine read_F12_integrals(nBas,S,C,F,Y,FC) - -! Read one- and two-electron integrals from files - - implicit none - -! Input variables - - integer,intent(in) :: nBas - double precision,intent(in) :: S(nBas,nBas) - -! Local variables - - logical :: debug - integer :: mu,nu,la,si,ka,ta - double precision :: ERI,F12,Yuk,F13C12,ExpS - -! Output variables - - double precision,intent(out) :: C(nBas,nBas,nBas,nBas) - double precision,intent(out) :: F(nBas,nBas,nBas,nBas) - double precision,intent(out) :: Y(nBas,nBas,nBas,nBas) - double precision,intent(out) :: FC(nBas,nBas,nBas,nBas,nBas,nBas) - - debug = .false. - -! Open file with integrals - - open(unit=21,file='int/ERI.dat') - open(unit=22,file='int/F12.dat') - open(unit=23,file='int/Yuk.dat') - open(unit=31,file='int/3eInt_Type1.dat') - -! Read 1/r12 integrals - - C = 0d0 - do - read(21,*,end=21) mu,nu,la,si,ERI -! <12|34> - C(mu,nu,la,si) = ERI -! <32|14> - C(la,nu,mu,si) = ERI -! <14|32> - C(mu,si,la,nu) = ERI -! <34|12> - C(la,si,mu,nu) = ERI -! <41|23> - C(si,mu,nu,la) = ERI -! <23|41> - C(nu,la,si,mu) = ERI -! <21|43> - C(nu,mu,si,la) = ERI -! <43|21> - C(si,la,nu,mu) = ERI - enddo - 21 close(unit=21) - -! Read f12 integrals - - F = 0d0 - do - read(22,*,end=22) mu,nu,la,si,F12 -! <12|34> - F(mu,nu,la,si) = F12 -! <32|14> - F(la,nu,mu,si) = F12 -! <14|32> - F(mu,si,la,nu) = F12 -! <34|12> - F(la,si,mu,nu) = F12 -! <41|23> - F(si,mu,nu,la) = F12 -! <23|41> - F(nu,la,si,mu) = F12 -! <21|43> - F(nu,mu,si,la) = F12 -! <43|21> - F(si,la,nu,mu) = F12 - enddo - 22 close(unit=22) - -! Read f12/r12 integrals - - Y = 0d0 - do - read(23,*,end=23) mu,nu,la,si,Yuk -! <12|34> - Y(mu,nu,la,si) = Yuk -! <32|14> - Y(la,nu,mu,si) = Yuk -! <14|32> - Y(mu,si,la,nu) = Yuk -! <34|12> - Y(la,si,mu,nu) = Yuk -! <41|23> - Y(si,mu,nu,la) = Yuk -! <23|41> - Y(nu,la,si,mu) = Yuk -! <21|43> - Y(nu,mu,si,la) = Yuk -! <43|21> - Y(si,la,nu,mu) = Yuk - enddo - 23 close(unit=23) - -! Read f13/r12 integrals - - FC = 0d0 - do - read(31,*,end=31) mu,nu,la,si,ka,ta,F13C12 - FC(mu,nu,la,si,ka,ta) = F13C12 - enddo - 31 close(unit=31) - -! Print results - - if(debug) then - - write(*,'(A28)') '----------------------' - write(*,'(A28)') 'Electron repulsion integrals' - write(*,'(A28)') '----------------------' - do la=1,nBas - do si=1,nBas - call matout(nBas,nBas,C(1,1,la,si)) - enddo - enddo - write(*,*) - - write(*,'(A28)') '----------------------' - write(*,'(A28)') 'F12 integrals' - write(*,'(A28)') '----------------------' - do la=1,nBas - do si=1,nBas - call matout(nBas,nBas,F(1,1,la,si)) - enddo - enddo - write(*,*) - - write(*,'(A28)') '----------------------' - write(*,'(A28)') 'Yukawa integrals' - write(*,'(A28)') '----------------------' - do la=1,nBas - do si=1,nBas - call matout(nBas,nBas,Y(1,1,la,si)) - enddo - enddo - write(*,*) - - endif - -! Read exponent of Slater geminal - open(unit=4,file='input/geminal') - read(4,*) ExpS - close(unit=4) - -! Transform two-electron integrals - -! do mu=1,nBas -! do nu=1,nBas -! do la=1,nBas -! do si=1,nBas -! F(mu,nu,la,si) = (S(mu,la)*S(nu,si) - F(mu,nu,la,si))/ExpS -! Y(mu,nu,la,si) = (C(mu,nu,la,si) - Y(mu,nu,la,si))/ExpS -! enddo -! enddo -! enddo -! enddo - -end subroutine read_F12_integrals diff --git a/src/BasCor/read_grid.f90 b/src/BasCor/read_grid.f90 deleted file mode 100644 index 5cf4391..0000000 --- a/src/BasCor/read_grid.f90 +++ /dev/null @@ -1,47 +0,0 @@ -subroutine read_grid(SGn,nRad,nAng,nGrid) - -! Read grid type - - implicit none - -! Input variables - - integer,intent(in) :: SGn - -! Output variables - - integer,intent(out) :: nRad - integer,intent(out) :: nAng - integer,intent(out) :: nGrid - - write(*,*)'----------------------------------------------------------' - write(*,'(A22,I1)')' Quadrature grid: SG-',SGn - write(*,*)'----------------------------------------------------------' - - select case (SGn) - - case(0) - nRad = 23 - nAng = 170 - - case(1) - nRad = 50 - nAng = 194 - - case(2) - nRad = 75 - nAng = 302 - - case(3) - nRad = 99 - nAng = 590 - - case default - call print_warning('!!! Quadrature grid not available !!!') - stop - - end select - - nGrid = nRad*nAng - -end subroutine read_grid diff --git a/src/IntPak.tgz b/src/IntPak.tgz deleted file mode 100644 index 6f1cae7..0000000 Binary files a/src/IntPak.tgz and /dev/null differ diff --git a/src/MC/AO_values.f90 b/src/MC/AO_values.f90 deleted file mode 100644 index 0050f26..0000000 --- a/src/MC/AO_values.f90 +++ /dev/null @@ -1,108 +0,0 @@ -subroutine AO_values(doDrift,nBas,nShell,nWalk,CenterShell,TotAngMomShell,KShell,DShell,ExpShell,r,AO,dAO) - -! Compute values of the AOs and their derivatives (if required) - - implicit none - include 'parameters.h' - -! Input variables - - logical,intent(in) :: doDrift - integer,intent(in) :: nBas,nShell,nWalk - double precision,intent(in) :: CenterShell(maxShell,3) - integer,intent(in) :: TotAngMomShell(maxShell),KShell(maxShell) - double precision,intent(in) :: DShell(maxShell,maxK),ExpShell(maxShell,maxK) - double precision,intent(in) :: r(nWalk,2,3) - -! Local variables - - integer :: atot,nShellFunction,a(3) - integer,allocatable :: ShellFunction(:,:) - double precision :: rASq,xA,yA,zA,norm_coeff,prim - - integer :: iSh,iShF,iK,iW,iEl,iBas,ixyz - -! Output variables - - double precision,intent(out) :: AO(nWalk,2,nBas),dAO(nWalk,2,3,nBas) - -! Initialization - - AO = 0d0 - if(doDrift) dAO = 0d0 - iBas = 0 - -!------------------------------------------------------------------------ -! Loops over shells -!------------------------------------------------------------------------ - do iSh=1,nShell - - atot = TotAngMomShell(iSh) - nShellFunction = (atot*atot + 3*atot + 2)/2 - allocate(ShellFunction(1:nShellFunction,1:3)) - call generate_shell(atot,nShellFunction,ShellFunction) - - do iShF=1,nShellFunction - - iBas = iBas + 1 - a(1) = ShellFunction(iShF,1) - a(2) = ShellFunction(iShF,2) - a(3) = ShellFunction(iShF,3) - - do iW=1,nWalk - do iEl=1,2 - - xA = r(iW,iEl,1) - CenterShell(iSh,1) - yA = r(iW,iEl,2) - CenterShell(iSh,2) - zA = r(iW,iEl,3) - CenterShell(iSh,3) - -! Calculate distance for exponential - - rASq = xA**2 + yA**2 + zA**2 - -!------------------------------------------------------------------------ -! Loops over contraction degrees -!------------------------------------------------------------------------- - do iK=1,KShell(iSh) - -! Calculate the exponential part - prim = DShell(iSh,iK)*norm_coeff(ExpShell(iSh,iK),a)*exp(-ExpShell(iSh,iK)*rASq) - AO(iW,iEl,iBas) = AO(iW,iEl,iBas) + prim - - if(doDrift) then - prim = -2d0*ExpShell(iSh,iK)*prim - do ixyz=1,3 - dAO(iW,iEl,ixyz,iBas) = dAO(iW,iEl,ixyz,iBas) + prim - enddo - endif - - enddo - - if(doDrift) then - - dAO(iW,iEl,1,iBas) = xA**(a(1)+1)*yA**a(2)*zA**a(3)*dAO(iW,iEl,1,iBas) - if(a(1) > 0) dAO(iW,iEl,1,iBas) = dAO(iW,iEl,1,iBas) + dble(a(1))*xA**(a(1)-1)*yA**a(2)*zA**a(3)*AO(iW,iEl,iBas) - - dAO(iW,iEl,2,iBas) = xA**a(1)*yA**(a(2)+1)*zA**a(3)*dAO(iW,iEl,2,iBas) - if(a(2) > 0) dAO(iW,iEl,2,iBas) = dAO(iW,iEl,2,iBas) + dble(a(2))*xA**a(1)*yA**(a(2)-1)*zA**a(3)*AO(iW,iEl,iBas) - - dAO(iW,iEl,3,iBas) = xA**a(1)*yA**a(2)*zA**(a(3)+1)*dAO(iW,iEl,3,iBas) - if(a(3) > 0) dAO(iW,iEl,3,iBas) = dAO(iW,iEl,3,iBas) + dble(a(3))*xA**a(1)*yA**a(2)*zA**(a(3)-1)*AO(iW,iEl,iBas) - - endif - -! Calculate polynmial part - - AO(iW,iEl,iBas) = xA**a(1)*yA**a(2)*zA**a(3)*AO(iW,iEl,iBas) - - enddo - enddo - - enddo - deallocate(ShellFunction) - enddo -!------------------------------------------------------------------------ -! End loops over shells -!------------------------------------------------------------------------ - -end subroutine AO_values diff --git a/src/MC/AO_values_grid.f90 b/src/MC/AO_values_grid.f90 deleted file mode 100644 index a5a72a6..0000000 --- a/src/MC/AO_values_grid.f90 +++ /dev/null @@ -1,101 +0,0 @@ -subroutine AO_values_grid(nBas,nShell,CenterShell,TotAngMomShell,KShell,DShell,ExpShell, & - nGrid,root,AO,dAO) - -! Compute values of the AOs and their derivatives with respect to the cartesian coordinates - - implicit none - include 'parameters.h' - -! Input variables - - integer,intent(in) :: nBas,nShell - double precision,intent(in) :: CenterShell(maxShell,3) - integer,intent(in) :: TotAngMomShell(maxShell) - integer,intent(in) :: KShell(maxShell) - double precision,intent(in) :: DShell(maxShell,maxK) - double precision,intent(in) :: ExpShell(maxShell,maxK) - double precision,intent(in) :: root(3,nGrid) - integer,intent(in) :: nGrid - -! Local variables - - integer :: atot,nShellFunction,a(3) - integer,allocatable :: ShellFunction(:,:) - double precision :: rASq,xA,yA,zA,norm_coeff,prim - - integer :: iSh,iShF,iK,iG,iBas - -! Output variables - - double precision,intent(out) :: AO(nBas,nGrid) - double precision,intent(out) :: dAO(3,nBas,nGrid) - -! Initialization - - iBas = 0 - AO(:,:) = 0d0 - dAO(:,:,:) = 0d0 - -!------------------------------------------------------------------------ -! Loops over shells -!------------------------------------------------------------------------ - do iSh=1,nShell - - atot = TotAngMomShell(iSh) - nShellFunction = (atot*atot + 3*atot + 2)/2 - allocate(ShellFunction(1:nShellFunction,1:3)) - call generate_shell(atot,nShellFunction,ShellFunction) - - do iShF=1,nShellFunction - - iBas = iBas + 1 - a(:) = ShellFunction(iShF,:) - - do iG=1,nGrid - - xA = root(1,iG) - CenterShell(iSh,1) - yA = root(2,iG) - CenterShell(iSh,2) - zA = root(3,iG) - CenterShell(iSh,3) - -! Calculate distance for exponential - - rASq = xA**2 + yA**2 + zA**2 - -!------------------------------------------------------------------------ -! Loops over contraction degrees -!------------------------------------------------------------------------- - do iK=1,KShell(iSh) - -! Calculate the exponential part - - prim = DShell(iSh,iK)*norm_coeff(ExpShell(iSh,iK),a)*exp(-ExpShell(iSh,iK)*rASq) - AO(iBas,iG) = AO(iBas,iG) + prim - - prim = -2d0*ExpShell(iSh,iK)*prim - dAO(:,iBas,iG) = dAO(:,iBas,iG) + prim - - enddo - - dAO(1,iBas,iG) = xA**(a(1)+1)*yA**a(2)*zA**a(3)*dAO(1,iBas,iG) - if(a(1) > 0) dAO(1,iBas,iG) = dAO(1,iBas,iG) + dble(a(1))*xA**(a(1)-1)*yA**a(2)*zA**a(3)*AO(iBas,iG) - - dAO(2,iBas,iG) = xA**a(1)*yA**(a(2)+1)*zA**a(3)*dAO(2,iBas,iG) - if(a(2) > 0) dAO(2,iBas,iG) = dAO(2,iBas,iG) + dble(a(2))*xA**a(1)*yA**(a(2)-1)*zA**a(3)*AO(iBas,iG) - - dAO(3,iBas,iG) = xA**a(1)*yA**a(2)*zA**(a(3)+1)*dAO(3,iBas,iG) - if(a(3) > 0) dAO(3,iBas,iG) = dAO(3,iBas,iG) + dble(a(3))*xA**a(1)*yA**a(2)*zA**(a(3)-1)*AO(iBas,iG) - -! Calculate polynmial part - - AO(iBas,iG) = xA**a(1)*yA**a(2)*zA**a(3)*AO(iBas,iG) - - enddo - - enddo - deallocate(ShellFunction) - enddo -!------------------------------------------------------------------------ -! End loops over shells -!------------------------------------------------------------------------ - -end subroutine AO_values_grid diff --git a/src/MC/Green_function.f90 b/src/MC/Green_function.f90 deleted file mode 100644 index 9feb5a3..0000000 --- a/src/MC/Green_function.f90 +++ /dev/null @@ -1,65 +0,0 @@ -subroutine Green_function(nBas,nO,nV,nWalk,nWP,cO,cV,eO_Quad,eV_Quad,AO, & - o1MO,o2MO,v1MO,v2MO,o11,o12,o21,o22,v11,v12,v21,v22) - -! Calculate the Green functions - - implicit none - - include 'parameters.h' - include 'quadrature.h' - -! Input variables - - integer,intent(in) :: nBas,nO,nV,nWalk,nWP - double precision,intent(in) :: AO(nWalk,2,nBas),cO(nBas,nO),cV(nBas,nV), & - eO_Quad(nQuad,nO),eV_Quad(nQuad,nV) - -! Local variables - - integer :: kW,lW,klW,i,a,q - double precision :: o1MO(nWalk,nO),o2MO(nWalk,nO),v1MO(nWalk,nV),v2MO(nWalk,nV) - -! Output variables - - double precision,intent(out) :: o11(nQuad,nWP),o12(nQuad,nWP),o21(nQuad,nWP),o22(nQuad,nWP) - double precision,intent(out) :: v11(nQuad,nWP),v12(nQuad,nWP),v21(nQuad,nWP),v22(nQuad,nWP) - -! Calculate occupied and virtual MOs - - o1MO = matmul(AO(:,1,:),cO) - o2MO = matmul(AO(:,2,:),cO) - v1MO = matmul(AO(:,1,:),cV) - v2MO = matmul(AO(:,2,:),cV) - -! Compute occupied Green functions - o11 = 0d0 - o12 = 0d0 - o21 = 0d0 - o22 = 0d0 - v11 = 0d0 - v12 = 0d0 - v21 = 0d0 - v22 = 0d0 - - do q=1,nQuad - klW = 0 - do kW=1,nWalk-1 - do lW=kW+1,nWalk - klW = klW + 1 - do i=1,nO - o11(q,klW) = o11(q,klW) + o1MO(kW,i)*o1MO(lW,i)*eO_Quad(q,i) - o12(q,klW) = o12(q,klW) + o1MO(kW,i)*o2MO(lW,i)*eO_Quad(q,i) - o21(q,klW) = o21(q,klW) + o2MO(kW,i)*o1MO(lW,i)*eO_Quad(q,i) - o22(q,klW) = o22(q,klW) + o2MO(kW,i)*o2MO(lW,i)*eO_Quad(q,i) - enddo - do a=1,nV - v11(q,klW) = v11(q,klW) + v1MO(kW,a)*v1MO(lW,a)*eV_Quad(q,a) - v12(q,klW) = v12(q,klW) + v1MO(kW,a)*v2MO(lW,a)*eV_Quad(q,a) - v21(q,klW) = v21(q,klW) + v2MO(kW,a)*v1MO(lW,a)*eV_Quad(q,a) - v22(q,klW) = v22(q,klW) + v2MO(kW,a)*v2MO(lW,a)*eV_Quad(q,a) - enddo - enddo - enddo - enddo - -end subroutine Green_function diff --git a/src/MC/MCMP2.f90 b/src/MC/MCMP2.f90 deleted file mode 100644 index 3851d25..0000000 --- a/src/MC/MCMP2.f90 +++ /dev/null @@ -1,344 +0,0 @@ - subroutine MCMP2(doDrift,nBas,nC,nO,nV,c,e,EcMP2, & - nMC,nEq,nWalk,dt,nPrint, & - nShell,CenterShell,TotAngMomShell,KShell,DShell,ExpShell, & - Norm, & - EcMCMP2,Err_EcMCMP2,Var_EcMCMP2) - -! Perform Monte Carlo MP2 calculation - - implicit none - - include 'parameters.h' - include 'quadrature.h' - -! Input variables - - logical,intent(in) :: doDrift - integer,intent(in) :: nBas,nC,nO,nV,nMC,nEq,nWalk,nPrint - double precision,intent(inout):: dt - double precision,intent(in) :: EcMP2(3) - double precision,intent(in) :: c(nBas,nBas),e(nBas) - - integer,intent(in) :: nShell - integer,intent(in) :: TotAngMomShell(maxShell),KShell(maxShell) - double precision,intent(in) :: CenterShell(maxShell,3),DShell(maxShell,maxK),ExpShell(maxShell,maxK) - -! Local variables - - logical :: AcPh,EqPh,Accept,dump - double precision :: start_Eq,end_Eq,t_Eq,start_Ac,end_Ac,t_Ac - integer :: nWP - double precision :: Norm,NormSq,nData,tau - double precision,allocatable :: chi1(:,:,:),chi2(:,:,:),eta(:) - - double precision,allocatable :: cO(:,:),cV(:,:),eO(:),eV(:),P(:,:),eO_Quad(:,:),eV_Quad(:,:) - double precision,allocatable :: r(:,:,:), r12(:), gAO(:,:,:), g(:,:), w(:) - double precision,allocatable :: rp(:,:,:),r12p(:),gAOp(:,:,:), gp(:,:),wp(:) - double precision,allocatable :: o1MO(:,:),o2MO(:,:),v1MO(:,:),v2MO(:,:) - double precision,allocatable :: o11(:,:),o12(:,:),o21(:,:),o22(:,:) - double precision,allocatable :: v11(:,:),v12(:,:),v21(:,:),v22(:,:) - double precision,allocatable :: fd_Quad(:,:),fx_Quad(:,:),fd(:),fx(:),fdx(:) - - double precision,allocatable :: dgAO(:,:,:,:),dg(:,:,:),dgAOp(:,:,:,:),dgp(:,:,:) - double precision,allocatable :: F(:,:,:),Fp(:,:,:),T(:),Tp(:) - - double precision :: acceptance,D - double precision :: eloc_MP2(3),mean_MP2(3),variance_MP2(3) - - integer :: iW,kW,lW,klW,iMC,q - -! Output variables - - double precision,intent(out) :: EcMCMP2(3),Err_EcMCMP2(3),Var_EcMCMP2(3) - -! Number of distinct walker pairs - - nWP = nWalk*(nWalk-1)/2 - -! Diffusion coefficient - - D = 0.5d0 - -! Do diffusion-drift moves? - - if(doDrift) then - - write(*,*) - write(*,*) '*** Diffusion-drift algorithm ***' - write(*,*) - - else - - write(*,*) - write(*,*) '*** Diffusion-only algorithm ***' - write(*,*) - - endif - -! Print results - - dump = .true. - if(dump) open(unit=13,file='results/data') - -!------------------------------------------------------------------------ -! Memory allocation -!------------------------------------------------------------------------ - allocate(cO(nBas,nO),cV(nBas,nV),eO(nO),eV(nV), & - eO_Quad(nQuad,nO),eV_Quad(nQuad,nV), & - P(nBas,nBas),r(nWalk,2,3),rp(nWalk,2,3), & - chi1(nWalk,2,3),chi2(nWalk,2,3),eta(nWalk), & - r12(nWalk),r12p(nWalk),w(nWalk),wp(nWalk), & - g(nWalk,2),gp(nWalk,2),gAO(nWalk,2,nBas),gAOp(nWalk,2,nBas), & - dg(nWalk,2,3),dgp(nWalk,2,3),dgAO(nWalk,2,3,nBas),dgAOp(nWalk,2,3,nBas), & - o1MO(nWalk,nO),v1MO(nWalk,nV),o2MO(nWalk,nO),v2MO(nWalk,nV), & - o11(nQuad,nWP),v11(nQuad,nWP),o12(nQuad,nWP),v12(nQuad,nWP), & - o21(nQuad,nWP),v21(nQuad,nWP),o22(nQuad,nWP),v22(nQuad,nWP), & - fd_Quad(nQuad,nWP),fd(nWP),fx_Quad(nQuad,nWP),fx(nWP),fdx(nWP), & - T(nWalk),Tp(nWalk),F(nWalk,2,3),Fp(nWalk,2,3)) - -! Split MOs into occupied and virtual sets - - eO(1:nO) = e(nC+1:nC+nO) - eV(1:nV) = e(nC+nO+1:nBas) - - do q=1,nQuad - tau = 1d0/rQuad(q) - eO_Quad(q,1:nO) = exp(+eO(1:nO)*(tau-1d0))*sqrt(tau) - eV_Quad(q,1:nV) = exp(-eV(1:nV)*(tau-1d0))*sqrt(tau) - enddo - - cO(1:nBas,1:nO) = c(1:nBas,nC+1:nC+nO) - cV(1:nBas,1:nV) = c(1:nBas,nC+nO+1:nBas) - -! Compute norm of the trial wave function - - call norm_trial(nBas,nO,cO,P,Norm,NormSq) - -!------------------------------------------------------------------------ -! Initialize MC-MP2 calculation -!------------------------------------------------------------------------ - -! Initialize electron coordinates - - call random_number(r) - r = 2d0*r - 1d0 - -! Compute initial interelectronic distances - - call rij(nWalk,r,r12) - -! Compute initial AO values and their derivatives (if required) - - call AO_values(doDrift,nBas,nShell,nWalk,CenterShell,TotAngMomShell,KShell,DShell,ExpShell,r,gAO,dgAO) - -! Compute initial weight function - - call density(doDrift,nBas,nWalk,P,gAO,dgAO,g,dg) - -! Compute initial weights - - w(1:nWalk) = g(1:nWalk,1)*g(1:nWalk,2)/r12(1:nWalk) - -! Compute initial quantum force - - if(doDrift) call drift(nWalk,r,r12,g,dg,F) - -! Equilibration or Accumulation? - - AcPh = .false. - EqPh = .true. - -! Initialization - - nData = 0d0 - acceptance = 0d0 - - mean_MP2 = 0d0 - variance_MP2 = 0d0 - - T = 1d0 - Tp = 1d0 - -!------------------------------------------------------------------------ -! Start main Monte Carlo loop -!------------------------------------------------------------------------ - call cpu_time(start_Eq) - - do iMC=1,nEq+nMC - -! Timings - - if(iMC == nEq + 1) then - AcPh = .true. - EqPh = .false. - write(*,*) 'Time step value at the end of equilibration: dt = ',dt - write(*,*) - call cpu_time(end_Eq) - t_Eq = end_Eq - start_Eq - write(*,*) - write(*,'(A65,1X,F9.3,A8)') 'Total CPU time for equilibration = ',t_Eq,' seconds' - write(*,*) - call cpu_time(start_Ac) - endif - -! Optimize time step to reach 50% acceptance - - if(EqPh .and. mod(iMC,100) == 0) call optimize_timestep(nWalk,iMC,acceptance,dt) - -! Move electrons - - call random_number(chi1) - call random_number(chi2) - -! Diffusion - - rp(:,:,:) = r(:,:,:) + sqrt(2d0*D*dt)*sqrt(-2d0*log(chi1(:,:,:)))*cos(2d0*pi*chi2(:,:,:)) - -! Drift - - if(doDrift) rp(:,:,:) = rp(:,:,:) + D*dt*F(:,:,:) - -! Compute new interelectronic distances - - call rij(nWalk,rp,r12p) - -! Compute new AO values and their derivatives (if required) - - call AO_values(doDrift,nBas,nShell,nWalk,CenterShell,TotAngMomShell,KShell,DShell,ExpShell,rp,gAOp,dgAOp) - - call Density(doDrift,nBas,nWalk,P,gAOp,dgAOp,gp,dgp) - -! Compute new weights - - wp(1:nWalk) = gp(1:nWalk,1)*gp(1:nWalk,2)/r12p(1:nWalk) - -! Compute new quantum force and transition probability - - if(doDrift) then - - call Drift(nWalk,rp,r12p,gp,dgp,Fp) - call transition_probability(nWalk,dt,D,r,rp,F,Fp,T,Tp) - - endif - -! Move for walkers - - call random_number(eta) - - do iW=1,nWalk - - Accept = (wp(iW)*Tp(iW))/(w(iW)*T(iW)) > eta(iW) - - if(Accept) then - - acceptance = acceptance + 1d0 - - r(iW,1:2,1:3) = rp(iW,1:2,1:3) - gAO(iW,1:2,1:nBas) = gAOp(iW,1:2,1:nBas) - r12(iW) = r12p(iW) - w(iW) = wp(iW) - - if(doDrift) F(iW,1:2,1:3) = Fp(iW,1:2,1:3) - - endif - - enddo - -! Accumulation phase - - if(AcPh) then - - nData = nData + 1d0 - -! Calculate Green functions - - call Green_function(nBas,nO,nV,nWalk,nWP,cO,cV,eO_Quad,eV_Quad,gAO, & - o1MO,o2MO,v1MO,v2MO,o11,o12,o21,o22,v11,v12,v21,v22) - -! Compute local energy - - fd_Quad = o11*o22*v11*v22 + o12*o21*v12*v21 - fx_Quad = o11*o22*v12*v21 + o12*o21*v11*v22 - - fd = matmul(wQuad,fd_Quad) - fx = matmul(wQuad,fx_Quad) - - eloc_MP2 = 0d0 - klW = 0 - do kW=1,nWalk-1 - do lW=kW+1,nWalk - klW = klW + 1 - eloc_MP2(2) = eloc_MP2(2) + fd(klW)/(r12(kW)*r12(lW)*w(kW)*w(lW)) - eloc_MP2(3) = eloc_MP2(3) + fx(klW)/(r12(kW)*r12(lW)*w(kW)*w(lW)) - enddo - enddo - - eloc_MP2(2) = -2d0*eloc_MP2(2)/dble(2*nWP) - eloc_MP2(3) = eloc_MP2(3)/dble(2*nWP) - - fdx = -2d0*fd + fx - eloc_MP2(1) = eloc_MP2(2) + eloc_MP2(3) - -! Accumulate results - - mean_MP2 = mean_MP2 + eloc_MP2 - variance_MP2 = variance_MP2 + eloc_MP2*eloc_MP2 - -! Print results - - if(mod(iMC,nPrint) == 0) then - - call compute_error(nData,mean_MP2,variance_MP2,Err_EcMCMP2) - EcMCMP2 = mean_MP2/nData - Var_EcMCMP2 = variance_MP2/nData - EcMCMP2 = Norm*EcMCMP2 - Var_EcMCMP2 = Norm*Var_EcMCMP2 - Err_EcMCMP2 = Norm*Err_EcMCMP2 - - write(*,*) - write(*,*)'-------------------------------------------------------' - write(*,'(1X,A36,1X,A1,1X,I15)') 'Number of data points ','|',int(nData) - write(*,*)'-------------------------------------------------------' - write(*,'(1X,A36,1X,A1,1X,10I15)') 'acceptance ','|',int(100*acceptance/dble(nWalk*iMC)) - write(*,*)'-------------------------------------------------------' - write(*,'(1X,A36,1X,A1,1X,10F15.8)') 'MP2 correlation energy Total ','|',EcMCMP2(1) - write(*,'(1X,A36,1X,A1,1X,10F15.8)') ' Direct ','|',EcMCMP2(2) - write(*,'(1X,A36,1X,A1,1X,10F15.8)') ' Exchange ','|',EcMCMP2(3) - write(*,*)'-------------------------------------------------------' - write(*,'(1X,A36,1X,A1,1X,10F15.8)') 'Statistical error Total ','|',Err_EcMCMP2(1) - write(*,'(1X,A36,1X,A1,1X,10F15.8)') ' Direct ','|',Err_EcMCMP2(2) - write(*,'(1X,A36,1X,A1,1X,10F15.8)') ' Exchange ','|',Err_EcMCMP2(3) - write(*,*)'-------------------------------------------------------' - write(*,'(1X,A36,1X,A1,1X,10F15.8)') 'Variance Total ','|',Var_EcMCMP2(1) - write(*,'(1X,A36,1X,A1,1X,10F15.8)') ' Direct ','|',Var_EcMCMP2(2) - write(*,'(1X,A36,1X,A1,1X,10F15.8)') ' Exchange ','|',Var_EcMCMP2(3) - write(*,*)'-------------------------------------------------------' - write(*,'(1X,A36,1X,A1,1X,10F15.8)') 'Dev. wrt deterministic Total ','|',EcMCMP2(1) - EcMP2(1) - write(*,'(1X,A36,1X,A1,1X,10F15.8)') ' Direct ','|',EcMCMP2(2) - EcMP2(2) - write(*,'(1X,A36,1X,A1,1X,10F15.8)') ' Exchange ','|',EcMCMP2(3) - EcMP2(3) - write(*,*)'-------------------------------------------------------' - - if(dump) write(13,*) int(nData),EcMCMP2(1),Err_EcMCMP2(1) - - endif - - endif - -!------------------------------------------------------------------------ -! End main Monte Carlo loop -!------------------------------------------------------------------------ - enddo - -! Timing - - call cpu_time(end_Ac) - t_Ac = end_Ac - start_Ac - write(*,*) - write(*,'(A65,1X,F9.3,A8)') 'Total CPU time for accumulation = ',t_Ac,' seconds' - write(*,*) - -! Close files - - if(dump) close(unit=13) - -end subroutine MCMP2 diff --git a/src/MC/MO_values_grid.f90 b/src/MC/MO_values_grid.f90 deleted file mode 100644 index ee0864b..0000000 --- a/src/MC/MO_values_grid.f90 +++ /dev/null @@ -1,44 +0,0 @@ -subroutine MO_values_grid(nBas,nGrid,c,AO,dAO,MO,dMO) - -! Compute values of the MOs and their derivatives with respect to the cartesian coordinates - - implicit none - include 'parameters.h' - -! Input variables - - integer,intent(in) :: nBas - integer,intent(in) :: nGrid - double precision,intent(in) :: c(nBas,nBas) - double precision,intent(in) :: AO(nBas,nGrid) - double precision,intent(in) :: dAO(ncart,nBas,nGrid) - -! Local variables - - integer :: p,mu,iG - -! Output variables - - double precision,intent(out) :: MO(nBas,nGrid) - double precision,intent(out) :: dMO(ncart,nBas,nGrid) - -! Initialization - - MO(:,:) = 0d0 - dMO(:,:,:) = 0d0 - - do p=1,nBas - do mu=1,nBas - do iG=1,ngrid - - MO(p,iG) = MO(p,iG) + c(mu,p)*AO(mu,iG) - - dMO(1,p,iG) = dMO(1,p,iG) + c(mu,p)*dAO(1,mu,iG) - dMO(2,p,iG) = dMO(2,p,iG) + c(mu,p)*dAO(2,mu,iG) - dMO(3,p,iG) = dMO(3,p,iG) + c(mu,p)*dAO(3,mu,iG) - - end do - end do - end do - -end subroutine MO_values_grid diff --git a/src/MC/Makefile b/src/MC/Makefile deleted file mode 100644 index 6ca514e..0000000 --- a/src/MC/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -default: - ninja - make -C .. - -clean: - ninja -t clean - -debug: - ninja -t clean - make -C .. debug diff --git a/src/MC/MinMCMP2.f90 b/src/MC/MinMCMP2.f90 deleted file mode 100644 index 13c7c59..0000000 --- a/src/MC/MinMCMP2.f90 +++ /dev/null @@ -1,121 +0,0 @@ -subroutine MinMCMP2(nBas,nEl,nC,nO,nV,c,e,EcMP2, & - nMC,nEq,nWalk,dt,nPrint, & - nShell,CenterShell,TotAngMomShell,KShell,DShell,ExpShell, & - TrialType,Norm,cTrial,gradient,hessian) - -! Minimize the variance of MC-MP2 - - implicit none - include 'parameters.h' - -! Input variables - - integer,intent(in) :: nBas,nEl,nC,nO,nV,nMC,nEq,nWalk,nPrint - double precision,intent(in) :: EcMP2(3),dt - double precision,intent(in) :: c(nBas,nBas),e(nBas) - - integer,intent(in) :: nShell - integer,intent(in) :: TotAngMomShell(maxShell),KShell(maxShell) - double precision,intent(in) :: CenterShell(maxShell,3),DShell(maxShell,maxK),ExpShell(maxShell,maxK) - -! Local variables - - logical :: debug,varmin,mincvg - double precision :: thresh - double precision,allocatable :: max_gradient(:),energy_MCMP2(:),variance_MCMP2(:),error_MCMP2(:),NormTr(:) - - double precision :: EcMCMP2(3),Err_EcMCMP2(3),Var_EcMCMP2(3) - - integer :: it,nIt,i - -! Output variables - - integer,intent(in) :: TrialType - double precision,intent(inout):: Norm,cTrial(nBas),gradient(nBas),hessian(nBas,nBas) - -! Debuging mode - -! debug = .true. - debug = .false. - -! Minimization parameters - - varmin = .true. - mincvg = .false. - nIt = 10 - thresh = 1d-5 - allocate(max_gradient(nIt),energy_MCMP2(nIt),variance_MCMP2(nIt),error_MCMP2(nIt),normTr(nIt)) - - if(TrialType == 1) then - -! Use HOMO as guess - cTrial(1:nBas) = c(1:nBas,nEl/2) -! Normalization factor will be computed later - - endif - -!------------------------------------------------------------------------ -! Start MC-MP2 variance minimization -!------------------------------------------------------------------------ - it = 0 - do while (it < nIt .and. .not.(mincvg)) - - it = it + 1 - - write(*,*) '**********************************************************************' - write(*,*) ' Variance minimization of MC-MP2 energy ' - write(*,*) '**********************************************************************' - write(*,*) ' Iteration n.',it - write(*,*) '**********************************************************************' - - write(*,*) - write(*,*) ' Trial wave function coefficients at iteration n.',it - call matout(nBas,1,cTrial) - write(*,*) - - call MCMP2(varmin,nBas,nEl,nC,nO,nV,c,e,EcMP2, & - nMC,nEq,nWalk,dt,nPrint, & - nShell,CenterShell,TotAngMomShell,KShell,DShell,ExpShell, & - TrialType,Norm,cTrial,gradient,hessian, & - EcMCMP2,Err_EcMCMP2,Var_EcMCMP2) - -! Newton update of the coefficients - - call Newton(nBas,gradient,hessian,cTrial) - -! Check for convergence - - max_gradient(it) = maxval(abs(gradient)) - energy_MCMP2(it) = EcMCMP2(1) - variance_MCMP2(it) = Var_EcMCMP2(1) - error_MCMP2(it) = Err_EcMCMP2(1) - NormTr(it) = Norm - - write(*,*) - write(*,*) 'Maximum gradient at iteration n.',it,':',max_gradient(it) - write(*,*) - - if(max_gradient(it) < thresh) then - write(*,*) ' Miracle! Variance minimization of MC-MP2 has converged!' - mincvg = .true. - endif - - enddo - - write(*,*) - write(*,*) '********************************' - write(*,*) 'Summary of variance minimization' - write(*,*) '********************************' - write(*,*) - - write(*,'(A3,A20,A20,A20,A20,A20,A20)') & - 'It.','Gradient','Ec(MC-MPC2)','Variance','Error','Ec(MC-MP2)-Ec(MP2)','Norm' - write(*,'(I3,4X,F16.10,4X,F16.10,4X,F16.10,4X,F16.10,4X,F16.10,4X,F16.10)') & - (i,max_gradient(i),energy_MCMP2(i),variance_MCMP2(i),error_MCMP2(i),energy_MCMP2(i)-EcMP2(1),NormTr(i),i=1,it) - write(*,*) - -!------------------------------------------------------------------------ -! End MC-MP2 variance minimization -!------------------------------------------------------------------------ - -end subroutine MinMCMP2 diff --git a/src/MC/NDrift.f90 b/src/MC/NDrift.f90 deleted file mode 100644 index 13cc5f3..0000000 --- a/src/MC/NDrift.f90 +++ /dev/null @@ -1,67 +0,0 @@ -subroutine NDrift(nBas,nShell,nWalk,CenterShell,TotAngMomShell,KShell,DShell,ExpShell,P,r,w,F) - -! Compute quantum force numerically - - implicit none - include 'parameters.h' - -! Input variables - - integer,intent(in) :: nWalk,nBas - double precision,intent(in) :: P(nBas,nBas),r(nWalk,2,3),w(nWalk) - - integer,intent(in) :: nShell - integer,intent(in) :: TotAngMomShell(maxShell),KShell(maxShell) - double precision,intent(in) :: CenterShell(maxShell,3),DShell(maxShell,maxK),ExpShell(maxShell,maxK) - -! Local variables - - integer :: iW,iEl,ixyz - double precision :: delta - double precision :: wp,wm - double precision,allocatable :: rp(:,:,:),rm(:,:,:),r12p(:),r12m(:) - double precision,allocatable :: gAOp(:,:,:),dgAOp(:,:,:,:),gAOm(:,:,:),dgAOm(:,:,:,:) - double precision,allocatable :: gp(:,:),dgp(:,:,:),gm(:,:),dgm(:,:,:) - - -! Output variables - - double precision,intent(out) :: F(nWalk,2,3) - - allocate(rp(nWalk,2,3),rm(nWalk,2,3),r12p(nWalk),r12m(nWalk), & - gAOp(nWalk,2,nBas),dgAOp(nWalk,2,3,nBas),gAOm(nWalk,2,nBas),dgAOm(nWalk,2,3,nBas), & - gp(nWalk,2),dgp(nWalk,2,3),gm(nWalk,2),dgm(nWalk,2,3)) - - do iW=1,nWalk - do iEl=1,2 - do ixyz=1,3 - - delta = 1d-6 - - rp = r - rm = r - - rp(iW,iEl,ixyz) = r(iW,iEl,ixyz) + delta - rm(iW,iEl,ixyz) = r(iW,iEl,ixyz) - delta - - call AO_values(.false.,nBas,nShell,nWalk,CenterShell,TotAngMomShell,KShell,DShell,ExpShell,rp,gAOp,dgAOp) - call AO_values(.false.,nBas,nShell,nWalk,CenterShell,TotAngMomShell,KShell,DShell,ExpShell,rm,gAOm,dgAOm) - - call Density(.false.,nBas,nWalk,P,gAOp,dgAOp,gp,dgp) - call Density(.false.,nBas,nWalk,P,gAOm,dgAOm,gm,dgm) - - call rij(nWalk,rp,r12p) - call rij(nWalk,rm,r12m) - - wp = gp(iW,1)*gp(iW,2)/r12p(iW) - wm = gm(iW,1)*gm(iW,2)/r12m(iW) - - F(iW,iEl,ixyz) = (wp - wm)/(2d0*delta*w(iw)) - enddo - enddo - enddo - -! print*,'NF',F - - -end subroutine NDrift diff --git a/src/MC/Newton.f90 b/src/MC/Newton.f90 deleted file mode 100644 index f074035..0000000 --- a/src/MC/Newton.f90 +++ /dev/null @@ -1,67 +0,0 @@ -subroutine Newton(nWSq,gradient,hessian,cWeight) - -! Calculate the Green functions - - implicit none - -! Input variables - - integer,intent(in) :: nWSq - double precision,intent(in) :: gradient(nWSq),hessian(nWSq,nWSq) - -! Local variables - - integer :: info - integer,allocatable :: ipiv(:) - double precision,allocatable :: scr(:),eigval(:),eigvec(:,:) - -! Output variables - - double precision,intent(inout):: cWeight(nWSq) - -! Memory allocation - - allocate(ipiv(nWSq),scr(3*nWsq),eigval(nWSq),eigvec(nWSq,nWSq)) - -! Compute eigenvectors and eigenvalues - - eigvec = hessian - call dsyev('V','U',nWSq,eigvec,nWSq,eigval,scr,3*nWSq,info) - - if(info /= 0)then - write(*,*) ' Problem with dsyev!' - stop - endif - - write(*,*) - write(*,*) 'Eigenvalues of hessian' - call matout(nWSq,1,eigval) - write(*,*) -! write(*,*) 'Eigenvectors of hessian' -! call matout(nWSq,1,eigval) -! write(*,*) - -! Compute inverse of the hessian - - call dgetrf(nWSq,nWSq,hessian,nWSq,ipiv,info) - - if(info /= 0) then - write(*,*) ' Problem in dgetrf!' - stop - endif - - call dgetri(nWSq,hessian,nWSq,ipiv,scr,nWSq,info) - - if(info /= 0) then - write(*,*) ' Problem in dgetri!' - stop - endif - - print*,'inverse hessian' - call matout(nWSq,nWSq,hessian) - -! Compute new coefficients - - cWeight = cWeight - matmul(hessian,gradient) - -end subroutine Newton diff --git a/src/MC/drift.f90 b/src/MC/drift.f90 deleted file mode 100644 index 0a002e0..0000000 --- a/src/MC/drift.f90 +++ /dev/null @@ -1,50 +0,0 @@ -subroutine drift(nWalk,r,r12,g,dg,F) - -! Compute quantum force - - implicit none - include 'parameters.h' - -! Input variables - - integer,intent(in) :: nWalk - double precision,intent(in) :: r(nWalk,2,3),r12(nWalk),g(nWalk,2),dg(nWalk,2,3) - -! Local variables - - logical :: smoothDrift - double precision :: rij,rijSq,w,wSq,damp - integer :: iW - -! Output variables - - double precision,intent(out) :: F(nWalk,2,3) - -! Compute - - smoothDrift = .false. - w = 0.1d0 - wSq = w*w - - do iW=1,nWalk - - rij = r12(iW) - rijSq = rij*rij - - F(iW,1,1:3) = dg(iW,1,1:3)/g(iW,1) - F(iW,2,1:3) = dg(iW,2,1:3)/g(iW,2) - - if(smoothDrift) then - damp = 1d0 + 2d0*w/sqrt(pi)*rij*exp(-wSq*rijSq)/erfc(w*rij) - else - damp = 1d0 - endif - - F(iW,1,1:3) = F(iW,1,1:3) - damp*(r(iW,2,1:3) - r(iW,1,1:3))/rijSq - F(iW,2,1:3) = F(iW,2,1:3) - damp*(r(iW,2,1:3) - r(iW,1,1:3))/rijSq - - enddo - -! print*,' F',F - -end subroutine drift diff --git a/src/MC/generate_shell.f90 b/src/MC/generate_shell.f90 deleted file mode 100644 index 0a13b8f..0000000 --- a/src/MC/generate_shell.f90 +++ /dev/null @@ -1,30 +0,0 @@ -subroutine generate_shell(atot,nShellFunction,ShellFunction) - - implicit none - -! Input variables - - integer,intent(in) :: atot,nShellFunction - -! Local variables - - integer :: ax,ay,az,ia - -! Output variables - - integer,intent(out) :: ShellFunction(nShellFunction,3) - - ia = 0 - do ax=atot,0,-1 - do az=0,atot - ay = atot - ax - az - if(ay >= 0) then - ia = ia + 1 - ShellFunction(ia,1) = ax - ShellFunction(ia,2) = ay - ShellFunction(ia,3) = az - endif - enddo - enddo - -end subroutine generate_shell diff --git a/src/MC/initialize_random_generator.f90 b/src/MC/initialize_random_generator.f90 deleted file mode 100644 index 189c36b..0000000 --- a/src/MC/initialize_random_generator.f90 +++ /dev/null @@ -1,25 +0,0 @@ -subroutine initialize_random_generator(iSeed) - -! Initialize random number generator - - implicit none - -! Input variables - - integer,intent(in) :: iSeed - -! Local variables - - integer,allocatable :: Seed(:) - integer :: nSeed - - call random_seed(size = nSeed) - allocate(Seed(nSeed)) - call random_seed(get=Seed) - if(iSeed /= 0) then - Seed = 0 - Seed(1) = iSeed - endif - call random_seed(put=Seed) - -end subroutine initialize_random_generator diff --git a/src/MC/norm_trial.f90 b/src/MC/norm_trial.f90 deleted file mode 100644 index 4ca9e9c..0000000 --- a/src/MC/norm_trial.f90 +++ /dev/null @@ -1,53 +0,0 @@ -subroutine norm_trial(nBas,nO,c,P,Norm,NormSq) - -! Initialize weight function - - implicit none - include 'parameters.h' - -! Input variables - - integer,intent(in) :: nBas,nO - double precision,intent(inout):: c(nBas,nO),P(nBas,nBas) - -! Local variables - - double precision,allocatable :: S(:,:),T(:,:),V(:,:),Hc(:,:),G(:,:,:,:) - - integer :: mu,nu,la,si - -! Output variables - - double precision,intent(inout):: Norm,NormSq - -! Memory allocation for one- and two-electron integrals - - allocate(S(nBas,nBas),T(nBas,nBas),V(nBas,nBas),Hc(nBas,nBas),G(nBas,nBas,nBas,nBas)) - -! Read integrals - - call read_integrals(nBas,S,T,V,Hc,G) - -! Compute normalization factor - - P = 2d0*matmul(c,transpose(c)) - - Norm = 0d0 - do mu=1,nBas - do nu=1,nBas - do la=1,nBas - do si=1,nBas - Norm = Norm + P(mu,nu)*P(la,si)*G(mu,la,nu,si) - enddo - enddo - enddo - enddo - - Norm = Norm*Norm - NormSq = Norm*Norm - - write(*,*) - write(*,*) 'Normalization of trial wave function: ',Norm - write(*,*) - -end subroutine norm_trial diff --git a/src/MC/optimize_timestep.f90 b/src/MC/optimize_timestep.f90 deleted file mode 100644 index 916854a..0000000 --- a/src/MC/optimize_timestep.f90 +++ /dev/null @@ -1,28 +0,0 @@ -subroutine optimize_timestep(nWalk,iMC,Acc,dt) - -! Optimize dt to get 50% of accepted moves - - implicit none - -! Input variables - - integer,intent(in) :: nWalk,iMC - double precision,intent(inout):: Acc,dt - -! Local variables - - double precision :: TotAcc,Current_Acc,Target_Acc,delta - - TotAcc = Acc/dble(nWalk) - Current_Acc = 100d0*TotAcc/dble(iMC) - - Target_Acc = 50.0d0 - - delta = dt*abs(Target_Acc - Current_Acc)/100.d0 - if(Current_Acc > Target_Acc + 0.5d0)then - dt = dt + delta - elseif(Current_Acc < Target_Acc - 0.5d0)then - dt = dt - delta - endif - -end subroutine optimize_timestep diff --git a/src/MC/transition_probability.f90 b/src/MC/transition_probability.f90 deleted file mode 100644 index 76da1d5..0000000 --- a/src/MC/transition_probability.f90 +++ /dev/null @@ -1,41 +0,0 @@ -subroutine transition_probability(nWalk,dt,D,r,rp,F,Fp,T,Tp) - -! Compute transition probability - - implicit none - -! Input variables - - integer,intent(in) :: nWalk - double precision,intent(in) :: dt,D - double precision,intent(in) :: r(nWalk,1:2,1:3), F(nWalk,1:2,1:3) - double precision,intent(in) :: rp(nWalk,1:2,1:3),Fp(nWalk,1:2,1:3) - -! Local variables - - integer :: iW,iEl,ixyz - -! Output variables - - double precision,intent(out) :: T(nWalk),Tp(nWalk) - -! Initialize - - T = 0d0 - Tp = 0d0 - -! Compute - - do iW=1,nWalk - do iEl=1,2 - do ixyz=1,3 - T(iW) = T(iW) + (rp(iW,iEl,ixyz) - r(iW,iEl,ixyz) - D*dt*F(iW,iEl,ixyz))**2 - Tp(iW) = Tp(iW) + (r(iW,iEl,ixyz) - rp(iW,iEl,ixyz) - D*dt*Fp(iW,iEl,ixyz))**2 - enddo - enddo - enddo - - T(:) = exp(-0.25d0*T(:)/(D*dt)) - Tp(:) = exp(-0.25d0*Tp(:)/(D*dt)) - -end subroutine transition_probability