ADAS Subroutine dcstka
SUBROUTINE DCSTKA( NDLEV , NDMET ,
& NORD , NMET ,
& IORDR , IMETR ,
& CMAT , CC ,
& STCK
& )
C-----------------------------------------------------------------------
C
C ****************** FORTRAN77 SUBROUTINE: DCSTKA *********************
C
C PURPOSE: TO STACK UP IN 'STCK' THE NON-METASTABLE/ORDINARY EXCITED
C LEVEL POPULATION DEPENDENCE ON METASTABLE LEVEL FOR A GIVEN
C TEMPERATURE AND DENSITY.
C
C CALLING PROGRAM: XCOEF
C
C SUBROUTINE:
C
C INPUT : (I*4) NDLEV = MAXIMUM NUMBER OF ENERGY LEVELS ALLOWED
C INPUT : (I*4) NDMET = MAXIMUM NUMBER OF METASTABLE LEVELS ALLOWED
C
C INPUT : (I*4) NORD = NUMBER OF ORDINARY EXCITED LEVELS
C INPUT : (I*4) NMET = NUMBER OF METASTABLE LEVELS
C
C INPUT : (I*4) IMETR() = INDEX OF METASTABLE IN COMPLETE LEVEL LIST
C (ARRAY SIZE = 'NDMET' )
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 (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) CC(,) = RATE MATRIX COVERING ALL TRANSITIONS
C (UNITS: SEC-1)
C VALUES FOR GIVEN TEMPERATURE AND DENSITY.
C 1st DIMENSION: ENERGY LEVEL INDEX
C 2nd DIMENSION: ENERGY LEVEL INDEX
C
C OUTPUT: (R*8) STCK(,) = POPULATION MATRIX COVERING ALL NON-METAST-
C ABLE/ORDINARY EXCITED LEVELS AS FUNCTION
C OF METASTABLE INDEX.
C VALUES FOR GIVEN TEMPERATURE AND DENSITY.
C 1st DIMENSION: ORDINARY EXCITED LEVEL INDEX
C 2nd DIMENSION: METASTABLE LEVEL INDEX
C
C (I*4) IS1 = ORDINARY EXCITED LEVEL INDEX
C (I*4) IS2 = ORDINARY EXCITED LEVEL INDEX
C (I*4) IM = METASTABLE LEVEL ARRAY INDEX
C
C (R*8) POP = VARIABLE USED TO SUM POPULATION VALUES
C
C
C ROUTINES: NONE
C
C NOTE:
C IF: n = number of ordinary/non-metastable levels
C m = number of metastable levels
C Ro(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 Ro-1(nxn) = 'CMAT(,)' )
C Rm(nxm) = Rate matrix (sec-1) covering transistions between
C all combinations of ordinary and metastable level
C ( = 'CC(,)' - ordinary level part )
C P(nxm) = Population matrix giving the population dependence
C of each ordinary level on metastable level.
C ( = 'STCK(,)' )
C
C Therefore: Ro(nxn).P(nxm) = Rm(nxm)
C
C => P(nxm) = Ro-1(nxn).Rm(nxm)
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 UPDATE: 20/05/93 - P BRIDEN: STCK ARRAY CHANGED FROM REAL*8 -> REAL*4
C
C Alessandro Lanzafame, STCK back to real*8
C
C VERSION 1.1 DATE: 27-10-97
C RICHARD MARTIN
C PUT UNDER SCCS CONTROL
C
C-----------------------------------------------------------------------
C
C-----------------------------------------------------------------------
INTEGER IMETR(NDMET), IORDR(NDLEV)
INTEGER NDLEV, NDMET, NMET, NORD
REAL*8 CC(NDLEV,NDLEV), CMAT(NDLEV,NDLEV)
REAL*8 STCK(NDLEV,NDMET)