Index: /branches/eam_branches/ipp-20220316/Ohana/src/opihi/cmd.data/threshold.c
===================================================================
--- /branches/eam_branches/ipp-20220316/Ohana/src/opihi/cmd.data/threshold.c	(revision 42155)
+++ /branches/eam_branches/ipp-20220316/Ohana/src/opihi/cmd.data/threshold.c	(revision 42156)
@@ -95,10 +95,24 @@
     // this algorithm assumes vecy[BinMax] > threshold, vecy[BinMin] < threshold
     if (vecy[0].elements.Flt[BinMin] > value) {
-      gprint (GP_ERR, "ERROR: all values above threshold\n");
-      return FALSE;
+      if (!QUIET) gprint (GP_ERR, "ERROR: all values above threshold\n");
+      set_int_variable ("threshbin", BinMin);
+      set_variable ("threshval", vecy[0].elements.Flt[BinMin]);
+      set_variable ("threshold", vecx[0].elements.Flt[BinMin]);
+      set_int_variable ("thresherr", 1);
+      if (!QUIET) gprint (GP_LOG, "theshold %f (bin %d is %f)\n",
+			  vecx[0].elements.Flt[BinMin], BinMin,
+			  vecy[0].elements.Flt[BinMin]);
+      return TRUE;
     }
     if (vecy[0].elements.Flt[BinMax] < value) {
-      gprint (GP_ERR, "ERROR: all values below threshold\n");
-      return FALSE;
+      if (!QUIET) gprint (GP_ERR, "ERROR: all values below threshold\n");
+      set_int_variable ("threshbin", BinMax);
+      set_variable ("threshval", vecy[0].elements.Flt[BinMax]);
+      set_variable ("threshold", vecx[0].elements.Flt[BinMax]);
+      set_int_variable ("thresherr", 1);
+      if (!QUIET) gprint (GP_LOG, "theshold %f (bin %d is %f)\n",
+			  vecx[0].elements.Flt[BinMax], BinMax,
+			  vecy[0].elements.Flt[BinMax]);
+      return TRUE;
     }
     while (Nhi - Nlo > 10) {
@@ -122,10 +136,24 @@
     // this algorithm assumes vecy[BinMin] > threshold, vecy[BinMax] < threshold
     if (vecy[0].elements.Flt[BinMin] < value) {
-      gprint (GP_ERR, "ERROR: all values below threshold\n");
-      return FALSE;
+      if (!QUIET) gprint (GP_ERR, "ERROR: all values below threshold\n");
+      set_int_variable ("threshbin", BinMin);
+      set_variable ("threshval", vecy[0].elements.Flt[BinMin]);
+      set_variable ("threshold", vecx[0].elements.Flt[BinMin]);
+      set_int_variable ("thresherr", 1);
+      if (!QUIET) gprint (GP_LOG, "theshold %f (bin %d is %f)\n",
+			  vecx[0].elements.Flt[BinMin], BinMin,
+			  vecy[0].elements.Flt[BinMin]);
+      return TRUE;
     }
     if (vecy[0].elements.Flt[BinMax] > value) {
-      gprint (GP_ERR, "ERROR: all values above threshold\n");
-      return FALSE;
+      if (!QUIET) gprint (GP_ERR, "ERROR: all values above threshold\n");
+      set_int_variable ("threshbin", BinMax);
+      set_variable ("threshval", vecy[0].elements.Flt[BinMax]);
+      set_variable ("threshold", vecx[0].elements.Flt[BinMax]);
+      set_int_variable ("thresherr", 1);
+      if (!QUIET) gprint (GP_LOG, "theshold %f (bin %d is %f)\n",
+			  vecx[0].elements.Flt[BinMax], BinMax,
+			  vecy[0].elements.Flt[BinMax]);
+      return TRUE;
     }
     while (Nhi - Nlo > 10) {
@@ -175,6 +203,7 @@
 
   set_variable ("threshval", y1);
+  set_variable ("threshold", Xvalue);
   set_int_variable ("threshbin", Nhi);
-  set_variable ("threshold", Xvalue);
+  set_int_variable ("thresherr", 0);
 
   if (!QUIET) gprint (GP_LOG, "theshold %f (bin %d is %f)\n", Xvalue, Nhi, y1);
