Index: trunk/Ohana/src/opihi/cmd.astro/cgrid.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/cgrid.c	(revision 13479)
+++ trunk/Ohana/src/opihi/cmd.astro/cgrid.c	(revision 20936)
@@ -3,6 +3,6 @@
   if (N == NELEMENTS) { \
     NELEMENTS +=200; \
-    REALLOCATE (Xvec.elements, float, NELEMENTS); \
-    REALLOCATE (Yvec.elements, float, NELEMENTS); \
+    REALLOCATE (Xvec.elements.Flt, opihi_flt, NELEMENTS); \
+    REALLOCATE (Yvec.elements.Flt, opihi_flt, NELEMENTS); \
   }
 
@@ -95,8 +95,8 @@
   
   /* prepare vectors to hold data */
+  N = 0;
   NELEMENTS = 200;
-  ALLOCATE (Xvec.elements, float, NELEMENTS);
-  ALLOCATE (Yvec.elements, float, NELEMENTS);
-  N = 0;
+  SetVector (&Xvec, OPIHI_FLT, NELEMENTS);
+  SetVector (&Yvec, OPIHI_FLT, NELEMENTS);
   
   /***  do consecutive RA lines, first increasing **/
@@ -109,23 +109,23 @@
     for (d = firstDEC; (d < 90 + dD) && (LOnPic || NorthPole || SouthPole); d += dD) {
       D = MAX (-90, MIN(90, d));
-      status = fRD_to_XY (&Xvec.elements[N], &Yvec.elements[N], r, D, &graphmode.coords);
-      /*
-      if ((fabs(Xvec.elements[N] - Xvec.elements[N-1]) > 10) && (fabs(Yvec.elements[N] - Yvec.elements[N-1]) > 10))
-	First = TRUE;
-	*/
-      if ((Xvec.elements[N] >= graphmode.xmin) && (Xvec.elements[N] <= graphmode.xmax) && 
-	  (Yvec.elements[N] >= graphmode.ymin) && (Yvec.elements[N] <= graphmode.ymax) && status) {
-	N++;
-	CHECKELEMENTS;
-	OnPic = TRUE;
-	if (!First) {
-	  Xvec.elements[N] = Xvec.elements[N-1];
-	  Yvec.elements[N] = Yvec.elements[N-1];
-	  N++;
-	  CHECKELEMENTS;
-	} else {
-	  if (N > 1) {
-	    Xvec.elements[N-2] = Xvec.elements[N-1];
-	    Yvec.elements[N-2] = Yvec.elements[N-1];
+      status = RD_to_XY (&Xvec.elements.Flt[N], &Yvec.elements.Flt[N], r, D, &graphmode.coords);
+      /*
+      if ((fabs(Xvec.elements.Flt[N] - Xvec.elements.Flt[N-1]) > 10) && (fabs(Yvec.elements.Flt[N] - Yvec.elements.Flt[N-1]) > 10))
+	First = TRUE;
+	*/
+      if ((Xvec.elements.Flt[N] >= graphmode.xmin) && (Xvec.elements.Flt[N] <= graphmode.xmax) && 
+	  (Yvec.elements.Flt[N] >= graphmode.ymin) && (Yvec.elements.Flt[N] <= graphmode.ymax) && status) {
+	N++;
+	CHECKELEMENTS;
+	OnPic = TRUE;
+	if (!First) {
+	  Xvec.elements.Flt[N] = Xvec.elements.Flt[N-1];
+	  Yvec.elements.Flt[N] = Yvec.elements.Flt[N-1];
+	  N++;
+	  CHECKELEMENTS;
+	} else {
+	  if (N > 1) {
+	    Xvec.elements.Flt[N-2] = Xvec.elements.Flt[N-1];
+	    Yvec.elements.Flt[N-2] = Yvec.elements.Flt[N-1];
 	    N--;
 	  }
@@ -142,23 +142,23 @@
     for (d = firstDEC; (d > -90 - dD) && (LOnPic || NorthPole || SouthPole); d -= dD) {
       D = MAX (-90, MIN(90, d));
-      status = fRD_to_XY (&Xvec.elements[N], &Yvec.elements[N], r, D, &graphmode.coords);
-      /*
-      if ((fabs(Xvec.elements[N] - Xvec.elements[N-1]) > 10) && (fabs(Yvec.elements[N] - Yvec.elements[N-1]) > 10))
-	First = TRUE;
-	*/
-      if ((Xvec.elements[N] >= graphmode.xmin) && (Xvec.elements[N] <= graphmode.xmax) && 
-	  (Yvec.elements[N] >= graphmode.ymin) && (Yvec.elements[N] <= graphmode.ymax) && status) {
-	N++;
-	CHECKELEMENTS;
-	OnPic = TRUE;
-	if (!First) {
-	  Xvec.elements[N] = Xvec.elements[N-1];
-	  Yvec.elements[N] = Yvec.elements[N-1];
-	  N++;
-	  CHECKELEMENTS;
-	} else {
-	  if (N > 1) {
-	    Xvec.elements[N-2] = Xvec.elements[N-1];
-	    Yvec.elements[N-2] = Yvec.elements[N-1];
+      status = RD_to_XY (&Xvec.elements.Flt[N], &Yvec.elements.Flt[N], r, D, &graphmode.coords);
+      /*
+      if ((fabs(Xvec.elements.Flt[N] - Xvec.elements.Flt[N-1]) > 10) && (fabs(Yvec.elements.Flt[N] - Yvec.elements.Flt[N-1]) > 10))
+	First = TRUE;
+	*/
+      if ((Xvec.elements.Flt[N] >= graphmode.xmin) && (Xvec.elements.Flt[N] <= graphmode.xmax) && 
+	  (Yvec.elements.Flt[N] >= graphmode.ymin) && (Yvec.elements.Flt[N] <= graphmode.ymax) && status) {
+	N++;
+	CHECKELEMENTS;
+	OnPic = TRUE;
+	if (!First) {
+	  Xvec.elements.Flt[N] = Xvec.elements.Flt[N-1];
+	  Yvec.elements.Flt[N] = Yvec.elements.Flt[N-1];
+	  N++;
+	  CHECKELEMENTS;
+	} else {
+	  if (N > 1) {
+	    Xvec.elements.Flt[N-2] = Xvec.elements.Flt[N-1];
+	    Yvec.elements.Flt[N-2] = Yvec.elements.Flt[N-1];
 	    N--;
 	  }
@@ -181,23 +181,23 @@
     for (d = firstDEC; (d < 90 + dD) && (LOnPic || NorthPole || SouthPole); d += dD) {
       D = MAX (-90, MIN(90, d));
-      status = fRD_to_XY (&Xvec.elements[N], &Yvec.elements[N], r, D, &graphmode.coords);
-      /*
-      if ((fabs(Xvec.elements[N] - Xvec.elements[N-1]) > 10) && (fabs(Yvec.elements[N] - Yvec.elements[N-1]) > 10))
-	First = TRUE;
-	*/
-      if ((Xvec.elements[N] >= graphmode.xmin) && (Xvec.elements[N] <= graphmode.xmax) && 
-	  (Yvec.elements[N] >= graphmode.ymin) && (Yvec.elements[N] <= graphmode.ymax) && status) {
-	N++;
-	CHECKELEMENTS;
-	OnPic = TRUE;
-	if (!First) {
-	  Xvec.elements[N] = Xvec.elements[N-1];
-	  Yvec.elements[N] = Yvec.elements[N-1];
-	  N++;
-	  CHECKELEMENTS;
-	} else {
-	  if (N > 1) {
-	    Xvec.elements[N-2] = Xvec.elements[N-1];
-	    Yvec.elements[N-2] = Yvec.elements[N-1];
+      status = RD_to_XY (&Xvec.elements.Flt[N], &Yvec.elements.Flt[N], r, D, &graphmode.coords);
+      /*
+      if ((fabs(Xvec.elements.Flt[N] - Xvec.elements.Flt[N-1]) > 10) && (fabs(Yvec.elements.Flt[N] - Yvec.elements.Flt[N-1]) > 10))
+	First = TRUE;
+	*/
+      if ((Xvec.elements.Flt[N] >= graphmode.xmin) && (Xvec.elements.Flt[N] <= graphmode.xmax) && 
+	  (Yvec.elements.Flt[N] >= graphmode.ymin) && (Yvec.elements.Flt[N] <= graphmode.ymax) && status) {
+	N++;
+	CHECKELEMENTS;
+	OnPic = TRUE;
+	if (!First) {
+	  Xvec.elements.Flt[N] = Xvec.elements.Flt[N-1];
+	  Yvec.elements.Flt[N] = Yvec.elements.Flt[N-1];
+	  N++;
+	  CHECKELEMENTS;
+	} else {
+	  if (N > 1) {
+	    Xvec.elements.Flt[N-2] = Xvec.elements.Flt[N-1];
+	    Yvec.elements.Flt[N-2] = Yvec.elements.Flt[N-1];
 	    N--;
 	  }
@@ -214,23 +214,23 @@
     for (d = firstDEC; (d > -90 - dD) && (LOnPic || NorthPole || SouthPole); d -= dD) {
       D = MAX (-90, MIN(90, d));
-      status = fRD_to_XY (&Xvec.elements[N], &Yvec.elements[N], r, D, &graphmode.coords);
-      /*
-      if ((fabs(Xvec.elements[N] - Xvec.elements[N-1]) > 10) && (fabs(Yvec.elements[N] - Yvec.elements[N-1]) > 10))
-	First = TRUE;
-	*/
-      if ((Xvec.elements[N] >= graphmode.xmin) && (Xvec.elements[N] <= graphmode.xmax) && 
-	  (Yvec.elements[N] >= graphmode.ymin) && (Yvec.elements[N] <= graphmode.ymax) && status) {
-	N++;
-	CHECKELEMENTS;
-	OnPic = TRUE;
-	if (!First) {
-	  Xvec.elements[N] = Xvec.elements[N-1];
-	  Yvec.elements[N] = Yvec.elements[N-1];
-	  N++;
-	  CHECKELEMENTS;
-	} else {
-	  if (N > 1) {
-	    Xvec.elements[N-2] = Xvec.elements[N-1];
-	    Yvec.elements[N-2] = Yvec.elements[N-1];
+      status = RD_to_XY (&Xvec.elements.Flt[N], &Yvec.elements.Flt[N], r, D, &graphmode.coords);
+      /*
+      if ((fabs(Xvec.elements.Flt[N] - Xvec.elements.Flt[N-1]) > 10) && (fabs(Yvec.elements.Flt[N] - Yvec.elements.Flt[N-1]) > 10))
+	First = TRUE;
+	*/
+      if ((Xvec.elements.Flt[N] >= graphmode.xmin) && (Xvec.elements.Flt[N] <= graphmode.xmax) && 
+	  (Yvec.elements.Flt[N] >= graphmode.ymin) && (Yvec.elements.Flt[N] <= graphmode.ymax) && status) {
+	N++;
+	CHECKELEMENTS;
+	OnPic = TRUE;
+	if (!First) {
+	  Xvec.elements.Flt[N] = Xvec.elements.Flt[N-1];
+	  Yvec.elements.Flt[N] = Yvec.elements.Flt[N-1];
+	  N++;
+	  CHECKELEMENTS;
+	} else {
+	  if (N > 1) {
+	    Xvec.elements.Flt[N-2] = Xvec.elements.Flt[N-1];
+	    Yvec.elements.Flt[N-2] = Yvec.elements.Flt[N-1];
 	    N--;
 	  }
@@ -253,23 +253,23 @@
     First = TRUE;
     for (r = firstRA; (r < firstRA + 180) && (LOnPic || NorthPole || SouthPole); r += dR) {
-      status = fRD_to_XY (&Xvec.elements[N], &Yvec.elements[N], r, D, &graphmode.coords);
-      /*
-      if ((fabs(Xvec.elements[N] - Xvec.elements[N-1]) > 10) && (fabs(Yvec.elements[N] - Yvec.elements[N-1]) > 10))
-	First = TRUE;
-	*/
-      if ((Xvec.elements[N] >= graphmode.xmin) && (Xvec.elements[N] <= graphmode.xmax) && 
-	  (Yvec.elements[N] >= graphmode.ymin) && (Yvec.elements[N] <= graphmode.ymax) && status) {
-	N++;
-	CHECKELEMENTS;
-	OnPic = TRUE;
-	if (!First) {
-	  Xvec.elements[N] = Xvec.elements[N-1];
-	  Yvec.elements[N] = Yvec.elements[N-1];
-	  N++;
-	  CHECKELEMENTS;
-	} else {
-	  if (N > 1) {
-	    Xvec.elements[N-2] = Xvec.elements[N-1];
-	    Yvec.elements[N-2] = Yvec.elements[N-1];
+      status = RD_to_XY (&Xvec.elements.Flt[N], &Yvec.elements.Flt[N], r, D, &graphmode.coords);
+      /*
+      if ((fabs(Xvec.elements.Flt[N] - Xvec.elements.Flt[N-1]) > 10) && (fabs(Yvec.elements.Flt[N] - Yvec.elements.Flt[N-1]) > 10))
+	First = TRUE;
+	*/
+      if ((Xvec.elements.Flt[N] >= graphmode.xmin) && (Xvec.elements.Flt[N] <= graphmode.xmax) && 
+	  (Yvec.elements.Flt[N] >= graphmode.ymin) && (Yvec.elements.Flt[N] <= graphmode.ymax) && status) {
+	N++;
+	CHECKELEMENTS;
+	OnPic = TRUE;
+	if (!First) {
+	  Xvec.elements.Flt[N] = Xvec.elements.Flt[N-1];
+	  Yvec.elements.Flt[N] = Yvec.elements.Flt[N-1];
+	  N++;
+	  CHECKELEMENTS;
+	} else {
+	  if (N > 1) {
+	    Xvec.elements.Flt[N-2] = Xvec.elements.Flt[N-1];
+	    Yvec.elements.Flt[N-2] = Yvec.elements.Flt[N-1];
 	    N--;
 	  }
@@ -285,23 +285,23 @@
     LOnPic = TRUE;
     for (r = firstRA; (r > firstRA - 180) && (LOnPic || NorthPole || SouthPole); r -= dR) {
-      status = fRD_to_XY (&Xvec.elements[N], &Yvec.elements[N], r, D, &graphmode.coords);
-      /*
-      if ((fabs(Xvec.elements[N] - Xvec.elements[N-1]) > 10) && (fabs(Yvec.elements[N] - Yvec.elements[N-1]) > 10))
-	First = TRUE;
-	*/
-      if ((Xvec.elements[N] >= graphmode.xmin) && (Xvec.elements[N] <= graphmode.xmax) && 
-	  (Yvec.elements[N] >= graphmode.ymin) && (Yvec.elements[N] <= graphmode.ymax) && status) {
-	N++;
-	CHECKELEMENTS;
-	OnPic = TRUE;
-	if (!First) {
-	  Xvec.elements[N] = Xvec.elements[N-1];
-	  Yvec.elements[N] = Yvec.elements[N-1];
-	  N++;
-	  CHECKELEMENTS;
-	} else {
-	  if (N > 1) {
-	    Xvec.elements[N-2] = Xvec.elements[N-1];
-	    Yvec.elements[N-2] = Yvec.elements[N-1];
+      status = RD_to_XY (&Xvec.elements.Flt[N], &Yvec.elements.Flt[N], r, D, &graphmode.coords);
+      /*
+      if ((fabs(Xvec.elements.Flt[N] - Xvec.elements.Flt[N-1]) > 10) && (fabs(Yvec.elements.Flt[N] - Yvec.elements.Flt[N-1]) > 10))
+	First = TRUE;
+	*/
+      if ((Xvec.elements.Flt[N] >= graphmode.xmin) && (Xvec.elements.Flt[N] <= graphmode.xmax) && 
+	  (Yvec.elements.Flt[N] >= graphmode.ymin) && (Yvec.elements.Flt[N] <= graphmode.ymax) && status) {
+	N++;
+	CHECKELEMENTS;
+	OnPic = TRUE;
+	if (!First) {
+	  Xvec.elements.Flt[N] = Xvec.elements.Flt[N-1];
+	  Yvec.elements.Flt[N] = Yvec.elements.Flt[N-1];
+	  N++;
+	  CHECKELEMENTS;
+	} else {
+	  if (N > 1) {
+	    Xvec.elements.Flt[N-2] = Xvec.elements.Flt[N-1];
+	    Yvec.elements.Flt[N-2] = Yvec.elements.Flt[N-1];
 	    N--;
 	  }
@@ -324,23 +324,23 @@
     First = TRUE;
     for (r = firstRA; (r < firstRA + 180) && (LOnPic || NorthPole || SouthPole); r += dR) {
-      status = fRD_to_XY (&Xvec.elements[N], &Yvec.elements[N], r, D, &graphmode.coords);
-      /*
-      if ((fabs(Xvec.elements[N] - Xvec.elements[N-1]) > 10) && (fabs(Yvec.elements[N] - Yvec.elements[N-1]) > 10))
-	First = TRUE;
-	*/
-      if ((Xvec.elements[N] >= graphmode.xmin) && (Xvec.elements[N] <= graphmode.xmax) && 
-	  (Yvec.elements[N] >= graphmode.ymin) && (Yvec.elements[N] <= graphmode.ymax) && status) {
-	N++;
-	CHECKELEMENTS;
-	OnPic = TRUE;
-	if (!First) {
-	  Xvec.elements[N] = Xvec.elements[N-1];
-	  Yvec.elements[N] = Yvec.elements[N-1];
-	  N++;
-	  CHECKELEMENTS;
-	} else {
-	  if (N > 1) {
-	    Xvec.elements[N-2] = Xvec.elements[N-1];
-	    Yvec.elements[N-2] = Yvec.elements[N-1];
+      status = RD_to_XY (&Xvec.elements.Flt[N], &Yvec.elements.Flt[N], r, D, &graphmode.coords);
+      /*
+      if ((fabs(Xvec.elements.Flt[N] - Xvec.elements.Flt[N-1]) > 10) && (fabs(Yvec.elements.Flt[N] - Yvec.elements.Flt[N-1]) > 10))
+	First = TRUE;
+	*/
+      if ((Xvec.elements.Flt[N] >= graphmode.xmin) && (Xvec.elements.Flt[N] <= graphmode.xmax) && 
+	  (Yvec.elements.Flt[N] >= graphmode.ymin) && (Yvec.elements.Flt[N] <= graphmode.ymax) && status) {
+	N++;
+	CHECKELEMENTS;
+	OnPic = TRUE;
+	if (!First) {
+	  Xvec.elements.Flt[N] = Xvec.elements.Flt[N-1];
+	  Yvec.elements.Flt[N] = Yvec.elements.Flt[N-1];
+	  N++;
+	  CHECKELEMENTS;
+	} else {
+	  if (N > 1) {
+	    Xvec.elements.Flt[N-2] = Xvec.elements.Flt[N-1];
+	    Yvec.elements.Flt[N-2] = Yvec.elements.Flt[N-1];
 	    N--;
 	  }
@@ -356,23 +356,23 @@
     LOnPic = TRUE;
     for (r = firstRA; (r > firstRA - 180) && (LOnPic || NorthPole || SouthPole); r -= dR) {
-      status = fRD_to_XY (&Xvec.elements[N], &Yvec.elements[N], r, D, &graphmode.coords);
-      /*
-      if ((fabs(Xvec.elements[N] - Xvec.elements[N-1]) > 10) && (fabs(Yvec.elements[N] - Yvec.elements[N-1]) > 10))
-	First = TRUE;
-	*/
-      if ((Xvec.elements[N] >= graphmode.xmin) && (Xvec.elements[N] <= graphmode.xmax) && 
-	  (Yvec.elements[N] >= graphmode.ymin) && (Yvec.elements[N] <= graphmode.ymax) && status) {
-	N++;
-	CHECKELEMENTS;
-	OnPic = TRUE;
-	if (!First) {
-	  Xvec.elements[N] = Xvec.elements[N-1];
-	  Yvec.elements[N] = Yvec.elements[N-1];
-	  N++;
-	  CHECKELEMENTS;
-	} else {
-	  if (N > 1) {
-	    Xvec.elements[N-2] = Xvec.elements[N-1];
-	    Yvec.elements[N-2] = Yvec.elements[N-1];
+      status = RD_to_XY (&Xvec.elements.Flt[N], &Yvec.elements.Flt[N], r, D, &graphmode.coords);
+      /*
+      if ((fabs(Xvec.elements.Flt[N] - Xvec.elements.Flt[N-1]) > 10) && (fabs(Yvec.elements.Flt[N] - Yvec.elements.Flt[N-1]) > 10))
+	First = TRUE;
+	*/
+      if ((Xvec.elements.Flt[N] >= graphmode.xmin) && (Xvec.elements.Flt[N] <= graphmode.xmax) && 
+	  (Yvec.elements.Flt[N] >= graphmode.ymin) && (Yvec.elements.Flt[N] <= graphmode.ymax) && status) {
+	N++;
+	CHECKELEMENTS;
+	OnPic = TRUE;
+	if (!First) {
+	  Xvec.elements.Flt[N] = Xvec.elements.Flt[N-1];
+	  Yvec.elements.Flt[N] = Yvec.elements.Flt[N-1];
+	  N++;
+	  CHECKELEMENTS;
+	} else {
+	  if (N > 1) {
+	    Xvec.elements.Flt[N-2] = Xvec.elements.Flt[N-1];
+	    Yvec.elements.Flt[N-2] = Yvec.elements.Flt[N-1];
 	    N--;
 	  }
@@ -391,8 +391,8 @@
   graphmode.ptype = 100; /* connect a pair */
   graphmode.etype = 0;
-  PlotVectorPair (kapa, N, Xvec.elements, Yvec.elements, &graphmode);
-
-  free (Xvec.elements);
-  free (Yvec.elements);
+  PlotVectorPair (kapa, &Xvec, &Yvec, &graphmode);
+
+  free (Xvec.elements.Ptr);
+  free (Yvec.elements.Ptr);
   return (TRUE);
 
