Search Site | Contact Details | FAQ

ADAS Subroutine bexcoef

       SUBROUTINE BEXCOEF ( FILELS , IFAIL  , LFXIST ,
     &                    NION   , MAXT   ,
     &                    INDA   , NIND   , NSPEC  ,
     &                    LPSEL  , LZSEL  , LISEL  , LHSEL  , LRSEL  ,
     &                    TEVA   , TPVA   , THVA   ,
     &                    DENSA  , DENSPA , RATHA  , RATIA  ,
     &                    ZEFF   ,
     &                    COEF   , SPEC   , POPAR
     &                  )
C-----------------------------------------------------------------------
C  ****************** FORTRAN77 SUBROUTINE: BEXCOEF *********************
C
C  VERSION:  1.1
C
C  CALLING PROGRAM: ADAS214
C
C  PURPOSE:  TO  CALCULATE  COMPLETE SETS OF SPECTRUM LINE EMISSIVITIES
C            FOR THE IONS OF AN ELEMENT
C
C            PROCESSES  CAN  INCLUDE  ELECTRON AND PROTON IMPACT,  SPON-
C            TANEOUS EMISSION,   FREE ELECTRON RECOMBINATION  AND CHARGE
C            EXCHANGE RECOMBINATION DEPENDING ON THE INPUT DATA SET.
C
C            ACCEPTS MULTIPLE INPUT FILES.  DESIGNED FOR USE IN G(T)
C            CALCULATIONS ETC.
C
C
C  DATA:     THE SOURCE DATA ARE SPECIFIC ION EXCITATION FILES STORED AS
C            PARTITIONED DATA SET MEMBERS AS FOLLOWS:-
C
C                    'JETSHP.<SE>LIKE.DATA(<MEMBER>)'
C
C            ACCORDING TO ADAS DATA FORMAT ADF04.
C
C
C  INPUT  :(C*60) FILELS()= INPUT COPASE FILE NAMES
C          (L*4)  LFXIST()= .TRUE.  => COPASE FILE FOR THIS ION
C                           .FALSE. => NO COPASE FILE FOR THIS ION
C          (I*4)  NION    = NUMBER OF IONS TO BE COMPUTED
C          (I*4)  MAXT    = NUMBER OF TEMPERATURE/DENSITY PAIRS
C          (L*4)  LPSEL   = .TRUE.  => PROTON DATA TO BE INCLUDED
C                         = .FALSE. => PROTON DATA TO BE EXCLUDED
C          (L*4)  LZSEL   = .TRUE.  => SCALE PROTON DATA WITH ZEFF
C                         = .FALSE. => DO NOT SCALE PROTON DATA
C          (L*4)  LISEL   = .TRUE.  => IONISATION TO BE INCLUDED
C                         = .FALSE. => IONISATION TO BE EXCLUDED
C          (L*4)  LHSEL   = .TRUE.  => CHARGE TRANSFER TO BE INCLUDED
C                         = .FALSE. => CHARGE TRANSFER TO BE EXCLUDED
C          (L*4)  LRSEL   = .TRUE.  => RECOMBINATION TO BE INCLUDED
C                         = .FALSE. => RECOMBINATION TO BE EXCLUDED
C          (R*8)  TEVA()  = ELECTRON TEMPERATURES (EV)
C          (R*8)  TPVA()  = PROTON TEMPERATURES (EV)
C          (R*8)  THVA()  = NEUTRAL HYDROGEN TEMPERATURES (EV)
C          (R*8)  DENSA() = ELECTRON DENSITIES  (CM-3)
C          (R*8)  DENSPA()= PROTON DENSITIES  (CM-3)
C          (R*8)  RATHA() = RATIO (NEUTRAL H DENSITY/ELECTRON DENSITY)
C          (R*8)  RATIA() = RATIO (N(Z+1)/N(Z) STAGE ABUNDANCES)
C
C  OUTPUT :(I*4)  IFAIL   = 0    SUBROUTINE SUCCESSFUL
C                           1    SUBROUTINE FAILURE OR WARNING
C          (I*4)  INDA(,) = IDENTIFIER FOR SPECTRUM LINE (10000*IL+IU)
C                           1ST DIMENSION - INDEX OF LINES FOR AN ION
C                           2ND DIMENSION - ION COUNT INDEX
C          (I*4)  NIND()  = NUMBER OF LINES FOR AN ION
C                           1ST DIMENSION - ION COUNT INDEX
C          (I*4)  NSPEC() = NUMBER OF LEVELS FOR AN ION
C                           1ST DIMENSION - ION COUNT INDEX
C          (R*8)  ZEFF    = PLASMA Z EFFECTIVE ( IF 'LZSEL' = .TRUE.)
C                             (IF 'LZSEL' = .FALSE. => 'ZEFF=1.0')
C          (R*8)  COEF(,,)= EMISSIVITY FOR SPECTRUM LINE (10000*J+I)
C                           1ST DIMENSION - INDEX OF LINES FOR AN ION
C                           2ND DIMENSION - TEMPERATURE INDEX
C                           3RD DIMENSION - ION COUNT INDEX
C          (C*51) SPEC(,) = INFORMATION STRING FOR LEVEL
C                           1ST DIMENSION - INDEX OF LEVELS FOR AN ION
C                           2ND DIMENSION - ION COUNT INDEX
C
C
C  PROGRAM:
C          (I*4)  NDLEV   = PARAMETER = MAX. NUMBER OF LEVELS ALLOWED
C          (I*4)  NDTRN   = PARAMETER = MAX. NO. OF TRANSITIONS ALLOWED
C          (I*4)  NDTEM   = PARAMETER = MAX. NO. OF TEMPERATURES ALLOWED
C          (I*4)  NZDIM   = PARAMETER = MAX. NO. OF IONS ALLOWED
C          (I*4)  NDMET   = PARAMETER = MAX. NO. OF METASTABLES ALLOWED
C
C          (I*4)  IUNT10  = PARAMETER = INPUT UNIT FOR COPASE DATA SET
C                                       PASSING FILE.
C          (I*4)  L1      = PARAMETER = 1
C
C          (R*8)  D1      = PARAMETER = 1.0D0
C
C          (I*4)  ICNTE   = NUMBER OF ELECTRON IMPACT TRANSITIONS INPUT
C          (I*4)  ICNTP   = NUMBER OF PROTON IMPACT TRANSITIONS INPUT
C          (I*4)  ICNTR   = NUMBER OF FREE ELECTRON RECOMBINATIONS INPUT
C          (I*4)  ICNTH   = NO. OF CHARGE EXCHANGE RECOMBINATIONS INPUT
C          (I*4)  IL      = INPUT DATA FILE: NUMBER OF ENERGY LEVELS
C          (I*4)  ITRAN   = INPUT DATA FILE: NUMBER OF TRANSITIONS
C          (I*4)  IZ0     = NUCLEAR CHARGE
C          (I*4)  IZ      =  RECOMBINED ION CHARGE
C          (I*4)  IZ1     = RECOMBINING ION CHARGE
C                           (NOTE: IZ1 SHOULD EQUAL IZ+1)
C          (I*4)  MAXLEV  = HIGHEST INDEX LEVEL IN READ TRANSITIONS
C          (I*4)  MAXT    = NO. OF INPUT TEMP/DENS PAIRS ( 1 -> 'NDTEM')
C          (I*4)  NMET    = NUMBER OF METASTABLES (1 <= NMET <= 'NDMET')
C          (I*4)  NORD    = NUMBER OF ORDINARY LEVELS ('IL' - 'NMET')
C          (I*4)  NV      = INPUT DATA FILE: NUMBER OF GAMMA/TEMPERATURE
C                           PAIRS FOR A GIVEN TRANSITION.
C          (I*4)  I       = GENERAL INDEX
C          (I*4)  IT      = TEMPERATURE ARRAY INDEX
C          (I*4)  IS      = ENERGY LEVEL ARRAY INDEX
C
C          (R*8)  TEA()   = INPUT ELECTRON TEMPERATURES (K)
C          (R*8)  TPA()   = INPUT PROTON TEMPERATURES (K)
C          (R*8)  THA()   = INPUT NEUTRAL HYDROGEN TEMPERATURES (K)
C          (R*8)  R8FBCH  = FUNCTION (SEE ROUTINE SECTION BELOW)
C          (R*8)  BWNO    = IONISATION POTENTIAL (CM-1)
C          (R*8)  ZEFFSQ  = 'ZEFF' * 'ZEFF'
C          (R*8)  DMINT   = +1 or -1 DEPENDING ON WHETHER THE  NUMBER OF
C                           ROW   INTERCHANGES   WAS   EVEN   OR    ODD,
C                           RESPECTIVELY, WHEN INVERTING A MATRIX  USING
C                           'XXMINV'.
C
C          (L*4)  LSOLVE  = .TRUE.  => SOLVE LINEAR EQUATION USING
C                                      'XXMINV'.
C                           .FALSE. =>DO NOT SOLVE LINEAR EQUATION USING
C                                     'XXMINV' - INVERT MATRIX ONLY.
C          (L*4)  OPEN10  = .TRUE.  => FILE ALLOCATED TO UNIT 10.
C                         = .FALSE. => NO FILE ALLOCATED TO UNIT 10.
C          (C*3)  TITLED  = ELEMENT SYMBOL.
C          (C*8)  DATE    = CURRENT DATE AS 'DD/MM/YY'
C          (C*60) DSNINC  = INPUT COPASE DATA SET NAME (MVS DSN)
C          (C*51) CLINE   = LEVEL SPECIFICATION LINE
C
C          (I*4)  IA()    = ENERGY LEVEL INDEX NUMBER
C          (I*4)  ILA()   = QUANTUM NUMBER (L) FOR LEVEL 'IA()'
C          (I*4)  ISA()   = MULTIPLICITY FOR LEVEL 'IA()'
C                           NOTE: (ISA-1)/2 = QUANTUM NUMBER (S)
C          (I*4)  IMETR() = INDEX OF METASTABLE IN COMPLETE LEVEL LIST
C                           (ARRAY SIZE = 'NDMET' )
C          (I*4)  IORDR() = INDEX OF ORDINARY EXCITED LEVELS IN COMPLETE
C                           LEVEL LIST.
C          (I*4)  I1A()   = TRANSITION:
C                            LOWER ENERGY LEVEL INDEX (CASE ' ' & 'P')
C                            NOT USED                 (CASE 'H' & 'R')
C          (I*4)  I2A()   = TRANSITION:
C                            UPPER ENERGY LEVEL INDEX (CASE ' ' & 'P')
C                            CAPTURING    LEVEL INDEX (CASE 'H' & 'R')
C          (I*4)  IETRN() = ELECTRON IMPACT TRANSITION:
C                           INDEX VALUES IN MAIN TRANSITION ARRAYS WHICH
C                           REPRESENT ELECTRON IMPACT TRANSITIONS.
C          (I*4)  IPTRN() = PROTON IMPACT TRANSITION:
C                           INDEX VALUES IN MAIN TRANSITION ARRAYS WHICH
C                           REPRESENT PROTON IMPACT TRANSITIONS.
C          (I*4)  IRTRN() = FREE ELECTRON RECOMBINATION:
C                           INDEX VALUES IN MAIN TRANSITION ARRAYS WHICH
C                           REPRESENT FREE ELECTRON RECOMBINATIONS.
C          (I*4)  IHTRN() = CHARGE EXCHANGE RECOMBINATION:
C                           INDEX VALUES IN MAIN TRANSITION ARRAYS WHICH
C                           REPRESENT CHARGE EXCHANGE RECOMBINATIONS.
C          (I*4)  IE1A()  = ELECTRON IMPACT TRANSITION:
C                            LOWER ENERGY LEVEL INDEX
C          (I*4)  IE2A()  = ELECTRON IMPACT TRANSITION:
C                            UPPER ENERGY LEVEL INDEX
C          (I*4)  IP1A()  = PROTON IMPACT TRANSITION:
C                            LOWER ENERGY LEVEL INDEX
C          (I*4)  IP2A()  = PROTON IMPACT TRANSITION:
C                            UPPER ENERGY LEVEL INDEX
C
C          (R*8)  PAR(,)  =
C          (R*8)  ER()    = ENERGY RELATIVE TO LEVEL 1 (RYDBERGS)
C                           DIMENSION: LEVEL INDEX
C          (R*8)  XIA()   = ENERGY RELATIVE TO ION. POT. (RYDBERGS)
C                           DIMENSION: LEVEL INDEX
C          (R*8)  AA()    = ELECTRON IMPACT TRANSITION: A-VALUE (SEC-1)
C          (R*8)  AVAL()  = TRANSITION:
C                            A-VALUE (SEC-1)          (CASE ' ')
C                            NEUTRAL BEAM ENERGY      (CASE 'H')
C                            NOT USED                 (CASE 'P' & 'R')
C          (R*8)  SCOM(,) = TRANSITION:
C                            GAMMA VALUES             (CASE ' ' & 'P')
C                            RATE COEFFT. (CM3 SEC-1) (CASE 'H' & 'R')
C                           1ST DIMENSION - TEMPERATURE 'SCEF()'
C                           2ND DIMENSION - TRANSITION NUMBER
C          (R*8)  SCEF()  = INPUT DATA FILE: ELECTRON TEMPERATURES (K)
C          (R*8)  WA()    = ENERGY RELATIVE TO LEVEL 1 (CM-1)
C                           DIMENSION: LEVEL INDEX
C          (R*8)  XJA()   = QUANTUM NUMBER (J-VALUE) FOR LEVEL 'IA()'
C                           NOTE: (2*XJA)+1 = STATISTICAL WEIGHT
C          (R*8)  RHS()   = USED ONLY IF 'LSOLVE=.TRUE.' WHEN CALLING
C                           THE SUBROUTINE 'XXMINV'. CONTAINS THE SET
C                           OF 'N' LINEAR EQUATIONS TO BE SOLVED.
C                           INPUT  TO   'XXMINV': RIGHT HAND SIDE VECTOR
C                           OUTPUT FROM 'XXMINV': SOLUTION VECTOR
C                           (ACTS ONLY AS A DUMMY IN THIS PROGRAM)
C          (R*8)  CIE()   = IONISATION RATE COEFFICIENT VECTOR FOR
C                           FIXED TEMPERATURE.
C                            DIMENSION: ENERGY LEVEL INDEX
C          (R*8)  VHRED() = CHARGE EXCHANGE RECOMBINATION:
C                           VECTOR  OF RECOMBINATION RATE CONTRIBUTIONS
C                           FOR EACH METASTABLE LEVEL.
C                           (UNITS: SEC-1)
C                           VALUES FOR GIVEN TEMPERATURE AND DENSITY.
C                            DIMENSION: METASTABLE LEVEL INDEX
C          (R*8)  VRRED() = FREE ELECTRON RECOMBINATION:
C                           VECTOR  OF RECOMBINATION RATE CONTRIBUTIONS
C                           FOR EACH METASTABLE LEVEL.
C                           (UNITS: SEC-1)
C                           VALUES FOR GIVEN TEMPERATURE AND DENSITY.
C                            DIMENSION: METASTABLE LEVEL INDEX
C
C          (R*8)  EXCRE(,) = ELECTRON IMPACT TRANSITION:
C                            EXCITATION RATE COEFFS (cm**3/s)
C                            PRE  'BXRATE': UNIT GAMMA VALUES
C                            POST 'BXRATE': TRUE VALUES
C                            1st DIMENSION: TEMPERATURE INDEX ('TOUT')
C                            2nd DIMENSION: TRANSITION INDEX
C          (R*8)  DEXCRE(,)= ELECTRON IMPACT TRANSITION:
C                            DE-EXCITATION RATE COEFFS (cm**3/s)
C                            PRE  'BXRATE': UNIT GAMMA VALUES
C                            POST 'BXRATE': TRUE VALUES
C                            1st DIMENSION: TEMPERATURE INDEX ('TOUT')
C                            2nd DIMENSION: TRANSITION INDEX
C          (R*8)  EXCRP(,) = PROTON IMPACT TRANSITION:
C                            EXCITATION RATE COEFFS (cm**3/s)
C                            PRE  'BXRATE': UNIT GAMMA VALUES
C                            POST 'BXRATE': TRUE VALUES
C                            1st DIMENSION: TEMPERATURE INDEX ('TOUT')
C                            2nd DIMENSION: TRANSITION INDEX
C          (R*8)  DEXCRP(,)= PROTON IMPACT TRANSITION:
C                            DE-EXCITATION RATE COEFFS (cm**3/s)
C                            PRE  'BXRATE': UNIT GAMMA VALUES
C                            POST 'BXRATE': TRUE VALUES
C                            1st DIMENSION: TEMPERATURE INDEX ('TOUT')
C                            2nd DIMENSION: TRANSITION INDEX
C          (R*8)  VECH(,)  = CHARGE-EXCHANGE RECOMBINATION:
C                            SPLINED RECOMBINATION RATE COEFFT. VALUES.
C                            1st DIMENSION: TEMPERATURE INDEX ('TOUT')
C                            2nd DIMENSION: CAPTURING LEVEL INDEX.
C          (R*8)  VECR(,)  = FREE ELECTRON RECOMBINATION:
C                            SPLINED RECOMBINATION RATE COEFFT. VALUES.
C                            1st DIMENSION: TEMPERATURE INDEX ('TOUT')
C                            2nd DIMENSION: CAPTURING LEVEL INDEX.
C          (R*8)  CRA(,)   = A-VALUE  (sec-1)  MATRIX  COVERING  ALL
C                            TRANSITIONS.
C                            1st DIMENSION: ENERGY LEVEL INDEX
C                            2nd DIMENSION: ENERGY LEVEL INDEX
C                           (NOTE: DIAGONAL   ELEMENTS  REPRESENT   THE
C                                  NEGATIVE  SUM  OF  THEIR  RESPECTIVE
C                                  COLUMNS.)
C          (R*8)  CRCE(,)  = ELECTRON IMPACT TRANSITION:
C                            EXCIT'N/DE-EXCIT'N RATE COEFFT MATRIX
C                            COVERING ALL TRANSITIONS (cm**3/s).
C                            VALUES FOR GIVEN TEMPERATURE & TRANSITION
C                            TYPE.
C                            1st DIMENSION: ENERGY LEVEL INDEX
C                            2nd DIMENSION: ENERGY LEVEL INDEX
C                           (NOTE: DIAGONAL   ELEMENTS  REPRESENT   THE
C                                  NEGATIVE  SUM  OF  THEIR  RESPECTIVE
C                                  COLUMNS.)
C          (R*8)  CRCP(,)  = PROTON IMPACT TRANSITION:
C                            EXCIT'N/DE-EXCIT'N RATE COEFFT MATRIX
C                            COVERING ALL TRANSITIONS (cm**3/s).
C                            VALUES FOR GIVEN TEMPERATURE & TRANSITION
C                            TYPE.
C                            1st DIMENSION: ENERGY LEVEL INDEX
C                            2nd DIMENSION: ENERGY LEVEL INDEX
C                           (NOTE: DIAGONAL   ELEMENTS  REPRESENT   THE
C                                  NEGATIVE  SUM  OF  THEIR  RESPECTIVE
C                                  COLUMNS.)
C          (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          (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                            PRE  'XXMINV' : NOT-INVERTED
C                            POST 'XXMINV' : INVERTED
C                            1st DIMENSION: ORDINARY EXCITED LEVEL INDEX
C                            2nd DIMENSION: ORDINARY EXCITED LEVEL INDEX
C          (R*8)  CRED(,)  = MATRIX  OF  TRANSITION   RATES   BETWEEN
C                            METASTABLE LEVELS.
C                            (UNITS: SEC-1)
C                            VALUES FOR GIVEN TEMPERATURE AND DENSITY.
C                            1st DIMENSION: METASTABLE LEVEL INDEX
C                            2nd DIMENSION: METASTABLE LEVEL INDEX
C          (R*8)  CRMAT(,) = INVERTED  METASTABLE  LEVEL   RATE   MATRIX
C                            COVERING ALL TRANSITIONS BETWEEN METASTABLE
C                            LEVELS EXCEPT THOSE INVOLVING LEVEL 1.
C                            VALUES FOR GIVEN TEMPERATURE AND DENSITY.
C                            BEFORE INPUT  TO   XXMINV: NOT INVERTED
C                            AFTER  OUTPUT FROM XXMINV: AS-ABOVE
C                            1st DIMENSION: METASTABLE LEVEL INDEX - 1
C                            2nd DIMENSION: METASTABLE LEVEL INDEX - 1
C
C
C          (R*8) POPAR(,)  = LEVEL POPULATIONS
C                             1st DIMENSION: LEVEL INDEX
C                             2nd DIMENSION: TEMPERATURE INDEX
C          (R*8) STVR(,)   = ORDINARY EXCITED LEVEL:
C                             FREE-ELECTRON RECOMBINATION COEFFICIENTS
C                             (UNITS* CM**3/SEC-1)
C                             1st DIMENSION: ORDINARY LEVEL INDEX
C                             2nd DIMENSION: TEMPERATURE INDEX
C          (R*8) STVH(,)   = ORDINARY EXCITED LEVEL:
C                             CHARGE-EXCHANGE RECOMBINATION COEFFICIENTS
C                             (UNITS* CM**3/SEC-1)
C                             1st DIMENSION: ORDINARY LEVEL INDEX
C                             2nd DIMENSION: TEMPERATURE INDEX
C          (R*8) STACK(,,) = ORDINARY EXCITED LEVEL POPULAT'N DEPENDENCE
C                            ON METASTABLE LEVEL.
C                             1st DIMENSION: ORDINARY LEVEL INDEX
C                             2nd DIMENSION: METASTABLE INDEX
C                             3rd DIMENSION: TEMPERATURE INDEX
C          (R*8) STVRM(,)  = METASTABLE LEVEL:
C                             FREE-ELECTRON RECOMBINATION COEFFICIENTS
C                             (UNITS* CM**3/SEC-1)
C                             1st DIMENSION: METASTABLE INDEX
C                             2nd DIMENSION: TEMPERATURE INDEX
C          (R*8) STVHM(,)  = METASTABLE LEVEL:
C                             CHARGE-EXCHANGE RECOMBINATION COEFFICIENTS
C                             (UNITS* CM**3/SEC-1)
C                             1st DIMENSION: METASTABLE INDEX
C                             2nd DIMENSION: TEMPERATURE INDEX
C          (R*8) STCKM(,)  = METASTABLE POPULATIONS STACK
C                             1st DIMENSION: METASTABLE INDEX
C                             2nd DIMENSION: TEMPERATURE INDEX
C
C          (C*1)  TCODE() = TRANSITION: DATA TYPE POINTER:
C                           ' ' => Electron Impact   Transition
C                           'P' => Proton   Impact   Transition
C                           'H' => Charge   Exchange Recombination
C                           'R' => Free     Electron Recombination
C          (C*18) CSTRGA()= NOMENCLATURE/CONFIGURATION FOR LEVEL 'IA()'
C          (C*22) STRGA() = LEVEL DESIGNATIONS
C
C          (L*4)  LTRNG(,)= .TRUE.  => TEMPERATURE VALUE WITHIN RANGE
C                                      READ FROM INPUT COPASE DATA SET.
C                         = .FALSE. =>TEMPERATURE VALUE NOT WITHIN RANGE
C                                      READ FROM INPUT COPASE DATA SET.
C                           1st DIMENSION: TEMPERATURE INDEX.
C                           2nd DIMENSION: TEMPERATURE TYPE -
C                                          1) => ELECTRON
C                                          2) => PROTON
C                                          3) => NEUTRAL HYDROGEN
C
C NOTE:
C
C          INPUT/OUTPUT STREAM ALLOCATIONS:
C          --------------------------------
C
C          STREAM 10: INPUT - SPECIFIC ION RATE DATA INPUT FILE FROM
C          ('IUNT10')         DATABASE (SEE DATA SECTION ABOVE).
C
C
C AUTHOR:  HP SUMMERS
C          K1/1/57
C          JET EXT. 4941
C
C DATE:    27/06/91
C
C UPDATE:  12/04/94 - H. P. SUMMERS - RATIONALISING OF DIMENSIONS WITH
C                                     LATEST ADAS9120 ROUTINES. NOTED
C                                     STACK IS REAL*4
C
C#
C DATE:    mar20-95 - A. C. Lanzafame - conversion to Unix
C          mar21-95 - A. C. Lanzafame - call to XXDATE avoided: redundant
C          mar24-95 -                 - FILELS from C*44 to C*60
C                                     - DSNINC from C*44 to C*60
C          apr27-95 - A. C. Lanzafame - STACK changed to R*8
C
C  ROUTINES:
C          ROUTINE    SOURCE    BRIEF DESCRIPTION
C          ------------------------------------------------------------
C	     DCSTKC	     ADAS      STACK UP TRANSITION RATE BETWEEN METS.
C	     DCSTKA	     ADAS      STACK UP ORDINARY POP. DEPENDENCE ON MET
C	     DCPOPM	     ADAS      CALCULATE BASIC MET. LEVEL POPULATIONS.
C	     DCPOPO	     ADAS      CALCULATE ORDINARY LEVEL POPULATIONS.
C	     DCLNORM     ADAS      NORMALISES LINE EMISSIVITY.
C	     BXDATA	     ADAS      GATHERS RELEVANT DATA FROM INPUT FILE
C	     BXTTYP	     ADAS      SORT TRANSITIONS INTO TRAN/RECOMB TYPES
C	     BXIORD	     ADAS      SETS  UP ORDINARY LEVEL INDEX.
C	     BXRATE	     ADAS      CALCULATES EXC. & DE-EXC. RATE COEFFTS.
C	     BXRCOM	     ADAS      ESTABLISHES RECOMBINATION RATE COEFFTS.
C	     BXMCRA	     ADAS      CONSTRUCTS A-VALUE MATRIX.
C	     BXMCRC	     ADAS      CONSTRUCTS EXC./DE-EXC. RATE COEF MATRIX
C	     BXMCCA	     ADAS      CONSTRUCTS WHOLE RATE MATRIX.
C	     BXMCMA	     ADAS      CONSTRUCTS ORDINARY LEVEL RATE MATRIX.
C	     BXSTKB	     ADAS      STACK UP RECOMB. CONTRIBUTION FOR ORD.
C	     BXSTKD	     ADAS      STACK UP RECOMB RATE FOR EACH MET. LEVEL
C	     BXMPOP	     ADAS      CALCULATE METASTABLE LEVEL POPULATIONS.
C	     BXSTVM	     ADAS      CALCULATE MET. LEVEL RECOMB. COEFFTS.
C	     XXERYD	     ADAS      CONVERTS ENERGIES FROM W.NO. TO RYDBERGS
C	     XXRATE	     ADAS      CALCULATES EXC. & DE-EXC. RATE COEFFTS.
C	     XXMINV	     ADAS      INVERTS MATRIX AND SOLVES EQUATIONS.
C                                FOR UNIT GAMMA VALUE
C	     R8FBCH	     ADAS      REAL*8 FUNCTION:EVALUATES SHELL CONTRIB.
C                                TO IONISATION RATE  COEFFICIENT  IN  THE
C                                BURGESS-CHIDICHIMO APPROX.
C
C VERSION 1.1							DATE: 18-06-98
C		STUART LOCH
C		- BASED ON DCXCOEF.FOR (adas412)
C VERSION 1.2							DATE: 24-09-99
C		STUART LOCH
C		- NDTRN INCREASED FROM 1100 TO 2000 TO ALLOW FOR
C                 LONGER ADF04 FILES TO BE PROCESSED.
C
C VERSION : 1.3                               
C DATE    : 02-05-2003
C MODIFIED: Martin O'Mullane
C		- Use xxdata_04 to read adf04 file. This requires
C                 new arrays some of which are not used in the 
C                 population calculation.
C               - bxttyp parameter list extended.
C
C VERSION : 1.4                               
C DATE    : 15-03-2005
C MODIFIED: Martin O'Mullane
C		- Increase ndmet to 4 in order to be able to read 
C                 adf04 datasets from GCR Project.
C		- files() (and dsninc) increased to character*80.
C
C-----------------------------------------------------------------------
      CHARACTER*80        FILELS(NZDIM)
      CHARACTER*51        SPEC(NDLEV,NZDIM)
      INTEGER             IFAIL,       INDA(NDTRN,NZDIM),        MAXT
      INTEGER             NIND(NZDIM), NION,        NSPEC(NZDIM)
      LOGICAL             LFXIST(NZDIM),            LHSEL,       LISEL
      LOGICAL             LPSEL,       LRSEL,       LZSEL
      REAL*8              COEF(NDTRN,NDTEM,NZDIM),  DENSA(NDTEM)
      REAL*8              DENSPA(NDTEM),            POPAR(NDLEV,NDTEM)
      REAL*8              RATHA(NDTEM),             RATIA(NDTEM)
      REAL*8              TEVA(NDTEM), THVA(NDTEM), TPVA(NDTEM), ZEFF
© Copyright 1995-2018 The ADAS Project
Comments and questions to: adas-at-adas.ac.uk