This is a dictionary of "known" names in nbody files. It will be extended as the need arises. The first few come from the headers: float npart float iter float time float ke float pe float masstot float l_ang float Gnewt float epsilon float zinitial float omega float hubble float box_size float znow float initial_rsize float initial_rmin_x float initial_rmin_y float initial_rmin_z float veltime float sizeof_ext float alpha float beta float curvature float lambda float cosm_integral float radius int int_npart int int_sizeof_ext char tree_header_text[384]; The following arrays are of length (int)nbody. Unfortunately, in order to maintain historical compatibilty, the length of the array is stored as a binary float in the files, so consider using nbio_rd_double(..., "nbody") to figure out how long these vectors are. float x[], y[], z[] float vx[], vy[], vz[] float mass[] From the msw .ap files, we also have float acc[] float phi[] Presumably, we should also reserve: float ax[], ay[], az[] The char id[][4] is specified by tree and tree_ap files. There will undoubtedly be others.