ADAS Subroutine cxqxch
SUBROUTINE CXQXCH ( MXNENG , MXNSHL , MXBEAM , NBEAM ,
& BMENA , BMFRA , NBOT , NTOP ,
& NMINF , NMAXF , NENRGY , ENRGYA ,
& ALPHAA , XSECNA , FRACLA , QTHEOR ,
& FTHEOR
& )
C
C
C-----------------------------------------------------------------------
C
C ****************** FORTRAN77 SUBROUTINE: CXQXCH *********************
C
C PURPOSE: USES THE INPUT DATASET TO CALCULATE THE CHARGE EXCHANGE
C RATE COEFFICIENTS FOR BOTH N-LEVELS AND NL-LEVELS AVERAGED
C OVER THE BEAM FRACTIONS.
C
C NL-LEVEL RATES ARE EXPRESSED AS A FRACTION OF
C CORRESPONDING N-LEVEL.
C
C CALLING PROGRAM: ADAS308 , C6QXCH
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) NMINF = MINIMUM PRINCIPAL QUANTUM NUMBER OF INPUT
C DATASET.
C INPUT : (I*4) NMAXF = MAXIMUM PRINCIPAL QUANTUM NUMBER OF INPUT
C DATASET.
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) ALPHAA() = EXTRAPOLATION PARAMETER ALPHA.
C DIMENSION: ENERGY INDEX
C INPUT : (R*8) XSECNA(,) = N-RESOLVED CHARGE EXCHANGE CROSS-SECTIONS.
C UNITS: CM2
C 1ST DIMENSION: ENERGY INDEX
C 2ND DIMENSION: N-SHELL
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
C OUTPUT: (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 OUTPUT: (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) MXB = 'MXBEAM'.
C PARAM : (I*4) MXN = 'MXNSHL'.
C
C (I*4) IB = BEAM INDEX.
C
C (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 ROUTINES:
C ROUTINE SOURCE BRIEF DESCRIPTION
C -------------------------------------------------------------
C I4UNIT ADAS RETURN UNIT NO. FOR OUTPUT OF MESSAGES.
C CXQXN ADAS CALCULATES N-LEVEL RATE COEFFICIENTS.
C CXQXL ADAS CALCULATES NL-LEVEL RATE COEFFICIENTS AS
C FRACTION OF CORRESPONDING N-LEVEL.
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 VERSION: 1.1 DATE: 20-06-95
C MODIFIED: TIM HAMMOND (Probably)
C - PUT UNDER S.C.C.S. CONTROL
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 MXBEAM, MXNENG, MXNSHL, NBEAM
INTEGER NBOT, NENRGY, NMAXF, NMINF
INTEGER NTOP
REAL*8 ALPHAA(MXNENG), BMENA(MXBEAM)
REAL*8 BMFRA(MXBEAM), ENRGYA(MXNENG)
REAL*8 FRACLA(MXNENG,(MXNSHL*(MXNSHL+1))/2)
REAL*8 FTHEOR((MXNSHL*(MXNSHL+1))/2)
REAL*8 QTHEOR(MXNSHL)
REAL*8 XSECNA(MXNENG,MXNSHL)