Index: trunk/Ohana/src/opihi/dvo/calextract.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/calextract.c	(revision 15487)
+++ trunk/Ohana/src/opihi/dvo/calextract.c	(revision 15509)
@@ -82,6 +82,6 @@
 
       /* find data for filter 2 (PHOT_REF) */
-      M2 = NO_MAG;
-      dM2 = NO_MAG;
+      M2 = NAN;
+      dM2 = NAN;
       for (j = 0; j < catalog.average[i].Nm; j++) {
 	if (catalog.measure[m+j].photcode != code[1][0].code) continue;
@@ -89,9 +89,9 @@
 	dM2 = catalog.measure[m+j].dM;
       }	
-      if (M2 == NO_MAG) continue;
+      if (isnan(M2)) continue;
 
       /* find data for filter 1 */
       M1 = ExtractAverages (code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], AVE_MAG);
-      if (M1 == NO_MAG) continue;
+      if (isnan(M1)) continue;
 
       vec[Nd ][0].elements[N] = M1 - M2;
Index: trunk/Ohana/src/opihi/dvo/calmextract.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/calmextract.c	(revision 15487)
+++ trunk/Ohana/src/opihi/dvo/calmextract.c	(revision 15509)
@@ -93,6 +93,6 @@
 
       /* find data for filter 2 (REF) */
-      M2 = NO_MAG;
-      dM2 = NO_MAG;
+      M2 = NAN;
+      dM2 = NAN;
       for (j = 0; j < catalog.average[i].Nm; j++) {
 	if (catalog.measure[m+j].photcode != code[1][0].code) continue;
@@ -100,5 +100,5 @@
 	dM2 = catalog.measure[m+j].dM;
       }	
-      if (M2 == NO_MAG) continue;
+      if (isnan(M2)) continue;
       
       /* find data for filter 1 */
Index: trunk/Ohana/src/opihi/dvo/ccd.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/ccd.c	(revision 15487)
+++ trunk/Ohana/src/opihi/dvo/ccd.c	(revision 15509)
@@ -84,5 +84,5 @@
 	  ALLOCATE (M2, double, 1);
 	  N2 = 1;
-	  M2[0] = NO_MAG;
+	  M2[0] = NAN;
 	} else {
 	  goto skip;
Index: trunk/Ohana/src/opihi/dvo/cmd.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/cmd.c	(revision 15487)
+++ trunk/Ohana/src/opihi/dvo/cmd.c	(revision 15509)
@@ -82,5 +82,5 @@
 	  ALLOCATE (M3, double, 1);
 	  N3 = 1;
-	  M3[0] = NO_MAG;
+	  M3[0] = NAN;
 	} else {
 	  goto skip;
Index: trunk/Ohana/src/opihi/dvo/dbExtractAverages.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/dbExtractAverages.c	(revision 15487)
+++ trunk/Ohana/src/opihi/dvo/dbExtractAverages.c	(revision 15509)
@@ -7,5 +7,5 @@
   double value;
 
-  value = NO_MAG;
+  value = NAN;
 
   /* assign vector values */
@@ -71,5 +71,5 @@
 	case MAG_CAL:
 	  // XXX need to code this correctly: this returns just the first matching value
-	  value = NO_MAG;
+	  value = NAN;
 	  for (i = 0; i < average[0].Nm; i++) {
 	    if (field->photcode->code != measure[i].photcode) continue;
Index: trunk/Ohana/src/opihi/dvo/dbExtractMeasures.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/dbExtractMeasures.c	(revision 15487)
+++ trunk/Ohana/src/opihi/dvo/dbExtractMeasures.c	(revision 15509)
@@ -19,5 +19,5 @@
   Coords *mosaic;
 
-  value = NO_MAG;
+  value = NAN;
 
   switch (field->ID) {
@@ -128,8 +128,8 @@
       break;
     case MEAS_RA_OFFSET_ERR: /* OK */
-      value = NO_MAG;
+      value = NAN;
       break;
     case MEAS_DEC_OFFSET_ERR: /* OK */
-      value = NO_MAG;
+      value = NAN;
       break;
     case MEAS_AIRMASS: /* OK */
Index: trunk/Ohana/src/opihi/dvo/ddmags.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/ddmags.c	(revision 15487)
+++ trunk/Ohana/src/opihi/dvo/ddmags.c	(revision 15509)
@@ -94,5 +94,5 @@
 	  ALLOCATE (M2, double, 1);
 	  N2 = 1;
-	  M2[0] = NO_MAG;
+	  M2[0] = NAN;
 	} else {
 	  goto skip;
Index: trunk/Ohana/src/opihi/dvo/dmagmeas.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/dmagmeas.c	(revision 15487)
+++ trunk/Ohana/src/opihi/dvo/dmagmeas.c	(revision 15509)
@@ -91,5 +91,5 @@
 	  ALLOCATE (M3, double, 1);
 	  N3 = 1;
-	  M3[0] = NO_MAG;
+	  M3[0] = NAN;
 	} else {
 	  goto skip;
Index: trunk/Ohana/src/opihi/dvo/dmags.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/dmags.c	(revision 15487)
+++ trunk/Ohana/src/opihi/dvo/dmags.c	(revision 15509)
@@ -89,5 +89,5 @@
 	  ALLOCATE (M3, double, 1);
 	  N3 = 1;
-	  M3[0] = NO_MAG;
+	  M3[0] = NAN;
 	} else {
 	  goto skip;
Index: trunk/Ohana/src/opihi/dvo/gstar.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/gstar.c	(revision 15487)
+++ trunk/Ohana/src/opihi/dvo/gstar.c	(revision 15509)
@@ -274,6 +274,13 @@
 }
 
-void print_value (double value, short int ival) {
-  if (ival == NO_MAG) 
+void print_double (double value) {
+  if (isnan(value)) 
+    gprint (GP_LOG, "NaN    ");
+  else 
+    gprint (GP_LOG, "%6.3f ", value);
+}
+
+void print_short (double value, short int ival) {
+  if (ival == NAN_S_SHORT) 
     gprint (GP_LOG, "NaN    ");
   else 
@@ -320,7 +327,7 @@
     case 0: /* average mags */
       if (seq == -1) {
-	print_value (NO_MAG, NO_MAG);
+	print_double (NAN);
       } else {
-	print_value (secfilt[seq].M, secfilt[seq].M);
+	print_double (secfilt[seq].M);
       }
       break;
@@ -328,7 +335,7 @@
     case 1: /* average mags errors */
       if (seq == -1) {
-	print_value (NO_MAG, NO_MAG);
+	print_double (NAN);
       } else {
-	print_value (secfilt[seq].dM, secfilt[seq].dM);
+	print_double (secfilt[seq].dM);
       }
       break;
@@ -336,7 +343,7 @@
     case 2: /* average mag chisq */
       if (seq == -1) {
-	print_value (NO_MAG, NO_MAG);
+	print_short (NAN_S_SHORT, NAN_S_SHORT);
       } else {
-	print_value (pow (10.0, 0.01*secfilt[seq].Xm), secfilt[seq].Xm);
+	print_short (pow (10.0, 0.01*secfilt[seq].Xm), secfilt[seq].Xm);
       }
       break;
Index: trunk/Ohana/src/opihi/dvo/photometry.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/photometry.c	(revision 15487)
+++ trunk/Ohana/src/opihi/dvo/photometry.c	(revision 15509)
@@ -28,5 +28,5 @@
 
 # define SETMAG(MOUT,MEAS,MODE) \
-  MOUT = NO_MAG; \
+  MOUT = NAN; \
   if (MODE == MAG_INST) MOUT = PhotInst (&MEAS);  \
   if (MODE == MAG_CAT)  MOUT = PhotCat  (&MEAS); \
@@ -588,5 +588,5 @@
   double value;
 
-  value = NO_MAG;
+  value = NAN;
 
   /* this function requires code set for certain value of param.  
@@ -594,5 +594,5 @@
 
   /* filter by average quantities (eg, chisq, Nphot, etc) */
-  if (!TestAverage (code, average, secfilt, measure)) return (NO_MAG);
+  if (!TestAverage (code, average, secfilt, measure)) return (NAN);
 
   /* assign vector values */
@@ -657,5 +657,5 @@
 	case MAG_REL:
 	case MAG_CAL:
-	  value = NO_MAG;
+	  value = NAN;
 	  for (i = 0; i < average[0].Nm; i++) {
 	      if (code[0].code != measure[i].photcode) continue;
@@ -866,5 +866,5 @@
   if (ErrSelect) {
     dM = PhotdM (code, average, secfilt);
-    if (dM > ErrValue) return (NO_MAG);
+    if (dM > ErrValue) return (NAN);
   }
   
@@ -944,5 +944,5 @@
     ALLOCATE (M, double, 1);
     mag = ExtractAverages (code, mode, average, secfilt, measure, AVE_MAG);
-    if (mag == NO_MAG) {
+    if (isnan(mag)) {
       N = 0;
     } else {
@@ -962,5 +962,5 @@
 
   int i, j, A1, A2, N1, N2, Np, Nlist, NLIST;
-  double *M1, *M2, *list, NoMag;
+  double *M1, *M2, *list;
 
   /* check for special case of measure-measure - this is needed to drop self-matches */
@@ -977,5 +977,4 @@
   ALLOCATE (list, double, NLIST);
   M1 = M2 = NULL;
-  NoMag = NO_MAG * 0.001;
 
   /* one of the two is an average, must do independently */
@@ -988,9 +987,9 @@
   if (N2 == 0) goto skip;
 
-  /* magnitudes may be NO_MAG : set delta to NO_MAG */
+  /* magnitudes may be NAN : set delta to NAN */
   for (i = 0; i < N1; i++) {
     for (j = 0; j < N2; j++) {
-      if ((M1[i] == NoMag) || (M2[j] == NoMag)) {
-	list[Nlist] = NoMag;
+      if (isnan(M1[i]) || isnan(M2[j])) {
+	list[Nlist] = NAN;
       } else {
 	list[Nlist] = M1[i] - M2[j];
@@ -1012,5 +1011,5 @@
 
   int i, j, Np0, Np1, Nlist, NLIST;
-  double *list, M1, M2, NoMag;
+  double *list, M1, M2;
   
   *nlist = 0; 
@@ -1018,5 +1017,4 @@
   NLIST = MAX (1, average[0].Nm*average[0].Nm);
   ALLOCATE (list, double, NLIST);
-  NoMag = NO_MAG * 0.001;
 
   /* must have two code values - drop this test? this is programming case, not a user case */
@@ -1044,6 +1042,6 @@
       TESTMEASURE (measure[j]);
       SETMAG(M2, measure[j], mode[1]);
-      if ((M1 == NoMag) || (M2 == NoMag)) {
-	list[Nlist] = NoMag;
+      if (isnan(M1) || isnan(M2)) {
+	list[Nlist] = NAN;
       } else {
 	list[Nlist] = M1 - M2;
