diff --git a/examples/cdi_append.c b/examples/cdi_append.c
index 31719366f4e9767b8554083e290534d135116f5b..b583f99929afa24969c82007e82f44db3e27e7af 100644
--- a/examples/cdi_append.c
+++ b/examples/cdi_append.c
@@ -11,7 +11,7 @@ main(void)
     nlev = 5,   // Number of levels
     nts = 3,    // Number of time steps
   };
-  SizeType nmiss = 0;
+  SizeType numMissVals = 0;
   double var1[nlon * nlat];
   double var2[nlon * nlat * nlev];
 
@@ -70,8 +70,8 @@ main(void)
       for (size_t i = 0; i < nlon * nlat * nlev; i++) var2[i] = 2.2;
 
       // Write var1 and var2
-      streamWriteVar(streamID, varID1, var1, nmiss);
-      streamWriteVar(streamID, varID2, var2, nmiss);
+      streamWriteVar(streamID, varID1, var1, numMissVals);
+      streamWriteVar(streamID, varID2, var2, numMissVals);
     }
 
   // Close the output stream
diff --git a/examples/cdi_copy.c b/examples/cdi_copy.c
index 33c3dee245799cea0800f22964a2afa2e9963bc2..14ae4a55a540d9ada59496c459dbc377cad854ca 100644
--- a/examples/cdi_copy.c
+++ b/examples/cdi_copy.c
@@ -5,7 +5,6 @@
 int
 main(void)
 {
-
   // Open the input dataset
   int streamID1 = streamOpenRead("example.nc");
   if (streamID1 < 0)
@@ -17,11 +16,11 @@ main(void)
   // Get the variable list of the dataset
   int vlistID1 = streamInqVlist(streamID1);
 
-  int nvars = vlistNvars(vlistID1);
+  int numVars = vlistNvars(vlistID1);
 
   int varDataSize = 0;
   double *varData = NULL;
-  for (int varID = 0; varID < nvars; ++varID)
+  for (int varID = 0; varID < numVars; ++varID)
     {
       int varSize = vlistInqVarSize(vlistID1, varID);
       varDataSize = varSize > varDataSize ? varSize : varDataSize;
@@ -52,13 +51,13 @@ main(void)
       // Define the output time step
       streamDefTimestep(streamID2, tsID);
 
-      for (int varID = 0; varID < nvars; ++varID)
+      for (int varID = 0; varID < numVars; ++varID)
         {
-          SizeType nmiss;
+          SizeType numMissVals;
           // Read var
-          streamReadVar(streamID1, varID, varData, &nmiss);
+          streamReadVar(streamID1, varID, varData, &numMissVals);
           // Write var
-          streamWriteVar(streamID2, varID, varData, nmiss);
+          streamWriteVar(streamID2, varID, varData, numMissVals);
         }
       ++tsID;
     }
diff --git a/examples/cdi_copy_file.c b/examples/cdi_copy_file.c
index 7cd915ee2287becb4cbdc64804c476d68b21619a..4f26a2868e95380b8b215e3487ae76c7908d30b7 100644
--- a/examples/cdi_copy_file.c
+++ b/examples/cdi_copy_file.c
@@ -12,7 +12,7 @@ main(int argc, char *argv[])
 {
   int linfo = 0;
   int vlistID1, vlistID2, varID, streamID1, streamID2;
-  size_t nmiss;
+  size_t numMissVals;
   int nvars, status;
   double *vardata = NULL;
   const char *ifile, *ofile;
@@ -63,7 +63,7 @@ main(int argc, char *argv[])
       for (varID = 0; varID < nvars; ++varID)
         {
           /* Read variable  */
-          streamReadVar(streamID1, varID, vardata, &nmiss);
+          streamReadVar(streamID1, varID, vardata, &numMissVals);
 
           if (linfo)
             {
@@ -84,7 +84,7 @@ main(int argc, char *argv[])
             }
 
           /* Write variable */
-          streamWriteVar(streamID2, varID, vardata, nmiss);
+          streamWriteVar(streamID2, varID, vardata, numMissVals);
         }
 
       tsID++;
diff --git a/examples/cdi_read.c b/examples/cdi_read.c
index f957f23476a27d155b51667e49db2a79355eae5f..13fc6e9273c1dc160263f2227a3f38a7c6b0ca38 100644
--- a/examples/cdi_read.c
+++ b/examples/cdi_read.c
@@ -11,7 +11,7 @@ main(void)
     nlev = 5,   // Number of levels
     nts = 3,    // Number of time steps
   };
-  SizeType nmiss;
+  SizeType numMissVals;
   double var1[nlon * nlat];
   double var2[nlon * nlat * nlev];
 
@@ -45,8 +45,8 @@ main(void)
       printf("read timestep %d:  date=%d  time=%d\n", tsID + 1, vdate, vtime);
 
       // Read var1 and var2
-      streamReadVar(streamID, varID1, var1, &nmiss);
-      streamReadVar(streamID, varID2, var2, &nmiss);
+      streamReadVar(streamID, varID1, var1, &numMissVals);
+      streamReadVar(streamID, varID2, var2, &numMissVals);
     }
 
   // Close the input stream
diff --git a/examples/cdi_read_atts.c b/examples/cdi_read_atts.c
index f37f6c9e8c5e4550402acc5dac219d678f856db0..89cb1717dbd7700e5c71de79f7716dd1966aa4b3 100644
--- a/examples/cdi_read_atts.c
+++ b/examples/cdi_read_atts.c
@@ -10,7 +10,7 @@ int
 main(void)
 {
   int taxisID, vlistID, varID1, varID2, streamID;
-  size_t nmiss;
+  size_t numMissVals;
   double var1[nlon * nlat];
   double var2[nlon * nlat * nlev];
 
@@ -63,8 +63,8 @@ main(void)
       int vtime = taxisInqVtime(taxisID);
 
       // Read var1 and var2
-      streamReadVar(streamID, varID1, var1, &nmiss);
-      streamReadVar(streamID, varID2, var2, &nmiss);
+      streamReadVar(streamID, varID1, var1, &numMissVals);
+      streamReadVar(streamID, varID2, var2, &numMissVals);
     }
 
   // Close the input stream
diff --git a/examples/cdi_read_float.c b/examples/cdi_read_float.c
index 41267501d2244786bad447fe3ebac1c552fdd184..26914a7e39f6aef284f3668b567628c9e11c6916 100644
--- a/examples/cdi_read_float.c
+++ b/examples/cdi_read_float.c
@@ -10,7 +10,7 @@ int
 main(void)
 {
   int taxisID, vlistID, varID1, varID2, streamID;
-  size_t nmiss;
+  size_t numMissVals;
   float var1[nlon * nlat];
   float var2[nlon * nlat * nlev];
 
@@ -43,8 +43,8 @@ main(void)
       int vtime = taxisInqVtime(taxisID);
 
       // Read var1 and var2
-      streamReadVarF(streamID, varID1, var1, &nmiss);
-      streamReadVarF(streamID, varID2, var2, &nmiss);
+      streamReadVarF(streamID, varID1, var1, &numMissVals);
+      streamReadVarF(streamID, varID2, var2, &numMissVals);
       printf("tsID %d %d %d %g %g\n", tsID, vdate, vtime, var1[0], var2[0]);
     }
 
diff --git a/examples/cdi_read_records.c b/examples/cdi_read_records.c
index af891d07113e0259f601519d56f70eacba8f2eb7..74944638c280fb5c78b633959b36efa83cbf63ff 100644
--- a/examples/cdi_read_records.c
+++ b/examples/cdi_read_records.c
@@ -17,14 +17,14 @@ typedef struct
 {
   int streamID;
   int *varID, *levelID;
-  size_t *nmiss;
+  size_t *numMissVals;
   double *array;
 } read_arg_t;
 
 typedef struct
 {
   int varID, levelID;
-  size_t nmiss;
+  size_t numMissVals;
   double *array;
   int array_size;
   int recID, nrecs;
@@ -41,7 +41,7 @@ typedef struct work_st
 typedef struct
 {
   int varID, levelID;
-  size_t nmiss;
+  size_t numMissVals;
   double *array;
   int array_size;
   int recID, nrecs;
@@ -63,17 +63,17 @@ readRecord(void *arg)
   read_arg_t *read_arg = (read_arg_t *) arg;
   int streamID;
   int *varID, *levelID;
-  size_t *nmiss;
+  size_t *numMissVals;
   double *array;
 
   streamID = read_arg->streamID;
   varID = read_arg->varID;
   levelID = read_arg->levelID;
-  nmiss = read_arg->nmiss;
+  numMissVals = read_arg->numMissVals;
   array = read_arg->array;
 
   streamInqRecord(streamID, varID, levelID);
-  streamReadRecord(streamID, array, nmiss);
+  streamReadRecord(streamID, array, numMissVals);
 }
 
 #if defined(HAVE_LIBPTHREAD)
@@ -253,7 +253,7 @@ destroy_iothread(void *p)
 #endif
 
 void
-stream_read_record_par(int streamID, int *varID, int *levelID, double *array, size_t *nmiss, par_io_t *parIO)
+stream_read_record_par(int streamID, int *varID, int *levelID, double *array, size_t *numMissVals, par_io_t *parIO)
 {
   int lpario = 0;
   int recID = 0, nrecs = 0;
@@ -273,7 +273,7 @@ stream_read_record_par(int streamID, int *varID, int *levelID, double *array, si
       read_arg.streamID = streamID;
       read_arg.varID = varID;
       read_arg.levelID = levelID;
-      read_arg.nmiss = nmiss;
+      read_arg.numMissVals = numMissVals;
       read_arg.array = array;
 
       readRecord(&read_arg);
@@ -285,7 +285,7 @@ stream_read_record_par(int streamID, int *varID, int *levelID, double *array, si
 
       *varID = parIO->varID;
       *levelID = parIO->levelID;
-      *nmiss = parIO->nmiss;
+      *numMissVals = parIO->numMissVals;
 
       memcpy(array, parIO->array, parIO->array_size * sizeof(double));
     }
@@ -301,7 +301,7 @@ stream_read_record_par(int streamID, int *varID, int *levelID, double *array, si
           read_arg->streamID = streamID;
           read_arg->varID = &parIO->varID;
           read_arg->levelID = &parIO->levelID;
-          read_arg->nmiss = &parIO->nmiss;
+          read_arg->numMissVals = &parIO->numMissVals;
           read_arg->array = parIO->array;
 
           dispatch(parIO->iothread, readRecord, read_arg);
@@ -315,17 +315,17 @@ stream_read_record_par(int streamID, int *varID, int *levelID, double *array, si
 }
 
 void
-stream_read_record(int streamID, int *varID, int *levelID, double *data, size_t *nmiss)
+stream_read_record(int streamID, int *varID, int *levelID, double *data, size_t *numMissVals)
 {
   streamInqRecord(streamID, varID, levelID);
-  streamReadRecord(streamID, data, nmiss);
+  streamReadRecord(streamID, data, numMissVals);
 }
 
 int
 main(int argc, char *argv[])
 {
   int taxisID, vlistID, varID, levelID, streamID, tsID;
-  size_t nmiss;
+  size_t numMissVals;
   int vdate, vtime;
   int nrecs, recID, code;
   int gridsize, i;
@@ -377,9 +377,9 @@ main(int argc, char *argv[])
           parIO.recID = recID;
           parIO.nrecs = nrecs;
 #ifdef PARIO
-          stream_read_record_par(streamID, &varID, &levelID, data, &nmiss, &parIO);
+          stream_read_record_par(streamID, &varID, &levelID, data, &numMissVals, &parIO);
 #else
-          stream_read_record(streamID, &varID, &levelID, data, &nmiss);
+          stream_read_record(streamID, &varID, &levelID, data, &numMissVals);
 #endif
           code = vlistInqVarCode(vlistID, varID);
           gridsize = gridInqSize(vlistInqVarGrid(vlistID, varID));
diff --git a/examples/cdi_read_time.c b/examples/cdi_read_time.c
index d88c8bd88fced1e9662ee001cbedca424ec41d33..1058cee59ca5b58dc23be9c10d22c6200aad1845 100644
--- a/examples/cdi_read_time.c
+++ b/examples/cdi_read_time.c
@@ -8,7 +8,7 @@ main(void)
   const int nlat = 6;   // Number of latitudes
   const int nlev = 5;   // Number of levels
   const int nts = 20;   // Number of time steps
-  size_t nmiss;
+  size_t numMissVals;
   double var1[nlon * nlat];
   double var2[nlon * nlat * nlev];
 
@@ -42,8 +42,8 @@ main(void)
       printf("read timestep %d:  date=%d  time=%d\n", tsID + 1, vdate, vtime);
 
       // Read var1 and var2
-      // streamReadVar(streamID, varID1, var1, &nmiss);
-      // streamReadVar(streamID, varID2, var2, &nmiss);
+      // streamReadVar(streamID, varID1, var1, &numMissVals);
+      // streamReadVar(streamID, varID2, var2, &numMissVals);
     }
 
   // Close the input stream
diff --git a/examples/cdi_write.c b/examples/cdi_write.c
index deceff1e94f790a0e74f0dfd69f3dbeba4e3797a..3426e112dc8877ee6d65e22c85e4b2e9972a14cd 100644
--- a/examples/cdi_write.c
+++ b/examples/cdi_write.c
@@ -11,10 +11,10 @@ main(void)
     nlev = 5,   // Number of levels
     nts = 3,    // Number of time steps
   };
-  SizeType nmiss = 0;
+  SizeType numMissVals = 0;
   double lons[] = { 0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330 };
   double lats[] = { -75, -45, -15, 15, 45, 75 };
-  double levs[] = { 101300, 92500, 85000, 50000, 20000 };
+  double levels[] = { 101300, 92500, 85000, 50000, 20000 };
   double var1[nlon * nlat];
   double var2[nlon * nlat * nlev];
 
@@ -30,7 +30,7 @@ main(void)
 
   // Create a pressure level Z-axis
   int zaxisID2 = zaxisCreate(ZAXIS_PRESSURE, nlev);
-  zaxisDefLevels(zaxisID2, levs);
+  zaxisDefLevels(zaxisID2, levels);
 
   // Create a variable list
   int vlistID = vlistCreate();
@@ -75,8 +75,8 @@ main(void)
       for (size_t i = 0; i < nlon * nlat * nlev; i++) var2[i] = 2.2;
 
       // Write var1 and var2
-      streamWriteVar(streamID, varID1, var1, nmiss);
-      streamWriteVar(streamID, varID2, var2, nmiss);
+      streamWriteVar(streamID, varID1, var1, numMissVals);
+      streamWriteVar(streamID, varID2, var2, numMissVals);
     }
 
   // Close the output stream
diff --git a/examples/cdi_write_const.c b/examples/cdi_write_const.c
index 920dac182434471342a16c14355ce3530bbcb929..d5d42156faac22c2d4ec165049c2d794042b1092 100644
--- a/examples/cdi_write_const.c
+++ b/examples/cdi_write_const.c
@@ -10,7 +10,7 @@ main(void)
 {
   int gridID, zaxisID1, zaxisID2;
   int vlistID, varID1, varID2, streamID;
-  size_t i, nmiss = 0;
+  size_t i, numMissVals = 0;
   double lons[nlon] = { 0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330 };
   double lats[nlat] = { -75, -45, -15, 15, 45, 75 };
   double levs[nlev] = { 101300, 92500, 85000, 50000, 20000 };
@@ -71,8 +71,8 @@ main(void)
   for (i = 0; i < nlon * nlat * nlev; i++) var2[i] = 2.2;
 
   // Write var1 and var2
-  streamWriteVar(streamID, varID1, var1, nmiss);
-  streamWriteVar(streamID, varID2, var2, nmiss);
+  streamWriteVar(streamID, varID1, var1, numMissVals);
+  streamWriteVar(streamID, varID2, var2, numMissVals);
 
   // Close the output stream
   streamClose(streamID);
diff --git a/examples/cdi_write_curv_rll.c b/examples/cdi_write_curv_rll.c
index b4d5984aa1e8ade1a2f1cf368983764ac1f48522..1699020bbe7f7ce80550757597d8789a3c208551 100644
--- a/examples/cdi_write_curv_rll.c
+++ b/examples/cdi_write_curv_rll.c
@@ -8,7 +8,7 @@ main(void)
   const int nlat = 6;   // Number of latitudes
   const int nlev = 5;   // Number of levels
   const int nts = 3;    // Number of time steps
-  size_t nmiss = 0;
+  size_t numMissVals = 0;
   double levs[] = { 101300, 92500, 85000, 50000, 20000 };
   double var1[nlon * nlat];
   double var2[nlon * nlat * nlev];
@@ -105,8 +105,8 @@ main(void)
       for (size_t i = 0; i < nlon * nlat * nlev; i++) var2[i] = 2.2;
 
       // Write var1 and var2
-      streamWriteVar(streamID, varID1, var1, nmiss);
-      streamWriteVar(streamID, varID2, var2, nmiss);
+      streamWriteVar(streamID, varID1, var1, numMissVals);
+      streamWriteVar(streamID, varID2, var2, numMissVals);
     }
 
   // Close the output stream
diff --git a/examples/cdi_write_dbl.c b/examples/cdi_write_dbl.c
index 9a48e7bd2cf775ed9f15802877a36a6de4d29e90..6eb4a4e2107e64d0f34530980e384c6a3f5f46c1 100644
--- a/examples/cdi_write_dbl.c
+++ b/examples/cdi_write_dbl.c
@@ -11,7 +11,7 @@ main(void)
 {
   int gridID, zaxisID1, zaxisID2, taxisID;
   int vlistID, varID1, varID2, streamID, tsID;
-  size_t i, nmiss = 0;
+  size_t i, numMissVals = 0;
   double lons[nlon] = { 0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330 };
   double lats[nlat] = { -75, -45, -15, 15, 45, 75 };
   double levs[nlev] = { 5, 10, 50, 100, 500 };
@@ -76,8 +76,8 @@ main(void)
       for (i = 0; i < nlon * nlat * nlev; i++) var2[i] = 2.2;
 
       // Write var1 and var2
-      streamWriteVar(streamID, varID1, var1, nmiss);
-      streamWriteVar(streamID, varID2, var2, nmiss);
+      streamWriteVar(streamID, varID1, var1, numMissVals);
+      streamWriteVar(streamID, varID2, var2, numMissVals);
     }
 
   // Close the output stream
diff --git a/examples/cdi_write_ens.c b/examples/cdi_write_ens.c
index 1db9d139386e3a12f5fd83308f1ef3e4bd496aa2..cabeeda8b47cf90c9e4ebd644435c023e3ce7447 100644
--- a/examples/cdi_write_ens.c
+++ b/examples/cdi_write_ens.c
@@ -19,7 +19,7 @@ main(void)
   int tsID;
   int levelID;
   int vlistID, taxisID;
-  SizeType nmiss;
+  SizeType numMissVals;
 
   int instID;
 
@@ -111,7 +111,7 @@ main(void)
 
       for (varID = 0; varID < nvars; varID++)
         {
-          streamReadVar(streamID1, varID, data, &nmiss);
+          streamReadVar(streamID1, varID, data, &numMissVals);
 
           /* int code     =  */ vlistInqVarCode(vlistID, varID);
           gridID = vlistInqVarGrid(vlistID, varID);
@@ -127,7 +127,7 @@ main(void)
               /* int offset = gridsize*levelID; */
             }
 
-          streamWriteVar(streamID2, varID, data, nmiss);
+          streamWriteVar(streamID2, varID, data, numMissVals);
         }
       tsID++;
     }
diff --git a/examples/cdi_write_float.c b/examples/cdi_write_float.c
index 6ffbd1b4a5ee6910de4201e7eb6d62d45dfff38d..75d9e904b0152511b9f96641b4132f6fb6f500dc 100644
--- a/examples/cdi_write_float.c
+++ b/examples/cdi_write_float.c
@@ -11,7 +11,7 @@ main(void)
 {
   int gridID, zaxisID1, zaxisID2, taxisID;
   int vlistID, varID1, varID2, streamID, tsID;
-  size_t i, nmiss = 0;
+  size_t i, numMissVals = 0;
   double lons[nlon] = { 0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330 };
   double lats[nlat] = { -75, -45, -15, 15, 45, 75 };
   double levs[nlev] = { 101300, 92500, 85000, 50000, 20000 };
@@ -75,8 +75,8 @@ main(void)
       for (i = 0; i < nlon * nlat * nlev; i++) var2[i] = 2.2;
 
       // Write var1 and var2
-      streamWriteVarF(streamID, varID1, var1, nmiss);
-      streamWriteVarF(streamID, varID2, var2, nmiss);
+      streamWriteVarF(streamID, varID1, var1, numMissVals);
+      streamWriteVarF(streamID, varID2, var2, numMissVals);
     }
 
   // Close the output stream
diff --git a/examples/cdi_write_forecast.c b/examples/cdi_write_forecast.c
index 658d8b5ce44f63d02be7750312ae78db586b5aa9..19acbfbfd81728073ee3e987928c0af83a624f6d 100644
--- a/examples/cdi_write_forecast.c
+++ b/examples/cdi_write_forecast.c
@@ -11,7 +11,7 @@ main(void)
 {
   int gridID, zaxisID1, zaxisID2, taxisID;
   int vlistID, varID1, varID2, streamID, tsID;
-  size_t i, nmiss = 0;
+  size_t i, numMissVals = 0;
   double lons[nlon] = { 0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330 };
   double lats[nlat] = { -75, -45, -15, 15, 45, 75 };
   double levs[nlev] = { 101300 };
@@ -81,8 +81,8 @@ main(void)
       for (i = 0; i < nlon * nlat * nlev; i++) var2[i] = 2.2;
 
       // Write var1 and var2
-      streamWriteVar(streamID, varID1, var1, nmiss);
-      streamWriteVar(streamID, varID2, var2, nmiss);
+      streamWriteVar(streamID, varID1, var1, numMissVals);
+      streamWriteVar(streamID, varID2, var2, numMissVals);
     }
 
   // Close the output stream
diff --git a/examples/cdi_write_gribkey.c b/examples/cdi_write_gribkey.c
index be992754d8c07e2be23bec22d7543aa1fa3b46a0..32ec6daaa83ba21ed5c819e4f8d809b8855bdd73 100644
--- a/examples/cdi_write_gribkey.c
+++ b/examples/cdi_write_gribkey.c
@@ -11,7 +11,7 @@ main(void)
 {
   int gridID, zaxisID1, zaxisID2, taxisID;
   int vlistID, varID1, varID2, streamID;
-  size_t nmiss = 0;
+  size_t numMissVals = 0;
   double lons[nlon] = { 0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330 };
   double lats[nlat] = { -75, -45, -15, 15, 45, 75 };
   double levs[nlev] = { 101300, 92500, 85000, 50000, 20000 };
@@ -83,8 +83,8 @@ main(void)
       for (size_t i = 0; i < nlon * nlat * nlev; i++) var2[i] = 2.2;
 
       // Write var1 and var2
-      streamWriteVar(streamID, varID1, var1, nmiss);
-      streamWriteVar(streamID, varID2, var2, nmiss);
+      streamWriteVar(streamID, varID1, var1, numMissVals);
+      streamWriteVar(streamID, varID2, var2, numMissVals);
     }
 
   // Close the output stream
diff --git a/examples/cdi_write_hybrid.c b/examples/cdi_write_hybrid.c
index 5437f12e5fec9786ee4ab81d4c07889ac3aa6894..4488f059543eab16d978acdd15d5bed5e3cc1dc8 100644
--- a/examples/cdi_write_hybrid.c
+++ b/examples/cdi_write_hybrid.c
@@ -12,7 +12,7 @@ main(void)
 {
   int gridID, zaxisID1, zaxisID2, zaxisID3, zaxisID4, taxisID;
   int vlistID, varID1, varID2, varID3, varID4, streamID;
-  size_t nmiss = 0;
+  size_t numMissVals = 0;
   double lons[nlon] = { 0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330 };
   double lats[nlat] = { -75, -45, -15, 15, 45, 75 };
   double levs[nhlev] = { 1, 2, 3, 4, 5, 6 };
@@ -102,10 +102,10 @@ main(void)
         for (size_t i = 0; i < nlon * nlat; ++i) var4[i + k * nlon * nlat] = 100 + k;
 
       // Write var1 and var2
-      streamWriteVar(streamID, varID1, var1, nmiss);
-      streamWriteVar(streamID, varID2, var2, nmiss);
-      streamWriteVar(streamID, varID3, var3, nmiss);
-      streamWriteVar(streamID, varID4, var4, nmiss);
+      streamWriteVar(streamID, varID1, var1, numMissVals);
+      streamWriteVar(streamID, varID2, var2, numMissVals);
+      streamWriteVar(streamID, varID3, var3, numMissVals);
+      streamWriteVar(streamID, varID4, var4, numMissVals);
     }
 
   // Close the output stream
diff --git a/examples/cdi_write_local.c b/examples/cdi_write_local.c
index 35d88f92920fa08bb82e878e353b276eeb0a1c27..475ec0294b67e04a8cce1cc2a3386a732ebf20dc 100644
--- a/examples/cdi_write_local.c
+++ b/examples/cdi_write_local.c
@@ -11,7 +11,7 @@ main(void)
 {
   int gridID, zaxisID1, zaxisID2, taxisID;
   int vlistID, varID1, varID2, streamID;
-  size_t nmiss = 0;
+  size_t numMissVals = 0;
   double lons[nlon] = { 0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330 };
   double lats[nlat] = { -75, -45, -15, 15, 45, 75 };
   double levs[nlev] = { 101300, 92500, 85000, 50000, 20000 };
@@ -86,8 +86,8 @@ main(void)
       for (size_t i = 0; i < nlon * nlat * nlev; i++) var2[i] = 2.2;
 
       // Write var1 and var2
-      streamWriteVar(streamID, varID1, var1, nmiss);
-      streamWriteVar(streamID, varID2, var2, nmiss);
+      streamWriteVar(streamID, varID1, var1, numMissVals);
+      streamWriteVar(streamID, varID2, var2, numMissVals);
     }
 
   // Close the output stream
diff --git a/examples/cdi_write_pl.c b/examples/cdi_write_pl.c
index 4a3ff88a9e8fd40caab1595f14987b7bfb47eb24..f05b66ec58a95510492087d2d3ceda6219e6059e 100644
--- a/examples/cdi_write_pl.c
+++ b/examples/cdi_write_pl.c
@@ -11,7 +11,7 @@ main(void)
 {
   int gridID, zaxisID1, zaxisID2, taxisID;
   int vlistID, varID1, varID2, streamID;
-  size_t nmiss = 0;
+  size_t numMissVals = 0;
   double lons[nlon] = { 0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330 };
   double lats[nlat] = { -75, -45, -15, 15, 45, 75 };
   double levs[nlev] = { 100000.1, 10000.2, 1000.38, 100.4, 10.5 };
@@ -79,8 +79,8 @@ main(void)
         for (i = 0; i < nlon * nlat; i++) var2[i + k * nlon * nlat] = 2.2 + k;
 
       // Write var1 and var2
-      streamWriteVar(streamID, varID1, var1, nmiss);
-      streamWriteVar(streamID, varID2, var2, nmiss);
+      streamWriteVar(streamID, varID1, var1, numMissVals);
+      streamWriteVar(streamID, varID2, var2, numMissVals);
     }
 
   // Close the output stream
diff --git a/examples/cdi_write_point.c b/examples/cdi_write_point.c
index 84d9cdc72733d0660d3b1b19e7dd3d2fe272ade3..c4aa3e8576b96db03fc6b4506a5162bf058cc76d 100644
--- a/examples/cdi_write_point.c
+++ b/examples/cdi_write_point.c
@@ -10,7 +10,7 @@ main(void)
 {
   int gridID, zaxisID1, zaxisID2, taxisID;
   int vlistID, varID1, varID2, streamID;
-  size_t nmiss = 0;
+  size_t numMissVals = 0;
   double levs[nlev] = { 101300, 92500, 85000, 50000, 20000 };
   double var1;
   double var2[nlev];
@@ -68,8 +68,8 @@ main(void)
       for (size_t i = 0; i < nlev; i++) var2[i] = 2.2;
 
       // Write var1 and var2
-      streamWriteVar(streamID, varID1, &var1, nmiss);
-      streamWriteVar(streamID, varID2, var2, nmiss);
+      streamWriteVar(streamID, varID1, &var1, numMissVals);
+      streamWriteVar(streamID, varID2, var2, numMissVals);
     }
 
   // Close the output stream
diff --git a/examples/cdi_write_refgrid.c b/examples/cdi_write_refgrid.c
index 9aa390199baf10d75ff76a414e5b175a4d2b63b5..d7a304906cfc45ef3886a5f0481a050bd4e768bc 100644
--- a/examples/cdi_write_refgrid.c
+++ b/examples/cdi_write_refgrid.c
@@ -11,7 +11,7 @@ main(void)
 {
   int gridID, zaxisID1, zaxisID2, taxisID;
   int vlistID, varID1, varID2, streamID;
-  size_t nmiss = 0;
+  size_t numMissVals = 0;
   double levs[nlev] = { 101300, 92500, 85000, 50000, 20000 };
   double var1[nlon * nlat];
   double var2[nlon * nlat * nlev];
@@ -74,8 +74,8 @@ main(void)
       for (size_t i = 0; i < nlon * nlat * nlev; i++) var2[i] = 2.2;
 
       // Write var1 and var2
-      streamWriteVar(streamID, varID1, var1, nmiss);
-      streamWriteVar(streamID, varID2, var2, nmiss);
+      streamWriteVar(streamID, varID1, var1, numMissVals);
+      streamWriteVar(streamID, varID2, var2, numMissVals);
     }
 
   // Close the output stream
diff --git a/examples/cdi_write_refvgrid.c b/examples/cdi_write_refvgrid.c
index f9ee3c4f64379b35a270c620ce550abe490dfc6b..5aaf38aa5dfdbc5f6c454e6c96ae29d3073eff95 100644
--- a/examples/cdi_write_refvgrid.c
+++ b/examples/cdi_write_refvgrid.c
@@ -11,7 +11,7 @@ main(void)
 {
   int gridID, zaxisID1, zaxisID2, taxisID;
   int vlistID, varID1, varID2, streamID, tsID;
-  size_t nmiss = 0;
+  size_t numMissVals = 0;
   double levs[nlev] = { 1, 2, 3, 4, 5 };
   double var1[nlon * nlat];
   double var2[nlon * nlat * nlev];
@@ -80,8 +80,8 @@ main(void)
       for (size_t i = 0; i < nlon * nlat * nlev; i++) var2[i] = 2.2;
 
       // Write var1 and var2
-      streamWriteVar(streamID, varID1, var1, nmiss);
-      streamWriteVar(streamID, varID2, var2, nmiss);
+      streamWriteVar(streamID, varID1, var1, numMissVals);
+      streamWriteVar(streamID, varID2, var2, numMissVals);
     }
 
   // Close the output stream
diff --git a/examples/cdi_write_relativ.c b/examples/cdi_write_relativ.c
index 62c62bb6337613f3758ddf1dfcf575a086537623..a145a1c1216038eff36cb2384c115cc8ad10ad75 100644
--- a/examples/cdi_write_relativ.c
+++ b/examples/cdi_write_relativ.c
@@ -11,7 +11,7 @@ main(void)
     nlev = 5,   // Number of levels
     nts = 3,    // Number of time steps
   };
-  int nmiss = 0;
+  int numMissVals = 0;
   double lons[] = { 0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330 };
   double lats[] = { -75, -45, -15, 15, 45, 75 };
   double levs[] = { 101300, 92500, 85000, 50000, 20000 };
@@ -75,8 +75,8 @@ main(void)
       for (int i = 0; i < nlon * nlat * nlev; i++) var2[i] = 2.2;
 
       // Write var1 and var2
-      streamWriteVar(streamID, varID1, var1, nmiss);
-      streamWriteVar(streamID, varID2, var2, nmiss);
+      streamWriteVar(streamID, varID1, var1, numMissVals);
+      streamWriteVar(streamID, varID2, var2, numMissVals);
     }
 
   // Close the output stream
diff --git a/examples/cdi_write_reset.c b/examples/cdi_write_reset.c
index ce6da51e52399d47afa9a46a5ef3ad0aad29278d..d6080b54796d1f14ffe353189f20c687aa51cb68 100644
--- a/examples/cdi_write_reset.c
+++ b/examples/cdi_write_reset.c
@@ -12,7 +12,7 @@ run(int irun)
 {
   int gridID, zaxisID1, zaxisID2, taxisID;
   int vlistID, varID1, varID2, streamID;
-  size_t nmiss = 0;
+  size_t numMissVals = 0;
   double lons[nlon] = { 0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330 };
   double lats[nlat] = { -75, -45, -15, 15, 45, 75 };
   double levs[nlev] = { 101300, 92500, 85000, 50000, 20000 };
@@ -76,8 +76,8 @@ run(int irun)
       for (size_t i = 0; i < nlon * nlat * nlev; i++) var2[i] = 2.2;
 
       // Write var1 and var2
-      streamWriteVar(streamID, varID1, var1, nmiss);
-      streamWriteVar(streamID, varID2, var2, nmiss);
+      streamWriteVar(streamID, varID1, var1, numMissVals);
+      streamWriteVar(streamID, varID2, var2, numMissVals);
     }
 
   fprintf(stderr, "%d gridID=%d, zaxisID1=%d, vlistID=%d, streamID=%d\n", irun, gridID, zaxisID1, vlistID, streamID);
diff --git a/examples/cdi_write_rll.c b/examples/cdi_write_rll.c
index b936c39103aa288941e0b2d0686dde74f3e488b0..f8af829494599355c83f0cbdfb85b628ee7d5de0 100644
--- a/examples/cdi_write_rll.c
+++ b/examples/cdi_write_rll.c
@@ -8,7 +8,7 @@ main(void)
   const int nlat = 6;   // Number of latitudes
   const int nlev = 5;   // Number of levels
   const int nts = 3;    // Number of time steps
-  size_t nmiss = 0;
+  size_t numMissVals = 0;
   double lons[] = { 0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330 };
   double lats[] = { -75, -45, -15, 15, 45, 75 };
   double levs[] = { 101300, 92500, 85000, 50000, 20000 };
@@ -76,8 +76,8 @@ main(void)
       for (size_t i = 0; i < nlon * nlat * nlev; i++) var2[i] = 2.2;
 
       // Write var1 and var2
-      streamWriteVar(streamID, varID1, var1, nmiss);
-      streamWriteVar(streamID, varID2, var2, nmiss);
+      streamWriteVar(streamID, varID1, var1, numMissVals);
+      streamWriteVar(streamID, varID2, var2, numMissVals);
     }
 
   // Close the output stream
diff --git a/src/cdf_read.c b/src/cdf_read.c
index 1ecd04ae56283e01405ad18f4f71eed0b3750ba8..31b2a55e3aa4eac9a11d147bf4a5b73ba404427b 100644
--- a/src/cdf_read.c
+++ b/src/cdf_read.c
@@ -669,7 +669,7 @@ cdfReadDataSP(stream_t *streamptr, int varID, size_t length, size_t start[MAX_DI
 }
 
 static void
-cdfReadVarDP(stream_t *streamptr, int varID, double *data, size_t *nmiss)
+cdfReadVarDP(stream_t *streamptr, int varID, double *data, size_t *numMissVals)
 {
   if (CDI_Debug) Message("streamID = %d  varID = %d", streamptr->self, varID);
 
@@ -681,11 +681,11 @@ cdfReadVarDP(stream_t *streamptr, int varID, double *data, size_t *nmiss)
   size_t length = getSizeVar3D(vlistID, varID);
   cdfReadDataDP(streamptr, varID, length, start, count, data);
 
-  *nmiss = cdfDoInputDataTransformationDP(vlistID, varID, length, data);
+  *numMissVals = cdfDoInputDataTransformationDP(vlistID, varID, length, data);
 }
 
 static void
-cdfReadVarSP(stream_t *streamptr, int varID, float *data, size_t *nmiss)
+cdfReadVarSP(stream_t *streamptr, int varID, float *data, size_t *numMissVals)
 {
   if (CDI_Debug) Message("streamID = %d  varID = %d", streamptr->self, varID);
 
@@ -697,20 +697,20 @@ cdfReadVarSP(stream_t *streamptr, int varID, float *data, size_t *nmiss)
   size_t length = getSizeVar3D(vlistID, varID);
   cdfReadDataSP(streamptr, varID, length, start, count, data);
 
-  *nmiss = cdfDoInputDataTransformationSP(vlistID, varID, length, data);
+  *numMissVals = cdfDoInputDataTransformationSP(vlistID, varID, length, data);
 }
 
 void
-cdf_read_var(stream_t *streamptr, int varID, int memtype, void *data, size_t *nmiss)
+cdf_read_var(stream_t *streamptr, int varID, int memtype, void *data, size_t *numMissVals)
 {
   if (memtype == MEMTYPE_DOUBLE)
-    cdfReadVarDP(streamptr, varID, (double *) data, nmiss);
+    cdfReadVarDP(streamptr, varID, (double *) data, numMissVals);
   else
-    cdfReadVarSP(streamptr, varID, (float *) data, nmiss);
+    cdfReadVarSP(streamptr, varID, (float *) data, numMissVals);
 }
 
 static void
-cdf_read_var_slice_DP(stream_t *streamptr, int tsID, int varID, int levelID, double *data, size_t *nmiss)
+cdf_read_var_slice_DP(stream_t *streamptr, int tsID, int varID, int levelID, double *data, size_t *numMissVals)
 {
   if (CDI_Debug) Message("streamID=%d  tsID=%d varID=%d  levelID=%d", streamptr->self, tsID, varID, levelID);
 
@@ -725,17 +725,17 @@ cdf_read_var_slice_DP(stream_t *streamptr, int tsID, int varID, int levelID, dou
 
   if (swapxy) transpose2dArrayDP(gridId, data);
 
-  *nmiss = cdfDoInputDataTransformationDP(vlistID, varID, length, data);
+  *numMissVals = cdfDoInputDataTransformationDP(vlistID, varID, length, data);
 }
 
 static void
-cdfReadVarSliceDP(stream_t *streamptr, int varID, int levelID, double *data, size_t *nmiss)
+cdfReadVarSliceDP(stream_t *streamptr, int varID, int levelID, double *data, size_t *numMissVals)
 {
-  cdf_read_var_slice_DP(streamptr, streamptr->curTsID, varID, levelID, data, nmiss);
+  cdf_read_var_slice_DP(streamptr, streamptr->curTsID, varID, levelID, data, numMissVals);
 }
 
 static void
-cdf_read_var_slice_SP(stream_t *streamptr, int tsID, int varID, int levelID, float *data, size_t *nmiss)
+cdf_read_var_slice_SP(stream_t *streamptr, int tsID, int varID, int levelID, float *data, size_t *numMissVals)
 {
   if (CDI_Debug) Message("streamID=%d  tsID=%d varID=%d  levelID=%d", streamptr->self, tsID, varID, levelID);
 
@@ -750,22 +750,22 @@ cdf_read_var_slice_SP(stream_t *streamptr, int tsID, int varID, int levelID, flo
 
   if (swapxy) transpose2dArraySP(gridId, data);
 
-  *nmiss = cdfDoInputDataTransformationSP(vlistID, varID, length, data);
+  *numMissVals = cdfDoInputDataTransformationSP(vlistID, varID, length, data);
 }
 
 static void
-cdfReadVarSliceSP(stream_t *streamptr, int varID, int levelID, float *data, size_t *nmiss)
+cdfReadVarSliceSP(stream_t *streamptr, int varID, int levelID, float *data, size_t *numMissVals)
 {
-  cdf_read_var_slice_SP(streamptr, streamptr->curTsID, varID, levelID, data, nmiss);
+  cdf_read_var_slice_SP(streamptr, streamptr->curTsID, varID, levelID, data, numMissVals);
 }
 
 void
-cdf_read_var_slice(stream_t *streamptr, int varID, int levelID, int memtype, void *data, size_t *nmiss)
+cdf_read_var_slice(stream_t *streamptr, int varID, int levelID, int memtype, void *data, size_t *numMissVals)
 {
   if (memtype == MEMTYPE_DOUBLE)
-    cdfReadVarSliceDP(streamptr, varID, levelID, (double *) data, nmiss);
+    cdfReadVarSliceDP(streamptr, varID, levelID, (double *) data, numMissVals);
   else
-    cdfReadVarSliceSP(streamptr, varID, levelID, (float *) data, nmiss);
+    cdfReadVarSliceSP(streamptr, varID, levelID, (float *) data, numMissVals);
 }
 
 typedef struct JobArgs
@@ -774,7 +774,7 @@ typedef struct JobArgs
   int varID, levelID;
   int recID, tsID, memtype;
   void *data;
-  size_t gridsize, nmiss;
+  size_t gridsize, numMissVals;
 } JobArgs;
 
 static int
@@ -783,9 +783,9 @@ cdf_read_data_async(void *untypedArgs)
   JobArgs *args = (JobArgs *) untypedArgs;
 
   if (args->memtype == MEMTYPE_DOUBLE)
-    cdf_read_var_slice_DP(args->streamptr, args->tsID, args->varID, args->levelID, (double *) args->data, &args->nmiss);
+    cdf_read_var_slice_DP(args->streamptr, args->tsID, args->varID, args->levelID, (double *) args->data, &args->numMissVals);
   else
-    cdf_read_var_slice_SP(args->streamptr, args->tsID, args->varID, args->levelID, (float *) args->data, &args->nmiss);
+    cdf_read_var_slice_SP(args->streamptr, args->tsID, args->varID, args->levelID, (float *) args->data, &args->numMissVals);
 
   return 0;
 }
@@ -797,13 +797,13 @@ cdf_read_data(stream_t *streamptr, int recID, int memtype, void *data)
   int varID = streamptr->tsteps[tsID].records[recID].varID;
   int levelID = streamptr->tsteps[tsID].records[recID].levelID;
 
-  size_t nmiss = 0;
+  size_t numMissVals = 0;
   if (memtype == MEMTYPE_DOUBLE)
-    cdf_read_var_slice_DP(streamptr, tsID, varID, levelID, (double *) data, &nmiss);
+    cdf_read_var_slice_DP(streamptr, tsID, varID, levelID, (double *) data, &numMissVals);
   else
-    cdf_read_var_slice_SP(streamptr, tsID, varID, levelID, (float *) data, &nmiss);
+    cdf_read_var_slice_SP(streamptr, tsID, varID, levelID, (float *) data, &numMissVals);
 
-  return nmiss;
+  return numMissVals;
 }
 
 typedef struct JobDescriptor
@@ -830,7 +830,7 @@ job_args_init(stream_t *streamptr, int tsID, int recID, int memtype, void *data)
     .memtype = memtype,
     .data = data,
     .gridsize = gridsize,
-    .nmiss = 0,
+    .numMissVals = 0,
   };
 }
 
@@ -843,11 +843,11 @@ JobDescriptor_startJob(AsyncManager *jobManager, JobDescriptor *me, stream_t *st
 }
 
 static void
-JobDescriptor_finishJob(AsyncManager *jobManager, JobDescriptor *me, void *data, size_t *nmiss)
+JobDescriptor_finishJob(AsyncManager *jobManager, JobDescriptor *me, void *data, size_t *numMissVals)
 {
   if (AsyncWorker_wait(jobManager, me->job)) xabort("error executing job in worker thread");
   memcpy(data, me->args.data, me->args.gridsize * ((me->args.memtype == MEMTYPE_FLOAT) ? sizeof(float) : sizeof(double)));
-  *nmiss = me->args.nmiss;
+  *numMissVals = me->args.numMissVals;
 
   Free(me->args.data);
   me->args.recID = -1;  // mark as inactive
@@ -897,7 +897,7 @@ read_next_record(AsyncManager *jobManager, JobDescriptor *jd, stream_t *streampt
 }
 
 static void
-cdf_read_next_record(stream_t *streamptr, int recID, int memtype, void *data, size_t *nmiss)
+cdf_read_next_record(stream_t *streamptr, int recID, int memtype, void *data, size_t *numMissVals)
 {
   bool jobFound = false;
 
@@ -934,24 +934,24 @@ cdf_read_next_record(stream_t *streamptr, int recID, int memtype, void *data, si
           if (jd->args.recID == recID && jd->args.tsID == tsID)
             {
               jobFound = true;
-              JobDescriptor_finishJob(jobManager, jd, data, nmiss);
+              JobDescriptor_finishJob(jobManager, jd, data, numMissVals);
               if (streamptr->nextGlobalRecId < streamptr->maxGlobalRecs) read_next_record(jobManager, jd, streamptr, memtype);
             }
         }
     }
 
   // perform the work synchronously if we didn't start a job for it yet
-  if (!jobFound) *nmiss = cdf_read_data(streamptr, recID, memtype, data);
+  if (!jobFound) *numMissVals = cdf_read_data(streamptr, recID, memtype, data);
 }
 
 void
-cdf_read_record(stream_t *streamptr, int memtype, void *data, size_t *nmiss)
+cdf_read_record(stream_t *streamptr, int memtype, void *data, size_t *numMissVals)
 {
   int tsID = streamptr->curTsID;
   int vrecID = streamptr->tsteps[tsID].curRecID;
   int recID = streamptr->tsteps[tsID].recIDs[vrecID];
 
-  cdf_read_next_record(streamptr, recID, memtype, data, nmiss);
+  cdf_read_next_record(streamptr, recID, memtype, data, numMissVals);
 }
 
 //----------------------------------------------------------------------------
@@ -960,7 +960,7 @@ cdf_read_record(stream_t *streamptr, int memtype, void *data, size_t *nmiss)
 
 void
 cdfReadVarSliceDPPart(stream_t *streamptr, int varID, int levelID, int varType, int startpoint, size_t length, double *data,
-                      size_t *nmiss)
+                      size_t *numMissVals)
 {
   (void) (varType);
 
@@ -986,12 +986,12 @@ cdfReadVarSliceDPPart(stream_t *streamptr, int varID, int levelID, int varType,
 
   if (swapxy) transpose2dArrayDP(gridId, data);
 
-  *nmiss = cdfDoInputDataTransformationDP(vlistID, varID, length, data);
+  *numMissVals = cdfDoInputDataTransformationDP(vlistID, varID, length, data);
 }
 
 void
 cdfReadVarSliceSPPart(stream_t *streamptr, int varID, int levelID, int varType, int startpoint, size_t length, float *data,
-                      size_t *nmiss)
+                      size_t *numMissVals)
 {
   (void) (varType);
 
@@ -1017,24 +1017,24 @@ cdfReadVarSliceSPPart(stream_t *streamptr, int varID, int levelID, int varType,
 
   if (swapxy) transpose2dArraySP(gridId, data);
 
-  *nmiss = cdfDoInputDataTransformationSP(vlistID, varID, length, data);
+  *numMissVals = cdfDoInputDataTransformationSP(vlistID, varID, length, data);
 }
 
 static int
 cdiStreamReadVarSlicePart(int streamID, int varID, int levelID, int varType, int start, size_t size, int memtype, void *data,
-                          size_t *nmiss)
+                          size_t *numMissVals)
 {
   int status = 0;
 
   if (CDI_Debug) Message("streamID = %d  varID = %d", streamID, varID);
 
   check_parg(data);
-  check_parg(nmiss);
+  check_parg(numMissVals);
 
   stream_t *streamptr = stream_to_pointer(streamID);
   int filetype = streamptr->filetype;
 
-  *nmiss = 0;
+  *numMissVals = 0;
 
   // currently we only care for netcdf data
   switch (cdiBaseFiletype(filetype))
@@ -1042,7 +1042,7 @@ cdiStreamReadVarSlicePart(int streamID, int varID, int levelID, int varType, int
 #ifdef HAVE_LIBGRIB
     case CDI_FILETYPE_GRIB:
       {
-        grb_read_var_slice(streamptr, varID, levelID, memtype, data, nmiss);
+        grb_read_var_slice(streamptr, varID, levelID, memtype, data, numMissVals);
         break;
       }
 #endif
@@ -1050,9 +1050,9 @@ cdiStreamReadVarSlicePart(int streamID, int varID, int levelID, int varType, int
     case CDI_FILETYPE_NETCDF:
       {
         if (memtype == MEMTYPE_FLOAT)
-          cdfReadVarSliceSPPart(streamptr, varID, levelID, varType, start, size, (float *) data, nmiss);
+          cdfReadVarSliceSPPart(streamptr, varID, levelID, varType, start, size, (float *) data, numMissVals);
         else
-          cdfReadVarSliceDPPart(streamptr, varID, levelID, varType, start, size, (double *) data, nmiss);
+          cdfReadVarSliceDPPart(streamptr, varID, levelID, varType, start, size, (double *) data, numMissVals);
         break;
       }
 #endif
@@ -1068,7 +1068,7 @@ cdiStreamReadVarSlicePart(int streamID, int varID, int levelID, int varType, int
 }
 
 void
-cdfReadVarDPPart(stream_t *streamptr, int varID, int varType, int startpoint, size_t length, double *data, size_t *nmiss)
+cdfReadVarDPPart(stream_t *streamptr, int varID, int varType, int startpoint, size_t length, double *data, size_t *numMissVals)
 {
   (void) (varType);
   if (CDI_Debug) Message("streamID = %d  varID = %d", streamptr->self, varID);
@@ -1085,11 +1085,11 @@ cdfReadVarDPPart(stream_t *streamptr, int varID, int varType, int startpoint, si
 
   cdf_get_vara_double(streamptr->fileID, ncvarid, start, count, data);
 
-  *nmiss = cdfDoInputDataTransformationDP(vlistID, varID, length, data);
+  *numMissVals = cdfDoInputDataTransformationDP(vlistID, varID, length, data);
 }
 
 void
-cdfReadVarSPPart(stream_t *streamptr, int varID, int varType, int startpoint, size_t length, float *data, size_t *nmiss)
+cdfReadVarSPPart(stream_t *streamptr, int varID, int varType, int startpoint, size_t length, float *data, size_t *numMissVals)
 {
   (void) (varType);
   if (CDI_Debug) Message("streamID = %d  varID = %d", streamptr->self, varID);
@@ -1106,22 +1106,22 @@ cdfReadVarSPPart(stream_t *streamptr, int varID, int varType, int startpoint, si
 
   cdf_get_vara_float(streamptr->fileID, ncvarid, start, count, data);
 
-  *nmiss = cdfDoInputDataTransformationSP(vlistID, varID, length, data);
+  *numMissVals = cdfDoInputDataTransformationSP(vlistID, varID, length, data);
 }
 
 static void
-cdiStreamReadVarPart(int streamID, int varID, int varType, int start, size_t size, int memtype, void *data, size_t *nmiss)
+cdiStreamReadVarPart(int streamID, int varID, int varType, int start, size_t size, int memtype, void *data, size_t *numMissVals)
 {
   (void) (varType);
   if (CDI_Debug) Message("streamID = %d  varID = %d", streamID, varID);
 
   check_parg(data);
-  check_parg(nmiss);
+  check_parg(numMissVals);
 
   stream_t *streamptr = stream_to_pointer(streamID);
   int filetype = streamptr->filetype;
 
-  *nmiss = 0;
+  *numMissVals = 0;
 
   // currently we only care for netcdf data
   switch (cdiBaseFiletype(filetype))
@@ -1129,7 +1129,7 @@ cdiStreamReadVarPart(int streamID, int varID, int varType, int start, size_t siz
 #ifdef HAVE_LIBGRIB
     case CDI_FILETYPE_GRIB:
       {
-        grb_read_var(streamptr, varID, memtype, data, nmiss);
+        grb_read_var(streamptr, varID, memtype, data, numMissVals);
         break;
       }
 #endif
@@ -1137,9 +1137,9 @@ cdiStreamReadVarPart(int streamID, int varID, int varType, int start, size_t siz
     case CDI_FILETYPE_NETCDF:
       {
         if (memtype == MEMTYPE_FLOAT)
-          cdfReadVarSPPart(streamptr, varID, varType, start, size, (float *) data, nmiss);
+          cdfReadVarSPPart(streamptr, varID, varType, start, size, (float *) data, numMissVals);
         else
-          cdfReadVarDPPart(streamptr, varID, varType, start, size, (double *) data, nmiss);
+          cdfReadVarDPPart(streamptr, varID, varType, start, size, (double *) data, numMissVals);
 
         break;
       }
@@ -1153,7 +1153,7 @@ cdiStreamReadVarPart(int streamID, int varID, int varType, int start, size_t siz
 }
 
 void
-streamReadVarSlicePart(int streamID, int varID, int levelID, int varType, int start, SizeType size, void *data, SizeType *nmiss,
+streamReadVarSlicePart(int streamID, int varID, int levelID, int varType, int start, SizeType size, void *data, SizeType *numMissVals,
                        int memtype)
 {
   size_t numMiss = 0;
@@ -1161,15 +1161,15 @@ streamReadVarSlicePart(int streamID, int varID, int levelID, int varType, int st
     {
       Error("Unexpected error returned from cdiStreamReadVarSlicePart()!");
     }
-  *nmiss = (SizeType) numMiss;
+  *numMissVals = (SizeType) numMiss;
 }
 
 void
-streamReadVarPart(int streamID, int varID, int varType, int start, SizeType size, void *data, SizeType *nmiss, int memtype)
+streamReadVarPart(int streamID, int varID, int varType, int start, SizeType size, void *data, SizeType *numMissVals, int memtype)
 {
   size_t numMiss = 0;
   cdiStreamReadVarPart(streamID, varID, varType, start, size, memtype, data, &numMiss);
-  *nmiss = (SizeType) numMiss;
+  *numMissVals = (SizeType) numMiss;
 }
 
 #endif /* HAVE_LIBNETCDF */
diff --git a/src/cdf_write.c b/src/cdf_write.c
index 2599bae6e066f555c9d1351a99aa86d5348f6f8d..89f459aade4aaf937777e5ee50d061685d0a1404 100644
--- a/src/cdf_write.c
+++ b/src/cdf_write.c
@@ -1111,7 +1111,7 @@ cdfWriteGridTraj(stream_t *streamptr, int gridID)
 
 static void
 cdf_write_var_data(int fileID, int vlistID, int varID, int ncvarID, int dtype, size_t nvals, size_t xsize, size_t ysize,
-                   bool swapxy, size_t *start, size_t *count, int memtype, const void *data, size_t nmiss)
+                   bool swapxy, size_t *start, size_t *count, int memtype, const void *data, size_t numMissVals)
 {
   const double *pdata_dp = (const double *) data;
   double *mdata_dp = NULL;
@@ -1135,7 +1135,7 @@ cdf_write_var_data(int fileID, int vlistID, int varID, int ncvarID, int dtype, s
             memcpy(mdata_sp, pdata_sp, nvals * sizeof(float));
             pdata_sp = mdata_sp;
 
-            if (nmiss > 0)
+            if (numMissVals > 0)
               {
                 for (size_t i = 0; i < nvals; ++i)
                   {
@@ -1165,7 +1165,7 @@ cdf_write_var_data(int fileID, int vlistID, int varID, int ncvarID, int dtype, s
             memcpy(mdata_dp, pdata_dp, nvals * sizeof(double));
             pdata_dp = mdata_dp;
 
-            if (nmiss > 0)
+            if (numMissVals > 0)
               {
                 for (size_t i = 0; i < nvals; ++i)
                   {
@@ -1263,7 +1263,7 @@ cdf_write_var_data(int fileID, int vlistID, int varID, int ncvarID, int dtype, s
               }
           }
 
-        Message("nvals = %zu, nmiss = %d, missval = %g, minval = %g, maxval = %g", nvals, nmiss, missval, fmin, fmax);
+        Message("nvals = %zu, numMissVals = %d, missval = %g, minval = %g, maxval = %g", nvals, numMissVals, missval, fmin, fmax);
       }
   }
 
@@ -1409,7 +1409,7 @@ cdfDefineStartAndCount(stream_t *streamptr, int varID, int xid, int yid, int zid
 }
 
 void
-cdf_write_var(stream_t *streamptr, int varID, int memtype, const void *data, size_t nmiss)
+cdf_write_var(stream_t *streamptr, int varID, int memtype, const void *data, size_t numMissVals)
 {
   if (streamptr->accessmode == 0) cdfEndDef(streamptr);
 
@@ -1438,12 +1438,12 @@ cdf_write_var(stream_t *streamptr, int varID, int memtype, const void *data, siz
 
   int dtype = vlistInqVarDatatype(vlistID, varID);
 
-  if (nmiss > 0) cdfDefVarMissval(streamptr, varID, dtype, 1);
+  if (numMissVals > 0) cdfDefVarMissval(streamptr, varID, dtype, 1);
 
   size_t nvals = gridInqSize(gridID) * (size_t) (zaxisInqSize(zaxisID));
 
   bool swapxy = false;
-  cdf_write_var_data(fileID, vlistID, varID, ncvarID, dtype, nvals, xsize, ysize, swapxy, start, count, memtype, data, nmiss);
+  cdf_write_var_data(fileID, vlistID, varID, ncvarID, dtype, nvals, xsize, ysize, swapxy, start, count, memtype, data, numMissVals);
 }
 
 static void
@@ -1504,7 +1504,7 @@ cdfDefineStartAndCountChunk(stream_t *streamptr, const int rect[][2], int varID,
 }
 
 void
-cdf_write_var_chunk(stream_t *streamptr, int varID, int memtype, const int rect[][2], const void *data, size_t nmiss)
+cdf_write_var_chunk(stream_t *streamptr, int varID, int memtype, const int rect[][2], const void *data, size_t numMissVals)
 {
   if (streamptr->accessmode == 0) cdfEndDef(streamptr);
 
@@ -1535,12 +1535,12 @@ cdf_write_var_chunk(stream_t *streamptr, int varID, int memtype, const int rect[
 
   int dtype = vlistInqVarDatatype(vlistID, varID);
 
-  if (nmiss > 0) cdfDefVarMissval(streamptr, varID, dtype, 1);
+  if (numMissVals > 0) cdfDefVarMissval(streamptr, varID, dtype, 1);
 
   size_t nvals = gridInqSize(gridID) * (size_t) (zaxisInqSize(zaxisID));
 
   bool swapxy = false;
-  cdf_write_var_data(fileID, vlistID, varID, ncvarID, dtype, nvals, xsize, ysize, swapxy, start, count, memtype, data, nmiss);
+  cdf_write_var_data(fileID, vlistID, varID, ncvarID, dtype, nvals, xsize, ysize, swapxy, start, count, memtype, data, numMissVals);
 }
 
 static void
@@ -1595,7 +1595,7 @@ cdfDefineStartAndCountSlice(stream_t *streamptr, int varID, int levelID, int dim
 }
 
 void
-cdf_write_var_slice(stream_t *streamptr, int varID, int levelID, int memtype, const void *data, size_t nmiss)
+cdf_write_var_slice(stream_t *streamptr, int varID, int levelID, int memtype, const void *data, size_t numMissVals)
 {
   if (streamptr->accessmode == 0) cdfEndDef(streamptr);
 
@@ -1622,19 +1622,19 @@ cdf_write_var_slice(stream_t *streamptr, int varID, int levelID, int memtype, co
 
   int dtype = vlistInqVarDatatype(vlistID, varID);
 
-  if (nmiss > 0) cdfDefVarMissval(streamptr, varID, dtype, 1);
+  if (numMissVals > 0) cdfDefVarMissval(streamptr, varID, dtype, 1);
 
   size_t nvals = gridInqSize(gridID);
 
-  cdf_write_var_data(fileID, vlistID, varID, ncvarID, dtype, nvals, xsize, ysize, swapxy, start, count, memtype, data, nmiss);
+  cdf_write_var_data(fileID, vlistID, varID, ncvarID, dtype, nvals, xsize, ysize, swapxy, start, count, memtype, data, numMissVals);
 }
 
 void
-cdf_write_record(stream_t *streamptr, int memtype, const void *data, size_t nmiss)
+cdf_write_record(stream_t *streamptr, int memtype, const void *data, size_t numMissVals)
 {
   int varID = streamptr->record->varID;
   int levelID = streamptr->record->levelID;
-  cdf_write_var_slice(streamptr, varID, levelID, memtype, data, nmiss);
+  cdf_write_var_slice(streamptr, varID, levelID, memtype, data, numMissVals);
 }
 
 #endif
diff --git a/src/cdi.h b/src/cdi.h
index eed826b95864ee063d2c17525d1842a69ba6a9a0..9e4e48c311de2192b3875cd2ff00be71f36783bf 100644
--- a/src/cdi.h
+++ b/src/cdi.h
@@ -422,35 +422,35 @@ int     streamInqNvars(int streamID);
 // STREAM var I/O routines (random access)
 
 //      streamWriteVar: Write a variable
-void    streamWriteVar(int streamID, int varID, const double data[], SizeType nmiss);
-void    streamWriteVarF(int streamID, int varID, const float data[], SizeType nmiss);
+void    streamWriteVar(int streamID, int varID, const double data[], SizeType numMissVals);
+void    streamWriteVarF(int streamID, int varID, const float data[], SizeType numMissVals);
 
 //      streamReadVar: Read a variable
-void    streamReadVar(int streamID, int varID, double data[], SizeType *nmiss);
-void    streamReadVarF(int streamID, int varID, float data[], SizeType *nmiss);
-void    streamReadVarPart(int streamID, int varID, int varType, int start, SizeType size, void *data, SizeType *nmiss, int memtype);
+void    streamReadVar(int streamID, int varID, double data[], SizeType *numMissVals);
+void    streamReadVarF(int streamID, int varID, float data[], SizeType *numMissVals);
+void    streamReadVarPart(int streamID, int varID, int varType, int start, SizeType size, void *data, SizeType *numMissVals, int memtype);
 
 //      streamWriteVarSlice: Write a horizontal slice of a variable
-void    streamWriteVarSlice(int streamID, int varID, int levelID, const double data[], SizeType nmiss);
-void    streamWriteVarSliceF(int streamID, int varID, int levelID, const float data[], SizeType nmiss);
-void    streamReadVarSlicePart(int streamID, int varID, int levelID, int varType, int start, SizeType size, void *data, SizeType *nmiss, int memtype);
+void    streamWriteVarSlice(int streamID, int varID, int levelID, const double data[], SizeType numMissVals);
+void    streamWriteVarSliceF(int streamID, int varID, int levelID, const float data[], SizeType numMissVals);
+void    streamReadVarSlicePart(int streamID, int varID, int levelID, int varType, int start, SizeType size, void *data, SizeType *numMissVals, int memtype);
 
 //      streamReadVarSlice: Read a horizontal slice of a variable
-void    streamReadVarSlice(int streamID, int varID, int levelID, double data[], SizeType *nmiss);
-void    streamReadVarSliceF(int streamID, int varID, int levelID, float data[], SizeType *nmiss);
+void    streamReadVarSlice(int streamID, int varID, int levelID, double data[], SizeType *numMissVals);
+void    streamReadVarSliceF(int streamID, int varID, int levelID, float data[], SizeType *numMissVals);
 
-void    streamWriteVarChunk(int streamID, int varID, const int rect[][2], const double data[], SizeType nmiss);
-void    streamWriteVarChunkF(int streamID, int varID, const int rect[][2], const float data[], SizeType nmiss);
+void    streamWriteVarChunk(int streamID, int varID, const int rect[][2], const double data[], SizeType numMissVals);
+void    streamWriteVarChunkF(int streamID, int varID, const int rect[][2], const float data[], SizeType numMissVals);
 
 
 // STREAM record I/O routines (sequential access)
 
 void    streamDefRecord(int streamID, int  varID, int  levelID);
 void    streamInqRecord(int streamID, int *varID, int *levelID);
-void    streamWriteRecord(int streamID, const double data[], SizeType nmiss);
-void    streamWriteRecordF(int streamID, const float data[], SizeType nmiss);
-void    streamReadRecord(int streamID, double data[], SizeType *nmiss);
-void    streamReadRecordF(int streamID, float data[], SizeType *nmiss);
+void    streamWriteRecord(int streamID, const double data[], SizeType numMissVals);
+void    streamWriteRecordF(int streamID, const float data[], SizeType numMissVals);
+void    streamReadRecord(int streamID, double data[], SizeType *numMissVals);
+void    streamReadRecordF(int streamID, float data[], SizeType *numMissVals);
 void    streamCopyRecord(int streamIDdest, int streamIDsrc);
 
 void    streamInqGRIBinfo(int streamID, int *intnum, float *fltnum, off_t *bignum);
@@ -489,8 +489,8 @@ char *cdiIterator_inqVariableName(CdiIterator *me);     // The caller is respons
 int cdiIterator_inqGridId(CdiIterator *me);             // The returned id is only valid until the next call to cdiIteratorNextField().
 
 // Reading data
-void cdiIterator_readField(CdiIterator *me, double data[], SizeType *nmiss_optional);
-void cdiIterator_readFieldF(CdiIterator *me, float data[], SizeType *nmiss_optional);
+void cdiIterator_readField(CdiIterator *me, double data[], SizeType *numMissVals_optional);
+void cdiIterator_readFieldF(CdiIterator *me, float data[], SizeType *numMissVals_optional);
 // TODO[NH]: Add functions to read partial fields.
 
 
diff --git a/src/cdi_int.h b/src/cdi_int.h
index 95b84c928750a27b84c166f23ea08057de97ca31..c7449eb7a46c5ba54f3896715c6f23acb496a0b6 100644
--- a/src/cdi_int.h
+++ b/src/cdi_int.h
@@ -496,9 +496,9 @@ int streamOpenID(const char *filename, char filemode, int filetype, int resH);
 
 void cdiStreamDefVlist_(int streamID, int vlistID);
 
-int cdiStreamWriteVar_(int streamID, int varID, int memtype, const void *data, SizeType nmiss);
+int cdiStreamWriteVar_(int streamID, int varID, int memtype, const void *data, SizeType numMissVals);
 
-void cdiStreamWriteVarChunk_(int streamID, int varID, int memtype, const int rect[][2], const void *data, SizeType nmiss);
+void cdiStreamWriteVarChunk_(int streamID, int varID, int memtype, const int rect[][2], const void *data, SizeType numMissVals);
 void cdiStreamCloseDefaultDelegate(stream_t *streamptr, int recordBufIsToBeDeleted);
 
 int cdiStreamDefTimestep_(stream_t *streamptr, int tsID);
diff --git a/src/cdipio.h b/src/cdipio.h
index 72a5f9ac9a77531a532eac94e920239e74340f69..c1401954b50d34532c64686933ef115b9aceb2d6 100644
--- a/src/cdipio.h
+++ b/src/cdipio.h
@@ -80,14 +80,14 @@ void cdiPioStreamDefDecomposedVlist(int streamID, int vlistID, const Xt_idxlist
  * the corresponding array passed to streamWriteVar in the serial version.
  * The group of processes collectively calling streamWriteVarPart
  * must provide data for all indices or the behaviour is undefined. */
-void streamWriteVarPart(int streamID, int varID, const double *data, int nmiss, Xt_idxlist partDesc);
+void streamWriteVarPart(int streamID, int varID, const double *data, int numMissVals, Xt_idxlist partDesc);
 
 /* streamWriteVarPartF: Write part of the data making up variable
  * varID of stream streamID.
  *
  * Single-precision version of streamWriteVarPart.
  */
-void streamWriteVarPartF(int streamID, int varID, const float *data, int nmiss, Xt_idxlist partDesc);
+void streamWriteVarPartF(int streamID, int varID, const float *data, int numMissVals, Xt_idxlist partDesc);
 
 /* streamWriteScatteredVarPart: Write part of the data making up
  * variable varID of stream streamID.
@@ -97,7 +97,7 @@ void streamWriteVarPartF(int streamID, int varID, const float *data, int nmiss,
  * blocklengths[i] and starting displacements[i] each for i in [0,numBlocks)
  */
 void streamWriteScatteredVarPart(int streamID, int varID, const double *data, int numBlocks, const int blocklengths[],
-                                 const int displacements[], int nmiss, Xt_idxlist partDesc);
+                                 const int displacements[], int numMissVals, Xt_idxlist partDesc);
 
 /* streamWriteScatteredVarPartF: Write part of the data making up
  * variable varID of stream streamID.
@@ -105,7 +105,7 @@ void streamWriteScatteredVarPart(int streamID, int varID, const double *data, in
  * Single-precision version of streamWriteScatteredVarPart.
  */
 void streamWriteScatteredVarPartF(int streamID, int varID, const float *data, int numBlocks, const int blocklengths[],
-                                  const int displacements[], int nmiss, Xt_idxlist partDesc);
+                                  const int displacements[], int numMissVals, Xt_idxlist partDesc);
 /* cdiPioCSRLastN: return role codes appropriate to use the last
    \textit{nProcsIO} tasks as I/O servers */
 int cdiPioCSRLastN(MPI_Comm commSuper, int IOMode, int nProcsIO);
diff --git a/src/get_num_missvals.c b/src/get_num_missvals.c
index 7f4b15e538754aaa2fbe4bba68b857de54997db2..5811799e930a9fdec9833d3cdddd19017a68c18c 100644
--- a/src/get_num_missvals.c
+++ b/src/get_num_missvals.c
@@ -4,7 +4,7 @@
 size_t
 get_num_missvalsSP(size_t size, float *data, float missval)
 {
-  size_t nmiss = 0;
+  size_t numMissVals = 0;
 
   if (DBL_IS_NAN(missval))
     {
@@ -12,7 +12,7 @@ get_num_missvalsSP(size_t size, float *data, float missval)
         if (DBL_IS_EQUAL(data[i], missval))
           {
             data[i] = missval;
-            nmiss++;
+            numMissVals++;
           }
     }
   else
@@ -21,17 +21,17 @@ get_num_missvalsSP(size_t size, float *data, float missval)
         if (IS_EQUAL(data[i], missval))
           {
             data[i] = missval;
-            nmiss++;
+            numMissVals++;
           }
     }
 
-  return nmiss;
+  return numMissVals;
 }
 
 size_t
 get_num_missvalsDP(size_t size, double *data, double missval)
 {
-  size_t nmiss = 0;
+  size_t numMissVals = 0;
 
   if (DBL_IS_NAN(missval))
     {
@@ -39,7 +39,7 @@ get_num_missvalsDP(size_t size, double *data, double missval)
         if (DBL_IS_EQUAL(data[i], missval) || DBL_IS_EQUAL(data[i], (float) missval))
           {
             data[i] = missval;
-            nmiss++;
+            numMissVals++;
           }
     }
   else
@@ -48,17 +48,17 @@ get_num_missvalsDP(size_t size, double *data, double missval)
         if (IS_EQUAL(data[i], missval) || IS_EQUAL(data[i], (float) missval))
           {
             data[i] = missval;
-            nmiss++;
+            numMissVals++;
           }
     }
 
-  return nmiss;
+  return numMissVals;
 }
 
 size_t
 get_cplx_num_missvalsSP(size_t size, float *data, float missval)
 {
-  size_t nmiss = 0;
+  size_t numMissVals = 0;
 
   if (DBL_IS_NAN(missval))
     {
@@ -66,7 +66,7 @@ get_cplx_num_missvalsSP(size_t size, float *data, float missval)
         if (DBL_IS_EQUAL(data[i], missval))
           {
             data[i] = missval;
-            nmiss++;
+            numMissVals++;
           }
     }
   else
@@ -75,17 +75,17 @@ get_cplx_num_missvalsSP(size_t size, float *data, float missval)
         if (IS_EQUAL(data[i], missval))
           {
             data[i] = missval;
-            nmiss++;
+            numMissVals++;
           }
     }
 
-  return nmiss;
+  return numMissVals;
 }
 
 size_t
 get_cplx_num_missvalsDP(size_t size, double *data, double missval)
 {
-  size_t nmiss = 0;
+  size_t numMissVals = 0;
 
   if (DBL_IS_NAN(missval))
     {
@@ -93,7 +93,7 @@ get_cplx_num_missvalsDP(size_t size, double *data, double missval)
         if (DBL_IS_EQUAL(data[i], missval) || DBL_IS_EQUAL(data[i], (float) missval))
           {
             data[i] = missval;
-            nmiss++;
+            numMissVals++;
           }
     }
   else
@@ -102,9 +102,9 @@ get_cplx_num_missvalsDP(size_t size, double *data, double missval)
         if (IS_EQUAL(data[i], missval) || IS_EQUAL(data[i], (float) missval))
           {
             data[i] = missval;
-            nmiss++;
+            numMissVals++;
           }
     }
 
-  return nmiss;
+  return numMissVals;
 }
diff --git a/src/grb_read.c b/src/grb_read.c
index 06d6c3458baf6e85b07eeda3ae0bccbbb1f017a9..0b3e609ef7df358fc88a49b3ebfdf1fb497c8a8f 100644
--- a/src/grb_read.c
+++ b/src/grb_read.c
@@ -20,7 +20,7 @@
 
 static int
 grb_decode(int filetype, int memType, int datatype, void *cgribexp, void *gribbuffer, size_t gribsize, void *data, size_t datasize,
-           int unreduced, size_t *nmiss, double missval)
+           int unreduced, size_t *numMissVals, double missval)
 {
   int status = 0;
 
@@ -31,7 +31,7 @@ grb_decode(int filetype, int memType, int datatype, void *cgribexp, void *gribbu
       extern int cdiNAdditionalGRIBKeys;
       if (cdiNAdditionalGRIBKeys > 0) Error("CGRIBEX decode does not support reading of additional GRIB keys!");
 #endif
-      status = cgribexDecode(memType, cgribexp, gribbuffer, gribsize, data, datasize, unreduced, nmiss, missval);
+      status = cgribexDecode(memType, cgribexp, gribbuffer, gribsize, data, datasize, unreduced, numMissVals, missval);
     }
   else
 #endif
@@ -43,7 +43,7 @@ grb_decode(int filetype, int memType, int datatype, void *cgribexp, void *gribbu
 
       // if (useFloatInterface) printf("gribapi read: useFloatInterface\n");
 
-      status = gribapiDecode(memTypeX, gribbuffer, gribsize, datap, datasize, unreduced, nmiss, missval);
+      status = gribapiDecode(memTypeX, gribbuffer, gribsize, datap, datasize, unreduced, numMissVals, missval);
 
       if (!useFloatInterface && memType == MEMTYPE_FLOAT)
         {
@@ -112,7 +112,7 @@ typedef struct JobArgs
 {
   int recID, tsID, *outZip, filetype, memType, datatype, unreduced;
   void *cgribexp, *gribbuffer, *data;
-  size_t recsize, gridsize, nmiss;
+  size_t recsize, gridsize, numMissVals;
   double missval;
 } JobArgs;
 
@@ -122,7 +122,7 @@ grb_decode_record(void *untypedArgs)
   JobArgs *args = (JobArgs *) untypedArgs;
   *args->outZip = grib1_unzip_record(args->gribbuffer, &args->recsize);
   grb_decode(args->filetype, args->memType, args->datatype, args->cgribexp, args->gribbuffer, args->recsize, args->data,
-             args->gridsize, args->unreduced, &args->nmiss, args->missval);
+             args->gridsize, args->unreduced, &args->numMissVals, args->missval);
   return 0;
 }
 
@@ -177,7 +177,7 @@ grb_read_raw_data(stream_t *streamptr, int tsID, int recID, int memType, void *g
     .data = data,
     .recsize = recsize,
     .gridsize = gridsize,
-    .nmiss = 0,
+    .numMissVals = 0,
     .missval = vlistInqVarMissval(vlistID, varID),
     .datatype = vlistInqVarDatatype(vlistID, varID),
   };
@@ -188,7 +188,7 @@ grb_read_and_decode_record(stream_t *streamptr, int recID, int memType, void *da
 {
   JobArgs args = grb_read_raw_data(streamptr, streamptr->curTsID, recID, memType, streamptr->record->buffer, data, resetFilePos);
   grb_decode_record(&args);
-  return args.nmiss;
+  return args.numMissVals;
 }
 
 typedef struct JobDescriptor
@@ -206,11 +206,11 @@ JobDescriptor_startJob(AsyncManager *jobManager, JobDescriptor *me, stream_t *st
 }
 
 static void
-JobDescriptor_finishJob(AsyncManager *jobManager, JobDescriptor *me, void *data, size_t *nmiss)
+JobDescriptor_finishJob(AsyncManager *jobManager, JobDescriptor *me, void *data, size_t *numMissVals)
 {
   if (AsyncWorker_wait(jobManager, me->job)) xabort("error executing job in worker thread");
   memcpy(data, me->args.data, me->args.gridsize * ((me->args.memType == MEMTYPE_FLOAT) ? sizeof(float) : sizeof(double)));
-  *nmiss = me->args.nmiss;
+  *numMissVals = me->args.numMissVals;
 
   Free(me->args.gribbuffer);
   Free(me->args.data);
@@ -261,7 +261,7 @@ read_next_record(AsyncManager *jobManager, JobDescriptor *jd, stream_t *streampt
 }
 
 static void
-grb_read_next_record(stream_t *streamptr, int recID, int memType, void *data, size_t *nmiss)
+grb_read_next_record(stream_t *streamptr, int recID, int memType, void *data, size_t *numMissVals)
 {
   bool jobFound = false;
 
@@ -298,37 +298,37 @@ grb_read_next_record(stream_t *streamptr, int recID, int memType, void *data, si
           if (jd->args.recID == recID && jd->args.tsID == tsID)
             {
               jobFound = true;
-              JobDescriptor_finishJob(jobManager, jd, data, nmiss);
+              JobDescriptor_finishJob(jobManager, jd, data, numMissVals);
               if (streamptr->nextGlobalRecId < streamptr->maxGlobalRecs) read_next_record(jobManager, jd, streamptr, memType);
             }
         }
     }
 
   // perform the work synchronously if we didn't start a job for it yet
-  if (!jobFound) *nmiss = grb_read_and_decode_record(streamptr, recID, memType, data, false);
+  if (!jobFound) *numMissVals = grb_read_and_decode_record(streamptr, recID, memType, data, false);
 }
 
 void
-grb_read_record(stream_t *streamptr, int memType, void *data, size_t *nmiss)
+grb_read_record(stream_t *streamptr, int memType, void *data, size_t *numMissVals)
 {
   int tsID = streamptr->curTsID;
   int vrecID = streamptr->tsteps[tsID].curRecID;
   int recID = streamptr->tsteps[tsID].recIDs[vrecID];
 
-  grb_read_next_record(streamptr, recID, memType, data, nmiss);
+  grb_read_next_record(streamptr, recID, memType, data, numMissVals);
 }
 
 void
-grb_read_var_slice(stream_t *streamptr, int varID, int levelID, int memType, void *data, size_t *nmiss)
+grb_read_var_slice(stream_t *streamptr, int varID, int levelID, int memType, void *data, size_t *numMissVals)
 {
   int isub = subtypeInqActiveIndex(streamptr->vars[varID].subtypeID);
   int recID = streamptr->vars[varID].recordTable[isub].recordID[levelID];
 
-  *nmiss = grb_read_and_decode_record(streamptr, recID, memType, data, true);
+  *numMissVals = grb_read_and_decode_record(streamptr, recID, memType, data, true);
 }
 
 void
-grb_read_var(stream_t *streamptr, int varID, int memType, void *data, size_t *nmiss)
+grb_read_var(stream_t *streamptr, int varID, int memType, void *data, size_t *numMissVals)
 {
   int vlistID = streamptr->vlistID;
   int fileID = streamptr->fileID;
@@ -343,14 +343,14 @@ grb_read_var(stream_t *streamptr, int varID, int memType, void *data, size_t *nm
 
   if (CDI_Debug) Message("nlevs = %d gridID = %d gridsize = %zu", nlevs, gridID, gridsize);
 
-  *nmiss = 0;
+  *numMissVals = 0;
   for (int levelID = 0; levelID < nlevs; levelID++)
     {
       int recID = streamptr->vars[varID].recordTable[isub].recordID[levelID];
       size_t offset = levelID * gridsize;
       void *datap = (memType == MEMTYPE_FLOAT) ? (void *) ((float *) data + offset) : (void *) ((double *) data + offset);
 
-      *nmiss += grb_read_and_decode_record(streamptr, recID, memType, datap, false);
+      *numMissVals += grb_read_and_decode_record(streamptr, recID, memType, datap, false);
     }
 
   fileSetPos(fileID, currentfilepos, SEEK_SET);
diff --git a/src/grb_write.c b/src/grb_write.c
index e71004aa00c719a210c39a4cadbc6d04faf18481..e730c6167c4ee1fd609480b8a4c7dd910d1faada 100644
--- a/src/grb_write.c
+++ b/src/grb_write.c
@@ -25,7 +25,7 @@
 
 static size_t
 grb_encode(int filetype, int memType, int datatype, int varID, int levelID, int vlistID, int gridID, int zaxisID,
-           CdiDateTime vDateTime, int tsteptype, int numavg, size_t datasize, const void *data, size_t nmiss, void **gribbuffer,
+           CdiDateTime vDateTime, int tsteptype, int numavg, size_t datasize, const void *data, size_t numMissVals, void **gribbuffer,
            int comptype, void *gribContainers)
 {
   size_t nbytes = 0;
@@ -36,7 +36,7 @@ grb_encode(int filetype, int memType, int datatype, int varID, int levelID, int
       size_t gribbuffersize = datasize * 4 + 3000;
       *gribbuffer = Malloc(gribbuffersize);
 
-      nbytes = cgribexEncode(memType, varID, levelID, vlistID, gridID, zaxisID, vDateTime, tsteptype, numavg, datasize, data, nmiss,
+      nbytes = cgribexEncode(memType, varID, levelID, vlistID, gridID, zaxisID, vDateTime, tsteptype, numavg, datasize, data, numMissVals,
                              *gribbuffer, gribbuffersize);
     }
   else
@@ -67,7 +67,7 @@ grb_encode(int filetype, int memType, int datatype, int varID, int levelID, int
 
       size_t gribbuffersize;
       nbytes = gribapiEncode(memTypeX, varID, levelID, vlistID, gridID, zaxisID, vDateTime, tsteptype, numavg, (long) datasize,
-                             datap, nmiss, gribbuffer, &gribbuffersize, comptype, gribContainer);
+                             datap, numMissVals, gribbuffer, &gribbuffersize, comptype, gribContainer);
 
       if (!useFloatInterface && memType == MEMTYPE_FLOAT) Free((void *) datap);
     }
@@ -311,7 +311,7 @@ grbCopyRecord(stream_t *streamptr2, stream_t *streamptr1)
 
       if (scanModeIN != cdiGribDataScanningMode.value)
         {
-          size_t nmiss = 0;
+          size_t numMissVals = 0;
 
           int vlistID = streamptr1->vlistID;
           int varID = record->varID;
@@ -324,7 +324,7 @@ grbCopyRecord(stream_t *streamptr2, stream_t *streamptr1)
 
           if (cdiDebugExt >= 20) Message(" processing varID %d; levelID %d", varID, levelID);
 
-          grb_write_var_slice(streamptr2, varID, levelID, MEMTYPE_DOUBLE, (const void *) data, nmiss);
+          grb_write_var_slice(streamptr2, varID, levelID, MEMTYPE_DOUBLE, (const void *) data, numMissVals);
 
           free(data);
         }
@@ -374,7 +374,7 @@ grbCopyRecord(stream_t *streamptr2, stream_t *streamptr1)
 }
 
 void
-grb_write_var_slice(stream_t *streamptr, int varID, int levelID, int memtype, const void *data, size_t nmiss)
+grb_write_var_slice(stream_t *streamptr, int varID, int levelID, int memtype, const void *data, size_t numMissVals)
 {
   int filetype = streamptr->filetype;
   int fileID = streamptr->fileID;
@@ -403,7 +403,7 @@ grb_write_var_slice(stream_t *streamptr, int varID, int levelID, int memtype, co
 
   void *gribbuffer = NULL;
   size_t nbytes = grb_encode(filetype, memtype, datatype, varID, levelID, vlistID, gridID, zaxisID, vDateTime, tsteptype, numavg,
-                             datasize, data, nmiss, &gribbuffer, comptype, streamptr->gribContainers);
+                             datasize, data, numMissVals, &gribbuffer, comptype, streamptr->gribContainers);
 
   if (filetype == CDI_FILETYPE_GRB && (comptype == CDI_COMPRESS_SZIP || comptype == CDI_COMPRESS_AEC))
     nbytes = grbSzip(filetype, gribbuffer, nbytes);
@@ -455,7 +455,7 @@ grb_write_var_slice(stream_t *streamptr, int varID, int levelID, int memtype, co
 }
 
 void
-grb_write_var(stream_t *streamptr, int varID, int memtype, const void *data, size_t nmiss)
+grb_write_var(stream_t *streamptr, int varID, int memtype, const void *data, size_t numMissVals)
 {
   int vlistID = streamptr->vlistID, gridID = vlistInqVarGrid(vlistID, varID), zaxisID = vlistInqVarZaxis(vlistID, varID),
       nlevs = zaxisInqSize(zaxisID);
@@ -468,31 +468,31 @@ grb_write_var(stream_t *streamptr, int varID, int memtype, const void *data, siz
       {
         const float *restrict fdata = ((const float *) data) + levelID * gridsize;
 
-        size_t nmiss_slice = 0;
-        if (nmiss)
-          for (size_t i = 0; i < chunkLen; ++i) nmiss_slice += DBL_IS_EQUAL(fdata[i], missval);
+        size_t numMissVals_slice = 0;
+        if (numMissVals)
+          for (size_t i = 0; i < chunkLen; ++i) numMissVals_slice += DBL_IS_EQUAL(fdata[i], missval);
 
-        grb_write_var_slice(streamptr, varID, levelID, memtype, fdata, nmiss_slice);
+        grb_write_var_slice(streamptr, varID, levelID, memtype, fdata, numMissVals_slice);
       }
   else
     for (int levelID = 0; levelID < nlevs; levelID++)
       {
         const double *restrict ddata = ((const double *) data) + levelID * gridsize;
 
-        size_t nmiss_slice = 0;
-        if (nmiss)
-          for (size_t i = 0; i < chunkLen; ++i) nmiss_slice += DBL_IS_EQUAL(ddata[i], missval);
+        size_t numMissVals_slice = 0;
+        if (numMissVals)
+          for (size_t i = 0; i < chunkLen; ++i) numMissVals_slice += DBL_IS_EQUAL(ddata[i], missval);
 
-        grb_write_var_slice(streamptr, varID, levelID, memtype, ddata, nmiss_slice);
+        grb_write_var_slice(streamptr, varID, levelID, memtype, ddata, numMissVals_slice);
       }
 }
 
 void
-grb_write_record(stream_t *streamptr, int memtype, const void *data, size_t nmiss)
+grb_write_record(stream_t *streamptr, int memtype, const void *data, size_t numMissVals)
 {
   int varID = streamptr->record->varID;
   int levelID = streamptr->record->levelID;
-  grb_write_var_slice(streamptr, varID, levelID, memtype, data, nmiss);
+  grb_write_var_slice(streamptr, varID, levelID, memtype, data, numMissVals);
 }
 
 #endif
diff --git a/src/iterator.c b/src/iterator.c
index c1d20c087c955bd52df91e37ad476d6775cd14ce..6c152276472c312759391ae8bf5c989ccb0b7f8f 100644
--- a/src/iterator.c
+++ b/src/iterator.c
@@ -956,18 +956,18 @@ cdiIterator_inqGridId(CdiIterator *me)
 @Function cdiIterator_readField
 @Title Read the whole field into a double buffer
 
-@Prototype void cdiIterator_readField(CdiIterator *me, double *buffer, SizeType *nmiss)
+@Prototype void cdiIterator_readField(CdiIterator *me, double *buffer, SizeType *numMissVals)
 @Parameter
     @item iterator The iterator to operate on.
     @item buffer A pointer to the double array that the data should be written to.
-    @item nmiss A pointer to a variable where the count of missing values will be stored. May be NULL.
+    @item numMissVals A pointer to a variable where the count of missing values will be stored. May be NULL.
 
 @Description
     It is assumed that the caller first analyses the return value of cdiIterator_inqGridId to determine the required size of the
 buffer. Failing to do so results in undefined behavior. You have been warned.
 */
 void
-cdiIterator_readField(CdiIterator *me, double *buffer, SizeType *nmiss)
+cdiIterator_readField(CdiIterator *me, double *buffer, SizeType *numMissVals)
 {
   size_t numMiss = 0;
   sanityCheck(me);
@@ -995,25 +995,25 @@ cdiIterator_readField(CdiIterator *me, double *buffer, SizeType *nmiss)
     default: Error(kUnexpectedFileTypeMessage);
     }
 
-  *nmiss = (SizeType) numMiss;
+  *numMissVals = (SizeType) numMiss;
 }
 
 /*
 @Function cdiIterator_readFieldF
 @Title Read the whole field into a double buffer
 
-@Prototype void cdiIterator_readFieldF(CdiIterator  me, float *buffer, SizeType *nmiss)
+@Prototype void cdiIterator_readFieldF(CdiIterator  me, float *buffer, SizeType *numMissVals)
 @Parameter
     @item iterator The iterator to operate on.
     @item buffer   A pointer to the double array that the data should be written to.
-    @item nmiss    A pointer to a variable where the count of missing values will be stored. May be NULL.
+    @item numMissVals    A pointer to a variable where the count of missing values will be stored. May be NULL.
 
 @Description
     It is assumed that the caller first analyses the return value of cdiIterator_inqGridId to determine the required size of the
 buffer. Failing to do so results in undefined behavior. You have been warned.
 */
 void
-cdiIterator_readFieldF(CdiIterator *me, float *buffer, SizeType *nmiss)
+cdiIterator_readFieldF(CdiIterator *me, float *buffer, SizeType *numMissVals)
 {
   size_t numMiss = 0;
   sanityCheck(me);
@@ -1041,7 +1041,7 @@ cdiIterator_readFieldF(CdiIterator *me, float *buffer, SizeType *nmiss)
     default: Error(kUnexpectedFileTypeMessage);
     }
 
-  *nmiss = (SizeType) numMiss;
+  *numMissVals = (SizeType) numMiss;
 }
 
 /*
diff --git a/src/iterator_fallback.c b/src/iterator_fallback.c
index ae78db1c4d1130d6881e469fade424e2a767119c..4be6f2faf6ed456d1bcfaac4e4ba939de8de165c 100644
--- a/src/iterator_fallback.c
+++ b/src/iterator_fallback.c
@@ -403,21 +403,21 @@ cdiFallbackIterator_copyVariableName(CdiIterator *super)
 }
 
 void
-cdiFallbackIterator_readField(CdiIterator *super, double *buffer, size_t *nmiss)
+cdiFallbackIterator_readField(CdiIterator *super, double *buffer, size_t *numMissVals)
 {
   CdiFallbackIterator *me = (CdiFallbackIterator *) (void *) super;
   SizeType missingValues = 0;
   streamReadVarSlice(me->streamId, me->curVariable, me->curLevel, buffer, &missingValues);
-  if (nmiss) *nmiss = (size_t) missingValues;
+  if (numMissVals) *numMissVals = (size_t) missingValues;
 }
 
 void
-cdiFallbackIterator_readFieldF(CdiIterator *super, float *buffer, size_t *nmiss)
+cdiFallbackIterator_readFieldF(CdiIterator *super, float *buffer, size_t *numMissVals)
 {
   CdiFallbackIterator *me = (CdiFallbackIterator *) (void *) super;
   SizeType missingValues = 0;
   streamReadVarSliceF(me->streamId, me->curVariable, me->curLevel, buffer, &missingValues);
-  if (nmiss) *nmiss = (size_t) missingValues;
+  if (numMissVals) *numMissVals = (size_t) missingValues;
 }
 
 /*
diff --git a/src/iterator_fallback.h b/src/iterator_fallback.h
index e3c9514308ed3498898c2e9f50573b742d8457b1..1828a4992aa88b076eaa80462c9d6194ed16758d 100644
--- a/src/iterator_fallback.h
+++ b/src/iterator_fallback.h
@@ -37,8 +37,8 @@ char *cdiFallbackIterator_copyVariableName(CdiIterator *me);
 int cdiFallbackIterator_inqTile(CdiIterator *me, int *outTileIndex, int *outTileAttribute);
 int cdiFallbackIterator_inqTileCount(CdiIterator *me, int *outTileCount, int *outTileAttributeCount);
 
-void cdiFallbackIterator_readField(CdiIterator *me, double *buffer, size_t *nmiss);
-void cdiFallbackIterator_readFieldF(CdiIterator *me, float *buffer, size_t *nmiss);
+void cdiFallbackIterator_readField(CdiIterator *me, double *buffer, size_t *numMissVals);
+void cdiFallbackIterator_readFieldF(CdiIterator *me, float *buffer, size_t *numMissVals);
 
 void cdiFallbackIterator_delete(CdiIterator *super);
 
diff --git a/src/iterator_grib.c b/src/iterator_grib.c
index eb49ebf622b75b13cb0123c758ce4cc06808b052..7b5219f0a6421294e95cfc08aeaa16072b62da2f 100644
--- a/src/iterator_grib.c
+++ b/src/iterator_grib.c
@@ -619,28 +619,28 @@ cdiGribIterator_copyVariableName(CdiIterator *super)
 }
 
 void
-cdiGribIterator_readField(CdiIterator *super, double *buffer, size_t *nmiss)
+cdiGribIterator_readField(CdiIterator *super, double *buffer, size_t *numMissVals)
 {
   CdiGribIterator *me = (CdiGribIterator *) (void *) super;
 
   GRIB_CHECK(my_grib_set_double(me->gribHandle, "missingValue", CDI_Default_Missval), 0);
   gribGetDoubleArray(me->gribHandle, "values", buffer);
   long gridType = gribGetLong(me->gribHandle, "gridDefinitionTemplateNumber");
-  if (nmiss)
+  if (numMissVals)
     {
       // The condition excludes harmonic data.
-      *nmiss = (gridType >= 50 && gridType <= 53) ? (size_t) 0 : (size_t) gribGetLong(me->gribHandle, "numberOfMissing");
+      *numMissVals = (gridType >= 50 && gridType <= 53) ? (size_t) 0 : (size_t) gribGetLong(me->gribHandle, "numberOfMissing");
     }
 }
 
 void
-cdiGribIterator_readFieldF(CdiIterator *super, float *buffer, size_t *nmiss)
+cdiGribIterator_readFieldF(CdiIterator *super, float *buffer, size_t *numMissVals)
 {
   CdiGribIterator *me = (CdiGribIterator *) (void *) super;
 
   size_t valueCount = gribGetArraySize(me->gribHandle, "values");
   double *temp = (double *) Malloc(valueCount * sizeof(*temp));
-  cdiGribIterator_readField(super, temp, nmiss);
+  cdiGribIterator_readField(super, temp, numMissVals);
   for (size_t i = valueCount; i--;) buffer[i] = (float) temp[i];
   Free(temp);
 }
diff --git a/src/iterator_grib.h b/src/iterator_grib.h
index a71617f962e29f7234d44417a5efb6f794cc8707..a524c8cd5bfa6070e55eaa2e33dca7f8d110f08a 100644
--- a/src/iterator_grib.h
+++ b/src/iterator_grib.h
@@ -39,8 +39,8 @@ int cdiGribIterator_inqTile(CdiIterator *me, int *outTileIndex, int *outTileAttr
 int cdiGribIterator_inqTileCount(CdiIterator *me, int *outTileCount, int *outTileAttributeCount);
 char *cdiGribIterator_copyVariableName(CdiIterator *me);
 
-void cdiGribIterator_readField(CdiIterator *me, double *buffer, size_t *nmiss);
-void cdiGribIterator_readFieldF(CdiIterator *me, float *buffer, size_t *nmiss);
+void cdiGribIterator_readField(CdiIterator *me, double *buffer, size_t *numMissVals);
+void cdiGribIterator_readFieldF(CdiIterator *me, float *buffer, size_t *numMissVals);
 
 #endif
 
diff --git a/src/pio_client.c b/src/pio_client.c
index e56f14b988fd579bfb47d68f963221d40d09a883..a312c53f6a54055be5faa39cdbbe1860d0348b2a 100644
--- a/src/pio_client.c
+++ b/src/pio_client.c
@@ -303,7 +303,7 @@ cdiPioStreamDefDecomposedVlist(int streamID, int vlistID, const Xt_idxlist partD
 }
 
 static void
-cdiPioClientStreamWriteVar_(int streamID, int varID, int memtype, const void *data, size_t nmiss)
+cdiPioClientStreamWriteVar_(int streamID, int varID, int memtype, const void *data, size_t numMissVals)
 {
   struct partDescPreset clientDeco = cdiPioGetStreamPartDescPreset(streamID);
   int vlistID = streamInqVlist(streamID);
@@ -316,7 +316,7 @@ cdiPioClientStreamWriteVar_(int streamID, int varID, int memtype, const void *da
     xabort("data type does not match pre-declared conversion for stream %d,"
            " variable ID %d!",
            streamID, varID);
-  cdiPioStreamWriteVarPart_(streamID, varID, memtype, data, nmiss, clientDeco.lists[varID]);
+  cdiPioStreamWriteVarPart_(streamID, varID, memtype, data, numMissVals, clientDeco.lists[varID]);
 }
 
 static struct cdiPioIdxlistCache *clientIdxlistCache;
@@ -324,7 +324,7 @@ static size_t neededClientIdxlistCacheSize;
 static struct idList seenStreamWriteVarChunk;
 
 static void
-cdiPioClientStreamWriteVarChunk_(int streamID, int varID, int memtype, const int rect[][2], const void *data, size_t nmiss)
+cdiPioClientStreamWriteVarChunk_(int streamID, int varID, int memtype, const int rect[][2], const void *data, size_t numMissVals)
 {
   if (memtype != MEMTYPE_DOUBLE && memtype != MEMTYPE_FLOAT) Error("Writing of type data %d not implemented!", memtype);
   int vlistID = streamInqVlist(streamID);
@@ -357,7 +357,7 @@ cdiPioClientStreamWriteVarChunk_(int streamID, int varID, int memtype, const int
                              const int sliceShape[])
       = (ndims == 3) ? cdiPioIdxlistCacheAddSection3D : cdiPioIdxlistCacheAddSection2D;
   Xt_idxlist chunkDesc = cacheSection(clientIdxlistCache, varShapeXt, origin, chunkShape);
-  cdiPioBufferPartData(streamID, varID, memtype, data, nmiss, chunkDesc);
+  cdiPioBufferPartData(streamID, varID, memtype, data, numMissVals, chunkDesc);
 }
 
 #if defined HAVE_LIBNETCDF
diff --git a/src/pio_interface.c b/src/pio_interface.c
index 96b28490c6a1db6d66fe35fe44e3853e8ef06086..fa1c6ab8eeca63f8ffe94c9d6286de3a176a3f0b 100644
--- a/src/pio_interface.c
+++ b/src/pio_interface.c
@@ -317,7 +317,7 @@ cdiPioRDMAProgress(void)
 }
 
 static void
-cdiPioBufferPartData_(int streamID, int varID, int memtype, const void *packData, valPackFunc packDataFunc, size_t nmiss,
+cdiPioBufferPartData_(int streamID, int varID, int memtype, const void *packData, valPackFunc packDataFunc, size_t numMissVals,
                       Xt_idxlist partDesc)
 {
   size_t streamIdx = indexOfID(&openStreams, streamID);
@@ -325,7 +325,7 @@ cdiPioBufferPartData_(int streamID, int varID, int memtype, const void *packData
   xassert(varID >= 0 && varID < streamInqNvars(streamID));
   collWaitAll();
   int dataHeaderID = memtype == MEMTYPE_DOUBLE ? DATA_HEADER_DOUBLE : DATA_HEADER_FLOAT;
-  struct winHeaderEntry dataHeader = { .id = dataHeaderID, .specific.dataRecord = { varID, nmiss }, .offset = -1 };
+  struct winHeaderEntry dataHeader = { .id = dataHeaderID, .specific.dataRecord = { varID, numMissVals }, .offset = -1 };
   modelWinEnqueue(streamIdx, dataHeader, packData, packDataFunc);
   {
     struct winHeaderEntry partHeader = { .id = PARTDESCMARKER, .offset = 0 };
@@ -343,11 +343,11 @@ memtype2ElemSize(int memtype)
 }
 
 void
-cdiPioBufferPartData(int streamID, int varID, int memtype, const void *data, size_t nmiss, Xt_idxlist partDesc)
+cdiPioBufferPartData(int streamID, int varID, int memtype, const void *data, size_t numMissVals, Xt_idxlist partDesc)
 {
   size_t chunk = (size_t) (xt_idxlist_get_num_indices(partDesc));
   size_t elemSize = memtype2ElemSize(memtype);
-  cdiPioBufferPartData_(streamID, varID, memtype, &(struct memCpyDataDesc){ data, chunk * elemSize }, memcpyPackFunc, nmiss,
+  cdiPioBufferPartData_(streamID, varID, memtype, &(struct memCpyDataDesc){ data, chunk * elemSize }, memcpyPackFunc, numMissVals,
                         partDesc);
 }
 
@@ -394,7 +394,7 @@ scatterGatherPackFunc(void *dataDesc, void *buf, int size, int *pos, void *conte
 
 void
 cdiPioBufferPartDataGather(int streamID, int varID, int memtype, const void *data, int numBlocks, const int blocklengths[],
-                           const int displacements[], size_t nmiss, Xt_idxlist partDesc)
+                           const int displacements[], size_t numMissVals, Xt_idxlist partDesc)
 {
   xassert(numBlocks >= 0);
   cdiPioBufferPartData_(streamID, varID, memtype,
@@ -404,7 +404,7 @@ cdiPioBufferPartDataGather(int streamID, int varID, int memtype, const void *dat
                                                      .elemSize = memtype2ElemSize(memtype),
                                                      .numBlocks = (unsigned) numBlocks,
                                                      .numElems = (unsigned) xt_idxlist_get_num_indices(partDesc) },
-                        scatterGatherPackFunc, nmiss, partDesc);
+                        scatterGatherPackFunc, numMissVals, partDesc);
 }
 
 /************************************************************************/
@@ -747,36 +747,36 @@ pioWriteTimestep(void)
 }
 
 void
-cdiPioStreamWriteVarPart_(int streamID, int varID, int memtype, const void *data, int nmiss, Xt_idxlist partDesc)
+cdiPioStreamWriteVarPart_(int streamID, int varID, int memtype, const void *data, int numMissVals, Xt_idxlist partDesc)
 {
   if (CDI_Debug) Message("streamID = %d varID = %d", streamID, varID);
 
   int chunk = xt_idxlist_get_num_indices(partDesc);
   xassert(chunk == 0 || data);
 
-  void (*myStreamWriteVarPart)(int streamID, int varID, int memtype, const void *data, int nmiss, Xt_idxlist partDesc)
+  void (*myStreamWriteVarPart)(int streamID, int varID, int memtype, const void *data, int numMissVals, Xt_idxlist partDesc)
       = (void (*)(int, int, int, const void *, int, Xt_idxlist)) namespaceSwitchGet(NSSWITCH_STREAM_WRITE_VAR_PART_).func;
 
   if (!myStreamWriteVarPart) xabort("local part writing is unsupported!");
 
-  myStreamWriteVarPart(streamID, varID, memtype, data, nmiss, partDesc);
+  myStreamWriteVarPart(streamID, varID, memtype, data, numMissVals, partDesc);
 }
 
 void
-streamWriteVarPart(int streamID, int varID, const double *data, int nmiss, Xt_idxlist partDesc)
+streamWriteVarPart(int streamID, int varID, const double *data, int numMissVals, Xt_idxlist partDesc)
 {
-  cdiPioStreamWriteVarPart_(streamID, varID, MEMTYPE_DOUBLE, data, nmiss, partDesc);
+  cdiPioStreamWriteVarPart_(streamID, varID, MEMTYPE_DOUBLE, data, numMissVals, partDesc);
 }
 
 void
-streamWriteVarPartF(int streamID, int varID, const float *data, int nmiss, Xt_idxlist partDesc)
+streamWriteVarPartF(int streamID, int varID, const float *data, int numMissVals, Xt_idxlist partDesc)
 {
-  cdiPioStreamWriteVarPart_(streamID, varID, MEMTYPE_FLOAT, data, nmiss, partDesc);
+  cdiPioStreamWriteVarPart_(streamID, varID, MEMTYPE_FLOAT, data, numMissVals, partDesc);
 }
 
 static void
 streamWriteScatteredVarPart_(int streamID, int varID, int memtype, const void *data, int numBlocks, const int blocklengths[],
-                             const int displacements[], int nmiss, Xt_idxlist partDesc)
+                             const int displacements[], int numMissVals, Xt_idxlist partDesc)
 {
   if (CDI_Debug) Message("streamID = %d varID = %d", streamID, varID);
 
@@ -784,28 +784,28 @@ streamWriteScatteredVarPart_(int streamID, int varID, int memtype, const void *d
   xassert(chunk == 0 || data);
 
   void (*myStreamWriteScatteredVarPart)(int streamID, int varID, int memtype, const void *data, int numBlocks,
-                                        const int blocklengths[], const int displacements[], int nmiss, Xt_idxlist partDesc)
+                                        const int blocklengths[], const int displacements[], int numMissVals, Xt_idxlist partDesc)
       = (void (*)(int, int, int, const void *, int, const int[], const int[], int, Xt_idxlist)) namespaceSwitchGet(
             NSSWITCH_STREAM_WRITE_SCATTERED_VAR_PART_)
             .func;
 
   if (!myStreamWriteScatteredVarPart) xabort("local part writing is unsupported!");
 
-  myStreamWriteScatteredVarPart(streamID, varID, memtype, data, numBlocks, blocklengths, displacements, nmiss, partDesc);
+  myStreamWriteScatteredVarPart(streamID, varID, memtype, data, numBlocks, blocklengths, displacements, numMissVals, partDesc);
 }
 
 void
 streamWriteScatteredVarPart(int streamID, int varID, const double *data, int numBlocks, const int blocklengths[],
-                            const int displacements[], int nmiss, Xt_idxlist partDesc)
+                            const int displacements[], int numMissVals, Xt_idxlist partDesc)
 {
-  streamWriteScatteredVarPart_(streamID, varID, MEMTYPE_DOUBLE, data, numBlocks, blocklengths, displacements, nmiss, partDesc);
+  streamWriteScatteredVarPart_(streamID, varID, MEMTYPE_DOUBLE, data, numBlocks, blocklengths, displacements, numMissVals, partDesc);
 }
 
 void
 streamWriteScatteredVarPartF(int streamID, int varID, const float *data, int numBlocks, const int blocklengths[],
-                             const int displacements[], int nmiss, Xt_idxlist partDesc)
+                             const int displacements[], int numMissVals, Xt_idxlist partDesc)
 {
-  streamWriteScatteredVarPart_(streamID, varID, MEMTYPE_FLOAT, data, numBlocks, blocklengths, displacements, nmiss, partDesc);
+  streamWriteScatteredVarPart_(streamID, varID, MEMTYPE_FLOAT, data, numBlocks, blocklengths, displacements, numMissVals, partDesc);
 }
 
 /*
diff --git a/src/pio_interface.h b/src/pio_interface.h
index 24c6b548e13ba11ce5058fc49a154114e1e8ad9f..354ad9187d962593a7068db0c99c4ae924713700 100644
--- a/src/pio_interface.h
+++ b/src/pio_interface.h
@@ -11,9 +11,9 @@
 #include "resource_handle.h"
 #include "pio_rpc.h"
 
-void cdiPioBufferPartData(int streamID, int varID, int memtype, const void *data, size_t nmiss, Xt_idxlist partDesc);
+void cdiPioBufferPartData(int streamID, int varID, int memtype, const void *data, size_t numMissVals, Xt_idxlist partDesc);
 void cdiPioBufferPartDataGather(int streamID, int varID, int memtype, const void *data, int numBlocks, const int blocklengths[],
-                                const int displacements[], size_t nmiss, Xt_idxlist partDesc);
+                                const int displacements[], size_t numMissVals, Xt_idxlist partDesc);
 
 void pioBufferFuncCall(int streamID, struct winHeaderEntry header, const void *data, valPackFunc dataPackFunc);
 
@@ -27,7 +27,7 @@ void memcpyPackFunc(void *dataDesc, void *buf, int size, int *pos, void *context
 
 extern float cdiPIOpartInflate_;
 
-void cdiPioStreamWriteVarPart_(int streamID, int varID, int memtype, const void *data, int nmiss, Xt_idxlist partDesc);
+void cdiPioStreamWriteVarPart_(int streamID, int varID, int memtype, const void *data, int numMissVals, Xt_idxlist partDesc);
 
 void cdiPioClientStreamWinInit(int streamID);
 void cdiPioClientStreamWinCreate(int streamID, struct collSpec *cspec);
diff --git a/src/pio_rpc.h b/src/pio_rpc.h
index bb6da5e59c929b4d2d7f84d111307c617842cf59..50dfcc7db889bf794cc1bd1b60439d9ed956cc0a 100644
--- a/src/pio_rpc.h
+++ b/src/pio_rpc.h
@@ -54,7 +54,7 @@ struct headerSize
 
 struct dataRecord
 {
-  int varID, nmiss;
+  int varID, numMissVals;
 };
 
 union funcArgs
diff --git a/src/pio_server.c b/src/pio_server.c
index c3888db345bc4c16c94a168dd3d6b6bbff11fa27..661723b5b7892766179609ed25b660c57137a2f0 100644
--- a/src/pio_server.c
+++ b/src/pio_server.c
@@ -797,35 +797,35 @@ buildVarSlicesIdxList(int vlistID, int varID, int startLvl, int numLvl, const st
 static inline size_t
 countMemMissingDouble(size_t n, const double *restrict data, double missVal)
 {
-  size_t nmiss = 0;
-  for (size_t i = 0; i < n; ++i) nmiss += (data[i] == missVal);
-  return nmiss;
+  size_t numMissVals = 0;
+  for (size_t i = 0; i < n; ++i) numMissVals += (data[i] == missVal);
+  return numMissVals;
 }
 
 static inline size_t
 countMemMissingFloat(size_t n, const float *restrict data, double missVal)
 {
-  size_t nmiss = 0;
+  size_t numMissVals = 0;
   float missValF = (float) missVal;
   if (missValF == missVal)
-    for (size_t i = 0; i < n; ++i) nmiss += (data[i] == missValF);
-  return nmiss;
+    for (size_t i = 0; i < n; ++i) numMissVals += (data[i] == missValF);
+  return numMissVals;
 }
 
 static size_t
 countVarChunkMissingVals(int vlistID, int varID, struct streamMapping *mapping, size_t chunkLen, int conversion,
                          const void *restrict data)
 {
-  size_t nmiss = 0;
+  size_t numMissVals = 0;
   if (mapping->hasMissing[varID])
     {
       double missVal = vlistInqVarMissval(vlistID, varID);
       if (conversion == DATA_HEADER_DOUBLE)
-        nmiss = countMemMissingDouble(chunkLen, data, missVal);
+        numMissVals = countMemMissingDouble(chunkLen, data, missVal);
       else
-        nmiss = countMemMissingFloat(chunkLen, data, missVal);
+        numMissVals = countMemMissingFloat(chunkLen, data, missVal);
     }
-  return nmiss;
+  return numMissVals;
 }
 
 static inline void
@@ -956,13 +956,13 @@ writeNetCDFStreamParallel(size_t streamIdx, struct streamMapping *mapping, void
 
         {
           /* count missing values if appropriate */
-          size_t nmiss
+          size_t numMissVals
               = countVarChunkMissingVals(vlistID, varID, mapping, (size_t) (PPM_extents_size(3, varChunk)), conversion, data);
           /* write chunk */
           if (conversion == DATA_HEADER_DOUBLE)
-            streamWriteVarChunk(streamID, varID, (const int(*)[2]) myChunk, data, (int) nmiss);
+            streamWriteVarChunk(streamID, varID, (const int(*)[2]) myChunk, data, (int) numMissVals);
           else
-            streamWriteVarChunkF(streamID, varID, (const int(*)[2]) myChunk, data, (int) nmiss);
+            streamWriteVarChunkF(streamID, varID, (const int(*)[2]) myChunk, data, (int) numMissVals);
         }
       }
 }
@@ -1090,11 +1090,11 @@ writeNetCDFStreamSerial(size_t streamIdx, struct streamMapping *mapping, void **
         if (!conf->cacheRedists) xt_redist_delete(gatherRedist);
         if (writerRank == collRank)
           {
-            size_t nmiss = countVarChunkMissingVals(vlistID, varID, mapping, varSize, conversion, data);
+            size_t numMissVals = countVarChunkMissingVals(vlistID, varID, mapping, varSize, conversion, data);
             if (conversion == DATA_HEADER_DOUBLE)
-              streamWriteVar(streamID, varID, data, (int) nmiss);
+              streamWriteVar(streamID, varID, data, (int) numMissVals);
             else
-              streamWriteVarF(streamID, varID, data, (int) nmiss);
+              streamWriteVarF(streamID, varID, data, (int) numMissVals);
           }
       }
 }
@@ -1164,7 +1164,7 @@ streamMappingNew(size_t streamIdx, const struct winHeaderEntry *winDict, const s
       /* FIXME: this could better be ensured on client */
       xassert(varID < numVars && varID >= 0 && varMap[varID] == 0);
       varMap[varID] = headerIdx;
-      hasMissing[varID] += winDict[headerIdx].specific.dataRecord.nmiss;
+      hasMissing[varID] += winDict[headerIdx].specific.dataRecord.numMissVals;
     }
   /* set numLvlsW[i] to 1 if varMap[i] != 0 on any collector,
    * also sets hasMissing_[i] to global reduction of hasMissing[i] */
@@ -1533,11 +1533,11 @@ writeGribStream(size_t streamIdx, struct streamMapping *mapping, void **data_, s
               int conversion = winDict[headerIdx].id;
               size_t elemSize = conversion == DATA_HEADER_FLOAT ? sizeof(float) : sizeof(double);
               size_t nvals = recordSize / elemSize;
-              size_t nmiss = countVarChunkMissingVals(vlistID, varID, mapping, nvals, conversion, data + recordDataOfs);
+              size_t numMissVals = countVarChunkMissingVals(vlistID, varID, mapping, nvals, conversion, data + recordDataOfs);
               if (conversion == DATA_HEADER_DOUBLE)
-                streamWriteVarSlice(streamID, varID, level, (const double *) (const void *) (data + recordDataOfs), (int) nmiss);
+                streamWriteVarSlice(streamID, varID, level, (const double *) (const void *) (data + recordDataOfs), (int) numMissVals);
               else
-                streamWriteVarSliceF(streamID, varID, level, (const float *) (const void *) (data + recordDataOfs), (int) nmiss);
+                streamWriteVarSliceF(streamID, varID, level, (const float *) (const void *) (data + recordDataOfs), (int) numMissVals);
               recordDataOfs += recordSize;
             }
           aggBufFlush(streamID, fileID, cdiPioFileWrite);
diff --git a/src/stream_cdf.h b/src/stream_cdf.h
index 088348664ac6e41182ce8b0571de008e1fe389e2..db783aa54e401921b3429cd2c97c54003501bb5c 100644
--- a/src/stream_cdf.h
+++ b/src/stream_cdf.h
@@ -36,16 +36,16 @@ void cdfCopyRecord(stream_t *streamptr2, stream_t *streamptr1);
 
 void cdfDefineAttributes(int filetype, int vlistID, int varID, int fileID, int ncvarID);
 
-void cdf_read_record(stream_t *streamptr, int memtype, void *data, size_t *nmiss);
-void cdf_write_record(stream_t *streamptr, int memtype, const void *data, size_t nmiss);
+void cdf_read_record(stream_t *streamptr, int memtype, void *data, size_t *numMissVals);
+void cdf_write_record(stream_t *streamptr, int memtype, const void *data, size_t numMissVals);
 
-void cdf_read_var(stream_t *streamptr, int varID, int memtype, void *data, size_t *nmiss);
-void cdf_write_var(stream_t *streamptr, int varID, int memtype, const void *data, size_t nmiss);
+void cdf_read_var(stream_t *streamptr, int varID, int memtype, void *data, size_t *numMissVals);
+void cdf_write_var(stream_t *streamptr, int varID, int memtype, const void *data, size_t numMissVals);
 
-void cdf_read_var_slice(stream_t *streamptr, int varID, int levelID, int memtype, void *data, size_t *nmiss);
-void cdf_write_var_slice(stream_t *streamptr, int varID, int levelID, int memtype, const void *data, size_t nmiss);
+void cdf_read_var_slice(stream_t *streamptr, int varID, int levelID, int memtype, void *data, size_t *numMissVals);
+void cdf_write_var_slice(stream_t *streamptr, int varID, int levelID, int memtype, const void *data, size_t numMissVals);
 
-void cdf_write_var_chunk(stream_t *streamptr, int varID, int memtype, const int rect[][2], const void *data, size_t nmiss);
+void cdf_write_var_chunk(stream_t *streamptr, int varID, int memtype, const int rect[][2], const void *data, size_t numMissVals);
 
 void cdfDefVarDeflate(int ncid, int ncvarid, int shuffle, int deflateLevel);
 void cdfDefTime(stream_t *streamptr);
diff --git a/src/stream_cdf_o.c b/src/stream_cdf_o.c
index 4b3e8af3d96c1f1d7f5633dc658030d59b47b656..cc6126fd8f20cf948bbd6291c6acd4bb614db982 100644
--- a/src/stream_cdf_o.c
+++ b/src/stream_cdf_o.c
@@ -32,9 +32,9 @@ cdfCopyRecord(stream_t *streamptr2, stream_t *streamptr1)
 
   void *data = Malloc(datasize * ((memtype == MEMTYPE_DOUBLE) ? sizeof(double) : sizeof(float)));
 
-  size_t nmiss;
-  cdf_read_record(streamptr1, memtype, data, &nmiss);
-  cdf_write_record(streamptr2, memtype, data, nmiss);
+  size_t numMissVals;
+  cdf_read_record(streamptr1, memtype, data, &numMissVals);
+  cdf_write_record(streamptr2, memtype, data, numMissVals);
 
   Free(data);
 }
diff --git a/src/stream_cgribex.c b/src/stream_cgribex.c
index 0d7439864c1c7f47c321e62911a1ddff3c59a283..41c5a87a4966dcb990cad73c5996fe82298ae8a0 100644
--- a/src/stream_cgribex.c
+++ b/src/stream_cgribex.c
@@ -1337,7 +1337,7 @@ cgribexScanTimestep(stream_t *streamptr)
 
 int
 cgribexDecode(int memtype, void *cgribex, void *gribbuffer, size_t gribsize, void *data, size_t datasize, int unreduced,
-              size_t *nmiss, double missval)
+              size_t *numMissVals, double missval)
 {
   int status = 0;
 
@@ -1367,14 +1367,14 @@ cgribexDecode(int memtype, void *cgribex, void *gribbuffer, size_t gribsize, voi
     gribExDP(isec0, isec1, isec2, fsec2, isec3, fsec3, isec4, (double *) data, (int) datasize, (int *) gribbuffer, (int) gribsize,
              &iword, hoper, &iret);
 
-  *nmiss = (ISEC1_Sec2Or3Flag & 64) ? ISEC4_NumValues - ISEC4_NumNonMissValues : 0;
+  *numMissVals = (ISEC1_Sec2Or3Flag & 64) ? ISEC4_NumValues - ISEC4_NumNonMissValues : 0;
 
   if (ISEC1_CenterID == 215 && (isec1[34] != 0 && isec1[34] != 255))
     {
       double undef_pds, undef_eps;
       MCH_get_undef(isec1, &undef_pds, &undef_eps);
 
-      *nmiss = 0;
+      *numMissVals = 0;
       if (memtype == MEMTYPE_FLOAT)
         {
           float *restrict dataf = (float *) data;
@@ -1382,7 +1382,7 @@ cgribexDecode(int memtype, void *cgribex, void *gribbuffer, size_t gribsize, voi
             if ((fabs(dataf[i] - undef_pds) < undef_eps) || IS_EQUAL(dataf[i], FSEC3_MissVal))
               {
                 dataf[i] = (float) missval;
-                (*nmiss)++;
+                (*numMissVals)++;
               }
         }
       else
@@ -1392,7 +1392,7 @@ cgribexDecode(int memtype, void *cgribex, void *gribbuffer, size_t gribsize, voi
             if ((fabs(datad[i] - undef_pds) < undef_eps) || IS_EQUAL(datad[i], FSEC3_MissVal))
               {
                 datad[i] = missval;
-                (*nmiss)++;
+                (*numMissVals)++;
               }
         }
     }
@@ -2060,7 +2060,7 @@ cgribexDefEnsembleVar(int *isec1, int vlistID, int varID)
 
 size_t
 cgribexEncode(int memtype, int varID, int levelID, int vlistID, int gridID, int zaxisID, CdiDateTime vDateTime, int tsteptype,
-              int numavg, size_t datasize, const void *data, size_t nmiss, void *gribbuffer, size_t gribbuffersize)
+              int numavg, size_t datasize, const void *data, size_t numMissVals, void *gribbuffer, size_t gribbuffersize)
 {
   cgribexrec_t *cgribexp = (cgribexrec_t *) cgribexNew();
 
@@ -2114,7 +2114,7 @@ cgribexEncode(int memtype, int varID, int levelID, int vlistID, int gridID, int
   ISEC4_NumValues = (int) datasize;
   ISEC4_NumBits = grbBitsPerValue(datatype);
 
-  if (nmiss > 0)
+  if (numMissVals > 0)
     {
       FSEC3_MissVal = vlistInqVarMissval(vlistID, varID);
       ISEC1_Sec2Or3Flag |= 64;
diff --git a/src/stream_cgribex.h b/src/stream_cgribex.h
index 89cc57d5dc9850bf6069f07d55425c1ca539c10a..60ed867ed10b33b6b09b3b077c5d4775b925526c 100644
--- a/src/stream_cgribex.h
+++ b/src/stream_cgribex.h
@@ -9,10 +9,10 @@ int cgribexScanTimestep2(stream_t *streamptr);
 int cgribexScanTimestep(stream_t *streamptr);
 
 int cgribexDecode(int memtype, void *cgribexp, void *gribbuffer, size_t gribsize, void *data, size_t datasize, int unreduced,
-                  size_t *nmiss, double missval);
+                  size_t *numMissVals, double missval);
 
 size_t cgribexEncode(int memtype, int varID, int levelID, int vlistID, int gridID, int zaxisID, CdiDateTime vDateTime,
-                     int tsteptype, int numavg, size_t datasize, const void *data, size_t nmiss, void *gribbuffer,
+                     int tsteptype, int numavg, size_t datasize, const void *data, size_t numMissVals, void *gribbuffer,
                      size_t gribbuffersize);
 
 void *cgribex_handle_new_from_meassage(void *gribbuffer, size_t recsize);
diff --git a/src/stream_ext.c b/src/stream_ext.c
index 9184f631adb5267ebc90a8cc86a5356e3530ee12..01f155c71f903f2c69b830bb74d4f9b62fdb7647 100644
--- a/src/stream_ext.c
+++ b/src/stream_ext.c
@@ -76,7 +76,7 @@ int extInqRecord(stream_t *streamptr, int *varID, int *levelID)
 */
 
 static void
-ext_read_recordSP(stream_t *streamptr, float *data, size_t *nmiss)
+ext_read_recordSP(stream_t *streamptr, float *data, size_t *numMissVals)
 {
   int vlistID = streamptr->vlistID;
   int fileID = streamptr->fileID;
@@ -100,15 +100,15 @@ ext_read_recordSP(stream_t *streamptr, float *data, size_t *nmiss)
   size_t size = gridInqSize(vlistInqVarGrid(vlistID, varID));
 
   if (vlistInqVarNumber(vlistID, varID) == CDI_REAL)
-    *nmiss = get_num_missvalsSP(size, data, missval);
+    *numMissVals = get_num_missvalsSP(size, data, missval);
   else
-    *nmiss = get_cplx_num_missvalsSP(size, data, missval);
+    *numMissVals = get_cplx_num_missvalsSP(size, data, missval);
 
   streamptr->numvals += size;
 }
 
 static void
-ext_read_recordDP(stream_t *streamptr, double *data, size_t *nmiss)
+ext_read_recordDP(stream_t *streamptr, double *data, size_t *numMissVals)
 {
   int vlistID = streamptr->vlistID;
   int fileID = streamptr->fileID;
@@ -132,20 +132,20 @@ ext_read_recordDP(stream_t *streamptr, double *data, size_t *nmiss)
   size_t size = gridInqSize(vlistInqVarGrid(vlistID, varID));
 
   if (vlistInqVarNumber(vlistID, varID) == CDI_REAL)
-    *nmiss = get_num_missvalsDP(size, data, missval);
+    *numMissVals = get_num_missvalsDP(size, data, missval);
   else
-    *nmiss = get_cplx_num_missvalsDP(size, data, missval);
+    *numMissVals = get_cplx_num_missvalsDP(size, data, missval);
 
   streamptr->numvals += size;
 }
 
 void
-ext_read_record(stream_t *streamptr, int memtype, void *data, size_t *nmiss)
+ext_read_record(stream_t *streamptr, int memtype, void *data, size_t *numMissVals)
 {
   if (memtype == MEMTYPE_DOUBLE)
-    ext_read_recordDP(streamptr, (double *) data, nmiss);
+    ext_read_recordDP(streamptr, (double *) data, numMissVals);
   else
-    ext_read_recordSP(streamptr, (float *) data, nmiss);
+    ext_read_recordSP(streamptr, (float *) data, numMissVals);
 }
 
 void
@@ -550,7 +550,7 @@ extInqTimestep(stream_t *streamptr, int tsID)
 }
 
 void
-extReadVarSliceDP(stream_t *streamptr, int varID, int levID, double *data, size_t *nmiss)
+extReadVarSliceDP(stream_t *streamptr, int varID, int levID, double *data, size_t *numMissVals)
 {
   if (CDI_Debug) Message("streamID = %d  varID = %d  levID = %d", streamptr->self, varID, levID);
 
@@ -576,13 +576,13 @@ extReadVarSliceDP(stream_t *streamptr, int varID, int levID, double *data, size_
   fileSetPos(fileID, currentfilepos, SEEK_SET);
 
   if (vlistInqVarNumber(vlistID, varID) == CDI_REAL)
-    *nmiss = get_num_missvalsDP(gridsize, data, missval);
+    *numMissVals = get_num_missvalsDP(gridsize, data, missval);
   else
-    *nmiss = get_cplx_num_missvalsDP(gridsize, data, missval);
+    *numMissVals = get_cplx_num_missvalsDP(gridsize, data, missval);
 }
 
 void
-extReadVarDP(stream_t *streamptr, int varID, double *data, size_t *nmiss)
+extReadVarDP(stream_t *streamptr, int varID, double *data, size_t *numMissVals)
 {
   if (CDI_Debug) Message("streamID = %d  varID = %d", streamptr->self, varID);
 
@@ -590,7 +590,7 @@ extReadVarDP(stream_t *streamptr, int varID, double *data, size_t *nmiss)
   size_t gridsize = gridInqSize(vlistInqVarGrid(vlistID, varID));
   size_t nlevs = (size_t) streamptr->vars[varID].recordTable[0].nlevs;
 
-  for (size_t levID = 0; levID < nlevs; levID++) extReadVarSliceDP(streamptr, varID, (int) levID, &data[levID * gridsize], nmiss);
+  for (size_t levID = 0; levID < nlevs; levID++) extReadVarSliceDP(streamptr, varID, (int) levID, &data[levID * gridsize], numMissVals);
 }
 
 void
diff --git a/src/stream_ext.h b/src/stream_ext.h
index 714e35c40f66ff01ce6041f49fdfa972c3713e86..3f6d3516066c1b0bf4c1c9bf9b5ed09fafd7d17d 100644
--- a/src/stream_ext.h
+++ b/src/stream_ext.h
@@ -11,13 +11,13 @@ int extInqTimestep(stream_t *streamptr, int tsID);
 int extInqRecord(stream_t *streamptr, int *varID, int *levelID);
 void extDefRecord(stream_t *streamptr);
 void extCopyRecord(stream_t *streamptr2, stream_t *streamptr1);
-void ext_read_record(stream_t *streamptr, int memtype, void *data, size_t *nmiss);
+void ext_read_record(stream_t *streamptr, int memtype, void *data, size_t *numMissVals);
 void ext_write_record(stream_t *streamptr, int memtype, const void *data);
 
-void extReadVarDP(stream_t *streamptr, int varID, double *data, size_t *nmiss);
+void extReadVarDP(stream_t *streamptr, int varID, double *data, size_t *numMissVals);
 void extWriteVarDP(stream_t *streamptr, int varID, const double *data);
 
-void extReadVarSliceDP(stream_t *streamptr, int varID, int levelID, double *data, size_t *nmiss);
+void extReadVarSliceDP(stream_t *streamptr, int varID, int levelID, double *data, size_t *numMissVals);
 void extWriteVarSliceDP(stream_t *streamptr, int varID, int levelID, const double *data);
 
 #endif /* _STREAM_EXT_H */
diff --git a/src/stream_grb.h b/src/stream_grb.h
index cb8797ab659dcf9658e122d8eeb9986f15b57d05..a007c9ca93721b2a6cb2039403413fbfb102acaf 100644
--- a/src/stream_grb.h
+++ b/src/stream_grb.h
@@ -33,15 +33,15 @@ int grbInqTimestep(stream_t *streamptr, int tsID);
 
 int grbInqRecord(stream_t *streamptr, int *varID, int *levelID);
 void grbDefRecord(stream_t *streamptr);
-void grb_read_record(stream_t *streamptr, int memtype, void *data, size_t *nmiss);
-void grb_write_record(stream_t *streamptr, int memtype, const void *data, size_t nmiss);
+void grb_read_record(stream_t *streamptr, int memtype, void *data, size_t *numMissVals);
+void grb_write_record(stream_t *streamptr, int memtype, const void *data, size_t numMissVals);
 void grbCopyRecord(stream_t *streamptr2, stream_t *streamptr1);
 
-void grb_read_var(stream_t *streamptr, int varID, int memtype, void *data, size_t *nmiss);
-void grb_write_var(stream_t *streamptr, int varID, int memtype, const void *data, size_t nmiss);
+void grb_read_var(stream_t *streamptr, int varID, int memtype, void *data, size_t *numMissVals);
+void grb_write_var(stream_t *streamptr, int varID, int memtype, const void *data, size_t numMissVals);
 
-void grb_read_var_slice(stream_t *streamptr, int varID, int levelID, int memtype, void *data, size_t *nmiss);
-void grb_write_var_slice(stream_t *streamptr, int varID, int levelID, int memtype, const void *data, size_t nmiss);
+void grb_read_var_slice(stream_t *streamptr, int varID, int levelID, int memtype, void *data, size_t *numMissVals);
+void grb_write_var_slice(stream_t *streamptr, int varID, int levelID, int memtype, const void *data, size_t numMissVals);
 
 int grib1ltypeToZaxisType(int grib_ltype);
 int grib2ltypeToZaxisType(int grib_ltype);
diff --git a/src/stream_gribapi.c b/src/stream_gribapi.c
index 0bbedbc534aca48d49efcf3a7b024a56be6dd3cd..484e8b000dd8466980eb9381c00d7c83f585d8c7 100644
--- a/src/stream_gribapi.c
+++ b/src/stream_gribapi.c
@@ -1760,7 +1760,7 @@ unpack_alternative_rows(grib_handle *gh, int memType, void *data)
 }
 
 int
-gribapiDecode(int memType, void *gribbuffer, size_t gribsize, void *data, size_t gridsize, int unreduced, size_t *nmiss,
+gribapiDecode(int memType, void *gribbuffer, size_t gribsize, void *data, size_t gridsize, int unreduced, size_t *numMissVals,
               double missval)
 {
   int status = 0;
@@ -1813,12 +1813,12 @@ gribapiDecode(int memType, void *gribbuffer, size_t gribsize, void *data, size_t
   GRIB_CHECK(grib_get_long(gh, "gridDefinitionTemplateNumber", &lpar), 0);
   int gridtype = (int) lpar;
 
-  *nmiss = 0;
+  *numMissVals = 0;
   if (gridtype < 50 || gridtype > 53)
     {
       GRIB_CHECK(grib_get_long(gh, "numberOfMissing", &lpar), 0);
-      *nmiss = (int) lpar;
-      // printf("gridtype %d, nmiss %d\n", gridtype, nmiss);
+      *numMissVals = (int) lpar;
+      // printf("gridtype %d, numMissVals %d\n", gridtype, numMissVals);
     }
 
   grib_handle_delete(gh);
@@ -3283,7 +3283,7 @@ gribapiSetExtMode(grib_handle *gh, int gridID, size_t datasize, const void *data
 
 size_t
 gribapiEncode(int memType, int varID, int levelID, int vlistID, int gridID, int zaxisID, CdiDateTime vDateTime, int tsteptype,
-              int numavg, size_t datasize, const void *data, size_t nmiss, void **gribbuffer, size_t *gribbuffersize, int comptype,
+              int numavg, size_t datasize, const void *data, size_t numMissVals, void **gribbuffer, size_t *gribbuffersize, int comptype,
               void *gribContainer)
 {
   long editionNumber = 2;
@@ -3452,7 +3452,7 @@ gribapiEncode(int memType, int varID, int levelID, int vlistID, int gridID, int
       }
   }
 
-  if (nmiss > 0)
+  if (numMissVals > 0)
     {
       GRIB_CHECK(my_grib_set_long(gh, "bitmapPresent", 1), 0);
       GRIB_CHECK(my_grib_set_double(gh, "missingValue", vlistInqVarMissval(vlistID, varID)), 0);
@@ -3473,7 +3473,7 @@ gribapiEncode(int memType, int varID, int levelID, int vlistID, int gridID, int
       GRIB_CHECK(grib_set_double_array(gh, "values", (const double *) data, datasize), 0);
     }
 
-  if (nmiss)
+  if (numMissVals)
     {
       long numberOfMissing = -1;
       GRIB_CHECK(grib_get_long(gh, "numberOfMissing", &numberOfMissing), 0);
diff --git a/src/stream_gribapi.h b/src/stream_gribapi.h
index 7e1300fee2e482f3e57ac4c3de806fdb47a06e42..130530e08b013a44c945357c8f85c314ef24aa31 100644
--- a/src/stream_gribapi.h
+++ b/src/stream_gribapi.h
@@ -11,11 +11,11 @@ int gribapiScanTimestep1(stream_t *streamptr);
 int gribapiScanTimestep2(stream_t *streamptr);
 int gribapiScanTimestep(stream_t *streamptr);
 
-int gribapiDecode(int memType, void *gribbuffer, size_t gribsize, void *data, size_t datasize, int unreduced, size_t *nmiss,
+int gribapiDecode(int memType, void *gribbuffer, size_t gribsize, void *data, size_t datasize, int unreduced, size_t *numMissVals,
                   double missval);
 
 size_t gribapiEncode(int memType, int varID, int levelID, int vlistID, int gridID, int zaxisID, CdiDateTime vDateTime,
-                     int tsteptype, int numavg, size_t datasize, const void *data, size_t nmiss, void **gribbuffer,
+                     int tsteptype, int numavg, size_t datasize, const void *data, size_t numMissVals, void **gribbuffer,
                      size_t *gribbuffersize, int ljpeg, void *gribContainer);
 
 int gribapiGetScanningMode(grib_handle *gh);
diff --git a/src/stream_ieg.c b/src/stream_ieg.c
index 537286cac728f8d3d2ede9973a6931ca79d22eb6..4aebd78755c586f3315239a1767dced8a6277627 100644
--- a/src/stream_ieg.c
+++ b/src/stream_ieg.c
@@ -36,7 +36,7 @@ iegDefDatatype(int datatype)
 }
 
 static void
-ieg_read_recordSP(stream_t *streamptr, float *data, size_t *nmiss)
+ieg_read_recordSP(stream_t *streamptr, float *data, size_t *numMissVals)
 {
   int vlistID = streamptr->vlistID;
   int fileID = streamptr->fileID;
@@ -57,13 +57,13 @@ ieg_read_recordSP(stream_t *streamptr, float *data, size_t *nmiss)
   double missval = vlistInqVarMissval(vlistID, varID);
   size_t size = gridInqSize(vlistInqVarGrid(vlistID, varID));
 
-  *nmiss = get_num_missvalsSP(size, data, missval);
+  *numMissVals = get_num_missvalsSP(size, data, missval);
 
   streamptr->numvals += size;
 }
 
 static void
-ieg_read_recordDP(stream_t *streamptr, double *data, size_t *nmiss)
+ieg_read_recordDP(stream_t *streamptr, double *data, size_t *numMissVals)
 {
   int vlistID = streamptr->vlistID;
   int fileID = streamptr->fileID;
@@ -84,18 +84,18 @@ ieg_read_recordDP(stream_t *streamptr, double *data, size_t *nmiss)
   double missval = vlistInqVarMissval(vlistID, varID);
   size_t size = gridInqSize(vlistInqVarGrid(vlistID, varID));
 
-  *nmiss = get_num_missvalsDP(size, data, missval);
+  *numMissVals = get_num_missvalsDP(size, data, missval);
 
   streamptr->numvals += size;
 }
 
 void
-ieg_read_record(stream_t *streamptr, int memtype, void *data, size_t *nmiss)
+ieg_read_record(stream_t *streamptr, int memtype, void *data, size_t *numMissVals)
 {
   if (memtype == MEMTYPE_DOUBLE)
-    ieg_read_recordDP(streamptr, (double *) data, nmiss);
+    ieg_read_recordDP(streamptr, (double *) data, numMissVals);
   else
-    ieg_read_recordSP(streamptr, (float *) data, nmiss);
+    ieg_read_recordSP(streamptr, (float *) data, numMissVals);
 }
 
 static int
@@ -1006,7 +1006,7 @@ iegInqTimestep(stream_t *streamptr, int tsID)
 }
 
 void
-iegReadVarSliceDP(stream_t *streamptr, int varID, int levID, double *data, size_t *nmiss)
+iegReadVarSliceDP(stream_t *streamptr, int varID, int levID, double *data, size_t *numMissVals)
 {
   if (CDI_Debug) Message("streamID = %d  varID = %d  levID = %d", streamptr->self, varID, levID);
 
@@ -1029,11 +1029,11 @@ iegReadVarSliceDP(stream_t *streamptr, int varID, int levID, double *data, size_
 
   fileSetPos(fileID, currentfilepos, SEEK_SET);
 
-  *nmiss = get_num_missvalsDP(gridsize, data, missval);
+  *numMissVals = get_num_missvalsDP(gridsize, data, missval);
 }
 
 void
-iegReadVarDP(stream_t *streamptr, int varID, double *data, size_t *nmiss)
+iegReadVarDP(stream_t *streamptr, int varID, double *data, size_t *numMissVals)
 {
   if (CDI_Debug) Message("streamID = %d  varID = %d", streamptr->self, varID);
 
@@ -1041,7 +1041,7 @@ iegReadVarDP(stream_t *streamptr, int varID, double *data, size_t *nmiss)
   size_t gridsize = gridInqSize(vlistInqVarGrid(vlistID, varID));
   size_t nlevs = (size_t) streamptr->vars[varID].recordTable[0].nlevs;
 
-  for (size_t levID = 0; levID < nlevs; levID++) iegReadVarSliceDP(streamptr, varID, (int) levID, &data[levID * gridsize], nmiss);
+  for (size_t levID = 0; levID < nlevs; levID++) iegReadVarSliceDP(streamptr, varID, (int) levID, &data[levID * gridsize], numMissVals);
 }
 
 void
diff --git a/src/stream_ieg.h b/src/stream_ieg.h
index 82a04ca3b4f02bb6db5ef6461ccd5b822e639b59..a099cdaf4b96dbb58248c015a23926a2685d5d80 100644
--- a/src/stream_ieg.h
+++ b/src/stream_ieg.h
@@ -11,13 +11,13 @@ int iegInqTimestep(stream_t *streamptr, int tsID);
 int iegInqRecord(stream_t *streamptr, int *varID, int *levelID);
 void iegDefRecord(stream_t *streamptr);
 void iegCopyRecord(stream_t *streamptr2, stream_t *streamptr1);
-void ieg_read_record(stream_t *streamptr, int memtype, void *data, size_t *nmiss);
+void ieg_read_record(stream_t *streamptr, int memtype, void *data, size_t *numMissVals);
 void ieg_write_record(stream_t *streamptr, int memtype, const void *data);
 
-void iegReadVarDP(stream_t *streamptr, int varID, double *data, size_t *nmiss);
+void iegReadVarDP(stream_t *streamptr, int varID, double *data, size_t *numMissVals);
 void iegWriteVarDP(stream_t *streamptr, int varID, const double *data);
 
-void iegReadVarSliceDP(stream_t *streamptr, int varID, int levelID, double *data, size_t *nmiss);
+void iegReadVarSliceDP(stream_t *streamptr, int varID, int levelID, double *data, size_t *numMissVals);
 void iegWriteVarSliceDP(stream_t *streamptr, int varID, int levelID, const double *data);
 
 #endif /* _STREAM_IEG_H */
diff --git a/src/stream_read.c b/src/stream_read.c
index 79f3397b751add674254ed651c9950ddceaa63d7..fedafb2ac7b488453fbfbf9319a5069acb4b346c 100644
--- a/src/stream_read.c
+++ b/src/stream_read.c
@@ -13,7 +13,7 @@
 
 // the single image implementation
 static int
-cdiStreamReadVar(int streamID, int varID, int memtype, void *data, size_t *nmiss)
+cdiStreamReadVar(int streamID, int varID, int memtype, void *data, size_t *numMissVals)
 {
   // May fail if memtype == MEMTYPE_FLOAT and the file format does not support single precision reading.
   // A value > 0 is returned in this case, otherwise it returns zero.
@@ -22,31 +22,31 @@ cdiStreamReadVar(int streamID, int varID, int memtype, void *data, size_t *nmiss
   if (CDI_Debug) Message("streamID = %d  varID = %d", streamID, varID);
 
   check_parg(data);
-  check_parg(nmiss);
+  check_parg(numMissVals);
 
   stream_t *streamptr = stream_to_pointer(streamID);
   const int filetype = streamptr->filetype;
 
-  *nmiss = 0;
+  *numMissVals = 0;
 
   if (memtype == MEMTYPE_FLOAT && cdiFiletypeIsExse(filetype)) return 1;
 
   switch (cdiBaseFiletype(filetype))
     {
 #ifdef HAVE_LIBGRIB
-    case CDI_FILETYPE_GRIB: grb_read_var(streamptr, varID, memtype, data, nmiss); break;
+    case CDI_FILETYPE_GRIB: grb_read_var(streamptr, varID, memtype, data, numMissVals); break;
 #endif
 #ifdef HAVE_LIBSERVICE
-    case CDI_FILETYPE_SRV: srvReadVarDP(streamptr, varID, (double *) data, nmiss); break;
+    case CDI_FILETYPE_SRV: srvReadVarDP(streamptr, varID, (double *) data, numMissVals); break;
 #endif
 #ifdef HAVE_LIBEXTRA
-    case CDI_FILETYPE_EXT: extReadVarDP(streamptr, varID, (double *) data, nmiss); break;
+    case CDI_FILETYPE_EXT: extReadVarDP(streamptr, varID, (double *) data, numMissVals); break;
 #endif
 #ifdef HAVE_LIBIEG
-    case CDI_FILETYPE_IEG: iegReadVarDP(streamptr, varID, (double *) data, nmiss); break;
+    case CDI_FILETYPE_IEG: iegReadVarDP(streamptr, varID, (double *) data, numMissVals); break;
 #endif
 #ifdef HAVE_LIBNETCDF
-    case CDI_FILETYPE_NETCDF: cdf_read_var(streamptr, varID, memtype, data, nmiss); break;
+    case CDI_FILETYPE_NETCDF: cdf_read_var(streamptr, varID, memtype, data, numMissVals); break;
 #endif
     default: Error("%s support not compiled in!", strfiletype(filetype));
     }
@@ -58,13 +58,13 @@ cdiStreamReadVar(int streamID, int varID, int memtype, void *data, size_t *nmiss
 @Function  streamReadVar
 @Title     Read a variable
 
-@Prototype void streamReadVar(int streamID, int varID, double *data, SizeType *nmiss)
+@Prototype void streamReadVar(int streamID, int varID, double *data, SizeType *numMissVals)
 @Parameter
     @Item  streamID  Stream ID, from a previous call to @fref{streamOpenRead}.
     @Item  varID     Variable identifier.
     @Item  data      Pointer to the location into which the data values are read.
                      The caller must allocate space for the returned values.
-    @Item  nmiss     Number of missing values.
+    @Item  numMissVals     Number of missing values.
 
 @Description
 The function streamReadVar reads all the values of one time step of a variable
@@ -72,24 +72,24 @@ from an open dataset.
 @EndFunction
 */
 void
-streamReadVar(int streamID, int varID, double *data, SizeType *nmiss)
+streamReadVar(int streamID, int varID, double *data, SizeType *numMissVals)
 {
   size_t numMiss = 0;
   cdiStreamReadVar(streamID, varID, MEMTYPE_DOUBLE, data, &numMiss);
-  *nmiss = (SizeType) numMiss;
+  *numMissVals = (SizeType) numMiss;
 }
 
 /*
 @Function  streamReadVarF
 @Title     Read a variable
 
-@Prototype void streamReadVar(int streamID, int varID, float *data, SizeType *nmiss)
+@Prototype void streamReadVar(int streamID, int varID, float *data, SizeType *numMissVals)
 @Parameter
     @Item  streamID  Stream ID, from a previous call to @fref{streamOpenRead}.
     @Item  varID     Variable identifier.
     @Item  data      Pointer to the location into which the data values are read.
                      The caller must allocate space for the returned values.
-    @Item  nmiss     Number of missing values.
+    @Item  numMissVals     Number of missing values.
 
 @Description
 The function streamReadVar reads all the values of one time step of a variable
@@ -97,7 +97,7 @@ from an open dataset.
 @EndFunction
 */
 void
-streamReadVarF(int streamID, int varID, float *data, SizeType *nmiss)
+streamReadVarF(int streamID, int varID, float *data, SizeType *numMissVals)
 {
   size_t numMiss = 0;
   if (cdiStreamReadVar(streamID, varID, MEMTYPE_FLOAT, data, &numMiss))
@@ -107,15 +107,15 @@ streamReadVarF(int streamID, int varID, float *data, SizeType *nmiss)
       size_t elementCount = gridInqSize(vlistInqVarGrid(streamInqVlist(streamID), varID));
       elementCount *= (size_t) zaxisInqSize(vlistInqVarZaxis(streamInqVlist(streamID), varID));
       double *conversionBuffer = (double *) Malloc(elementCount * sizeof(*conversionBuffer));
-      streamReadVar(streamID, varID, conversionBuffer, nmiss);
+      streamReadVar(streamID, varID, conversionBuffer, numMissVals);
       for (size_t i = elementCount; i--;) data[i] = (float) conversionBuffer[i];
       Free(conversionBuffer);
     }
-  *nmiss = (SizeType) numMiss;
+  *numMissVals = (SizeType) numMiss;
 }
 
 static int
-cdiStreamReadVarSlice(int streamID, int varID, int levelID, int memtype, void *data, size_t *nmiss)
+cdiStreamReadVarSlice(int streamID, int varID, int levelID, int memtype, void *data, size_t *numMissVals)
 {
   // May fail if memtype == MEMTYPE_FLOAT and the file format does not support single precision reading.
   // A value > 0 is returned in this case, otherwise it returns zero.
@@ -124,31 +124,31 @@ cdiStreamReadVarSlice(int streamID, int varID, int levelID, int memtype, void *d
   if (CDI_Debug) Message("streamID = %d  varID = %d", streamID, varID);
 
   check_parg(data);
-  check_parg(nmiss);
+  check_parg(numMissVals);
 
   stream_t *streamptr = stream_to_pointer(streamID);
   const int filetype = streamptr->filetype;
 
-  *nmiss = 0;
+  *numMissVals = 0;
 
   if (memtype == MEMTYPE_FLOAT && cdiFiletypeIsExse(filetype)) return 1;
 
   switch (cdiBaseFiletype(filetype))
     {
 #ifdef HAVE_LIBGRIB
-    case CDI_FILETYPE_GRIB: grb_read_var_slice(streamptr, varID, levelID, memtype, data, nmiss); break;
+    case CDI_FILETYPE_GRIB: grb_read_var_slice(streamptr, varID, levelID, memtype, data, numMissVals); break;
 #endif
 #ifdef HAVE_LIBSERVICE
-    case CDI_FILETYPE_SRV: srvReadVarSliceDP(streamptr, varID, levelID, (double *) data, nmiss); break;
+    case CDI_FILETYPE_SRV: srvReadVarSliceDP(streamptr, varID, levelID, (double *) data, numMissVals); break;
 #endif
 #ifdef HAVE_LIBEXTRA
-    case CDI_FILETYPE_EXT: extReadVarSliceDP(streamptr, varID, levelID, (double *) data, nmiss); break;
+    case CDI_FILETYPE_EXT: extReadVarSliceDP(streamptr, varID, levelID, (double *) data, numMissVals); break;
 #endif
 #ifdef HAVE_LIBIEG
-    case CDI_FILETYPE_IEG: iegReadVarSliceDP(streamptr, varID, levelID, (double *) data, nmiss); break;
+    case CDI_FILETYPE_IEG: iegReadVarSliceDP(streamptr, varID, levelID, (double *) data, numMissVals); break;
 #endif
 #ifdef HAVE_LIBNETCDF
-    case CDI_FILETYPE_NETCDF: cdf_read_var_slice(streamptr, varID, levelID, memtype, data, nmiss); break;
+    case CDI_FILETYPE_NETCDF: cdf_read_var_slice(streamptr, varID, levelID, memtype, data, numMissVals); break;
 #endif
     default: Error("%s support not compiled in!", strfiletype(filetype));
     }
@@ -160,14 +160,14 @@ cdiStreamReadVarSlice(int streamID, int varID, int levelID, int memtype, void *d
 @Function  streamReadVarSlice
 @Title     Read a horizontal slice of a variable
 
-@Prototype void streamReadVarSlice(int streamID, int varID, int levelID, double *data, SizeType *nmiss)
+@Prototype void streamReadVarSlice(int streamID, int varID, int levelID, double *data, SizeType *numMissVals)
 @Parameter
     @Item  streamID  Stream ID, from a previous call to @fref{streamOpenRead}.
     @Item  varID     Variable identifier.
     @Item  levelID   Level identifier.
     @Item  data      Pointer to the location into which the data values are read.
                      The caller must allocate space for the returned values.
-    @Item  nmiss     Number of missing values.
+    @Item  numMissVals     Number of missing values.
 
 @Description
 The function streamReadVarSlice reads all the values of a horizontal slice of a variable
@@ -175,7 +175,7 @@ from an open dataset.
 @EndFunction
 */
 void
-streamReadVarSlice(int streamID, int varID, int levelID, double *data, SizeType *nmiss)
+streamReadVarSlice(int streamID, int varID, int levelID, double *data, SizeType *numMissVals)
 {
   size_t numMiss = 0;
   if (cdiStreamReadVarSlice(streamID, varID, levelID, MEMTYPE_DOUBLE, data, &numMiss))
@@ -184,21 +184,21 @@ streamReadVarSlice(int streamID, int varID, int levelID, double *data, SizeType
       size_t elementCount = gridInqSize(vlistInqVarGrid(streamInqVlist(streamID), varID));
       memset(data, 0, elementCount * sizeof(*data));
     }
-  *nmiss = (SizeType) numMiss;
+  *numMissVals = (SizeType) numMiss;
 }
 
 /*
 @Function  streamReadVarSliceF
 @Title     Read a horizontal slice of a variable
 
-@Prototype void streamReadVarSliceF(int streamID, int varID, int levelID, float *data, SizeType *nmiss)
+@Prototype void streamReadVarSliceF(int streamID, int varID, int levelID, float *data, SizeType *numMissVals)
 @Parameter
     @Item  streamID  Stream ID, from a previous call to @fref{streamOpenRead}.
     @Item  varID     Variable identifier.
     @Item  levelID   Level identifier.
     @Item  data      Pointer to the location into which the data values are read.
                      The caller must allocate space for the returned values.
-    @Item  nmiss     Number of missing values.
+    @Item  numMissVals     Number of missing values.
 
 @Description
 The function streamReadVarSliceF reads all the values of a horizontal slice of a variable
@@ -206,7 +206,7 @@ from an open dataset.
 @EndFunction
 */
 void
-streamReadVarSliceF(int streamID, int varID, int levelID, float *data, SizeType *nmiss)
+streamReadVarSliceF(int streamID, int varID, int levelID, float *data, SizeType *numMissVals)
 {
   size_t numMiss = 0;
   if (cdiStreamReadVarSlice(streamID, varID, levelID, MEMTYPE_FLOAT, data, &numMiss))
@@ -215,41 +215,41 @@ streamReadVarSliceF(int streamID, int varID, int levelID, float *data, SizeType
       // we fall back to double precision reading, converting the data on the fly.
       size_t elementCount = gridInqSize(vlistInqVarGrid(streamInqVlist(streamID), varID));
       double *conversionBuffer = (double *) Malloc(elementCount * sizeof(*conversionBuffer));
-      streamReadVarSlice(streamID, varID, levelID, conversionBuffer, nmiss);
+      streamReadVarSlice(streamID, varID, levelID, conversionBuffer, numMissVals);
       for (size_t i = elementCount; i--;) data[i] = (float) conversionBuffer[i];
       Free(conversionBuffer);
     }
-  *nmiss = (SizeType) numMiss;
+  *numMissVals = (SizeType) numMiss;
 }
 
 static void
-stream_read_record(int streamID, int memtype, void *data, size_t *nmiss)
+stream_read_record(int streamID, int memtype, void *data, size_t *numMissVals)
 {
   check_parg(data);
-  check_parg(nmiss);
+  check_parg(numMissVals);
 
   stream_t *streamptr = stream_to_pointer(streamID);
 
   if (streamptr->lockIO) CDI_IO_LOCK();
 
-  *nmiss = 0;
+  *numMissVals = 0;
 
   switch (cdiBaseFiletype(streamptr->filetype))
     {
 #ifdef HAVE_LIBGRIB
-    case CDI_FILETYPE_GRIB: grb_read_record(streamptr, memtype, data, nmiss); break;
+    case CDI_FILETYPE_GRIB: grb_read_record(streamptr, memtype, data, numMissVals); break;
 #endif
 #ifdef HAVE_LIBSERVICE
-    case CDI_FILETYPE_SRV: srv_read_record(streamptr, memtype, data, nmiss); break;
+    case CDI_FILETYPE_SRV: srv_read_record(streamptr, memtype, data, numMissVals); break;
 #endif
 #ifdef HAVE_LIBEXTRA
-    case CDI_FILETYPE_EXT: ext_read_record(streamptr, memtype, data, nmiss); break;
+    case CDI_FILETYPE_EXT: ext_read_record(streamptr, memtype, data, numMissVals); break;
 #endif
 #ifdef HAVE_LIBIEG
-    case CDI_FILETYPE_IEG: ieg_read_record(streamptr, memtype, data, nmiss); break;
+    case CDI_FILETYPE_IEG: ieg_read_record(streamptr, memtype, data, numMissVals); break;
 #endif
 #ifdef HAVE_LIBNETCDF
-    case CDI_FILETYPE_NETCDF: cdf_read_record(streamptr, memtype, data, nmiss); break;
+    case CDI_FILETYPE_NETCDF: cdf_read_record(streamptr, memtype, data, numMissVals); break;
 #endif
     default: Error("%s support not compiled in!", strfiletype(streamptr->filetype));
     }
@@ -258,17 +258,17 @@ stream_read_record(int streamID, int memtype, void *data, size_t *nmiss)
 }
 
 void
-streamReadRecord(int streamID, double *data, SizeType *nmiss)
+streamReadRecord(int streamID, double *data, SizeType *numMissVals)
 {
   size_t numMiss = 0;
   stream_read_record(streamID, MEMTYPE_DOUBLE, (void *) data, &numMiss);
-  *nmiss = (SizeType) numMiss;
+  *numMissVals = (SizeType) numMiss;
 }
 
 void
-streamReadRecordF(int streamID, float *data, SizeType *nmiss)
+streamReadRecordF(int streamID, float *data, SizeType *numMissVals)
 {
   size_t numMiss = 0;
   stream_read_record(streamID, MEMTYPE_FLOAT, (void *) data, &numMiss);
-  *nmiss = (SizeType) numMiss;
+  *numMissVals = (SizeType) numMiss;
 }
diff --git a/src/stream_srv.c b/src/stream_srv.c
index 42298c2085268724e859d9871293bbd0fb224799..f743fe0f21f3b1cbfb64b65202cf55377c229582 100644
--- a/src/stream_srv.c
+++ b/src/stream_srv.c
@@ -72,7 +72,7 @@ int srvInqRecord(stream_t *streamptr, int *varID, int *levelID)
 */
 
 static void
-srv_read_recordSP(stream_t *streamptr, float *data, size_t *nmiss)
+srv_read_recordSP(stream_t *streamptr, float *data, size_t *numMissVals)
 {
   int vlistID = streamptr->vlistID;
   int fileID = streamptr->fileID;
@@ -95,13 +95,13 @@ srv_read_recordSP(stream_t *streamptr, float *data, size_t *nmiss)
   double missval = vlistInqVarMissval(vlistID, varID);
   size_t size = gridInqSize(vlistInqVarGrid(vlistID, varID));
 
-  *nmiss = get_num_missvalsSP(size, data, (float) missval);
+  *numMissVals = get_num_missvalsSP(size, data, (float) missval);
 
   streamptr->numvals += size;
 }
 
 static void
-srv_read_recordDP(stream_t *streamptr, double *data, size_t *nmiss)
+srv_read_recordDP(stream_t *streamptr, double *data, size_t *numMissVals)
 {
   int vlistID = streamptr->vlistID;
   int fileID = streamptr->fileID;
@@ -124,18 +124,18 @@ srv_read_recordDP(stream_t *streamptr, double *data, size_t *nmiss)
   double missval = vlistInqVarMissval(vlistID, varID);
   size_t size = gridInqSize(vlistInqVarGrid(vlistID, varID));
 
-  *nmiss = get_num_missvalsDP(size, data, missval);
+  *numMissVals = get_num_missvalsDP(size, data, missval);
 
   streamptr->numvals += size;
 }
 
 void
-srv_read_record(stream_t *streamptr, int memtype, void *data, size_t *nmiss)
+srv_read_record(stream_t *streamptr, int memtype, void *data, size_t *numMissVals)
 {
   if (memtype == MEMTYPE_DOUBLE)
-    srv_read_recordDP(streamptr, (double *) data, nmiss);
+    srv_read_recordDP(streamptr, (double *) data, numMissVals);
   else
-    srv_read_recordSP(streamptr, (float *) data, nmiss);
+    srv_read_recordSP(streamptr, (float *) data, numMissVals);
 }
 
 void
@@ -559,7 +559,7 @@ srvInqTimestep(stream_t *streamptr, int tsID)
 }
 
 void
-srvReadVarSliceDP(stream_t *streamptr, int varID, int levID, double *data, size_t *nmiss)
+srvReadVarSliceDP(stream_t *streamptr, int varID, int levID, double *data, size_t *numMissVals)
 {
   if (CDI_Debug) Message("streamID = %d  varID = %d  levID = %d", streamptr->self, varID, levID);
 
@@ -586,11 +586,11 @@ srvReadVarSliceDP(stream_t *streamptr, int varID, int levID, double *data, size_
   double missval = vlistInqVarMissval(vlistID, varID);
   size_t size = gridInqSize(vlistInqVarGrid(vlistID, varID));
 
-  *nmiss = get_num_missvalsDP(size, data, missval);
+  *numMissVals = get_num_missvalsDP(size, data, missval);
 }
 
 void
-srvReadVarDP(stream_t *streamptr, int varID, double *data, size_t *nmiss)
+srvReadVarDP(stream_t *streamptr, int varID, double *data, size_t *numMissVals)
 {
   if (CDI_Debug) Message("streamID = %d  varID = %d", streamptr->self, varID);
 
@@ -598,7 +598,7 @@ srvReadVarDP(stream_t *streamptr, int varID, double *data, size_t *nmiss)
   size_t gridsize = gridInqSize(vlistInqVarGrid(vlistID, varID));
   size_t nlevs = (size_t) streamptr->vars[varID].recordTable[0].nlevs;
 
-  for (size_t levID = 0; levID < nlevs; levID++) srvReadVarSliceDP(streamptr, varID, (int) levID, &data[levID * gridsize], nmiss);
+  for (size_t levID = 0; levID < nlevs; levID++) srvReadVarSliceDP(streamptr, varID, (int) levID, &data[levID * gridsize], numMissVals);
 }
 
 void
diff --git a/src/stream_srv.h b/src/stream_srv.h
index feac6841b9c7b32f0b77ed4ee74e4dabd55b07da..adeaf679200828310ac9245e697cac6e25f75b7b 100644
--- a/src/stream_srv.h
+++ b/src/stream_srv.h
@@ -11,13 +11,13 @@ int srvInqTimestep(stream_t *streamptr, int tsID);
 int srvInqRecord(stream_t *streamptr, int *varID, int *levelID);
 void srvDefRecord(stream_t *streamptr);
 void srvCopyRecord(stream_t *streamptr2, stream_t *streamptr1);
-void srv_read_record(stream_t *streamptr, int memtype, void *data, size_t *nmiss);
+void srv_read_record(stream_t *streamptr, int memtype, void *data, size_t *numMissVals);
 void srv_write_record(stream_t *streamptr, int memtype, const void *data);
 
-void srvReadVarDP(stream_t *streamptr, int varID, double *data, size_t *nmiss);
+void srvReadVarDP(stream_t *streamptr, int varID, double *data, size_t *numMissVals);
 void srvWriteVarDP(stream_t *streamptr, int varID, const double *data);
 
-void srvReadVarSliceDP(stream_t *streamptr, int varID, int levelID, double *data, size_t *nmiss);
+void srvReadVarSliceDP(stream_t *streamptr, int varID, int levelID, double *data, size_t *numMissVals);
 void srvWriteVarSliceDP(stream_t *streamptr, int varID, int levelID, const double *data);
 
 #endif /* _STREAM_SRV_H */
diff --git a/src/stream_write.c b/src/stream_write.c
index 44625ffed61d951214735f6c2105de414e256695..8297010f5646d7441aeb09e2d751a2edca37a8f0 100644
--- a/src/stream_write.c
+++ b/src/stream_write.c
@@ -14,7 +14,7 @@
 
 // the single image implementation
 int
-cdiStreamWriteVar_(int streamID, int varID, int memtype, const void *data, SizeType nmiss)
+cdiStreamWriteVar_(int streamID, int varID, int memtype, const void *data, SizeType numMissVals)
 {
   // May fail if memtype == MEMTYPE_FLOAT and the file format does not support single precision writing.
   // A value > 0 is returned in this case, otherwise it returns zero.
@@ -37,7 +37,7 @@ cdiStreamWriteVar_(int streamID, int varID, int memtype, const void *data, SizeT
   switch (cdiBaseFiletype(filetype))
     {
 #ifdef HAVE_LIBGRIB
-    case CDI_FILETYPE_GRIB: grb_write_var(streamptr, varID, memtype, data, nmiss); break;
+    case CDI_FILETYPE_GRIB: grb_write_var(streamptr, varID, memtype, data, numMissVals); break;
 #endif
 #ifdef HAVE_LIBSERVICE
     case CDI_FILETYPE_SRV: srvWriteVarDP(streamptr, varID, (double *) data); break;
@@ -49,7 +49,7 @@ cdiStreamWriteVar_(int streamID, int varID, int memtype, const void *data, SizeT
     case CDI_FILETYPE_IEG: iegWriteVarDP(streamptr, varID, (double *) data); break;
 #endif
 #ifdef HAVE_LIBNETCDF
-    case CDI_FILETYPE_NETCDF: cdf_write_var(streamptr, varID, memtype, data, nmiss); break;
+    case CDI_FILETYPE_NETCDF: cdf_write_var(streamptr, varID, memtype, data, numMissVals); break;
 #endif
     default: Error("%s support not compiled in!", strfiletype(filetype));
     }
@@ -61,12 +61,12 @@ cdiStreamWriteVar_(int streamID, int varID, int memtype, const void *data, SizeT
 @Function  streamWriteVar
 @Title     Write a variable
 
-@Prototype void streamWriteVar(int streamID, int varID, const double *data, SizeType nmiss)
+@Prototype void streamWriteVar(int streamID, int varID, const double *data, SizeType numMissVals)
 @Parameter
     @Item  streamID  Stream ID, from a previous call to @fref{streamOpenWrite}.
     @Item  varID     Variable identifier.
     @Item  data      Pointer to a block of double precision floating point data values to be written.
-    @Item  nmiss     Number of missing values.
+    @Item  numMissVals     Number of missing values.
 
 @Description
 The function streamWriteVar writes the values of one time step of a variable to an open dataset.
@@ -74,24 +74,24 @@ The values are converted to the external data type of the variable, if necessary
 @EndFunction
 */
 void
-streamWriteVar(int streamID, int varID, const double *data, SizeType nmiss)
+streamWriteVar(int streamID, int varID, const double *data, SizeType numMissVals)
 {
-  void (*myCdiStreamWriteVar_)(int streamID, int varID, int memtype, const void *data, SizeType nmiss)
+  void (*myCdiStreamWriteVar_)(int streamID, int varID, int memtype, const void *data, SizeType numMissVals)
       = (void (*)(int, int, int, const void *, SizeType)) namespaceSwitchGet(NSSWITCH_STREAM_WRITE_VAR_).func;
 
-  myCdiStreamWriteVar_(streamID, varID, MEMTYPE_DOUBLE, (const void *) data, nmiss);
+  myCdiStreamWriteVar_(streamID, varID, MEMTYPE_DOUBLE, (const void *) data, numMissVals);
 }
 
 /*
 @Function  streamWriteVarF
 @Title     Write a variable
 
-@Prototype void streamWriteVarF(int streamID, int varID, const float *data, SizeType nmiss)
+@Prototype void streamWriteVarF(int streamID, int varID, const float *data, SizeType numMissVals)
 @Parameter
     @Item  streamID  Stream ID, from a previous call to @fref{streamOpenWrite}.
     @Item  varID     Variable identifier.
     @Item  data      Pointer to a block of single precision floating point data values to be written.
-    @Item  nmiss     Number of missing values.
+    @Item  numMissVals     Number of missing values.
 
 @Description
 The function streamWriteVarF writes the values of one time step of a variable to an open dataset.
@@ -99,12 +99,12 @@ The values are converted to the external data type of the variable, if necessary
 @EndFunction
 */
 void
-streamWriteVarF(int streamID, int varID, const float *data, SizeType nmiss)
+streamWriteVarF(int streamID, int varID, const float *data, SizeType numMissVals)
 {
-  int (*myCdiStreamWriteVar_)(int streamID, int varID, int memtype, const void *data, SizeType nmiss)
+  int (*myCdiStreamWriteVar_)(int streamID, int varID, int memtype, const void *data, SizeType numMissVals)
       = (int (*)(int, int, int, const void *, SizeType)) namespaceSwitchGet(NSSWITCH_STREAM_WRITE_VAR_).func;
 
-  if (myCdiStreamWriteVar_(streamID, varID, MEMTYPE_FLOAT, (const void *) data, nmiss))
+  if (myCdiStreamWriteVar_(streamID, varID, MEMTYPE_FLOAT, (const void *) data, numMissVals))
     {
       // In case the file format does not support single precision writing,
       // we fall back to double precision writing, converting the data on the fly.
@@ -113,13 +113,13 @@ streamWriteVarF(int streamID, int varID, const float *data, SizeType nmiss)
       elementCount *= (SizeType) zaxisInqSize(vlistInqVarZaxis(vlistID, varID));
       double *conversionBuffer = (double *) Malloc(elementCount * sizeof(*conversionBuffer));
       for (SizeType i = elementCount; i--;) conversionBuffer[i] = (double) data[i];
-      myCdiStreamWriteVar_(streamID, varID, MEMTYPE_DOUBLE, (const void *) conversionBuffer, nmiss);
+      myCdiStreamWriteVar_(streamID, varID, MEMTYPE_DOUBLE, (const void *) conversionBuffer, numMissVals);
       Free(conversionBuffer);
     }
 }
 
 static int
-cdiStreamWriteVarSlice(int streamID, int varID, int levelID, int memtype, const void *data, SizeType nmiss)
+cdiStreamWriteVarSlice(int streamID, int varID, int levelID, int memtype, const void *data, SizeType numMissVals)
 {
   // May fail if memtype == MEMTYPE_FLOAT and the file format does not support single precision writing.
   // A value > 0 is returned in this case, otherwise it returns zero.
@@ -142,7 +142,7 @@ cdiStreamWriteVarSlice(int streamID, int varID, int levelID, int memtype, const
   switch (cdiBaseFiletype(filetype))
     {
 #ifdef HAVE_LIBGRIB
-    case CDI_FILETYPE_GRIB: grb_write_var_slice(streamptr, varID, levelID, memtype, data, nmiss); break;
+    case CDI_FILETYPE_GRIB: grb_write_var_slice(streamptr, varID, levelID, memtype, data, numMissVals); break;
 #endif
 #ifdef HAVE_LIBSERVICE
     case CDI_FILETYPE_SRV: srvWriteVarSliceDP(streamptr, varID, levelID, (double *) data); break;
@@ -154,7 +154,7 @@ cdiStreamWriteVarSlice(int streamID, int varID, int levelID, int memtype, const
     case CDI_FILETYPE_IEG: iegWriteVarSliceDP(streamptr, varID, levelID, (double *) data); break;
 #endif
 #ifdef HAVE_LIBNETCDF
-    case CDI_FILETYPE_NETCDF: cdf_write_var_slice(streamptr, varID, levelID, memtype, data, nmiss); break;
+    case CDI_FILETYPE_NETCDF: cdf_write_var_slice(streamptr, varID, levelID, memtype, data, numMissVals); break;
 #endif
     default: Error("%s support not compiled in!", strfiletype(filetype));
     }
@@ -166,13 +166,13 @@ cdiStreamWriteVarSlice(int streamID, int varID, int levelID, int memtype, const
 @Function  streamWriteVarSlice
 @Title     Write a horizontal slice of a variable
 
-@Prototype void streamWriteVarSlice(int streamID, int varID, int levelID, const double *data, SizeType nmiss)
+@Prototype void streamWriteVarSlice(int streamID, int varID, int levelID, const double *data, SizeType numMissVals)
 @Parameter
     @Item  streamID  Stream ID, from a previous call to @fref{streamOpenWrite}.
     @Item  varID     Variable identifier.
     @Item  levelID   Level identifier.
     @Item  data      Pointer to a block of double precision floating point data values to be written.
-    @Item  nmiss     Number of missing values.
+    @Item  numMissVals     Number of missing values.
 
 @Description
 The function streamWriteVarSlice writes the values of a horizontal slice of a variable to an open dataset.
@@ -180,22 +180,22 @@ The values are converted to the external data type of the variable, if necessary
 @EndFunction
 */
 void
-streamWriteVarSlice(int streamID, int varID, int levelID, const double *data, SizeType nmiss)
+streamWriteVarSlice(int streamID, int varID, int levelID, const double *data, SizeType numMissVals)
 {
-  cdiStreamWriteVarSlice(streamID, varID, levelID, MEMTYPE_DOUBLE, (const void *) data, nmiss);
+  cdiStreamWriteVarSlice(streamID, varID, levelID, MEMTYPE_DOUBLE, (const void *) data, numMissVals);
 }
 
 /*
 @Function  streamWriteVarSliceF
 @Title     Write a horizontal slice of a variable
 
-@Prototype void streamWriteVarSliceF(int streamID, int varID, int levelID, const float *data, SizeType nmiss)
+@Prototype void streamWriteVarSliceF(int streamID, int varID, int levelID, const float *data, SizeType numMissVals)
 @Parameter
     @Item  streamID  Stream ID, from a previous call to @fref{streamOpenWrite}.
     @Item  varID     Variable identifier.
     @Item  levelID   Level identifier.
     @Item  data      Pointer to a block of single precision floating point data values to be written.
-    @Item  nmiss     Number of missing values.
+    @Item  numMissVals     Number of missing values.
 
 @Description
 The function streamWriteVarSliceF writes the values of a horizontal slice of a variable to an open dataset.
@@ -203,41 +203,41 @@ The values are converted to the external data type of the variable, if necessary
 @EndFunction
 */
 void
-streamWriteVarSliceF(int streamID, int varID, int levelID, const float *data, SizeType nmiss)
+streamWriteVarSliceF(int streamID, int varID, int levelID, const float *data, SizeType numMissVals)
 {
-  if (cdiStreamWriteVarSlice(streamID, varID, levelID, MEMTYPE_FLOAT, (const void *) data, nmiss))
+  if (cdiStreamWriteVarSlice(streamID, varID, levelID, MEMTYPE_FLOAT, (const void *) data, numMissVals))
     {
       // In case the file format does not support single precision writing,
       // we fall back to double precision writing, converting the data on the fly.
       const SizeType elementCount = gridInqSize(vlistInqVarGrid(streamInqVlist(streamID), varID));
       double *conversionBuffer = (double *) Malloc(elementCount * sizeof(*conversionBuffer));
       for (SizeType i = elementCount; i--;) conversionBuffer[i] = (double) data[i];
-      streamWriteVarSlice(streamID, varID, levelID, conversionBuffer, nmiss);
+      streamWriteVarSlice(streamID, varID, levelID, conversionBuffer, numMissVals);
       Free(conversionBuffer);
     }
 }
 
 void
-streamWriteVarChunk(int streamID, int varID, const int rect[][2], const double *data, SizeType nmiss)
+streamWriteVarChunk(int streamID, int varID, const int rect[][2], const double *data, SizeType numMissVals)
 {
-  void (*myCdiStreamWriteVarChunk_)(int streamID, int varID, int memtype, const int rect[3][2], const void *data, SizeType nmiss)
+  void (*myCdiStreamWriteVarChunk_)(int streamID, int varID, int memtype, const int rect[3][2], const void *data, SizeType numMissVals)
       = (void (*)(int, int, int, const int[3][2], const void *, SizeType)) namespaceSwitchGet(NSSWITCH_STREAM_WRITE_VAR_CHUNK_)
             .func;
-  myCdiStreamWriteVarChunk_(streamID, varID, MEMTYPE_DOUBLE, rect, data, nmiss);
+  myCdiStreamWriteVarChunk_(streamID, varID, MEMTYPE_DOUBLE, rect, data, numMissVals);
 }
 
 void
-streamWriteVarChunkF(int streamID, int varID, const int rect[][2], const float *data, SizeType nmiss)
+streamWriteVarChunkF(int streamID, int varID, const int rect[][2], const float *data, SizeType numMissVals)
 {
-  void (*myCdiStreamWriteVarChunk_)(int streamID, int varID, int memtype, const int rect[3][2], const void *data, SizeType nmiss)
+  void (*myCdiStreamWriteVarChunk_)(int streamID, int varID, int memtype, const int rect[3][2], const void *data, SizeType numMissVals)
       = (void (*)(int, int, int, const int[3][2], const void *, SizeType)) namespaceSwitchGet(NSSWITCH_STREAM_WRITE_VAR_CHUNK_)
             .func;
-  myCdiStreamWriteVarChunk_(streamID, varID, MEMTYPE_FLOAT, rect, data, nmiss);
+  myCdiStreamWriteVarChunk_(streamID, varID, MEMTYPE_FLOAT, rect, data, numMissVals);
 }
 
 // single image implementation
 void
-cdiStreamWriteVarChunk_(int streamID, int varID, int memtype, const int rect[][2], const void *data, SizeType nmiss)
+cdiStreamWriteVarChunk_(int streamID, int varID, int memtype, const int rect[][2], const void *data, SizeType numMissVals)
 {
   if (CDI_Debug) Message("streamID = %d varID = %d", streamID, varID);
 
@@ -266,14 +266,14 @@ cdiStreamWriteVarChunk_(int streamID, int varID, int memtype, const int rect[][2
       break;
 #endif
 #ifdef HAVE_LIBNETCDF
-    case CDI_FILETYPE_NETCDF: cdf_write_var_chunk(streamptr, varID, memtype, rect, data, nmiss); break;
+    case CDI_FILETYPE_NETCDF: cdf_write_var_chunk(streamptr, varID, memtype, rect, data, numMissVals); break;
 #endif
     default: Error("%s support not compiled in!", strfiletype(filetype)); break;
     }
 }
 
 static void
-stream_write_record(int streamID, int memtype, const void *data, SizeType nmiss)
+stream_write_record(int streamID, int memtype, const void *data, SizeType numMissVals)
 {
   check_parg(data);
 
@@ -284,7 +284,7 @@ stream_write_record(int streamID, int memtype, const void *data, SizeType nmiss)
   switch (cdiBaseFiletype(streamptr->filetype))
     {
 #ifdef HAVE_LIBGRIB
-    case CDI_FILETYPE_GRIB: grb_write_record(streamptr, memtype, data, nmiss); break;
+    case CDI_FILETYPE_GRIB: grb_write_record(streamptr, memtype, data, numMissVals); break;
 #endif
 #ifdef HAVE_LIBSERVICE
     case CDI_FILETYPE_SRV: srv_write_record(streamptr, memtype, data); break;
@@ -296,7 +296,7 @@ stream_write_record(int streamID, int memtype, const void *data, SizeType nmiss)
     case CDI_FILETYPE_IEG: ieg_write_record(streamptr, memtype, data); break;
 #endif
 #ifdef HAVE_LIBNETCDF
-    case CDI_FILETYPE_NETCDF: cdf_write_record(streamptr, memtype, data, nmiss); break;
+    case CDI_FILETYPE_NETCDF: cdf_write_record(streamptr, memtype, data, numMissVals); break;
 #endif
     default: Error("%s support not compiled in!", strfiletype(streamptr->filetype));
     }
@@ -308,11 +308,11 @@ stream_write_record(int streamID, int memtype, const void *data, SizeType nmiss)
 @Function  streamWriteRecord
 @Title     Write a horizontal slice of a variable
 
-@Prototype void streamWriteRecord(int streamID, const double *data, SizeType nmiss)
+@Prototype void streamWriteRecord(int streamID, const double *data, SizeType numMissVals)
 @Parameter
     @Item  streamID  Stream ID, from a previous call to @fref{streamOpenWrite}.
     @Item  data      Pointer to a block of double precision floating point data values to be written.
-    @Item  nmiss     Number of missing values.
+    @Item  numMissVals     Number of missing values.
 
 @Description
 The function streamWriteRecord writes the values of a horizontal slice (record) of a variable to an open dataset.
@@ -320,13 +320,13 @@ The values are converted to the external data type of the variable, if necessary
 @EndFunction
 */
 void
-streamWriteRecord(int streamID, const double *data, SizeType nmiss)
+streamWriteRecord(int streamID, const double *data, SizeType numMissVals)
 {
-  stream_write_record(streamID, MEMTYPE_DOUBLE, (const void *) data, nmiss);
+  stream_write_record(streamID, MEMTYPE_DOUBLE, (const void *) data, numMissVals);
 }
 
 void
-streamWriteRecordF(int streamID, const float *data, SizeType nmiss)
+streamWriteRecordF(int streamID, const float *data, SizeType numMissVals)
 {
-  stream_write_record(streamID, MEMTYPE_FLOAT, (const void *) data, nmiss);
+  stream_write_record(streamID, MEMTYPE_FLOAT, (const void *) data, numMissVals);
 }