diff --git a/CMakeLists.txt b/CMakeLists.txt
index a48d27e4be6f83462c153dcfd9b0e8d7d00b5662..0ee1e578c7a963ec1f5f40c907fce8aa647b1b6b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1027,19 +1027,22 @@ endif()
 option ( WALBERLA_THREAD_SAFE_LOGGING "Enables/Disables thread-safe logging" ON )
 
 if ( WALBERLA_BUILD_WITH_OPENMP )
-    if ( WALBERLA_CXX_COMPILER_IS_NEC )
-      add_flag ( CMAKE_C_FLAGS   "-Popenmp" )
-      add_flag ( CMAKE_CXX_FLAGS "-Popenmp" )
+    if ( WALBERLA_CXX_COMPILER_IS_INTEL AND "${CMAKE_CXX_COMPILER_VERSION}" VERSION_LESS "16.0.3" )
+       add_flag ( CMAKE_C_FLAGS   "-openmp" )
+       add_flag ( CMAKE_CXX_FLAGS "-openmp" )
+    elseif ( WALBERLA_CXX_COMPILER_IS_NEC )
+       add_flag ( CMAKE_C_FLAGS   "-Popenmp" )
+       add_flag ( CMAKE_CXX_FLAGS "-Popenmp" )
     else()
-      find_package( OpenMP )
-      add_flag ( CMAKE_C_FLAGS   "${OpenMP_C_FLAGS}" )
-      add_flag ( CMAKE_CXX_FLAGS "${OpenMP_CXX_FLAGS}" )
-      list ( APPEND SERVICE_LIBS ${OpenMP_CXX_LIBRARIES} )
+       find_package( OpenMP )
+       add_flag ( CMAKE_C_FLAGS   "${OpenMP_C_FLAGS}" )
+       add_flag ( CMAKE_CXX_FLAGS "${OpenMP_CXX_FLAGS}" )
+       list ( APPEND SERVICE_LIBS ${OpenMP_CXX_LIBRARIES} )
     endif()
 else()
     if ( WALBERLA_CXX_COMPILER_IS_CRAY )
-      add_flag ( CMAKE_C_FLAGS   "-h noomp" )
-      add_flag ( CMAKE_CXX_FLAGS "-h noomp" )
+       add_flag ( CMAKE_C_FLAGS   "-h noomp" )
+       add_flag ( CMAKE_CXX_FLAGS "-h noomp" )
     endif()
 endif()
 ############################################################################################################################
diff --git a/src/field/interpolators/NearestNeighborFieldInterpolator.h b/src/field/interpolators/NearestNeighborFieldInterpolator.h
index 45e9110de725173af89a4aed20e1d6290b5278a5..975c55edb4c52d0ea197391a88b271588bbf7729 100644
--- a/src/field/interpolators/NearestNeighborFieldInterpolator.h
+++ b/src/field/interpolators/NearestNeighborFieldInterpolator.h
@@ -121,7 +121,7 @@ public:
                            *interpolationResultBegin = baseField_(curCell, f);
                            ++interpolationResultBegin;
                         }
-                        break;
+                        return;
                      }
                   }
                }
diff --git a/tests/fft/FftTest.cpp b/tests/fft/FftTest.cpp
index 58d80c486de68e7c33d9e2a14263fd08cdd0eeb7..99e934dbfca25d21ad8fb7883634ac6d591c6bd4 100644
--- a/tests/fft/FftTest.cpp
+++ b/tests/fft/FftTest.cpp
@@ -41,7 +41,7 @@ int main (int argc, char** argv)
    {
       Field_T *data_in = block->getData< Field_T >( originalFieldId );
       Field_T *data_out = block->getData< Field_T >( fftFieldId );
-      WALBERLA_FOR_ALL_CELLS_XYZ(data_in, {
+      WALBERLA_FOR_ALL_CELLS_XYZ_OMP(data_in, omp critical, {
          Vector3<real_t> point( real_c(x), real_c(y), real_c(z) );
          blocks->transformBlockLocalToGlobal(point, *block);
          data_in->get(x,y,z) = real_c(std::ranlux48_base(uint_c(point[0])+(uint_c(point[1])*L+uint_c(point[2]))*L)())*real_c(std::pow(2,-48));