Search Site | Contact Details | FAQ

ADAS Subroutine e5data

       SUBROUTINE E5DATA( IUNIT  , DSNAME ,
     &                    NSTORE , NTRDIM , NTDDIM ,
     &                    NBSEL  , ISELA  ,
     &                    IRZ0   , IRZ1   , IDZ0   ,
     &                    LEQUA  ,
     &                    CDONOR , CRECVR , CFSTAT ,
     &                    AMSRA  , AMSDA  ,
     &                    ITRA   , ITDA   ,
     &                    TFRA   , TFDA   ,
     &                    QFTEQA , QFTCXA
     &                  )
C-----------------------------------------------------------------------
C
C  ****************** FORTRAN77 SUBROUTINE: E5DATA *********************
C
C  PURPOSE:  TO  FETCH  DATA  FROM  INPUT THERMAL TOTAL CHARGER TRANSFER
C            RATE COEFFICIENT FILE FOR GIVN RECEIVER ION ELEMENT.
C            (MEMBER STORED IN IONATOM.DATA - MEMBER PREFIX 'TCX#').
C
C  CALLING PROGRAM: ADAS505/SQTCX
C
C  DATA: 
C
C           UP TO 'NSTORE' SETS (DATA-BLOCKS) OF DATA MAY BE  READ FROM
C           THE FILE - EACH  BLOCK  FORMING  A  COMPLETE  SET OF  RATE-
C           COEFFICIENTS FOR A GIVEN  RECEIVER/DONOR COMBINATION.  EACH
C           DATA-BLOCK  IS  ANALYSED INDEPENDENTLY OF ANY  OTHER  DATA-
C           BLOCK.
C
C           THE UNITS USED IN THE DATA FILE ARE TAKEN AS FOLLOWS:
C
C           TEMPERATURES        : EV
C           RATE COEFFICIENTS   : CM**3 SEC-1
C
C  SUBROUTINE:
C
C  INPUT : (I*4)  IUNIT    = UNIT TO WHICH INPUT FILE IS ALLOCATED.
C  INPUT : (C*44) DSNAME   = MVS DATA SET NAME OF DATA SET BEING READ
C
C  INPUT : (I*4)  NSTORE   = MAXIMUM NUMBER  OF  INPUT DATA-BLOCKS  THAT
C                            CAN BE STORED.
C  INPUT : (I*4)  NTRDIM   = MAX NUMBER OF RECEIVER TEMPERATURES ALLOWED
C  INPUT : (I*4)  NTDDIM   = MAX NUMBER OF DONOR    TEMPERATURES ALLOWED
C
C  OUTPUT: (I*4)  NBSEL    = NUMBER OF DATA-BLOCKS ACCEPTED & READ IN.
C  OUTPUT: (I*4)  ISELA()  = READ - DATA-SET DATA-BLOCK ENTRY INDICES
C                            DIMENSION: DATA-BLOCK INDEX
C
C  OUTPUT: (I*4)  IRZ0()   = NUCLEAR CHARGE OF RECEIVING IMPURITY ION -
C                            READ FROM SELECTED DATA-BLOCK.
C                            DIMENSION: DATA-BLOCK INDEX.
C  OUTPUT: (I*4)  IRZ1()   = INITIAL CHARGE OF RECEIVER -
C                            READ FROM SELECTED DATA-BLOCK.
C                            DIMENSION: DATA-BLOCK INDEX.
C  OUTPUT: (I*4)  IDZ0()   = NUCLEAR CHARGE OF NEUTRAL DONOR -
C                            READ FROM SELECTED DATA-BLOCK.
C                            DIMENSION: DATA-BLOCK INDEX.
C
C  OUTPUT: (L*4)  LEQUA()  = READ - DATA SET ENTRY FORMAT
C                                   .TRUE.  => DATA  SET CONTAINS  EQUAL
C                                              TEMPERATURE COEFFICIENT.
C                                   .FALSE. => DATA SET DOES NOT CONTAIN
C                                              EQUAL TEMPERATURE COEFFT.
C                            DIMENSION: DATA-BLOCK INDEX
C  OUTPUT: (C*9)  CDONOR() = READ - DONOR ION IDENTIFICATION
C                            DIMENSION: DATA-BLOCK INDEX
C  OUTPUT: (C*9)  CRECVR() = READ - RECEIVER ION IDENTIFICATION
C                            DIMENSION: DATA-BLOCK INDEX
C  OUTPUT: (C*10) CFSTAT() = READ - FINAL STATE SPECIFICATION
C                            DIMENSION: DATA-BLOCK INDEX
C  OUTPUT: (R*8)  AMSRA()  = READ - RECEIVER ATOMIC MASS
C                            DIMENSION: DATA-BLOCK INDEX
C  OUTPUT: (R*8)  AMSDA()  = READ - DONOR    ATOMIC MASS
C                            DIMENSION: DATA-BLOCK INDEX
C
C  OUTPUT: (I*4)  ITRA()   = READ - NUMBER OF RECEIVER TEMPERATURES
C                            DIMENSION: DATA-BLOCK INDEX
C  OUTPUT: (I*4)  ITDA()   = READ - NUMBER OF DONOR    TEMPERATURES
C                            DIMENSION: DATA-BLOCK INDEX
C
C  OUTPUT: (R*8)  TFRA(,)  = READ - RECEIVER TEMPERATURES (UNITS: EV)
C                            1ST DIMENSION: RECEIVER TEMPERATURE INDEX
C                            2ND DIMENSION: DATA-BLOCK INDEX
C  OUTPUT: (R*8)  TFDA(,)  = READ - DONOR    TEMPERATURES (UNITS: EV)
C                            1ST DIMENSION: DONOR    TEMPERATURE INDEX
C                            2ND DIMENSION: DATA-BLOCK INDEX
C
C  OUTPUT: (R*8)  QFTEQA(,)= READ - EQUAL TEMPERATURE RATE-COEFFICIENTS
C                                   (UNITS: CM**3 SEC-1)
C                            1ST DIMENSION: RECEIVER TEMPERATURE INDEX
C                            2ND DIMENSION: DATA-BLOCK INDEX
C  OUTPUT: (R*8)  QFTCXA(,,)=READ - FULL SET OF RATE-COEFFICIENTS
C                                   (UNITS: CM**3 SEC-1)
C                            1ST DIMENSION: DONOR    TEMPERATURE INDEX
C                            2ND DIMENSION: RECEIVER TEMPERATURE INDEX
C                            3RD DIMENSION: DATA-BLOCK INDEX
C
C          (C*2)  CEQUAL   = PARAMETER = 'EQ'
C
C          (I*4)  I4EIZ0   = FUNCTION - (SEE ROUTINES SECTION BELOW)
C          (I*4)  I4FCTN   = FUNCTION - (SEE ROUTINES SECTION BELOW)
C          (I*4)  I4UNIT   = FUNCTION - (SEE ROUTINE SECTION BELOW)
C          (I*4)  IBLK     = ARRAY INDEX: DATA-BLOCK INDEX
C          (I*4)  ITR      = ARRAY INDEX: RECEIVER TEMPERATURE INDEX
C          (I*4)  ITD      = ARRAY INDEX: DONOR    TEMPERATURE INDEX
C          (I*4)  NTRNUM   = NUMBER OF RECEIVER TEMPERATURES FOR CURRENT
C                            DATA-BLOCK
C          (I*4)  NTDNUM   = NUMBER OF DONOR    TEMPERATURES FOR CURRENT
C                            DATA-BLOCK
C	   (I*7)  N7	   = MIN(7,NDTNUM) REQUIRED TO HANDLE > 7 DONOR TEMPS
C          (I*4)  IABT     = RETURN CODE FROM 'I4FCTN'
C
C          (L*4)  LBEND    = IDENTIFIES WHETHER THE LAST OF THE  INPUT
C                            DATA SUB-BLOCKS HAS BEEN LOCATED.
C                            (.TRUE. => END OF SUB-BLOCKS REACHED)
C
C          (C*10) IONNAM   = READ - DONOR/RECEIVER DESIGNATION STRING
C
C          (C*1)  CSLASH   = '/' - DELIMITER FOR 'XXHKEY'
C          (C*2)  C2       = GENERAL USE TWO BYTE CHARACTER STRING
C          (C*3)  CKEY1    = 'AMD'    - INPUT BLOCK HEADER KEY
C          (C*3)  CKEY2    = 'AMR'    - INPUT BLOCK HEADER KEY
C          (C*3)  CKEY3    = 'FST'    - INPUT BLOCK HEADER KEY
C          (C*4)  CKEY4    = 'ISEL'  - INPUT BLOCK HEADER KEY
C          (C*80) C80      = GENERAL USE 80 BYTE  CHARACTER  STRING  FOR
C                            THE INPUT OF DATA-SET RECORDS.
C          (C*80) C80      = GENERAL USE 80 BYTE  CHARACTER  STRING  FOR
C                            THE INPUT OF DATA-SET RECORDS.
C
C ROUTINES:
C          ROUTINE    SOURCE    BRIEF DESCRIPTION
C          ------------------------------------------------------------
C          XXHKEY     ADAS      OBTAIN KEY/RESPONSE STRINGS FROM TEXT
C          I4EIZ0     ADAS      INTEGER*4 FUNCTION    -
C                               RETURNS Z0 FOR GIVEN ELEMENT SYMBOL
C          I4FCTN     ADAS      INTEGER*4 FUNCTION    -
C                               CONVERT CHARACTER STRING TO INTEGER
C          R8FCTN     ADAS      REAL*8 FUNCTION    -
C                               CONVERT CHARACTER STRING TO REAL
C          I4UNIT     ADAS      INTEGER*4 FUNCTION    -
C                               FETCH UNIT NUMBER FOR OUTPUT OF MESSAGES
C
C AUTHOR:  PAUL E. BRIDEN (TESSELLA SUPPORT SERVICES PLC)
C          K1/0/81
C          JET EXT. 4569
C
C DATE:    20/02/91
C
C UPDATE:  23/04/93 - PE BRIDEN - ADAS91: ADDED I4UNIT FUNCTION TO WRITE
C                                         STATEMENTS FOR SCREEN MESSAGES
C
C UPDATE:  24/05/93 - PE BRIDEN - ADAS91: CHANGED I4UNIT(0)-> I4UNIT(-1)
C
C UPDATE:  15/12/95 - HP SUMMERS- ADAS91: MODIFIED INFOMATION STRING USE
C
C UNIX-IDL PORT:
C
C AUTHOR:  WILLIAM OSBORN (TESSELLA SUPPORT SERVICES PLC)
C          NO CHANGES FROM IBM VERSION
C
C DATE:    20TH MARCH 1996
C
C VERSION: 1.1                  DATE: 20-03-96
C MODIFIED: WILLIAM OSBORN
C           - FIRST VERSION
C
C VERSION: 1.2                  DATE: 10-04-96
C MODIFIED: WILLIAM OSBORN
C           - REMOVED REDUNDANT VARIABLE
C
C VERSION: 1.3			DATE: 19-09-97
C MODIFIED: MARTIN O'MULLANE
C	    - MODIFIED TO ALLOW DATASETS WITH GREATER THAN 7 DONOR
C	      TEMPERATURES TO BE USED.
C
C-----------------------------------------------------------------------
      CHARACTER*9         CDONOR(NSTORE)
      CHARACTER*10        CFSTAT(NSTORE)
      CHARACTER*9         CRECVR(NSTORE)
      CHARACTER*44        DSNAME
      INTEGER             IDZ0(NSTORE),             IRZ0(NSTORE)
      INTEGER             IRZ1(NSTORE),             ISELA(NSTORE)
      INTEGER             ITDA(NSTORE),             ITRA(NSTORE)
      INTEGER             IUNIT,       NBSEL,       NSTORE,      NTDDIM
      INTEGER             NTRDIM
      LOGICAL             LEQUA(NSTORE)
      REAL*8              AMSDA(NSTORE),            AMSRA(NSTORE)
      REAL*8              QFTCXA(NTDDIM,NTRDIM,NSTORE)
      REAL*8              QFTEQA(NTRDIM,NSTORE),    TFDA(NTDDIM,NSTORE)
      REAL*8              TFRA(NTRDIM,NSTORE)
© Copyright 1995-2018 The ADAS Project
Comments and questions to: adas-at-adas.ac.uk