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)