Search Site | Contact Details | FAQ

ADAS Subroutine bxttyp

      SUBROUTINE BXTTYP( NDLEV  , NDMET  , NDTRN  , NPLR  , NPLI  ,
     &                   ITRAN  , TCODE  , I1A    , I2A   , AVAL  ,
     &                   ICNTE  , ICNTP  , ICNTR  , ICNTH , ICNTI , 
     &                   ICNTL  , ICNTS  ,
     &                   IETRN  , IPTRN  , IRTRN  , IHTRN , IITRN ,
     &                   ILTRN  , ISTRN  ,
     &                                     IE1A   , IE2A  , AA    ,
     &                                     IP1A   , IP2A  ,
     &                                     IA1A   , IA2A  , AUGA  ,
     &                                     IL1A   , IL2A  , WVLA  ,
     &                                     IS1A   , IS2A  , LSS04A  
     &                 )
C-----------------------------------------------------------------------
C
C  ****************** FORTRAN77 SUBROUTINE: BXTTYP *********************
C
C  PURPOSE:  TO SORT TRANSITION ARRAYS INTO SEVEN TRANSITION/RECOMB TYPES
C
C  CALLING PROGRAM: General
C
C  SUBROUTINE:
C
C  INPUT : (I*4)  NDLEV   = MAXIMUM NUMBER OF LEVELS THAT CAN BE READ
C  INPUT : (I*4)  NDMET   = MAXIMUM NUMBER OF METASTABLES
C  INPUT : (I*4)  NDTRN   = MAXIMUM NUMBER OF TRANS. THAT CAN BE READ
C
C  OUTPUT: (I*4)  NPLR    = NO. OF ACTIVE METASTABLES OF (Z+1) ION
C  OUTPUT: (I*4)  NPLI    = NO. OF ACTIVE METASTABLES OF (Z-1) ION
C
C  INPUT : (I*4)  ITRAN   = INPUT DATA FILE: NUMBER OF TRANSITIONS
C  INPUT : (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                           'I' => Electron Impact Ionisation to z
C                           'L' => Satellites from DR Recombination
C                           'S' => Electron Impact Ionisation to z+1 
C  INPUT : (I*4)  I1A()   = TRANSITION:
C                            LOWER ENERGY LEVEL INDEX (CASE ' ' & 'P')
C                            PARENT ENERGY LEVEL INDEX(CASE 'H' & 'R')
C                                                     (         & 'L')
C                            FINAL PARENT LEVEL INDEX (CASE 'S')
C  INPUT : (I*4)  I2A()   = TRANSITION:
C                            UPPER ENERGY LEVEL INDEX (CASE ' ' & 'P')
C                            CAPTURING    LEVEL INDEX (CASE 'H' & 'R')
C                                                     (         & 'L')
C                            IONISING     LEVEL INDEX (CASE 'S')
C  INPUT : (R*8)  AVAL()  = TRANSITION:
C                            A-VALUE (SEC-1)          (CASE ' ')
C                            NEUTRAL BEAM ENERGY      (CASE 'H')
C                            AUGER VALUE(SEC-1)       (CASE 'R')
C                            PARENT WAVLENGTH (A)     (CASE 'L')
C                            NOT USED                 (CASE 'P' & 'S')
C
C  OUTPUT: (I*4)  ICNTE   = NUMBER OF ELECTRON IMPACT TRANSITIONS INPUT
C  OUTPUT: (I*4)  ICNTP   = NUMBER OF PROTON IMPACT TRANSITIONS INPUT
C  OUTPUT: (I*4)  ICNTR   = NUMBER OF FREE ELECTRON RECOMBINATIONS INPUT
C  OUTPUT: (I*4)  ICNTH   = NO. OF CHARGE EXCHANGE RECOMBINATIONS INPUT
C  OUTPUT: (I*4)  ICNTI   = NO. OF IONISATIONS TO Z INPUT
C  OUTPUT: (I*4)  ICNTL   = NO. OF SATELLITE DR RECOMBINATIONS INPUT
C  OUTPUT: (I*4)  ICNTS   = NO. OF IONISATIONS TO Z+1 INPUT
C
C  OUTPUT: (I*4)  IETRN() = ELECTRON IMPACT TRANSITION:
C                           INDEX VALUES IN MAIN TRANSITION ARRAYS WHICH
C                           REPRESENT ELECTRON IMPACT TRANSITIONS.
C  OUTPUT: (I*4)  IPTRN() = PROTON IMPACT TRANSITION:
C                           INDEX VALUES IN MAIN TRANSITION ARRAYS WHICH
C                           REPRESENT PROTON IMPACT TRANSITIONS.
C  OUTPUT: (I*4)  IRTRN() = FREE ELECTRON RECOMBINATION:
C                           INDEX VALUES IN MAIN TRANSITION ARRAYS WHICH
C                           REPRESENT FREE ELECTRON RECOMBINATIONS.
C  OUTPUT: (I*4)  IHTRN() = CHARGE EXCHANGE RECOMBINATION:
C                           INDEX VALUES IN MAIN TRANSITION ARRAYS WHICH
C                           REPRESENT CHARGE EXCHANGE RECOMBINATIONS.
C  OUTPUT: (I*4)  IITRN() = ELECTRON IMPACT IONISATION:
C                           INDEX VALUES IN MAIN TRANSITION ARRAYS WHICH
C                           REPRESENT IONISATIONS FROM LOWER STAGE ION.
C  OUTPUT: (I*4)  ILTRN() = SATELLITE DR RECOMBINATION:
C                           INDEX VALUES IN MAIN TRANSITION ARRAYS WHICH
C                           REPRESENT SATELLITE DR RECOMBINATIONS.
C  OUTPUT: (I*4)  ISTRN() = ELECTRON IMPACT IONISATION:
C                           INDEX VALUES IN MAIN TRANSITION ARRAYS WHICH
C                           REPRESENT IONISATIONS TO UPPER STAGE ION.
C
C  OUTPUT: (I*4)  IE1A()  = ELECTRON IMPACT TRANSITION:
C                            LOWER ENERGY LEVEL INDEX
C  OUTPUT: (I*4)  IE2A()  = ELECTRON IMPACT TRANSITION:
C                            UPPER ENERGY LEVEL INDEX
C  OUTPUT: (R*8)  AA()    = ELECTRON IMPACT TRANSITION: A-VALUE (SEC-1)
C
C
C  OUTPUT: (I*4)  IP1A()  = PROTON IMPACT TRANSITION:
C                            LOWER ENERGY LEVEL INDEX
C  OUTPUT: (I*4)  IP2A()  = PROTON IMPACT TRANSITION:
C                            UPPER ENERGY LEVEL INDEX
C
C  OUTPUT: (I*4)  IA1A()  = AUGER TRANSITION:
C                            PARENT ENERGY LEVEL INDEX
C  OUTPUT: (I*4)  IA2A()  = AUGER TRANSITION:
C                            RECOMBINED ION ENERGY LEVEL INDEX
C  OUTPUT: (R*8)  AUGA()  = AUGER TRANSITION: AUG-VALUE (SEC-1)
C                            RECOMBINED ION ENERGY LEVEL INDEX
C  OUTPUT: (I*4)  IL1A()  = SATELLITE DR TRANSITION:
C                            RECOMBINING ION  INDEX
C  OUTPUT: (I*4)  IL2A()  = SATELLITE DR TRANSITION:
C                            RECOMBINED ION INDEX
C  OUTPUT: (R*8)  WVLA()  = SATELLITE DR TRANSITION: PARENT WVLGTH.(A)
C                            DR SATELLITE LINE INDEX
C  OUTPUT: (I*4)  IS1A()  = IONISING TRANSITION:
C                            IONISED ION  INDEX
C  OUTPUT: (I*4)  IS2A()  = IONISING TRANSITION:
C                            IONISING ION INDEX
C  OUTPUT: (L*4)  LSS04A(,)= .TRUE. => IONIS. RATE SET IN ADF04 FILE:
C                            .FALSE.=> NOT SET IN ADF04 FILE
C                            1ST DIM: LEVEL INDEX
C                            2ND DIM: PARENT METASTABLE INDEX
C
C          (I*4)  I       = GENERAL USE.
C
C
C ROUTINES: NONE
C
C AUTHOR:  HP SUMMERS (REVISION OF BXTTYP BY PE BRIDEN)
C          K1/1/57
C          JET EXT. 4941
C
C DATE  :  11/06/92
C
C-----------------------------------------------------------------------
C PUT UNDER SCCS CONTROL: 
C
C VERSION: 1.1				DATE: 10/05/96
C MODIFIED: WILLIAM OSBORN (TESSELLA SUPPORT SERVICES PLC)
C	    - FIRST PUT UNDER SCCS
C 
C VERSION: 1.2				DATE: 13/09/99
C MODIFIED: HUGH SUMMERS, UNIVERSITY OF STRATHCLYDE
C	    - ADDED DETECTION OF L-LINES AND S-LINES
C 
C-----------------------------------------------------------------------
C
C VERSION: 1.2				DATE: 01/05/2003
C MODIFIED: Martin O'Mullane
C	    - Replaced original bxttyp with b8ttyp version 1.2. 
C		Hence the 1.2 version no.
C 
C-----------------------------------------------------------------------
C
C-----------------------------------------------------------------------
C
C VERSION: 1.3				DATE: 17/03/2005
C MODIFIED: Allan Whiteford
C	    - Made the routine accept that transition codes of '1',
C             '2' and '3' as well as ' ' correspond to electron
C             impact excitation.
C 
C-----------------------------------------------------------------------
      CHARACTER           TCODE(NDTRN)
      INTEGER             I1A(NDTRN),  I2A(NDTRN),  IA1A(NDTRN)
      INTEGER             IA2A(NDTRN), ICNTE,       ICNTH,       ICNTI
      INTEGER             ICNTL,       ICNTP,       ICNTR,       ICNTS
      INTEGER             IE1A(NDTRN), IE2A(NDTRN), IETRN(NDTRN)
      INTEGER             IHTRN(NDTRN),             IITRN(NDTRN)
      INTEGER             IL1A(NDLEV), IL2A(NDLEV), ILTRN(NDTRN)
      INTEGER             IP1A(NDTRN), IP2A(NDTRN), IPTRN(NDTRN)
      INTEGER             IRTRN(NDTRN),             IS1A(NDLEV)
      INTEGER             IS2A(NDLEV), ISTRN(NDTRN),             ITRAN
      INTEGER             NDLEV,       NDMET,       NDTRN,       NPLI
      INTEGER             NPLR
      LOGICAL             LSS04A(NDLEV,NDMET)
      REAL*8              AA(NDTRN),   AUGA(NDTRN), AVAL(NDTRN)
      REAL*8              WVLA(NDLEV)
© Copyright 1995-2018 The ADAS Project
Comments and questions to: adas-at-adas.ac.uk