Index: /trunk/Ohana/src/opihi/cmd.data/vgauss.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/vgauss.c	(revision 4302)
+++ /trunk/Ohana/src/opihi/cmd.data/vgauss.c	(revision 4303)
@@ -14,5 +14,5 @@
 int vgauss (int argc, char **argv) {
 
-  int i, Npts, Npar;
+  int i, N, Npts, Npar, Quiet;
   float par[4], *v1, *v2, *dy, **covar;
   float chisq, ochisq, dchisq;
@@ -20,6 +20,17 @@
   char *c, name[16];
 
+  Quiet = FALSE;
+  if ((N = get_argument (argc, argv, "-q"))) {
+    Quiet = TRUE;
+    remove_argument (N, &argc, argv);
+  }
+  if ((N = get_argument (argc, argv, "-quiet"))) {
+    Quiet = TRUE;
+    remove_argument (N, &argc, argv);
+  }
+
   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");
     return (FALSE);
   }
@@ -46,13 +57,14 @@
   for (i = 0; i < Npts; i++, v1++, v2++) *v2 = 1.0 / (*v1 * *v1);
   
-  ochisq = mrqinit (xvec[0].elements, yvec[0].elements, dy, Npts, par, Npar, fgaussOD, TRUE);
-  dchisq = ochisq;
+  ochisq = mrqinit (xvec[0].elements, yvec[0].elements, dy, Npts, par, Npar, fgaussOD, !Quiet);
+  dchisq = ochisq + 2*Npts;
 
-  for (i = 0; (i < 20) && ((dchisq > (Npts - Npar)) || (dchisq <= 0.0)); i++) {
-    chisq = mrqmin (xvec[0].elements, yvec[0].elements, dy, Npts, par, Npar, fgaussOD, TRUE);
+  for (i = 0; (i < 20) && ((dchisq > 0.1*(Npts - Npar)) || (dchisq <= 0.0)); i++) {
+    chisq = mrqmin (xvec[0].elements, yvec[0].elements, dy, Npts, par, Npar, fgaussOD, !Quiet);
     dchisq = ochisq - chisq;
     ochisq = chisq;
-    fprintf (stderr, "dchisq: %f, Ndof: %d\n", dchisq, Npts - Npar);
+    if (!Quiet) fprintf (stderr, "dchisq: %f, Ndof: %d\n", dchisq, Npts - Npar);
   }  
+  if (!Quiet) fprintf (stderr, "%d iterations\n", i); 
 
   for (i = 0; i < Npts; i++) {
@@ -67,5 +79,7 @@
     sprintf (name, "C%d", i);
     set_variable (name, par[i]);
-    fprintf (stderr, "%d  %f  %f\n", i, par[i], covar[i][i]);
+    if (!Quiet) fprintf (stderr, "%d  %f  %f\n", i, par[i], sqrt(covar[i][i]));
+    sprintf (name, "dC%d", i);
+    set_variable (name, sqrt(covar[i][i]));
   }
 
