ADAS Subroutine cxmrdg
SUBROUTINE CXMRDG ( MXNSHL , MXJSHL , IZ0 , IZ1 , & AMSSNO , NI , LI , NJ , & LJ , BMAG , TIEV , TBLF , & FMP , FMM , FMI , FMJ & ) C C C----------------------------------------------------------------------- C C ****************** FORTRAN77 SUBROUTINE: CXMRDG ********************* C C PURPOSE: CALCULATES MAGNETIC FIELD DEPENDENT MIXING RATE C COEFFICIENTS BETWEEN NEARLY DEGENERATE LEVELS FOR C HYDROGEN-LIKE, LITHIUM-LIKE AND SODIUM-LIKE IONS. C C RATES ARE CALCULATED FOR THE SEPARATE C NLJ->NL+1J', NLJ->NLJ' AND NLJ->NL-1J' C TRANSITIONS. C C CALLING PROGRAM: C6TBFM 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 : (R*8) AMSSNO = ATOMIC MASS NO. 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) BMAG = MAGNETIC INDUCTION. C UNITS: TESLA C INPUT : (R*8) TIEV = TEMPERATURE (ION DISTRIBUTION). C UNITS: EV 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) FMP() = RATE COEFFT. FOR NLJ->NL+1J'. C DIMENSION: J->J' TRANSITION INDEX. C OUTPUT: (R*8) FMM() = RATE COEFFT. FOR NLJ->NL+1J'. C DIMENSION: J->J' TRANSITION INDEX. C OUTPUT: (R*8) FMI() = RATE COEFFT. FOR NLJ->NLJ' FOR STATE I. C DIMENSION: J->J' TRANSITION INDEX. C OUTPUT: (R*8) FMJ() = RATE COEFFT. FOR NLJ->NLJ' FOR STATE J. C DIMENSION: J->J' TRANSITION INDEX. C C PARAM : (I*4) MXTERM = 2. C PARAM : (R*8) P1 = C C (I*4) ICI = C (I*4) ICJ = C (I*4) I = LOOP INDEX. C (I*4) J = LOOP INDEX. C C (R*8) Z1 = REAL VALUE = IZ1. C (R*8) TI = TEMPERATURE (ION DISTRIBUTION). C UNITS: 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) FACT1 = C (R*8) FACT2 = C (R*8) EI0 = BINDING ENERGY FOR STATE I. C UNITS: RYD C (R*8) EJ0 = BINDING ENERGY FOR STATE J. C UNITS: RYD C (R*8) ZEFFI = EFFECTIVE ION CHARGE FOR STATE I. C (R*8) ZEFFJ = EFFECTIVE ION CHARGE FOR STATE J. C (R*8) TAUI = RADIATIVE LIFETIME FOR STATE I. C UNITS: SECS C (R*8) TAUJ = RADIATIVE LIFETIME FOR STATE J. C UNITS: SECS C (R*8) TAU = C (R*8) XS = C (R*8) XXJI = C (R*8) XXJJ = C (R*8) DE = C (R*8) W = C (R*8) T1 = C (R*8) T2 = C (R*8) T3 = C (R*8) F1 = C (R*8) F2 = C C (R*8) XSI() = C DIMENSION: 2 C (R*8) XJI() = C DIMENSION: 2 C (R*8) XEI() = C DIMENSION: 2 C (R*8) XSJ() = C DIMENSION: 2 C (R*8) XJJ() = C DIMENSION: 2 C (R*8) XEJ() = 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 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 AUTHOR: JONATHAN NASH (TESSELLA SUPPORT SERVICES PLC) C K1/0/81 C JET EXT. 5183 C C DATE: 04/11/93 C C UNIX-IDL PORT: C C AUTHOR: WILLIAM OSBORN (TESSELLA SUPPORT SERVICES PLC) C C DATE: 22ND MAY 1996 C C VERSION: 1.1 DATE: 22-05-96 C MODIFIED: WILLIAM OSBORN C - FIRST VERSION. IBM VERSION NOT CHANGED C C VERSION: 1.2 DATE: 17-05-07 C MODIFIED: Allan Whiteford C - Updated comments as part of subroutine documentation C procedure. C----------------------------------------------------------------------- C C----------------------------------------------------------------------- INTEGER IZ0, IZ1, LI, LJ INTEGER MXJSHL, MXNSHL, NI, NJ REAL*8 AMSSNO, BMAG, FMI(2*MXJSHL) REAL*8 FMJ(2*MXJSHL), FMM(2*MXJSHL) REAL*8 FMP(2*MXJSHL) REAL*8 TBLF((MXNSHL*(MXNSHL+1))/2), TIEV