Search Site | Contact Details | FAQ

ADAS Subroutine r8fdip

C
      REAL*8 FUNCTION R8FDIP(E1,L1,E2,L2)                               
      IMPLICIT REAL*8(A-H,O-Z)                                         
C-----------------------------------------------------------------------
C
C  ****************** FORTRAN77 FUNCTION: R8FDIP ***********************
C
C PURPOSE: CALCULATES THE DIPOLE INTEGRAL I(KAPPA1,L1,KAPPA2,L2,1)
C
C NOTE: CREATED BY  ALAN BURGESS AS DEFINED IN PHIL. TRANS. ROY. SOC. 
C       A226,255,1970, WHERE E1=KAPPA1**2 AND E2=KAPPA2**2. APPLIES TO
C       POSITIVE ELECTRON ENERGIES, THAT IS THE FREE-FREE CASE.  
C       IT IS SUITABLE FOR USE IN EQUATIONS (8),(9),(10) OR (11) OF           
C       J. PHYS. B. 7,L364,1974.                                              
C
C CALLING PROGRAMS: GENERAL
C
C INPUT:  (R*8)  E1      = KAPPA1**2 WHERE KAPPA1 IS SCALED INITIAL
C                          ELECTRON WAVE NUMBER 
C INPUT:  (I*4)  L1      = ORBITAL ANGULAR OMENTUM OF INITIAL ELECTRON 
C INPUT:  (R*8)  E2      = KAPPA2**2 WHERE KAPPA2 IS SCALED INITIAL
C                          ELECTRON WAVE NUMBER 
C INPUT:  (I*4)  L2      = ORBITAL ANGULAR OMENTUM OF FINAL ELECTRON 
C
C OUTPUT: (R*8)  R8FDIP  = I(KAPPA1,L1,KAPPA2,L2,1) 
C
C ROUTINES:
C          ROUTINE    SOURCE   BRIEF DESCRIPTION
C          -------------------------------------------------------------
C          R8FDIP1    ADAS     SMALL ENRGY CHGE.APPROX. TO DIPOLE INTEG.
C          R8FDIP2    ADAS     SMALL ENRGY CHGE.APPROX. TO DIPOLE INTEG.
C          R8FMON1    ADAS     EVALUATES MONOPOLE INTEGRAL
C          ARGAM      ADAS     CALCULATES ARGGAMMA(L+1+I*A)
C
C UNIX-IDL PORT:
C
C VERSION: 1.1                          DATE: 17-04-07
C MODIFIED: HUGH SUMMERS
C               - FIRST FULLY COMMENTED RELEASE
C
C-----------------------------------------------------------------------
      IF(E1+E2-1.0D-40) 11,11,12                                        
   11 R8FDIP=0.0D0                                                      
      RETURN                                                            
   12 IF(E1-E2) 1,1,2                                                   
    1 EMIN=E1                                                           
      EMAX=E2                                                           
      GO TO 3                                                           
    2 EMIN=E2                                                           
      EMAX=E1                                                           
    3 T=EMIN/EMAX                                                       
      IF(T-0.02944D0) 4,4,5                                             
    4 R8FDIP=R8FDIP1(E1,L1,E2,L2)                                       
      GO TO 9                                                           
    5 IF(T-0.16667D0) 7,6,6                                             
    6 R8FDIP=R8FDIP2(E1,L1,E2,L2)                                       
      GO TO 9                                                           
    7 R8FDIP=R8FDIP1(E1,L1,E2,L2)                                       
       IF(R8FDIP*R8FDIP-1.0D-40) 6,6,8                                  
    8 RETURN                                                            
    9  IF(R8FDIP*R8FDIP-1.0D-40) 10,10,8                                
   10 WRITE(6,100)                                                      
      RETURN                                                            
  100 FORMAT(17H   R8FDIP FAILURE)                                      
      END                                                               
      INTEGER             L1,          L2
      REAL*8              E1,          E2
© Copyright 1995-2024 The ADAS Project
Comments and questions to: adas-at-adas.ac.uk