ADAS Subroutine cxqxl
SUBROUTINE CXQXL ( MXNENG , MXNSHL , MXBEAM , NBEAM ,
& BMENA , BMFRA , NBOT , NTOP ,
& NENRGY , ENRGYA , FRACLA , QTHEOR ,
& RATE , FTHEOR
& )
C
C
C-----------------------------------------------------------------------
C
C ****************** FORTRAN77 SUBROUTINE: CXQXL *********************
C
C PURPOSE: USES THE INPUT DATASET TO CALCULATE THE CHARGE EXCHANGE
C RATE COEFFICIENTS FOR NL-LEVELS AVERAGED OVER THE BEAM
C FRACTIONS. RATES ARE EXPRESSED AS A FRACTION OF
C CORRESPONDING N-LEVEL.
C
C CALLING PROGRAM: ADAS308
C
C INPUT : (I*4) MXNENG = MAXIMUM NO. OF ENERGIES.
C INPUT : (I*4) MXNSHL = MAXIMUM NO. OF N SHELLS.
C INPUT : (I*4) MXBEAM = MAXIMUM NO. OF BEAM ENERGIES.
C INPUT : (I*4) NBEAM = NUMBER OF BEAM ENERGIES.
C INPUT : (R*8) BMENA() = BEAM ENERGY COMPONENTS.
C UNITS: EV/AMU
C DIMENSION: COMPONENT INDEX.
C INPUT : (R*8) BMFRA() = BEAM COMPONENT FRACTIONS.
C DIMENSION: COMPONENT INDEX.
C INPUT : (I*4) NBOT = MINIMUM PRINCIPAL QUANTUM NUMBER.
C INPUT : (I*4) NTOP = MAXIMUM PRINCIPAL QUANTUM NUMBER.
C INPUT : (I*4) NENRGY = NUMBER OF ENERGIES IN DATASET.
C INPUT : (R*8) ENRGYA() = COLLISION ENERGIES.
C UNITS: EV/AMU
C DIMENSION: ENERGY INDEX
C INPUT : (R*8) FRACLA(,) = L-RESOLVED CHARGE EXCHANGE CROSS-SECTIONS
C EXPRESSED AS FRACTION OF CORRESPONDING
C N-RESOLVED CROSS-SECTION.
C 1ST DIMENSION: ENERGY INDEX
C 2ND DIMENSION: REFERENCED BY I4IDFL(N,L)
C INPUT : (R*8) QTHEOR() = MEAN RATE COEFFICIENTS FOR N-LEVELS
C AVERAGED OVER BEAM FRACTIONS.
C UNITS: CM3 SEC-1
C DIMENSION: REFERENCED BY N QUANTUM NUMBER.
C INPUT : (R*8) RATE(,) = RATE COEFFICIENTS FOR EACH COMPONENT OF
C THE BEAM AS A FUNCTION OF N-LEVEL.
C UNITS: CM3 SEC-1
C 1ST DIMENSION: BEAM INDEX
C 2ND DIMENSION: N-SHELL
C
C INPUT : (R*8) FTHEOR() = MEAN RATE COEFFICIENTS FOR NL-LEVELS
C AVERAGED OVER BEAM FRACTIONS. EXPRESSED AS
C FRACTIONS OF CORRESPONDING N-LEVELS.
C DIMENSION: REFERENCED BY I4IDFL(N,L)
C
C PARAM : (I*4) MXN = 'MXNSHL'.
C
C (I*4) IB = BEAM INDEX.
C (I*4) N = PRINCIPAL QUANTUM NUMBER.
C (I*4) IE = ENERGY INDEX.
C (I*4) IEU = ENERGY INDEX ABOVE BEAM ENERGY.
C (I*4) IEL = ENERGY INDEX BELOW BEAM ENERGY.
C (I*4) IDL = LOOP INDEX.
C
C (R*8) GRAD = GRADIENT OF STRAIGHT LINE INTERPOLATION.
C
C (L*4) LMATCH = FLAG IF BEAM ENERGY MATCHES EXACTLY A DATA
C SET ENERGY.
C = .TRUE. => BEAM ENERGY MATCHES.
C = .FALSE. => BEAM ENERGY DOES NOT MATCH.
C
C (R*8) PTH() = RATE COEFFICIENTS FOR NL-LEVELS FOR A
C PATICULAR BEAM COMPONENT.
C DIMENSION: REFERENCED BY I4IDFL(N,L)
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 THE QUANTUM
C NUMBERS N AND L.
C
C AUTHOR: JONATHAN NASH (TESSELLA SUPPORT SERVICES PLC)
C K1/0/81
C JET EXT. 5183
C
C DATE: 19/10/93
C
C-----------------------------------------------------------------------
C
C-----------------------------------------------------------------------
INTEGER MXBEAM, MXNENG, MXNSHL, NBEAM
INTEGER NBOT, NENRGY, NTOP
REAL*8 BMENA(MXBEAM), BMFRA(MXBEAM)
REAL*8 ENRGYA(MXNENG)
REAL*8 FRACLA(MXNENG,(MXNSHL*(MXNSHL+1))/2)
REAL*8 FTHEOR((MXNSHL*(MXNSHL+1))/2)
REAL*8 QTHEOR(MXNSHL), RATE(MXBEAM,MXNSHL)