diff --git a/grid/utility/grapedataioformattypes.hh b/grid/utility/grapedataioformattypes.hh
new file mode 100644
index 0000000000000000000000000000000000000000..5ecb2b1782ccd29c740aef5e698db6dd172c7c4b
--- /dev/null
+++ b/grid/utility/grapedataioformattypes.hh
@@ -0,0 +1,55 @@
+// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+// vi: set et ts=4 sw=2 sts=2:
+#ifndef DUNE_GRAPEDATAIOFORMATTYPE_HH
+#define DUNE_GRAPEDATAIOFORMATTYPE_HH
+
+//- system includes
+#include <string>
+
+namespace Dune {
+
+  /*!
+     Specify the format to store grid and vector data
+   */
+  enum GrapeIOFileFormatType
+  { ascii = 0 ,     //!< store data in a human readable form
+    xdr = 1   ,     //!< store data in SUN's library routines
+                    //!< for external data representation (xdr)
+    pgm = 2 };      //!< store data in portable graymap file format
+
+
+  typedef std::string GrapeIOStringType;
+
+  /** \brief convert type to string
+   */
+  template <typename T>
+  inline GrapeIOStringType typeIdentifier ()
+  {
+    GrapeIOStringType tmp = "unknown";
+    return tmp;
+  }
+
+  template <>
+  inline GrapeIOStringType typeIdentifier<float> ()
+  {
+    GrapeIOStringType tmp = "float";
+    return tmp;
+  }
+
+  template <>
+  inline GrapeIOStringType typeIdentifier<int> ()
+  {
+    GrapeIOStringType tmp = "int";
+    return tmp;
+  }
+
+  template <>
+  inline GrapeIOStringType typeIdentifier<double> ()
+  {
+    GrapeIOStringType tmp = "double";
+    return tmp;
+  }
+
+} // end namespace Dune
+
+#endif