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)