ADAS Subroutine cxcrdg
SUBROUTINE CXCRDG ( MXNSHL , MXJSHL , IZ0 , IZ1 ,
& NI , LI , NJ , LJ ,
& TEV , DENS , ZP , TPV ,
& EMP , TBLF , GAE , GAP ,
& QEP , QEM , QIP , QIM
& )
C
C
C-----------------------------------------------------------------------
C
C ****************** FORTRAN77 SUBROUTINE: CXCRDG *********************
C
C PURPOSE: CALCULATES ELECTRON AND +VE ION COLLISIONAL RATE
C COEFFICIENTS BETWEEN NEARLY DEGENERATE LEVELS FOR
C HYDROGEN-LIKE, LITHIUM-LIKE AND SODIUM-LIKE IONS.
C
C RATES ARE CALCULATED FOR BOTH TERM AVERAGED AND
C SEPARATE NLJ->NL+1J' AND NLJ->NL-1J' STATES.
C
C
C CALLING PROGRAM: C6TBQM , C8TBQM
C
C INPUT : (I*4) MXNSHL = MAXIMUM NUMBER OF N SHELLS.
C INPUT : (I*4) MXJSHL = MAXIMUM NUMBER OF J SUB-SHELLS.
C INPUT : (I*4) IZ0 = TARGET NUCLEAR CHARGE.
C INPUT : (I*4) IZ1 = ION CHARGE.
C INPUT : (I*4) NI = VALENCE ELECTRON PRINCIPAL QUANTUM NUMBER
C IN STATE I.
C INPUT : (I*4) LI = VALENCE ELECTRON ORBITAL QUANTUM NUMBER IN
C STATE I.
C INPUT : (I*4) NJ = VALENCE ELECTRON PRINCIPAL QUANTUM NUMBER
C IN STATE J.
C INPUT : (I*4) LJ = VALENCE ELECTRON ORBITAL QUANTUM NUMBER IN
C STATE J.
C INPUT : (R*8) TEV = TEMPERATURE (ELECTRON DISTRIBUTION).
C UNITS: EV
C INPUT : (R*8) DENS = ELECTRON DENSITY.
C UNITS: CM-3
C INPUT : (R*8) ZP = CHARGE OF COLLIDING POSITIVE ION.
C INPUT : (R*8) TPV = TEMPERATURE (COLLIDING POSITIVE ION
C DISTRIBUTION).
C UNITS: EV
C INPUT : (R*8) EMP = REDUCED MASS FOR COLLIDING POSITIVE ION.
C UNITS: ELECTRON MASSES
C INPUT : (R*8) TBLF() = TABLE OF RADIATIVE LIFETIMES.
C UNITS: SECS
C DIMENSION: REFERENCED BY FUNC I4IDFL(N,L).
C
C OUTPUT: (R*8) GAE = TERM AVERAGED GAMA RATE PARAMETER FOR
C ELECTRON COLLISIONS.
C OUTPUT: (R*8) GAP = TERM AVERAGED GAMA RATE PARAMETER FOR
C POSITIVE ION COLLISIONS.
C OUTPUT: (R*8) QEP() = ELECTRON RATE COEFFT. FOR NLJ->NL+1J'
C DIMENSION: J->J' TRANSITION INDEX.
C OUTPUT: (R*8) QEM() = ELECTRON RATE COEFFT. FOR NLJ->NL-1J'
C DIMENSION: J->J' TRANSITION INDEX.
C OUTPUT: (R*8) QIP() = POSITIVE ION RATE COEFFT. FOR NLJ->NL+1J'
C DIMENSION: J->J' TRANSITION INDEX.
C OUTPUT: (R*8) QIM() = POSITIVE ION RATE COEFFT. FOR NLJ->NL-1J'
C DIMENSION: J->J' TRANSITION INDEX.
C
C PARAM : (I*4) MXTEMP = MAXIMUM NUMBER OF TEMPERATURES.
C PARAM : (I*4) MXCOLL = MAXIMUM NUMBER OF COLLISION STRENGTHS.
C PARAM : (I*4) MXTERM = 2.
C PARAM : (R*8) P1 =
C
C (I*4) IZ = IZ1-1.
C (I*4) NTEMP = NUMBER OF TABULATED TEMPERATURES.
C (I*4) NCOLL = NUMBER OF TABULATED COLLISION STRENGTHS.
C (I*4) ICI =
C (I*4) ICJ =
C (I*4) IZC = INTEGER BELOW CHARGE OF POSITIVE ION.
C (I*4) I = LOOP INDEX.
C (I*4) J = LOOP INDEX.
C
C (R*8) WI = STATISTICAL WEIGHT OF STATE I.
C (R*8) WJ = STATISTICAL WEIGHT OF STATE J.
C (R*8) EI = BINDING ENERGY OF STATE I.
C UNITS: RYD
C (R*8) EJ = BINDING ENERGY OF STATE I.
C UNITS: RYD
C (R*8) TE = TEMPERATURE (ELECTRON DISTRIBUTION).
C UNITS:
C (R*8) TP = TEMPERATURE (COLLIDING POSITIVE ION
C DISTRIBUTION).
C UNITS:
C (R*8) Z1 = REAL VALUE = IZ1.
C (R*8) XNI = REAL VALUE = NI.
C (R*8) XLI = REAL VALUE = LI.
C (R*8) XLJ = REAL VALUE = LJ.
C (R*8) XLG =
C (R*8) EI0 = BINDING ENERGY FOR STATE I.
C (R*8) EJ0 = BINDING ENERGY FOR STATE J.
C (R*8) ZEFFI = EFFECTIVE ION CHARGE FOR STATE I.
C (R*8) ZEFFJ = EFFECTIVE ION CHARGE FOR STATE J.
C (R*8) TAU =
C (R*8) W =
C (R*8) T1 =
C (R*8) T2 =
C (R*8) XXLI =
C (R*8) XXLJ =
C (R*8) XS =
C (R*8) XXJI =
C (R*8) XXJJ =
C (R*8) DE =
C (R*8) PHI =
C (R*8) ZC =
C (R*8) EMM =
C (R*8) QI1 = COLLISIONAL EXCITATION RATE COEFFICIENT FROM
C PENGELLY AND SEATON.
C UNITS: CM3 SEC-1
C (R*8) QIJ = COLLISIONAL DEEXCITATION RATE COEFFICIENT
C FROM PENGELLY AND SEATON.
C UNITS: CM3 SEC-1
C (R*8) G1 = GAMMA RATE PARAMETER FROM PENGELLY AND
C SEATON.
C UNITS:
C (R*8) RAT =
C (R*8) SCF = SCALING FACTOR.
C
C (R*8) EPS() = INCIDENT ELECTRON ENERGIES.
C UNITS: RYD
C DIMENSION: COLLISION INDEX.
C (R*8) OMEG() = COLLISION STRENGTHS.
C DIMENSION: COLLISION INDEX.
C (R*8) TA() = TEMPERATURES (INCIDENT POSITIVE ION
C DISTRIBUTION).
C UNITS: EV
C DIMENSION: TEMPERATURE INDEX.
C (R*8) QI() = COLLISIONAL EXCITATION RATE COEFFICIENTS
C FROM IMPACT PARAMETER APPROXIMATION.
C UNITS: CM3 SEC-1
C DIMENSION: TEMPERATURE INDEX.
C (R*8) QJ() = COLLISIONAL DEEXCITATION RATE COEFFICIENTS
C FROM IMPACT PARAMETER APPROXIMATION.
C UNITS: CM3 SEC-1
C DIMENSION: TEMPERATURE INDEX.
C (R*8) GA() = GAMMA RATE PARAMETERS FROM IMPACT PARAMETER
C APPROXIMATION.
C UNITS:
C DIMENSION: TEMPERATURE INDEX.
C (R*8) XSJ() =
C DIMENSION: 2
C (R*8) XJJ() =
C DIMENSION: 2
C (R*8) XEJ() =
C DIMENSION: 2
C (R*8) XSI() =
C DIMENSION: 2
C (R*8) XJI() =
C DIMENSION: 2
C (R*8) XEI() =
C DIMENSION: 2
C
C ROUTINES:
C ROUTINE SOURCE BRIEF DESCRIPTION
C -------------------------------------------------------------
C I4UNIT ADAS RETURNS UNIT NO. FOR OUTPUT OF MESSAGES.
C I4IDFL ADAS RETURNS UNIQUE INDEX GIVEN QUANTUM
C NUMBERS N AND L.
C R8ZETA ADAS
C R8WIG6 ADAS
C CXHYDE ADAS CALCULATES BINDING ENERGY FOR H-LIKE
C ION.
C CXLTHE ADAS CALCULATES BINDING ENERGY FOR LI-LIKE
C ION.
C CXSODE ADAS CALCULATES BINDING ENERGY FOR NA-LIKE
C ION.
C CXCRPS ADAS CALCULATES COLLISON RATE COEFFICIENTS
C FROM PENGELLY AND SEATON.
C CXCRIP ADAS CALCULATES COLLISON RATE COEFFICIENTS
C FROM IMPACT PARAMETER APPROXIMATION.
C
C NOTES:
C 1) THE J->J' TRANSITION INDEX IS AS FOLLOWS:
C 1 : J=L+0.5 -> J'=L'+0.5
C 2 : J=L+0.5 -> J'=L'-0.5
C 3 : J=L-0.5 -> J'=L'+0.5
C 4 : J=L-0.5 -> J'=L'-0.5
C
C 2) THE SCALING FACTOR 'SCF' USED IN CALCULATING THE POSITIVE ION
C RATES IS NEEDED BECAUSE THE CROSS-SECTION ROUTINES REQUIRE AN
C INTEGER VALUE FOR THE ION CHARGE. THE ADJACENT LOWER INTEGER
C VALUE IS USED AND THE RESULTS SCALED BY 'SCF'.
C
C AUTHOR: JONATHAN NASH (TESSELLA SUPPORT SERVICES PLC)
C K1/0/81
C JET EXT. 5183
C
C DATE: 08/10/93
C
C UPDATE: 01/11/93 - J NASH - ADAS91:
C UPDATED TO MORE GENERAL FORM TO ALLOW USE BY EITHER ADAS306
C OR ADAS308. NOW HANDLES H-, LI-, OR NA-LIKE IONS, AND
C RETURNS EXPLICIT RATES FOR J-RESOLVED TRANSITIONS.
C
C
C VERSION : 1.2
C DATE : 28-09-2005
C MODIFIED: Martin O'Mullane
C - Scale the gamma (GAP) in addition to the rates
C since 308 and 309 use this and ignore QIP and QIM.
C
C VERSION : 1.3
C DATE : 17-05-2007
C MODIFIED: Allan Whiteford
C - Updated comments as part of subroutine documentation
C procedure.
C
C-----------------------------------------------------------------------
C
C-----------------------------------------------------------------------
INTEGER IZ0, IZ1, LI, LJ
INTEGER MXJSHL, MXNSHL, NI, NJ
REAL*8 DENS, EMP, GAE, GAP
REAL*8 QEM(2*MXJSHL), QEP(2*MXJSHL)
REAL*8 QIM(2*MXJSHL), QIP(2*MXJSHL)
REAL*8 TBLF((MXNSHL*(MXNSHL+1))/2), TEV
REAL*8 TPV, ZP