Search Site | Contact Details | FAQ

ADAS Subroutine d5data

       SUBROUTINE D5DATA( DSFLLA , LSELA  , LEXSA  , LDEFA , LPART  ,
     &                    IZ0    , IZ1MIN , IZ1MAX , NPART  ,
     &                    NTDIM  , ITMAX  ,
     &                    ISDIMD , IZDIMD , ITDIMD , IPDIMD , NPARTR,
     &                    DTEV   , DDENS  ,
     &                    DTEVD  , DDENSD , DRCOFD , ZDATA  ,
     &                    DRCOFI ,
     &                    ACDA   , LACDA  ,
     &                    SCDA   , LSCDA  ,
     &                    CCDA   , LCCDA  ,
     &                    PRBA   , LPRBA  ,
     &                    PRCA   , LPRCA  ,
     &                    QCDA   , LQCDA  ,
     &                    XCDA   , LXCDA  ,
     &                    PLTA   , LPLTA
     &                  )
C
C-----------------------------------------------------------------------
C
C  ****************** FORTRAN77 SUBROUTINE: D5DATA *********************
C
C PURPOSE : TO EXTRACT A COMPLETE SET OF COLLISIONAL DIELECTRONIC DATA
C           FOR A TEMP/DENSITY MODEL
C           FROM EITHER PARTIAL (METASTABLE/PARENT RESOLVED) OR STANDARD
C           (UNRESOLVED) ISONUCLEAR MASTER FILES
C
C NOTE    : THE SOURCE DATA IS CONTAINED AS SEQUENTIAL DATASETS
C           WITH THE FOLLOWING NAMING CONVENTIONS:
C
C                   (1) JETSHP.ACD<YR>#<EL).<CODE>DATA
C                   (2) JETSHP.SCD<YR>#<EL>.<CODE>DATA
C                   (3) JETSHP.CCD<YR>#<EL>.<CODE>DATA
C                   (4) JETSHP.PRB<YR>#<EL>.<FILT>.<CODE>DATA
C                   (5) JETSHP.PRC<YR>#<EL>.<FILT>.<CODE>DATA
C                   (6) JETSHP.QCD<YR>#<EL>.<CODE>DATA
C                   (7) JETSHP.XCD<YR>#<EL>.<CODE>DATA
C                   (8) JETSHP.PLT<YR>#<EL>.<CODE>DATA
C
C       WHERE, <YR>   = TWO DIGIT YEAR NUMBER
C              <EL>   = ONE OR TWO CHARACTER ELEMENT SYMBOL
C              <CODE> = R       => PARTIAL DATA
C                       U       => PARTIAL DATA
C                       OMITTED => STANDARD DATA
C              <FILT> = SIX CHARACTER POWER FILTER CODE
C
C       AND DATA OF CLASSES 6 AND 7 DO NOT EXIST FOR THE STANDARD CASE.
C
C
C INPUT  : (C*120)DSFLLA()  = MASTER FILE DATA SET NAMES (FULL MVS DSN)
C                             (IN FORM SUITABLE FOR DYNAMIC ALLOCATION)
C INPUT  : (L*4)  LSELA()   = .TRUE.  => INPUT DATA SET TYPE FOR THIS
C                                        INDEX SELECTED
C                           = .FALSE. => INPUT DATA SET FOR THIS INDEX
C                                        NOT SELECTED
C INPUT  : (L*4)  LEXSA()   = .TRUE.  => INPUT DATA SET TYPE FOR THIS
C                                        SELECTED INDEX EXISTS
C                           = .FALSE. => INPUT DATA SET DOES NOT EXIST
C                                        FOR THIS SELECTED INDEX
C INPUT  : (L*4)  LDEFA()   = .TRUE.  => INPUT DATA SET TYPE FOR THIS
C                                        DEFAULT YEAR INDEX EXISTS
C                           = .FALSE. => INPUT DATA SET DOES NOT EXIST
C                                        FOR THIS DEFAULT YEAR INDEX
C INPUT  : (L*4)  LPART     = .TRUE.  => PARTIAL DATA SELECTED
C                           = .FALSE. => STANDARD DATA SELECTED
C INPUT  : (I*4)  IZ0       = NUCLEAR CHARGE
C INPUT  : (I*4)  IZ1MIN    = MINIMUM ION CHARGE+1 IN MASTER DATA FILES
C INPUT  : (I*4)  IZ1MAX    = MAXIMUM ION CHARGE+1 IN MASTER DATA FILES
C INPUT  : (I*4)  NPART()   = METASTABLE PARTITION.  I.E. NUMBER OF
C                             METASTABLES FROM CHARGE STATE IZ1MIN-1 TO
C                             IZ1MAX ON INPUT
C INPUT  : (I*4)  NTDIM     = MAXIMUM NUMBER OF DTEV/DDENS PAIRS
C INPUT  : (I*4)  ITMAX     = NUMBER OF ( DTEV() , DDENS() ) PAIRS
C INPUT  : (I*4)  ISDIMD    = MAXIMUM NUMBER OF (CHARGE, PARENT, GROUND)
C                             BLOCKS IN ISONUCLEAR MASTER FILES
C INPUT  : (I*4)  IZDIMD    = MAXIMUM NUMBER OF CHARGE STATES
C                             IN ISONUCLEAR MASTER FILES
C INPUT  : (I*4)  ITDIMD    = MAXIMUM NUMBER OF TEMP OR DENS VALUES IN
C                             ISOELECTRONIC MASTER FILES
C INPUT  : (I*4)  IPDIMD    = MAXIMUM NUMBER OF METASTABLES FOR EACH
C                             IONISATION STAGE
C INPUT  : (R*8)  DTEV()    = DLOG10(ELECTRON TEMPERATURES (EV))
C INPUT  : (R*8)  DDENS()   = DLOG10(ELECTRON DENSITIES (CM-3))
C
C OUTPUT : (I*4)  NPARTR()  = METASTABLE PARTITION.  I.E. NUMBER OF
C                             METASTABLES FROM CHARGE STATE IZ1MIN-1 TO
C                             IZ1MAX FOUND IN MASTER FILE
C OUTPUT : (R*8)  DTEVD()   = DLOG10(DATA ELECTRON TEMPERATURES (EV))
C                             IN SELECTED MASTER FILE
C OUTPUT : (R*8)  DDENSD()  = DLOG10(DATA ELECTRON DENSITIES (CM-3))
C                             IN SELECTED MASTER FILE
C OUTPUT : (R*8)  DRCOFD(,,)= DLOG10(DATA RATE COEFFICIENTS (CM-3/S))
C                             IN SELECTED MASTER FILE
C                             1ST DIM: (CHARGE,META,GRD) BLOCK INDEX
C                             2ND DIM: TEMPERATURE INDEX
C                             3RD DIM: DENSITY INDEX
C OUTPUT : (R*8)  ZDATA()   = CHARGE + 1 FOR IONS IN SELECTED MASTER
C                             FILE
C                             1ST DIM: (CHARGE,META,GRD) BLOCK INDEX
C OUTPUT : (R*8)  DRCOFI()  = INTERPOLATION OF DRCOFD(,,) FOR
C                             DTEV() & DDENS()
C OUTPUT : (R*8)  ACDA(,,,) = INTERPOLATION OF ACD COEFFICIENT (CM3 S-1)
C                             1ST DIM: TEMPERATURE INDEX
C                             2ND DIM: CHARGE STATE INDEX
C                             3RD DIM: RECOMBINING METASTABLE INDEX
C                             4TH DIM: RECOMBINED METASTABLE INDEX
C OUTPUT : (L*4)  LACDA(,,) = .TRUE.  => ACD COEFFICIENT AVAILABLE
C                             .FALSE. => ACD COEFFICIENT NOT AVAILABLE
C                             1ST DIM: CHARGE STATE INDEX
C                             2ND DIM: RECOMBINING METASTABLE INDEX
C                             3RD DIM: RECOMBINED METASTABLE INDEX
C OUTPUT : (R*8)  SCDA(,,,) = INTERPOLATION OF SCD COEFFICIENT (CM3 S-1)
C                             1ST DIM: TEMPERATURE INDEX
C                             2ND DIM: CHARGE STATE INDEX
C                             3RD DIM: RECOMBINING METASTABLE INDEX
C                             4TH DIM: RECOMBINED METASTABLE INDEX
C OUTPUT : (L*4)  LSCDA(,,) = .TRUE.  => SCD COEFFICIENT AVAILABLE
C                             .FALSE. => SCD COEFFICIENT NOT AVAILABLE
C                             1ST DIM: CHARGE STATE INDEX
C                             2ND DIM: RECOMBINING METASTABLE INDEX
C                             3RD DIM: RECOMBINED METASTABLE INDEX
C OUTPUT : (R*8)  CCDA(,,,) = INTERPOLATION OF CCD COEFFICIENT (CM3 S-1)
C                             1ST DIM: TEMPERATURE INDEX
C                             2ND DIM: CHARGE STATE INDEX
C                             3RD DIM: RECOMBINING METASTABLE INDEX
C                             4TH DIM: RECOMBINED METASTABLE INDEX
C OUTPUT : (L*4)  LCCDA(,,) = .TRUE.  => CCD COEFFICIENT AVAILABLE
C                             .FALSE. => CCD COEFFICIENT NOT AVAILABLE
C                             1ST DIM: CHARGE STATE INDEX
C                             2ND DIM: RECOMBINING METASTABLE INDEX
C                             3RD DIM: RECOMBINED METASTABLE INDEX
C OUTPUT : (R*8)  PRBA(,,)  = INTERPOLATION OF PRB COEFFICIENT (W CM3 )
C                             1ST DIM: TEMPERATURE INDEX
C                             2ND DIM: CHARGE STATE INDEX
C                             3RD DIM: RECOMBINING METASTABLE INDEX
C OUTPUT : (L*4)  LCCDA(,)  = .TRUE.  => PRB COEFFICIENT AVAILABLE
C                             .FALSE. => PRB COEFFICIENT NOT AVAILABLE
C                             1ST DIM: CHARGE STATE INDEX
C                             2ND DIM: RECOMBINING METASTABLE INDEX
C OUTPUT : (R*8)  PRCA(,,)  = INTERPOLATION OF PRC COEFFICIENT (W CM3 )
C                             1ST DIM: TEMPERATURE INDEX
C                             2ND DIM: CHARGE STATE INDEX
C                             3RD DIM: RECOMBINING METASTABLE INDEX
C OUTPUT : (L*4)  LPRCA(,)  = .TRUE.  => PRC COEFFICIENT AVAILABLE
C                             .FALSE. => PRC COEFFICIENT NOT AVAILABLE
C                             1ST DIM: CHARGE STATE INDEX
C                             2ND DIM: RECOMBINING METASTABLE INDEX
C OUTPUT : (R*8)  QCDA(,,,) = INTERPOLATION OF QCD COEFFICIENT (CM3 S-1)
C                             1ST DIM: TEMPERATURE INDEX
C                             2ND DIM: CHARGE STATE INDEX
C                             3RD DIM: FIRST METASTABLE INDEX
C                             4TH DIM: SECOND METASTABLE INDEX
C OUTPUT : (L*4)  LQCDA(,,) = .TRUE.  => QCD COEFFICIENT AVAILABLE
C                             .FALSE. => QDC COEFFICIENT NOT AVAILABLE
C                             1ST DIM: CHARGE STATE INDEX
C                             2ND DIM: FIRST METASTABLE INDEX
C                             3RD DIM: SECOND METASTABLE INDEX
C OUTPUT : (R*8)  XCDA(,,,) = INTERPOLATION OF XCD COEFFICIENT (CM3 S-1)
C                             1ST DIM: TEMPERATURE INDEX
C                             2ND DIM: CHARGE STATE INDEX
C                             3RD DIM: FIRST PARENT METASTABLE INDEX
C                             4TH DIM: SECOND PARENT METASTABLE INDEX
C OUTPUT : (L*4)  LXCDA(,,) = .TRUE.  => XCD COEFFICIENT AVAILABLE
C                             .FALSE. => XDC COEFFICIENT NOT AVAILABLE
C                             1ST DIM: CHARGE STATE INDEX
C                             2ND DIM: FIRST PARENT METASTABLE INDEX
C                             3RD DIM: SECOND PARENT METASTABLE INDEX
C OUTPUT : (R*8)  PLTA(,,)  = INTERPOLATION OF PLT COEFFICIENT (W CM3 )
C                             1ST DIM: TEMPERATURE INDEX
C                             2ND DIM: CHARGE STATE INDEX
C                             3RD DIM: METASTABLE INDEX
C OUTPUT : (L*4)  LPLTA(,)  = .TRUE.  => PLT COEFFICIENT AVAILABLE
C                             .FALSE. => PLT COEFFICIENT NOT AVAILABLE
C                             1ST DIM: CHARGE STATE INDEX
C                             2ND DIM:  METASTABLE INDEX
C
C PROGRAM: (I*4)  IT        = GENERAL INDEX FOR TEMPERATURE
C          (I*4)  IZ        = GENERAL INDEX FOR CHARGE
C          (I*4)  IZ1       = GENERAL INDEX FOR CHARGE+1
C          (I*4)  IPRT      = GENERAL INDEX FOR PARENT METASTABLE
C          (I*4)  JPRT      = GENERAL INDEX FOR PARENT METASTABLE
C          (I*4)  IGRD      = GENERAL INDEX FOR METASTABLE
C          (I*4)  JGRD      = GENERAL INDEX FOR METASTABLE
C
C
C ROUTINES:
C          ROUTINE    SOURCE    BRIEF DESCRIPTION
C          ------------------------------------------------------------
C
C
C AUTHOR : H. P. SUMMERS, JET
C          K1/1/57
C          JET  EXT. 4941
C
C DATE   : 25/04/94
C
C IDL-UNIX PORT:  
C VERSION:     1.1		DATE:    31/10/95
C MODIFIED:    TIM HAMMOND
C              - INITIAL VERSION TO BE USED FOR UNIX PLATFORMS
C
C VERSION:     1.2		DATE:    08/11/95
C MODIFIED:    TIM HAMMOND
C              - ALTERED ALL DECISIONS 'IF (LEXSA(I))' WHICH OPENED ANY
C                CLASS OF FILE WHICH EXISTED EVEN IF IT HAD NOT BEEN
C                SELECTED TO 'IF (LEXSA(I).AND.LSELA(I))' SO THAT EVEN
C                IF A PARTICULAR FILE EXISTS IT IS ONLY OPENED AND READ
C                IF IT HAS BEEN REQUESTED.
C	       - TIDIED UP COMMENTS AND CODE.
C
C VERSION:     1.3		DATE:    08/11/95
C MODIFIED:    TIM HAMMOND
C              - REMOVED SUPERFLUOUS VARIABLES
C
C VERSION:     1.4		DATE:    09/11/95
C MODIFIED:    TIM HAMMOND
C              - CHANGED LOOP:  2 IT = 1,ITDIMD
C                          TO:  2 IT = 1,NTDIM
C                AS IT WAS SUBSCRIPTING ARRAYS ACDA ETC. OUT OF
C                RANGE
C
C VERSION:     1.5		DATE:    13/11/95
C MODIFIED:    TIM HAMMOND
C              - CHANGED DECISION STATEMENTS AGAIN (SEE 1.2) SO THEY 
C                NOW READ: 'IF ((LEXSA(I).OR.LDEFA(I)).AND.LSELA(I))'
C                AS BEFORE THE CODE WAS IGNORING THE CASE WHERE THE
C                DEFAULT FILE EXISTED AND THE USER HAD ASKED FOR THIS
C                DATA TO BE INCLUDED. IT IS NOT NECESSARY TO SPECIFY
C                DIFFERENT FILENAMES FOR DEFAULT AND USER DATA AS THE
C                ARRAY USED CONTAINS THE DEFAULT FILENAME WHEREVER
C                THE USER FILE DOES NOT EXIST. SEE d5spf0.pro FOR
C                MORE DETAILS OF THIS.
C
C-----------------------------------------------------------------------
      CHARACTER*120       DSFLLA(8)
      INTEGER             IPDIMD,      ISDIMD,      ITDIMD,      ITMAX
      INTEGER             IZ0,         IZ1MAX,      IZ1MIN,      IZDIMD
      INTEGER             NPART(IZDIMD),            NPARTR(IZDIMD)
      INTEGER             NTDIM
      LOGICAL             LACDA(IZDIMD,IPDIMD,IPDIMD)
      LOGICAL             LCCDA(IZDIMD,IPDIMD,IPDIMD)
      LOGICAL             LDEFA(8),    LEXSA(8),    LPART
      LOGICAL             LPLTA(IZDIMD,IPDIMD),     LPRBA(IZDIMD,IPDIMD)
      LOGICAL             LPRCA(IZDIMD,IPDIMD)
      LOGICAL             LQCDA(IZDIMD,IPDIMD,IPDIMD)
      LOGICAL             LSCDA(IZDIMD,IPDIMD,IPDIMD)
      LOGICAL             LSELA(8),    LXCDA(IZDIMD,IPDIMD,IPDIMD)
      REAL*8              ACDA(NTDIM,IZDIMD,IPDIMD,IPDIMD)
      REAL*8              CCDA(NTDIM,IZDIMD,IPDIMD,IPDIMD)
      REAL*8              DDENS(ITMAX),             DDENSD(ITDIMD)
      REAL*8              DRCOFD(ISDIMD,ITDIMD,ITDIMD)
      REAL*8              DRCOFI(ITMAX),            DTEV(ITMAX)
      REAL*8              DTEVD(ITDIMD)
      REAL*8              PLTA(NTDIM,IZDIMD,IPDIMD)
      REAL*8              PRBA(NTDIM,IZDIMD,IPDIMD)
      REAL*8              PRCA(NTDIM,IZDIMD,IPDIMD)
      REAL*8              QCDA(NTDIM,IZDIMD,IPDIMD,IPDIMD)
      REAL*8              SCDA(NTDIM,IZDIMD,IPDIMD,IPDIMD)
      REAL*8              XCDA(NTDIM,IZDIMD,IPDIMD,IPDIMD)
      REAL*8              ZDATA(ISDIMD)
© Copyright 1995-2018 The ADAS Project
Comments and questions to: adas-at-adas.ac.uk