#include <deal.II/base/memory_consumption.h>
#include <deal.II/base/utilities.h>
#include <deal.II/base/parallel.h>
-#include <boost/serialization/array.hpp>
+
+// boost::serialization::make_array used to be in array.hpp, but was
+// moved to a different file in BOOST 1.64
+#include <boost/version.hpp>
+#if BOOST_VERSION >= 106400
+# include <boost/serialization/array_wrapper.hpp>
+#else
+# include <boost/serialization/array.hpp>
+#endif
#include <boost/serialization/split_member.hpp>
#include <cstring>
#include <deal.II/lac/read_write_vector.h>
#include <deal.II/lac/vector_space_vector.h>
#include <deal.II/lac/vector_type_traits.h>
-#include <boost/serialization/array.hpp>
+
+// boost::serialization::make_array used to be in array.hpp, but was
+// moved to a different file in BOOST 1.64
+#include <boost/version.hpp>
+#if BOOST_VERSION >= 106400
+# include <boost/serialization/array_wrapper.hpp>
+#else
+# include <boost/serialization/array.hpp>
+#endif
#include <boost/serialization/split_member.hpp>
#include <cstdio>
#include <deal.II/base/config.h>
#include <deal.II/base/exceptions.h>
#include <deal.II/base/subscriptor.h>
-#include <boost/serialization/array.hpp>
+
+// boost::serialization::make_array used to be in array.hpp, but was
+// moved to a different file in BOOST 1.64
+#include <boost/version.hpp>
+#if BOOST_VERSION >= 106400
+# include <boost/serialization/array_wrapper.hpp>
+#else
+# include <boost/serialization/array.hpp>
+#endif
#include <boost/serialization/split_member.hpp>
#include <vector>
#include <iostream>
+#include <algorithm>
DEAL_II_NAMESPACE_OPEN
#include <deal.II/base/subscriptor.h>
#include <deal.II/base/index_set.h>
#include <deal.II/lac/vector_type_traits.h>
-#include <boost/serialization/array.hpp>
+
+// boost::serialization::make_array used to be in array.hpp, but was
+// moved to a different file in BOOST 1.64
+#include <boost/version.hpp>
+#if BOOST_VERSION >= 106400
+# include <boost/serialization/array_wrapper.hpp>
+#else
+# include <boost/serialization/array.hpp>
+#endif
#include <boost/serialization/split_member.hpp>
#include <cstdio>