ADAS Subroutine c8tbqm
SUBROUTINE C8TBQM( MXNSHL , IZ0 , IZ1 , NBOT , & NTOP , TEV , DENS , ZP , & TPV , EMP , TBLF , TBQMEP , & TBQMEM , TBQMIP , TBQMIM & ) C C C----------------------------------------------------------------------- C C ****************** FORTRAN77 SUBROUTINE: C8TBQM ********************* C C PURPOSE: SETS UP TABLES OF ELECTRON AND POSITIVE ION IMPACT RATE C COEFFICIENTS BETWEEN NEARLY DEGENERATE L STATES OF THE C SAME N FOR HYDROGENIC IONS. C C CALLING PROGRAM: ADAS308 C C INPUT : (I*4) MXNSHL = MAXIMUM VALUE OF PRINCIPAL QUANTUM NUMBER. C INPUT : (I*4) IZ0 = NUCLEAR CHARGE OF TARGET ION. C INPUT : (I*4) IZ1 = ION CHARGE. C INPUT : (I*4) NBOT = MINIMUM PRINCIPAL QUANTUM NUMBER. C INPUT : (I*4) NTOP = MAXIMUM PRINCIPAL QUANTUM NUMBER. C INPUT : (R*8) TEV = ELECTRON TEMPERATURE. 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) ZP = CHARGE OF COLLIDING POSITIVE ION. C INPUT : (R*8) TPV = POSITIVE ION TEMPERATURE. 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) TBQMEP() = ELECTRON RATE COEFFT. FOR NL->NL+1. C INDEX FOR NL->NL+1 TRANSITION GIVEN BY C I4IDFL(N,L). C DIMENSION: REFERENCED BY FUNC I4IDFL(N,L). C OUTPUT: (R*8) TBQMEM() = ELECTRON RATE COEFFT. FOR NL+1->NL. C INDEX FOR NL+1->NL TRANSITION GIVEN BY C I4IDFL(N,L+1). C DIMENSION: REFERENCED BY FUNC I4IDFL(N,L). C OUTPUT: (R*8) TBQMIP() = POSITIVE ION RATE COEFFT. FOR NL->NL+1. C INDEX FOR NL->NL+1 TRANSITION GIVEN BY C I4IDFL(N,L). C DIMENSION: REFERENCED BY FUNC I4IDFL(N,L). C OUTPUT: (R*8) TBQMIM() = POSITIVE ION RATE COEFFT. FOR NL+1->NL. C INDEX FOR NL+1->NL TRANSITION GIVEN BY C I4IDFL(N,L+1). C DIMENSION: REFERENCED BY FUNC I4IDFL(N,L). C C PARAM : (I*4) MXJ = MAXIMUM NUMBER OF J SUB-SHELLS. C PARAM : (R*8) P1 = C PARAM : (R*8) P2 = C C (I*4) NI = VALENCE ELECTRON PRINCIPAL QUANTUM NUMBER C IN STATE I. C (I*4) NJ = VALENCE ELECTRON PRINCIPAL QUANTUM NUMBER C IN STATE J. C (I*4) LI = VALENCE ELECTRON ORBITAL QUANTUM NUMBER IN C STATE I. C (I*4) LJ = VALENCE ELECTRON ORBITAL QUANTUM NUMBER IN C STATE J. C (I*4) IDLI = TABLE INDEX. C (I*4) IDLJ = TABLE INDEX. C (I*4) I = LOOP INDEX. C C (R*8) FACE = C (R*8) FACI = C (R*8) WI = STATISTICAL WEIGHT OF STATE I. C (R*8) WJ = STATISTICAL WEIGHT OF STATE J. C (R*8) GAE = GAMA RATE PARAMETER FOR ELECTRON COLLISIONS. C (R*8) GAP = GAMA RATE PARAMETER FOR POSITIVE ION C COLLISIONS. C (R*8) QEP() = ELECTRON RATE COEFFT. FOR NLJ->NL+1J' C DIMENSION: J->J' TRANSITION INDEX. C (R*8) QEM() = ELECTRON RATE COEFFT. FOR NLJ->NL-1J' C DIMENSION: J->J' TRANSITION INDEX. C (R*8) QIP() = POSITIVE ION RATE COEFFT. FOR NLJ->NL+1J' C DIMENSION: J->J' TRANSITION INDEX. C (R*8) QIM() = POSITIVE ION RATE COEFFT. FOR NLJ->NL-1J' C DIMENSION: J->J' TRANSITION INDEX. 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) BEFORE CALLING C8TBQM THE LIFETIME TABLE MUST BE FILLED C WITH A CALL TO CXTBLF. C C ROUTINES: C ROUTINE SOURCE BRIEF DESCRIPTION C ------------------------------------------------------------- C I4IDFL ADAS RETURNS UNIQUE INDEX GIVEN QUANTUM C NUMBERS N AND L. C CXCRDG ADAS CALCULATES COLLISIONAL RATE COEFFICIENTS C BETWEEN NEARLY DEGENERATE LEVELS OF C H-, LI- OR NA-LIKE IONS. C C AUTHOR: JONATHAN NASH (TESSELLA SUPPORT SERVICES PLC) C K1/0/81 C JET EXT. 5183 C C DATE: 12/10/93 C C----------------------------------------------------------------------- C C----------------------------------------------------------------------- INTEGER IZ0, IZ1, MXNSHL, NBOT INTEGER NTOP REAL*8 DENS, EMP REAL*8 TBLF((MXNSHL*(MXNSHL+1))/2) REAL*8 TBQMEM((MXNSHL*(MXNSHL+1))/2) REAL*8 TBQMEP((MXNSHL*(MXNSHL+1))/2) REAL*8 TBQMIM((MXNSHL*(MXNSHL+1))/2) REAL*8 TBQMIP((MXNSHL*(MXNSHL+1))/2), TEV REAL*8 TPV, ZP