By Reinaldo Baretti Machin e-mail : reibaretti2004@yahoo.com URL : www.oocities.org/reibaretti2004 www.oocities.org/serienumerica
c coulomb potential in p-space g(p)=anorm/(p**2+alfa**2)**2 Q(u)= -.5*log((u-1.)/(u+1.)) pi=2.*asin(1.) z=1. alfa=z c=137.11 edirac=c**2*(sqrt(1.0-(z/c)**2)-1.0) nstep1=2000 pf=60.*z dp1=pf/float(nstep1) dp2=dp1 nstep2=int(pf/dp2) call consta(z,alfa,nstep1,dp1,pi,anorm) call akin(alfa,c,nstep1,dp1,pi,anorm,ecin) sum=0. do 10 j=1,nstep2 p2=dp2*float(j) do 10 i=1,nstep1 p1=dp1*float(i) if(p1.ne.p2)then u=(p1**2+p2**2)/(2.*p1*p2) sum=sum+(p1-dp1/2.)*(p2-dp2/2.)*q(u)*g(p1-dp1/2.)* $ g(p2-dp2/2.) sumres=(p1-dp1/2.)*(p2-dp2/2.)*q(u)*g(p1-dp1/2.)* $ g(p2-dp2/2.) endif if(p1.eq.p2)then sum=sum+sumres endif 10 continue sum=sum*(-4.*z)*dp1*dp2 vc=sum et=ecin+vc c print*,'edirac=',edirac eh=-z**2/2. print*,'eh=',eh print 100, ecin, vc, et 100 format(2x,'Ecin, Vc, Et=',3(2x,e10.3)) stop end subroutine consta(z,alfa,nstep1,dp1,pi,anorm) psi(p)=1.0/(p**2+alfa**2)**2 sum=0. do 10 i=1,nstep1 p=dp1*float(i) sum=sum + (Psi(p)*p)**2+(psi(p-dp1)*(p-dp1))**2 10 continue sum=sum*4.*pi*dp1/2. anorm=sqrt(1./sum) return end subroutine akin(alfa,c,nstep1,dp1,pi,anorm,ecin) psi(p)=anorm/(p**2+alfa**2)**2 c tk(p)=0.5*p**2 -(p**4)/(8.*c**2) tk(p)=0.5*p**2 sum=0. do 10 i=1,nstep1 p=dp1*float(i) sum=sum + (p*psi(p))**2*tk(p)+ ((p-dp1)*psi(p-dp1))**2*tk(p-dp1) 10 continue sum=sum*4*pi*dp1/2. ecin=sum return end Run eh= -0.5 Ecin, Vc, Et= 0.500E+00 -0.993E+00 -0.493E+00