Search Site | Contact Details | FAQ

ADAS Subroutine b3leve

       SUBROUTINE B3LEVE( NDLEV , IZDIMD,
     &                    IZMAX , Z1A   , IZA   , IZ0A  , IZ1A,
     &                    BWNOA , IL    ,
     &                    IA    , NA    , WAA   ,
     &                    IZS   , IZ0   ,
     &                    BWNO  , WAO )
C
C-----------------------------------------------------------------------
C
C  ****************** FORTRAN77 SUBROUTINE: B3LEVE *********************
C
C  PURPOSE:  TO EVALUATE IONISATION AND LEVEL ENERGIES FOR A SELECTED
C            MEMBER OF AN ISOELECTRONIC SEQUENCE FROM THE GENERAL Z DATA
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
C
C  SUBROUTINE:
C
C          (I*4)  NDSPLN  = PARAMETER = MAXIMUM NUMBER OF SPLINE KNOTS
C
C  INPUT : (I*4)  NDLEV   = MAXIMUM NUMBER OF LEVELS THAT CAN BE READ
C  INPUT : (I*4)  IZDIMD  = MAX. NUMBER OF SEQUENCE MEMBERS ALLOWED
C
C  INPUT : (I*4)  IZMAX   = NUMBER OF SEQUENCE MEMBERS
C  INPUT : (R*8)  Z1A()   = SEQUNCE RECOMBINING ION CHARGES READ
C                           1ST DIMENSION - SEQUENCE MEMBER INDEX
C  INPUT : (I*4)  IZA()   = SEQUENCE RECOMBINED ION CHARGES
C                           1ST DIMENSION - SEQUENCE MEMBER INDEX
C  INPUT : (I*4)  IZ0A()  = SEQUENCE NUCLEAR CHARGES
C                           1ST DIMENSION - SEQUENCE MEMBER INDEX
C  INPUT : (I*4)  IZ1A()  = SEQUNCE RECOMBINING ION CHARGES READ
C                           1ST DIMENSION - SEQUENCE MEMBER INDEX
C                           (NOTE: IZ1 SHOULD EQUAL IZ+1)
C  INPUT : (R*8)  BWNOA() = IONISATION POTENTIALS (CM-1)
C                           1ST DIMENSION - SEQUENCE MEMBER INDEX
C
C  INPUT : (I*4)  IL      = INPUT DATA FILE: NUMBER OF ENERGY LEVELS
C
C  INPUT : (I*4)  IA()    = ENERGY LEVEL INDEX NUMBER
C  INPUT : (I*4)  NA()    = PRINCIPAL QUANTUM NUMBER OF VALENCE ELECTRON
C  INPUT : (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  INPUT : (I*4)  IZS     = NUCLEAR CHARGE OF NEUTRAL SEQUENCE MEMBER
C  INPUT : (I*4)  IZ0     = NUCLEAR CHARGE OF SELECTED ION
C
C  OUTPUT: (R*8)  BWNO    = IONISATION ENERGY OF SELECTED ION (CM-1)
C  OUTPUT: (R*8)  WAO()   = LEVEL ENERGIES RELATIVE TO LOWEST (CM-1)
C
C          (I*4)  I       = GENERAL USE.
C          (I*4)  IENDN   = SPLINE END CONDITION SWITCH AT LAST POINT
C          (I*4)  IEND1   = SPLINE END CONDITION SWITCH AT FIRST POINT
C          (I*4)  IFORMS  = SPLINE INDEPENDENT VARIABLE FORM SWITCH
C          (I*4)  K       = GENERAL USE.
C
C          (R*8)  C1(,)   = 1ST SPLINE COEFFICIENT MATRIX
C          (R*8)  C2(,)   = 2ND SPLINE COEFFICIENT MATRIX
C          (R*8)  C3(,)   = 3RD SPLINE COEFFICIENT MATRIX
C          (R*8)  C4(,)   = 4TH SPLINE COEFFICIENT MATRIX
C          (R*8)  DY      = GRADIENT OF SPLINE AT POINT
C          (R*8)  ENI     = LEVEL PRINCIPAL QUANTUM NUMBER
C          (R*8)  EN1     = LOWEST LEVEL PRINCIPAL QUANTUM NUMBER
C          (R*8)  E1I     = LEVEL ENERGY (RYDBERGS)
C          (R*8)  B3FORM  = EXTERNAL FUNCTION (SEE SUBROUTINE SECTION)
C          (R*8)  REN     = GENERAL USE
C          (R*8)  XI      = GENERAL USE
C          (R*8)  XSA()   = SPLINE INDEPENDENT VARIABLE AT KNOTS
C          (R*8)  Y       = SPLINE INTERPOLATED VALUE
C          (R*8)  YSA()   = SPLINE DEPENDENT VARIABLE AT KNOTS
C          (R*8)  Z1      = CURRENT ION CHARGE +1
C
C ROUTINES:
C          ROUTINE    SOURCE    BRIEF DESCRIPTION
C          ------------------------------------------------------------
C          B2GSPC     ADAS      GENERATES SPLINE COEFFICIENT MATRICES
C          B2NFAS     ADAS      SETS SPLINE ASYMPTOTIC CONDITIONS
C          B3FORM     ADAS      INDEPENDENT VARIABLE FUNCTION FOR SPLINE
C          B2SORT     ADAS      SORTS VECTOR INTO INCREASING ORDER
C
C AUTHOR:  H. P. SUMMERS, JET
C          K1/1/57
C          JET EXT. 4941
C
C DATE:    08/01/95
C
C UNIX-IDL PORT:
C
C VERSION: 1.1                          DATE: 20-03-96
C MODIFIED: TIM HAMMOND (TESSELLA SUPPORT SERVICES PLC)
C               - PUT UNDER S.C.C.S. CONTROL
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.2                          DATE: 23-04-07
C MODIFIED: ALLAN WHITEFORD
C               - RENAMED FORM SUBROUTINE TO B3FORM.
C
C-----------------------------------------------------------------------
      INTEGER             IA(NDLEV),   IL,          IZ0
      INTEGER             IZ0A(IZDIMD),             IZ1A(IZDIMD)
      INTEGER             IZA(IZDIMD), IZDIMD,      IZMAX,       IZS
      INTEGER             NA(NDLEV),   NDLEV
      REAL*8              BWNO,        BWNOA(IZDIMD)
      REAL*8              WAA(NDLEV,IZDIMD),        WAO(NDLEV)
      REAL*8              Z1A(IZDIMD)
© Copyright 1995-2024 The ADAS Project
Comments and questions to: adas-at-adas.ac.uk