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