/*mean derive mean ionization fractions over computed EXTERN structure */ void MeanInc(void); /*MeanZero zero mean of ionization fractions array */ void MeanZero(void); /*RadMean derive mean ionization fractions over ravius for some element */ void RadMean( /* either 'i' or 't' for ionization or temperature */ char chType, /* atomic number on physical, no c, scale */ long int nelem, /* this will say how many of arlog have non-zero values */ long int *n, /* array of values, log both cases */ float arlog[]); /*VolMean do volume mean of ionization fractions over volumn of any element */ void VolMean( /* either 'i' or 't' for ionization or temperature */ char chType, /* atomic number on physical, no c, scale */ long int nelem, /* this will say how many of arlog have non-zero values */ long int *n, /* array of values, log both cases */ float arlog[]); /* ionmeans.h */ EXTERN struct t_IonMeans { /* this is used to get the harmonic mean temperature with respect to * atomic hydrogen density, over radius, for comparison with 21cm data */ double HarMeanTemp[2]; /* used to store information for mean ionization and electron temperature, * this is set to zero in zmean, incremented in mean, and analysed in * RadMean and VolMean */ /* xIonMeans[type][stage][nelem] * stage=0 is integrated sum of all * type = 0 is radius integration, 1=vol integration */ double xIonMeans[2][LIMELM+2][LIMELM]; /* TempMeans[type][stage][nelem] * stage=0 is not used, here for analogy with above * type = 0 is radius integration, 1=vol integration, * 2 is norm for radius, 3 is norm for vol integration */ double TempMeans[4][LIMELM+2][LIMELM]; } IonMeans;