diff --git a/FindNetCDF_Fortran.cmake b/FindNetCDF_Fortran.cmake
index b13c608869c59def407737a79955386f23ab8ec0..10ee8c8169a8eaddd160d432bbcce9b0b9c7e2ec 100644
--- a/FindNetCDF_Fortran.cmake
+++ b/FindNetCDF_Fortran.cmake
@@ -5,22 +5,25 @@ if(TARGET NetCDF_Fortran::netcdff)
 else()
   # Find NetCDF dependency:
 
-  option(use_find_netcdf_module "Use the find module for NetCDF")
-
-  unset(extraArgs)
+  option(FIND_PACKAGE_PREFER_MODULE_netCDF
+    "Use directly the find module for NetCDF")
 
   if(${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY)
-    list(APPEND extraArgs QUIET)
+    set(maybe_quiet QUIET)
   endif()
   
   if(${CMAKE_FIND_PACKAGE_NAME}_FIND_REQUIRED)
-    list(APPEND extraArgs REQUIRED)
+    set(maybe_required REQUIRED)
   endif()
   
-  if(use_find_netcdf_module)
-    find_package(netCDF ${extraArgs})
+  if(FIND_PACKAGE_PREFER_MODULE_netCDF)
+    find_package(netCDF ${maybe_quiet} ${maybe_required})
   else()
-    find_package(netCDF CONFIG ${extraArgs})
+    find_package(netCDF CONFIG ${maybe_quiet})
+
+    if(NOT netCDF_FOUND)
+      find_package(netCDF ${maybe_quiet} ${maybe_required})
+    endif()
   endif()
 
   #-