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