ADAS Subroutine b7data
SUBROUTINE B7DATA( IUNIT ,
& NDLEV , NDTEM , NDDEN , NDMET ,
& DSNINC , TITLED ,
& IZ , IZ0 , IZ1 , BWNO ,
& IL , NMET , NORD ,
& MAXT , MAXD , ICNTR , ICNTH ,
& IA , ISA , ILA , XJA ,
& CSTRGA ,
& IMETR , IORDR , TEA , DENSA ,
& STCKM , STVR , STVH ,
& STVRM , STVHM , STACK
& )
C-----------------------------------------------------------------------
C
C ******************** FORTRAN77 SUBROUTINE: B7DATA *******************
C
C PURPOSE: TO INPUT DATA FROM A CONTOUR PASSING FILE.
C POPULATION DATA FOR DIAGNOSTIC USE.
C
C CALLING PROGRAM: ADAS207
C
C
C SUBROUTINE:
C
C INPUT : (I*4) IUNIT = INPUT UNIT NUMBER FOR RESULTS
C
C INPUT : (I*4) NDLEV = MAXIMUM NUMBER OF LEVELS ALLOWED
C INPUT : (I*4) NDTEM = MAXIMUM NUMBER OF TEMPERATURES ALLOWED
C INPUT : (I*4) NDDEN = MAXIMUM NUMBER OF DENSITIES ALLOWED
C INPUT : (I*4) NDMET = MAXIMUM NUMBER OF METASTABLES ALLOWED
C
C OUTPUT: (C*80) DSNINC = INPUT COPASE DATA SET NAME (IN QUOTES),
C USED TO GENERATE 'CONTOUR' DATA.
C OUTPUT: (C*3) TITLED = ELEMENT SYMBOL.
C
C OUTPUT: (I*4) IZ = RECOMBINED ION CHARGE
C OUTPUT: (I*4) IZ0 = NUCLEAR CHARGE
C OUTPUT: (I*4) IZ1 = RECOMBINING ION CHARGE
C (NOTE: IZ1 SHOULD EQUAL IZ+1)
C OUTPUT: (R*8) BWNO = IONISATION POTENTIAL (CM-1)
C
C OUTPUT: (I*4) IL = NUMBER OF ENERGY LEVELS
C OUTPUT: (I*4) NMET = NUMBER OF METASTABLES LEVELS: 1<=NMET<=NDMET
C OUTPUT: (I*4) NORD = NUMBER OF ORDINARY LEVELS ('IL' - 'NMET')
C
C OUTPUT: (I*4) MAXT = NUMBER OF INPUT TEMPERATURES ( 1 -> 'NDTEM')
C OUTPUT: (I*4) MAXD = NUMBER OF INPUT DENSITIES ( 1 -> 'NDDEN')
C OUTPUT: (I*4) ICNTR = NUMBER OF FREE ELECTRON RECOMBINATIONS INPUT
C OUTPUT: (I*4) ICNTH = NO. OF CHARGE EXCHANGE RECOMBINATIONS INPUT
C
C OUTPUT: (I*4) IA() = ENERGY LEVEL INDEX NUMBER
C OUTPUT: (I*4) ISA() = MULTIPLICITY FOR LEVEL 'IA()'
C NOTE: (ISA-1)/2 = QUANTUM NUMBER (S)
C OUTPUT: (I*4) ILA() = QUANTUM NUMBER (L) FOR LEVEL 'IA()'
C OUTPUT: (R*8) XJA() = QUANTUM NUMBER FOR LEVEL 'IA()'
C NOTE: (2*XJA)+1 = STATISTICAL WEIGHT
C
C OUTPUT: (C*18) CSTRGA()= NOMENCLATURE/CONFIGURATION FOR LEVEL 'IA()'
C
C OUTPUT: (I*4) IMETR() = INDEX OF METASTABLE IN COMPLETE LEVEL LIST
C OUTPUT: (I*4) IORDR() = INDEX OF ORDINARY LEVELS IN COMPLETE LEVEL
C LIST.
C OUTPUT: (R*8) TEA() = ELECTRON TEMPERATURES (UNITS: KELVIN)
C OUTPUT: (R*8) DENSA() = ELECTRON DENSITIES (UNITS: CM-3)
C
C OUTPUT: (R*8) STCKM(,,) = METASTABLE POPULATIONS STACK
C 1st DIMENSION: METASTABLE INDEX
C 2nd DIMENSION: TEMPERATURE INDEX
C 3rd DIMENSION: DENSITY INDEX
C OUTPUT: (R*8) STVR(,,) = FREE ELECTRON RECOMBINATION COEFFICIENTS
C 1st DIMENSION: LEVEL INDEX
C 2nd DIMENSION: TEMPERATURE INDEX
C 3rd DIMENSION: DENSITY INDEX
C OUTPUT: (R*8) STVH(,,) = CHARGE EXCHANGE COEFFICIENTS
C 1st DIMENSION: LEVEL INDEX
C 2nd DIMENSION: TEMPERATURE INDEX
C 3rd DIMENSION: DENSITY INDEX
C OUTPUT: (R*8) STVRM(,,) = METASTABLE FREE ELECTRON RECOMBINATION
C COEFFICIENTS.
C 1st DIMENSION: METASTABLE INDEX
C 2nd DIMENSION: TEMPERATURE INDEX
C 3rd DIMENSION: DENSITY INDEX
C OUTPUT: (R*8) STVHM(,,) = METASTABLE CHARGE EXCHANGE COEFFICIENTS
C 1st DIMENSION: METASTABLE INDEX
C 2nd DIMENSION: TEMPERATURE INDEX
C 3rd DIMENSION: DENSITY INDEX
C OUTPUT: (R*8) STACK(,,,)= POPULATION DEPENDENCE
C 1st DIMENSION: LEVEL INDEX
C 2nd DIMENSION: METASTABLE INDEX
C 3rd DIMENSION: TEMPERATURE INDEX
C 4th DIMENSION: DENSITY INDEX
C
C (I*4) I4UNIT = FUNCTION (SEE ROUTINE SECTION BELOW)
C (I*4) I = GENERAL USE
C (I*4) J = GENERAL USE
C (I*4) K = GENERAL USE
C (I*4) L = GENERAL USE
C
C NOTE:
C THIS INPUT DATA IS FROM THE PROGRAM 'SPFPOPN/P'
C
C
C ROUTINES:
C ROUTINE SOURCE BRIEF DESCRIPTION
C ------------------------------------------------------------
C I4UNIT ADAS FETCH UNIT NUMBER FOR OUTPUT OF MESSAGES
C
C AUTHOR: PAUL E. BRIDEN (TESSELLA SUPPORT SERVICES PLC)
C K1/0/37
C JET EXT. 5023
C
C DATE: 09/10/90
C
C UPDATE: 22/10/92 - PEB: INCLUDED ERROR HANDLING FOR ARRAY OVERFLOWS
C
C UPDATE: 23/04/93 - PE BRIDEN - ADAS91: ADDED I4UNIT FUNCTION TO WRITE
C STATEMENTS FOR SCREEN MESSAGES
C
C UPDATE: 24/05/93 - PE BRIDEN - ADAS91: CHANGED I4UNIT(0)-> I4UNIT(-1)
C
C UPDATE: 28/01/94 - PE BRIDEN - ADAS91: INCREASED CSTRGA C*12 -> C*18
C FORMAT 1003 CHANGED ACCORDINGLY
C
C UPDATE: 09/03/95 - SP BELLAMY - UNIX: INCREASE DSNINC TO 80
C AND CHANGE FORMAT 1000
C
C-----------------------------------------------------------------------
CHARACTER*18 CSTRGA(NDLEV)
CHARACTER*80 DSNINC
CHARACTER*3 TITLED
INTEGER IA(NDLEV), ICNTH, ICNTR, IL
INTEGER ILA(NDLEV), IMETR(NDMET)
INTEGER IORDR(NDLEV), ISA(NDLEV), IUNIT
INTEGER IZ, IZ0, IZ1, MAXD
INTEGER MAXT, NDDEN, NDLEV, NDMET
INTEGER NDTEM, NMET, NORD
REAL*8 BWNO, DENSA(NDDEN)
REAL*8 STACK(NDLEV,NDMET,NDTEM,NDDEN)
REAL*8 STCKM(NDMET,NDTEM,NDDEN)
REAL*8 STVH(NDLEV,NDTEM,NDDEN)
REAL*8 STVHM(NDMET,NDTEM,NDDEN)
REAL*8 STVR(NDLEV,NDTEM,NDDEN)
REAL*8 STVRM(NDMET,NDTEM,NDDEN), TEA(NDTEM)
REAL*8 XJA(NDLEV)