Index: trunk/Ohana/src/opihi/cmd.astro/biassub.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/biassub.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/biassub.c	(revision 7917)
@@ -21,6 +21,6 @@
 
   if (argc != 7) {
-    fprintf (stderr, "USAGE: biassub <buffer> sx sy nx ny dir [-v N V]\n");
-    fprintf (stderr, "  optional storage of vector and sequence in N and V\n");
+    gprint (GP_ERR, "USAGE: biassub <buffer> sx sy nx ny dir [-v N V]\n");
+    gprint (GP_ERR, "  optional storage of vector and sequence in N and V\n");
     return (FALSE);
   }
@@ -33,5 +33,5 @@
   dir = atof (argv[6]);
   if ((dir != 0) && (dir != 1)) {
-    fprintf (stderr, " dir must be either 0 (x) or 1 (y)\n");
+    gprint (GP_ERR, " dir must be either 0 (x) or 1 (y)\n");
     return (FALSE);
   }
@@ -45,10 +45,10 @@
     nlong = nx;
   }    
-  fprintf (GetOutfile(), "start: %d %d  size: %d %d\n", sx, sy, nx, ny);
+  gprint (GP_LOG, "start: %d %d  size: %d %d\n", sx, sy, nx, ny);
 
     if ((sx < 0) || (sy < 0) || 
       (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);
   }
Index: trunk/Ohana/src/opihi/cmd.astro/cgrid.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/cgrid.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/cgrid.c	(revision 7917)
@@ -20,5 +20,5 @@
 
   if (argc != 1) {
-    fprintf (stderr, "USAGE: cgrid [style]\n");
+    gprint (GP_ERR, "USAGE: cgrid [style]\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.astro/coords.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/coords.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/coords.c	(revision 7917)
@@ -43,5 +43,5 @@
   if (!strcmp(&coords.ctype[4], "-WRP")) {
     if (MOSAIC == NULL) {
-      fprintf (stderr, "must supply mosaic for WRP coords\n");
+      gprint (GP_ERR, "must supply mosaic for WRP coords\n");
       return (FALSE);
     }
@@ -53,5 +53,5 @@
   if (mode == SKY) {
     XY_to_RD (&R, &D, X, Y, &coords);
-    fprintf (GetOutfile(), "%10.6f %10.6f\n", R, D);
+    gprint (GP_LOG, "%10.6f %10.6f\n", R, D);
     set_variable ("RA", R);
     set_variable ("DEC", D);
@@ -61,5 +61,5 @@
   if (mode == PIXEL) {
     RD_to_XY (&X, &Y, R, D, &coords);
-    fprintf (GetOutfile(), "%7.2f %7.2f\n", X, Y);
+    gprint (GP_LOG, "%7.2f %7.2f\n", X, Y);
     set_variable ("Xc", X);
     set_variable ("Yc", Y);
@@ -69,6 +69,6 @@
 
  syntax:
-  fprintf (stderr, "USAGE: coords [buffer] (-c R D) / (-p X Y)\n");
-  fprintf (stderr, "only one of -p or -c can be used\n");
+  gprint (GP_ERR, "USAGE: coords [buffer] (-c R D) / (-p X Y)\n");
+  gprint (GP_ERR, "only one of -p or -c can be used\n");
  escape:
   if (MOSAIC != NULL) free (MOSAIC);
Index: trunk/Ohana/src/opihi/cmd.astro/cplot.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/cplot.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/cplot.c	(revision 7917)
@@ -11,5 +11,5 @@
 
   if (argc != 3) {
-    fprintf (stderr, "USAGE: cplot <ra> <dec> [style]\n");
+    gprint (GP_ERR, "USAGE: cplot <ra> <dec> [style]\n");
     return (FALSE);
   }
@@ -24,5 +24,5 @@
 
   if (xvec[0].Nelements != yvec[0].Nelements) {
-    fprintf (stderr, "vectors are not the same length\n");
+    gprint (GP_ERR, "vectors are not the same length\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.astro/csystem.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/csystem.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/csystem.c	(revision 7917)
@@ -13,5 +13,5 @@
    
   if (argc != 5) {
-    fprintf (stderr, "USAGE: csystems [C/G/E/H] [C/G/E/H] X Y\n");
+    gprint (GP_ERR, "USAGE: csystems [C/G/E/H] [C/G/E/H] X Y\n");
     return (FALSE);
   }
@@ -22,5 +22,5 @@
     switch (argv[2][0]) {
     case 'C': 
-      fprintf (stderr, "same coordinate system\n");
+      gprint (GP_ERR, "same coordinate system\n");
       return (TRUE);
       break;
@@ -51,5 +51,5 @@
       break;
     case 'G':
-      fprintf (stderr, "error: conversions between galactic and ecliptic not implemented\n");
+      gprint (GP_ERR, "error: conversions between galactic and ecliptic not implemented\n");
       return (FALSE);
       phi = -62.6*RAD_DEG;
@@ -73,5 +73,5 @@
       break;
     case 'E':
-      fprintf (stderr, "error: conversions between galactic and ecliptic not implemented\n");
+      gprint (GP_ERR, "error: conversions between galactic and ecliptic not implemented\n");
       return (FALSE);
       gettimeofday (&now, (struct timezone *) NULL);
@@ -91,5 +91,5 @@
 
   if (xvec[0].Nelements != yvec[0].Nelements) {
-    fprintf (stderr, "vectors %s and %s not the same length\n", argv[3], argv[4]);
+    gprint (GP_ERR, "vectors %s and %s not the same length\n", argv[3], argv[4]);
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.astro/ctimes.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/ctimes.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/ctimes.c	(revision 7917)
@@ -16,5 +16,5 @@
 
   if (argc != 3) {
-    fprintf (stderr, "USAGE: ctimes [-ref (value) / -abs (date)] [-var name]\n");
+    gprint (GP_ERR, "USAGE: ctimes [-ref (value) / -abs (date)] [-var name]\n");
     return (FALSE);
   }
@@ -35,5 +35,5 @@
       free (Variable);
     } else {
-      fprintf (stderr, "time: %s\n", date);
+      gprint (GP_ERR, "time: %s\n", date);
     }
 
@@ -44,10 +44,10 @@
 
     if (strcmp (argv[1], "-abs")) {
-      fprintf (stderr, "syntax error\n");
+      gprint (GP_ERR, "syntax error\n");
       return (FALSE);
     }
 
     if (!str_to_time (argv[2], &time)) { 
-      fprintf (stderr, "syntax error\n");
+      gprint (GP_ERR, "syntax error\n");
       return (FALSE);
     }
@@ -60,5 +60,5 @@
       return (TRUE);
     }
-    fprintf (stderr, "time: %f\n", value);
+    gprint (GP_ERR, "time: %f\n", value);
     return (TRUE);
   }
Index: trunk/Ohana/src/opihi/cmd.astro/cval.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/cval.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/cval.c	(revision 7917)
@@ -9,5 +9,5 @@
 
   if (argc != 7) {
-    fprintf (stderr, "USAGE: cval <buffer> x y dx dy sky\n");
+    gprint (GP_ERR, "USAGE: cval <buffer> x y dx dy sky\n");
     return (FALSE);
   }
@@ -28,5 +28,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);
   }
@@ -45,5 +45,5 @@
   }
 
-  fprintf (stderr, "cval: %f  sn: %f\n", cval, sqrt(sn));
+  gprint (GP_ERR, "cval: %f  sn: %f\n", cval, sqrt(sn));
 
   return (TRUE);
Index: trunk/Ohana/src/opihi/cmd.astro/czplot.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/czplot.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/czplot.c	(revision 7917)
@@ -12,5 +12,5 @@
 
   if (argc != 6) {
-    fprintf (stderr, "USAGE: czplot <x> <y> <z> min max\n");
+    gprint (GP_ERR, "USAGE: czplot <x> <y> <z> min max\n");
     return (FALSE);
   }
@@ -28,9 +28,9 @@
 
   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);
   }
Index: trunk/Ohana/src/opihi/cmd.astro/drizzle.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/drizzle.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/drizzle.c	(revision 7917)
@@ -27,7 +27,7 @@
 
   if (argc != 5) {
-    fprintf (stderr, "USAGE: transform <from> <to> <weight> (Nlinear)\n");
-    fprintf (stderr, "  output buffer must exist with target astrometry header\n");
-    fprintf (stderr, "  Nlinear is the pixel scale for linear astrometric transformation\n");
+    gprint (GP_ERR, "USAGE: transform <from> <to> <weight> (Nlinear)\n");
+    gprint (GP_ERR, "  output buffer must exist with target astrometry header\n");
+    gprint (GP_ERR, "  Nlinear is the pixel scale for linear astrometric transformation\n");
     return (FALSE);
   }
@@ -43,5 +43,5 @@
   /* for the moment, disable WRP / DIS */
   if (!strcmp(&coords_in.ctype[4], "-WRP") || !strcmp(&coords_out.ctype[4], "-WRP")) {
-    fprintf (stderr, "WRP mode not implemented for astrom\n");
+    gprint (GP_ERR, "WRP mode not implemented for astrom\n");
     return (FALSE);
   }
@@ -50,5 +50,5 @@
   scale_out = sqrt(fabs(coords_out.cdelt1*coords_out.cdelt2*(coords_out.pc1_1*coords_out.pc2_2 - coords_out.pc1_2*coords_out.pc2_1)));
   
-  fprintf (stderr, "%f - %f\n", scale_in, scale_out);
+  gprint (GP_ERR, "%f - %f\n", scale_in, scale_out);
 
   if (scale_in > scale_out) {
Index: trunk/Ohana/src/opihi/cmd.astro/fixwrap.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/fixwrap.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/fixwrap.c	(revision 7917)
@@ -8,5 +8,5 @@
 
   if (argc != 3) {
-    fprintf (stderr, "USAGE: fixwrap <in> (rowfix)\n");
+    gprint (GP_ERR, "USAGE: fixwrap <in> (rowfix)\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.astro/flux.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/flux.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/flux.c	(revision 7917)
@@ -12,5 +12,5 @@
 
   if (argc != 3) {
-    fprintf (stderr, "USAGE: flux <buffer> (region)\n");
+    gprint (GP_ERR, "USAGE: flux <buffer> (region)\n");
     return (FALSE);
   }
@@ -20,5 +20,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);
   }
@@ -46,5 +46,5 @@
     bb[i] = hypot (bx[i], by[i]) * SIGN (bx[i]*by[i+1] - bx[i+1]*by[i]);
   }
-  fprintf (stderr, "%f %f %f %f\n", bb[0], bb[1], bb[2], bb[3]);
+  gprint (GP_ERR, "%f %f %f %f\n", bb[0], bb[1], bb[2], bb[3]);
 
   /* this only works for convex contours --
@@ -70,5 +70,5 @@
   signal (SIGINT, oldsignal);
 
-  fprintf (GetOutfile(), "flux: %f\n", flux);
+  gprint (GP_LOG, "flux: %f\n", flux);
   set_variable ("FLUX", flux);
   return (TRUE);
Index: trunk/Ohana/src/opihi/cmd.astro/gauss.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/gauss.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/gauss.c	(revision 7917)
@@ -33,10 +33,10 @@
   
   if ((argc != 2) && (argc != 3)) {
-    fprintf (stderr, "USAGE: gauss Npix [Nspots] [-border N] [-sat cnts]\n");
+    gprint (GP_ERR, "USAGE: gauss Npix [Nspots] [-border N] [-sat cnts]\n");
     return (FALSE);
   }
   
   if (Ximage < 1) {
-    fprintf (stderr, "no active TV\n");
+    gprint (GP_ERR, "no active TV\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.astro/getvel.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/getvel.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/getvel.c	(revision 7917)
@@ -13,5 +13,5 @@
 
   if (argc != 5) {
-    fprintf (stderr, "USAGE: rotcurve buf X Y curve.txt\n");
+    gprint (GP_ERR, "USAGE: rotcurve buf X Y curve.txt\n");
     return (FALSE);
   }
@@ -19,5 +19,5 @@
   f = fopen (argv[4], "r");
   if (f == (FILE *) NULL) {
-    fprintf (stderr, "can't find rotation curve data file %s\n", argv[4]);
+    gprint (GP_ERR, "can't find rotation curve data file %s\n", argv[4]);
     return (FALSE);
   }
@@ -45,5 +45,5 @@
   while (L >= 360) {L -= 360.0;}
   while (L < 0.0)  {L += 360.0;}
-  fprintf (stderr, "L: %f\n", L);
+  gprint (GP_ERR, "L: %f\n", L);
 
   cl = cos (L*RAD_DEG);
@@ -59,6 +59,6 @@
   for (n = 0; (n < Ncurve) && (wr < W[n]); n++);
   if ((n == 0) || (n == Ncurve)) {
-    fprintf (stderr, "velocity out of reasonable range\n");
-    fprintf (stderr, "%f %f %f %f\n", V, wr, W[0], W[Ncurve-1]);
+    gprint (GP_ERR, "velocity out of reasonable range\n");
+    gprint (GP_ERR, "%f %f %f %f\n", V, wr, W[0], W[Ncurve-1]);
     return (TRUE);
   }
@@ -66,6 +66,6 @@
   fr = (Ro/r);
   if (r < fabs(Rs)) { /* can't be on rotation curve */
-    fprintf (stderr, "velocity out of reasonable range\n");
-    fprintf (stderr, "%f %f %f %f %f %f %f\n", V, wr, W[0], W[Ncurve-1], r, fr, Rs);
+    gprint (GP_ERR, "velocity out of reasonable range\n");
+    gprint (GP_ERR, "%f %f %f %f %f %f %f\n", V, wr, W[0], W[Ncurve-1], r, fr, Rs);
     return (TRUE);
   }
@@ -75,5 +75,5 @@
     d = Ro*cl + sqrt(r*r - Rs*Rs);
   
-  fprintf (stderr, "dist: %f, vel: %f\n", d, V);
+  gprint (GP_ERR, "dist: %f, vel: %f\n", d, V);
 
   return (TRUE);
Index: trunk/Ohana/src/opihi/cmd.astro/imfit.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/imfit.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/imfit.c	(revision 7917)
@@ -65,5 +65,5 @@
     qrgauss_setup (argv[N]);
     if (fitfunc == NULL) {
-      fprintf (stderr, "unknown function %s\n", argv[N]);
+      gprint (GP_ERR, "unknown function %s\n", argv[N]);
       return (FALSE);
     }
@@ -72,5 +72,5 @@
 
   if (argc != 6) {
-    fprintf (stderr, "USAGE: imfit <buffer> sx sy nx ny\n");
+    gprint (GP_ERR, "USAGE: imfit <buffer> sx sy nx ny\n");
     return (FALSE);
   }
@@ -170,7 +170,7 @@
   if (VERBOSE) {
     for (i = 0; i < Npar; i++) {
-      fprintf (stderr, "%g ", par[i]);
+      gprint (GP_ERR, "%g ", par[i]);
     }
-    fprintf (stderr, "\n");
+    gprint (GP_ERR, "\n");
   }
 
@@ -186,5 +186,5 @@
 
 range:
-  fprintf (stderr, "region out of range\n");
+  gprint (GP_ERR, "region out of range\n");
   return (FALSE);
 }
Index: trunk/Ohana/src/opihi/cmd.astro/imsub.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/imsub.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/imsub.c	(revision 7917)
@@ -30,5 +30,5 @@
     qrgauss_setup (argv[N]);
     if (fitfunc == NULL) {
-      fprintf (stderr, "unknown function %s\n", argv[N]);
+      gprint (GP_ERR, "unknown function %s\n", argv[N]);
       return (FALSE);
     }
@@ -37,5 +37,5 @@
 
   if (argc != 6) {
-    fprintf (stderr, "USAGE: imfit <buffer> sx sy nx ny\n");
+    gprint (GP_ERR, "USAGE: imfit <buffer> sx sy nx ny\n");
     return (FALSE);
   }
@@ -74,5 +74,5 @@
 
 range:
-  fprintf (stderr, "region out of range\n");
+  gprint (GP_ERR, "region out of range\n");
   return (FALSE);
 }
Index: trunk/Ohana/src/opihi/cmd.astro/medianmap.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/medianmap.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/medianmap.c	(revision 7917)
@@ -31,7 +31,7 @@
 
   if (argc != 5) {
-    fprintf (stderr, "USAGE: medianmap (in) (out) Nx Ny [-range min max]\n");
-    fprintf (stderr, "       Nx, Ny specify dimensions of output image\n");
-    fprintf (stderr, "       min, max specify fractional range for sorted average\n");
+    gprint (GP_ERR, "USAGE: medianmap (in) (out) Nx Ny [-range min max]\n");
+    gprint (GP_ERR, "       Nx, Ny specify dimensions of output image\n");
+    gprint (GP_ERR, "       min, max specify fractional range for sorted average\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.astro/mkgauss.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/mkgauss.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/mkgauss.c	(revision 7917)
@@ -21,5 +21,5 @@
 
   if ((argc < 3) || (argc > 5)) {
-    fprintf (stderr, "USAGE: mkgauss (buffer) (sigma) [[sy/sx] angle]\n");
+    gprint (GP_ERR, "USAGE: mkgauss (buffer) (sigma) [[sy/sx] angle]\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.astro/multifit.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/multifit.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/multifit.c	(revision 7917)
@@ -11,5 +11,5 @@
 
   if (argc != 2) {
-    fprintf (stderr, "USAGE: multifit (Norder)\n");
+    gprint (GP_ERR, "USAGE: multifit (Norder)\n");
     return (FALSE);
   }
@@ -170,5 +170,5 @@
   
  escape: 
-  fprintf (stderr, "syntax error\n");
+  gprint (GP_ERR, "syntax error\n");
   return (FALSE);
   
Index: trunk/Ohana/src/opihi/cmd.astro/objload.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/objload.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/objload.c	(revision 7917)
@@ -27,5 +27,5 @@
 
   if (argc != 3) {
-    fprintf (stderr, "USAGE: objload (overlay) <filename>\n");
+    gprint (GP_ERR, "USAGE: objload (overlay) <filename>\n");
     return (FALSE);
   }
@@ -33,5 +33,5 @@
   f = fopen (argv[2], "r");
   if (f == (FILE *) NULL) {
-    fprintf (stderr, "ERROR: can't find object file %s\n", argv[2]);
+    gprint (GP_ERR, "ERROR: can't find object file %s\n", argv[2]);
     return (FALSE);
   }
@@ -69,5 +69,5 @@
   free (line);
 
-  fprintf (stderr, "loaded %d objects\n", Noverlay);
+  gprint (GP_ERR, "loaded %d objects\n", Noverlay);
   return (TRUE);
 }
Index: trunk/Ohana/src/opihi/cmd.astro/outline.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/outline.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/outline.c	(revision 7917)
@@ -14,5 +14,5 @@
 
   if (argc != 9) {
-    fprintf (stderr, "USAGE: outline x y dx dy dxy Io (buffer) Npar\n");
+    gprint (GP_ERR, "USAGE: outline x y dx dy dxy Io (buffer) Npar\n");
     return (FALSE);
   }
@@ -43,5 +43,5 @@
 
   chisq = outline_chi (Io, in, buf[0].matrix.Naxis[0], buf[0].matrix.Naxis[1], &frac);
-  fprintf (stderr, "chisq (1): %f\n", chisq);
+  gprint (GP_ERR, "chisq (1): %f\n", chisq);
   
   for (j = 0; j < 15; j++) {
@@ -63,5 +63,5 @@
 	  chisq = nchisq;
 	}
-	fprintf (stderr, "frac: %f  %f %f   %f\n", frac, par[2], par[3], chisq);
+	gprint (GP_ERR, "frac: %f  %f %f   %f\n", frac, par[2], par[3], chisq);
       }
     }
@@ -112,9 +112,9 @@
 	}	
 	/*
-	fprintf (stderr, "try: %d  %f   ", i, chisq);
+	gprint (GP_ERR, "try: %d  %f   ", i, chisq);
 	for (k = 0; k < 5; k++) {
-	  fprintf (stderr, "%f ", par[k]);
+	  gprint (GP_ERR, "%f ", par[k]);
 	}
-	fprintf (stderr, "\n");
+	gprint (GP_ERR, "\n");
 	*/
 	ochisq = chisq;
@@ -130,13 +130,13 @@
     }
 
-    fprintf (stderr, "try: %d  %f   ", j, chisq);
+    gprint (GP_ERR, "try: %d  %f   ", j, chisq);
     for (i = 0; i < 5; i++) {
-      fprintf (stderr, "%f ", par[i]);
-    }
-    fprintf (stderr, "\n          ");
+      gprint (GP_ERR, "%f ", par[i]);
+    }
+    gprint (GP_ERR, "\n          ");
     for (i = 0; i < 5; i++) {
-      fprintf (stderr, "%f ", dpar[i]);
-    }
-    fprintf (stderr, "\n");
+      gprint (GP_ERR, "%f ", dpar[i]);
+    }
+    gprint (GP_ERR, "\n");
     dchi -= chisq;
 
Index: trunk/Ohana/src/opihi/cmd.astro/outline2.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/outline2.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/outline2.c	(revision 7917)
@@ -18,5 +18,5 @@
 
   if (argc != 9) {
-    fprintf (stderr, "USAGE: outline x y dx dy dxy Io dIo (buffer)\n");
+    gprint (GP_ERR, "USAGE: outline x y dx dy dxy Io dIo (buffer)\n");
     return (FALSE);
   }
@@ -78,5 +78,5 @@
 
   if (Npts == 0) {
-    fprintf (stderr, "no valid points in box, try again\n");
+    gprint (GP_ERR, "no valid points in box, try again\n");
     free (xs);
     free (ys);
@@ -87,5 +87,5 @@
   plot_outline ();
   chisq = outline_chi (Io, in);
-  fprintf (stderr, "starting chisq: %f for %d pts\n", chisq, Npts);
+  gprint (GP_ERR, "starting chisq: %f for %d pts\n", chisq, Npts);
 
 # if (1)
@@ -139,13 +139,13 @@
     }
 
-    fprintf (stderr, "try: %d  %f   ", j, chisq);
+    gprint (GP_ERR, "try: %d  %f   ", j, chisq);
     for (i = 0; i < 5; i++) {
-      fprintf (stderr, "%f ", par[i]);
-    }
-    fprintf (stderr, "\n          ");
+      gprint (GP_ERR, "%f ", par[i]);
+    }
+    gprint (GP_ERR, "\n          ");
     for (i = 0; i < 5; i++) {
-      fprintf (stderr, "%f ", dpar[i]);
-    }
-    fprintf (stderr, "\n");
+      gprint (GP_ERR, "%f ", dpar[i]);
+    }
+    gprint (GP_ERR, "\n");
     dchi -= chisq;
 
Index: trunk/Ohana/src/opihi/cmd.astro/polar.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/polar.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/polar.c	(revision 7917)
@@ -12,5 +12,5 @@
 
   if (argc != 4) {
-    fprintf (stderr, "USAGE: polar in out\n");
+    gprint (GP_ERR, "USAGE: polar in out\n");
     return (FALSE);
   }
@@ -25,5 +25,5 @@
   ny = mask[0].matrix.Naxis[1];
   if ((Nx != nx) && (Ny != ny)) {
-    fprintf (stderr, "output and mask must have same dimensions\n");
+    gprint (GP_ERR, "output and mask must have same dimensions\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.astro/precess.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/precess.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/precess.c	(revision 7917)
@@ -15,6 +15,6 @@
   in_epoch = out_epoch = 2000.0;
   if (argc != 5) {
-    fprintf (stderr, "USAGE:  precess (from) (to) RA DEC \n");
-    fprintf (stderr, "   you may use B for B1950.0 or J for J2000.0\n");
+    gprint (GP_ERR, "USAGE:  precess (from) (to) RA DEC \n");
+    gprint (GP_ERR, "   you may use B for B1950.0 or J for J2000.0\n");
     return (FALSE);
   }
@@ -56,5 +56,5 @@
   }
 
-  fprintf (stderr, "converting from J%f to J%f\n", in_epoch, out_epoch);
+  gprint (GP_ERR, "converting from J%f to J%f\n", in_epoch, out_epoch);
 
   T = (out_epoch - in_epoch) / 100.0;
@@ -77,5 +77,5 @@
     if (RA < 0)
       RA += 360;
-    fprintf (GetOutfile(), "%f %f -> %f %f\n", A, D, RA, DEC);
+    gprint (GP_LOG, "%f %f -> %f %f\n", A, D, RA, DEC);
     return (TRUE);
   }    
@@ -86,5 +86,5 @@
 
   if (xvec[0].Nelements != yvec[0].Nelements) {
-    fprintf (stderr, "vectors %s and %s not the same length\n", argv[3], argv[4]);
+    gprint (GP_ERR, "vectors %s and %s not the same length\n", argv[3], argv[4]);
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.astro/profile.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/profile.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/profile.c	(revision 7917)
@@ -10,5 +10,5 @@
 
   if (argc != 7) {
-    fprintf (stderr, "USAGE: profile <buffer> <X vector> <Y vector> x y N\n");
+    gprint (GP_ERR, "USAGE: profile <buffer> <X vector> <Y vector> x y N\n");
     return (FALSE);
   }
@@ -47,5 +47,5 @@
 
 range_error:
-  fprintf (stderr, "region out of range\n");
+  gprint (GP_ERR, "region out of range\n");
   return (FALSE);
 }
Index: trunk/Ohana/src/opihi/cmd.astro/region.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/region.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/region.c	(revision 7917)
@@ -33,6 +33,6 @@
 
   if ((argc != 4) && (argc != 5)) {
-    fprintf (stderr, "USAGE: region Ra Dec Radius [projection] [orientation]\n");
-    fprintf (stderr, " current: %f %f (%f x %f) (%s)\n", 
+    gprint (GP_ERR, "USAGE: region Ra Dec Radius [projection] [orientation]\n");
+    gprint (GP_ERR, " current: %f %f (%f x %f) (%s)\n", 
 	     graphmode.coords.crval1, graphmode.coords.crval2, 
 	     fabs(graphmode.xmax - graphmode.xmin), 
Index: trunk/Ohana/src/opihi/cmd.astro/rotcurve.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/rotcurve.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/rotcurve.c	(revision 7917)
@@ -21,5 +21,5 @@
 
   if (argc != 5) {
-    fprintf (stderr, "USAGE: rotcurve in out mask curve.txt\n");
+    gprint (GP_ERR, "USAGE: rotcurve in out mask curve.txt\n");
     return (FALSE);
   }
@@ -27,5 +27,5 @@
   f = fopen (argv[4], "r");
   if (f == (FILE *) NULL) {
-    fprintf (stderr, "can't find rotation curve data file %s\n", argv[4]);
+    gprint (GP_ERR, "can't find rotation curve data file %s\n", argv[4]);
     return (FALSE);
   }
@@ -45,5 +45,5 @@
   ny = mask[0].matrix.Naxis[1];
   if ((Nx != nx) && (Ny != ny)) {
-    fprintf (stderr, "output and mask must have same dimensions\n");
+    gprint (GP_ERR, "output and mask must have same dimensions\n");
     return (FALSE);
   }
@@ -74,8 +74,8 @@
   X = (L - Lo) / dL + Xo;
   if ((X >= Nx) || (X < 0)) {
-    fprintf (stderr, "X out of range\n");
+    gprint (GP_ERR, "X out of range\n");
     return (FALSE);
   }
-  fprintf (stderr, "L: %f (%d)\n", L, X);
+  gprint (GP_ERR, "L: %f (%d)\n", L, X);
 
   cl = cos (L*RAD_DEG);
Index: trunk/Ohana/src/opihi/cmd.astro/scale.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/scale.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/scale.c	(revision 7917)
@@ -6,5 +6,5 @@
 
   if (argc != 5) {
-    fprintf (stderr, "USAGE: scale (buffer) (key) [-r/-w] (value)\n");
+    gprint (GP_ERR, "USAGE: scale (buffer) (key) [-r/-w] (value)\n");
     return (FALSE);
   }  
@@ -13,10 +13,10 @@
 
   if (strcasecmp (argv[2], "bzero") && strcasecmp (argv[2], "bscale")) {
-    fprintf (stderr, "use bzero or bscale only\n");
+    gprint (GP_ERR, "use bzero or bscale only\n");
     return (FALSE);
   }
     
   if (strcmp (argv[3], "-r") && strcmp (argv[3], "-w")) {
-    fprintf (stderr, "use -r or -w only\n");
+    gprint (GP_ERR, "use -r or -w only\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.astro/sexigesimal.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/sexigesimal.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/sexigesimal.c	(revision 7917)
@@ -18,5 +18,5 @@
 
   if ((argc != 3) && (argc != 2)) {
-    fprintf (stderr, "USAGE: sexigesimal (from) [to]\n");
+    gprint (GP_ERR, "USAGE: sexigesimal (from) [to]\n");
     return (FALSE);
   }
@@ -24,5 +24,5 @@
   if (HMS) {
     if (!dms_to_ddd (&value, argv[1])) {
-      fprintf (stderr, "syntax error in input\n");
+      gprint (GP_ERR, "syntax error in input\n");
       return (FALSE);
     }
@@ -30,5 +30,5 @@
       set_variable (argv[2], value);
     } else {
-      fprintf (GetOutfile(), "%10.6f\n", value);
+      gprint (GP_LOG, "%10.6f\n", value);
     }
     return (TRUE);
@@ -39,5 +39,5 @@
       set_str_variable (argv[2], string);
     } else {
-      fprintf (GetOutfile(), "%s\n", string);
+      gprint (GP_LOG, "%s\n", string);
     }
     return (TRUE);
Index: trunk/Ohana/src/opihi/cmd.astro/spec.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/spec.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/spec.c	(revision 7917)
@@ -34,10 +34,10 @@
   
   if (argc != 7) {
-    fprintf (stderr, "USAGE: spec buffer x y1 y2 X Y [-Nlong N] [-Ngap N] [-Nrow N]\n");
+    gprint (GP_ERR, "USAGE: spec buffer x y1 y2 X Y [-Nlong N] [-Ngap N] [-Nrow N]\n");
     return (FALSE);
   }
   
   if ((Nrow < 1) || (Nlong < 2) || (Ngap < 1) || (Nlong - Ngap < 2)) {
-    fprintf (stderr, "bad values for options\n");
+    gprint (GP_ERR, "bad values for options\n");
     return (FALSE);
   }
@@ -79,5 +79,5 @@
     }
     X1 = SX / S;
-    fprintf (stderr, "%4d %4d %5.1f ", j+y1, X1, sky);
+    gprint (GP_ERR, "%4d %4d %5.1f ", j+y1, X1, sky);
     /*    X1 = MAX (MIN (X1, Xo + 0.5+Ngap), Xo - 0.5+Ngap); */
     V = (float *) (buf[0].matrix.buffer) + Nx*(y1 + j) + X1 - (int)(0.5*Nlong);
@@ -105,5 +105,5 @@
     xvec[0].elements[j] = j + y1; 
     yvec[0].elements[j] = F / R; 
-    fprintf (stderr, " %5.1f %7.1f  %6.2f\n", sky, sky2, (F/R));
+    gprint (GP_ERR, " %5.1f %7.1f  %6.2f\n", sky, sky2, (F/R));
   }    
 
Index: trunk/Ohana/src/opihi/cmd.astro/star.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/star.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/star.c	(revision 7917)
@@ -23,5 +23,5 @@
   
   if ((argc != 4) && (argc != 5)) {
-    fprintf (stderr, "USAGE: star (buffer) x y [dx] [-border N] [-sat cnts]\n");
+    gprint (GP_ERR, "USAGE: star (buffer) x y [dx] [-border N] [-sat cnts]\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.astro/testfit.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/testfit.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/testfit.c	(revision 7917)
@@ -11,5 +11,5 @@
 
   if (argc != 4) {
-    fprintf (stderr, "USAGE: imfit <x> <y> <dy>\n");
+    gprint (GP_ERR, "USAGE: imfit <x> <y> <dy>\n");
     return (FALSE);
   }
@@ -37,5 +37,5 @@
 
     chisq = mrqmin (xvec[0].elements, yvec[0].elements, dy, Npts, par, Npar, fgaussOD);
-    fprintf (stderr, "chisq: %f, %f %f %f %f\n", chisq, par[0], par[1], par[2], par[3]);
+    gprint (GP_ERR, "chisq: %f, %f %f %f %f\n", chisq, par[0], par[1], par[2], par[3]);
 
   }  
@@ -44,5 +44,5 @@
 
   for (i = 0; i < Npar; i++) {
-    fprintf (stderr, "%d  %f  %f\n", i, par[i], covar[i][i]);
+    gprint (GP_ERR, "%d  %f  %f\n", i, par[i], covar[i][i]);
   }
 
@@ -128,5 +128,5 @@
 
   if (argc != 6) {
-    fprintf (stderr, "USAGE: imfit <buffer> sx sy nx ny\n");
+    gprint (GP_ERR, "USAGE: imfit <buffer> sx sy nx ny\n");
     return (FALSE);
   }
@@ -143,5 +143,5 @@
       (sx+nx > buffers[Nbuf].matrix.Naxis[0]) || 
       (sy+ny > buffers[Nbuf].matrix.Naxis[1])) {
-    fprintf (stderr, "region out of range\n");
+    gprint (GP_ERR, "region out of range\n");
     return (FALSE);
   }
Index: trunk/Ohana/src/opihi/cmd.astro/transform.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/transform.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/transform.c	(revision 7917)
@@ -14,5 +14,5 @@
 
   if (argc != 3) {
-    fprintf (stderr, "USAGE: transform <from> <to>\n");
+    gprint (GP_ERR, "USAGE: transform <from> <to>\n");
     return (FALSE);
   }
@@ -26,5 +26,5 @@
   /* for the moment, disable WRP / DIS */
   if (!strcmp(&coords_in.ctype[4], "-WRP") || !strcmp(&coords_out.ctype[4], "-WRP")) {
-    fprintf (stderr, "WRP mode not implemented for astrom\n");
+    gprint (GP_ERR, "WRP mode not implemented for astrom\n");
     return (FALSE);
   }
@@ -46,5 +46,5 @@
 
   for (j = 0; j < in[0].header.Naxis[1]; j++) {
-    fprintf (stderr, ".");
+    gprint (GP_ERR, ".");
     for (i = 0; i < in[0].header.Naxis[0]; i++, Vin++) {
       for (dx = 0.0 + 0.5*frac; dx < 1.0 - 0.5*frac; dx += frac) {
Index: trunk/Ohana/src/opihi/cmd.astro/warp.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/warp.c	(revision 7680)
+++ trunk/Ohana/src/opihi/cmd.astro/warp.c	(revision 7917)
@@ -27,7 +27,7 @@
 
   if (argc != 5) {
-    fprintf (stderr, "USAGE: transform <from> <to> <weight> (Nlinear)\n");
-    fprintf (stderr, "  output buffer must exist with target astrometry header\n");
-    fprintf (stderr, "  Nlinear is the pixel scale for linear astrometric transformation\n");
+    gprint (GP_ERR, "USAGE: transform <from> <to> <weight> (Nlinear)\n");
+    gprint (GP_ERR, "  output buffer must exist with target astrometry header\n");
+    gprint (GP_ERR, "  Nlinear is the pixel scale for linear astrometric transformation\n");
     return (FALSE);
   }
@@ -43,5 +43,5 @@
   /* for the moment, disable WRP / DIS */
   if (!strcmp(&coords_in.ctype[4], "-WRP") || !strcmp(&coords_out.ctype[4], "-WRP")) {
-    fprintf (stderr, "WRP mode not implemented for astrom\n");
+    gprint (GP_ERR, "WRP mode not implemented for astrom\n");
     return (FALSE);
   }
@@ -50,5 +50,5 @@
   scale_out = sqrt(fabs(coords_out.cdelt1*coords_out.cdelt2*(coords_out.pc1_1*coords_out.pc2_2 - coords_out.pc1_2*coords_out.pc2_1)));
   
-  fprintf (stderr, "%f - %f\n", scale_in, scale_out);
+  gprint (GP_ERR, "%f - %f\n", scale_in, scale_out);
 
   if (scale_in > scale_out) {
