/* * * NBNBNBthis must exactly parallel the read/write statements * in opac0 */ /*lowest level where hydrogenic nu^-3 photo cross sect used*/ #define NHPLPHOT 10 EXTERN struct t_OpacPoint { /* ipHOpac pointers for photoionization cross sections of hydrogen*/ long int ipHOpac[LIMELM][NHPLPHOT], /* ipRayScat opacity pointer for rayleigh scattering*/ ipRayScat, /* iopcom compton scatterin, total recoil*/ iopcom, /* ippr is threshold for pair production, ioppr is opacity offset*/ ippr, ioppr, /* ipBrems opacity offset pointer for brems (free-free)*/ ipBrems, /* iphmra ratio of h minus to neut h ff brems opacity*/ iphmra, /* iphmop H- bound free opacity*/ iphmop, /* ih2pnt lower, upper limits to bound, ih2pof, opacity offset*/ ih2pnt[2], ih2pof, /* iophe1 points for photo from singlet levels*/ iophe1[9], /* lowest levels of he triplets*/ ioptri, /* * ipElement[purpose][shell][ioniz][nelem], * pointers to energy range are set in ipShells, called by CreatePoint * pointers to opacity stack offset defined in MakeOpacity where * opacities are set * * first dim * [0] is pointer to low-energy threshold in energy array * [1] is highest energy for shell, set by LimitSh * [2] is opacity offset within large opacity stack * * if shell does not exist, set upper limit * to less than lower limit so this never looped upon * these are used as flags by LimitSh to check whether * this is a real shell - * following code is in ipShells for this non-existant case * OpacPoint.ipElement[0][nshell][ion][nelem] = 2; * OpacPoint.ipElement[1][nshell][ion][nelem] = 1; * all routines must protect against this since opacities for these * undefined shells is also undefined * * second dim is shell, 0 for k shell, up to 6, * (Shell.chShell[ns] give the label for each of these shells) * These quantities are only defined for the number of shells that exist. * The number of shells is given by nsShellsCom.nsShells[ion][nelem] * * third dimension is ion stage, 0 for atom * * last dim is atomic number of element, 0 for H * */ ipElement[3][7][LIMELM][LIMELM], /* in1 is [NI] excited state*/ in1[3], /* pointers to oxy excited states*/ ipo3exc[3], ipo3exc3[3], ipo1exc[3], /* photo to excited O+ levels*/ iopo2d, /* photoionization from upper lev of Mg II 2798*/ ipmgex, ipOpMgEx, /* calcium excited states*/ ica2ex[2], ica2op; } OpacPoint;