diff --git a/CMakeLists.txt b/CMakeLists.txt
index 49dae7804baaa3f77b87126424fd6c2abbb725f5..a00365bb62ae5a85ee1fb21bf19adc6191ebde6c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,5 +1,6 @@
 cmake_minimum_required(VERSION 3.18)
 project(Detection_eddies LANGUAGES Fortran)
+set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS Debug Release Profile)
 list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
 find_package(NR_util REQUIRED CONFIG)
 find_package(Jumble REQUIRED CONFIG)
diff --git a/cmake/ConfigureCompilerFlags.cmake b/cmake/ConfigureCompilerFlags.cmake
index 5a3bc2cca62d9e34d98b1cc3d38ca12f172eea34..31a9a16b896f86ba366e4f85212ee7fcbbf82681 100644
--- a/cmake/ConfigureCompilerFlags.cmake
+++ b/cmake/ConfigureCompilerFlags.cmake
@@ -75,3 +75,6 @@ elseif(CMAKE_Fortran_COMPILER_ID MATCHES NAG)
   #  without that option, and is not compatible with calling C code
   #  via a BIND(C) interface.
 endif()
+
+set(CMAKE_Fortran_FLAGS_PROFILE "-p -g -O2")
+set(CMAKE_EXE_LINKER_FLAGS_PROFILE "-p -g -O2")