Search Site | Contact Details | FAQ

ADAS Subroutine b3reac

       SUBROUTINE B3REAC( NDTRN , NDTEM , IZDIMD,
     &                    IZMAX , Z1A   ,
     &                    ITRAN ,
     &                    NVA   , SCEFA ,
     &                    I1A   , I2A   , N1A   , N2A   , W1A   , W2A,
     &                    IEC1A , IAC1A , IAC2A , FAC2A , IGC1A , FGC2A,
     &                    CTSTRA, WDEA  , AVALA , SCOMA ,
     &                    IZS   , IZ0   , ISTRN , LIBPT ,
     &                    MAXT  , TEA   ,
     &                    WDE   , AVAL  , SCOM
     &                  )
C
C-----------------------------------------------------------------------
C
C  ****************** FORTRAN77 SUBROUTINE: B3REAC *********************
C
C  PURPOSE:  TO INTERPOLATE DATA FOR A SINGLE TRANSITION FROM A
C            GENERAL Z EXCITATION FILE TO A SELECTED SEQUENCE MEMBER
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  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  INPUT : (I*4)  IZMAX   = NO. OF SEQUENCE MEMBERS IN GENERAL Z FILE
C  INPUT : (R*8)  Z1A()   = ION CHARGE +1  FOR SEQUENCE MEBERS IN
C                           GENERAL Z FILE
C                           1ST DIMENSION - SEQUENCE MEMBER INDEX
C
C  INPUT : (I*4)  ITRAN   = INPUT DATA FILE: NUMBER OF ELECTRON IMPACT
C
C
C  INPUT : (I*4)  NVA()   = INPUT DATA FILE: NUMBER OF GAMMA/TEMPERATURE
C                           PAIRS FOR A GIVEN TRANSITION.
C                           1ST DIMENSION - SEQUENCE MEMBER INDEX
C  INPUT : (R*8)  SCEFA(,)= INPUT DATA FILE: Z-SCALED ELEC. TEMPS.(K)
C                           1ST DIMENSION - TEMPERATURE 'SCEF()'
C                           2ND DIMENSION - TRANSITION NUMBER
C                                            TRANSITIONS.
C
C
C  INPUT : (I*4)  I1A()   = ELECTRON IMPACT TRANSITION:
C                            LOWER ENERGY LEVEL INDEX
C                           1ST DIMENSION - TRANSITION NUMBER
C  INPUT : (I*4)  I2A()   = ELECTRON IMPACT TRANSITION:
C                            UPPER ENERGY LEVEL INDEX
C                           1ST DIMENSION - TRANSITION NUMBER
C  INPUT : (I*4)  N1A()   = ELECTRON IMPACT TRANSITION:
C                            LOWER LEVEL PRINCIPAL QUANTUM NUMBER
C                           1ST DIMENSION - TRANSITION NUMBER
C  INPUT : (I*4)  N2A()   = ELECTRON IMPACT TRANSITION:
C                            UPPER LEVEL PRINCIPAL QUANTUM NUMBER
C                           1ST DIMENSION - TRANSITION NUMBER
C  INPUT : (I*4)  W1A()   = ELECTRON IMPACT TRANSITION:
C                            LOWER LEVEL STATISTICAL WEIGHT
C                           1ST DIMENSION - TRANSITION NUMBER
C  INPUT : (I*4)  W2A()   = ELECTRON IMPACT TRANSITION:
C                            UPPER LEVEL STATISTICAL WEIGHT
C                           1ST DIMENSION - TRANSITION NUMBER
C
C  INPUT : (I*4)  IEC1A() = TRANSITION ENERGY INTERPOLATION VARIABLE
C                           (1=>Z1 ; 2=>1/Z1)
C                           1ST DIMENSION - TRANSITION NUMBER
C  INPUT : (I*4)  IAC1A() = TRANSITION PROB. INTERPOLATION VARIABLE
C                           (1=>Z1 ; 2=> 1/Z1)
C                           1ST DIMENSION - TRANSITION NUMBER
C  INPUT : (I*4)  IAC2A() = TRANSITION TYPE
C                           (1=>DIPOLE, 2=>NON-DIPOLE, 3=>SPIN CHANGE,
C                            4=>OTHER)
C                           1ST DIMENSION - TRANSITION NUMBER
C  INPUT : (I*4)  FAC2A() = TRANSITION PROB. Z1 SCALING POWER
C                           1ST DIMENSION - TRANSITION NUMBER
C  INPUT : (I*4)  IGC1A() = UPSILON INTERPOLATION VARIABLE
C                           (1=>Z1 ; 2=> 1/Z1)
C                           1ST DIMENSION - TRANSITION NUMBER
C  INPUT : (I*4)  FGC2A() = UPSILON Z1 SCALING POWER
C                           1ST DIMENSION - TRANSITION NUMBER
C  INPUT : (C*18) CTSTRA()= TRANSITION DESCRIPTOR
C                           1ST DIMENSION - TRANSITION NUMBER
C  INPUT : (R*8)  WDEA()  = TRANSITION ENERGY (CM-1)
C                           1ST DIMENSION - TRANSITION NUMBER
C
C  INPUT : (R*8)  AVALA() = ELECTRON IMPACT TRANSITION:
C                            A-VALUES (SEC-1)
C                           1ST DIMENSION - TRANSITION NUMBER
C                           2ND DIMENSION - SEQUENCE MEMBER INDEX
C  INPUT : (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
C  INPUT : (I*8)  MAXT    = NUMBER OF OUTPUT TEMPERATURES
C  INPUT : (R*8)  TEA()   = OUTPUT TEMPERATURES (K)
C
C  OUTPUT: (R*8)  WDE()   = ENERGY OF TRANSITIONS (CM-1)
C                           1ST DIMENSION - TRANSITION NUMBER
C  OUTPUT: (R*8)  AVAL()  = A-VALUE OF TRANSITIONS (SEC-1)
C                           1ST DIMENSION - TRANSITION NUMBER
C  OUTPUT: (R*8)  SCOM(,) = SELECTED TRANSITION GAMMA VALUES:
C                            GAMMA VALUES
C                           1ST DIMENSION - OUTPUT TEMPERATURE
C                           2ND DIMENSION - TRANSITION NUMBER
C
C
C          (I*4)  I       = GENERAL USE.
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
C          (R*8)  AVALM   = INPUT DATA FILE - SELECTED TRANSITION:
C                           MANTISSA OF:   ('IAPOW' => EXPONENT)
C                            A-VALUE (SEC-1)          (CASE ' ')
C                            NEUTRAL BEAM ENERGY      (CASE 'H')
C                            NOT USED                 (CASE 'P' & 'R')
C
C	   (R*8)  EIJMOD  = MODULUS OF EIJ
C
C          (C*80) CLINE   = CURRENT ENERGY LEVEL INDEX PARAMETER LINE
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          B2SORT     ADAS      PERFORMS BUBBLE SORT OF 2 REAL ARRAYS
C
C AUTHOR:  H. P. SUMMERS, JET
C          K1/1/57
C          JET EXT. 4941
C
C DATE:    17/08/94
C
C UNIX-IDL PORT:
C
C VERSION: 1.1                          DATE: 06-03-96
C MODIFIED: TIM HAMMOND (TESSELLA SUPPORT SERVICES PLC)
C               - PUT UNDER S.C.C.S. CONTROL
C
C VERSION: 1.2                          DATE: 06-03-96
C MODIFIED: TIM HAMMOND 
C               - REPLACED CALLS TO NSORT ROUTINE WITH CALLS TO B2SORT.
C                 NSORT IS USED TO SORT A REAL ARRAY AND ASSOCIATED
C                 INTEGER ARRAY WHEREAS WHAT WAS BEING PASSED TO IT WAS
C                 A REAL ARRAY AND ANOTHER, ASSOCIATED REAL ARRAY. B2SORT
C                 TAKES 2 REAL ARRAYS AS INPUT AND PERFORMS A BUBBLE SORT
C                 ON THEM.
C
C VERSION: 1.3                          DATE: 01-04-96
C MODIFIED: TIM HAMMOND
C               - REMOVED SUPERFLUOUS VARIABLES
C
C VERSION: 1.4                          DATE: 01-04-96
C MODIFIED: TIM HAMMOND
C               - CORRECTED MINOR SYNTAX ERROR
C
C VERSION: 1.5                          DATE: 23-05-96
C MODIFIED: WILLIAM OSBORN + HUGH SUMMERS
C               - REPLACED EIJ BY MOD(EIJ) IN DETERMINING LINE STRENGTHS
C		  AND UPSILON FIT
C
C VERSION: 1.6                          DATE: 11-04-07
C MODIFIED: ALLAN WHITEFORD
C               - RENAMED SOLVE SUBROUTINE TO B3SOLV.
C
C
C VERSION: 1.6                          DATE: 23-04-07
C MODIFIED: ALLAN WHITEFORD
C               - RENAMED FORM SUBROUTINE TO B3FORM.
C               - RENAMED FORM2 SUBROUTINE TO B3FORM2.
C
C-----------------------------------------------------------------------
      CHARACTER*18        CTSTRA(NDTRN)
      INTEGER             I1A(NDTRN),  I2A(NDTRN),  IAC1A(NDTRN)
      INTEGER             IAC2A(NDTRN),             IEC1A(NDTRN)
      INTEGER             IGC1A(NDTRN),             ISTRN,       ITRAN
      INTEGER             IZ0,         IZDIMD,      IZMAX,       IZS
      INTEGER             MAXT,        N1A(NDTRN),  N2A(NDTRN),  NDTEM
      INTEGER             NDTRN,       NVA(NDTRN)
      LOGICAL             LIBPT
      REAL*8              AVAL(NDTRN), AVALA(NDTRN,IZDIMD)
      REAL*8              FAC2A(NDTRN),             FGC2A(NDTRN)
      REAL*8              SCEFA(NDTEM,NDTRN),       SCOM(NDTEM,NDTRN)
      REAL*8              SCOMA(NDTEM,NDTRN,IZDIMD)
      REAL*8              TEA(NDTEM),  W1A(NDTRN),  W2A(NDTRN)
      REAL*8              WDE(NDTRN),  WDEA(NDTRN,IZDIMD)
      REAL*8              Z1A(IZDIMD)
© Copyright 1995-2024 The ADAS Project
Comments and questions to: adas-at-adas.ac.uk