c c
cCharacter * 80 allstr(20),allnam(20), anlz, funcfile c 779 format( '# produces hydrogen radial functions') write(*,779) write(*,778) 778 format('# Give the power of X**ifunc * hydrad(n,l,x)') read(*,*) ifunc write(*,777) ifunc 775 format('# Give the Z value of the nucleus') write(*,775) read(*,*) Z c write(allstr(1),'(f3.1,a)') z,'hyd10.d' write(allstr(2),'(f3.1,a)') z,'hyd20.d' write(allstr(3),'(f3.1,a)') z,'hyd21.d' write(allstr(4),'(f3.1,a)') z,'hyd30.d' write(allstr(5),'(f3.1,a)') z,'hyd31.d' write(allstr(6),'(f3.1,a)') z,'hyd32.d' write(allstr(7),'(f3.1,a)') z,'hyd40.d' write(allstr(8),'(f3.1,a)') z,'hyd41.d' write(allstr(9),'(f3.1,a)') z,'hyd42.d' write(allstr(10),'(f3.1,a)') z,'hyd43.d' write(allstr(11),'(f3.1,a))') z,'pot.hyd' if (z.gt.9.999) then write(allstr(1),'(f4.1,a))') z,'hyd10.d' write(allstr(2),'(f4.1,a))') z,'hyd20.d' write(allstr(3),'(f4.1,a))') z,'hyd21.d' write(allstr(4),'(f4.1,a))') z,'hyd30.d' write(allstr(5),'(f4.1,a))') z,'hyd31.d' write(allstr(6),'(f4.1,a))') z,'hyd32.d' write(allstr(7),'(f4.1,a))') z,'hyd40.d' write(allstr(8),'(f4.1,a))') z,'hyd41.d' write(allstr(9),'(f4.1,a))') z,'hyd42.d' write(allstr(10),'(f4.1,a))') z,'hyd43.d' write(allstr(11),'(f4.1,a))') z,'pot.hyd' endif 777 format('# Hydrogenic functions r**',i2,' * R(n,l,r) z,') 776 format('# n=',i2,' l=',i2,' Z=', f4.2) c open(14,file=allstr(11)) write(14,879) Z 879 format('# Hydrogen-like potential for Z=',f5.2) c do 10 n=1,4 do 20 ll=1,n l=ll-1 if(n.eq.1 .and. l.eq.0) write(funcfile,'(A)') allstr(1) if(n.eq.2 .and. l.eq.0) write(funcfile,'(A)') allstr(2) if(n.eq.2 .and. l.eq.1) write(funcfile,'(A)') allstr(3) if(n.eq.3 .and. l.eq.0) write(funcfile,'(A)') allstr(4) if(n.eq.3 .and. l.eq.1) write(funcfile,'(A)') allstr(5) if(n.eq.3 .and. l.eq.2) write(funcfile,'(A)') allstr(6) if(n.eq.4 .and. l.eq.0) write(funcfile,'(A)') allstr(7) if(n.eq.4 .and. l.eq.1) write(funcfile,'(A)') allstr(8) if(n.eq.4 .and. l.eq.2) write(funcfile,'(A)') allstr(9) if(n.eq.4 .and. l.eq.3) write(funcfile,'(A)') allstr(10) c open(13,file=funcfile) c write(13,777) ifunc write(13,776) n,l , Z dr = 1.0/Z*float(n)* 10.0/300.0 do 1 k=1,300 xx=dr*float(k) yy=Z*sqrt(Z)*hydrad(n,l,xx,Z,ifunc) if(ifunc.gt.0) yy= xx**ifunc * yy write(13,*) xx,yy 1 continue close(13) 20 continue yy=-Z**2/(float(n)*float(n)) xx=0.0 write(14,*) xx,yy xx=10.0 write(14,*) xx,yy write(14,*) 10 continue c c hydrogen-like potential c dr = 10.0/300.0 c dr = (alog(10.0)+4.0*alog(Z)+5.0 )/(400.0) write(14,879) z do 9 k=1,400 xx=exp( -(4.0*alog(Z)+5.0)+dr*float(k)) yy=-Z*2.0/xx write(14,*) xx,yy 9 continue close(14) do 4433 kkk=1,11 if (z.lt.10.0) then write(*,8978) allstr(kkk) else write(*,8979) allstr(kkk) end if 4433 continue 8978 format('plot "',A10,'" wi linespoints') 8979 format('plot "',A11,'" wi linespoints') end real function hydrad(n,l,r,Z,ifunc) x=r*Z if(n.eq.1 .and. l.eq.0) then ANS=(-2.)/EXP(X) endif if(n.eq.2 .and. l.eq.0) then ANS=(X-2.)/(2.*EXP(X/2.)*SQRT(2.)) endif if(n.eq.2 .and. l.eq.1) then ANS=(-X)/(2.*EXP(X/2.)*SQRT(6.)) endif if(n.eq.3 .and. l.eq.0) then ANS=(2.*(-2.*X**2+18.*X-27.))/(81.*EXP(X/3.)*SQRT(3. . )) endif if(n.eq.3 .and. l.eq.1) then ANS=(4.*X*(X-6.))/(81.*EXP(X/3.)*SQRT(6.)) endif if(n.eq.3 .and. l.eq.2) then ANS=(-4.*X**2)/(81.*EXP(X/3.)*SQRT(30.)) endif if(n.eq.4 .and. l.eq.0) then ANS=(X**3-24.*X**2+144.*X-192.)/(768.*EXP(X/4.)) endif if(n.eq.4 .and. l.eq.1) then ANS=(X*(-X**2+20.*X-80.))/(256.*EXP(X/4.)*SQRT(15.)) endif if(n.eq.4 .and. l.eq.2) then ANS=(X**2*(X-12.))/(768.*EXP(X/4.)*SQRT(5.)) endif if(n.eq.4 .and. l.eq.3) then ANS=(-X**3)/(768.*EXP(X/4.)*SQRT(35.)) endif hydrad= - ANS return end