ADAS Subroutine bdxref
SUBROUTINE BDXREF( IUNIT , NDLEV , NDJLEV , NDPRT ,
& DSNSP , DSNBD , DSNSPO ,
& NTRM , NPTRM , NLVL , NPLVL ,
& ISTRM , IGTRM , ISPTRM , IGPTRM ,
& ISLVL , FSLVL , JTREF ,
& ISPLVL , FSPLVL , JTPREF ,
& LSJ , IERROR
& )
C-----------------------------------------------------------------------
C
C ****************** FORTRAN77 SUBROUTINE: BDXREF *********************
C
C PURPOSE: TO FETCH DATA FROM INPUT ADF18/A23_A04 CROSS-REFERENCE FILE.
C
C CALLING PROGRAM: ADAS213
C
C
C SUBROUTINE:
C
C INPUT : (I*4) IUNIT = UNIT TO WHICH INPUT FILE IS ALLOCATED
C
C INPUT : (I*4) NDLEV = MAX. NO. OF TERMS THAT CAN BE READ
C INPUT : (I*4) NDJLEV = MAX. NO. OF LEVELS THAT CAN BE READ
C INPUT : (I*4) NDPRT = MAX. NO. OF PARENT STATES
C
C OUTPUT: (C*80) DSNSP = INPUT ADF04 FILE NAME
C OUTPUT: (C*80) DSNBD = ADF23 IONISATION DATA FILE NAME
C OUTPUT: (C*80) DSNSP = OUTPUT ADF04 FILE NAME
C
C OUTPUT: (I*4) NTRM = NUMBER OF TERMS IN X-REF FILE.
C OUTPUT: (I*4) NPTRM = NUMBER OF PARENT TERMS IN X-REF FILE.
C OUTPUT: (I*4) NLVL = NUMBER OF LEVELS IN X-REF FILE.
C OUTPUT: (I*4) NPLVL = NUMBER OF PARENT LEVELS IN X-REF FILE.
C
C OUTPUT: (I*4) ISTRM() = SPEC. ION FILE TERM INDEX FROM X-REF
C 1ST.DIM.: TERM COUNTER IN X-REF FILE
C OUTPUT: (I*4) IGTRM() = IONIS. FILE TERM INDEX FROM X-REF
C 1ST.DIM.: TERM COUNTER IN X-REF FILE
C OUTPUT: (I*4) ISPTRM() = SPEC. ION FILE PRNT. TERM INDEX FROM X-REF
C 1ST.DIM.: PRNT. TERM COUNTER IN X-REF FILE
C OUTPUT: (I*4) IGPTRM() = IONIS. FILE PRNT. TERM INDEX FROM X-REF
C 1ST.DIM.: PRNT. TERM COUNTER IN X-REF FILE
C OUTPUT: (I*4) ISLVL() = SPEC. ION FILE LEVEL INDEX FROM X-REF
C 1ST.DIM.: LEVEL COUNTER IN X-REF FILE
C OUTPUT: (I*4) JTREF() = SP. ION FILE TERM ASSOCIATED WITH LEVEL
C FROM X-REF FILE.
C 1ST.DIM.: LEVEL COUNTER IN X-REF FILE
C OUTPUT: (I*4) ISPLVL() = SPEC. ION FILE PRNT. LEVEL INDEX FROM X-REF
C 1ST.DIM.: PRNT. LEVEL COUNTER IN X-REF FILE
C OUTPUT: (I*4) JTPREF() = SP. ION FILE PRNT. TERM ASSOCIATED WITH
C PRNT. LEVEL FROM X-REF FILE.
C 1ST.DIM.: LEVEL COUNTER IN X-REF FILE
C OUTPUT: (I*4) ISPTRM() = SPEC. ION FILE PRNT. TERM INDEX FROM X-REF
C 1ST.DIM.: PRNT. TERM COUNTER IN X-REF FILE
C OUTPUT: (I*4) IGPTRM() = IONIS. FILE PRNT. TERM INDEX FROM X-REF
C 1ST.DIM.: PRNT. TERM COUNTER IN X-REF FILE
C
C OUTPUT: (R*8) FSLVL() = FRACTIONATION OF TERM RATES AMONG LEVELS
C 1ST.DIM.: LEVEL COUNTER IN X-REF FILE
C OUTPUT: (R*8) FSPLVL() = FRACTIONATION OF PRNT. TERM RATES AMONG
C PRNT. LEVELS
C 1ST.DIM.: LEVEL COUNTER IN X-REF FILE
C OUTPUT: (L*4) LSJ = .TRUE. => J-RESOL. INFO. IN X-REF FILE
C .FALSE.=> NO J-RESOL. IN X-REF FILE
C OUTPUT: (I*4) IERROR = 0 => X-REF FILE OK
C 1 => FAULT IN XREF FILE DATASETS
C 2 => FAULT IN XREF FILE TERM COUNT
C 3 => FAULT IN XREF FILE LEVEL COUNT
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 XXFLNM ADAS CONVERT SHORT FILE NAME TO FULL NAME
C
C AUTHOR: H. P. SUMMERS, UNIVERSITY OF STRATHCLYDE
C JA8.08
C TEL. 0141-553-4196
C
C DATE: 02/04/98
C
C UPDATE:
C
C VERSION: 1.1 DATE: 23-06-98
C MODIFIED: HUGH SUMMERS
C FIRST VERSION.
C
C-----------------------------------------------------------------------
C-----------------------------------------------------------------------
CHARACTER*80 DSNBD, DSNSP, DSNSPO
INTEGER IERROR, IGPTRM(NDPRT)
INTEGER IGTRM(NDLEV), ISLVL(NDJLEV)
INTEGER ISPLVL(NDPRT), ISPTRM(NDPRT)
INTEGER ISTRM(NDLEV), IUNIT
INTEGER JTPREF(NDPRT), JTREF(NDJLEV)
INTEGER NDJLEV, NDLEV, NDPRT, NLVL
INTEGER NPLVL, NPTRM, NTRM
LOGICAL LSJ
REAL*8 FSLVL(NDJLEV), FSPLVL(NDPRT)