Search Site | Contact Details | FAQ

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)
© Copyright 1995-2024 The ADAS Project
Comments and questions to: adas-at-adas.ac.uk