Search Site | Contact Details | FAQ

ADAS Subroutine qlpr

       FUNCTION QLPR(Z1,N1,N2,E1,ZP,ATMSSP)                   
C
       IMPLICIT REAL*8(A-H,O-Z)                              
C
C-----------------------------------------------------------------------
C
C  ****************** FORTRAN77 FUNCTION: QLPR *************************
C
C-----------------------------------------------------------------------
C  PURPOSE: CALCULATE LODGE-PERCIVAL-RICHARDS ION IMPACT EXCITATION
C           CROSS-SECTIONS IN ORIGINAL FORM  (J.PHYS.B. (1976)9,239).
C
C  EXCITATION CROSS-SECTION IS EVALUATED AND DE-EXCITATION CROSS-SECTION
C  OBTAINED BY DETAILED BALANCE
C
C  SCALING TO ARBITRARY PROJECTILE CHARGE FOLLOWS RECOMMENDATIONS
C  OF RIENHOLD,, OLSEN & FRITSCH (1990)PHYS.REV.A 41,4837
C
C
C  INPUT                                                            
C      Z1=TARGET ION CHARGE +1                                     
C      N1=INITIAL PRINCIPAL QUANTUM NUMBER                        
C      N2=FINAL PRINCIPAL QUANTUM NUMBER                         
C      E1=ENERGY OF EQUIVALENT ELECTRON IN RYDBERGS             
C         (CORRESPONDS TO ACTUAL PROJECTILE ENERGY/25KEV)
C      ZP=PROJECTILE CHARGE
C      ATMSSP= PROJECTILE MASS IN PROTON UNITS
C  OUTPUT                                                      
C      QLPR=CROSS-SECTION IN PI*A0**2 UNITS                     
C
C
C  ***********  H.P.SUMMERS, JET            16/ 7/90 *************** 
C
C NOTES: THIS ROUTINE IS NOT YET PROPERLY ANNOTATED
C
C UNIX-IDL PORT:
C
C VERSION: 1.1                          DATE: 16-1-96
C MODIFIED: TIM HAMMOND (TESSELLA SUPPORT SERVICES PLC)
C               - FIRST VERSION
C
C VERSION: 1.2                          DATE: 16-05-07
C MODIFIED: Allan Whiteford
C             - Updated comments as part of subroutine documentation
C               procedure.
C-----------------------------------------------------------------------
C
C-----------------------------------------------------------------------
       ZZ1=Z1*Z1                                                      
       ZZP=ZP*ZP                                                     
       IF(N1.LT.N2)THEN
           E=E1                                                     
           T1=1.0D0                                                
           EN1=N1                                                 
           EN2=N2                                                
       ELSEIF (N1.EQ.N2)THEN
           QLPR=0.0D0
           RETURN
       ELSE
           E2=E1-ZZ1*(1.0D0/(EN1*EN1)-1.0D0/(EN2*EN2))/(1836.12*ATMSSP)
           E=E2                                           
           T1=(EN2*EN2*E2)/(EN1*EN1*E1)                  
           EN1=N2                                       
           EN2=N1                                      
       ENDIF
       S=EN2-EN1                                      
       EN12=EN1*EN2                                  
       A=2.666667D0/S*(EN2/(S*EN1))**3*(0.184D0-0.04/S**0.66667D0)* 
     &   (1.0D0-0.2D0*S/EN12)**(1.0D0+2.0D0*S)                     
       D=DEXP(-ZZ1*ZZP/(EN12*E*E))                         
       F=(1.0D0-0.3D0*S*D/EN12)**(1.0D0+2.0D0*S)            
       Y=1.0D0/(1.0D0-D*DLOG(18.0D0*S)/(4.0D0*S))            
       XL=DLOG((1.0D0+0.53D0*E*E*EN1*(EN2-2/EN2)/(ZZ1*ZZP))
     &                                /(1.0D0+0.4D0*E/ZP))
       G=0.5D0*(E*EN1*EN1/(Z1*ZP*(EN2-1.0D0/EN2)))**3         
       T=DSQRT(2.0D0-(EN1/EN2)**2)                             
       XP=2.0D0*Z1*ZP/(E*EN1*EN1*(T+1.0D0))                     
       XM=2.0D0*Z1*ZP/(E*EN1*EN1*(T-1.0D0))                      
       CP=(XP*XP/(2.0D0*Y+1.5D0*XP))*DLOG(1.0D0+0.66667D0*XP)     
       CM=(XM*XM/(2.0D0*Y+1.5D0*XM))*DLOG(1.0D0+0.66667D0*XM)      
       H=CM-CP                                                      
C      WRITE(6,1000)E,EN1,EN2,Z1,ZP,T1
C      WRITE(6,1001)A,D,XL,F,G,H
C      WRITE(7,1000)E,EN1,EN2,Z1,ZP,T1
C      WRITE(7,1001)A,D,XL,F,G,H
       QLPR=T1*EN1**4*(A*D*XL+F*G*H)*(ZZP/ZZ1)/E                     
       RETURN      
 1000  FORMAT(1H ,'E=',1PD10.2,3X,0P,'EN1=',F4.1,3X,'EN2=',F4.1,3X,
     &        'Z1=',F4.1,3X,'ZP=',F4.1,3X,'T1=',1PD10.2)
 1001  FORMAT(1H ,'A=',1PD10.2,3X,'D=',1PD10.2,3X,'XL=',1PD10.2,3X,
     &        'F=',1PD10.2,3X,'GP=',1PD10.2,3X,'H=',1PD10.2)
       END          
      INTEGER             N1,          N2
      REAL*8              ATMSSP,      E1,          Z1,          ZP
© Copyright 1995-2024 The ADAS Project
Comments and questions to: adas-at-adas.ac.uk