Search Site | Contact Details | FAQ

ADAS Subroutine cxdata

       SUBROUTINE CXDATA( IUNIT  , MXNENG , MXNSHL , TITLED ,
     &                    SYMBR  , SYMBD  , IZR    , IZD    ,
     &                    INDD   , NENRGY , NMIN   , NMAX   ,
     &                    LPARMS , LSETL  , LSETM  , ENRGYA ,
     &                    ALPHAA , LFORMA , XLCUTA , PL2A   ,
     &                    PL3A   , SIGTA  , SIGNA  , SIGLA  ,
     &                    SIGMA
     &                  )
C
C
C-----------------------------------------------------------------------
C
C  ****************** FORTRAN77 SUBROUTINE: CXDATA *********************
C
C  PURPOSE:  TO FETCH DATA FROM INPUT DATA SET OF TYPE ADF01.
C
C  CALLING PROGRAM: ADAS301/ADAS306/ADAS307/ADAS308/ADAS309
C
C  DATA:
C
C           THE UNITS USED IN THE DATA FILE ARE TAKEN AS FOLLOWS:
C
C           COLLISION ENERGIES  : KEV/AMU
C           ALPHA               :
C           TOTAL XSECTS.       : CM2
C           N-SHELL XSECTS.     : CM2
C           NL-SHELL DATA       : CM2
C           NLM-SHELL DATA      : CM2
C
C
C  SUBROUTINE:
C
C  INPUT : (I*4)  IUNIT     = UNIT TO WHICH INPUT FILE IS ALLOCATED.
C  INPUT : (I*4)  MXNENG    = MAXIMUM NO. OF ENERGIES.
C  INPUT : (I*4)  MXNSHL    = MAXIMUM NO. OF N SHELLS.
C
C  OUTPUT: (C*80) TITLED    = NOT SET - TITLE FOR DATA SOURCE.
C  OUTPUT: (C*2)  SYMBR     = READ - RECEIVER ION ELEMENT SYMBOL.
C  OUTPUT: (C*2)  SYMBD     = READ - DONOR ION ELMENT SYMBOL.
C  OUTPUT: (I*4)  IZR       = READ - ION CHARGE OF RECEIVER.
C  OUTPUT: (I*4)  IZD       = READ - ION CHARGE OF DONOR.
C  OUTPUT: (I*4)  INDD      = READ - DONOR STATE INDEX.
C  OUTPUT: (I*4)  NENRGY    = NUMBER OF ENERGIES READ.
C  OUTPUT: (I*4)  NMIN      = LOWEST N-SHELL FOR WHICH DATA READ.
C  OUTPUT: (I*4)  NMAX      = HIGHEST N-SHELL FOR WHICH DATA READ.
C  OUTPUT: (L*4)  LPARMS    = FLAGS IF L-SPLITTING PARAMETERS PRESENT.
C                             .TRUE.  => L-SPLITTING PARAMETERS PRESENT.
C                             .FALSE  => L-SPLITTING PARAMETERS ABSENT.
C  OUTPUT: (L*4)  LSETL     = FLAGS IF L-RESOLVED DATA PRESENT.
C                             .TRUE.  => L-RESOLVED DATA PRESENT.
C                             .FALSE  => L-RESOLVED DATA ABSENT.
C  OUTPUT: (L*4)  LSETM     = FLAGS IF M-RESOLVED DATA PRESENT.
C                             .TRUE.  => M-RESOLVED DATA PRESENT.
C                             .FALSE  => M-RESOLVED DATA ABSENT.
C
C  OUTPUT: (R*8)  ENRGYA()  = READ - COLLISION ENERGIES.
C                             UNITS: EV/AMU (READ AS KEV/AMU)
C                             DIMENSION: ENERGY INDEX
C  OUTPUT: (R*8)  ALPHAA()  = READ - EXTRAPOLATION PARAMETER ALPHA.
C                             DIMENSION: ENERGY INDEX
C  OUTPUT: (I*4)  LFORMA()  = READ - PARAMETERS FOR CALCULATING L-RES
C                                    X-SEC.
C                             DIMENSION: ENERGY INDEX
C  OUTPUT: (R*8)  XLCUTA()  = READ - PARAMETERS FOR CALCULATING L-RES
C                                    X-SEC.
C                             DIMENSION: ENERGY INDEX
C  OUTPUT: (R*8)  PL2A()    = READ - PARAMETERS FOR CALCULATING L-RES
C                                    X-SEC.
C                             DIMENSION: ENERGY INDEX
C  OUTPUT: (R*8)  PL3A()    = READ - PARAMETERS FOR CALCULATING L-RES
C                                    X-SEC.
C                             DIMENSION: ENERGY INDEX
C  OUTPUT: (R*8)  SIGTA()   = READ - TOTAL CHARGE EXCHANGE
C                                    CROSS-SECTION.
C                             UNITS: CM2
C                             DIMENSION: ENERGY INDEX
C  OUTPUT: (R*8)  SIGNA(,)  = READ - N-RESOLVED CHARGE EXCHANGE
C                                    CROSS-SECTIONS.
C                             UNITS: CM2
C                             1ST DIMENSION: ENERGY INDEX
C                             2ND DIMENSION: N-SHELL
C  OUTPUT: (R*8)  SIGLA(,)  = READ - L-RESOLVED CHARGE EXCHANGE
C                                    CROSS-SECTIONS.
C                             UNITS: CM2
C                             1ST DIMENSION: ENERGY INDEX
C                             2ND DIMENSION: INDEXED BY I4IDFL(N,L)
C  OUTPUT: (R*8)  SIGMA(,)  = READ - M-RESOLVED CHARGE EXCHANGE
C                                    CROSS-SECTIONS.
C                             UNITS: CM2
C                             1ST DIMENSION: ENERGY INDEX
C                             2ND DIMENSION: INDEXED BY I4IDFM(N,L,M)
C                                            WITH M >= 0 ONLY
C
C	   (R*8)  ZEROST   = PARAMETER = EFFECTIVE SHIFT APPLIED TO
C					 CROSS-SECTION VALUES TO AVOID
C					 ZERO VALUES (WILL NOT AFFECT
C					 ANY VALUES WHICH ARE GREATER
C					 THAN AROUND 1.0E+15*ZEROSHFT -
C					 i.e. 1.0E-25.)
C
C          (I*4)  OLDMIN   = PREVIOUS VALUE READ FOR NMIN.
C          (I*4)  OLDMAX   = PREVIOUS VALUE READ FOR NMAX.
C          (I*4)  IBLK     = CURRENT DATA BLOCK.
C          (I*4)  IVALUE   = USED TO PARSE FOR END OF DATA FLAG (-1).
C          (I*4)  N        = N QUANTUM NUMBER.
C          (I*4)  L        = L QUANTUM NUMBER.
C          (I*4)  M        = M QUANTUM NUMBER.
C          (I*4)  I        = LOOP COUNTER.
C          (I*4)  J        = LOOP COUNTER.
C          (I*4)  IERR     = ERROR RETURN CODE.
C          (C*2)  CIZR     = ION CHARGE OF RECEIVER.
C          (C*2)  CIZD     = ION CHARGE OF DONOR.
C          (C*1)  INDD     = DONOR STATE INDEX.
C
C ROUTINES:
C          ROUTINE    SOURCE    BRIEF DESCRIPTION
C          -------------------------------------------------------------
C          I4FCTN     ADAS      RETURNS CHARACTER STRING AS AN INTEGER.
C          I4UNIT     ADAS      FETCH UNIT NUMBER FOR OUTPUT OF MESSAGES
C          I4IDFL     ADAS      RETURNS UNIQUE INDEX FROM QUANTUM
C                               NUMBERS N AND L.
C          I4IDFM     ADAS      RETURNS UNIQUE INDEX FROM QUANTUM
C                               NUMBERS N, L AND M.
C          XXIDTL     ADAS      INVERSE OF I4IDFL. RETURNS QUANTUM
C                               NUMBERS N AND L FROM INDEX.
C          XXIDTM     ADAS      INVERSE OF I4IDFM. RETURNS QUANTUM
C                               NUMBERS N, L AND M FROM INDEX.
C
C AUTHOR:  JONATHAN NASH (TESSELLA SUPPORT SERVICES PLC)
C          K1/0/81
C          JET EXT. 5183
C
C DATE:    21/09/93
C
C UPDATE:  18/10/93 - J NASH    - ADAS91:
C          UPDATED TO READ L-SPLITTING PARAMETERS IF PRESENT IN DATASET.
C
C UPDATE:  01/05/95 - Tim Hammond - IDLADAS:
C	   UNIX port.
C
C UPDATE:  16/05/95 - Tim Hammond - IDLADAS:
C	   ADDED AND APPLIED ZEROST PARAMETER => EFFECTIVE ZERO FOR
C          CROSS-SECTIONS (CODING DONE BY PAUL BRIDEN).
C
C
C-----------------------------------------------------------------------
C
C-----------------------------------------------------------------------
      CHARACTER*2         SYMBD,       SYMBR
      CHARACTER*80        TITLED
      INTEGER             INDD,        IUNIT,       IZD,         IZR
      INTEGER             LFORMA(MXNENG),           MXNENG,      MXNSHL
      INTEGER             NENRGY,      NMAX,        NMIN
      LOGICAL             LPARMS,      LSETL,       LSETM
      REAL*8              ALPHAA(MXNENG),           ENRGYA(MXNENG)
      REAL*8              PL2A(MXNENG),             PL3A(MXNENG)
      REAL*8              SIGLA(MXNENG,(MXNSHL*(MXNSHL+1))/2)
      REAL*8              SIGMA(MXNENG,(MXNSHL*(MXNSHL+1)*(MXNSHL+2))/6)
      REAL*8              SIGNA(MXNENG,MXNSHL),     SIGTA(MXNENG)
      REAL*8              XLCUTA(MXNENG)
© Copyright 1995-2024 The ADAS Project
Comments and questions to: adas-at-adas.ac.uk