ADAS Subroutine xxcftr
SUBROUTINE XXCFTR( ICFSEL , CSTRGI , CSTRGO )
C
C-----------------------------------------------------------------------
C
C ****************** FORTRAN77 SUBROUTINE: XXCFTR *********************
C
C PURPOSE: CONVERTS A CONFIGURATION CHARACTER STRING, SUCH AS OCCURS
C IN A SPECIFIC ION FILE LEVEL LIST, BETWEEN EISSNER AND
C STANDARD FORMS
C
C CALLING PROGRAMS: GENERAL USE
C
C SUBROUTINE:
C
C INPUT : (I*4) ICFSEL = 1 => STANDARD FORM OUT, STANDARD FORM IN
C 2 => EISSNER FORM OUT, STANDARD FORM IN
C 3 => STANDARD FORM OUT, EISSNER FORM IN
C 4 => EISSNER FORM OUT, EISSNER FORM IN
C INPUT : (C*(*)) CSTRGI = CONFIGURATION STRING IN INPUT FORM
C OUTPUT: (C*(*)) CSTRGO = CONFIGURATION STRING IN OUTPUT FORM
C
C (I*4) I = GENERAL USE
C (I*4) ISHEL = SHELL COUNTER
C (I*4) IP = PARITY OF CONFIGURATION
C (I*4) MAXN = N_SHELL SUM FOR CONFIGURATION
C (I*4) NSHEL = NUMBER OF SHELLS IDENTIFIED fFROM STRING
C (I*4) NELA() = NUMBER OF ELECTRONS IN EACH SHELL
C
C (C*19) STRG = STANDARD FORM CONFIGURATION STRING
C (C*19) STRGE = EISSNER FORM CONFIGURATION STRING
C (C*1) CHEISA()= EISSNER CHARACTER FOR ORBITALS
C (C*2) CHSTDA()= STANDARD ORBITAL SPEC. FOR EACH SHELL
C (EISSNER FORM CASE)
C (C*1) CHQA() = INDEX TO HEXADECIMAL CONVERSIONS
C (C*1) CHRA() = CHAR. FOR NO. OF. EQUIV. ELEC. IN SHELL
C (STANDARD FORM CASE)
C
C (L*4) LEISS = .TRUE. => EISSNER FORM
C .FALSE. => NOT EISSNER FORM
C
C
C ROUTINES:
C ROUTINE SOURCE BRIEF DESCRIPTION
C -------------------------------------------------------------
C I4UNIT ADAS FETCH UNIT NUMBER FOR OUTPUT OF MESSAGES
C I4NGRP ADAS RETURNS N QUANTUM NUMBER IN THE
C EISSNER SINGLE HEXADECIMAL CHARACTER FORM
C I4PGRP ADAS RETURNS PARITY OF ORBITAL GIVEN THE
C EISSNER SINGLE HEXADECIMAL CHARACTER FORM
C I4SCHR ADAS RETURNS NUMERICAL VALUE FOR NUMBER OF
C EQUIVALENT ELECTRONS GIVEN AS HEX> CHAR.
C CSTGRP ADAS RETURNS TERM OF ORBITAL GIVEN IN THE
C EISSNER SINGLE HEXADECIMAL CHARACTER FORM
C CEIGRP ADAS RETURNS EISSNER CODE FOR ORBITAL
C
C
C NOTE: THE ROUTINE IS USED TO CONVERT THE CONFIGURATION CHARACTER
C STRING OCCURRING IN ADF04 FILE LEVEL LISTS. THE STRING
C LENGTH ALLOCATED TO THIS IS *18 FOLLOWING 1 BLANK SPACE
C AFTER THE LEVEL INDEX. A PROBLEM ARISES WHEN THE FIRST
C SHELL CONTAINS MORE THAN 9 EQUIVALENT ELECTRONS. IN THIS
C CASE, OVERSPILL IS ALLOWED INTO THE BLANK CHARACTER SPACE.
C THE ROUTINE WILL ANALYSE A *19 STRING INCLUDING THE USUALLY
C BLANK LOCATION OR A *18 STRING EXCLUDING IT. IN THE LATTER
C CASE AN INTELLIGENT GUESS IS MADE AS TO WHETHER THE OMITTED
C BLANK SHOULD IN FACT BE A '1'. THIS SITUATION OCCURS FOR A
C LEADING CLOSED D-SHELL.
C
C AUTHOR: H. P. SUMMERS, UNIVERSITY OF STRATHCLYDE
C JA8.08
C TEL. 0141-553-4196
C
C DATE: 25/10/95
C
C
C UPDATE: 19/02/03 H. P. SUMMERS - EXTENDED RANGE AND STRINGS
C
C
C UNIX-IDL PORT:
C
C VERSION: 1.1 DATE: 19-1-96
C MODIFIED: TIM HAMMOND (TESSELLA SUPPORT SERVICES PLC)
C - PUT UNDER SCCS CONTROL
C
C VERSION: 1.2 DATE: 19-02-03
C MODIFIED: H. P. SUMMERS
C - EXTENDED RANGE AND STRINGS
C
C-----------------------------------------------------------------------
C-----------------------------------------------------------------------
CHARACTER*(*) CSTRGI, CSTRGO
INTEGER ICFSEL