ADAS Subroutine bxstkb
SUBROUTINE BXSTKB( NDTEM , NDLEV , & IT , NORD , & IORDR , & CMAT , VEC , & STV & ) C----------------------------------------------------------------------- C C ****************** FORTRAN77 SUBROUTINE: BXSTKA ********************* C C PURPOSE: TO STACK UP IN 'STV' THE RECOMBINATION CONTRIBUTION FOR C EACH NON-METASTABLE/ORDINARY EXCITED LEVEL FOR A GIVEN C TEMPERATURE AND DENSITY. C C CALLING PROGRAM: ADAS205/ADAS206 C C SUBROUTINE: C C INPUT : (I*4) NDTEM = MAXIMUM NUMBER OF TEMPERATURES ALLOWED C INPUT : (I*4) NDLEV = MAXIMUM NUMBER OF ENERGY LEVELS ALLOWED C C INPUT : (I*4) IT = INDEX DENOTING THE TEMPERATURE C INPUT : (I*4) NORD = NUMBER OF ORDINARY EXCITED LEVELS C C INPUT : (I*4) IORDR() =INDEX OF ORDINARY EXCITED LEVELS IN COMPLETE C LEVEL LIST. C (ARRAY SIZE = 'NDLEV' ) C C INPUT : (R*8) CMAT(,) = INVERTED RATE MATRIX COVERING ALL C NON-METASTABLE/ORDINARY EXCITED LEVELS C TRANSITIONS. C (UNITS: SEC) C VALUES FOR GIVEN TEMPERATURE AND DENSITY. C 1st DIMENSION: ORDINARY EXCITED LEVEL INDEX C 2nd DIMENSION: ORDINARY EXCITED LEVEL INDEX C C INPUT : (R*8) VEC(,) = RECOMBINATION RATE COEFFT. VALUES. C (UNITS: CM**3/SEC-1) C VALUES FOR GIVEN TEMPERATURE AND DENSITY. C 1st DIMENSION: TEMPERATURE INDEX ('IT') C 2nd DIMENSION: CAPTURING LEVEL INDEX C C OUTPUT: (R*8) STV() = RECOMBINATION CONTRIBUTION FOR EACH C NON-METASTABLE/ORDINARY EXCITED LEVELS. C (UNITS: CM**3) C VALUES FOR GIVEN TEMPERATURE AND DENSITY. C DIMENSION: ORDINARY EXCITED LEVEL INDEX C C (I*4) IS1 = ORDINARY EXCITED LEVEL INDEX C (I*4) IS2 = ORDINARY EXCITED LEVEL INDEX C C (R*8) COEF = VARIABLE USED TO SUM COEFFICIENT VALUES C C C ROUTINES: NONE C C NOTE: C IF: n = number of ordinary/non-metastable levels C R(nxn) = Rate matrix (SEC-1) covering transistions between C all possible pairs of ordinary levels. C row : final level C column: initial level C (Inverse R-1(nxn) = 'CMAT(,)' ) C V(n) = Recombination rate vector (CM**3 SEC-1) covering C all ordinary levels. C ( = 'VEC()' - ordinary level part ). C S(n) = Recombination contribution vector (CM**3) covering C all ordinary levels ( = 'STV()' ). C C Therefore: R(nxn).S(n) = V(n) C C => S(n) = R-1(nxn).V(n) C C C C AUTHOR: PAUL E. BRIDEN (TESSELLA SUPPORT SERVICES PLC) C K1/0/81 C JET EXT. 4569 C C DATE: 09/10/90 C C----------------------------------------------------------------------- C C----------------------------------------------------------------------- INTEGER IORDR(NDLEV), IT, NDLEV INTEGER NDTEM, NORD REAL*8 CMAT(NDLEV,NDLEV), STV(NDLEV) REAL*8 VEC(NDTEM,NDLEV)