ADAS Subroutine cxextr
SUBROUTINE CXEXTR( MXNENG , MXNSHL , NMINF , NMAXF , & NENRGY , LPARMS , ALPHAA , LFORMA , & XLCUTA , PL2A , PL3A , XSECNA , & FRACLA & ) C C C----------------------------------------------------------------------- C C ****************** FORTRAN77 SUBROUTINE: CXEXTR ********************* C C PURPOSE: EXTRAPOLATES N AND L RESOLVED CROSS-SECTION BELOW AND ABOVE C DATA IN INPUT DATASET. C C N AND L RESOLVED CROSS-SECTIONS BELOW THE INPUT DATA ARE C SET TO ZERO. C C N RESOLVED CROSS-SECTIONS ABOVE THE INPUT DATA ARE C CALCULATED USING THE EXTRAPOLATION EXPONENT 'ALPHA'. C C L-RESOLVED CROSS-SECTIONS ABOVE THE INPUT DATA ARE C CALCULATED USING THE FUNCTION R8FORM IF THE L-SPLITTING C PARAMTERS ARE PRESENT, OTHERWISE THE DISTRIBUTION FROM THE C INPUT DATA FOR THE MAXIMUM PRINCIPAL QUANTUM NUMBER IS C COPIED TO THE HIGHER LEVELS AS FOLLOWS: C C SIGMA(N,L) = SIGMA(NMAXF,L) FOR L = 0 TO NMAXF-1 C = 0 FOR L = NMAXF TO N-1 C C WHERE NMAXF IS THE MAXIMUM PRINCIPAL QUANTUM NUMBER IN THE C INPUT DATA. 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) NMINF = LOWEST N-SHELL FOR WHICH DATA READ. C INPUT : (I*4) NMAXF = HIGHEST N-SHELL FOR WHICH DATA READ. C INPUT : (I*4) NENRGY = NUMBER OF ENERGIES IN DATASET. C INPUT : (L*4) LPARMS = FLAGS IF L-SPLITTING PARAMETERS PRESENT. C .TRUE. => L-SPLITTING PARAMETERS PRESENT. C .FALSE => L-SPLITTING PARAMETERS ABSENT. C INPUT : (R*8) ALPHAA() = EXTRAPOLATION PARAMETER ALPHA. C DIMENSION: ENERGY INDEX C INPUT : (I*4) LFORMA() = PARAMETERS FOR CALCULATING L-RES X-SEC. C DIMENSION: ENERGY INDEX C INPUT : (R*8) XLCUTA() = PARAMETERS FOR CALCULATING L-RES X-SEC. C DIMENSION: ENERGY INDEX C INPUT : (R*8) PL2A() = PARAMETERS FOR CALCULATING L-RES X-SEC. C DIMENSION: ENERGY INDEX C INPUT : (R*8) PL3A() = PARAMETERS FOR CALCULATING L-RES X-SEC. C DIMENSION: ENERGY INDEX C C I/O : (R*8) XSECNA(,) = N-RESOLVED CHARGE EXCHANGE CROSS-SECTIONS. C UNITS: CM2 C 1ST DIMENSION: ENERGY INDEX C 2ND DIMENSION: N-SHELL C I/O : (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 PARAM : (R*8) ALPMIN = MINIMUM VLUE OF EXTRPOLATION EXPONENT C 'ALPHA'. C C (I*4) IE = ENERGY INDEX. C (I*4) N = PRINCIPAL QUANTUM NUMBER. C (I*4) L = ORBITAL QUANTUM NUMBER. C (I*4) IDL = L-RESOLVED DATA INDEX. C (I*4) IDL1 = L-RESOLVED DATA INDEX. C (I*4) IDL2 = L-RESOLVED DATA INDEX. C (I*4) ITYPE = TYPE OF APPROX. TO USE IN FUNC R8FORM. C C (R*8) XNMAXF = REAL VALUE = NMAXF. C C ROUTINES: C ROUTINE SOURCE BRIEF DESCRIPTION C ------------------------------------------------------------- C I4IDFL ADAS RETURNS UNIQUE INDEX FROM QUANTUM C NUMBERS N AND L. C R8FORM ADAS RETURNS L-RES X-SEC AS FRACTION OF N-RES C X-SEC. C C AUTHOR: JONATHAN NASH (TESSELLA SUPPORT SERVICES PLC) C K1/0/81 C JET EXT. 5183 C C DATE: 20/10/93 C C----------------------------------------------------------------------- C C----------------------------------------------------------------------- INTEGER LFORMA(MXNENG), MXNENG, MXNSHL INTEGER NENRGY, NMAXF, NMINF LOGICAL LPARMS REAL*8 ALPHAA(MXNENG) REAL*8 FRACLA(MXNENG,(MXNSHL*(MXNSHL+1))/2) REAL*8 PL2A(MXNENG), PL3A(MXNENG) REAL*8 XLCUTA(MXNENG) REAL*8 XSECNA(MXNENG,MXNSHL)