Search Site | Contact Details | FAQ

ADAS Subroutine d7auts


      SUBROUTINE D7AUTS( NDMET  , NDTHET , NDORB  , ndlev  , ndqdn  ,
     &                   IODIMD ,
     &                   IZ     , IZ0    , iz1    ,
     &                   il     , ia     , isa    , ila    , xja    , 
     &                   wa     , cstrga , bwno   , iorb   , qdorb  ,
     &                   NTHETA , THETA  ,
     &                   NPMET  ,
     &                   IGRPA  , EICHR  , LEICHR ,
     &                   NSYS   , ISPSYS , INPAR  , ILPAR  , ENPAR  ,
     &                   SBCHA  ,
     &                   KGRPA  , IZETA4 , EIONA  , NZETA  ,
     &                   IONLEV , XITRUE ,
     &                   NORB   , VORB   ,
     &                   N0A    , PARMR  ,
     &                   LLINK  , ILINK  , LEISS  ,
     &                   NMET   , IMETR
     &                 )
C-----------------------------------------------------------------------
C
C  ****************** FORTRAN77 SUBROUTINE: D7AUTS *********************
C
C
C  PURPOSE:     CALCULATES IONISATION RATES FROM GIVEN SPECIFIC ION FILE
C               USING BURGESS/CHIDICHIMO FORMULA RESOLVED INTO
C               PARENT AND SPIN SYSTEM COMPONENTS.
C
C               AUTOIONISATION EFFECTS ARE INCLUDED BY REDUCING ORBITAL
C               IONISATION ENERGY TO EXCITATION ENERGY OF LOWEST AUTO-
C               IONISING STATE, WITH A LINEAR SWITCHOFF
C               BETWEEN 20<Z1<25.
C
C  CALLING PROGRAM: ADAS407
C
C  SUBROUTINE:
C
C  INPUT : (I*4)  IUNIT    = UNIT NUMBER FOR SPECIFIC ION FILE FOR
C                            RECOMBINED ION
C  INPUT : (I*4)  NDMET    = MAXIMUM NUMBER OF METASTABLES ALLOWED
C  INPUT : (I*4)  NDTHET   = MAXIMUM NUMBER OF TEMPS. FOR MAINCL FILE
C  INPUT : (I*4)  NDORB    = MAXIMUM NUMBER OF ELECTRON ORBITALS
C  INPUT : (I*4)  IODIMD   = MAXIMUM NUMBER OF ELECTRON ORBITALS
C
C  INPUT : (I*4)  NTHETA   = NUMBER OF TEMPERATURES FOR MAINCL FILE
C  INPUT : (R*8)  THETA()  = Z-SCALED TEMPERATURES FOR MAINCL FILE
C
C  INPUT : (I*4)  NPMET    = NO. OF RECOMBINING ION (PARENT) METASTABLES
C
C  INPUT : (I*4)  NSYS()   = NUMBER OF SPIN SYSTEMS FOR RECOMBINED ION
C                            1ST DIM: PARENT INDEX
C  INPUT : (I*4)  ISPSYS(,)= RECOMBINED ION SPIN
C                            1ST DIM: PARENT INDEX
C                            2ND IND: SPIN SYSTEM INDEX
C  INPUT : (I*4)  INPAR()  = N QUANTUM NO. SUM FOR ELECTRONS OF PARENT
C                            1ST DIM: PARENT INDEX
C  INPUT : (I*4)  ILPAR()  = L QUANTUM NO. SUM FOR ELECTRONS OF PARENT
C                            1ST DIM: PARENT INDEX
C  INPUT : (R*8)  ENPAR()  = RECOMBINING ION (PARENT) ENERGY
C                            1ST DIM: PARENT INDEX
C  INPUT : (L*4)  LLINK(,,)= .TRUE.  => LINK EXISTS
C                            .FALSE. => NO LINK EXISTS
C                             1ST DIM: METASTABLE INDEX
C                             2ND DIM: PARENT METASTABLE INDEX
C                             3RD DIM: SPEN SYSTEM INDEX
C  INPUT : (L*4)  ILINK(,,)= DECIMAL ORBITAL INDEX FOR RECOMBINED
C                            ION ORBITAL DIFFERENCE WITH PARENT
C                             1ST DIM: METASTABLE INDEX
C                             2ND DIM: PARENT METASTABLE INDEX
C                             3RD DIM: SPEN SYSTEM INDEX
C  INPUT : (L*4)  LEISS    = .TRUE. => PARENTS AND METASTABLES FOUND
C                                      TO HAVE EISSNER CONFIG. FORMS
C                            .FALSE => NOT EISSNER CONFIG. FORMS
C  INPUT : (I*4)  NMET    = NUMBER OF METASTABLES (1 <= NMET <= 'NDMET')
C  INPUT : (I*4)  IMETR() = INDEX OF METASTABLE IN COMPLETE LEVEL LIST
C                           (ARRAY SIZE = 'NDMET' )
C
C
C  OUTPUT: (I*4)  IZ       = CHARGE ON IONISING ION
C  OUTPUT: (I*4)  IZ0      = NUCLEAR CHARGE
C
C  OUTPUT: (I*4)  NORB     = NUMBER OF DISTINCT ELECTRON ORBITALS FROM
C                            CONFIGURATIONS IN TERM LIST
C  OUTPUT: (R*8)  VORB()   = EFFECTIVE PRINCIPAL QUANTUM NUMBERS OF
C                            ORBITALS (ORDERED)
C  OUTPUT: (R*8)  EPSIL()  = ENERGIES OF ORBITALS (RYDBERG) (NATURAL
C                            ORDER)
C  OUTPUT: (I*4)  KGRPA()  = INDEXING OF SORTED ORBITALS TO NATURAL
C                            ORDER
C  OUTPUT: (I*4)  N0A(,)   = LOWEST ALLOWED N-SHELL
C                            1ST DIM: PARENT INDEX
C                            2ND IND: SPIN SYSTEM INDEX
C  OUTPUT: (R*8)  PARMR(,,)= PARAMETERS OF RADIATIVE RECOMBINATION
C                            APPROXIMATE FORMS
C                            1ST DIM: PARENT INDEX
C                            2ND IND: SPIN SYSTEM INDEX
C                            3RD IND: PARMS.  1: EFF. N FOR LOWEST LEVEL
C                                             2: PHASE SPACE FACTOR
C                                             3: ENERGY DISPLACEMENT
C                                             4: SCALING MULTIPLIER
C
C  OUTPUT: (R*8)  SBCHA(,,)= BEST EXTIMATE OF METASTABLE AVERAGED
C                            IONISATION RATE
C                            1ST DIM: PARENT INDEX
C                            2ND IND: SPIN SYSTEM INDEX
C                            3RD IND: TEMPERATURE INDEX
C  OUTPUT  (R*8)  C1       = SCALING FACTOR
C  OUTPUT  (I*4)  IZETA4(,,)= NO. OF ELECTRONS IN ORBITALS
C                            1ST DIM: PARENT INDEX
C                            2ND IND: SPIN SYSTEM INDEX
C                            3RD IND: SHELL INDEX
C  OUTPUT  (R*8)  EIONA(,,)= SET OF SCALED ORBITAL IONISATION POTENTIALS
C                            1ST DIM: PARENT INDEX
C                            2ND IND: SPIN SYSTEM INDEX
C                            3RD IND: SHELL INDEX
C  OUTPUT  (I*4)  NZETA(,) = NO. OF OCCUPIED GROUND STATE ORBITALS
C                            1ST DIM: PARENT INDEX
C                            2ND IND: SPIN SYSTEM INDEX
C  OUTPUT  (I*4)  IONLEV(,)= TERM INDEX OF GROUND FOR SPIN SYSTEM/PARENT
C                            1ST DIM: PARENT INDEX
C                            2ND IND: SPIN SYSTEM INDEX
C  OUTPUT  (I*4)  XITRUE(,)= EXACT IONISATION ENERGY OF GROUND FOR SPIN
C                            SYSTEM/PARENT
C                            1ST DIM: PARENT INDEX
C                            2ND IND: SPIN SYSTEM INDEX
C
C          (I*4)  KTERM    = PARAMETER = MAXIMUM NUMBER OF TERMS
C                                        ALLOWED IN SUBROUTINE
C          (I*4)  NTRUE    = NUMBER OF ORBITALS USED IN LEVEL LIST
C                            INCLUDING NON-DISPLAYED CLOSE SHELLS
C
C NOTE:
C
C ROUTINES:
C          ROUTINE    SOURCE    BRIEF DESCRIPTION
C          ------------------------------------------------------------
C          SBCHID     ADAS      CALCULATES IONISATION RATES
C          I4JGRP     ADAS      DECIMAL VALUE OF EISSNER HEX CHARACTER
C          I4LGRP     ADAS      L-VALUE FROM EISSNER HEX ORBITAL
C          I4NGRP     ADAS      N-VALUE FROM EISSNER HEX ORBITAL
C          I4NDEC     ADAS      N-VALUE FROM DECIMAL ORBITAL
C          I4UNIT     ADAS      FETCH UNIT NUMBER FOR MESSAGE OUTPUT
C
C AUTHOR:  H. P. SUMMERS, JET
C          K1/1/57
C          JET EXT. 4941
C
C DATE:    29/06/94
C
C UNIX-IDL PORT:
C	   WILLIAM OSBORN, TESSELLA SUPPORT SERVICES PLC.
C
C DATE:    22ND APRIL 1996
C
C VERSION: 1.1				DATE: 22-04-96
C MODIFIED: WILLIAM OSBORN
C	    - FIRST VERSION. NO CHANGES TO IBM CODE.
C
C VERSION: 1.2				DATE: 20-08-96
C MODIFIED: HUGH SUMMERS + WILLIAM OSBORN
C	    - TRAP IONLEV(IPAR,ISYS)=0. NOTE NO
C             FULL SOLUTION YET TO THIS PROBLEM OF
C             PARENTS AND RECMBINED METASTABLES WITH
C             INNER SHELL DIFFERENCES
C           - ADDED FOLLOWING TO CALL PARAMETERS
C             LLINK,ILINK,LEISS,NMET AND IMETR
C           - ADDED DETECTION OF SPECIAL PARENT
C             METASTABLE LINKS
C
C
C VERSION : 1.3
C DATE    : 10-02-97
C MODIFIED: HUGH SUMMERS 
C	    - INCLUDE UNSPECIFIED LOW N-SHELLS OF OUTER N-SHELL
C             IN PHFR ON ASSUMPTION THAT THEY ARE FILLED.
C
C VERSION : 1.4
C DATE    : 23-05-2003
C MODIFIED: Martin O'Mullane
C               - Pass in adf04 data rather than rewinding and
C                 reading it again.
C               - Remove all unused variables and reduced length of
C                 parameter list.
C               - Remove redundant code and format statements.
C
C VERSION : 1.5
C DATE    : 06-01-2004
C MODIFIED: Martin O'Mullane
C               - Pre-process configuration string with a new 
C                 routine (ceprep) to account for leading d10 and
C                 f10-f14 terms.
C               - Add error trapping code to check for overruns
C                 and index=0 errors.
C
C VERSION : 1.6
C DATE    : 15-11-2004
C MODIFIED: Martin O'Mullane
C               - Increase to 3500 levels.
C
C VERSION : 1.7
C DATE    : 17-05-2007
C MODIFIED: Martin O'Mullane
C               - Updated comments as part of subroutine documentation
C                 procedure.	
C-----------------------------------------------------------------------
      CHARACTER*18        CSTRGA(NDLEV)
      CHARACTER           EICHR(IODIMD)
      INTEGER             IA(NDLEV),   IGRPA(IODIMD),            IL
      INTEGER             ILA(NDLEV),  ILINK(NDMET,NDMET,2)
      INTEGER             ILPAR(NDMET),             IMETR(NDMET)
      INTEGER             INPAR(NDMET),             IODIMD
      INTEGER             IONLEV(NDMET,2),          IORB
      INTEGER             ISA(NDLEV),  ISPSYS(NDMET,2),          IZ
      INTEGER             IZ0,         IZ1
      INTEGER             IZETA4(NDMET,2,NDORB),    KGRPA(IODIMD)
      INTEGER             N0A(NDMET,2),             NDLEV,       NDMET
      INTEGER             NDORB,       NDQDN,       NDTHET,      NMET
      INTEGER             NORB,        NPMET,       NSYS(NDMET), NTHETA
      INTEGER             NZETA(NDMET,2)
      LOGICAL             LEICHR(IODIMD),           LEISS
      LOGICAL             LLINK(NDMET,NDMET,2)
      REAL*8              BWNO,        EIONA(NDMET,2,NDORB)
      REAL*8              ENPAR(NDMET),             PARMR(NDMET,2,4)
      REAL*8              QDORB((NDQDN*(NDQDN+1))/2)
      REAL*8              SBCHA(NDMET,2,NDTHET),    THETA(NDTHET)
      REAL*8              VORB(IODIMD),             WA(NDLEV)
      REAL*8              XITRUE(NDMET,2),          XJA(NDLEV)
© Copyright 1995-2024 The ADAS Project
Comments and questions to: adas-at-adas.ac.uk