From 0b70ee4ac67de0fdc3a11d43559616a882b152d1 Mon Sep 17 00:00:00 2001
From: rinkk <karsten.rink@ufz.de>
Date: Fri, 27 Sep 2019 11:53:37 +0200
Subject: [PATCH] adjusted check for correct number of dimension params

---
 .../Utils/FileConverter/NetCdfConverter.cpp   | 23 +++++++++++--------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/Applications/Utils/FileConverter/NetCdfConverter.cpp b/Applications/Utils/FileConverter/NetCdfConverter.cpp
index c9dcbd8662b..5dbe4c66fd3 100644
--- a/Applications/Utils/FileConverter/NetCdfConverter.cpp
+++ b/Applications/Utils/FileConverter/NetCdfConverter.cpp
@@ -426,18 +426,23 @@ static bool assignDimParams(NcVar const& var,
                      TCLAP::ValueArg<std::size_t>& arg_dim2,
                      TCLAP::ValueArg<std::size_t>& arg_dim3)
 {
-    if (arg_dim3.isSet() && !arg_dim2.isSet())
-    {
-        ERR("Parameter for dim2 is not set. Ignoring dimension parameters.");
-        return false;
-    }
-    if (!arg_dim1.isSet() || !arg_dim2.isSet())
+    std::size_t dim_param_count = 0;
+    if (arg_dim_time.isSet())
+        dim_param_count++;
+    if (arg_dim1.isSet())
+        dim_param_count++;
+    if (arg_dim2.isSet())
+        dim_param_count++;
+    if (arg_dim3.isSet())
+        dim_param_count++;
+
+    std::size_t const n_dims = var.getDimCount();
+    if (dim_param_count != n_dims)
     {
-        ERR("dim1 and dim2 need to be set for extracting mesh.");
+        ERR("Number of parameters set does not fit number of parameters for specified variable.");
         return false;
     }
 
-    std::size_t const n_dims = var.getDimCount();
     if (arg_dim_time.getValue() >= n_dims || arg_dim1.getValue() >= n_dims ||
         arg_dim2.getValue() >= n_dims || arg_dim3.getValue() >= n_dims)
     {
@@ -695,7 +700,7 @@ int main(int argc, char* argv[])
                 : timestepSelectionLoop(var, dim_idx_map[0]);
 
     bool use_single_file(true);
-    if (arg_time_start.isSet())
+    if (arg_time_start.isSet() && time_bounds.first != time_bounds.second)
     {
         use_single_file = arg_single_file.isSet();
     }
-- 
GitLab