Index: trunk/Ohana/src/opihi/cmd.astro/czplot.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/czplot.c	(revision 19823)
+++ trunk/Ohana/src/opihi/cmd.astro/czplot.c	(revision 20936)
@@ -3,7 +3,7 @@
 int czplot (int argc, char **argv) {
   
-  int i, kapa, Npts;
+  int i, kapa;
   double min, range, Rmin, Rmax;
-  float *in, *out, *r, *d, *x, *y;
+  opihi_flt *out, *r, *d, *x, *y;
   Vector Xvec, Yvec, Zvec, *xvec, *yvec, *zvec;
   Graphdata graphmode;
@@ -26,4 +26,8 @@
   if ((zvec = SelectVector (argv[3], OLDVECTOR, TRUE)) == NULL) return (FALSE);
 
+  REQUIRE_VECTOR_FLT (xvec, FALSE); 
+  REQUIRE_VECTOR_FLT (yvec, FALSE); 
+  REQUIRE_VECTOR_FLT (zvec, FALSE); 
+
   if (xvec[0].Nelements != yvec[0].Nelements) {
     gprint (GP_ERR, "vectors %s and %s not the same length\n", argv[1], argv[2]);
@@ -34,21 +38,28 @@
     return (FALSE);
   }
-  Xvec.Nelements = xvec[0].Nelements;
-  Yvec.Nelements = xvec[0].Nelements;
-  Zvec.Nelements = zvec[0].Nelements;
-  ALLOCATE (Xvec.elements, float, Xvec.Nelements);
-  ALLOCATE (Yvec.elements, float, Yvec.Nelements);
-  ALLOCATE (Zvec.elements, float, Zvec.Nelements);
+  SetVector (&Xvec, OPIHI_FLT, xvec[0].Nelements);
+  SetVector (&Yvec, OPIHI_FLT, xvec[0].Nelements);
+  SetVector (&Zvec, OPIHI_FLT, xvec[0].Nelements);
   
-  r   = xvec[0].elements;
-  d   = yvec[0].elements;
-  in  = zvec[0].elements;
-  x   = Xvec.elements;
-  y   = Yvec.elements;
-  out = Zvec.elements;
-  for (i = 0; i < Zvec.Nelements; i++, in++, out++, r++, d++, x++, y++) {
-    *out = MIN (1.0, MAX (0.01, (*in - min) / range));
+  r   = xvec[0].elements.Flt;
+  d   = yvec[0].elements.Flt;
+  x   = Xvec.elements.Flt;
+  y   = Yvec.elements.Flt;
+  for (i = 0; i < Zvec.Nelements; i++, r++, d++, x++, y++) {
     *r = ohana_normalize_angle (*r);
-    fRD_to_XY (x, y, *r, *d, &graphmode.coords);
+    RD_to_XY (x, y, *r, *d, &graphmode.coords);
+  }
+
+  out = Zvec.elements.Flt;
+  if (zvec->type == OPIHI_FLT) {
+    opihi_flt *in  = zvec[0].elements.Flt;
+    for (i = 0; i < Zvec.Nelements; i++, in++, out++) {
+      *out = MIN (1.0, MAX (0.01, (*in - min) / range));
+    }
+  } else {
+    opihi_int *in  = zvec[0].elements.Int;
+    for (i = 0; i < Zvec.Nelements; i++, in++, out++) {
+      *out = MIN (1.0, MAX (0.01, (*in - min) / range));
+    }
   }
 
@@ -56,10 +67,9 @@
   graphmode.size = -1; /* point size determined by Zvec */
   graphmode.etype = 0;
-  Npts = Xvec.Nelements;
-  PlotVectorTriplet (kapa, Npts, Xvec.elements, Yvec.elements, Zvec.elements, &graphmode);
+  PlotVectorTriplet (kapa, &Xvec, &Yvec, &Zvec, &graphmode);
 
-  free (Xvec.elements);
-  free (Yvec.elements);
-  free (Zvec.elements);
+  free (Xvec.elements.Flt);
+  free (Yvec.elements.Flt);
+  free (Zvec.elements.Flt);
 
   return (TRUE);
