Search Site | Contact Details | FAQ

ADAS Subroutine nlthes

       SUBROUTINE NLTHES(Z0,ZEFF,N,L,E0)
       IMPLICIT REAL*8(A-H,O-Z)
C-----------------------------------------------------------------------
C  PURPOSE: PROVIDES BINDING ENERGY OF TERM CENTRE FOR OUTER ELECTRON
C           IN LITHIUM LIKE IONS
C
C  FROM EDLEN (1979) PHYSICA SCRIPTA, 19, 255.
C
C  FINE STRUCTURE FOR L>0 MUST BE ADDED EXTERNALLY. INFINITE MASS VALUE
C  FOR RYDBERG CONSTANT IS USED. (NOT NOW SEE BELOW!!)
C                                     ---
C  5 SEPT 1985 CHANGED R =109737.3 (I.E INFINITY MASS VALUE) TO
C  ----------- THE Z DEPENDANT EQUATION SEE BELOW.......J.SPENCE
C
C       ALL NEWLLPS3  RUNS  FROM  5 SEPT 1985 ONWARDS HAVE THIS
C       CHANGE ADDED IN, BUT %DIFF. IS SO VERY VERY SLIGHT THAT
C       EVEN IF  THE FINAL  RESULTS  DO  CHANGE THEY WILL BE IN
C       THE LAST FEW DEC. PLACES.
C         E.G BEFORE 3.11321270 NOW GET 3.11321269 ===> APPROX. N/C
C
C    NEWLLPS3.FORT(NLTHES2) ====> IS THE ORIGINAL ROUTINE WITH
C                                 RZ=109737.318.
C                                 (THIS ROUTINE EXISTS IN SOURCE FORM
C                                  ONLY. I.E IT IS NOT COMPILED.)
C
C-----------------------------------------------------------------------
C VERSION  : 1.1
C DATE     : 18-03-1999
C MODIFIED : ???
C
C VERSION  : 1.2
C DATE     : 05-10-2000
C MODIFIED : ???
C             - Removed junk from columns > 72
C
C VERSION  : 1.3
C DATE     : 16-05-2007
C MODIFIED : Allan Whiteford
C             - Updated comments as part of subroutine documentation
C               procedure.
C
C-----------------------------------------------------------------------
       EL0(Z)=0.25D0*(Z*Z-3.18244D0*Z+2.0038D0+0.208015D0/(Z-1.3833D0))
     &-6.3789D-6*RCORR*(Z-2.0D0)**2
       SIG0(Z)=0.141441D0*(Z-1.7025D0-0.768371D0*(1.0D0-0.090333D0/(Z-
     &2.184D0))/(Z-0.975D0))-1.9137D-6*RCORR*(Z-2.0D0)**2
       P(XN,XL)=(3.0D0*XN*XN-XL*(XL+1.0D0))/(2.0D0*XN**5*(XL-0.5D0)*
     &XL*(XL+0.5D0)*(XL+1.0D0)*(XL+1.5D0))
       QP(XN,XL)=(35.0D0*XN**4-5.0D0*XN*XN*(6.0D0*XL*(XL+1.0D0)-5.0D0)+
     &3.0D0*(XL-1.0D0)*XL*(XL+1.0D0)*(XL+2.0D0))/(8.0D0*XN**7*(XL-1.5D0)
     &*(XL-1.0D0)*(XL-0.5D0)*XL*(XL+0.5D0)*(XL+1.0D0)*(XL+1.5D0)*(XL+
     &2.0D0)*(XL+2.5D0))
       DRS(Z)=0.456536D0*(Z-1.2808D0)**4+1.2763D-5*(Z-1.2808D0)**6+
     &4.34D-10*(Z-1.2808D0)**8
       DRP(Z)=0.21305D0*(Z-2.241D0)**4+0.466D-5*(Z-2.241D0)**6+
     &1.48D-10*(Z-2.241D0)**8
       DLS(Z)=4.5246D-3*(Z-1.6D0)**4*(-2.179D0-2.0D0*DLOG(7.29729D-3*
     &(Z-1.6D0))+5.26427D-2*(Z-1.6D0)-5.32504D-5*(Z-1.6D0)**2*(3.0D0*
     &(DLOG(7.29729D-3*(Z-1.6D0)))**2+8.695D0*DLOG(7.29729D-3*(Z-1.6D0))
     &+19.081D0))
       DLP(Z)=4.525D-3*(Z-2.0D0)**4*(3.0D-2-2.6412D-5*(Z-2.0D0)**2*DLOG(
     &7.29729D-3*(Z-2.0D0)))
C
C           ................. IMPROVEMENTS ....................
C
C      R=109737.318D0  <<<<<<< OLD LINE BEFORE 5 SEPT 1985.
C      REPLACEMENT FOR ABOVE LINE IS GIVEN BELOW.
       R=109737.318D0-60.200D0/(2.00D0*Z0)
C
C      EL0( ) AND SIG0( ) ABOVE HAD SOME CONSTANTS DIVIDED BY 109737.3
C      THIS CORRECTION VALUE PUTS 109737.3 BACK IN AND INSTEAD DIVIDES
C      THOSE CONSTANTS BY THE Z-DEPT R ABOVE.
       RCORR=109737.3/R
C
C      WRITE(6,1414)R,RCORR
 1414  FORMAT(' R,RCORR = ',1P2E15.7)
       EN=N
       XL=L
       T1=DRS(Z0)
       T2=DRP(Z0)
       T3=DLS(Z0)
       T4=DLP(Z0)
C      WRITE(6,101)T1,T2,T3,T4
       IF(L-1)10,20,40
C  S STATES
   10  T2S=R*EL0(Z0)+DRS(Z0)-DLS(Z0)
C      WRITE(6,101)T2S
       T2S=T2S/(R*(Z0-2.0D0)**2)
C      WRITE(6,101)T2S
       D2S=2.0D0-1.0D0/DSQRT(T2S)
       C=0.0828D0/Z0-0.2283D0/Z0**2
       B=-5.5D-4*Z0+5.963D-3+0.19404D0/(Z0-0.36D0)-0.3368D0/(Z0-0.36D0)*
     &*2
       A=D2S-B*T2S-C*T2S*T2S
C      WRITE(6,101)A,B,C
       GO TO 30
C  P STATES
   20  T2P1=R*EL0(Z0)+DRS(Z0)-DLS(Z0)
       T2P2=R*SIG0(Z0)+DRS(Z0)-DRP(Z0)-DLS(Z0)+DLP(Z0)
C      WRITE(6,101)T2P1,T2P2
       T2P=(T2P1-T2P2)/(R*(Z0-2.0D0)**2)
       D2P=2.0D0-1.0D0/DSQRT(T2P)
       C=-2.603D-2/(Z0-2.37D0)+1.326D-2/(Z0-2.37D0)**2
       B=-1.2D-3*Z0+2.1237D-2-8.905D-2/(Z0-1.74D0)+4.803D-2/(Z0-1.74D0)*
     &*2
       A=D2P-B*T2P-C*T2P*T2P
C      WRITE(6,101)A,B,C
   30  U=0.0D0
   31  U0=U
       V=EN-U0
       TNL=1.0D0/V**2
       U=A+TNL*(B+TNL*C)
C      WRITE(6,101)TNL,U,U0
  101  FORMAT(1P4D15.7)
       IF(DABS(U-U0).LE.1.0D-6)GO TO 35
       GO TO 31
   35  TNL=((Z0-2.0D0)/(EN-U))**2
       GO TO 50
C  L>2 CASES
   40  S=0.3397D0+0.102D0/(Z0-0.4D0)
       A=9.0D0*((Z0-2.0D0)/(Z0-S))**4
       AK=0.2113D0*Z0+0.598D0-2.4D0/Z0
       DELTAP=A*P(EN,XL)+A*DSQRT(A)*AK*QP(EN,XL)
C      TRR=(Z0-2.0D0)**2*(1.0D0+5.32504D-5*(Z0-2.0D0)**2*(EN/(XL+0.5D0)-
C    &0.75D0)/(EN*EN))/(EN*EN)
C      WRITE(6,7845)TRR*R,DELTAP*R
 7845  FORMAT(' TRR*R,DELTAP*R = ',1P2E15.7)
       TNL=(Z0-2.0D0)**2*(1.0D0+5.32504D-5*(Z0-2.0D0)**2*(EN/(XL+0.5D0)-
     &0.75D0)/(EN*EN))/(EN*EN)+DELTAP
   50  E0=TNL
C      WRITE(7,100)Z0,N,L,TNL
  100  FORMAT(1H ,F5.1,2I5,1PD15.7)
C      WRITE(6,7842)V
 7842  FORMAT(' N STAR = ',1PE15.7)
C      IF(L.LT.2)GOTO 7844
C      WRITE(6,7843)EN,XL,R*P(EN,XL),QP(EN,XL)/P(EN,XL)
 7843  FORMAT(' EN,XL,P,Q = ',1P4E15.7)
 7844  RETURN
      END
      INTEGER             L,           N
      REAL*8              E0,          Z0,          ZEFF
© Copyright 1995-2024 The ADAS Project
Comments and questions to: adas-at-adas.ac.uk