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)