Various improvements to the i/o code
Bugs:
- Fixes incorrect meta-data in snapshots when not writing any of the fields of a particle type (Fixes #732 (closed))
- Fixes #728 (closed)
- Add a barrier at the end of the distributed io output to make sure all ranks are done before progressing (Sibelius-dark bug with slow cosma6 disks)
- Fix an overflow in the global counter of particles in groups reported by FOF (bug had no consequence on output, just on stdout message).
Improvements:
- Refactoring of the selection of fields to unify the calls into a single simpler function
- Allow for different default values when reading optional fields (Implement #705 (closed))
- Re-read the output list when restarting a run (Implement #678 (closed))
- Allow for different snapshot basenames for the different output types (Implement #677 (closed))
- Allow users to specify a different snapshot ID for each entry in the output list (Implement #694 (closed))
- Add the list of particle type names to the snapshot headers.
- Upon restarting, check that all ranks are on the same ti_current. This prevents accidental restarts with mixed sets of restart files.
Edited by Matthieu Schaller