From bb2d200dbcd67d75780c594d15e00946c026b46b Mon Sep 17 00:00:00 2001
From: Uwe Schulzweida <uwe.schulzweida@mpimet.mpg.de>
Date: Wed, 23 Oct 2024 10:58:11 +0200
Subject: [PATCH] Added read_ncdims()

---
 src/stream_cdf_i.c | 28 +++++++++++++++-------------
 1 file changed, 15 insertions(+), 13 deletions(-)

diff --git a/src/stream_cdf_i.c b/src/stream_cdf_i.c
index 946477e2c..94bb5237c 100644
--- a/src/stream_cdf_i.c
+++ b/src/stream_cdf_i.c
@@ -568,9 +568,9 @@ cdf_time_dimid(int fileID, int ndims, ncdim_t *ncdims, int nvars, ncvar_t *ncvar
 static void
 init_ncdims(int ndims, ncdim_t *ncdims)
 {
-  for (int ncdimid = 0; ncdimid < ndims; ncdimid++)
+  for (int dimid = 0; dimid < ndims; dimid++)
     {
-      ncdim_t *ncdim = &ncdims[ncdimid];
+      ncdim_t *ncdim = &ncdims[dimid];
       ncdim->dimid = CDI_UNDEFID;
       ncdim->ncvarid = CDI_UNDEFID;
       ncdim->dimtype = CDI_UNDEFID;
@@ -4467,6 +4467,16 @@ set_ncdim_ids(int fileID, int ndims, ncdim_t *ncdims)
     }
 }
 
+static void
+read_ncdims(int fileID, int ndims, ncdim_t *ncdims)
+{
+  for (int dimid = 0; dimid < ndims; dimid++)
+    {
+      cdf_inq_dimlen(fileID, ncdims[dimid].dimid, &ncdims[dimid].len);
+      cdf_inq_dimname(fileID, ncdims[dimid].dimid, ncdims[dimid].name);
+    }
+}
+
 static void
 check_ncgroups(int fileID)
 {
@@ -4542,11 +4552,6 @@ cdfInqContents(stream_t *streamptr)
 
   if (CDI_Debug) Message("streamID = %d, fileID = %d", streamptr->self, fileID);
 
-  int format = 0;
-#ifdef HAVE_NETCDF4
-  nc_inq_format(fileID, &format);
-#endif
-
   int ndims = 0, nvars = 0, ngatts = 0, unlimdimid = 0;
   cdf_inq(fileID, &ndims, &nvars, &ngatts, &unlimdimid);
 
@@ -4562,14 +4567,11 @@ cdfInqContents(stream_t *streamptr)
   ncdim_t *ncdims = ndims ? (ncdim_t *) Malloc((size_t) ndims * sizeof(ncdim_t)) : NULL;
   init_ncdims(ndims, ncdims);
   set_ncdim_ids(fileID, ndims, ncdims);
-  // read ncdims
-  for (int dimid = 0; dimid < ndims; dimid++)
-    {
-      cdf_inq_dimlen(fileID, ncdims[dimid].dimid, &ncdims[dimid].len);
-      cdf_inq_dimname(fileID, ncdims[dimid].dimid, ncdims[dimid].name);
-    }
+  read_ncdims(fileID, ndims, ncdims);
 
+  int format = 0;
 #ifdef HAVE_NETCDF4
+  nc_inq_format(fileID, &format);
   if (format == NC_FORMAT_NETCDF4) check_ncgroups(fileID);
 #endif
 
-- 
GitLab