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