#ifndef AHF_IO_H
#define AHF_IO_H

/* Required for the type definitions */
#include "../tdef.h"

extern void
ahf_io_WriteProfiles(const char    *fprefix,
                     HALO          *halos,
                     unsigned long *idx,
                     int           numHalos);

extern void
ahf_io_WriteParticles(const char    *fprefix,
                      HALO          *halos,
                      unsigned long *idx,
                      int           numHalos);

extern void
ahf_io_WriteHalos(const char    *fprefix,
                  HALO          *halos,
                  unsigned long *idx,
                  int           numHalos);


#ifdef AHFcentrefile
extern void
ahf_io_WriteCenterfile(const char *fprefix,
                       HALO       *halos,
                       int        numHalos);

#endif

#if ((defined AHFsubstructure || defined AHFgridsubstructure) \
    && !defined WITH_MPI && !defined AHFrestart && !defined AHFbinary)
extern void
ahf_io_WriteSubstructure(const char    *fprefix,
                         HALO          *halos,
                         unsigned long *idx,
                         int           numHalos);

#endif

#ifdef AHFgeom
extern void
ahf_io_WriteHalosGeom(const char    *fprefix,
                      HALO          *halos,
                      unsigned long *idx,
                      int           numHalos);
#endif /* AHFgeom */

#endif   /* AHF_IO_H */
