diff --git a/scripts/cmake/Find.cmake b/scripts/cmake/Find.cmake
index af7836aa528a1e99ef57ac16d94127cf311642a6..7bd6def3dba1d2639582dbd0ba22dc45699ae2ef 100644
--- a/scripts/cmake/Find.cmake
+++ b/scripts/cmake/Find.cmake
@@ -146,3 +146,6 @@ if(Shapelib_FOUND)
 elseif(OGS_BUILD_GUI)
 	message(FATAL_ERROR "Shapelib not found but it is required for OGS_BUILD_GUI!")
 endif()
+
+## Sundials cvode ode-solver library
+find_package(CVODE)
diff --git a/scripts/cmake/cmake/FindCVODE.cmake b/scripts/cmake/cmake/FindCVODE.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..2d6f3ea01af990d69f51abf88d195442af6cc32d
--- /dev/null
+++ b/scripts/cmake/cmake/FindCVODE.cmake
@@ -0,0 +1,34 @@
+# Tries to find Sundials CVODE.
+#
+# This module will define the following variables:
+#  CVODE_INCLUDE_DIRS - Location of the CVODE includes
+#  CVODE_FOUND - true if CVODE was found on the system
+#  CVODE_LIBRARIES - Required libraries for all requested components
+#
+# This module accepts the following environment or CMake vars
+#  CVODE_ROOT - Install location to search for
+
+include(FindPackageHandleStandardArgs)
+
+if(NOT "$ENV{CVODE_ROOT}" STREQUAL "" OR NOT "${CVODE_ROOT}" STREQUAL "")
+	list(APPEND CMAKE_INCLUDE_PATH "$ENV{CVODE_ROOT}" "${CVODE_ROOT}")
+	list(APPEND CMAKE_LIBRARY_PATH "$ENV{CVODE_ROOT}" "${CVODE_ROOT}")
+endif()
+
+find_path(CVODE_INCLUDE_DIRS sundials_types.h
+	ENV CVODE_ROOT
+	PATH_SUFFIXES include include/sundials
+)
+
+find_library(CVODE_LIBRARIES
+	NAMES sundials_cvode
+	ENV CVODE_ROOT
+	PATH_SUFFIXES lib Lib
+)
+
+find_package_handle_standard_args(CVODE DEFAULT_MSG
+	CVODE_LIBRARIES
+	CVODE_INCLUDE_DIRS
+)
+
+mark_as_advanced(CVODE_INCLUDE_DIRS CVODE_LIBRARIES)