/* these are the vectors that store the original Hummer and Storey case B * line data for H and He - the declaration for the interpolator follows */ #define NHSDIM 15 /*used for following vectors*/ #define NLINEHS 300 /*dimension of array with lines*/ EXTERN struct t_CaseBHS { /* these are the density and temperature mesh points on the * original Hummer & Storey data, for H[0] and He[1], */ double Density[2][NHSDIM], ElecTemp[2][NHSDIM], /*emiss[ipTemp][ipDens][ipLevel]*/ Emiss[2][NHSDIM][NHSDIM][NLINEHS] ; /* saves the number of density temperature mesh points for H and He */ long int nDensity[2] , ntemp[2] , ncut[2] ; /* following will be set false if we ever stop over bounds of HS table * for either hydrogen or helium */ int lgHCaseBOK , lgHeCaseBOK; } CaseBHS ; double HSRate( /* general utility to read in line emissivities from the Storey & Hummer tables of case B emissivities. */ long int iHi, /* the principal quantum numbers, . */ long int iLo, /* upper and lower levels in any order*/ long int iZ, /* charge of ion, only 1 and 2 for now*/ double TempIn, /* temperature, must lie within the range of the table, which depends on the ion charge, and is 500 - 30,000K for hydrogen */ double DenIn /* the density and must lie within the range of the table*/ );