I just realized a minor flaw in both of our versions. In your version, if the first fraction is equal to 0, isatom will be true. If a material definition has a first entry of zero and the rest negative (mass fractions) this code would falsely report that mixed fractions are used. There probably are not a lot of cases when entries appear in material cards with fractions equal to zero, but it is valid MCNP input. Is this an issue worth fixing? If so, I could modify your code to search for the first non-zero entry (that would require another loop with embedded conditionals though).