ADAS Subroutine b8stkb
C SUBROUTINE B8STKB( NDTEM , NDLEV , NDMET , & IT , NORD , & IORDR , & CMAT , VEC , & IP , & STV & ) C----------------------------------------------------------------------- C C ****************** FORTRAN77 SUBROUTINE: B8STKB ********************* 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 INPUT : (I*4) NDMET = MAXIMUM NUMBER OF METASTABLES 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 INPUT : (I*4) IP = PARENT 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 3rd DIMENSION: PARENT INDEX C C OUTPUT: (R*4) 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: HP SUMMERS (UPGRADE OF BXSTKB BT PE BRIDEN) C K1/1/57 C JET EXT. 4941 C C DATE: 11/06/92 C C UPDATE: 12/07/93 HPS - CHASNGE STV DIMENSION TO R*4 C*********************************************************************** C UNIX-IDL PORT: C C AUTHOR: DAVID H BROOKS, UNIVERSITY OF STRATHCLYDE C C DATE: UNKNOWN C C*********************************************************************** C PUT UNDER SCCS CONTROL: C C VERSION: 1.1 DATE: 10/05/96 C MODIFIED: WILLIAM OSBORN (TESSELLA SUPPORT SERVICES PLC) C - FIRST PUT UNDER SCCS C C----------------------------------------------------------------------- C C----------------------------------------------------------------------- INTEGER IORDR(NDLEV), IP, IT INTEGER NDLEV, NDMET, NDTEM, NORD REAL*8 CMAT(NDLEV,NDLEV) REAL STV(NDLEV) REAL*8 VEC(NDTEM,NDLEV,NDMET)