> The maximum possible size is the number of mesh volume elements times the number of geometry cells (the track lengths do not need to be stored, as I was reminded at the CNERG meeting). You could allocate this all ahead of time using record arrays but this seems wasteful. Record arrays would also allow volume fractions to be stored side-by-side with their standard errors.

Well, not the maximum total *possible* size.  Rather the length of the data that you do have.  

> Both seem easy enough to implement, though I think we should decide now. I think an optimized sparse array makes more sense then an non-optimized sparse record array, or a record array that changes size.

Let's talk about the API in person tomorrow.  I am mostly free.