Index: trunk/Ohana/src/opihi/cmd.data/accum.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/accum.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/accum.c	(revision 7917)
@@ -16,6 +16,6 @@
 
   if ((argc != 6) && (argc != 7)) {
-    fprintf (stderr, "USAGE: accum <value> <vector> <key> start end [delta]\n");
-    fprintf (stderr, "  sum <value> in bins corresponding to the value of <key>\n");
+    gprint (GP_ERR, "USAGE: accum <value> <vector> <key> start end [delta]\n");
+    gprint (GP_ERR, "  sum <value> in bins corresponding to the value of <key>\n");
     return (FALSE);
   }
@@ -24,5 +24,5 @@
   if ((key = SelectVector (argv[3], OLDVECTOR, TRUE)) == NULL) return (FALSE);
   if (val[0].Nelements != key[0].Nelements) {
-    fprintf (stderr, "key and value don't match\n");
+    gprint (GP_ERR, "key and value don't match\n");
     return (FALSE);
   }
@@ -36,5 +36,5 @@
     delta = 1;
   if ((start == end) || (delta == 0)) {
-    fprintf (stderr, "error in value: %f to %f, %f\n", start, end, delta);
+    gprint (GP_ERR, "error in value: %f to %f, %f\n", start, end, delta);
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/applyfit.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/applyfit.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/applyfit.c	(revision 7917)
@@ -12,5 +12,5 @@
 
   if (argc != 3) {
-    fprintf (stderr, "USAGE: applyfit x y\n");
+    gprint (GP_ERR, "USAGE: applyfit x y\n");
     return (FALSE);
   }
@@ -18,5 +18,5 @@
   c = get_variable ("Cn");
   if (c == (char *) NULL) {
-    fprintf (stderr, "no fit available\n");
+    gprint (GP_ERR, "no fit available\n");
     return (FALSE);
   }
@@ -31,5 +31,5 @@
     c = get_variable (name);
     if (c == (char *) NULL) {
-      fprintf (stderr, "missing fit term %d\n", i);
+      gprint (GP_ERR, "missing fit term %d\n", i);
       return (FALSE);
     }
Index: trunk/Ohana/src/opihi/cmd.data/applyfit2d.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/applyfit2d.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/applyfit2d.c	(revision 7917)
@@ -12,5 +12,5 @@
 
   if (argc != 4) {
-    fprintf (stderr, "USAGE: applyfit x y z\n");
+    gprint (GP_ERR, "USAGE: applyfit x y z\n");
     return (FALSE);
   }
@@ -18,5 +18,5 @@
   c = get_variable ("Cnn");
   if (c == (char *) NULL) {
-    fprintf (stderr, "no fit available\n");
+    gprint (GP_ERR, "no fit available\n");
     return (FALSE);
   }
@@ -34,5 +34,5 @@
       c = get_variable (name);
       if (c == (char *) NULL) {
-	fprintf (stderr, "missing fit term %d,%d\n", i, j);
+	gprint (GP_ERR, "missing fit term %d,%d\n", i, j);
 	return (FALSE);
       }
Index: trunk/Ohana/src/opihi/cmd.data/box.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/box.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/box.c	(revision 7917)
@@ -53,5 +53,5 @@
       
  usage:
-  fprintf (stderr, "USAGE: box [-ticks NNNN] [-axis NNNN] [-labels NNNN]\n");
+  gprint (GP_ERR, "USAGE: box [-ticks NNNN] [-axis NNNN] [-labels NNNN]\n");
   return (FALSE);
 }
Index: trunk/Ohana/src/opihi/cmd.data/center.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/center.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/center.c	(revision 7917)
@@ -16,5 +16,5 @@
 
   if ((argc != 3) && (argc != 4)) {
-    fprintf (stderr, "USAGE: center x y [zoom]\n");
+    gprint (GP_ERR, "USAGE: center x y [zoom]\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/clear.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/clear.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/clear.c	(revision 7917)
@@ -21,5 +21,5 @@
 
   if (argc != 1) {
-    fprintf (stderr, "USAGE: clear [-n Xgraph]\n");
+    gprint (GP_ERR, "USAGE: clear [-n Xgraph]\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/clip.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/clip.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/clip.c	(revision 7917)
@@ -27,5 +27,5 @@
 
   if ((argc != 6) && (!(DO_INF || DO_NAN))) {
-    fprintf (stderr, "USAGE: clip (buffer) [min Vmin max Vmax] [-inf val] [-nan val]\n");
+    gprint (GP_ERR, "USAGE: clip (buffer) [min Vmin max Vmax] [-inf val] [-nan val]\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/concat.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/concat.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/concat.c	(revision 7917)
@@ -10,6 +10,6 @@
   /** check basic syntax **/
   if (argc != 3) {
-    fprintf (stderr, "SYNTAX: concat (vector/value) vector\n");
-    fprintf (stderr, "  concatanate (vector/value) to vector\n");
+    gprint (GP_ERR, "SYNTAX: concat (vector/value) vector\n");
+    gprint (GP_ERR, "  concatanate (vector/value) to vector\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/contour.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/contour.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/contour.c	(revision 7917)
@@ -71,5 +71,5 @@
   
   if (argc != 5) {
-    fprintf (stderr, "USAGE: contour <buffer> X Y level\n");
+    gprint (GP_ERR, "USAGE: contour <buffer> X Y level\n");
     return (FALSE);
   }
@@ -97,5 +97,5 @@
 
   for (j = 1; j < Ny; j++) {
-    if (!(j%10)) fprintf (stderr, ".");
+    if (!(j%10)) gprint (GP_ERR, ".");
     for (i = 1; i < Nx; i++, v00++, v01++, v10++, v11++) {
 
Index: trunk/Ohana/src/opihi/cmd.data/create.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/create.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/create.c	(revision 7917)
@@ -15,5 +15,5 @@
   
   if ((argc != 5) && (argc != 4)) {
-    fprintf (stderr, "USAGE: create vector start end [delta]\n");
+    gprint (GP_ERR, "USAGE: create vector start end [delta]\n");
     return (FALSE);
   }
@@ -26,5 +26,5 @@
   if (argc == 5) delta = atof (argv[4]);
   if ((start == end) || (delta == 0)) {
-    fprintf (stderr, "error in value: %f to %f, %f\n", start, end, delta);
+    gprint (GP_ERR, "error in value: %f to %f, %f\n", start, end, delta);
     return (FALSE);
   }
@@ -50,5 +50,5 @@
 
   if (argc != 4) {
-    fprintf (stderr, "USAGE: create -image buffer Nx Ny\n");
+    gprint (GP_ERR, "USAGE: create -image buffer Nx Ny\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/cursor.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/cursor.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/cursor.c	(revision 7917)
@@ -35,5 +35,5 @@
 
   if ((argc != 1) && (argc != 2)) {
-    fprintf (stderr, "USAGE: cursor [Npts] [-n window] [-g | -i]\n");
+    gprint (GP_ERR, "USAGE: cursor [Npts] [-n window] [-g | -i]\n");
     return (FALSE);
   }
@@ -60,5 +60,5 @@
 	Z = gfits_get_matrix_value (&buf[0].matrix, (int) X, (int) Y);
       }
-      fprintf (GetOutfile(), "%s %f %f  %f\n", key, X, Y, Z);
+      gprint (GP_LOG, "%s %f %f  %f\n", key, X, Y, Z);
     } else {
       XY_to_RD (&R, &D, X, Y, &graphmode.coords);
@@ -67,5 +67,5 @@
       sprintf (string, "D%s", key);
       set_variable (string, D);
-      fprintf (GetOutfile(), "%s %f %f\n", key, X, Y);
+      gprint (GP_LOG, "%s %f %f\n", key, X, Y);
     }
     if (!strcasecmp (key, "Q")) break;
Index: trunk/Ohana/src/opihi/cmd.data/cut.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/cut.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/cut.c	(revision 7917)
@@ -22,5 +22,5 @@
 
   if (argc != 9) {
-    fprintf (stderr, "USAGE: cut <buffer> <X vector> <Y vector> <X|Y> sx sy nx ny\n");
+    gprint (GP_ERR, "USAGE: cut <buffer> <X vector> <Y vector> <X|Y> sx sy nx ny\n");
     return (FALSE);
   }
@@ -37,5 +37,5 @@
 
   if ((sx < 0) || (sy < 0) || (sx+nx > Nx) || (sy+ny > Ny)) {
-    fprintf (stderr, "region out of range\n");
+    gprint (GP_ERR, "region out of range\n");
     return (FALSE);
   }
@@ -111,5 +111,5 @@
 
   default:
-    fprintf (stderr, "<dir> can be X or Y\n");
+    gprint (GP_ERR, "<dir> can be X or Y\n");
     return (FALSE);
     break;
Index: trunk/Ohana/src/opihi/cmd.data/delete.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/delete.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/delete.c	(revision 7917)
@@ -16,5 +16,5 @@
 
   if (argc < 2) {
-    fprintf (stderr, "USAGE: delete <obiect> [<object> ..]\n");
+    gprint (GP_ERR, "USAGE: delete <obiect> [<object> ..]\n");
     return (FALSE);
   }
@@ -24,5 +24,5 @@
     if (DeleteNamedVector (argv[i])) continue;
     if (DeleteNamedScalar (argv[i])) continue; 
-    if (!Quiet) fprintf (stderr, "can't find object %s\n", argv[i]);
+    if (!Quiet) gprint (GP_ERR, "can't find object %s\n", argv[i]);
   }
 
Index: trunk/Ohana/src/opihi/cmd.data/device.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/device.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/device.c	(revision 7917)
@@ -24,8 +24,8 @@
   if (IsImage) {
     if (!GetImage (&Source, &Nsource)) return (FALSE);
-    fprintf (stderr, "kii %d\n", Nsource); 
+    gprint (GP_ERR, "kii %d\n", Nsource); 
   } else {
     if (!GetGraph (NULL, &Source, &Nsource)) return (FALSE);
-    fprintf (stderr, "kapa %d\n", Nsource); 
+    gprint (GP_ERR, "kapa %d\n", Nsource); 
   }
 
Index: trunk/Ohana/src/opihi/cmd.data/dimendown.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/dimendown.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/dimendown.c	(revision 7917)
@@ -58,7 +58,7 @@
 
  usage:
-    fprintf (stderr, "USAGE: dimendown <buffer> <vector>\n");
-    fprintf (stderr, "  -x : fill vector with buffer x-coords\n");
-    fprintf (stderr, "  -y : fill vector with buffer y-coords\n");
+    gprint (GP_ERR, "USAGE: dimendown <buffer> <vector>\n");
+    gprint (GP_ERR, "  -x : fill vector with buffer x-coords\n");
+    gprint (GP_ERR, "  -y : fill vector with buffer y-coords\n");
     return (FALSE);
 }
Index: trunk/Ohana/src/opihi/cmd.data/dimenup.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/dimenup.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/dimenup.c	(revision 7917)
@@ -9,5 +9,5 @@
 
   if (argc != 5) {
-    fprintf (stderr, "USAGE: dimenup <vector> <buffer> Nx Ny\n");
+    gprint (GP_ERR, "USAGE: dimenup <vector> <buffer> Nx Ny\n");
     return (FALSE);
   }
@@ -20,5 +20,5 @@
   Ny = atof (argv[4]);
   if (Npix != Nx * Ny) {
-    fprintf (stderr, "dimensions don't match\n");
+    gprint (GP_ERR, "dimensions don't match\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/dot.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/dot.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/dot.c	(revision 7917)
@@ -9,5 +9,5 @@
 
   if (argc != 3) {
-    fprintf (stderr, "USAGE: plot <x> <y>\n");
+    gprint (GP_ERR, "USAGE: plot <x> <y>\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/erase.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/erase.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/erase.c	(revision 7917)
@@ -15,6 +15,6 @@
 
   if (argc < 2) {
-    fprintf (stderr, "USAGE: erase (overlay) [overlay, overlay, ..] \n");
-    fprintf (stderr, " (overlay) may be: red (0), green (1), blue (2), yellow (3) or all\n");
+    gprint (GP_ERR, "USAGE: erase (overlay) [overlay, overlay, ..] \n");
+    gprint (GP_ERR, " (overlay) may be: red (0), green (1), blue (2), yellow (3) or all\n");
     return (FALSE);
   }
@@ -29,5 +29,5 @@
     }
     if (!KiiSelectOverlay (argv[i], &N)) {
-      fprintf (stderr, "%s is not a valid overlay\n", argv[i]);
+      gprint (GP_ERR, "%s is not a valid overlay\n", argv[i]);
       return (FALSE);
     }
Index: trunk/Ohana/src/opihi/cmd.data/extract.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/extract.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/extract.c	(revision 7917)
@@ -10,5 +10,5 @@
 
   if (argc != 11) {
-    fprintf (stderr, "USAGE: extract <from> <to> sx sy nx ny Sx Sy Nx Ny\n");
+    gprint (GP_ERR, "USAGE: extract <from> <to> sx sy nx ny Sx Sy Nx Ny\n");
     return (FALSE);
   }
@@ -29,6 +29,6 @@
 
   if ((Sy + ny > Ny) || (Sx + nx > Nx)) {
-    fprintf (stderr, "mismatch between source and dest regions\n");
-    fprintf (stderr, "%d + %d > %d or %d + %d > %d\n", Sy, ny, Ny, Sx, nx, Nx);
+    gprint (GP_ERR, "mismatch between source and dest regions\n");
+    gprint (GP_ERR, "%d + %d > %d or %d + %d > %d\n", Sy, ny, Ny, Sx, nx, Nx);
     return (FALSE);
   }
@@ -38,14 +38,14 @@
       (sx > in[0].matrix.Naxis[0]) || 
       (sy > in[0].matrix.Naxis[1])) {
-    fprintf (stderr, "region outside of source image\n");
+    gprint (GP_ERR, "region outside of source image\n");
     return (FALSE);
   }
 
   if ((Sx + nx > Nx) || (Sy + ny > Ny)) {
-    fprintf (stderr, "source region larger than dest region\n");
+    gprint (GP_ERR, "source region larger than dest region\n");
     return (FALSE);
   }
   if ((Sx < 0) || (Sy < 0)) {
-    fprintf (stderr, "dest region out of range\n");
+    gprint (GP_ERR, "dest region out of range\n");
     return (FALSE);
   }
@@ -68,6 +68,6 @@
   } else {
     if ((out[0].header.Naxis[1] != Ny) || (out[0].header.Naxis[0] != Nx)) {
-      fprintf (stderr, "matrix sizes mis-matched\n");
-      fprintf (stderr, "%d x %d  vs  %d x %d\n", Nx, Ny, 
+      gprint (GP_ERR, "matrix sizes mis-matched\n");
+      gprint (GP_ERR, "%d x %d  vs  %d x %d\n", Nx, Ny, 
 	       out[0].header.Naxis[0], out[0].header.Naxis[1]);
       return (FALSE);
Index: trunk/Ohana/src/opihi/cmd.data/fft1d.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/fft1d.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/fft1d.c	(revision 7917)
@@ -8,5 +8,5 @@
 
   if ((argc != 6) || (strcmp (argv[3], "to"))) {
-    fprintf (stderr, "USAGE: fft1d (real) (imag) to (real) (imag)\n");
+    gprint (GP_ERR, "USAGE: fft1d (real) (imag) to (real) (imag)\n");
     return (FALSE);
   }
@@ -24,10 +24,10 @@
   Npix = Ire[0].Nelements;
   if (!ZeroImaginary && (Npix != Iim[0].Nelements)) {
-    fprintf (stderr, "vector mismatch in size\n");
+    gprint (GP_ERR, "vector mismatch in size\n");
     return (FALSE);
   }
 
   if (!IsBinary (Npix)) {
-    fprintf (stderr, "Npix is not a binary number!\n");
+    gprint (GP_ERR, "Npix is not a binary number!\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/fft2d.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/fft2d.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/fft2d.c	(revision 7917)
@@ -15,5 +15,5 @@
 
   if ((argc != 6) || (strcmp (argv[3], "to"))) {
-    fprintf (stderr, "USAGE: fft2d (real) (imag) to (real) (imag)\n");
+    gprint (GP_ERR, "USAGE: fft2d (real) (imag) to (real) (imag)\n");
     return (FALSE);
   }
@@ -43,5 +43,5 @@
   Naxis[0] = Ny; Naxis[1] = Nx;
   if (!IsBinary (Npix)) {
-    fprintf (stderr, "dimensions are not binary!\n");
+    gprint (GP_ERR, "dimensions are not binary!\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/fit.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/fit.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/fit.c	(revision 7917)
@@ -42,5 +42,5 @@
 
   if (argc != 4) {
-    fprintf (stderr, "USAGE: fit x y order [-dy wt] [-quiet/-q] [-clip Nsigma Niter]\n");
+    gprint (GP_ERR, "USAGE: fit x y order [-dy wt] [-quiet/-q] [-clip Nsigma Niter]\n");
     return (FALSE);
   }
@@ -50,9 +50,9 @@
 
   if (xvec[0].Nelements != yvec[0].Nelements) {
-    fprintf (stderr, "vectors must have same length\n");
+    gprint (GP_ERR, "vectors must have same length\n");
     return (FALSE);
   }
   if (Weight && xvec[0].Nelements != dyvec[0].Nelements) {
-    fprintf (stderr, "vectors must have same length\n");
+    gprint (GP_ERR, "vectors must have same length\n");
     return (FALSE);
   }
@@ -166,9 +166,9 @@
       
   /* print & save basic fit parameters */
-  if (!Quiet) fprintf (stderr, "y = ");
+  if (!Quiet) gprint (GP_ERR, "y = ");
   for (i = 0; i < nterm; i++) {
     sprintf (name, "C%d", i);
     set_variable (name, b[i][0]);
-    if (!Quiet) fprintf (stderr, "%f x^%d ", b[i][0], i);
+    if (!Quiet) gprint (GP_ERR, "%f x^%d ", b[i][0], i);
   }
   sprintf (name, "Cn");
@@ -176,12 +176,12 @@
   
   /* print & save basic fit parameters */
-  if (!Quiet) fprintf (stderr, "\n");
-  if (!Quiet) fprintf (stderr, "    ");
+  if (!Quiet) gprint (GP_ERR, "\n");
+  if (!Quiet) gprint (GP_ERR, "    ");
   for (i = 0; i < nterm; i++) {
     sprintf (name, "dC%d", i);
     set_variable (name, sqrt(c[i][i]));
-    if (!Quiet) fprintf (stderr, "%f     ", sqrt(c[i][i]));
-  }
-  if (!Quiet) fprintf (stderr, "\n");
+    if (!Quiet) gprint (GP_ERR, "%f     ", sqrt(c[i][i]));
+  }
+  if (!Quiet) gprint (GP_ERR, "\n");
 
   set_variable ("dC", sigma);
Index: trunk/Ohana/src/opihi/cmd.data/fit2d.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/fit2d.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/fit2d.c	(revision 7917)
@@ -48,5 +48,5 @@
 
   if (argc != 5) {
-    fprintf (stderr, "USAGE: fit x y z order [-dz wt]\n");
+    gprint (GP_ERR, "USAGE: fit x y z order [-dz wt]\n");
     return (FALSE);
   }
@@ -57,13 +57,13 @@
 
   if (xvec[0].Nelements != yvec[0].Nelements) {
-    fprintf (stderr, "vectors must have same length\n");
+    gprint (GP_ERR, "vectors must have same length\n");
     return (FALSE);
   }
   if (xvec[0].Nelements != zvec[0].Nelements) {
-    fprintf (stderr, "vectors must have same length\n");
+    gprint (GP_ERR, "vectors must have same length\n");
     return (FALSE);
   }
   if (Weight && xvec[0].Nelements != dzvec[0].Nelements) {
-    fprintf (stderr, "vectors must have same length\n");
+    gprint (GP_ERR, "vectors must have same length\n");
     return (FALSE);
   }
@@ -160,20 +160,20 @@
     }
 
-    fprintf (stderr, "matrix:\n");
+    gprint (GP_ERR, "matrix:\n");
     for (k = 0; k < wterm; k++) {
 	for (K = 0; K < wterm; K++) {
-	    fprintf (stderr, "%f ", c[k][K]);
-	}
-	fprintf (stderr, "\n");
+	    gprint (GP_ERR, "%f ", c[k][K]);
+	}
+	gprint (GP_ERR, "\n");
     }
 
     gaussj (c, wterm, b, 1);
 
-    fprintf (stderr, "inverse:\n");
+    gprint (GP_ERR, "inverse:\n");
     for (k = 0; k < wterm; k++) {
 	for (K = 0; K < wterm; K++) {
-	    fprintf (stderr, "%f ", c[k][K]);
-	}
-	fprintf (stderr, "\n");
+	    gprint (GP_ERR, "%f ", c[k][K]);
+	}
+	gprint (GP_ERR, "\n");
     }
 
@@ -182,5 +182,5 @@
       for (i = ny = 0; ny < nterm; ny++) {
 	for (nx = 0; nx < nterm - ny; nx++, i++) {
-	  fprintf (stderr, "x^%d y^%d: %g\n", nx, ny, b[i][0]);
+	  gprint (GP_ERR, "x^%d y^%d: %g\n", nx, ny, b[i][0]);
 	}
       }
@@ -228,5 +228,5 @@
     maxsigma = ClipNSigma * sigma;
 
-    if (VERBOSE) fprintf (stderr, "mean: %g, sigma: %g, maxsigma: %g\n", mean, sigma, maxsigma);
+    if (VERBOSE) gprint (GP_ERR, "mean: %g, sigma: %g, maxsigma: %g\n", mean, sigma, maxsigma);
 
     /* mask outlier points */
@@ -245,13 +245,13 @@
       }	
     }
-    if (VERBOSE) fprintf (stderr, "pass: %d, Nmask: %d\n", N, Nmask);
-  }
-
-  if (!Quiet) fprintf (stderr, "z = ");
+    if (VERBOSE) gprint (GP_ERR, "pass: %d, Nmask: %d\n", N, Nmask);
+  }
+
+  if (!Quiet) gprint (GP_ERR, "z = ");
   for (N = ny = 0; ny < nterm; ny++) {
     for (nx = 0; nx < nterm - ny; nx++, N++) {
       sprintf (name, "CX%dY%d", nx, ny);
       set_variable (name, b[N][0]);
-      if (!Quiet) fprintf (stderr, "%f x^%d y^%d  ", b[N][0], nx, ny);
+      if (!Quiet) gprint (GP_ERR, "%f x^%d y^%d  ", b[N][0], nx, ny);
     }
   }
@@ -259,5 +259,5 @@
   set_variable (name, (double) order);
   
-  if (!Quiet) fprintf (stderr, "\n");
+  if (!Quiet) gprint (GP_ERR, "\n");
 
   /* free internal data */
Index: trunk/Ohana/src/opihi/cmd.data/gaussdeviate.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/gaussdeviate.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/gaussdeviate.c	(revision 7917)
@@ -25,5 +25,5 @@
 
  usage:
-  fprintf (stderr, "USAGE: gaussdeviate (vector) Npts mean sigma\n");
+  gprint (GP_ERR, "USAGE: gaussdeviate (vector) Npts mean sigma\n");
   return (FALSE);
     
@@ -56,5 +56,5 @@
 
  usage:
-  fprintf (stderr, "USAGE: gaussintegral Npts mean sigma\n");
+  gprint (GP_ERR, "USAGE: gaussintegral Npts mean sigma\n");
   return (FALSE);
     
Index: trunk/Ohana/src/opihi/cmd.data/gaussj.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/gaussj.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/gaussj.c	(revision 7917)
@@ -51,7 +51,7 @@
 
  usage:
-  fprintf (stderr, "USAGE: gaussj A B\n");
-  fprintf (stderr, "  solves Ax = B, returns 1/A in A and x in B\n");
-  fprintf (stderr, "  A must be square, B same dimensions\n");
+  gprint (GP_ERR, "USAGE: gaussj A B\n");
+  gprint (GP_ERR, "  solves Ax = B, returns 1/A in A and x in B\n");
+  gprint (GP_ERR, "  A must be square, B same dimensions\n");
   return (FALSE);
     
Index: trunk/Ohana/src/opihi/cmd.data/grid.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/grid.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/grid.c	(revision 7917)
@@ -25,5 +25,5 @@
 
   if (argc > 1) {
-    fprintf (stderr, "USAGE: grid [-n graph]\n");
+    gprint (GP_ERR, "USAGE: grid [-n graph]\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/gridify.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/gridify.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/gridify.c	(revision 7917)
@@ -17,5 +17,5 @@
 
   if (argc != 11) {
-    fprintf (stderr, "USAGE: gridify x y z buffer Xmin Xmax dX Ymin Ymax dY\n");
+    gprint (GP_ERR, "USAGE: gridify x y z buffer Xmin Xmax dX Ymin Ymax dY\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/histogram.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/histogram.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/histogram.c	(revision 7917)
@@ -8,5 +8,5 @@
 
   if ((argc != 6) && (argc != 5)) {
-    fprintf (stderr, "USAGE: hist invec outvec start end [delta]\n");
+    gprint (GP_ERR, "USAGE: hist invec outvec start end [delta]\n");
     return (FALSE);
   }
@@ -18,5 +18,5 @@
  
   if ((start == end) || (delta == 0)) {
-    fprintf (stderr, "error in value: %f to %f, %f\n", start, end, delta);
+    gprint (GP_ERR, "error in value: %f to %f, %f\n", start, end, delta);
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/imcut.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/imcut.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/imcut.c	(revision 7917)
@@ -10,5 +10,5 @@
 
   if (argc != 8) {
-    fprintf (stderr, "USAGE: cut <buffer> <X vector> <Y vector> xs ys xe ye\n");
+    gprint (GP_ERR, "USAGE: cut <buffer> <X vector> <Y vector> xs ys xe ye\n");
     return (FALSE);
   }
@@ -53,13 +53,13 @@
 
  usage: 
-  fprintf (stderr, "USAGE: circstats <buffer> x y radius\n");
+  gprint (GP_ERR, "USAGE: circstats <buffer> x y radius\n");
   return (FALSE);
 
  range:
-  fprintf (stderr, "ERROR: coordinates out of range\n");
+  gprint (GP_ERR, "ERROR: coordinates out of range\n");
   return (FALSE);
 
  missed:
-  fprintf (stderr, "ERROR: buffer not found\n");
+  gprint (GP_ERR, "ERROR: buffer not found\n");
   return (FALSE);
 }
Index: trunk/Ohana/src/opihi/cmd.data/imhist.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/imhist.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/imhist.c	(revision 7917)
@@ -34,5 +34,5 @@
 
   if (argc != 4) {
-    fprintf (stderr, "USAGE: histogram <buffer> <x> <y> [-region sx sy nx ny] [-range min max]\n");
+    gprint (GP_ERR, "USAGE: histogram <buffer> <x> <y> [-region sx sy nx ny] [-range min max]\n");
     return (FALSE);
   }
@@ -49,5 +49,5 @@
       (sx+nx > buf[0].matrix.Naxis[0]) || 
       (sy+ny > buf[0].matrix.Naxis[1])) {
-    fprintf (stderr, "region out of range\n");
+    gprint (GP_ERR, "region out of range\n");
     return (FALSE);
   }
@@ -63,5 +63,5 @@
   if ((max == 0) && (min == 0)) {
     max = min = *((float *)(buf[0].matrix.buffer) + sy*buf[0].matrix.Naxis[0] + sx);
-    fprintf (stderr, "sx: %d, sy: %d, first: %f\n", sx, sy, max);
+    gprint (GP_ERR, "sx: %d, sy: %d, first: %f\n", sx, sy, max);
     for (j = sy; j < sy + ny; j++) {
       V = (float *)(buf[0].matrix.buffer) + j*buf[0].matrix.Naxis[0] + sx; 
@@ -73,5 +73,5 @@
   }
   dx = (max - min) / 1024.0;
-  fprintf (stderr, "max %f, min %f, dx %f\n", max, min, dx);
+  gprint (GP_ERR, "max %f, min %f, dx %f\n", max, min, dx);
   
   vec1[0].Nelements = 1025;
Index: trunk/Ohana/src/opihi/cmd.data/imsmooth.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/imsmooth.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/imsmooth.c	(revision 7917)
@@ -17,5 +17,5 @@
 
   if (argc != 3) {
-    fprintf (stderr, "USAGE: imsmooth (input) sigma\n");
+    gprint (GP_ERR, "USAGE: imsmooth (input) sigma\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/integrate.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/integrate.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/integrate.c	(revision 7917)
@@ -15,5 +15,5 @@
 
   if (argc != 5) {
-    fprintf (stderr, "USAGE: integrate <x> <y> start end\n");
+    gprint (GP_ERR, "USAGE: integrate <x> <y> start end\n");
     return (FALSE);
   }
@@ -39,5 +39,5 @@
   set_variable ("sum", value); 
   set_variable ("range", range);
-  if (VERBOSE) fprintf (GetOutfile(), "sum: %f\n", value);
+  if (VERBOSE) gprint (GP_LOG, "sum: %f\n", value);
   return (TRUE);
 }
Index: trunk/Ohana/src/opihi/cmd.data/interpolate.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/interpolate.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/interpolate.c	(revision 7917)
@@ -9,8 +9,8 @@
   /** check basic syntax **/
   if (argc != 5) {
-    fprintf (stderr, "USAGE: interpolate Xi Yi Xo Yo\n");
-    fprintf (stderr, "  Xi Yi - sorted reference vectors\n");
-    fprintf (stderr, "  Xo    - output positions\n");
-    fprintf (stderr, "  Yo    - output values\n");
+    gprint (GP_ERR, "USAGE: interpolate Xi Yi Xo Yo\n");
+    gprint (GP_ERR, "  Xi Yi - sorted reference vectors\n");
+    gprint (GP_ERR, "  Xo    - output positions\n");
+    gprint (GP_ERR, "  Yo    - output values\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/jpeg.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/jpeg.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/jpeg.c	(revision 7917)
@@ -7,5 +7,5 @@
   
   if ((N = get_argument (argc, argv, "--help"))) {
-    fprintf (stderr, "USAGE: jpeg [-name file] [-g | -i] [-n device] [-ppm]\n");
+    gprint (GP_ERR, "USAGE: jpeg [-name file] [-g | -i] [-n device] [-ppm]\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/kern.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/kern.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/kern.c	(revision 7917)
@@ -13,8 +13,8 @@
 
   if (argc != 3) {
-    fprintf (stderr, "USAGE: kern buffer (file)\n");
-    fprintf (stderr, "USAGE: kern buffer (list)\n");
-    fprintf (stderr, "USAGE: kern buffer -\n");
-    fprintf (stderr, "kernel file contains a 3x3 matrix for convolution\n");
+    gprint (GP_ERR, "USAGE: kern buffer (file)\n");
+    gprint (GP_ERR, "USAGE: kern buffer (list)\n");
+    gprint (GP_ERR, "USAGE: kern buffer -\n");
+    gprint (GP_ERR, "kernel file contains a 3x3 matrix for convolution\n");
     return (FALSE);
   }
@@ -27,5 +27,5 @@
       status = scan_line (stdin, line);
       if (status == EOF) {
-	fprintf (stderr, "kernel should be a 3x3 matrix...\n");
+	gprint (GP_ERR, "kernel should be a 3x3 matrix...\n");
 	return (FALSE);
       }
@@ -42,5 +42,5 @@
     f = fopen (argv[2], "r");
     if (f == NULL) {
-      fprintf (stderr, "file not found: %s\n", argv[2]);
+      gprint (GP_ERR, "file not found: %s\n", argv[2]);
       return (FALSE);
     }
@@ -48,5 +48,5 @@
       status = scan_line (f, line);
       if (status == EOF) {
-	fprintf (stderr, "kernel should be a 3x3 matrix...\n");
+	gprint (GP_ERR, "kernel should be a 3x3 matrix...\n");
 	fclose (f);
       }
@@ -60,5 +60,5 @@
   }
   if (atoi (list) != 9) {
-    fprintf (stderr, "kernel should be a 3x3 matrix...\n");
+    gprint (GP_ERR, "kernel should be a 3x3 matrix...\n");
     return (FALSE);
   }
@@ -68,5 +68,5 @@
     list = get_variable (line);
     if (list == (char *) NULL) {
-      fprintf (stderr, "kernel should be a 3x3 matrix...\n");
+      gprint (GP_ERR, "kernel should be a 3x3 matrix...\n");
       return (FALSE);
     }
@@ -77,5 +77,5 @@
 
  have_kernel:
-  fprintf (stderr, "working...");
+  gprint (GP_ERR, "working...");
   
   /* create output buffer */
@@ -90,5 +90,5 @@
   for (n = 0; n < 3; n++) {
     for (m = 0; m < 3; m++) {
-      fprintf (stderr, "%d", n*3 + m + 1);
+      gprint (GP_ERR, "%d", n*3 + m + 1);
       val = kernel[n][m];
       ob = out_buff + NX + 1;
@@ -99,5 +99,5 @@
     }
   }
-  fprintf (stderr, "(done)\n");
+  gprint (GP_ERR, "(done)\n");
 
   free (in_buff);
Index: trunk/Ohana/src/opihi/cmd.data/keyword.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/keyword.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/keyword.c	(revision 7917)
@@ -76,12 +76,12 @@
 
   if (!((argc == 3) || (!N && argc == 4))) {
-    fprintf (stderr, "USAGE: keyword <buffer> (KEYWORD) [variable] [-d] [-w(mode) value]\n");
-    fprintf (stderr, " -w modes: \n");
-    fprintf (stderr, "  -w  - string\n");
-    fprintf (stderr, "  -wf - float\n");
-    fprintf (stderr, "  -wd - int\n");
-    fprintf (stderr, "  -wb - boolean\n");
-    fprintf (stderr, "  -wc - comment\n");
-    fprintf (stderr, "  -ws - full string comment\n");
+    gprint (GP_ERR, "USAGE: keyword <buffer> (KEYWORD) [variable] [-d] [-w(mode) value]\n");
+    gprint (GP_ERR, " -w modes: \n");
+    gprint (GP_ERR, "  -w  - string\n");
+    gprint (GP_ERR, "  -wf - float\n");
+    gprint (GP_ERR, "  -wd - int\n");
+    gprint (GP_ERR, "  -wb - boolean\n");
+    gprint (GP_ERR, "  -wc - comment\n");
+    gprint (GP_ERR, "  -ws - full string comment\n");
     return (FALSE);
   }
@@ -103,5 +103,5 @@
     case BOOLEAN:
       if (strcasecmp (line, "T") && strcasecmp (line, "TRUE") && strcasecmp (line, "F") && strcasecmp (line, "FALSE")) {
-	fprintf (stderr, "syntax error in boolean value\n");
+	gprint (GP_ERR, "syntax error in boolean value\n");
 	return (FALSE);
       }
@@ -130,5 +130,5 @@
       set_variable (argv[3], value);
     else 
-      fprintf (GetOutfile(), "%s: %f\n", argv[2], value);
+      gprint (GP_LOG, "%s: %f\n", argv[2], value);
     return (TRUE);
   } 
@@ -140,5 +140,5 @@
       set_str_variable (argv[3], line);
     else 
-      fprintf (GetOutfile(), "%s: %s\n", argv[2], line);
+      gprint (GP_LOG, "%s: %s\n", argv[2], line);
     return (TRUE);
   }    
@@ -150,9 +150,9 @@
     set_str_variable (argv[3], line);
   else 
-    fprintf (GetOutfile(), "%s: %s\n", argv[2], line);
+    gprint (GP_LOG, "%s: %s\n", argv[2], line);
   return (TRUE);
 
  failure: 
-  if (!soft) fprintf (stderr, "keyword %s not found\n", argv[2]);
+  if (!soft) gprint (GP_ERR, "keyword %s not found\n", argv[2]);
   return (soft);
 }
Index: trunk/Ohana/src/opihi/cmd.data/labels.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/labels.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/labels.c	(revision 7917)
@@ -9,22 +9,22 @@
 
   if (get_argument (argc, argv, "-h")) {
-    fprintf (stderr, "label options: \n");
-    fprintf (stderr, " -x : bottom-center\n");
-    fprintf (stderr, " +x : top-center\n");
-    fprintf (stderr, " -y : right-side\n");
-    fprintf (stderr, " +y : left-side\n\n");
+    gprint (GP_ERR, "label options: \n");
+    gprint (GP_ERR, " -x : bottom-center\n");
+    gprint (GP_ERR, " +x : top-center\n");
+    gprint (GP_ERR, " -y : right-side\n");
+    gprint (GP_ERR, " +y : left-side\n\n");
 
-    fprintf (stderr, " -ul : upper-left corner\n");
-    fprintf (stderr, " -ll : lower-left corner\n");
-    fprintf (stderr, " -ur : upper-right corner\n");
-    fprintf (stderr, " -lr : lower-right corner\n\n");
+    gprint (GP_ERR, " -ul : upper-left corner\n");
+    gprint (GP_ERR, " -ll : lower-left corner\n");
+    gprint (GP_ERR, " -ur : upper-right corner\n");
+    gprint (GP_ERR, " -lr : lower-right corner\n\n");
 
-    fprintf (stderr, " -fn (font) (size) : set font and size\n");
-    fprintf (stderr, "   (font) : courier, helvetica, times, symbol\n\n");
-    fprintf (stderr, " label special characters:\n");
-    fprintf (stderr, " ^ : superscript\n");
-    fprintf (stderr, " _ : subscript\n");
-    fprintf (stderr, " | : default script \n");
-    fprintf (stderr, " &c, &h, &t, &s : set font\n\n");
+    gprint (GP_ERR, " -fn (font) (size) : set font and size\n");
+    gprint (GP_ERR, "   (font) : courier, helvetica, times, symbol\n\n");
+    gprint (GP_ERR, " label special characters:\n");
+    gprint (GP_ERR, " ^ : superscript\n");
+    gprint (GP_ERR, " _ : subscript\n");
+    gprint (GP_ERR, " | : default script \n");
+    gprint (GP_ERR, " &c, &h, &t, &s : set font\n\n");
     return (FALSE);
   }
@@ -88,5 +88,5 @@
 
   if (argc != 1) {
-    fprintf (stderr, "USAGE: labels [-x] [-y] [+x] [+y] [-ul] [-ur] [-ll] [-lr]\n");
+    gprint (GP_ERR, "USAGE: labels [-x] [-y] [+x] [+y] [-ul] [-ur] [-ll] [-lr]\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/limits.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/limits.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/limits.c	(revision 7917)
@@ -25,5 +25,5 @@
 
   if (argc == 1) {
-    fprintf (stderr, "limits: %f %f %f %f [-a] [-n Xgraph]\n",
+    gprint (GP_ERR, "limits: %f %f %f %f [-a] [-n Xgraph]\n",
 	     graphmode.xmin, graphmode.xmax,
 	     graphmode.ymin, graphmode.ymax);
@@ -61,10 +61,10 @@
   }
 
-  fprintf (stderr, "USAGE: limits [xrange] [yrange]\n");
-  fprintf (stderr, " [range] may be either [min max] or a vector\n");
+  gprint (GP_ERR, "USAGE: limits [xrange] [yrange]\n");
+  gprint (GP_ERR, " [range] may be either [min max] or a vector\n");
   return (FALSE);
 
  error:
-  fprintf (stderr, "error in vectors\n");
+  gprint (GP_ERR, "error in vectors\n");
   return (FALSE);
 
Index: trunk/Ohana/src/opihi/cmd.data/line.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/line.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/line.c	(revision 7917)
@@ -33,5 +33,5 @@
 
   if (argc != 3) {
-    fprintf (stderr, "USAGE: plot <x> <y>\n");
+    gprint (GP_ERR, "USAGE: plot <x> <y>\n");
     return (FALSE);
   }
@@ -51,5 +51,5 @@
   if ((vecy = SelectVector (argv[2], OLDVECTOR, TRUE)) == NULL) return (FALSE);
   if (vecy[0].Nelements != vecy[0].Nelements) {
-    fprintf (stderr, "vectors %s and %s not the same length\n", argv[1], argv[2]);
+    gprint (GP_ERR, "vectors %s and %s not the same length\n", argv[1], argv[2]);
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/list_header.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/list_header.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/list_header.c	(revision 7917)
@@ -18,5 +18,5 @@
 
   if (argc != 2) {
-    fprintf (stderr, "USAGE: header <buffer> [-w filename]\n");
+    gprint (GP_ERR, "USAGE: header <buffer> [-w filename]\n");
     return (FALSE);
   }
@@ -27,5 +27,5 @@
     f = fopen (filename, "r");
     if (f == (FILE *) NULL) {
-      fprintf (stderr, "file %s not found\n", filename);
+      gprint (GP_ERR, "file %s not found\n", filename);
       return (FALSE);
     }
@@ -67,5 +67,5 @@
     Nbytes = fwrite (p, sizeof(char), nbytes, f);
     if (Nbytes != nbytes) {
-      fprintf (stderr, "warning: not all printed...\n");
+      gprint (GP_ERR, "warning: not all printed...\n");
     }
     free (p);
@@ -78,2 +78,4 @@
 
 }
+
+/* XXX this function is not written in the context of the output file/buffer */
Index: trunk/Ohana/src/opihi/cmd.data/load.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/load.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/load.c	(revision 7917)
@@ -29,6 +29,6 @@
 
   if (argc != 3) {
-    fprintf (stderr, "USAGE: load (overlay) <filename>\n [-c] [-n]");
-    fprintf (stderr, "  -c: read overlay in celestial coords\n");
+    gprint (GP_ERR, "USAGE: load (overlay) <filename>\n [-c] [-n]");
+    gprint (GP_ERR, "  -c: read overlay in celestial coords\n");
     return (FALSE);
   }
@@ -40,5 +40,5 @@
   }
   if (f == NULL) {
-    fprintf (stderr, "can't find file %s\n", argv[2]);
+    gprint (GP_ERR, "can't find file %s\n", argv[2]);
     return (FALSE);
   }
@@ -79,5 +79,5 @@
     case 3:
       if (strcmp (type, "TEXT")) {
-	fprintf (stderr, "syntax error in line:\n   %s\n", line);
+	gprint (GP_ERR, "syntax error in line:\n   %s\n", line);
 	continue;
       }
@@ -133,5 +133,5 @@
   free (overlay);
 
-  fprintf (stderr, "loaded %d objects\n", Noverlay);
+  gprint (GP_ERR, "loaded %d objects\n", Noverlay);
 
   if (f != stdin) {
Index: trunk/Ohana/src/opihi/cmd.data/mcreate.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/mcreate.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/mcreate.c	(revision 7917)
@@ -7,5 +7,5 @@
 
   if (argc != 4) {
-    fprintf (stderr, "USAGE: mcreate <buffer> Nx Ny\n");
+    gprint (GP_ERR, "USAGE: mcreate <buffer> Nx Ny\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/medacc.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/medacc.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/medacc.c	(revision 7917)
@@ -9,5 +9,5 @@
 
   if ((argc != 6) && (argc != 7)) {
-    fprintf (stderr, "USAGE: medacc <value> <vector> <key> start end [delta]\n");
+    gprint (GP_ERR, "USAGE: medacc <value> <vector> <key> start end [delta]\n");
     return (FALSE);
   }
@@ -16,5 +16,5 @@
   if ((key = SelectVector (argv[3], OLDVECTOR, TRUE)) == NULL) return (FALSE);
   if (val[0].Nelements != key[0].Nelements) {
-    fprintf (stderr, "key and value don't match\n");
+    gprint (GP_ERR, "key and value don't match\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/mget.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/mget.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/mget.c	(revision 7917)
@@ -9,5 +9,5 @@
 
   if (argc != 5) {
-    fprintf (stderr, "USAGE: mget <buffer> <vector> <-x/-y> <N>\n");
+    gprint (GP_ERR, "USAGE: mget <buffer> <vector> <-x/-y> <N>\n");
     return (FALSE);
   }
@@ -17,5 +17,5 @@
 
   if (strcasecmp (argv[3], "-x") && strcasecmp (argv[3], "-y")) {
-    fprintf (stderr, "USAGE: mget <buffer> <vector> <-x/-y> <N>\n");
+    gprint (GP_ERR, "USAGE: mget <buffer> <vector> <-x/-y> <N>\n");
     return (FALSE);
   }
@@ -27,5 +27,5 @@
   Nset = atof (argv[4]);
   if (Nset < 0) {
-    fprintf (stderr, "selection out of range\n");
+    gprint (GP_ERR, "selection out of range\n");
     return (FALSE);
   }
@@ -35,5 +35,5 @@
     REALLOCATE (vec[0].elements, float, Npix);
     if (Nset >= Ny) {
-      fprintf (stderr, "row out of range\n");
+      gprint (GP_ERR, "row out of range\n");
       return (FALSE);
     }
@@ -48,5 +48,5 @@
     REALLOCATE (vec[0].elements, float, Npix);
     if (Nset >= Nx) {
-      fprintf (stderr, "column out of range\n");
+      gprint (GP_ERR, "column out of range\n");
       return (FALSE);
     }
Index: trunk/Ohana/src/opihi/cmd.data/minterpolate.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/minterpolate.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/minterpolate.c	(revision 7917)
@@ -19,5 +19,5 @@
 
   if (argc != 4) {
-    fprintf (stderr, "USAGE: minterpolate <from> <to> scale [-extrapolate]\n");
+    gprint (GP_ERR, "USAGE: minterpolate <from> <to> scale [-extrapolate]\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/mset.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/mset.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/mset.c	(revision 7917)
@@ -9,5 +9,5 @@
 
   if (argc != 5) {
-    fprintf (stderr, "USAGE: mset <buffer> <vector> <-x/-y> <N>\n");
+    gprint (GP_ERR, "USAGE: mset <buffer> <vector> <-x/-y> <N>\n");
     return (FALSE);
   }
@@ -17,5 +17,5 @@
 
   if (strcasecmp (argv[3], "-x") && strcasecmp (argv[3], "-y")) {
-    fprintf (stderr, "USAGE: mset <buffer> <vector> <-x/-y> <N>\n");
+    gprint (GP_ERR, "USAGE: mset <buffer> <vector> <-x/-y> <N>\n");
     return (FALSE);
   }
@@ -28,5 +28,5 @@
   Nset = atof (argv[4]);
   if (Nset < 0) {
-    fprintf (stderr, "selection out of range\n");
+    gprint (GP_ERR, "selection out of range\n");
     return (FALSE);
   }
@@ -34,9 +34,9 @@
   if (xdir) {
     if (Nx != Npix) {
-      fprintf (stderr, "dimensions don't match\n");
+      gprint (GP_ERR, "dimensions don't match\n");
       return (FALSE);
     }
     if (Nset >= Ny) {
-      fprintf (stderr, "row out of range\n");
+      gprint (GP_ERR, "row out of range\n");
       return (FALSE);
     }
@@ -49,9 +49,9 @@
   } else {
     if (Ny != Npix) {
-      fprintf (stderr, "dimensions don't match\n");
+      gprint (GP_ERR, "dimensions don't match\n");
       return (FALSE);
     }
     if (Nset >= Nx) {
-      fprintf (stderr, "column out of range\n");
+      gprint (GP_ERR, "column out of range\n");
       return (FALSE);
     }
Index: trunk/Ohana/src/opihi/cmd.data/peak.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/peak.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/peak.c	(revision 7917)
@@ -15,5 +15,5 @@
 
   if ((argc != 5) && (argc != 3)) {
-    fprintf (stderr, "USAGE: peak <x> <y> [start end]\n");
+    gprint (GP_ERR, "USAGE: peak <x> <y> [start end]\n");
     return (FALSE);
   }
@@ -50,5 +50,5 @@
   set_variable ("peaknum", imax);
 
-  if (!QUIET) fprintf (GetOutfile(), "peak %f @ %f (%d)\n", ymax, xmax, imax);
+  if (!QUIET) gprint (GP_LOG, "peak %f @ %f (%d)\n", ymax, xmax, imax);
 
   return (TRUE);
Index: trunk/Ohana/src/opihi/cmd.data/periodogram.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/periodogram.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/periodogram.c	(revision 7917)
@@ -17,5 +17,5 @@
 
   if (argc != 7) {
-    fprintf (stderr, "USAGE: periodogram (time) (flux) (minP) (maxP) (period) (power)\n");
+    gprint (GP_ERR, "USAGE: periodogram (time) (flux) (minP) (maxP) (period) (power)\n");
     return (FALSE);
   }
@@ -46,9 +46,9 @@
   var = var / (Npt - 1);
 
-  if (VERBOSE) fprintf (stderr, "mean: %f, var: %f, minT: %f, maxT: %f\n", mean, var, minT, maxT);
+  if (VERBOSE) gprint (GP_ERR, "mean: %f, var: %f, minT: %f, maxT: %f\n", mean, var, minT, maxT);
 
   dTime = maxT - minT;
   if (dTime == 0) {
-    fprintf (stderr, "ERROR: time range is zero\n");
+    gprint (GP_ERR, "ERROR: time range is zero\n");
     return (FALSE);
   }
@@ -101,5 +101,5 @@
     ratio = 1 + 0.1*P/dTime;
 
-    if (VERBOSE) fprintf (stderr, "tau: %f, P: %f, ratio: %f, dTime: %f, nextP: %f\n", tau, P, ratio, dTime, P*ratio);
+    if (VERBOSE) gprint (GP_ERR, "tau: %f, P: %f, ratio: %f, dTime: %f, nextP: %f\n", tau, P, ratio, dTime, P*ratio);
 
     P *= ratio;
Index: trunk/Ohana/src/opihi/cmd.data/plot.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/plot.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/plot.c	(revision 7917)
@@ -33,5 +33,5 @@
 
   if (argc != 3) {
-    fprintf (stderr, "USAGE: plot <x> <y> [style]\n");
+    gprint (GP_ERR, "USAGE: plot <x> <y> [style]\n");
     return (FALSE);
   }
@@ -51,5 +51,5 @@
   if ((yvec = SelectVector (argv[2], OLDVECTOR, TRUE)) == NULL) return (FALSE);
   if (xvec[0].Nelements != yvec[0].Nelements) {
-    fprintf (stderr, "vectors %s and %s not the same length\n", argv[1], argv[2]);
+    gprint (GP_ERR, "vectors %s and %s not the same length\n", argv[1], argv[2]);
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/point.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/point.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/point.c	(revision 7917)
@@ -32,5 +32,5 @@
 
   if (argc != 7) {
-    fprintf (stderr, "USAGE: point (overlay) TYPE x y dx dy [-c]\n");
+    gprint (GP_ERR, "USAGE: point (overlay) TYPE x y dx dy [-c]\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/ps.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/ps.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/ps.c	(revision 7917)
@@ -58,5 +58,5 @@
 
 help:
-  fprintf (stderr, "USAGE: ps [-name file.ps] [-g | -i] [-n device] [-raw] [-scale]\n");
+  gprint (GP_ERR, "USAGE: ps [-name file.ps] [-g | -i] [-n device] [-raw] [-scale]\n");
   return (FALSE);
 }
Index: trunk/Ohana/src/opihi/cmd.data/queuedelete.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/queuedelete.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/queuedelete.c	(revision 7917)
@@ -6,5 +6,5 @@
 
   if (argc != 2) {
-    fprintf (stderr, "USAGE: queuedelete (name)\n");
+    gprint (GP_ERR, "USAGE: queuedelete (name)\n");
     return (FALSE);
   }
@@ -12,5 +12,5 @@
   queue = FindQueue (argv[1]);
   if (queue == NULL) {
-    fprintf (stderr, "ERROR: queue %s not found\n", argv[1]);
+    gprint (GP_ERR, "ERROR: queue %s not found\n", argv[1]);
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/queueinit.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/queueinit.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/queueinit.c	(revision 7917)
@@ -6,5 +6,5 @@
 
   if (argc != 2) {
-    fprintf (stderr, "USAGE: queueinit (name)\n");
+    gprint (GP_ERR, "USAGE: queueinit (name)\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/queuelist.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/queuelist.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/queuelist.c	(revision 7917)
@@ -4,5 +4,5 @@
   
   if (argc != 1) {
-    fprintf (stderr, "USAGE: queuelist\n");
+    gprint (GP_ERR, "USAGE: queuelist\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/queuepop.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/queuepop.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/queuepop.c	(revision 7917)
@@ -27,5 +27,5 @@
 
   if (argc != 2) {
-    fprintf (stderr, "USAGE: queuepop (queue) [-var variable] [-key N value]\n");
+    gprint (GP_ERR, "USAGE: queuepop (queue) [-var variable] [-key N value]\n");
     return (FALSE);
   }
@@ -34,5 +34,5 @@
   queue = FindQueue (argv[1]);
   if (queue == NULL) {
-    fprintf (stderr, "ERROR: queue %s not found\n", argv[1]);
+    gprint (GP_ERR, "ERROR: queue %s not found\n", argv[1]);
     return (FALSE);
   }
@@ -46,8 +46,8 @@
   if (var == NULL) {
       if (line == NULL) {
-	  fprintf (stderr, "queue %s is empty or match not found\n", argv[1]);
+	  gprint (GP_ERR, "queue %s is empty or match not found\n", argv[1]);
 	  return (FALSE);
       } else {
-	  fprintf (stderr, "%s\n", line);
+	  gprint (GP_ERR, "%s\n", line);
 	  return (TRUE);
       }
Index: trunk/Ohana/src/opihi/cmd.data/queueprint.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/queueprint.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/queueprint.c	(revision 7917)
@@ -6,5 +6,5 @@
 
   if (argc != 2) {
-    fprintf (stderr, "USAGE: queueprint (name)\n");
+    gprint (GP_ERR, "USAGE: queueprint (name)\n");
     return (FALSE);
   }
@@ -12,9 +12,9 @@
   queue = FindQueue (argv[1]);
   if (queue == NULL) {
-    fprintf (stderr, "ERROR: queue %s not found\n", argv[1]);
+    gprint (GP_ERR, "ERROR: queue %s not found\n", argv[1]);
     return (FALSE);
   }
 
-  PrintQueue (GetOutfile(), queue);
+  PrintQueue (queue);
   return (TRUE);
 }
Index: trunk/Ohana/src/opihi/cmd.data/queuepush.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/queuepush.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/queuepush.c	(revision 7917)
@@ -26,5 +26,5 @@
 
   if (argc != 3) {
-    fprintf (stderr, "USAGE: queuepush (queue) (value) [-key N] [-uniq] [-replace]\n");
+    gprint (GP_ERR, "USAGE: queuepush (queue) (value) [-key N] [-uniq] [-replace]\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/queuesize.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/queuesize.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/queuesize.c	(revision 7917)
@@ -15,5 +15,5 @@
 
   if (argc != 2) {
-    fprintf (stderr, "USAGE: queuesize (name) [-var variable]\n");
+    gprint (GP_ERR, "USAGE: queuesize (name) [-var variable]\n");
     return (FALSE);
   }
@@ -21,10 +21,10 @@
   queue = FindQueue (argv[1]);
   if (queue == NULL) {
-    fprintf (stderr, "ERROR: queue %s not found\n", argv[1]);
+    gprint (GP_ERR, "ERROR: queue %s not found\n", argv[1]);
     return (FALSE);
   }
 
   if (var == (char *) NULL) {
-    fprintf (stderr, "Nlines: %d\n", queue[0].Nlines);
+    gprint (GP_ERR, "Nlines: %d\n", queue[0].Nlines);
     return (TRUE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/radial.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/radial.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/radial.c	(revision 7917)
@@ -70,6 +70,6 @@
 
   if (!Quiet) {
-    fprintf (GetOutfile(), "     mean     stdev       min       max    Npix     Total\n");
-    fprintf (GetOutfile(), "%9.4g %9.4g %9.4g %9.4g %7.0f %9.4g\n", Mean, Stdev, min, max, Npix, Sum);
+    gprint (GP_LOG, "     mean     stdev       min       max    Npix     Total\n");
+    gprint (GP_LOG, "%9.4g %9.4g %9.4g %9.4g %7.0f %9.4g\n", Mean, Stdev, min, max, Npix, Sum);
   }
 
@@ -84,13 +84,13 @@
 
  usage: 
-  fprintf (stderr, "USAGE: circstats <buffer> x y radius\n");
+  gprint (GP_ERR, "USAGE: circstats <buffer> x y radius\n");
   return (FALSE);
 
  range:
-  fprintf (stderr, "ERROR: coordinates out of range\n");
+  gprint (GP_ERR, "ERROR: coordinates out of range\n");
   return (FALSE);
 
  missed:
-  fprintf (stderr, "ERROR: buffer not found\n");
+  gprint (GP_ERR, "ERROR: buffer not found\n");
   return (FALSE);
 }
Index: trunk/Ohana/src/opihi/cmd.data/rd.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/rd.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/rd.c	(revision 7917)
@@ -42,10 +42,10 @@
 
   if (extend && ccdsel) {
-    fprintf (stderr, "only specify one of -n and -x\n");
+    gprint (GP_ERR, "only specify one of -n and -x\n");
     return (FALSE);
   }
 
   if (argc != 3) {
-    fprintf (stderr, "USAGE: rd <buffer> <filename> [-head] [-plane N] [-n ccdid] [-x extnum]\n");
+    gprint (GP_ERR, "USAGE: rd <buffer> <filename> [-head] [-plane N] [-n ccdid] [-x extnum]\n");
     return (FALSE);
   }
@@ -54,5 +54,5 @@
   f = fopen (argv[2], "r");
   if (f == (FILE *) NULL) {
-    fprintf (stderr, "file %s not found\n", argv[2]);
+    gprint (GP_ERR, "file %s not found\n", argv[2]);
     return (FALSE);
   }
@@ -75,5 +75,5 @@
     Nskip = gfits_read_Xheader (argv[2], &buf[0].header, Nextend);
     if (!Nskip) {
-      fprintf (stderr, "entry in %s not found\n", argv[2]);
+      gprint (GP_ERR, "entry in %s not found\n", argv[2]);
       DeleteBuffer (buf);
       return (FALSE);
@@ -108,5 +108,5 @@
     f = fopen (argv[2], "r");
     if (f == (FILE *) NULL) {
-      fprintf (stderr, "file %s not found\n", argv[2]);
+      gprint (GP_ERR, "file %s not found\n", argv[2]);
       DeleteBuffer (buf);
       return (FALSE);
@@ -122,6 +122,6 @@
     CCDKeyword = get_variable ("CCDKEYWORD");
     if (CCDKeyword == (char *) NULL) {
-      fprintf (stderr, "CCDKEYWORD variable is not set; ");
-      fprintf (stderr, "using EXTNAME as default\n");
+      gprint (GP_ERR, "CCDKEYWORD variable is not set; ");
+      gprint (GP_ERR, "using EXTNAME as default\n");
       CCDKeyword = strcreate ("EXTNAME");
     }
@@ -130,5 +130,5 @@
       Nskip = gfits_read_Xheader (argv[2], &buf[0].header, i);
       if (!Nskip) {
-	fprintf (stderr, "extension %s in %s not found\n", ccdid, argv[2]);
+	gprint (GP_ERR, "extension %s in %s not found\n", ccdid, argv[2]);
 	DeleteBuffer (buf);
 	free (CCDKeyword);
@@ -136,5 +136,5 @@
       }
       if (!gfits_scan (&buf[0].header, CCDKeyword, "%s", 1, ID)) {
-	fprintf (stderr, "%s not in header\n", CCDKeyword);
+	gprint (GP_ERR, "%s not in header\n", CCDKeyword);
 	DeleteBuffer (buf);
 	free (CCDKeyword);
@@ -177,5 +177,5 @@
     f = fopen (argv[2], "r");
     if (f == (FILE *) NULL) {
-      fprintf (stderr, "file %s not found\n", argv[2]);
+      gprint (GP_ERR, "file %s not found\n", argv[2]);
       DeleteBuffer (buf);
       return (FALSE);
@@ -203,5 +203,5 @@
     if (Nplane > 0) {
       if (plane > Nplane) {
-	fprintf (stderr, "-plane is too large: %d total planes\n", Nplane);
+	gprint (GP_ERR, "-plane is too large: %d total planes\n", Nplane);
 	DeleteBuffer (buf);
 	return (FALSE);
@@ -217,5 +217,5 @@
 
   if (!status) {
-    fprintf (stderr, "problem reading file, buffer not opened\n");
+    gprint (GP_ERR, "problem reading file, buffer not opened\n");
     DeleteBuffer (buf);
     return (FALSE);
@@ -232,5 +232,5 @@
   buf[0].bzero  = buf[0].header.bzero;     /* store the original values */
   buf[0].unsign = buf[0].header.unsign;
-  fprintf (GetOutfile(), "read %d bytes from %s into buffer %s\n", 
+  gprint (GP_LOG, "read %d bytes from %s into buffer %s\n", 
 	   buf[0].header.size + buf[0].matrix.size, argv[2], argv[1]);
 
Index: trunk/Ohana/src/opihi/cmd.data/rdseg.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/rdseg.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/rdseg.c	(revision 7917)
@@ -10,5 +10,5 @@
 
   if (argc != 7) {
-    fprintf (stderr, "USAGE: rdseg <buffer> <filename> x y nx ny\n");
+    gprint (GP_ERR, "USAGE: rdseg <buffer> <filename> x y nx ny\n");
     return (FALSE);
   }
@@ -21,5 +21,5 @@
   f = fopen (argv[2], "r");
   if (f == (FILE *) NULL) {
-    fprintf (stderr, "file %s not found\n", argv[2]);
+    gprint (GP_ERR, "file %s not found\n", argv[2]);
     return (FALSE);
   }
@@ -47,5 +47,5 @@
 
   if (!status) {
-    fprintf (stderr, "problem reading file, buffer not opened\n");
+    gprint (GP_ERR, "problem reading file, buffer not opened\n");
     DeleteBuffer (buf);
     return (FALSE);
@@ -62,5 +62,5 @@
   buf[0].bzero  = buf[0].header.bzero;     /* store the original values */
   buf[0].unsign = buf[0].header.unsign;
-  fprintf (GetOutfile(), "read %d bytes from %s into buffer %s\n", 
+  gprint (GP_LOG, "read %d bytes from %s into buffer %s\n", 
 	   buf[0].header.size + buf[0].matrix.size, argv[2], argv[1]);
 
Index: trunk/Ohana/src/opihi/cmd.data/read_vectors.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/read_vectors.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/read_vectors.c	(revision 7917)
@@ -7,5 +7,5 @@
 
   if (argc < 2) {
-    fprintf (stderr, "USAGE: datafile (filename)\n");
+    gprint (GP_ERR, "USAGE: datafile (filename)\n");
     return (FALSE);
   }
@@ -15,5 +15,5 @@
   f = fopen (filename, "r");
   if (f == (FILE *) NULL) {
-    fprintf (stderr, "failed to open file %s\n", argv[1]);
+    gprint (GP_ERR, "failed to open file %s\n", argv[1]);
     return (FALSE);
   }
@@ -48,5 +48,5 @@
 
   if ((argc < 3) || !(argc % 2)) {
-    fprintf (stderr, "USAGE: read name N name N ...\n");
+    gprint (GP_ERR, "USAGE: read name N name N ...\n");
     return (FALSE);
   }
@@ -54,5 +54,5 @@
 
   if (f == (FILE *) NULL) {
-    fprintf (stderr, "no open file for read\n");
+    gprint (GP_ERR, "no open file for read\n");
     return (FALSE);
   }
@@ -65,5 +65,5 @@
   for (i = 0; i < Nvec; i++) {
     if ((vec[i] = SelectVector (argv[2*i + 1], ANYVECTOR, TRUE)) == NULL) {
-      fprintf (stderr, "USAGE: read name N name N ...\n");
+      gprint (GP_ERR, "USAGE: read name N name N ...\n");
       free (vec);
       free (col);
@@ -73,5 +73,5 @@
     for (j = 0; j < strlen (colstr); j++) {
       if (!isdigit(colstr[j])) {
-	fprintf (stderr, "USAGE: read name N name N ...\n");
+	gprint (GP_ERR, "USAGE: read name N name N ...\n");
 	free (vec);
 	free (col);
@@ -157,6 +157,6 @@
 
   if (argc < 2) {
-    fprintf (stderr, "USAGE: read -fits extension name name ...\n");
-    fprintf (stderr, "  ('extension' may be a name or number)\n");
+    gprint (GP_ERR, "USAGE: read -fits extension name name ...\n");
+    gprint (GP_ERR, "  ('extension' may be a name or number)\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/rebin.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/rebin.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/rebin.c	(revision 7917)
@@ -33,6 +33,6 @@
 
   if (argc != 4) {
-    fprintf (stderr, "USAGE: rebin <from> <to> scale \n");
-    fprintf (stderr, "  negative integer scale expands image\n");
+    gprint (GP_ERR, "USAGE: rebin <from> <to> scale \n");
+    gprint (GP_ERR, "  negative integer scale expands image\n");
     return (FALSE);
   }
@@ -63,5 +63,5 @@
     }      
   }
-  if (VERBOSE) fprintf (GetOutfile(), "rebin %s to %s (%d,%d to %d,%d)\n", argv[1], argv[2], in[0].header.Naxis[0], in[0].header.Naxis[1], nx, ny);
+  if (VERBOSE) gprint (GP_LOG, "rebin %s to %s (%d,%d to %d,%d)\n", argv[1], argv[2], in[0].header.Naxis[0], in[0].header.Naxis[1], nx, ny);
 
   Nx = in[0].header.Naxis[0];
@@ -171,5 +171,5 @@
     
     /* normalization is broken.  repair please */
-    if (Normalize) { fprintf (stderr, "normalize not enabled for fractional scaling\n"); }
+    if (Normalize) { gprint (GP_ERR, "normalize not enabled for fractional scaling\n"); }
 
     if (scale < 0) scale = 1.0 / fabs(scale);
Index: trunk/Ohana/src/opihi/cmd.data/resize.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/resize.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/resize.c	(revision 7917)
@@ -30,5 +30,5 @@
 
   if (argc != 3) {
-    fprintf (stderr, "USAGE: resize NX NY [-n] [-g | -i]\n");
+    gprint (GP_ERR, "USAGE: resize NX NY [-n] [-g | -i]\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/roll.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/roll.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/roll.c	(revision 7917)
@@ -8,5 +8,5 @@
 
   if (argc != 4) {
-    fprintf (stderr, "USAGE: roll <buffer> dx dy\n");
+    gprint (GP_ERR, "USAGE: roll <buffer> dx dy\n");
     return (FALSE);
   }
@@ -17,5 +17,5 @@
   dy = atof (argv[3]);
   if (dy != 0) {
-    fprintf (stderr, "only x rolls implemented for now\n");
+    gprint (GP_ERR, "only x rolls implemented for now\n");
   }
 
Index: trunk/Ohana/src/opihi/cmd.data/rotate.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/rotate.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/rotate.c	(revision 7917)
@@ -23,5 +23,5 @@
 
   if (argc != 3) {
-    fprintf (stderr, "USAGE: rotate <buffer> <angle>\n");
+    gprint (GP_ERR, "USAGE: rotate <buffer> <angle>\n");
     return (FALSE);
   }
@@ -29,5 +29,5 @@
 
   if ((atof (argv[1]) < -180) || (atof (argv[1]) > 180)) {
-    fprintf (stderr, "valid rotate angle between -180 and +180 degrees\n");
+    gprint (GP_ERR, "valid rotate angle between -180 and +180 degrees\n");
     return (FALSE);
   }
@@ -95,5 +95,5 @@
     X1 = NY - Yo;
     Y1 = Xo;
-    fprintf (stderr, "%f %f -> %f %f\n", Xo, Yo, X1, Y1);
+    gprint (GP_ERR, "%f %f -> %f %f\n", Xo, Yo, X1, Y1);
     gfits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);
     gfits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);
@@ -108,6 +108,6 @@
     PC21 = pc11;
     PC22 = pc12;
-    fprintf (stderr, "%f %f  ->  %f %f\n", pc11, pc12, PC11, PC12);
-    fprintf (stderr, "%f %f  ->  %f %f\n", pc21, pc22, PC21, PC22);
+    gprint (GP_ERR, "%f %f  ->  %f %f\n", pc11, pc12, PC11, PC12);
+    gprint (GP_ERR, "%f %f  ->  %f %f\n", pc21, pc22, PC21, PC22);
     gfits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);
     gfits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);
@@ -228,5 +228,5 @@
   SinAngle = sin (angle*RAD_DEG);
   
-  fprintf (stderr, "rotating: %f %f %f\n", angle, CosAngle, SinAngle);
+  gprint (GP_ERR, "rotating: %f %f %f\n", angle, CosAngle, SinAngle);
 
   Lx = NX*fabs(CosAngle) + NY*fabs(SinAngle);
@@ -235,8 +235,8 @@
   dY = MAX(0,-NX*SinAngle);
   /*
-  fprintf (stderr, "%f %f  -->  ", Xo, Yo);
+  gprint (GP_ERR, "%f %f  -->  ", Xo, Yo);
   X1 = Xo*CosAngle - Yo*SinAngle + dX;
   Y1 =  Xo*SinAngle + Yo*CosAngle + dY;
-  fprintf (stderr, "%f %f\n", X1, Y1);
+  gprint (GP_ERR, "%f %f\n", X1, Y1);
   */
 
Index: trunk/Ohana/src/opihi/cmd.data/save.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/save.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/save.c	(revision 7917)
@@ -21,6 +21,6 @@
 
   if (argc != 3) {
-    fprintf (stderr, "USAGE: save (overlay) <filename> [-c]\n");
-    fprintf (stderr, "  -c: write contour in celestial coords\n");
+    gprint (GP_ERR, "USAGE: save (overlay) <filename> [-c]\n");
+    gprint (GP_ERR, "  -c: write contour in celestial coords\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/section.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/section.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/section.c	(revision 7917)
@@ -25,5 +25,5 @@
   if (argc == 1) {
     KapaGetSection (Xgraph, "*");
-    fprintf (stderr, "USAGE: section name [x y dx dy]\n");
+    gprint (GP_ERR, "USAGE: section name [x y dx dy]\n");
     return (TRUE);
   } 
@@ -49,5 +49,5 @@
     return (TRUE);
   }
-  fprintf (stderr, "USAGE: section name [x y dx dy]\n");
+  gprint (GP_ERR, "USAGE: section name [x y dx dy]\n");
   return (FALSE);
 }
Index: trunk/Ohana/src/opihi/cmd.data/select.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/select.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/select.c	(revision 7917)
@@ -12,5 +12,5 @@
   /** check basic syntax **/
   if ((argc != 8) || strcmp(argv[2], "=") || strcmp (argv[4], "if") || strcmp (argv[6], "else")) {
-    fprintf (stderr, "SYNTAX: select vec = vec if (logic expression) else vec\n");
+    gprint (GP_ERR, "SYNTAX: select vec = vec if (logic expression) else vec\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/set.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/set.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/set.c	(revision 7917)
@@ -8,5 +8,5 @@
   /** check basic form for line **/
   if ((argc < 3) || strcmp(argv[2], "=")) {
-    fprintf (stderr, "%s = (matrix expression)\n", argv[0]);
+    gprint (GP_ERR, "%s = (matrix expression)\n", argv[0]);
     return (FALSE);
   }
@@ -28,5 +28,5 @@
 	DeleteNamedVector (out);
 	free (out);
-	fprintf (stderr, "invalid output vector name\n");
+	gprint (GP_ERR, "invalid output vector name\n");
 	return (FALSE);
       }
@@ -38,5 +38,5 @@
 	DeleteNamedBuffer (out);
 	free (out);
-	fprintf (stderr, "invalid output matrix name\n");
+	gprint (GP_ERR, "invalid output matrix name\n");
 	return (FALSE);
       }
Index: trunk/Ohana/src/opihi/cmd.data/shift.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/shift.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/shift.c	(revision 7917)
@@ -16,5 +16,5 @@
 
   if (argc != 4) {
-    fprintf (stderr, "USAGE: shift <buffer> dx dy\n");
+    gprint (GP_ERR, "USAGE: shift <buffer> dx dy\n");
     return (FALSE);
   }
@@ -36,5 +36,5 @@
 
   if ((dx > buf[0].matrix.Naxis[0]) || (dy > buf[0].matrix.Naxis[1])) {
-    fprintf (stderr, "shifting data out of image\n");
+    gprint (GP_ERR, "shifting data out of image\n");
     return (FALSE);
   }
@@ -91,5 +91,5 @@
   } 
 
-  fprintf (stderr, "%f %f\n", fdx, fdy);
+  gprint (GP_ERR, "%f %f\n", fdx, fdy);
   if ((fdx > 0) || (fdy > 0)) {
     double f00, f01, f10, f11;
Index: trunk/Ohana/src/opihi/cmd.data/sort.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/sort.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/sort.c	(revision 7917)
@@ -8,6 +8,6 @@
 
   if (argc < 2) {
-    fprintf (stderr, "USAGE: sort (vector) [vectors ...] \n");
-    fprintf (stderr, "  first vector is sort key for others\n");
+    gprint (GP_ERR, "USAGE: sort (vector) [vectors ...] \n");
+    gprint (GP_ERR, "  first vector is sort key for others\n");
     return (FALSE);
   }
@@ -20,5 +20,5 @@
   for (i = 0; i < Nvec; i++) {
     if ((vec[i] = SelectVector (argv[i + 1], OLDVECTOR, FALSE)) == NULL) {
-      fprintf (stderr, "USAGE: sort vector vector ...\n");
+      gprint (GP_ERR, "USAGE: sort vector vector ...\n");
       free (vec);
       return (FALSE);    
@@ -29,5 +29,5 @@
       if (Nval != vec[i][0].Nelements) {
 	free (vec);
-	fprintf (stderr, "vectors must all be same length\n");
+	gprint (GP_ERR, "vectors must all be same length\n");
 	return (FALSE);
       }
Index: trunk/Ohana/src/opihi/cmd.data/spline_apply.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/spline_apply.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/spline_apply.c	(revision 7917)
@@ -13,5 +13,5 @@
 
   if (argc != 7) {
-    fprintf (stderr, "USAGE: spline_apply <Y> <Y2> <out> (x/y) Nx Ny\n");
+    gprint (GP_ERR, "USAGE: spline_apply <Y> <Y2> <out> (x/y) Nx Ny\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/spline_construct.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/spline_construct.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/spline_construct.c	(revision 7917)
@@ -8,5 +8,5 @@
 
   if (argc != 4) {
-    fprintf (stderr, "USAGE: spline_construct <in> <out> (x/y)\n");
+    gprint (GP_ERR, "USAGE: spline_construct <in> <out> (x/y)\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/stats.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/stats.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/stats.c	(revision 7917)
@@ -30,5 +30,5 @@
 
   if (argc != 6) {
-    fprintf (stderr, "USAGE: stats <buffer> sx sy nx ny\n");
+    gprint (GP_ERR, "USAGE: stats <buffer> sx sy nx ny\n");
     return (FALSE);
   }
@@ -45,5 +45,5 @@
       (sx+nx > buf[0].matrix.Naxis[0]) || 
       (sy+ny > buf[0].matrix.Naxis[1])) {
-    fprintf (stderr, "region out of range\n");
+    gprint (GP_ERR, "region out of range\n");
     return (FALSE);
   }
@@ -94,6 +94,6 @@
   
   if (!Quiet) {
-    fprintf (GetOutfile(), "  mean    stdev    min     max   median   Npix   Total\n");
-    fprintf (GetOutfile(), "%7.4g %7.4g %7.4g %7.4g %7.4g %7.0f %7.4g\n", N1, sqrt (N2/Npix - N1*N1), 
+    gprint (GP_LOG, "  mean    stdev    min     max   median   Npix   Total\n");
+    gprint (GP_LOG, "%7.4g %7.4g %7.4g %7.4g %7.4g %7.0f %7.4g\n", N1, sqrt (N2/Npix - N1*N1), 
 	     min, max, median, Npix, Npix*N1);
   }
Index: trunk/Ohana/src/opihi/cmd.data/style.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/style.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/style.c	(revision 7917)
@@ -8,5 +8,5 @@
 
   if (argc > 1) {
-    fprintf (stderr, "USAGE: style [-n Ngraph] [-x plot style] [-c color] [-pt point type] [-lt line type] [-lw line width] [-sz size]\n");
+    gprint (GP_ERR, "USAGE: style [-n Ngraph] [-x plot style] [-c color] [-pt point type] [-lt line type] [-lw line width] [-sz size]\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/subraster.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/subraster.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/subraster.c	(revision 7917)
@@ -11,5 +11,5 @@
 
   if (argc != 11) {
-    fprintf (stderr, "USAGE: extract <from> <to> sx sy nx ny Sx Sy Nx Ny\n");
+    gprint (GP_ERR, "USAGE: extract <from> <to> sx sy nx ny Sx Sy Nx Ny\n");
     return (FALSE);
   }
@@ -30,6 +30,6 @@
 
   if ((Sy + ny > Ny) || (Sx + nx > Nx)) {
-    fprintf (stderr, "mismatch between source and dest regions\n");
-    fprintf (stderr, "%d + %d > %d or %d + %d > %d\n", Sy, ny, Ny, Sx, nx, Nx);
+    gprint (GP_ERR, "mismatch between source and dest regions\n");
+    gprint (GP_ERR, "%d + %d > %d or %d + %d > %d\n", Sy, ny, Ny, Sx, nx, Nx);
     return (FALSE);
   }
@@ -39,14 +39,14 @@
       (sx > ibuf[0].matrix.Naxis[0]) || 
       (sy > ibuf[0].matrix.Naxis[1])) {
-    fprintf (stderr, "region outside of source image\n");
+    gprint (GP_ERR, "region outside of source image\n");
     return (FALSE);
   }
 
   if ((Sx + nx > Nx) || (Sy + ny > Ny)) {
-    fprintf (stderr, "source region larger than dest region\n");
+    gprint (GP_ERR, "source region larger than dest region\n");
     return (FALSE);
   }
   if ((Sx < 0) || (Sy < 0)) {
-    fprintf (stderr, "dest region out of range\n");
+    gprint (GP_ERR, "dest region out of range\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/subset.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/subset.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/subset.c	(revision 7917)
@@ -13,5 +13,5 @@
 
   if ((argc < 6) || strcmp(argv[2], "=") || strcmp (argv[4], "if")) {
-    fprintf (stderr, "SYNTAX: subset vec = vec if (logic expression)\n");
+    gprint (GP_ERR, "SYNTAX: subset vec = vec if (logic expression)\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/svd.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/svd.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/svd.c	(revision 7917)
@@ -59,5 +59,5 @@
   status = svdcmp (U, W, V, Nx, Ny);
   if (!status) {
-    fprintf (stderr, "error running svdcmp\n");
+    gprint (GP_ERR, "error running svdcmp\n");
     return (FALSE);
   }
@@ -65,5 +65,5 @@
 
  usage:
-  fprintf (stderr, "USAGE: svd A = U w Vt\n");
+  gprint (GP_ERR, "USAGE: svd A = U w Vt\n");
   return (FALSE);
   
Index: trunk/Ohana/src/opihi/cmd.data/swapbytes.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/swapbytes.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/swapbytes.c	(revision 7917)
@@ -8,5 +8,5 @@
 
   if (argc != 2) {
-    fprintf (stderr, "USAGE: swapbytes <buffer>\n");
+    gprint (GP_ERR, "USAGE: swapbytes <buffer>\n");
     return (FALSE);
   }
@@ -17,5 +17,5 @@
   ny = buf[0].matrix.Naxis[1];
 
-  fprintf (stderr, "npix: %d\n", nx*ny);
+  gprint (GP_ERR, "npix: %d\n", nx*ny);
 
   V = buf[0].matrix.buffer;
Index: trunk/Ohana/src/opihi/cmd.data/teststats.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/teststats.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/teststats.c	(revision 7917)
@@ -31,5 +31,5 @@
 
   if (argc != 2) {
-    fprintf (stderr, "USAGE: teststats (vector)\n");
+    gprint (GP_ERR, "USAGE: teststats (vector)\n");
     return (FALSE);
   }
@@ -98,5 +98,5 @@
 
   if (!Quiet) {
-    fprintf (stderr, "mean: %f, stdev: %f, min: %f, max: %f, median: %f, mode: %f, Npts: %d\n", 
+    gprint (GP_ERR, "mean: %f, stdev: %f, min: %f, max: %f, median: %f, mode: %f, Npts: %d\n", 
 	     mean, stdev, min, max, median, mode, N);
   }
Index: trunk/Ohana/src/opihi/cmd.data/textline.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/textline.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/textline.c	(revision 7917)
@@ -41,10 +41,10 @@
 
   if (argc != 4) {
-    fprintf (stderr, "USAGE: text x y (line) [-fn (font) size] [-rot angle]\n");
+    gprint (GP_ERR, "USAGE: text x y (line) [-fn (font) size] [-rot angle]\n");
     return (FALSE);
   }
 
   if (strlen (argv[3]) > 127) {
-    fprintf (stderr, "labels currently limited to 127 chars\n");
+    gprint (GP_ERR, "labels currently limited to 127 chars\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/tv.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/tv.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/tv.c	(revision 7917)
@@ -31,5 +31,5 @@
 
   if ((argc != 2) && (argc != 4)) {
-    fprintf (stderr, "USAGE: tv <buffer> [zero range] [-n Nimage] [-log] [-kill]\n");
+    gprint (GP_ERR, "USAGE: tv <buffer> [zero range] [-n Nimage] [-log] [-kill]\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/tvcontour.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/tvcontour.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/tvcontour.c	(revision 7917)
@@ -71,5 +71,5 @@
 
   if ((argc != 4) && (argc != 5)) {
-    fprintf (stderr, "USAGE: contour <buffer> (overlay) level [Npix]\n");
+    gprint (GP_ERR, "USAGE: contour <buffer> (overlay) level [Npix]\n");
     return (FALSE);
   }
@@ -88,5 +88,5 @@
   Ny = buf[0].header.Naxis[1]/Npix;
   if (Npix != 1) {
-    fprintf (GetOutfile(), "rebin by a factor of %d (%d,%d)\n", Npix, Nx, Ny);
+    gprint (GP_LOG, "rebin by a factor of %d (%d,%d)\n", Npix, Nx, Ny);
     ALLOCATE (matrix, float, Nx*Ny);
     bzero (matrix, Nx*Ny*sizeof(float));
@@ -104,5 +104,5 @@
     }
   } else {
-    fprintf (stderr, "using scale of 1\n");
+    gprint (GP_ERR, "using scale of 1\n");
     matrix = (float *)(buf[0].matrix.buffer);
   }
@@ -119,5 +119,5 @@
   d11 = (level - *v10);
   for (j = 1; j < Ny; j++) {
-    if (!(j%10)) fprintf (stderr, ".");
+    if (!(j%10)) gprint (GP_ERR, ".");
     for (i = 1; i < Nx; i++, v00++, v01++, v10++, v11++) {
 
@@ -281,5 +281,5 @@
 
   if (Npix != 1) free (matrix);
-  fprintf (stderr, "\n");
+  gprint (GP_ERR, "\n");
   return (TRUE);
 }
Index: trunk/Ohana/src/opihi/cmd.data/tvgrid.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/tvgrid.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/tvgrid.c	(revision 7917)
@@ -24,6 +24,6 @@
   
   if (argc != 3) {
-    fprintf (stderr, "USAGE: tvgrid (overlay) (buffer)\n");
-    fprintf (stderr, " (overlay) may be: red, green, blue, yellow\n");
+    gprint (GP_ERR, "USAGE: tvgrid (overlay) (buffer)\n");
+    gprint (GP_ERR, " (overlay) may be: red, green, blue, yellow\n");
     return (FALSE);
   }
@@ -34,5 +34,5 @@
   XY_to_RD (&ra0, &dec0, 0.0, 0.0, &coords);
   XY_to_RD (&ra1, &dec1, (double)buf[0].header.Naxis[0], (double)buf[0].header.Naxis[1], &coords);
-  fprintf (stderr, "%f %f  %f %f\n", ra0, dec0, ra1, dec1);
+  gprint (GP_ERR, "%f %f  %f %f\n", ra0, dec0, ra1, dec1);
   
   Noverlay = 0;
@@ -64,5 +64,5 @@
   ndig1 = 3 + log10(MAX(dec0, dec1)) + ndig2;
   sprintf (format, "%%%d.%df", ndig1, ndig2);
-  fprintf (stderr, "format: %s..\n", format);
+  gprint (GP_ERR, "format: %s..\n", format);
 
   NX = buf[0].header.Naxis[0];
@@ -118,5 +118,5 @@
   ndig1 = 3 + log10(MAX(ra0, ra1)) + ndig2;
   sprintf (format, "%%%d.%df", ndig1, ndig2);
-  fprintf (stderr, "format: %s..\n", format);
+  gprint (GP_ERR, "format: %s..\n", format);
 
   dDEC = MAX (fabs(dec1 - dec0) / 100.0, 0.1);
Index: trunk/Ohana/src/opihi/cmd.data/ungridify.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/ungridify.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/ungridify.c	(revision 7917)
@@ -11,5 +11,5 @@
 
   if (argc != 9) {
-    fprintf (stderr, "USAGE: ungridify buffer Xmin Xmax Ymin Ymax x y z\n");
+    gprint (GP_ERR, "USAGE: ungridify buffer Xmin Xmax Ymin Ymax x y z\n");
     return (FALSE);
   }
@@ -50,5 +50,5 @@
   }
   if (n != Nx*Ny) {
-    fprintf (stderr, "error in ungrid: %d vs %d (%d x %d)\n", n, Nx*Ny, Nx, Ny);
+    gprint (GP_ERR, "error in ungrid: %d vs %d (%d x %d)\n", n, Nx*Ny, Nx, Ny);
   }
   vx[0].Nelements = vy[0].Nelements = vz[0].Nelements = n;
Index: trunk/Ohana/src/opihi/cmd.data/uniq.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/uniq.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/uniq.c	(revision 7917)
@@ -8,5 +8,5 @@
 
   if (argc != 3) {
-    fprintf (stderr, "USAGE: uniq (in) (out)\n");
+    gprint (GP_ERR, "USAGE: uniq (in) (out)\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/unsign.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/unsign.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/unsign.c	(revision 7917)
@@ -5,7 +5,7 @@
   if (argc == 1) {
     if (FT_UNSIGN_MODE) 
-      fprintf (stderr, "mode is now UNSIGNED int \n");
+      gprint (GP_ERR, "mode is now UNSIGNED int \n");
     else
-      fprintf (stderr, "mode is now SIGNED int \n");
+      gprint (GP_ERR, "mode is now SIGNED int \n");
     return (TRUE);
   }
@@ -24,5 +24,5 @@
   }
 
-  fprintf (stderr, "USAGE: unsign [0/1]\n");
+  gprint (GP_ERR, "USAGE: unsign [0/1]\n");
   return (FALSE);
 }
Index: trunk/Ohana/src/opihi/cmd.data/vbin.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/vbin.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/vbin.c	(revision 7917)
@@ -25,6 +25,6 @@
 
   if (argc != 4) {
-    fprintf (stderr, "USAGE: vbin <input> <output> scale \n");
-    fprintf (stderr, "  (use interpolate to expand)\n");
+    gprint (GP_ERR, "USAGE: vbin <input> <output> scale \n");
+    gprint (GP_ERR, "  (use interpolate to expand)\n");
     return (FALSE);
   }
@@ -35,5 +35,5 @@
   scale  = atof (argv[3]);
   if ((int)(scale) != scale) {
-    fprintf (stderr, "integer binning only, please\n");
+    gprint (GP_ERR, "integer binning only, please\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/vclip.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/vclip.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/vclip.c	(revision 7917)
@@ -27,5 +27,5 @@
 
   if ((argc != 6) && (!(DO_INF || DO_NAN))) {
-    fprintf (stderr, "USAGE: vclip (vector) [min Vmin max Vmax] [-inf val] [-nan val]\n");
+    gprint (GP_ERR, "USAGE: vclip (vector) [min Vmin max Vmax] [-inf val] [-nan val]\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/vcontour.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/vcontour.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/vcontour.c	(revision 7917)
@@ -62,9 +62,9 @@
   Vector *xvec, *yvec, *zvec;
 
-  fprintf (stderr, "vcontour not working yet\n");
+  gprint (GP_ERR, "vcontour not working yet\n");
   return (FALSE);
 
   if (argc != 7) {
-    fprintf (stderr, "USAGE: vcontour x y z Xc Yc (level)\n");
+    gprint (GP_ERR, "USAGE: vcontour x y z Xc Yc (level)\n");
     return (FALSE);
   }
@@ -109,5 +109,5 @@
   d11 = (level - *v10);
   for (j = 1; j < Ny; j++) {
-    if (!(j%10)) fprintf (stderr, ".");
+    if (!(j%10)) gprint (GP_ERR, ".");
     for (i = 1; i < Nx; i++, v00++, v01++, v10++, v11++) {
 
@@ -275,4 +275,4 @@
 
   if (Npix != 1) free (matrix);
-  fprintf (stderr, "\n");
+  gprint (GP_ERR, "\n");
 }
Index: trunk/Ohana/src/opihi/cmd.data/vgauss.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/vgauss.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/vgauss.c	(revision 7917)
@@ -7,5 +7,5 @@
   c = get_variable (A); \
   if (c == NULL) { \
-    fprintf (stderr, "missing fit parameter A\n"); \
+    gprint (GP_ERR, "missing fit parameter A\n"); \
     return (FALSE); \
   } \
@@ -31,6 +31,6 @@
 
   if (argc != 5) {
-    fprintf (stderr, "USAGE: vgauss <x> <y> <dy> (out)\n");
-    fprintf (stderr, " uses guesses: C0 (mean), C1 (sigma), C2 (norm), C3 (sky)\n");
+    gprint (GP_ERR, "USAGE: vgauss <x> <y> <dy> (out)\n");
+    gprint (GP_ERR, " uses guesses: C0 (mean), C1 (sigma), C2 (norm), C3 (sky)\n");
     return (FALSE);
   }
@@ -64,7 +64,7 @@
     dchisq = ochisq - chisq;
     ochisq = chisq;
-    if (!Quiet) fprintf (stderr, "dchisq: %f, Ndof: %d\n", dchisq, Npts - Npar);
+    if (!Quiet) gprint (GP_ERR, "dchisq: %f, Ndof: %d\n", dchisq, Npts - Npar);
   }  
-  if (!Quiet) fprintf (stderr, "%d iterations\n", i); 
+  if (!Quiet) gprint (GP_ERR, "%d iterations\n", i); 
 
   for (i = 0; i < Npts; i++) {
@@ -79,5 +79,5 @@
     sprintf (name, "C%d", i);
     set_variable (name, par[i]);
-    if (!Quiet) fprintf (stderr, "%d  %f  %f\n", i, par[i], sqrt(covar[i][i]));
+    if (!Quiet) gprint (GP_ERR, "%d  %f  %f\n", i, par[i], sqrt(covar[i][i]));
     sprintf (name, "dC%d", i);
     set_variable (name, sqrt(covar[i][i]));
Index: trunk/Ohana/src/opihi/cmd.data/vgrid.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/vgrid.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/vgrid.c	(revision 7917)
@@ -11,5 +11,5 @@
 
   if (argc != 11) {
-    fprintf (stderr, "USAGE: vgrid x y z buffer Xmin Xmax dX Ymin Ymax dY\n");
+    gprint (GP_ERR, "USAGE: vgrid x y z buffer Xmin Xmax dX Ymin Ymax dY\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/vload.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/vload.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/vload.c	(revision 7917)
@@ -23,5 +23,5 @@
     remove_argument (N, &argc, argv);
     if (!type) {
-      fprintf (stderr, "unknown Kii point type %s\n", argv[N]);
+      gprint (GP_ERR, "unknown Kii point type %s\n", argv[N]);
       return (FALSE);
     }
@@ -36,5 +36,5 @@
 
   if (argc != 4) {
-    fprintf (stderr, "USAGE: vload (overlay) (xvec) (yvec) [-n]\n");
+    gprint (GP_ERR, "USAGE: vload (overlay) (xvec) (yvec) [-n]\n");
     return (FALSE);
   }
@@ -49,5 +49,5 @@
   if ((vecy = SelectVector (argv[3], OLDVECTOR, TRUE)) == NULL) return (FALSE);
   if (vecx[0].Nelements != vecy[0].Nelements) {
-    fprintf (stderr, "mismatched vector lengths\n");
+    gprint (GP_ERR, "mismatched vector lengths\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/vpop.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/vpop.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/vpop.c	(revision 7917)
@@ -7,6 +7,6 @@
 
   if (argc != 2) {
-    fprintf (stderr, "USAGE: vpop (vector)\n");
-    fprintf (stderr, "  remove first element of vector\n");
+    gprint (GP_ERR, "USAGE: vpop (vector)\n");
+    gprint (GP_ERR, "  remove first element of vector\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/vroll.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/vroll.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/vroll.c	(revision 7917)
@@ -8,6 +8,6 @@
 
   if (argc != 2) {
-    fprintf (stderr, "USAGE: vroll (vector)\n");
-    fprintf (stderr, "  roll vector elements (first goes to end)\n");
+    gprint (GP_ERR, "USAGE: vroll (vector)\n");
+    gprint (GP_ERR, "  roll vector elements (first goes to end)\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/vsmooth.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/vsmooth.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/vsmooth.c	(revision 7917)
@@ -16,5 +16,5 @@
 
   if (argc != 3) {
-    fprintf (stderr, "USAGE: vsmooth (input) sigma\n");
+    gprint (GP_ERR, "USAGE: vsmooth (input) sigma\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.data/vstat.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/vstat.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/vstat.c	(revision 7917)
@@ -32,5 +32,5 @@
 
   if (argc != 2) {
-    fprintf (stderr, "USAGE: vstat (vector)\n");
+    gprint (GP_ERR, "USAGE: vstat (vector)\n");
     return (FALSE);
   }
@@ -99,5 +99,5 @@
 skip:
   if (!Quiet) {
-    fprintf (stderr, "mean: %g, stdev: %g, min: %g, max: %g, median: %g, mode: %g, Npts: %d\n", 
+    gprint (GP_ERR, "mean: %g, stdev: %g, min: %g, max: %g, median: %g, mode: %g, Npts: %d\n", 
 	     mean, stdev, min, max, median, mode, N);
   }
Index: trunk/Ohana/src/opihi/cmd.data/wd.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/wd.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/wd.c	(revision 7917)
@@ -52,5 +52,5 @@
     if (!strcasecmp (argv[N], "f") || !strcasecmp (argv[N], "false")) outUnsign = FALSE;
     if (outUnsign == -1) {
-      fprintf (stderr, "-unsign options: t, f, true, false\n");
+      gprint (GP_ERR, "-unsign options: t, f, true, false\n");
       return (FALSE);
     }
@@ -60,5 +60,5 @@
 
   if (argc != 3) {
-    fprintf (stderr, "USAGE: wd <buffer> <filename> [-bitpix N] [-bscale X] [-bzero X] [-newplane]\n");
+    gprint (GP_ERR, "USAGE: wd <buffer> <filename> [-bitpix N] [-bscale X] [-bzero X] [-newplane]\n");
     return (FALSE);
   }
@@ -115,5 +115,5 @@
     f = fopen (argv[2], "r+");
     if (f == NULL) {
-      fprintf (stderr, "failed to write file\n");
+      gprint (GP_ERR, "failed to write file\n");
       status = FALSE;
       goto done1;
@@ -124,5 +124,5 @@
     status = fwrite (Xhead.buffer, 1, Xhead.size, f);
     if (status != Xhead.size) {
-      fprintf (stderr, "ERROR: failed writing data to image header\n");
+      gprint (GP_ERR, "ERROR: failed writing data to image header\n");
       status = FALSE;
       goto done1;
@@ -144,5 +144,5 @@
     fclose (f);
     if (status != temp_header.size) {
-      fprintf (stderr, "failed to write file\n");
+      gprint (GP_ERR, "failed to write file\n");
       status = FALSE;
       goto done1;
@@ -150,5 +150,5 @@
     /* write the matrix buffer (automatically goes to end of file */
     if (!gfits_write_matrix (argv[2], &temp_matrix)) {
-      fprintf (stderr, "failed to write file\n");
+      gprint (GP_ERR, "failed to write file\n");
       status = FALSE;
       goto done1;
@@ -164,5 +164,5 @@
   /* the actual write-to-disk goes here */
   if (!gfits_write_header (argv[2], &temp_header)) {
-    fprintf (stderr, "failed to write header\n");
+    gprint (GP_ERR, "failed to write header\n");
     gfits_free_header (&temp_header);
     gfits_free_matrix (&temp_matrix);
@@ -171,5 +171,5 @@
   
   if (!gfits_write_matrix (argv[2], &temp_matrix)) {
-    fprintf (stderr, "failed to write matrix\n");
+    gprint (GP_ERR, "failed to write matrix\n");
     gfits_free_header (&temp_header);
     gfits_free_matrix (&temp_matrix);
Index: trunk/Ohana/src/opihi/cmd.data/write_vectors.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/write_vectors.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/write_vectors.c	(revision 7917)
@@ -18,5 +18,5 @@
 
   if (argc < 3) {
-    fprintf (stderr, "USAGE: write [-f \"format\"] file vector vector ...\n");
+    gprint (GP_ERR, "USAGE: write [-f \"format\"] file vector vector ...\n");
     return (FALSE);
   }
@@ -25,5 +25,5 @@
   f = fopen (argv[1], "w");
   if (f == (FILE *) NULL) {
-    fprintf (stderr, "can't open file for write\n");
+    gprint (GP_ERR, "can't open file for write\n");
     return (FALSE);
   }
@@ -32,5 +32,5 @@
   Nvec = (argc - 2);
   if (Nvec < 1) {
-      fprintf (stderr, "USAGE: write (file) vector vector ...\n");
+      gprint (GP_ERR, "USAGE: write (file) vector vector ...\n");
       fclose (f);
       return (FALSE);
@@ -41,6 +41,6 @@
   for (i = 0; i < Nvec; i++) {
     if ((vec[i] = SelectVector (argv[i + 2], OLDVECTOR, FALSE)) == NULL) {
-      fprintf (stderr, "unknown vector %s\n", argv[i+2]);
-      fprintf (stderr, "USAGE: write (file) vector vector ...\n");
+      gprint (GP_ERR, "unknown vector %s\n", argv[i+2]);
+      gprint (GP_ERR, "USAGE: write (file) vector vector ...\n");
       free (vec);
       fclose (f);
@@ -53,5 +53,5 @@
   for (i = 0; i < Nvec; i++) {
     if (vec[0][0].Nelements != Ne) {
-      fprintf (stderr, "error: vectors must all be the same size\n");
+      gprint (GP_ERR, "error: vectors must all be the same size\n");
       free (vec);
       fclose (f);
@@ -86,5 +86,5 @@
     p1 = strchr (p0, '%');
     if (p1 == (char *) NULL) {
-      fprintf (stderr, "mismatch between format and values\n");
+      gprint (GP_ERR, "mismatch between format and values\n");
       free (fmttype);
       for (i = 0; i < Nvec; i++) free (fmtlist[i]);
@@ -109,5 +109,5 @@
 	break;
       default:
-	fprintf (stderr, "syntax error in format (only e,f,d,c,x allowed)\n");
+	gprint (GP_ERR, "syntax error in format (only e,f,d,c,x allowed)\n");
 	return (FALSE);
     }
Index: trunk/Ohana/src/opihi/cmd.data/zap.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/zap.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/zap.c	(revision 7917)
@@ -16,5 +16,5 @@
 
   if (argc != 6) {
-    fprintf (stderr, "USAGE: zap <buffer> sx sy nx ny [-v value]\n");
+    gprint (GP_ERR, "USAGE: zap <buffer> sx sy nx ny [-v value]\n");
     return (FALSE);
   }
@@ -38,5 +38,5 @@
 
  error:
-  fprintf (stderr, "region out of range\n");
+  gprint (GP_ERR, "region out of range\n");
   return (FALSE);
 }
Index: trunk/Ohana/src/opihi/cmd.data/zplot.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/zplot.c	(revision 7080)
+++ trunk/Ohana/src/opihi/cmd.data/zplot.c	(revision 7917)
@@ -18,5 +18,5 @@
 
   if (argc != 6) {
-    fprintf (stderr, "USAGE: zplot <x> <y> <z> min max\n");
+    gprint (GP_ERR, "USAGE: zplot <x> <y> <z> min max\n");
     return (FALSE);
   }
@@ -30,9 +30,9 @@
   if ((zvec = SelectVector (argv[3], OLDVECTOR, TRUE)) == NULL) return (FALSE);
   if (xvec[0].Nelements != yvec[0].Nelements) {
-    fprintf (stderr, "vectors %s and %s not the same length\n", argv[1], argv[2]);
+    gprint (GP_ERR, "vectors %s and %s not the same length\n", argv[1], argv[2]);
     return (FALSE);
   }
   if (xvec[0].Nelements != zvec[0].Nelements) {
-    fprintf (stderr, "vectors %s and %s not the same length\n", argv[1], argv[3]);
+    gprint (GP_ERR, "vectors %s and %s not the same length\n", argv[1], argv[3]);
     return (FALSE);
   }
