ADAS Subroutine xxdata_00
subroutine xxdata_00( iunit , dsname , & izdimd , iodimd , imdimd , & esym , iz0 , bwnoa , eeva , & iorba , na , la , iqa , & cstr_std , & imeta , eevma , & iorbma , nma , lma , iqma , & cstrm_std , & lexist , lresol & ) c c----------------------------------------------------------------------- c c ****************** fortran77 subroutine: xxdata_00 ****************** c c purpose: to fetch data from an adf00 data set and detect its main c characteristics. c c 1. element symbol and nuclear charge c 2. ionisation potentials (cm-1 and eV) c 3. shell occupancies in the normal collating order c c calling program: various c c ionisation potential: eV c configuration: standard form nlq (incl. integers c for n>9 and q>9 , lower case c letter for l and space separators) c c subroutine: c c input : (i*4) iunit = unit to which input file is allocated c input : (c*(*)) dsname = name of opened data set on iunit c input : (i*4) izdimd = maximum nuclear charge c input : (i*4) iodimd = max. number of orbitals c input : (i*4) imdimd = max. number of metastables c c output: (c*2) esym = element symbol. c output: (i*4) iz0 = nuclear charge read c output: (r*8) bwnoa() = ionisation potential (cm-1) of each stage c 1st dim: index = nuclear charge +1 c output: (r*8) eeva() = ionisation potential (eV) of each stage c 1st dim: index = nuclear charge +1 c output: (i*4) iorba() = number of orbital shells in configuration c 1st dim: index = nuclear charge +1 c output: (i*4) na(,) = principal quantum number of shell c 1st dim: index = nuclear charge +1 c 2nd dim: shell index c output: (i*4) la(,) = orbital ang. momentum qu. no. of shell c 1st dim: index = nuclear charge +1 c 2nd dim: shell index c output: (i*4) iqa(,) = occupancy. of shell c 1st dim: index = nuclear charge +1 c 2nd dim: shell index c c output: (c*(*)) cstr_std()= configuration string in standard form c 1st dim: index = nuclear charge +1 c c output: (r*8) eevma(,) = excitation energy (eV) of each metastable c 1st dim: index = nuclear charge +1 c 2nd dim: index = metastable index c output: (i*4) iorbma(,) = number of orbital shells in metas. config. c 1st dim: index = nuclear charge +1 c 2nd dim: index = metastable index c output: (i*4) nma(,,) = principal quantum number of metas.shell c 1st dim: index = nuclear charge +1 c 2nd dim: shell index c 3rd dim: index = metastable index c output: (i*4) lma(,,) = orbital ang. mom. qu. no. of metas. shell c 1st dim: index = nuclear charge +1 c 2nd dim: shell index c 3rd dim: index = metastable index c output: (i*4) iqma(,,) = occupancy. of metas. shell c 1st dim: index = nuclear charge +1 c 2nd dim: shell index c 3rd dim: index = metastable index c c output: (c*(*)) cstrm_std(,)=meta. config. string in standard form c 1st dim: index = nuclear charge +1 c 2nd dim: index = metastable index c c output: (l*4) lexist = .true. => ionisation potential present c = .false. => not present c output: (l*4) lresol = .true. => metastable resolved adf00 file c = .false. => not metastable resolved adf00 c c c routines: c routine source brief description c ------------------------------------------------------------- c i4unit adas fetch unit number for output of messages c i4fctn adas converts from char. to integer variable c xxslen adas finds string length excluding leading and c trailing blanks c xxword adas parses a string into separate words c for ' ()<>{}' delimiters c xxcase adas changes a string to upper or lower case c xfesym adas obtain element symbol from nuclear charge c xfelem adas obtain element name from nuclear charge c xxterm adas terminate program with a message c c c author: Hugh Summers, University of Strathclyde c JA7.08 c tel. 0141-548-4196 c c date: 27/04/04 c c update: 15/12/06 H. P. Summers - extended to handle metastable resolved c adf00 files c c c version: 1.1 date: 27-04-04 c modified: H.P. Summers c - first version c c version: 1.2 date: 05-01-07 c modified: H. P. Summers c - extended to handle metastable resolved c adf00 files c c c----------------------------------------------------------------------- c----------------------------------------------------------------------- CHARACTER*(*) CSTRM_STD(IZDIMD,IMDIMD), CSTR_STD(IZDIMD) CHARACTER*(*) DSNAME CHARACTER*2 ESYM INTEGER IMDIMD, IMETA(IODIMD), IODIMD INTEGER IORBA(IZDIMD) INTEGER IORBMA(IZDIMD,IMDIMD), IQA(IZDIMD,IODIMD) INTEGER IQMA(IZDIMD,IODIMD,IMDIMD), IUNIT INTEGER IZ0, IZDIMD, LA(IZDIMD,IODIMD) INTEGER LMA(IZDIMD,IODIMD,IMDIMD) INTEGER NA(IZDIMD,IODIMD) INTEGER NMA(IZDIMD,IODIMD,IMDIMD) LOGICAL LEXIST, LRESOL REAL*8 BWNOA(IZDIMD), EEVA(IZDIMD) REAL*8 EEVMA(IZDIMD,IODIMD)