Search Site | Contact Details | FAQ

ADAS Subroutine b3data

       SUBROUTINE B3DATA( IUNIT , NDLEV , NDTRN , NDTEM , IZDIMD,
     &                    SEQSYM, IZMAX , Z1A   , IZA   , IZ0A  , IZ1A,
     &                    BWNOA , IL    ,
     &                    IA    , CSTRGA, NA    , ISA   , ILA   , XJA  ,
     &                    WAA   , ITRAN ,
     &                    NVA   , SCEFA ,
     &                    I1A   , I2A   , N1A   , N2A   , W1A   , W2A,
     &                    IEC1A , IAC1A , IAC2A , FAC2A , IGC1A , FGC2A,
     &                    CTSTRA, WDEA  , AVALA , SCOMA , LADJA
     &                  )
C
C-----------------------------------------------------------------------
C
C  ****************** FORTRAN77 SUBROUTINE: B3DATA *********************
C
C  PURPOSE:  TO FETCH DATA FROM INPUT GENERAL Z EXCITATION FILE.
C            (ELECTRON IMPACT TRANSITIONS ONLY).
C
C  CALLING PROGRAM: ADAS203
C
C  DATA:
C
C           THE UNITS USED IN THE DATA FILE ARE TAKEN AS FOLLOWS:
C
C           IONISATION POTENTIAL: WAVE NUMBER (CM-1)
C           INDEX LEVEL ENERGIES: WAVE NUMBER (CM-1)
C           TEMPERATURES        : KELVIN
C           A-VALUES            : SEC-1
C           GAMMA-VALUES        :
C
C
C  SUBROUTINE:
C
C          (I*4)  NDZ     = PARAMETER = MAXIMUM NUMBER OF IONS IN
C                                       A GENERAL Z FILE
C
C  INPUT : (I*4)  IUNIT   = UNIT TO WHICH INPUT FILE IS ALLOCATED
C  INPUT : (I*4)  NDLEV   = MAXIMUM NUMBER OF LEVELS THAT CAN BE READ
C  INPUT : (I*4)  NDTRN   = MAX. NUMBER OF TRANSITIONS THAT CAN BE READ
C  INPUT : (I*4)  NDTEM   = MAX NUMBER OF INPUT FILE TEMPS.
C  INPUT : (I*4)  IZDIMD  = MAX. NUMBER OF SEQUENCE MEMBERS ALLOWED
C
C  OUTPUT: (C*2)  SEQSYM  = ELEMENT SYMBOL.
C  OUTPUT: (I*4)  IZMAX   = NUMBER OF SEQUENCE MEMBERS
C  OUTPUT: (R*8)  Z1A()   = SEQUNCE RECOMBINING ION CHARGES READ
C                           1ST DIMENSION - SEQUENCE MEMBER INDEX
C  OUTPUT: (I*4)  IZA()   = SEQUENCE RECOMBINED ION CHARGES
C                           1ST DIMENSION - SEQUENCE MEMBER INDEX
C  OUTPUT: (I*4)  IZ0A()  = SEQUENCE NUCLEAR CHARGES
C                           1ST DIMENSION - SEQUENCE MEMBER INDEX
C  OUTPUT: (I*4)  IZ1A()  = SEQUNCE RECOMBINING ION CHARGES READ
C                           1ST DIMENSION - SEQUENCE MEMBER INDEX
C                           (NOTE: IZ1 SHOULD EQUAL IZ+1)
C  OUTPUT: (R*8)  BWNOA() = IONISATION POTENTIALS (CM-1)
C                           1ST DIMENSION - SEQUENCE MEMBER INDEX
C
C  OUTPUT: (I*4)  IL      = INPUT DATA FILE: NUMBER OF ENERGY LEVELS
C
C  OUTPUT: (I*4)  IA()    = ENERGY LEVEL INDEX NUMBER
C  OUTPUT: (C*18) CSTRGA()= NOMENCLATURE/CONFIGURATION FOR LEVEL 'IA()'
C  OUTPUT: (I*4)  NA()    = PRINCIPAL QUANTUM NUMBER OF VALENCE ELECTRON
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 (J-VALUE) FOR LEVEL 'IA()'
C                           NOTE: (2*XJA)+1 = STATISTICAL WEIGHT
C  OUTPUT: (R*8)  WAA()   = ENERGY RELATIVE TO LEVEL 1 (CM-1) FOR LEVEL
C                           'IA()'
C                           1ST DIMENSION - LEVEL INDEX
C                           2ND DIMENSION - SEQUENCE MEMBER INDEX
C  OUTPUT: (I*4)  ITRAN   = INPUT DATA FILE: NUMBER OF ELECTRON IMPACT
C                                            TRANSITIONS.
C
C  OUTPUT: (I*4)  NVA()   = INPUT DATA FILE: NUMBER OF GAMMA/TEMPERATURE
C                           PAIRS FOR A GIVEN TRANSITION.
C                           1ST DIMENSION - SEQUENCE MEMBER INDEX
C  OUTPUT: (R*8)  SCEFA(,)= INPUT DATA FILE: Z-SCALED ELEC. TEMPS.(K)
C                           1ST DIMENSION - TEMPERATURE 'SCEF()'
C                           2ND DIMENSION - TRANSITION NUMBER
C
C
C  OUTPUT: (I*4)  I1A()   = ELECTRON IMPACT TRANSITION:
C                            LOWER ENERGY LEVEL INDEX
C                           1ST DIMENSION - TRANSITION NUMBER
C  OUTPUT: (I*4)  I2A()   = ELECTRON IMPACT TRANSITION:
C                            UPPER ENERGY LEVEL INDEX
C                           1ST DIMENSION - TRANSITION NUMBER
C  OUTPUT: (I*4)  N1A()   = ELECTRON IMPACT TRANSITION:
C                            LOWER LEVEL PRINCIPAL QUANTUM NUMBER
C                           1ST DIMENSION - TRANSITION NUMBER
C  OUTPUT: (I*4)  N2A()   = ELECTRON IMPACT TRANSITION:
C                            UPPER LEVEL PRINCIPAL QUANTUM NUMBER
C                           1ST DIMENSION - TRANSITION NUMBER
C  OUTPUT: (I*4)  W1A()   = ELECTRON IMPACT TRANSITION:
C                            LOWER LEVEL STATISTICAL WEIGHT
C                           1ST DIMENSION - TRANSITION NUMBER
C  OUTPUT: (I*4)  W2A()   = ELECTRON IMPACT TRANSITION:
C                            UPPER LEVEL STATISTICAL WEIGHT
C                           1ST DIMENSION - TRANSITION NUMBER
C
C  OUTPUT: (I*4)  IEC1A() = TRANSITION ENERGY INTERPOLATION VARIABLE
C                           (1=>Z1 ; 2=>1/Z1)
C                           1ST DIMENSION - TRANSITION NUMBER
C  OUTPUT: (I*4)  IAC1A() = TRANSITION PROB. INTERPOLATION VARIABLE
C                           (1=>Z1 ; 2=> 1/Z1)
C                           1ST DIMENSION - TRANSITION NUMBER
C  OUTPUT: (I*4)  IAC2A() = TRANSITION TYPE
C                           (1=>DIPOLE, 2=>NON-DIPOLE, 3=>SPIN CHANGE,
C                            4=>OTHER)
C                           1ST DIMENSION - TRANSITION NUMBER
C  OUTPUT: (I*4)  FAC2A() = TRANSITION PROB. Z1 SCALING POWER
C                           1ST DIMENSION - TRANSITION NUMBER
C  OUTPUT: (I*4)  IGC1A() = UPSILON INTERPOLATION VARIABLE
C                           (1=>Z1 ; 2=> 1/Z1)
C                           1ST DIMENSION - TRANSITION NUMBER
C  OUTPUT: (I*4)  FGC2A() = UPSILON Z1 SCALING POWER
C                           1ST DIMENSION - TRANSITION NUMBER
C  OUTPUT: (C*18) CTSTRA()= TRANSITION DESCRIPTOR
C                           1ST DIMENSION - TRANSITION NUMBER
C  OUTPUT: (R*8)  WDEA()  = TRANSITION ENERGY (CM-1)
C                           1ST DIMENSION - TRANSITION NUMBER
C
C  OUTPUT: (R*8)  AVALA()  = ELECTRON IMPACT TRANSITION:
C                             A-VALUES (SEC-1)
C                           1ST DIMENSION - TRANSITION NUMBER
C                           2ND DIMENSION - SEQUENCE MEMBER INDEX
C  OUTPUT: (R*8)  SCOMA(,,)=ELECTRON IMPACT TRANSITION:
C                            GAMMA VALUES
C                           1ST DIMENSION - TEMPERATURE 'SCEF()'
C                           2ND DIMENSION - TRANSITION NUMBER
C                           3RD DIMENSION - SEQUENCE MEMBER INDEX
C  OUTPUT: (L*4)  LADJA()  = .FALSE. INITIALISATION NO TRANSITIONS
C                                    ADJUSTED YET
C                           1ST DIMENSION - TRANSITION NUMBER
C
C
C          (I*4)  I       = GENERAL USE.
C          (I*4)  IAC1    = CURRENT VALUE OF IAC1 PARAMETER
C          (I*4)  IAC2    = CURRENT VALUE OF IAC2 PARAMETER
C          (I*4)  IEC1    = CURRENT VALUE OF IEC1 PARAMETER
C          (I*4)  IGC1    = CURRENT VALUE OF IGC1 PARAMETER
C          (I*4)  ILINE   = ENERGY LEVEL INDEX FOR CURRENT LINE
C          (I*4)  ITEMP   = GENERAL USE.
C          (I*4)  IZ      = CURRENT ION CHARGE
C          (I*4)  IZS     = ISOELECTRONIC SEQUENCE CHARGE (1ST MEMBER)
C          (I*4)  I4EIZ0  = FUNCTION (SEE ROUTINE SECTION BELOW)
C          (I*4)  I4UNIT  = FUNCTION (SEE ROUTINE SECTION BELOW)
C          (I*4)  J       = GENERAL USE.
C          (I*4)  J1      = INPUT DATA FILE - SELECTED TRANSITION:
C                            LOWER ENERGY LEVEL INDEX (CASE ' ' & 'P')
C          (I*4)  J2      = INPUT DATA FILE - SELECTED TRANSITION:
C                            UPPER ENERGY LEVEL INDEX (CASE ' ' & 'P')
C                            CAPTURING    LEVEL INDEX (CASE 'H' & 'R')
C          (I*4)  IPOS    = GENERAL POSITION IN STRING MARKER.
C          (I*4)  K       = GENERAL USE.
C          (I*4)  NI      = CURRENT LOWER LEVEL PRINCIPAL QUANTUM NUMBER
C          (I*4)  NJ      = CURRENT UPPER LEVEL PRINCIPAL QUANTUM NUMBER
C
C          (R*8)  FAC2    = CURRENT VALUE OF FAC2 PARAMETER
C          (R*8)  FGC2    = CURRENT VALUE OF FGC2 PARAMETER
C          (R*8)  WI      = CURRENT LOWER LEVEL STATISTICAL WEIGHT
C          (R*8)  WJ      = CURRENT UPPER LEVEL STATISTICAL WEIGHT
C
C          (C*2)  CHEQSYM = EXTRA STRING USED FOR SYMBOL CHECKING
C          (C*1)  CMINUS  = STRING OF MINUS SYMBOL USED TO CHECK FOR
C                           SINGLE CHARACTER ELEMENT SYMBOLS
C          (C*80) CLINE   = CURRENT ENERGY LEVEL INDEX PARAMETER LINE
C          (C*18) STRING  = GENERAL USE
C
C          (L*4)  LDATA   = IDENTIFIES  WHETHER  THE END OF AN  INPUT
C                           SECTION IN THE DATA SET HAS BEEN LOCATED.
C                           (.TRUE. => END OF SECTION REACHED)
C
C
C ROUTINES:
C          ROUTINE    SOURCE    BRIEF DESCRIPTION
C          ------------------------------------------------------------
C          I4EIZ0     ADAS      RETURN NUCLEAR CHARGE OF ELEMENT SYMBOL
C          I4UNIT     ADAS      FETCH UNIT NUMBER FOR OUTPUT OF MESSAGES
C
C AUTHOR:  H. P. SUMMERS, JET
C          K1/1/57
C          JET EXT. 4941
C
C DATE:    17/08/94
C
C UPDATE:  03/07/95 - HPS  ALTER LENGTH OF CSTRGA ARRAY TO 18 AND
C                          USE NEW POSITION FOR INPUT/OUTPUT
C UNIX-IDL PORT:
C
C VERSION: 1.1                          DATE: 29-02-96
C MODIFIED: TIM HAMMOND (TESSELLA SUPPORT SERVICES PLC)
C               - PUT UNDER S.C.C.S. CONTROL
C
C VERSION: 1.2                          DATE: 29-02-96
C MODIFIED: TIM HAMMOND (TESSELLA SUPPORT SERVICES PLC)
C               - CORRECTED ERROR MESSAGES
C               - ADDED ABILITY TO HANDLE SINGLE LETTER ELEMENT
C                 SYMBOLS FOLLOWED BY DASH. E.G. IN HYDROGEN LIKE
C                 FILES THE FIRST TWO CHARACTERS IN THE FILE ARE 'H-'
C                 AND THIS WAS CAUSING PROBLEMS FOR I4EIZ0 BEFORE.
C
C-----------------------------------------------------------------------
      CHARACTER*18        CSTRGA(NDLEV),            CTSTRA(NDTRN)
      CHARACTER*2         SEQSYM
      INTEGER             I1A(NDTRN),  I2A(NDTRN),  IA(NDLEV)
      INTEGER             IAC1A(NDTRN),             IAC2A(NDTRN)
      INTEGER             IEC1A(NDTRN),             IGC1A(NDTRN)
      INTEGER             IL,          ILA(NDLEV),  ISA(NDLEV),  ITRAN
      INTEGER             IUNIT,       IZ0A(IZDIMD)
      INTEGER             IZ1A(IZDIMD),             IZA(IZDIMD), IZDIMD
      INTEGER             IZMAX,       N1A(NDTRN),  N2A(NDTRN)
      INTEGER             NA(NDLEV),   NDLEV,       NDTEM,       NDTRN
      INTEGER             NVA(NDTRN)
      LOGICAL             LADJA(NDTRN)
      REAL*8              AVALA(NDTRN,IZDIMD),      BWNOA(IZDIMD)
      REAL*8              FAC2A(NDTRN),             FGC2A(NDTRN)
      REAL*8              SCEFA(NDTEM,NDTRN)
      REAL*8              SCOMA(NDTEM,NDTRN,IZDIMD)
      REAL*8              W1A(NDTRN),  W2A(NDTRN),  WAA(NDLEV,IZDIMD)
      REAL*8              WDEA(NDTRN,IZDIMD),       XJA(NDLEV)
      REAL*8              Z1A(IZDIMD)
© Copyright 1995-2024 The ADAS Project
Comments and questions to: adas-at-adas.ac.uk