Search Site | Contact Details | FAQ

ADAS Subroutine dddata

      SUBROUTINE  DDDATA( IUNIT  , NDPRT  , NDPRTI, NDREP , NDLEV ,
     &                    NDMET  , NDAUG  , NDT   ,
     &                    SEQSYM , IZ     , IZ0   , IZ1   ,
     &                    NPRF   , BWNF   , NPRFM , IPRFM ,
     &                    NPRI   , IPRI   ,
     &                    IPA    , CSTRPA , ISPA  , ILPA  , XJPA  ,
     &                    WPA    ,
     &                    NLEV   , BWNI   , NLEVM , ILEVM ,
     &                    IA     , CSTRGA , ISA   , ILA   , XJA   ,
     &                    WA     ,
     &                    LRAUG  , NPF    , INDF  , RAUG  ,
     &                    IMETI  , LSYSM  , NSYSM , LREPM , NREPM , 
     &                    LIONIS , LRION  , RION  ,
     &                    LEXCIT , LREXC  , REXC  ,
     &                    NPIS   , IPRTI  , ISYSI , ISPSYI,
     &                    IMETF  , NVALS  , NREPI , IREP  ,
     &                    AUGN   , LEXCN  , EXCN   ,
     &                    NTE    , TEA
     &                  )
C-----------------------------------------------------------------------
C
C  ****************** FORTRAN77 SUBROUTINE: DDDATA *********************
C
C  PURPOSE:  TO FETCH DATA FROM INPUT ADF23 DATA SET.
C
C  CALLING PROGRAM: ADAS213/ADAS413
C
C
C  SUBROUTINE:
C
C  INPUT : (I*4)  IUNIT   = UNIT TO WHICH INPUT FILE IS ALLOCATED
C
C  INPUT : (I*4)  NDPRT   = MAXIMUM NUMBER OF PARENT STATES
C  INPUT : (I*4)  NDPRTI  = MAXIMUM NUMBER OF INTERMEDIATE PARENT STATES
C  INPUT : (I*4)  NDREP   = MAX. NUMBER OF REPRESENTATIVE N-SHELLS
C  INPUT : (I*4)  NDLEV   = MAXIMUM NUMBER OF RESOLVED LEVELS
C  INPUT : (I*4)  NDMET   = MAXIMUM NUMBER OF IONISING ION METASTABLES
C  INPUT : (I*4)  NDAUG   = MAXIMUM NUMBER OF AUGER RATE INITIAL AND
C                           FINAL PARENT PAIRS
C  INPUT : (I*4)  NDT     = MAX. NUMBER OF ELECTRON TEMPERATURES
C
C  OUTPUT: (C*2)  SEQSYM  = RECOMBINED ION SEQ
C  OUTPUT: (I*4)  IZ      = RECOMBINED ION CHARGE
C  OUTPUT: (I*4)  IZ0     = NUCLEAR CHARGE
C  OUTPUT: (I*4)  IZ1     = RECOMBINING ION CHARGE
C  OUTPUT: (I*4)  NPRF    = NUMBER OF FINAL PARENTS
C  OUTPUT: (R*8)  BWNF    = BINDING WAVE NO. OF GROUND PARENT (CM-1)
C  OUTPUT: (I*4)  NPRFM   = NUMBER OF FINAL PARENTS WHICH ARE METASTABLES
C  OUTPUT: (I*4)  IPRFM() = CROSS-REFERENCING OF FINAL METASTABLE
C                           PARENTS TO FINAL PARENT LIST.
C  OUTPUT: (I*4)  NPRI    = NUMBER OF FINAL PARENTS WHICH ARE INTERMEDIATE
C                           PARENTS FOR REPR. N-SHELL DOUBLY EXCITED STATES
C  OUTPUT: (I*4)  IPRI()  = CROSS-REFERENCING OF INTERMEDIATE
C                           PARENTS TO FINAL PARENT LIST.
C  OUTPUT: (I*4)  IPA()   = INDEX OF FINAL PARENT ENERGY LEVELS
C  OUTPUT: (C*18) CSTRPA()= NOMENCL./CONFIG. FOR PARENT LEVEL 'IPA()'
C  OUTPUT: (I*4)  ISPA()  = MULTIPLICITY FOR PARENT LEVEL 'IPA()'
C                           NOTE: (ISPA-1)/2 = QUANTUM NUMBER (SP)
C  OUTPUT: (I*4)  ILPA()  = QUANTUM NUMBER (LP) FOR PARENT LEVEL 'IPA()'
C  OUTPUT: (R*8)  XJPA()  = QUANTUM NUMBER (JP) FOR PARENT LEVEL 'IPA()'
C                           NOTE: (2*XJPA)+1 = STATISTICAL WEIGHT
C  OUTPUT: (R*8)  WPA()   = ENERGY RELATIVE TO PARENT LEVEL 1 (CM-1)
C                           FOR PARENT LEVEL 'IPA()'
C
C  OUTPUT: (I*4)  NLEV    = NUMBER OF ENERGY LEVELS (TERMS) OF THE
C                           IONISING ION
C  OUTPUT: (R*8)  BWNI    = IONISATION POTENTIAL (CM-1) OF LOWEST LEVEL
C                           OF IONISING ION
C  OUTPUT: (I*4)  NLEVM   = NUMBER OF IONISING ION LEVELS WHICH ARE METASTABLES
C  OUTPUT: (I*4)  ILEVM() = CROSS-REFERENCING OF IONISNG ION METASTABLES
C                           TO IONISING ION LEVEL LIST.
C  OUTPUT: (I*4)  IA()    = IONISING ION ENERGY LEVEL INDEX NUMBER
C  OUTPUT: (C*18) CSTRGA()= NOMENCL./CONFIG. FOR RECOMBINED ION LEVEL
C                           'IA()'
C  OUTPUT: (I*4)  ISA()   = MULTIPLICITY FOR RECOMBINED LEVEL 'IA()'
C                           NOTE: (ISA-1)/2 = QUANTUM NUMBER (S)
C  OUTPUT: (I*4)  ILA()   = QUANTUM NUMBER (L) FOR RECOMBINED LEVEL
C                           'IA()'
C  OUTPUT: (R*8)  XJA()   = QUANTUM NUMBER (J) FOR RECOMBINED LEVEL
C                           'IA()'
C                           NOTE: (2*XJA)+1 = STATISTICAL WEIGHT
C  OUTPUT: (R*8)  WA()    = ENERGY RELATIVE TO RECOMBINED LEVEL 1 (CM-1)
C                           FOR RECOMBINED LEVEL 'IA()'
C  OUTPUT: (L*4)  LRAUG   = .TRUE.  => RESOLVED AUGER DATA PRESENT
C                           .FALSE. => RESOLVED AUGER DATA NOT PRESENT
C  OUTPUT: (I*4)  NPF     = NUMBER OF FINAL PARENTS WITH RESOLVED AUGER DATA
C  OUTPUT: (I*4)  INDF()  = INDICES OF FINAL PARENTS WITH RESOLVED AUGER DATA
C  OUTPUT: (R*8)  RAUG(,) = RESOLVED AUGER RATES
C                           1ST.DIM: IONISING ION LEVEL INDEX
C                           2ND.DIM: FINAL PARENT INDEX
C  OUTPUT: (I*4)  IMETI() = INDEX OF METASTABLES IN IONISING ION LEVEL LIST
C  OUTPUT: (L*4)  LSYSM() = .TRUE.  => SPIN SYSTEMS LINKED TO METASTABLE
C                           .FALSE. => NO SPIN SYSTEMS LINKED TO METASTABLE
C  OUTPUT: (I*4)  NSYSM()  = NUMBER OF SPIN SYSTEMS LINKED TO METASTABLE
C  OUTPUT: (L*4)  LREPM() = .TRUE.  => REPR. LEVELS LINKED TO METASTABLE
C                           .FALSE. => NO REP. LEVELS LINKED TO METASTABLE
C  OUTPUT: (I*4)  NREPM()  = NUMBER OF REPR. LEVELS LINKED TO METASTABLE
C  OUTPUT: (L*4)  LIONIS()= .TRUE.  => STATE SELECTIVE IONIS. DATA PRESENT
C                           .FALSE. => STATE SELECTIVE IONIS. DATA NOT PRESENT
C                           1ST.DIM: INITIAL METASTABLE INDEX
C  OUTPUT: (L*4)  LRION(,)= .TRUE.  => DATA PRESENT FOR FINAL STATE
C                           .FALSE. => DATA NOT PRESENT FOR FINAL STATE
C                           1ST.DIM: IONISING ION METASTABLE INDEX
C                           2ND.DIM: FINAL PARENT INDEX
C  OUTPUT: (R*8)  RION(,,)= STATE SELECTIVE DIRECT IONISATION COEFFICIENTS
C                           1ST.DIM: IONISING ION METASTABLE INDEX
C                           2ND.DIM: FINAL PARENT INDEX
C                           3RD.DIM: ELECTRON TEMPERATURE INDEX 
C  OUTPUT: (L*4)  LEXCIT()= .TRUE.  => STATE SELECTIVE EXCIT. DATA PRESENT
C                           .FALSE. => STATE SELECTIVE EXCIT. DATA NOT PRESENT
C                           1ST.DIM: INITIAL METASTABLE INDEX
C  OUTPUT: (L*4)  LREXC(,)= .TRUE.  => DATA PRESENT FOR FINAL STATE
C                           .FALSE. => DATA NOT PRESENT FOR FINAL STATE
C                           1ST.DIM: IONISING ION METASTABLE INDEX
C                           2ND.DIM: FINAL IONISING ION LEVEL INDEX
C  OUTPUT: (R*8)  REXC(,,)= STATE SELECTIVE DIRECT EXCITATION COEFFICIENTS
C                           1ST.DIM: IONISING ION METASTABLE INDEX
C                           2ND.DIM: FINAL IONISING ION LEVEL INDEX
C                           3RD.DIM: ELECTRON TEMPERATURE INDEX 
C  OUTPUT: (I*4)  NPIS()  = INDEX OVER INTERMEDIATE PARENT & SPIN SYSTEM
C                           FOR BUNDLE-N DOUBLY EXCITED STATES
C                           1ST.DIM: IONISING ION METASTABLE INDEX
C  OUTPUT: (I*4)  IPRTI(,)= INTERMEDIATE PARENT INDEX IN PARENT LIST
C                           1ST.DIM: IONISING ION METASTABLE INDEX
C                           2ND.DIM: INTERMEDIATE PARENT & SPIN SYSTEM
C                                    INDEX
C  OUTPUT: (I*4)  ISYSI(,)= SPIN SYSTEM INDEX FOR INTERMEDIATE PARENT 
C                           1ST.DIM: IONISING ION METASTABLE INDEX
C                           2ND.DIM: INTERMEDIATE PARENT & SPIN SYSTEM
C                                    INDEX
C  OUTPUT: (I*4)  ISPSYI(,)= SPIN OF SYSTEM FOR INTERMEDIATE PARENT
C                           1ST.DIM: IONISING ION METASTABLE INDEX
C                           2ND.DIM: INTERMEDIATE PARENT & SPIN SYSTEM
C                                    INDEX
C  OUTPUT: (I*4)  IMETF(,)= FINAL PARENT INDICES TO WHICH INTERM. PARENT/
C                           SPIN SYSTEM/REPR. N-SHELL AUGERS 
C                           1ST.DIM: IONISING ION METASTABLE INDEX
C                           2ND.DIM: INTERMEDIATE PARENT & SPIN SYSTEM
C                                    INDEX
C                           3RD.DIM: FINAL IONISED ION METASTABLE INDEX 
C  OUTPUT: (I*4)  NVALS(,)= NUMBER OF FINAL PARENT S TO WHICH INTERM. 
C                           PARENT/SPIN SYSTEM/REPR. N-SHELL AUGERS
C                           1ST.DIM: IONISING ION METASTABLE INDEX
C                           2ND.DIM: INTERMEDIATE PARENT & SPIN SYSTEM
C                                    INDEX
C  OUTPUT: (I*4)  NREPI(,)= NUMBER OF REPR. N-SHELLS FOR  INTERM. 
C                           PARENT/SPIN SYSTEM
C                           1ST.DIM: IONISING ION METASTABLE INDEX
C                           2ND.DIM: INTERMEDIATE PARENT & SPIN SYSTEM
C                                    INDEX
C  OUTPUT: (I*4)  IREP(,,)= REPR. N-SHELLS FOR INTERM. PARENT/SPIN SYSTEM/
C                           N-SHELL AUTOIONISING LEVELS
C                           1ST.DIM: REPRESENTATIVE N-SHELL INDEX
C                           2ND.DIM: IONISING ION METASTABLE INDEX
C                           3RD.DIM: INTERMEDIATE PARENT & SPIN SYSTEM
C                                    INDEX
C  OUTPUT: (R*8)  AUGN(,,,)=AUGER RATES FOR INTERM. PARENT/SPIN SYSTEM/
C                           REPRESENTATIVE. N-SHELL
C                           1ST.DIM: REPRESENTATIVE N-SHELL INDEX
C                           2ND.DIM: IONISING ION METASTABLE INDEX
C                           3RD.DIM: INTERMEDIATE PARENT & SPIN SYSTEM
C                                    INDEX
C  OUTPUT: (L*4)  LEXCN(,,)=.TRUE. => DATA PRESENT FOR REPR. N-SHELL
C                           .FALSE.=> DATA NOT PRESENT FOR REPR. N-SHELL
C                           1ST.DIM: REPRESENTATIVE N-SHELL INDEX
C                           2ND.DIM: IONISING ION METASTABLE INDEX
C                           3RD.DIM: INTERMEDIATE PARENT & SPIN SYSTEM
C                                    INDEX
C  OUTPUT: (R*8)  EXCN(,,,)=EXCITATION RATES TO AUTOIONISING PARENT/SPIN
C                           SYSTEM REPRESENTATIVE N-SHELL
C                           1ST.DIM: REPRESENTATIVE N-SHELL INDEX
C                           2ND.DIM: IONISING ION METASTABLE INDEX
C                           3RD.DIM: INTERMEDIATE PARENT & SPIN SYSTEM
C                                    INDEX
C                           4TH DIM: TEMPERATURE INDEX
C  OUTPUT: (I*4)  NTE     = NUMBER OF ELECTRON TEMPERATURES
C  OUTPUT: (R*8)  TEA()   = ELECTRON TEMPERATURES (K)
C
C          (I*4)  IND     = GENERAL INDEX
C          (I*4)  INDX    = GENERAL INDEX
C          (I*4)  INDX1   = GENERAL INDEX
C          (I*4)  INDX2   = GENERAL INDEX
C          (I*4)  II      = GENERAL INDEX
C          (I*4)  I       = GENERAL INDEX
C          (I*4)  IPI     = GENERAL INDEX FOR INTERM. PARENT
C          (I*4)  IPF     = GENERAL INDEX FOR FINAL PARENT
C          (I*4)  IPIS    = GENERAL INDEX FOR INTERM. PARENT/SPIN SYSTEM
C          (I*4)  IR      = GENERAL INDEX FOR REPRESENTATIVE N-SHELLS
C          (I*4)  IT      = GENERAL INDEX
C          (I*4)  J       = GENERAL INDEX
C          (I*4)  K       = GENERAL INDEX
C
C          (L*4)  LDATA   = GENERAL READ/DO NOT READ FLAG
C
C          (C*18) C18     = GENERAL CHARACTER STRING
C
C  ROUTINES:
C          ROUTINE    SOURCE    BRIEF DESCRIPTION
C          -------------------------------------------------------------
C          I4UNIT     ADAS      FETCH UNIT NUMBER FOR OUTPUT OF MESSAGES
C          I4EIZ0     ADAS      RETURNS NUCL. CHARGE FROM ELEMENT SYMBOL
C          R8FCTN     ADAS      CONVERTS FROM CHARACTER TO REAL VARIABLE
C          XXWORD     ADAS      EXTRACT POSITION OF NUMBER IN BUFFER
C
C  AUTHOR:  H. P. SUMMERS, UNIVERSITY OF STRATHCLYDE
C          JA8.08
C          TEL. 0141-553-4196
C
C  DATE:    21/03/98
C
C  UPDATE:
C
C VERSION:	1.1						DATE: 11-06-98
C MODIFIED: RICHARD MARTIN
C		- PUT UNDER SCCS CONTROL.         
C
C-----------------------------------------------------------------------
C-----------------------------------------------------------------------
      CHARACTER*(*)       CSTRGA(NDLEV),            CSTRPA(NDPRT)
      CHARACTER*2         SEQSYM
      INTEGER             IA(NDLEV),   ILA(NDLEV),  ILEVM(NDLEV)
      INTEGER             ILPA(NDPRT), IMETF(NDMET,NDPRTI,NDPRT)
      INTEGER             IMETI(NDMET),             INDF(NDPRT)
      INTEGER             IPA(NDPRT),  IPRFM(NDPRT)
      INTEGER             IPRI(NDPRTI),             IPRTI(NDMET,NDPRTI)
      INTEGER             IREP(NDREP,NDMET,NDPRTI), ISA(NDLEV)
      INTEGER             ISPA(NDPRT), ISPSYI(NDMET,NDPRTI)
      INTEGER             ISYSI(NDMET,NDPRTI),      IUNIT,       IZ
      INTEGER             IZ0,         IZ1,         NDAUG,       NDLEV
      INTEGER             NDMET,       NDPRT,       NDPRTI,      NDREP
      INTEGER             NDT,         NLEV,        NLEVM,       NPF
      INTEGER             NPIS(NDMET), NPRF,        NPRFM,       NPRI
      INTEGER             NREPI(NDMET,NDPRTI),      NREPM(NDMET)
      INTEGER             NSYSM(NDMET),             NTE
      INTEGER             NVALS(NDMET,NDPRTI)
      LOGICAL             LEXCIT(NDMET)
      LOGICAL             LEXCN(NDREP,NDMET,NDPRTI)
      LOGICAL             LIONIS(NDMET),            LRAUG
      LOGICAL             LREPM(NDMET),             LREXC(NDMET,NDLEV)
      LOGICAL             LRION(NDMET,NDPRT),       LSYSM(NDMET)
      REAL*8              AUGN(NDREP,NDMET,NDPRTI,NDPRT),        BWNF
      REAL*8              BWNI,        EXCN(NDREP,NDMET,NDPRTI,NDT)
      REAL*8              RAUG(NDLEV,NDPRT)
      REAL*8              REXC(NDMET,NDLEV,NDT)
      REAL*8              RION(NDMET,NDPRT,NDT),    TEA(NDT)
      REAL*8              WA(NDLEV),   WPA(NDPRT),  XJA(NDLEV)
      REAL*8              XJPA(NDPRT)
© Copyright 1995-2018 The ADAS Project
Comments and questions to: adas-at-adas.ac.uk