======================================================================
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]

======================================================================
solar default abundances
set in zeroabund

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

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

array indices for valence shell ionization potential
Heavy.ipHeavy[ion][nelem]

roughly La for each ion, 0.75 of ionization potential
Heavy.ipLyHeavy[ion][nelem]

======================================================================
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];

these are saved in zerologic.c

ReadElement, GetElem, will look for element name on line

======================================================================
Abundances and ionic fractions
xIonFracs[LIMELM+2][LIMELM+2]
xIonFracs[nelem#][ion_stg ]

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

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

xMolFracs[nelem] is total gas density of element in grains

total density of atoms and all ions will add up to xIonFracs[nelem][0] - xMolFracs[nelem]

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

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

======================================================================
limits to species

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.

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

note non-c form of loop over ions 
for( ion=IonLow; ion<=IonHigh etc )

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

xIonFracs[nelem][IonLow] is lowest ion stage with positive abundances

======================================================================
turning element off

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

element turned off, check 
#include "elmton.h"
if( elmton.lgElmtOn[ipZ] )

======================================================================
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

