======================================================================
ionization potentials

lower and upper bound for each shell is given as follows:
iplow = OpacPoint.ipElement[0][ns][nion][nelem];
iphi = OpacPoint.ipElement[1][ns][nion][nelem];

for entire species,
Heavy.ipHeavy[nelem][ion]

valence in Ryd saved in contcreatepointers.c into
Heavy.Valence_IP_Ryd[nelem][ion]

======================================================================
abundances 
solar default abundances
set in routine AbundancesZero, which is in zerologic.c
contained in abund.SolarSave

solar abundances for the current calculation abund.solar[LIMELM];

======================================================================
current gas phase abundances
these are the total gas phase abundances abund.gas_phase[LIMELM];

======================================================================
list of inner shells
heavy.chShell[0], "1s" etc

======================================================================
strings giving labels names

/* line	label */
rfield.chLineLabel[j] ,
/* cont label*/
rfield.chContLabel[j] );

shell labels stored in Shell.chShell[]

set in zerologic.c

 has names
#include "elementnames.h"
elementnames.chElementSym has 2ch name as used in label, as in "H " , "He" , "Li" ,"Be" ,
elementnames.chElementNameShort[nelem] is 4-char name in caps
elementnames.chElementName has full name upper and lower case
/* this is series of two char nmbers, beginning with " 1" and
 * ending with "31" */
elementnames.chIonStage[LIMELM+3][3];
/* string giving ionization stage as roman numerals */
elementnames.chIonRoman[LIMELM+3][7];

iso sequence names in iso.chISO

these are saved in zerologic.c

match element chech for element name
routine GetElem will search for element name on command line 
in cddefines.h

======================================================================
Abundances and ionic fractions
abund.gas_phase[LIMELM+3][LIMELM+2]
dense.xIonDense[nelem][ion] - density cm-3

first argument is atomic number minus 1, so H is 0

second argument is ionization stage, 
0 for atom, 1 for first ion
 
abund.gas_phase[nelem] is total gas phase density (cm-3), all ions and molecules, but not grains

abund.xMolecules[nelem] is total gas density of element in various molecules

======================================================================

values of abundances are stored in struc solars.h
initial sets of abundances are set in AbundancesZero.c

======================================================================

limits to ionization range

upper and lower limits to range of element, nelem is on the C scale,
IonLow and IonHigh are on c scale, 0 is smallest low can be, 
0 <= IonLowHi <= N+1 where N is the atomic number.

dense.IonLow[nelem], initally 0 in nsset
dense.IonHigh[nelem], initially nelem+1 in nsset

note non-c form of loop over ions 
for( ion=dense.IonLow[nelem]; ion<=dense.IonHigh[nelem]; ++ion )

if the element is turned off, both are set to -1

abund.gas_phase[nelem][IonLow] is lowest ion stage with positive abundances
abund.gas_phase[nelem][IonHigh] is highest ion stage with positive abundances

======================================================================

turning element off

if the element is turned off, both 
dense.IonLow[nelem]
dense.IonHigh[nelem]
are set to -1

element turned off or on - check 
#include "abundances.h"
if( dense.lgElmtOn[nelem] )

======================================================================

mass in atomic mass units
AtomcWgt.AtomicWeight[i]
set in zerologic, about 1 for H, 4 for he, etc

======================================================================

in cddefines.h and cddefines.c are defined the static vars
ipHYDRO
ipHELIUM
ipCARBON
ipOXYGEN
which are the indices for these elements in the array of elements
these are off by one from the chemical scale due to c array counting