Index: /branches/eam_branch_20090208/Ohana/src/addstar/include/skycells.h
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/addstar/include/skycells.h	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/addstar/include/skycells.h	(revision 21419)
@@ -30,5 +30,5 @@
   int NX;
   int NY;
-  int code;
+  int photcode;
   char name[64];
 } SkyRectangle;
Index: /branches/eam_branch_20090208/Ohana/src/addstar/src/FilterStars.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/addstar/src/FilterStars.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/addstar/src/FilterStars.c	(revision 21419)
@@ -21,14 +21,14 @@
     /* allow for some dynamic filtering of star list */
     if (SNLIMIT && instars[j].dM > SNLIMIT) continue;
-    if (XMAX && (instars[j].X > XMAX)) continue;
-    if (XMIN && (instars[j].X < XMIN)) continue;
-    if (YMAX && (instars[j].Y > YMAX)) continue;
-    if (YMIN && (instars[j].Y < YMIN)) continue;
+    if (XMAX && (instars[j].Xccd > XMAX)) continue;
+    if (XMIN && (instars[j].Xccd < XMIN)) continue;
+    if (YMAX && (instars[j].Yccd > YMAX)) continue;
+    if (YMIN && (instars[j].Yccd < YMIN)) continue;
     stars[N] = instars[j];
 
-    XY_to_RD (&stars[N].R, &stars[N].D, stars[N].X, stars[N].Y, &image[0].coords);
+    XY_to_RD (&stars[N].R, &stars[N].D, stars[N].Xccd, stars[N].Yccd, &image[0].coords);
     stars[N].R = ohana_normalize_angle (stars[N].R);
     stars[N].found = -1;
-    stars[N].code = image[0].photcode;
+    stars[N].photcode = image[0].photcode;
 
     RMIN = MIN (RMIN, stars[N].R);
@@ -41,5 +41,5 @@
     stars[N].airmass = airmass (image[0].secz, stars[N].R, stars[N].D, image[0].sidtime, image[0].latitude);
     stars[N].Mcal    = image[0].Mcal;
-    stars[N].t       = image[0].tzero + 1e-4*stars[N].Y*image[0].trate;  /* trate is in 0.1 msec / row */
+    stars[N].t       = image[0].tzero + 1e-4*stars[N].Yccd*image[0].trate;  /* trate is in 0.1 msec / row */
     stars[N].dt      = MTIME;
 
@@ -54,6 +54,6 @@
     dMx = 0.0;
     if (SUBPIX) {
-      dMs = get_subpix (stars[N].X, stars[N].Y);
-      dMx = scat_subpix (stars[N].X, stars[N].Y);
+      dMs = get_subpix (stars[N].Xccd, stars[N].Yccd);
+      dMx = scat_subpix (stars[N].Xccd, stars[N].Yccd);
       if (!isnan(stars[N].dM)) {
 	stars[N].dM = hypot (stars[N].dM, dMx);
Index: /branches/eam_branch_20090208/Ohana/src/addstar/src/LoadDataPMM.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/addstar/src/LoadDataPMM.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/addstar/src/LoadDataPMM.c	(revision 21419)
@@ -105,5 +105,5 @@
       inStars[Ninstars].t       = images[0][0].tzero;
       inStars[Ninstars].dt      = images[0][0].exptime;
-      inStars[Ninstars].code    = code;
+      inStars[Ninstars].photcode    = code;
       inStars[Ninstars].airmass = airmass;
       inStars[Ninstars].az      = az;
@@ -238,5 +238,5 @@
     image[0].Mcal = 0.0;
     image[0].Xm   = NAN_S_SHORT;
-    image[0].code = 0;
+    image[0].flags = 0;
 
     image[0].nstar = 0;
Index: /branches/eam_branch_20090208/Ohana/src/addstar/src/PSPS_IDs.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/addstar/src/PSPS_IDs.c	(revision 21419)
+++ /branches/eam_branch_20090208/Ohana/src/addstar/src/PSPS_IDs.c	(revision 21419)
@@ -0,0 +1,33 @@
+
+create_detectid(double tobs, int ccdid, int runid, uint64 *detectid)
+{
+   double floor();
+   double diff, t0 = 51544.5;
+   char string[19];
+   int itmp;
+   uint64 utmp;
+
+   diff = floor( 100000. * (tobs - t0) );
+   itmp = diff;
+   utmp = 1000000000*((uint64) itmp) + 10000000 * ((uint64) ccdid) +
+            ((uint64) runid);
+   *detectid = utmp;
+}
+
+
+
+create_objid(double ra, double dec, uint64 *objid)
+{
+   uint64 part1, part2, part3;
+   double zid, zresid;
+   int izone;
+   double zh = 0.0083333, floor();
+
+   zid = (dec + 90.) / zh;
+   izone = (int) floor(zid);
+   zresid = zid -  ((float) izone);
+   part1 = (uint64)( izone  * 10000000000000) ;
+   part2 = ((uint64)(ra * 1000000.)) * 10000 ;
+   part3 = (int) (zresid * 10000.0) ;
+   *objid = part1 + part2 + part3;
+}
Index: /branches/eam_branch_20090208/Ohana/src/addstar/src/ReadImageHeader.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/addstar/src/ReadImageHeader.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/addstar/src/ReadImageHeader.c	(revision 21419)
@@ -200,5 +200,5 @@
   image[0].Mcal = 0.0;
   image[0].Xm   = NAN_S_SHORT;
-  image[0].code = 0;
+  image[0].flags = 0;
 
   /* find expected number of stars */
Index: /branches/eam_branch_20090208/Ohana/src/addstar/src/ReadStarsFITS.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/addstar/src/ReadStarsFITS.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/addstar/src/ReadStarsFITS.c	(revision 21419)
@@ -67,6 +67,6 @@
   ALLOCATE (stars, Stars, Nstars);
   for (i = 0; i < Nstars; i++) {
-    stars[i].X      = smpdata[i].X;
-    stars[i].Y      = smpdata[i].Y;
+    stars[i].Xccd   = smpdata[i].X;
+    stars[i].Yccd   = smpdata[i].Y;
 
     if ((smpdata[i].M >= ZeroPt) || isnan(smpdata[i].M)) {
@@ -79,5 +79,7 @@
 
     stars[i].dM     = smpdata[i].dM*0.001;
-    stars[i].dophot = smpdata[i].dophot;
+
+    // the dophot type information get pushed into the upper 2 bytes of photFlags
+    stars[i].photFlags = (smpdata[i].dophot << 16);
 
     stars[i].fx     = smpdata[i].fx;
@@ -101,8 +103,8 @@
   ALLOCATE (stars, Stars, Nstars);
   for (i = 0; i < Nstars; i++) {
-    stars[i].X       = ps1data[i].X;
-    stars[i].Y       = ps1data[i].Y;
-    stars[i].dX      = ps1data[i].dX;
-    stars[i].dY      = ps1data[i].dY;
+    stars[i].Xccd    = ps1data[i].X;
+    stars[i].Yccd    = ps1data[i].Y;
+    stars[i].dXccd   = ps1data[i].dX;
+    stars[i].dYccd   = ps1data[i].dY;
     if ((ps1data[i].M >= 0.0) || isnan(ps1data[i].M)) {
       stars[i].M     = NAN;
@@ -113,6 +115,6 @@
     stars[i].Mpeak   = ps1data[i].Mpeak;
 
-    stars[i].sky     = ps1data[i].sky;
-    stars[i].dsky    = ps1data[i].dSky;
+    stars[i].Sky     = ps1data[i].sky;
+    stars[i].dSky    = ps1data[i].dSky;
 
     stars[i].fx      = ps1data[i].fx;
@@ -143,10 +145,9 @@
     stars[i].dt      = 0;
     stars[i].airmass = 0;
-    stars[i].code    = 0;
+    stars[i].photcode    = 0;
     stars[i].found   = 0;
 
     /* these are not used */
     stars[i].Map     = NAN;
-    stars[i].dophot  = 0;
   }    
   *nstars = Nstars;
@@ -168,8 +169,8 @@
   ALLOCATE (stars, Stars, Nstars);
   for (i = 0; i < Nstars; i++) {
-    stars[i].X       = ps1data[i].X;
-    stars[i].Y       = ps1data[i].Y;
-    stars[i].dX      = ps1data[i].dX;
-    stars[i].dY      = ps1data[i].dY;
+    stars[i].Xccd       = ps1data[i].X;
+    stars[i].Yccd       = ps1data[i].Y;
+    stars[i].dXccd      = ps1data[i].dX;
+    stars[i].dYccd      = ps1data[i].dY;
     if ((ps1data[i].M >= 0.0) || isnan(ps1data[i].M)) {
 	stars[i].M   = NAN;
@@ -180,6 +181,6 @@
     stars[i].Mpeak   = ps1data[i].Mpeak;
 
-    stars[i].sky     = ps1data[i].sky;
-    stars[i].dsky    = ps1data[i].dSky;
+    stars[i].Sky     = ps1data[i].sky;
+    stars[i].dSky    = ps1data[i].dSky;
 
     stars[i].fx      = ps1data[i].fx;
@@ -193,5 +194,5 @@
 
     stars[i].detID     = ps1data[i].detID;
-    stars[i].flags     = ps1data[i].flags;
+    stars[i].photFlags     = ps1data[i].flags;
 
     // XXX not defined anyway
@@ -217,10 +218,9 @@
     stars[i].airmass = 0;
     stars[i].az      = 0;
-    stars[i].code    = 0;
+    stars[i].photcode    = 0;
     stars[i].found   = 0;
 
     /* these are not used */
     stars[i].Map     = NAN;
-    stars[i].dophot  = 0;
   }    
   *nstars = Nstars;
Index: /branches/eam_branch_20090208/Ohana/src/addstar/src/ReadStarsSDSS.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/addstar/src/ReadStarsSDSS.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/addstar/src/ReadStarsSDSS.c	(revision 21419)
@@ -140,14 +140,14 @@
     for (j = 0; j < NFILTER; j++) {
       N = NFILTER*i + j;
-      stars[N].X         = colc[N];
-      stars[N].Y         = rowc[N];
-      stars[N].dX        = colcErr[N];
-      stars[N].dY        = rowcErr[N];
+      stars[N].Xccd      = colc[N];
+      stars[N].Yccd      = rowc[N];
+      stars[N].dXccd     = colcErr[N];
+      stars[N].dYccd     = rowcErr[N];
       stars[N].M         = psfCounts[N] + ZeroPt - zeropt[j];
       stars[N].dM        = psfCountsErr[N];
       stars[N].Map       = fiberCounts[N] + ZeroPt - zeropt[j];
       stars[N].Mpeak     = NAN;
-      stars[N].sky       = sky[N]; // adjust this to counts?
-      stars[N].dsky      = skyErr[N];
+      stars[N].Sky       = sky[N]; // adjust this to counts?
+      stars[N].dSky      = skyErr[N];
       stars[N].fx        = seeing[j]; // reported in arcsec?
       stars[N].fy        = seeing[j];
@@ -189,7 +189,6 @@
       stars[N].az        = az;
 
-      stars[N].code      = photcode[j];
+      stars[N].photcode  = photcode[j];
       stars[N].found     = -1;
-      stars[N].dophot    = 0;
     }
   }    
@@ -205,6 +204,6 @@
     images[N].coords.crval2 = stars[0].D;
     
-    images[N].coords.crpix1 = stars[0].X;
-    images[N].coords.crpix2 = stars[0].Y;
+    images[N].coords.crpix1 = stars[0].Xccd;
+    images[N].coords.crpix2 = stars[0].Yccd;
     images[N].coords.cdelt1 = images[N].coords.cdelt2 = 0.4 / 3600.0;
 
@@ -257,5 +256,5 @@
     images[N].Mcal = 0.0;
     images[N].Xm   = NAN_S_SHORT;
-    images[N].code = 0;
+    images[N].flags = 0;
 
     images[N].nstar = Nstars;
@@ -297,19 +296,19 @@
 
   // XXX this is wrong, need to roll left to set the correct bit 
-  if (flags1 & 0x00000002) star[0].flags |= 0x0001; // BRIGHT            - 1  1
-  if (flags1 & 0x00000004) star[0].flags |= 0x0002; // EDGE              - 1  2
-  if (flags1 & 0x00000008) star[0].flags |= 0x0004; // BLENDED           - 1  3
-  if (flags1 & 0x00000010) star[0].flags |= 0x0008; // CHILD             - 1  4
-  if (flags1 & 0x00000020) star[0].flags |= 0x0010; // PEAKCENTER        - 1  5
-  if (flags1 & 0x00000040) star[0].flags |= 0x0020; // NODEBLEND         - 1  6
-  if (flags1 & 0x00040000) star[0].flags |= 0x0040; // SATUR             - 1 18
-  if (flags1 & 0x00080000) star[0].flags |= 0x0080; // NOTCHECKED        - 1 19
-  if (flags1 & 0x10000000) star[0].flags |= 0x0100; // BINNED1           - 1 28
-  if (flags1 & 0x20000000) star[0].flags |= 0x0200; // BINNED2           - 1 29
-  if (flags1 & 0x40000000) star[0].flags |= 0x0400; // BINNED4           - 1 30
-  if (flags2 & 0x00000040) star[0].flags |= 0x0800; // LOCAL_EDGE        - 2  7
-  if (flags2 & 0x00000800) star[0].flags |= 0x1000; // INTERP_CENTER     - 2 12
-  if (flags2 & 0x00002000) star[0].flags |= 0x2000; // DEBLEND_NOPEAK    - 2 14
-  if (flags2 & 0x02000000) star[0].flags |= 0x4000; // NOTCHECKED_CENTER - 2 26
+  if (flags1 & 0x00000002) star[0].photFlags |= 0x0001; // BRIGHT            - 1  1
+  if (flags1 & 0x00000004) star[0].photFlags |= 0x0002; // EDGE              - 1  2
+  if (flags1 & 0x00000008) star[0].photFlags |= 0x0004; // BLENDED           - 1  3
+  if (flags1 & 0x00000010) star[0].photFlags |= 0x0008; // CHILD             - 1  4
+  if (flags1 & 0x00000020) star[0].photFlags |= 0x0010; // PEAKCENTER        - 1  5
+  if (flags1 & 0x00000040) star[0].photFlags |= 0x0020; // NODEBLEND         - 1  6
+  if (flags1 & 0x00040000) star[0].photFlags |= 0x0040; // SATUR             - 1 18
+  if (flags1 & 0x00080000) star[0].photFlags |= 0x0080; // NOTCHECKED        - 1 19
+  if (flags1 & 0x10000000) star[0].photFlags |= 0x0100; // BINNED1           - 1 28
+  if (flags1 & 0x20000000) star[0].photFlags |= 0x0200; // BINNED2           - 1 29
+  if (flags1 & 0x40000000) star[0].photFlags |= 0x0400; // BINNED4           - 1 30
+  if (flags2 & 0x00000040) star[0].photFlags |= 0x0800; // LOCAL_EDGE        - 2  7
+  if (flags2 & 0x00000800) star[0].photFlags |= 0x1000; // INTERP_CENTER     - 2 12
+  if (flags2 & 0x00002000) star[0].photFlags |= 0x2000; // DEBLEND_NOPEAK    - 2 14
+  if (flags2 & 0x02000000) star[0].photFlags |= 0x4000; // NOTCHECKED_CENTER - 2 26
   return (TRUE);
 
Index: /branches/eam_branch_20090208/Ohana/src/addstar/src/ReadStarsTEXT.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/addstar/src/ReadStarsTEXT.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/addstar/src/ReadStarsTEXT.c	(revision 21419)
@@ -7,5 +7,5 @@
 
   int j, N, Nextra, Ninstar, Nskip, Nbytes, nbytes;
-  int done;
+  int done, itmp;
   char *buffer, *c, *c2;
   double tmp;
@@ -66,6 +66,6 @@
     Nextra = nbytes % BYTES_STAR;
     for (j = 0; (j < Ninstar) && (N < *nstars); j++, N++) {
-      dparse (&stars[N].X,  1, &buffer[j*BYTES_STAR]);
-      dparse (&stars[N].Y,  2, &buffer[j*BYTES_STAR]);
+      dparse (&stars[N].Xccd,  1, &buffer[j*BYTES_STAR]);
+      dparse (&stars[N].Yccd,  2, &buffer[j*BYTES_STAR]);
       dparse (&stars[N].M,  3, &buffer[j*BYTES_STAR]);
       if ((stars[N].M > ZeroPt) || isnan(stars[N].M)) {
@@ -77,6 +77,8 @@
       stars[N].dM = 0.001*tmp;
 
+      // the dophot type information get pushed into the upper 2 bytes of photFlags
       dparse (&tmp,         5, &buffer[j*BYTES_STAR]);
-      stars[N].dophot = tmp;
+      itmp = tmp;
+      stars[N].photFlags = (itmp << 16);
 
       // XXX I've removed the Mgal field from the measure.d table, and am using Map
Index: /branches/eam_branch_20090208/Ohana/src/addstar/src/SEDfit.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/addstar/src/SEDfit.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/addstar/src/SEDfit.c	(revision 21419)
@@ -164,5 +164,5 @@
     outcat[0].average[Nave].measureOffset = Nmeas;
     outcat[0].average[Nave].missingOffset = -1;
-    outcat[0].average[Nave].code          = 0;
+    outcat[0].average[Nave].flags         = 0;
 
     for (j = 0; j < Nsec; j++) {
@@ -181,20 +181,20 @@
     for (j = 0; valid && (j < Nmodel); j++) {
       n = modelRow[j];
-      outcat[0].measure[Nmeas].dR       = 0.0;
-      outcat[0].measure[Nmeas].dD       = 0.0;
-      outcat[0].measure[Nmeas].M        = table[0].row[minFit.row][0].mags[n] + minFit.Md;
-      outcat[0].measure[Nmeas].dM       = 0.0;
-      outcat[0].measure[Nmeas].Mcal     = 0;
-      outcat[0].measure[Nmeas].t        = TIMEREF;
-      outcat[0].measure[Nmeas].averef   = Nave;
-      outcat[0].measure[Nmeas].photcode = table[0].code[n];
-      outcat[0].measure[Nmeas].dophot   = 0;
-      outcat[0].measure[Nmeas].dbFlags  = 0;
-      outcat[0].measure[Nmeas].dt       = 0xffff;
-
-      outcat[0].measure[Nmeas].airmass  = 0;
-      outcat[0].measure[Nmeas].FWx      = NAN_S_SHORT;
-      outcat[0].measure[Nmeas].FWy      = NAN_S_SHORT;
-      outcat[0].measure[Nmeas].theta    = NAN_S_SHORT;
+      outcat[0].measure[Nmeas].dR        = 0.0;
+      outcat[0].measure[Nmeas].dD        = 0.0;
+      outcat[0].measure[Nmeas].M         = table[0].row[minFit.row][0].mags[n] + minFit.Md;
+      outcat[0].measure[Nmeas].dM        = 0.0;
+      outcat[0].measure[Nmeas].Mcal      = 0;
+      outcat[0].measure[Nmeas].t         = TIMEREF;
+      outcat[0].measure[Nmeas].averef    = Nave;
+      outcat[0].measure[Nmeas].photcode  = table[0].code[n];
+      outcat[0].measure[Nmeas].photFlags = 0;
+      outcat[0].measure[Nmeas].dbFlags   = 0;
+      outcat[0].measure[Nmeas].dt        = 0xffff;
+					 
+      outcat[0].measure[Nmeas].airmass   = 0;
+      outcat[0].measure[Nmeas].FWx       = NAN_S_SHORT;
+      outcat[0].measure[Nmeas].FWy       = NAN_S_SHORT;
+      outcat[0].measure[Nmeas].theta     = NAN_S_SHORT;
 
       outcat[0].average[Nave].Nmeasure++;
Index: /branches/eam_branch_20090208/Ohana/src/addstar/src/dump.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/addstar/src/dump.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/addstar/src/dump.c	(revision 21419)
@@ -12,5 +12,5 @@
 	     i, 
 	     stars[i].R, stars[i].D,
-	     stars[i].X, stars[i].Y,
+	     stars[i].Xccd, stars[i].Yccd,
 	     stars[i].M, stars[i].dM);
   }
Index: /branches/eam_branch_20090208/Ohana/src/addstar/src/fakeimage.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/addstar/src/fakeimage.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/addstar/src/fakeimage.c	(revision 21419)
@@ -129,7 +129,7 @@
     image[i+1].ccdnum = 0xff;
 
-    image[i+1].Mcal = 0.0;
-    image[i+1].Xm   = NAN_S_SHORT;
-    image[i+1].code = 0;
+    image[i+1].Mcal  = 0.0;
+    image[i+1].Xm    = NAN_S_SHORT;
+    image[i+1].flags = 0;
 
     image[i+1].nstar = 0;
@@ -189,5 +189,5 @@
   image[0].Mcal = 0.0;
   image[0].Xm   = NAN_S_SHORT;
-  image[0].code = 0;
+  image[0].flags = 0;
   image[0].nstar = 0;
   image[0].Myyyy = 0;
Index: /branches/eam_branch_20090208/Ohana/src/addstar/src/find_matches.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/addstar/src/find_matches.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/addstar/src/find_matches.c	(revision 21419)
@@ -168,6 +168,6 @@
       catalog[0].measure[Nmeas].dD       = 3600.0*(catalog[0].average[n].D - stars[N].D);
 
-      catalog[0].measure[Nmeas].Xccd     = stars[N].X;
-      catalog[0].measure[Nmeas].Yccd     = stars[N].Y;
+      catalog[0].measure[Nmeas].Xccd     = stars[N].Xccd;
+      catalog[0].measure[Nmeas].Yccd     = stars[N].Yccd;
 
       catalog[0].measure[Nmeas].M        = stars[N].M;
@@ -175,18 +175,15 @@
       catalog[0].measure[Nmeas].Mcal     = stars[N].Mcal;
       catalog[0].measure[Nmeas].t        = stars[N].t;
-      catalog[0].measure[Nmeas].averef   = n;              /* this must be an absolute sequence number, if partial average is loaded */
-      catalog[0].measure[Nmeas].photcode = stars[N].code;  /* photcode */
-      catalog[0].measure[Nmeas].dophot   = stars[N].dophot;  
-      catalog[0].measure[Nmeas].dbFlags  = 0;
+      catalog[0].measure[Nmeas].photcode = stars[N].photcode;
       catalog[0].measure[Nmeas].dt       = stars[N].dt;
       catalog[0].measure[Nmeas].airmass  = stars[N].airmass;
 
-      catalog[0].measure[Nmeas].photFlags = stars[N].flags;
-      catalog[0].measure[Nmeas].qPSF      = stars[N].psfQual;
+      catalog[0].measure[Nmeas].photFlags = stars[N].photFlags;
+      catalog[0].measure[Nmeas].psfQual   = stars[N].psfQual;
       catalog[0].measure[Nmeas].psfChisq  = stars[N].psfChisq;
       catalog[0].measure[Nmeas].crNsigma  = stars[N].crNsigma;
       catalog[0].measure[Nmeas].extNsigma = stars[N].extNsigma;
-      catalog[0].measure[Nmeas].Sky       = stars[N].sky;
-      catalog[0].measure[Nmeas].dSky      = stars[N].dsky;
+      catalog[0].measure[Nmeas].Sky       = stars[N].Sky;
+      catalog[0].measure[Nmeas].dSky      = stars[N].dSky;
 
       catalog[0].measure[Nmeas].stargal   = 0; // XXX not yet set
@@ -195,6 +192,6 @@
       catalog[0].measure[Nmeas].imageID   = stars[N].imageID;
 
-      catalog[0].measure[Nmeas].dXccd     = stars[N].dX;
-      catalog[0].measure[Nmeas].dYccd     = stars[N].dY;
+      catalog[0].measure[Nmeas].dXccd     = stars[N].dXccd;
+      catalog[0].measure[Nmeas].dYccd     = stars[N].dYccd;
 
       catalog[0].measure[Nmeas].Map      = stars[N].Map;
@@ -203,4 +200,7 @@
       catalog[0].measure[Nmeas].theta    = (0xffff/360.0)*stars[N].df;
 	
+      catalog[0].measure[Nmeas].dbFlags  = 0;
+      catalog[0].measure[Nmeas].averef   = n;              /* this must be an absolute sequence number, if partial average is loaded */
+
       /* adds the measurement to the calibration if appropriate color terms are found */
       /* we call this before (optionally) setting the average magnitude to avoid auto-correlations */
@@ -275,5 +275,5 @@
     catalog[0].average[Nave].measureOffset = Nmeas;
     catalog[0].average[Nave].missingOffset = -1;
-    catalog[0].average[Nave].code          = 0;
+    catalog[0].average[Nave].flags         = 0;
 
     catalog[0].average[Nave].dR        = 0;
@@ -296,6 +296,6 @@
     }
 
-    catalog[0].measure[Nmeas].Xccd     = stars[N].X;
-    catalog[0].measure[Nmeas].Yccd     = stars[N].Y;
+    catalog[0].measure[Nmeas].Xccd     = stars[N].Xccd;
+    catalog[0].measure[Nmeas].Yccd     = stars[N].Yccd;
 
     catalog[0].measure[Nmeas].dR       	= 0.0;
@@ -305,26 +305,21 @@
     catalog[0].measure[Nmeas].Mcal  	= stars[N].Mcal;
     catalog[0].measure[Nmeas].t        	= stars[N].t;
-    catalog[0].measure[Nmeas].averef   	= Nave;           /* XXX EAM : must be absolute Nave if partial read */
-    catalog[0].measure[Nmeas].photcode  = stars[N].code;  /* photcode */
-    catalog[0].measure[Nmeas].dophot   	= stars[N].dophot;  
-    catalog[0].measure[Nmeas].dbFlags 	= 0;
+    catalog[0].measure[Nmeas].photcode  = stars[N].photcode;
     catalog[0].measure[Nmeas].dt    	= stars[N].dt;
     catalog[0].measure[Nmeas].airmass   = stars[N].airmass;
 
-    catalog[0].measure[Nmeas].photFlags = stars[N].flags;
-    catalog[0].measure[Nmeas].qPSF      = stars[N].psfQual;
+    catalog[0].measure[Nmeas].photFlags = stars[N].photFlags;
+    catalog[0].measure[Nmeas].psfQual   = stars[N].psfQual;
     catalog[0].measure[Nmeas].psfChisq  = stars[N].psfChisq;
     catalog[0].measure[Nmeas].crNsigma  = stars[N].crNsigma;
     catalog[0].measure[Nmeas].extNsigma = stars[N].extNsigma;
-    catalog[0].measure[Nmeas].Sky       = stars[N].sky;
-    catalog[0].measure[Nmeas].dSky      = stars[N].dsky;
-
-    catalog[0].measure[Nmeas].stargal   = 0; // XXX not yet set
+    catalog[0].measure[Nmeas].Sky       = stars[N].Sky;
+    catalog[0].measure[Nmeas].dSky      = stars[N].dSky;
 
     catalog[0].measure[Nmeas].detID     = stars[N].detID;
     catalog[0].measure[Nmeas].imageID   = stars[N].imageID;
 
-    catalog[0].measure[Nmeas].dXccd     = stars[N].dX;
-    catalog[0].measure[Nmeas].dYccd     = stars[N].dY;
+    catalog[0].measure[Nmeas].dXccd     = stars[N].dXccd;
+    catalog[0].measure[Nmeas].dYccd     = stars[N].dYccd;
 
     catalog[0].measure[Nmeas].Map  	= stars[N].Map;
@@ -332,4 +327,10 @@
     catalog[0].measure[Nmeas].FWy      	= 100*stars[N].fy;
     catalog[0].measure[Nmeas].theta    	= (0xffff/360.0)*stars[N].df;
+
+    catalog[0].measure[Nmeas].stargal   = 0; // XXX not yet set
+
+    catalog[0].measure[Nmeas].dbFlags 	= 0;
+    catalog[0].measure[Nmeas].averef   	= Nave;           /* XXX EAM : must be absolute Nave if partial read */
+
     /* XXX replace df here with theta, right? */
 
Index: /branches/eam_branch_20090208/Ohana/src/addstar/src/find_matches_closest.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/addstar/src/find_matches_closest.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/addstar/src/find_matches_closest.c	(revision 21419)
@@ -188,8 +188,6 @@
     catalog[0].measure[Nmeas].dD       = 3600.0*(catalog[0].average[n].D - stars[N].D);
 
-    /* XXX need to add dX, dY : need to load into stars[N].dX,dY */
-    /* XXX need to add stargal, Sky, dSky, qPSF, detID, imageID */
-    catalog[0].measure[Nmeas].Xccd     = stars[N].X;
-    catalog[0].measure[Nmeas].Yccd     = stars[N].Y;
+    catalog[0].measure[Nmeas].Xccd     = stars[N].Xccd;
+    catalog[0].measure[Nmeas].Yccd     = stars[N].Yccd;
 
     catalog[0].measure[Nmeas].M        = stars[N].M;
@@ -197,26 +195,21 @@
     catalog[0].measure[Nmeas].Mcal     = stars[N].Mcal;
     catalog[0].measure[Nmeas].t        = stars[N].t;
-    catalog[0].measure[Nmeas].averef   = n;
-    catalog[0].measure[Nmeas].photcode = stars[N].code;  /* photcode */
-    catalog[0].measure[Nmeas].dophot   = stars[N].dophot;  
-    catalog[0].measure[Nmeas].dbFlags  = 0;
+    catalog[0].measure[Nmeas].photcode = stars[N].photcode;
     catalog[0].measure[Nmeas].dt       = stars[N].dt;
     catalog[0].measure[Nmeas].airmass  = stars[N].airmass;
 
-    catalog[0].measure[Nmeas].photFlags = stars[N].flags;
-    catalog[0].measure[Nmeas].qPSF      = stars[N].psfQual;
+    catalog[0].measure[Nmeas].photFlags = stars[N].photFlags;
+    catalog[0].measure[Nmeas].psfQual   = stars[N].psfQual;
     catalog[0].measure[Nmeas].psfChisq  = stars[N].psfChisq;
     catalog[0].measure[Nmeas].crNsigma  = stars[N].crNsigma;
     catalog[0].measure[Nmeas].extNsigma = stars[N].extNsigma;
-    catalog[0].measure[Nmeas].Sky       = stars[N].sky;
-    catalog[0].measure[Nmeas].dSky      = stars[N].dsky;
-
-    catalog[0].measure[Nmeas].stargal   = 0;
+    catalog[0].measure[Nmeas].Sky       = stars[N].Sky;
+    catalog[0].measure[Nmeas].dSky      = stars[N].dSky;
 
     catalog[0].measure[Nmeas].detID     = stars[N].detID;
     catalog[0].measure[Nmeas].imageID   = stars[N].imageID;
 
-    catalog[0].measure[Nmeas].dXccd     = stars[N].dX;
-    catalog[0].measure[Nmeas].dYccd     = stars[N].dY;
+    catalog[0].measure[Nmeas].dXccd     = stars[N].dXccd;
+    catalog[0].measure[Nmeas].dYccd     = stars[N].dYccd;
 
     catalog[0].measure[Nmeas].Map       = stars[N].Map;
@@ -228,4 +221,9 @@
     catalog[0].measure[Nmeas].theta    = (0xffff/360.0)*stars[N].df;
 	
+    catalog[0].measure[Nmeas].stargal   = 0;
+
+    catalog[0].measure[Nmeas].dbFlags  = 0;
+    catalog[0].measure[Nmeas].averef   = n;
+
     /* set the average magnitude if not already set and the photcode.equiv is not 0 */
     /* in UPDATE mode, this value is not saved; use relphot to recalculate */
@@ -279,5 +277,5 @@
     catalog[0].average[Nave].measureOffset = Nmeas;
     catalog[0].average[Nave].missingOffset = -1;
-    catalog[0].average[Nave].code          = 0;
+    catalog[0].average[Nave].flags         = 0;
 
     catalog[0].average[Nave].dR        = 0;
@@ -300,6 +298,6 @@
     }
 
-    catalog[0].measure[Nmeas].Xccd     = stars[N].X;
-    catalog[0].measure[Nmeas].Yccd     = stars[N].Y;
+    catalog[0].measure[Nmeas].Xccd     = stars[N].Xccd;
+    catalog[0].measure[Nmeas].Yccd     = stars[N].Yccd;
 
     catalog[0].measure[Nmeas].dR       = 0.0;
@@ -309,18 +307,15 @@
     catalog[0].measure[Nmeas].Mcal     = stars[N].Mcal;
     catalog[0].measure[Nmeas].t        = stars[N].t;
-    catalog[0].measure[Nmeas].averef   = Nave;
-    catalog[0].measure[Nmeas].photcode = stars[N].code;  /* photcode */
-    catalog[0].measure[Nmeas].dophot   = stars[N].dophot;  
-    catalog[0].measure[Nmeas].dbFlags  = 0;
+    catalog[0].measure[Nmeas].photcode = stars[N].photcode;
     catalog[0].measure[Nmeas].dt       = stars[N].dt;
     catalog[0].measure[Nmeas].airmass  = stars[N].airmass;
 
-    catalog[0].measure[Nmeas].photFlags = stars[N].flags;
-    catalog[0].measure[Nmeas].qPSF      = stars[N].psfQual;
+    catalog[0].measure[Nmeas].photFlags = stars[N].photFlags;
+    catalog[0].measure[Nmeas].psfQual   = stars[N].psfQual;
     catalog[0].measure[Nmeas].psfChisq  = stars[N].psfChisq;
     catalog[0].measure[Nmeas].crNsigma  = stars[N].crNsigma;
     catalog[0].measure[Nmeas].extNsigma = stars[N].extNsigma;
-    catalog[0].measure[Nmeas].Sky       = stars[N].sky;
-    catalog[0].measure[Nmeas].dSky      = stars[N].dsky;
+    catalog[0].measure[Nmeas].Sky       = stars[N].Sky;
+    catalog[0].measure[Nmeas].dSky      = stars[N].dSky;
 
     catalog[0].measure[Nmeas].stargal   = 0;
@@ -329,6 +324,6 @@
     catalog[0].measure[Nmeas].imageID   = stars[N].imageID;
 
-    catalog[0].measure[Nmeas].dXccd     = stars[N].dX;
-    catalog[0].measure[Nmeas].dYccd     = stars[N].dY;
+    catalog[0].measure[Nmeas].dXccd     = stars[N].dXccd;
+    catalog[0].measure[Nmeas].dYccd     = stars[N].dYccd;
 
     catalog[0].measure[Nmeas].Map      = stars[N].Map;
@@ -336,4 +331,7 @@
     catalog[0].measure[Nmeas].FWy      = 100*stars[N].fy;
     catalog[0].measure[Nmeas].theta    = (0xffff/360.0)*stars[N].df;
+
+    catalog[0].measure[Nmeas].dbFlags  = 0;
+    catalog[0].measure[Nmeas].averef   = Nave;
 
     /* set the average magnitude if not already set and the photcode.equiv is not 0 */
Index: /branches/eam_branch_20090208/Ohana/src/addstar/src/find_matches_refstars.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/addstar/src/find_matches_refstars.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/addstar/src/find_matches_refstars.c	(revision 21419)
@@ -149,6 +149,5 @@
       catalog[0].measure[Nmeas].t        = (TIMEREF == 0) ? stars[N][0].t : TIMEREF; /** careful : time_t vs e_time **/
       catalog[0].measure[Nmeas].averef   = n;
-      catalog[0].measure[Nmeas].photcode = stars[N][0].code;
-      catalog[0].measure[Nmeas].dophot   = 0;
+      catalog[0].measure[Nmeas].photcode = stars[N][0].photcode;
       catalog[0].measure[Nmeas].dbFlags  = 0;
       catalog[0].measure[Nmeas].dt       = 0xffff;
@@ -160,6 +159,6 @@
       catalog[0].measure[Nmeas].theta    = stars[N][0].df; // XXX make sure these are zero'ed as needed
 	
-      catalog[0].measure[Nmeas].photFlags = stars[N][0].flags; // XXX make sure these are zero'ed as needed
-      catalog[0].measure[Nmeas].qPSF      = 0;
+      catalog[0].measure[Nmeas].photFlags = stars[N][0].photFlags; // XXX make sure these are zero'ed as needed
+      catalog[0].measure[Nmeas].psfQual   = 0;
       catalog[0].measure[Nmeas].psfChisq  = 0;
       catalog[0].measure[Nmeas].crNsigma  = 0;
@@ -176,6 +175,6 @@
       catalog[0].measure[Nmeas].dYccd     = 0;
 
-      catalog[0].measure[Nmeas].Xccd     = stars[N][0].X; // XXX make sure these are zero'ed as needed
-      catalog[0].measure[Nmeas].Yccd     = stars[N][0].Y; // XXX make sure these are zero'ed as needed
+      catalog[0].measure[Nmeas].Xccd     = stars[N][0].Xccd; // XXX make sure these are zero'ed as needed
+      catalog[0].measure[Nmeas].Yccd     = stars[N][0].Yccd; // XXX make sure these are zero'ed as needed
 
       if (ACCEPT_MOTION) {
@@ -242,5 +241,5 @@
     catalog[0].average[Nave].measureOffset = Nmeas;
     catalog[0].average[Nave].missingOffset = -1;
-    catalog[0].average[Nave].code          = 0;
+    catalog[0].average[Nave].flags         = 0;
 
     if (ACCEPT_MOTION) {
@@ -283,11 +282,10 @@
       catalog[0].measure[Nmeas].t        = (stars[N][0].t == 0) ? TIMEREF : stars[N][0].t; /** careful : time_t vs e_time **/
       catalog[0].measure[Nmeas].averef   = Nave;
-      catalog[0].measure[Nmeas].photcode = stars[N][0].code;
-      catalog[0].measure[Nmeas].dophot   = 0;
+      catalog[0].measure[Nmeas].photcode = stars[N][0].photcode;
       catalog[0].measure[Nmeas].dbFlags  = 0;
       catalog[0].measure[Nmeas].dt       = 0xffff;
 
-      catalog[0].measure[Nmeas].photFlags = stars[N][0].flags; // XXX make sure these are zero'ed as needed
-      catalog[0].measure[Nmeas].qPSF      = 0;
+      catalog[0].measure[Nmeas].photFlags = stars[N][0].photFlags; // XXX make sure these are zero'ed as needed
+      catalog[0].measure[Nmeas].psfQual   = 0;
       catalog[0].measure[Nmeas].psfChisq  = 0;
       catalog[0].measure[Nmeas].crNsigma  = 0;
@@ -304,6 +302,6 @@
       catalog[0].measure[Nmeas].dYccd     = 0;
 
-      catalog[0].measure[Nmeas].Xccd     = stars[N][0].X; // XXX make sure these are zero'ed as needed
-      catalog[0].measure[Nmeas].Yccd     = stars[N][0].Y; // XXX make sure these are zero'ed as needed
+      catalog[0].measure[Nmeas].Xccd     = stars[N][0].Xccd; // XXX make sure these are zero'ed as needed
+      catalog[0].measure[Nmeas].Yccd     = stars[N][0].Yccd; // XXX make sure these are zero'ed as needed
 
       catalog[0].measure[Nmeas].airmass  = 0;
Index: /branches/eam_branch_20090208/Ohana/src/addstar/src/get2mass_dr2.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/addstar/src/get2mass_dr2.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/addstar/src/get2mass_dr2.c	(revision 21419)
@@ -68,21 +68,21 @@
 	dparse (&J,  1, &buffer[NBYTE*i + 53]);
 	dparse (&dJ, 2, &buffer[NBYTE*i + 53]);
-	stars[Nstars].M    = J;
-	stars[Nstars].dM   = dJ;
-	stars[Nstars].code = TM_J;
+	stars[Nstars].M        = J;
+	stars[Nstars].dM       = dJ;
+	stars[Nstars].photcode = TM_J;
       }
       if (photcode == TM_H) {
 	dparse (&H,  1, &buffer[NBYTE*i + 72]);
 	dparse (&dH, 2, &buffer[NBYTE*i + 72]);
-	stars[Nstars].M    = H;
-	stars[Nstars].dM   = dH;
-	stars[Nstars].code = TM_H;
+	stars[Nstars].M        = H;
+	stars[Nstars].dM       = dH;
+	stars[Nstars].photcode = TM_H;
       }
       if (photcode == TM_K) {
 	dparse (&K,  1, &buffer[NBYTE*i + 91]);
 	dparse (&dK, 2, &buffer[NBYTE*i + 91]);
-	stars[Nstars].M    = K;
-	stars[Nstars].dM   = dK;
-	stars[Nstars].code = TM_K;
+	stars[Nstars].M        = K;
+	stars[Nstars].dM       = dK;
+	stars[Nstars].photcode = TM_K;
       }
       Nstars ++;
Index: /branches/eam_branch_20090208/Ohana/src/addstar/src/get2mass_full.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/addstar/src/get2mass_full.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/addstar/src/get2mass_full.c	(revision 21419)
@@ -54,5 +54,5 @@
   ptr = next2MASSfield (ptr); // k_snr (skip)
 
-  star[2][0].flags = star[1][0].flags = star[0][0].flags = 0;
+  star[2][0].photFlags = star[1][0].photFlags = star[0][0].photFlags = 0;
 
   ptr = next2MASSfield (ptr); // ph_qual
@@ -99,6 +99,6 @@
 
   ptr = next2MASSfield (ptr); // x_scan
-  star[0][0].X = strtod (ptr, NULL);
-  star[2][0].X = star[1][0].X = star[0][0].X;
+  star[0][0].Xccd = strtod (ptr, NULL);
+  star[2][0].Xccd = star[1][0].Xccd = star[0][0].Xccd;
 
   ptr = next2MASSfield (ptr); // jdate (julian date)
@@ -140,15 +140,15 @@
   set2MASS_use_flag (star[2], ptr[0]);
 
-  star[0][0].code  = TM_J;
+  star[0][0].photcode  = TM_J;
   star[0][0].found = -1;
   star[0][0].detID   = 0;
   star[0][0].imageID = 0;
 
-  star[1][0].code  = TM_H;
+  star[1][0].photcode  = TM_H;
   star[1][0].found = -1;
   star[1][0].detID   = 0;
   star[1][0].imageID = 0;
 
-  star[2][0].code  = TM_K;
+  star[2][0].photcode  = TM_K;
   star[2][0].found = -1;
   star[2][0].detID   = 0;
@@ -174,12 +174,12 @@
 
   switch (qual) {
-    case 'X': star[0].flags |= 0x0000; break;
-    case 'U': star[0].flags |= 0x0001; break;
-    case 'F': star[0].flags |= 0x0002; break;
-    case 'E': star[0].flags |= 0x0003; break;
-    case 'A': star[0].flags |= 0x0004; break;
-    case 'B': star[0].flags |= 0x0005; break;
-    case 'C': star[0].flags |= 0x0006; break;
-    case 'D': star[0].flags |= 0x0007; break;
+    case 'X': star[0].photFlags |= 0x0000; break;
+    case 'U': star[0].photFlags |= 0x0001; break;
+    case 'F': star[0].photFlags |= 0x0002; break;
+    case 'E': star[0].photFlags |= 0x0003; break;
+    case 'A': star[0].photFlags |= 0x0004; break;
+    case 'B': star[0].photFlags |= 0x0005; break;
+    case 'C': star[0].photFlags |= 0x0006; break;
+    case 'D': star[0].photFlags |= 0x0007; break;
     default: 
       fprintf (stderr, "error!\n");
@@ -192,11 +192,11 @@
 
   switch (qual) {
-    case '0': star[0].flags |= 0x0000; break;
-    case '1': star[0].flags |= 0x0010; break;
-    case '2': star[0].flags |= 0x0020; break;
-    case '3': star[0].flags |= 0x0030; break;
-    case '4': star[0].flags |= 0x0040; break;
-    case '6': star[0].flags |= 0x0050; break;
-    case '9': star[0].flags |= 0x0060; break;
+    case '0': star[0].photFlags |= 0x0000; break;
+    case '1': star[0].photFlags |= 0x0010; break;
+    case '2': star[0].photFlags |= 0x0020; break;
+    case '3': star[0].photFlags |= 0x0030; break;
+    case '4': star[0].photFlags |= 0x0040; break;
+    case '6': star[0].photFlags |= 0x0050; break;
+    case '9': star[0].photFlags |= 0x0060; break;
     default: 
       fprintf (stderr, "error!\n");
@@ -209,10 +209,10 @@
 
   switch (qual) {
-    case 'p': star[0].flags |= 0x0000; break;
-    case 'c': star[0].flags |= 0x0100; break;
-    case 'd': star[0].flags |= 0x0200; break;
-    case 's': star[0].flags |= 0x0300; break;
-    case 'b': star[0].flags |= 0x0400; break;
-    case '0': star[0].flags |= 0x0500; break;
+    case 'p': star[0].photFlags |= 0x0000; break;
+    case 'c': star[0].photFlags |= 0x0100; break;
+    case 'd': star[0].photFlags |= 0x0200; break;
+    case 's': star[0].photFlags |= 0x0300; break;
+    case 'b': star[0].photFlags |= 0x0400; break;
+    case '0': star[0].photFlags |= 0x0500; break;
     default: 
       fprintf (stderr, "error!\n");
@@ -225,7 +225,7 @@
 
   switch (qual) {
-    case '0': star[0].flags &= ~0x0008; break;
-    case '1': star[0].flags &= ~0x0008; break;
-    default:  star[0].flags |=  0x0008; break;
+    case '0': star[0].photFlags &= ~0x0008; break;
+    case '1': star[0].photFlags &= ~0x0008; break;
+    default:  star[0].photFlags |=  0x0008; break;
   }      
   return (TRUE);
@@ -235,8 +235,8 @@
 
   switch (qual) {
-    case '0': star[0].flags &= ~0x0080; break;
-    case '1': star[0].flags &= ~0x0080; break;
+    case '0': star[0].photFlags &= ~0x0080; break;
+    case '1': star[0].photFlags &= ~0x0080; break;
     default:  
-      star[0].flags |= 0x0080; 
+      star[0].photFlags |= 0x0080; 
       star[0].extNsigma = 100.0;
       break;
@@ -248,7 +248,7 @@
 
   switch (qual) {
-    case '0': star[0].flags &= ~0x0800; break;
-    case '1': star[0].flags &= ~0x0800; break;
-    default:  star[0].flags |=  0x0800; break;
+    case '0': star[0].photFlags &= ~0x0800; break;
+    case '1': star[0].photFlags &= ~0x0800; break;
+    default:  star[0].photFlags |=  0x0800; break;
   }      
   return (TRUE);
@@ -258,7 +258,7 @@
 
   switch (qual) {
-    case '0': star[0].flags &= ~0x1000; break;
-    case '1': star[0].flags &= ~0x1000; break;
-    default:  star[0].flags |=  0x1000; break;
+    case '0': star[0].photFlags &= ~0x1000; break;
+    case '1': star[0].photFlags &= ~0x1000; break;
+    default:  star[0].photFlags |=  0x1000; break;
   }      
   return (TRUE);
@@ -268,6 +268,6 @@
 
   switch (qual) {
-    case '0': star[0].flags &= ~0x2000; break;
-    case '1': star[0].flags |=  0x2000; break;
+    case '0': star[0].photFlags &= ~0x2000; break;
+    case '1': star[0].photFlags |=  0x2000; break;
     default:  abort();
   }      
Index: /branches/eam_branch_20090208/Ohana/src/addstar/src/get2mass_ops.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/addstar/src/get2mass_ops.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/addstar/src/get2mass_ops.c	(revision 21419)
@@ -57,11 +57,11 @@
   }
 
-  star[0].M       = M;
-  star[0].dM      = dM;
-  star[0].code    = Photcode;
-  star[0].t       = time;
-  star[0].found   = -1;
-  star[0].detID   = 0;
-  star[0].imageID = 0;
+  star[0].M        = M;
+  star[0].dM       = dM;
+  star[0].photcode = Photcode;
+  star[0].t        = time;
+  star[0].found    = -1;
+  star[0].detID    = 0;
+  star[0].imageID  = 0;
 
   return TRUE;
@@ -107,27 +107,27 @@
   // how many bits are being used for the 2mass flags; can we just set photFlags based on them?
 
-  star[0].M     = J;
-  star[0].dM    = dJ;
-  star[0].code  = TM_J;
-  star[0].t     = time;
-  star[0].found = -1;
-  star[0].detID   = 0;
-  star[0].imageID = 0;
-
-  star[1].M     = H;
-  star[1].dM    = dH;
-  star[1].code  = TM_H;
-  star[1].t     = time;
-  star[1].found = -1;
-  star[1].detID   = 0;
-  star[1].imageID = 0;
-
-  star[2].M     = K;
-  star[2].dM    = dK;
-  star[2].code  = TM_K;
-  star[2].t     = time;
-  star[2].found = -1;
-  star[2].detID   = 0;
-  star[2].imageID = 0;
+  star[0].M         = J;
+  star[0].dM        = dJ;
+  star[0].photcode  = TM_J;
+  star[0].t         = time;
+  star[0].found     = -1;
+  star[0].detID     = 0;
+  star[0].imageID   = 0;
+
+  star[1].M         = H;
+  star[1].dM        = dH;
+  star[1].photcode  = TM_H;
+  star[1].t         = time;
+  star[1].found     = -1;
+  star[1].detID     = 0;
+  star[1].imageID   = 0;
+
+  star[2].M         = K;
+  star[2].dM        = dK;
+  star[2].photcode  = TM_K;
+  star[2].t         = time;
+  star[2].found     = -1;
+  star[2].detID     = 0;
+  star[2].imageID   = 0;
 
   return TRUE;
Index: /branches/eam_branch_20090208/Ohana/src/addstar/src/getgsc.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/addstar/src/getgsc.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/addstar/src/getgsc.c	(revision 21419)
@@ -76,14 +76,14 @@
 
       dparse (&stars[Nstars].M, 3, &buffer[Nbyte]);
-      stars[Nstars].dM 	  = NAN;
-      stars[Nstars].t  	  = 0;
-      stars[Nstars].code  = GSC_M;
-      stars[Nstars].found = -1;
+      stars[Nstars].dM 	      = NAN;
+      stars[Nstars].t  	      = 0;
+      stars[Nstars].photcode  = GSC_M;
+      stars[Nstars].found     = -1;
 
       stars[Nstars].detID   = 0;
       stars[Nstars].imageID = 0;
 
-      stars[Nstars].X  = 0;
-      stars[Nstars].Y  = 0;
+      stars[Nstars].Xccd  = 0;
+      stars[Nstars].Yccd  = 0;
       stars[Nstars].fx = 0;
       stars[Nstars].fy = 0;
Index: /branches/eam_branch_20090208/Ohana/src/addstar/src/gettycho.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/addstar/src/gettycho.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/addstar/src/gettycho.c	(revision 21419)
@@ -104,6 +104,6 @@
 	stars[Ntycho].found = -1;
       
-	stars[Ntycho].X  = 0;
-	stars[Ntycho].Y  = 0;
+	stars[Ntycho].Xccd  = 0;
+	stars[Ntycho].Yccd  = 0;
 	stars[Ntycho].fx = 0;
 	stars[Ntycho].fy = 0;
@@ -114,9 +114,9 @@
 	  stars[Ntycho].M     = atof (&line[110]);
 	  stars[Ntycho].dM    = atof (&line[117]);
-	  stars[Ntycho].code  = TYCHO_B;
+	  stars[Ntycho].photcode  = TYCHO_B;
 	} else {
 	  stars[Ntycho].M     = atof (&line[123]);
 	  stars[Ntycho].dM    = atof (&line[130]);
-	  stars[Ntycho].code  = TYCHO_V;
+	  stars[Ntycho].photcode  = TYCHO_V;
 	}	
       
Index: /branches/eam_branch_20090208/Ohana/src/addstar/src/getusno.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/addstar/src/getusno.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/addstar/src/getusno.c	(revision 21419)
@@ -120,6 +120,6 @@
       stars[Nusno].imageID = 0;
 
-      stars[Nusno].X  = 0;
-      stars[Nusno].Y  = 0;
+      stars[Nusno].Xccd  = 0;
+      stars[Nusno].Yccd  = 0;
       stars[Nusno].fx = 0;
       stars[Nusno].fy = 0;
@@ -128,9 +128,9 @@
       /* one pass of addstar does either r or b */
       if (photcode == USNO_RED) {
-	stars[Nusno].code  = USNO_RED;
+	stars[Nusno].photcode  = USNO_RED;
 	stars[Nusno].M     = fabs (0.1*(buf[2] - 1000*((int)(buf[2]/1000))));
       } 
       if (photcode == USNO_BLUE) {	
-	stars[Nusno].code  = USNO_BLUE;
+	stars[Nusno].photcode  = USNO_BLUE;
 	stars[Nusno].M     = fabs (0.1*((int)(buf[2] - 1000000*((int)(buf[2]/1000000))) / 1000));
       }
Index: /branches/eam_branch_20090208/Ohana/src/addstar/src/getusnob.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/addstar/src/getusnob.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/addstar/src/getusnob.c	(revision 21419)
@@ -149,6 +149,6 @@
       stars[Nusno].imageID = 0;
 
-      stars[Nusno].X  = 0;
-      stars[Nusno].Y  = 0;
+      stars[Nusno].Xccd  = 0;
+      stars[Nusno].Yccd  = 0;
       stars[Nusno].fx = 0;
       stars[Nusno].fy = 0;
@@ -172,5 +172,5 @@
 	  m2 = 0;
       }
-      stars[Nusno].code = photcode;
+      stars[Nusno].photcode = photcode;
 
       /* if two mags are available, get an average */
Index: /branches/eam_branch_20090208/Ohana/src/addstar/src/grefstars.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/addstar/src/grefstars.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/addstar/src/grefstars.c	(revision 21419)
@@ -27,11 +27,11 @@
     stars[N].R = ohana_normalize_angle (stars[N].R);
     stars[N].t = 0;
-    stars[N].code = photcode;
+    stars[N].photcode = photcode;
     stars[N].found = FALSE;
     stars[N].detID   = 0;
     stars[N].imageID = 0;
 
-    stars[N].X  = 0;
-    stars[N].Y  = 0;
+    stars[N].Xccd  = 0;
+    stars[N].Yccd  = 0;
     stars[N].fx = 0;
     stars[N].fy = 0;
Index: /branches/eam_branch_20090208/Ohana/src/addstar/src/load2mass_catalog.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/addstar/src/load2mass_catalog.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/addstar/src/load2mass_catalog.c	(revision 21419)
@@ -37,5 +37,5 @@
     catalog[0].average[Nave].measureOffset = Nmeas;
     catalog[0].average[Nave].missingOffset = -1;
-    catalog[0].average[Nave].code          = 0;
+    catalog[0].average[Nave].flags         = 0;
 
     for (j = 0; j < Nsec; j++) {
@@ -49,6 +49,6 @@
       catalog[0].measure[Nmeas].dR        = 0.0;
       catalog[0].measure[Nmeas].dD        = 0.0;
-      catalog[0].measure[Nmeas].Xccd      = stars[i+j].X;
-      catalog[0].measure[Nmeas].Yccd      = stars[i+j].Y;
+      catalog[0].measure[Nmeas].Xccd      = stars[i+j].Xccd;
+      catalog[0].measure[Nmeas].Yccd      = stars[i+j].Yccd;
       catalog[0].measure[Nmeas].dXccd     = 0.0;
       catalog[0].measure[Nmeas].dYccd     = 0.0;
@@ -59,7 +59,6 @@
       catalog[0].measure[Nmeas].t         = stars[i+j].t;
       catalog[0].measure[Nmeas].averef    = Nave;
-      catalog[0].measure[Nmeas].photcode  = stars[i+j].code;
-      catalog[0].measure[Nmeas].dophot    = 0;
-      catalog[0].measure[Nmeas].photFlags = stars[i+j].flags;
+      catalog[0].measure[Nmeas].photcode  = stars[i+j].photcode;
+      catalog[0].measure[Nmeas].photFlags = stars[i+j].photFlags;
       catalog[0].measure[Nmeas].dbFlags   = 0;
       catalog[0].measure[Nmeas].dt        = 0xffff;
Index: /branches/eam_branch_20090208/Ohana/src/addstar/src/replace_match.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/addstar/src/replace_match.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/addstar/src/replace_match.c	(revision 21419)
@@ -7,5 +7,5 @@
   /* search for entry and replace values M, dM, R, D */
   for (i = 0; i < average[0].Nmeasure; i++) {
-    if (measure[i].photcode != star[0].code) continue;
+    if (measure[i].photcode != star[0].photcode) continue;
     measure[i].dR = 3600.0*(average[0].R - star[0].R);
     measure[i].dD = 3600.0*(average[0].D - star[0].D);
Index: /branches/eam_branch_20090208/Ohana/src/addstar/src/sky_tessalation.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/addstar/src/sky_tessalation.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/addstar/src/sky_tessalation.c	(revision 21419)
@@ -281,5 +281,5 @@
   image[0].NY = NY;
 
-  image[0].code = 1; // this needs to be set more sensibly
+  image[0].photcode = 1; // this needs to be set more sensibly
 
   image[0].Mx   = xv[0];  image[0].My   = yv[0];
@@ -433,5 +433,5 @@
   rectangle[0].NX = NX;
   rectangle[0].NY = NY;
-  rectangle[0].code = 1; // this needs to be set more sensibly
+  rectangle[0].photcode = 1; // this needs to be set more sensibly
 
   return (TRUE);
@@ -477,5 +477,5 @@
   rectangle[0].NX = NX;
   rectangle[0].NY = NY;
-  rectangle[0].code = 1; // this needs to be set more sensibly
+  rectangle[0].photcode = 1; // this needs to be set more sensibly
 
   return (TRUE);
@@ -511,5 +511,5 @@
       output[N].NX = NX;
       output[N].NY = NY;
-      output[N].code = input[0].code;
+      output[N].photcode = input[0].photcode;
 
       output[N].coords.crpix1 = input[0].coords.crpix1 - i*NX;
Index: /branches/eam_branch_20090208/Ohana/src/getstar/src/ReadImageFiles.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/getstar/src/ReadImageFiles.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/getstar/src/ReadImageFiles.c	(revision 21419)
@@ -64,5 +64,5 @@
       /* find image rootname */
       name = filebasename (file[i]);
-      snprintf (image[N].name, DVO_IMAGE_NAME_LEN, name);
+      snprintf (image[N].name, DVO_IMAGE_NAME_LEN, "%s", name);
       free (name);
 
Index: /branches/eam_branch_20090208/Ohana/src/getstar/src/ReadImageHeader.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/getstar/src/ReadImageHeader.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/getstar/src/ReadImageHeader.c	(revision 21419)
@@ -112,5 +112,5 @@
   image[0].Mcal = 0.0;
   image[0].Xm   = NAN_S_SHORT;
-  image[0].code = 0;
+  image[0].flags = 0;
 
   return (TRUE);
Index: /branches/eam_branch_20090208/Ohana/src/getstar/src/write_getstar_ps1_dev_0.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/getstar/src/write_getstar_ps1_dev_0.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/getstar/src/write_getstar_ps1_dev_0.c	(revision 21419)
@@ -46,5 +46,5 @@
     output[i].D        = average[i].D;
 
-    output[i].code     = average[i].code;
+    output[i].code     = average[i].flags;
     output[i].photcode = code_c0;
 
Index: /branches/eam_branch_20090208/Ohana/src/getstar/src/write_getstar_ps1_dev_1.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/getstar/src/write_getstar_ps1_dev_1.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/getstar/src/write_getstar_ps1_dev_1.c	(revision 21419)
@@ -49,5 +49,5 @@
     output[i].P        = average[i].P;
 
-    output[i].code     = average[i].code;
+    output[i].code     = average[i].flags;
     output[i].photcode = code_c0;
 
Index: /branches/eam_branch_20090208/Ohana/src/getstar/src/write_getstar_ps1_dev_2.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/getstar/src/write_getstar_ps1_dev_2.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/getstar/src/write_getstar_ps1_dev_2.c	(revision 21419)
@@ -55,5 +55,5 @@
     output[i].dP       = average[i].dP;
 
-    output[i].code     = average[i].code;
+    output[i].code     = average[i].flags;
     output[i].photcode = code_c0;
 
Index: /branches/eam_branch_20090208/Ohana/src/imregister/imphot/modify.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/imregister/imphot/modify.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/imregister/imphot/modify.c	(revision 21419)
@@ -13,14 +13,14 @@
     if (options.modify) {
       if (!strcasecmp (options.ModifyEntry, "and")) {
-	image[i].code &= atoi (options.ModifyValue);
+	image[i].flags &= atoi (options.ModifyValue);
       }
       if (!strcasecmp (options.ModifyEntry, "or")) {
-	image[i].code |= atoi (options.ModifyValue);
+	image[i].flags |= atoi (options.ModifyValue);
       }
       if (!strcasecmp (options.ModifyEntry, "xor")) {
-	image[i].code ^= atoi (options.ModifyValue);
+	image[i].flags ^= atoi (options.ModifyValue);
       }
       if (!strcasecmp (options.ModifyEntry, "=")) {
-	image[i].code = atoi (options.ModifyValue);
+	image[i].flags = atoi (options.ModifyValue);
       }
     }
Index: /branches/eam_branch_20090208/Ohana/src/imregister/imphot/output.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/imregister/imphot/output.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/imregister/imphot/output.c	(revision 21419)
@@ -39,5 +39,5 @@
       
     fprintf (stdout, "%s %s %s  %7.4f %7.4f  %7.4f %5d %02x\n", image[i].name, photstr, timestr, 
-	     image[i].Mcal, image[i].dMcal, image[i].secz, image[i].nstar, image[i].code); 
+	     image[i].Mcal, image[i].dMcal, image[i].secz, image[i].nstar, image[i].flags); 
     free (timestr);
   }
Index: /branches/eam_branch_20090208/Ohana/src/imregister/imphot/subset.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/imregister/imphot/subset.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/imregister/imphot/subset.c	(revision 21419)
@@ -24,5 +24,5 @@
     if (!status && criteria.Ntimes) continue;
     if (criteria.PhotcodeSelect && (image[i].photcode != criteria.photcode)) continue;
-    if (criteria.CodeSelect     && (image[i].code != criteria.Code)) continue;
+    if (criteria.CodeSelect     && (image[i].flags != criteria.Code)) continue;
     if (criteria.NameSelect     && strncasecmp (image[i].name, criteria.Name, NameSelectLength)) continue;
 
Index: /branches/eam_branch_20090208/Ohana/src/libohana/include/ohana.h
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/libohana/include/ohana.h	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/libohana/include/ohana.h	(revision 21419)
@@ -6,4 +6,5 @@
 # include <time.h>
 # include <stdlib.h>
+# include <stdint.h>
 # include <string.h>
 # include <sys/socket.h>
Index: /branches/eam_branch_20090208/Ohana/src/opihi/dvo/dbExtractAverages.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/opihi/dvo/dbExtractAverages.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/opihi/dvo/dbExtractAverages.c	(revision 21419)
@@ -121,5 +121,5 @@
       break;
     case AVE_FLAG:
-      value.Int = average[0].code;
+      value.Int = average[0].flags;
       break;
     case AVE_OBJID:
Index: /branches/eam_branch_20090208/Ohana/src/opihi/dvo/dbExtractImages.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/opihi/dvo/dbExtractImages.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/opihi/dvo/dbExtractImages.c	(revision 21419)
@@ -247,5 +247,5 @@
       break;
     case IMAGE_FLAG:
-      value.Int = image[N].code;
+      value.Int = image[N].flags;
       break;
     case IMAGE_CCDNUM:
Index: /branches/eam_branch_20090208/Ohana/src/opihi/dvo/dbExtractMeasures.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/opihi/dvo/dbExtractMeasures.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/opihi/dvo/dbExtractMeasures.c	(revision 21419)
@@ -146,5 +146,5 @@
 	case MAG_NPHOT:
 	  if (equiv == NULL) {
-	    value.Int = NAN;
+	    value.Int = 0;
 	    break;
 	  }
@@ -260,5 +260,5 @@
       break;
     case MEAS_OBJFLAGS: /* OK */
-      value.Int = average[0].code;
+      value.Int = average[0].flags;
       break;
     // note that these represent the ra displacement relative to the average, not 
@@ -312,5 +312,5 @@
       break;
     case MEAS_DOPHOT: /* OK */
-      value.Flt = measure[0].dophot;
+      value.Int = (measure[0].photFlags >> 16);
       break;
     case MEAS_DB_FLAGS: /* ? */
@@ -394,5 +394,5 @@
       break;
     case MEAS_PSF_QF: /* OK */
-      value.Flt = measure[0].qPSF;
+      value.Flt = measure[0].psfQual;
       break;
     case MEAS_PSF_CHISQ: /* OK */
Index: /branches/eam_branch_20090208/Ohana/src/opihi/dvo/dbFields.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/opihi/dvo/dbFields.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/opihi/dvo/dbFields.c	(revision 21419)
@@ -170,5 +170,5 @@
   if (!strcasecmp (fieldName, "FWHM_MIN"))   ESCAPE (MEAS_FWHM_MIN,    	  MAG_NONE, OPIHI_FLT);
   if (!strcasecmp (fieldName, "THETA"))      ESCAPE (MEAS_THETA,       	  MAG_NONE, OPIHI_FLT);
-  if (!strcasecmp (fieldName, "DOPHOT"))     ESCAPE (MEAS_DOPHOT,      	  MAG_NONE, OPIHI_FLT);
+  if (!strcasecmp (fieldName, "DOPHOT"))     ESCAPE (MEAS_DOPHOT,      	  MAG_NONE, OPIHI_INT);
   if (!strcasecmp (fieldName, "DB_FLAGS"))   ESCAPE (MEAS_DB_FLAGS,    	  MAG_NONE, OPIHI_INT);
   if (!strcasecmp (fieldName, "PHOT_FLAGS")) ESCAPE (MEAS_PHOT_FLAGS, 	  MAG_NONE, OPIHI_INT);
Index: /branches/eam_branch_20090208/Ohana/src/opihi/dvo/gimages.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/opihi/dvo/gimages.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/opihi/dvo/gimages.c	(revision 21419)
@@ -220,9 +220,9 @@
     if (PixelCoords) {
       gprint (GP_LOG, "%3d %s %6.1f %6.1f %20s %5d %2d %4.2f %6.3f %5.3f %5.3f %4x\n", 
-	       Nfound, image[i].name, X, Y, date, image[i].nstar, image[i].photcode, image[i].secz, image[i].Mcal, image[i].dMcal, image[i].exptime, image[i].code);
+	       Nfound, image[i].name, X, Y, date, image[i].nstar, image[i].photcode, image[i].secz, image[i].Mcal, image[i].dMcal, image[i].exptime, image[i].flags);
     } else {
       XY_to_RD (&ra, &dec, 0.5*image[i].NX, 0.5*image[i].NY, &image[i].coords);
       gprint (GP_LOG, "%3d %s %8.4f %8.4f %20s %5d %2d %4.2f %6.3f %5.3f %5.3f %4x\n", 
-	       Nfound, image[i].name, ra, dec, date, image[i].nstar, image[i].photcode, image[i].secz, image[i].Mcal, image[i].dMcal, image[i].exptime, image[i].code);
+	       Nfound, image[i].name, ra, dec, date, image[i].nstar, image[i].photcode, image[i].secz, image[i].Mcal, image[i].dMcal, image[i].exptime, image[i].flags);
     }
     sprintf (name, "IMAGEx:%d", Nfound);
Index: /branches/eam_branch_20090208/Ohana/src/opihi/dvo/gstar.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/opihi/dvo/gstar.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/opihi/dvo/gstar.c	(revision 21419)
@@ -158,5 +158,5 @@
 	gprint (GP_LOG, "%3d   ",  catalog.average[k].Nmeasure);
 	gprint (GP_LOG, "%4.1f ",  0.01*catalog.average[k].Xp);
-	gprint (GP_LOG, "%5d",     catalog.average[k].code);
+	gprint (GP_LOG, "%5d",     catalog.average[k].flags);
 
 	if (FULL_OUTPUT) {
@@ -211,5 +211,5 @@
 	    gprint (GP_LOG, "%7.4f ",  catalog.measure[m].dR);
 	    gprint (GP_LOG, "%7.4f",   catalog.measure[m].dD);
-	    gprint (GP_LOG, "%2d ",    catalog.measure[m].dophot);
+	    gprint (GP_LOG, "%4x ",    catalog.measure[m].photFlags);
 	    gprint (GP_LOG, "%3x ",    catalog.measure[m].dbFlags);
 	    gprint (GP_LOG, "%5d ",    catalog.measure[m].photcode);
@@ -233,5 +233,5 @@
 		gprint (GP_LOG, "%d", catalog.measure[m].detID);
 		gprint (GP_LOG, "%d", catalog.measure[m].imageID);
-		gprint (GP_LOG, "%f", catalog.measure[m].qPSF);
+		gprint (GP_LOG, "%f", catalog.measure[m].psfQual);
 		gprint (GP_LOG, "%f", catalog.measure[m].psfChisq);
 		gprint (GP_LOG, "%f", catalog.measure[m].crNsigma);
@@ -240,6 +240,4 @@
 		gprint (GP_LOG, "%f", 0.01*catalog.measure[m].FWy);
 		gprint (GP_LOG, "%f", (360.0/(float)0xffff)*catalog.measure[m].theta);
-
-		gprint (GP_LOG, "%x", catalog.measure[m].photFlags);
 		gprint (GP_LOG, "%d", catalog.measure[m].stargal);
 	    }
Index: /branches/eam_branch_20090208/Ohana/src/opihi/dvo/paverage.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/opihi/dvo/paverage.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/opihi/dvo/paverage.c	(revision 21419)
@@ -122,5 +122,5 @@
     /* project stars to screen display coords */
     for (i = 0; (i < catalog.Naverage) && !interrupt; i++) {
-      if (IDclip && (average[i].code != IDchoice)) continue;
+      if (IDclip && (average[i].flags != IDchoice)) continue;
       average[i].R = ohana_normalize_angle (average[i].R);
       while (average[i].R < Rmin) average[i].R += 360.0;
Index: /branches/eam_branch_20090208/Ohana/src/opihi/dvo/photometry.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/opihi/dvo/photometry.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/opihi/dvo/photometry.c	(revision 21419)
@@ -2,41 +2,41 @@
 
 /* match code to measure  */
-# define TESTCODE(C,M) \
-  if (C != NULL) { \
-    switch (C[0].type) { \
-    case PHOT_DEP: \
-    case PHOT_REF: \
-      if (C[0].code != M.photcode) continue; \
-      break; \
-    case PHOT_SEC: \
-      if (C[0].code != GetPhotcodeEquivCodebyCode (M.photcode)) continue; \
-      break; \
-    default: \
-      break; \
-  } }
+# define TESTCODE(C,M)							\
+  if (C != NULL) {							\
+    switch (C[0].type) {						\
+      case PHOT_DEP:							\
+      case PHOT_REF:							\
+	if (C[0].code != M.photcode) continue;				\
+	break;								\
+      case PHOT_SEC:							\
+	if (C[0].code != GetPhotcodeEquivCodebyCode (M.photcode)) continue; \
+	break;								\
+      default:								\
+	break;								\
+    } }
 
 /* exclusions based on measure.params  */
-# define TESTMEASURE(M) \
-  if (ApplySelections[SelectionParam]) { \
-    if (TimeSelect && (M.t < tzero)) continue; \
-    if (TimeSelect && (M.t > tend)) continue; \
-    if (ErrSelect  && (M.dM > ErrValue)) continue; \
+# define TESTMEASURE(M)							\
+  if (ApplySelections[SelectionParam]) {				\
+    if (TimeSelect && (M.t < tzero)) continue;				\
+    if (TimeSelect && (M.t > tend)) continue;				\
+    if (ErrSelect  && (M.dM > ErrValue)) continue;			\
+    if (iMagSelect && (PhotInst (&M) < iMagMin)) continue;		\
+    if (FlagSelect && (M.dbFlags != FlagValue)) continue;		\
     if (TypeSelect && (TypeValue != GetMeasureTypeCode (&M))) continue; \
-    if (iMagSelect && (PhotInst (&M) < iMagMin)) continue; \
-    if (FlagSelect && (M.dbFlags != FlagValue)) continue; \
-  }
-
-# define SETMAG(MOUT,MEAS,MODE) \
-  MOUT = NAN; \
-  if (MODE == MAG_INST) MOUT = PhotInst (&MEAS);  \
-  if (MODE == MAG_CAT)  MOUT = PhotCat  (&MEAS); \
-  if (MODE == MAG_SYS)  MOUT = PhotSys  (&MEAS, average, secfilt); \
-  if (MODE == MAG_REL)  MOUT = PhotRel  (&MEAS, average, secfilt); \
+  }
+
+# define SETMAG(MOUT,MEAS,MODE)						\
+  MOUT = NAN;								\
+  if (MODE == MAG_INST) MOUT = PhotInst (&MEAS);			\
+  if (MODE == MAG_CAT)  MOUT = PhotCat  (&MEAS);			\
+  if (MODE == MAG_SYS)  MOUT = PhotSys  (&MEAS, average, secfilt);	\
+  if (MODE == MAG_REL)  MOUT = PhotRel  (&MEAS, average, secfilt);	\
   if (MODE == MAG_CAL)  MOUT = PhotCal  (&MEAS, average, secfilt, measure, GetPhotcodeEquivbyCode (MEAS.photcode)); \
   if (MODE == MAG_AVE)  MOUT = PhotAve  (GetPhotcodeEquivbyCode (MEAS.photcode), average, secfilt); \
   if (MODE == MAG_REF)  MOUT = PhotRef  (GetPhotcodeEquivbyCode (MEAS.photcode), average, secfilt, measure); \
-  if (ApplySelections[SelectionParam]) { \
-    if (MagSelect && (MOUT > MagMax)) continue; \
-    if (MagSelect && (MOUT < MagMin)) continue; \
+  if (ApplySelections[SelectionParam]) {				\
+    if (MagSelect && (MOUT > MagMax)) continue;				\
+    if (MagSelect && (MOUT < MagMin)) continue;				\
   }
 
@@ -182,5 +182,4 @@
   if (!strcasecmp (parname, "dec"))  	 param = MEAS_DEC;
   if (!strcasecmp (parname, "mag")) 	 param = MEAS_MAG;
-  // if (!strcasecmp (parname, "dmag")) 	 param = MEAS_dMAG;
   if (!strcasecmp (parname, "airmass"))  param = MEAS_AIRMASS;
   if (!strcasecmp (parname, "exptime"))  param = MEAS_EXPTIME;
@@ -190,5 +189,4 @@
   if (!strcasecmp (parname, "dD")) 	 param = MEAS_DEC_OFFSET;
   if (!strcasecmp (parname, "fwhm"))   	 param = MEAS_FWHM;
-  // if (!strcasecmp (parname, "dophot")) 	 param = MEAS_DOPHOT;
   if (!strcasecmp (parname, "FLAGS"))    param = MEAS_DB_FLAGS;
   if (!strcasecmp (parname, "XCCD"))   	 param = MEAS_XCCD;
@@ -198,5 +196,5 @@
   if (!strcasecmp (parname, "help")) {
     gprint (GP_ERR, "value may be one of the following:\n");
-    gprint (GP_ERR, " ra dR dec dD mag dmag Mrel Mcal photcode time fwhm dophot xccd yccd xmosaic ymosaic flags\n");
+    gprint (GP_ERR, " ra dR dec dD mag dmag Mrel Mcal photcode time fwhm xccd yccd xmosaic ymosaic flags\n");
     gprint (GP_ERR, "value may also be a valid photcode\n");
     gprint (GP_ERR, "photcodes or 'mag' may have optional magnitude type: mag,[Minst, Mcat, Msys, Mrel, Mcal]\n");
@@ -311,6 +309,6 @@
 
   if (VarConfig ("ZERO_PT", "%lf", &ZERO_POINT) == (char *) NULL) {
-      gprint (GP_ERR, "ZERO_PT undefined in config\n");
-      return (FALSE);
+    gprint (GP_ERR, "ZERO_PT undefined in config\n");
+    return (FALSE);
   }
   SetZeroPoint (ZERO_POINT);
@@ -324,6 +322,6 @@
 
   if (VarConfig ("PHOTCODE_FILE", "%s", MasterPhotcodeFile) == (char *) NULL) {
-      gprint (GP_ERR, "PHOTCODE_FILE undefined in config\n");
-      return (FALSE);
+    gprint (GP_ERR, "PHOTCODE_FILE undefined in config\n");
+    return (FALSE);
   }
   if (!LoadPhotcodes (CatdirPhotcodeFile, MasterPhotcodeFile)) {
@@ -642,5 +640,5 @@
       break;
     case AVE_FLAG:
-      value = average[0].code;
+      value = average[0].flags;
       break;
     case AVE_MAG:
@@ -659,6 +657,6 @@
 	  value = NAN;
 	  for (i = 0; i < average[0].Nmeasure; i++) {
-	      if (code[0].code != measure[i].photcode) continue;
-	      value = measure[i].M;
+	    if (code[0].code != measure[i].photcode) continue;
+	    value = measure[i].M;
 	  }
 	  break;
@@ -675,5 +673,6 @@
       break;
     case AVE_TYPEFRAC:
-      value = DetermineTypefrac (average, measure, code);
+      // value = DetermineTypefrac (average, measure, code);
+      value = NAN;
       break;
     case AVE_NCODE:
@@ -719,5 +718,5 @@
     if ((code != NULL) && (code[0].code != GetPhotcodeEquivCodebyCode (measure[k].photcode))) continue;
     Nc ++;
-    if (measure[k].dophot != TypefracType) continue;
+    if ((measure[k].photFlags >> 16) != TypefracType) continue;
     Nt ++;
   }
@@ -744,5 +743,5 @@
 
 int GetMeasureTypeCode (Measure *measure) {
-  switch (measure[0].dophot) {
+  switch ((measure[0].photFlags >> 16)) {
     case 0:
     case 1:
@@ -770,5 +769,5 @@
   if (IsDophot) {
     
-    if (measure[0].dophot == 4) return (FALSE);
+    if ((measure[0].photFlags >> 16) == 4) return (FALSE);
     return (TRUE);
   
@@ -866,5 +865,5 @@
   if (ErrSelect) {
     dM = PhotdM (code, average, secfilt);
-    if (dM > ErrValue) return (NAN);
+    if (dM > ErrValue) return (FALSE);
   }
   
@@ -1137,12 +1136,7 @@
       value = average[0].D - measure[0].dD / 3600.0;
       break;
-# if (0)
-    case MEAS_dMAG: /* OK */
-      value = measure[0].dM;
-      break;
     case MEAS_DOPHOT: /* OK */
-      value = measure[0].dophot;
-      break;
-# endif
+      value = (measure[0].photFlags >> 16);
+      break;
     case MEAS_AIRMASS: /* OK */
       value = measure[0].airmass;
Index: /branches/eam_branch_20090208/Ohana/src/opihi/dvo/pmeasure.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/opihi/dvo/pmeasure.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/opihi/dvo/pmeasure.c	(revision 21419)
@@ -192,5 +192,5 @@
     /* project stars to screen display coords */
     for (i = 0; (i < catalog.Naverage) && !interrupt; i++) {
-      if (IDclip && (catalog.average[i].code != IDchoice)) continue;
+      if (IDclip && (catalog.average[i].flags != IDchoice)) continue;
       catalog.average[i].R = ohana_normalize_angle (catalog.average[i].R);
       while (catalog.average[i].R < Rmin) catalog.average[i].R += 360.0;
Index: /branches/eam_branch_20090208/Ohana/src/relastro/include/relastro.h
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/relastro/include/relastro.h	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/relastro/include/relastro.h	(revision 21419)
@@ -61,5 +61,5 @@
   short Xm;
   float secz;
-  char code;
+  char flags;
   Coords coords;
 } Mosaic; 
Index: /branches/eam_branch_20090208/Ohana/src/relastro/src/MosaicOps.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/relastro/src/MosaicOps.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/relastro/src/MosaicOps.c	(revision 21419)
@@ -47,5 +47,5 @@
     mosaic[Nmosaic].dMcal = 0.0;
     mosaic[Nmosaic].Xm    = 0.0;
-    mosaic[Nmosaic].code  = image[i].code;
+    mosaic[Nmosaic].flags  = image[i].flags;
     mosaic[Nmosaic].secz  = image[i].secz;
     mosaic[Nmosaic].coords = image[i].coords;
Index: /branches/eam_branch_20090208/Ohana/src/relastro/src/UpdateObjects.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/relastro/src/UpdateObjects.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/relastro/src/UpdateObjects.c	(revision 21419)
@@ -169,5 +169,5 @@
       // position, consider including the lower-quality detections
 
-      catalog[i].average[j].code &= ~ID_STAR_FEW;
+      catalog[i].average[j].flags &= ~ID_STAR_FEW;
 
       // XXX add the parallax factor range as a criterion as well
Index: /branches/eam_branch_20090208/Ohana/src/relastro/src/bcatalog.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/relastro/src/bcatalog.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/relastro/src/bcatalog.c	(revision 21419)
@@ -36,6 +36,6 @@
       // XXX define astrometry vs photometry average.dbFlags
       // XXX put photometry flags in secfilt (ie, per average mag?)
-      subcatalog[0].average[Naverage].code &= ~ID_STAR_FEW;
-      subcatalog[0].average[Naverage].code &= ~ID_STAR_POOR;
+      subcatalog[0].average[Naverage].flags &= ~ID_STAR_FEW;
+      subcatalog[0].average[Naverage].flags &= ~ID_STAR_POOR;
     }
 
@@ -70,5 +70,6 @@
 
       /* select measurements by quality */
-      if (DophotSelect && (catalog[0].measure[offset].dophot != DophotValue)) continue;
+      // XXX FIX THIS!!
+      // if (DophotSelect && (catalog[0].measure[offset].dophot != DophotValue)) continue;
 
       /* select measurements by quality */
Index: /branches/eam_branch_20090208/Ohana/src/relastro/src/load_catalogs.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/relastro/src/load_catalogs.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/relastro/src/load_catalogs.c	(revision 21419)
@@ -38,5 +38,5 @@
       if (RESET) {
 	for (j = 0; j < catalog[i].Naverage; j++) {
-	  catalog[i].average[j].code = 0;
+	  catalog[i].average[j].flags = 0;
 	  m = catalog[i].average[j].measureOffset;
 	  for (k = 0; k < catalog[i].average[j].Nmeasure; k++) {
Index: /branches/eam_branch_20090208/Ohana/src/relastro/src/relastro_objects.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/relastro/src/relastro_objects.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/relastro/src/relastro_objects.c	(revision 21419)
@@ -40,5 +40,5 @@
     if (RESET) {
       for (j = 0; j < catalog.Naverage; j++) {
-	catalog.average[j].code = 0;
+	catalog.average[j].flags = 0;
 	m = catalog.average[j].measureOffset;
 	for (k = 0; k < catalog.average[j].Nmeasure; k++) {
Index: /branches/eam_branch_20090208/Ohana/src/relastro/src/select_images.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/relastro/src/select_images.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/relastro/src/select_images.c	(revision 21419)
@@ -147,6 +147,6 @@
       image[nimage] = timage[i]; 
       /* always allow 'few' images to succeed, if possible */
-      if (image[nimage].code & ID_IMAGE_FEW) { 
-	image[nimage].code &= ~(ID_IMAGE_FEW | ID_IMAGE_POOR);
+      if (image[nimage].flags & ID_IMAGE_FEW) { 
+	image[nimage].flags &= ~(ID_IMAGE_FEW | ID_IMAGE_POOR);
       }
       if (RESET) {
@@ -154,5 +154,5 @@
 	assignMcal (&image[nimage], (double *) NULL, -1);
 	image[nimage].dMcal = NAN;
-	image[nimage].code &= ~ID_IMAGE_POOR;
+	image[nimage].flags &= ~ID_IMAGE_POOR;
       }
       line_number[nimage] = i;
Index: /branches/eam_branch_20090208/Ohana/src/relphot/include/relphot.h
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/relphot/include/relphot.h	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/relphot/include/relphot.h	(revision 21419)
@@ -23,5 +23,5 @@
   short Xm;
   float secz;
-  char code;
+  char flags;
   Coords coords;
 } Mosaic; 
Index: /branches/eam_branch_20090208/Ohana/src/relphot/src/GridOps.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/relphot/src/GridOps.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/relphot/src/GridOps.c	(revision 21419)
@@ -369,5 +369,5 @@
 
       // skip stars marked as BAD
-      if (catalog[c].average[n].code & STAR_BAD) {
+      if (catalog[c].average[n].flags & STAR_BAD) {
 	Nrel ++;
 	continue;
Index: /branches/eam_branch_20090208/Ohana/src/relphot/src/ImageOps.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/relphot/src/ImageOps.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/relphot/src/ImageOps.c	(revision 21419)
@@ -244,5 +244,5 @@
   if (i == -1) return (NAN);
 
-  if (image[i].code & IMAGE_BAD) return (NAN);  
+  if (image[i].flags & IMAGE_BAD) return (NAN);  
   value = image[i].Mcal;
   return (value);
@@ -285,5 +285,5 @@
     /* on PoorImages run, skip good images */
     if (PoorImages) {
-      bad = image[i].code & (ID_IMAGE_FEW | ID_IMAGE_POOR | ID_IMAGE_SKIP);
+      bad = image[i].flags & (ID_IMAGE_FEW | ID_IMAGE_POOR | ID_IMAGE_SKIP);
       if (!bad) continue;
     }      
@@ -331,8 +331,8 @@
       mark = (N < IMAGE_TOOFEW) || (N < IMAGE_GOOD_FRACTION*Nlist[i]);
       if (mark) {
-	image[i].code |= ID_IMAGE_FEW;
+	image[i].flags |= ID_IMAGE_FEW;
 	Nfew ++;
       } else {
-	image[i].code &= ~ID_IMAGE_FEW;
+	image[i].flags &= ~ID_IMAGE_FEW;
       }      
     }
@@ -373,5 +373,5 @@
 
   for (i = N = 0; i < Nimage; i++) {
-    if (image[i].code & IMAGE_BAD) continue;
+    if (image[i].flags & IMAGE_BAD) continue;
     mlist[N] = fabs (image[i].Mcal);
     slist[N] = image[i].dMcal;
@@ -390,11 +390,11 @@
   for (i = 0; i < Nimage; i++) {
     mark = FALSE;
-    image[i].code &= ~ID_IMAGE_POOR;
+    image[i].flags &= ~ID_IMAGE_POOR;
     mark = (image[i].dMcal > MaxScatter) || (fabs(image[i].Mcal - MedOffset) > MaxOffset);
     if (mark) { 
       Nmark ++;
-      image[i].code |= ID_IMAGE_POOR;
+      image[i].flags |= ID_IMAGE_POOR;
     } else {
-      image[i].code &= ~ID_IMAGE_POOR;
+      image[i].flags &= ~ID_IMAGE_POOR;
     }
   }
@@ -470,5 +470,5 @@
   n = 0;
   for (i = 0; i < Nimage; i++) {
-    if (image[i].code & IMAGE_BAD)  continue;
+    if (image[i].flags & IMAGE_BAD)  continue;
 
     N = 0;
@@ -512,5 +512,5 @@
   for (i = 0; i < Nimage; i++) {
 
-    if (image[i].code & IMAGE_BAD)  continue;
+    if (image[i].flags & IMAGE_BAD)  continue;
 
     list[n] = pow (10.0, 0.01*image[i].Xm);
@@ -540,5 +540,5 @@
   for (i = 0; i < Nimage; i++) {
 
-    if (image[i].code & IMAGE_BAD)  continue;
+    if (image[i].flags & IMAGE_BAD)  continue;
 
     list[n] = image[i].Mcal;
@@ -568,5 +568,5 @@
   for (i = 0; i < Nimage; i++) {
 
-    if (image[i].code & IMAGE_BAD)  continue;
+    if (image[i].flags & IMAGE_BAD)  continue;
 
     list[n] = image[i].dMcal;
Index: /branches/eam_branch_20090208/Ohana/src/relphot/src/MosaicOps.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/relphot/src/MosaicOps.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/relphot/src/MosaicOps.c	(revision 21419)
@@ -68,5 +68,5 @@
     mosaic[Nmosaic].dMcal = 0.0;
     mosaic[Nmosaic].Xm    = 0.0;
-    mosaic[Nmosaic].code  = image[i].code;
+    mosaic[Nmosaic].flags  = image[i].flags;
     mosaic[Nmosaic].secz  = image[i].secz;
 
@@ -183,6 +183,6 @@
       image[im].dMcal = mosaic[i].dMcal;
       image[im].Xm = mosaic[i].Xm;
-      image[im].code |= (mosaic[i].code & ID_IMAGE_FEW);
-      image[im].code |= (mosaic[i].code & ID_IMAGE_POOR);
+      image[im].flags |= (mosaic[i].flags & ID_IMAGE_FEW);
+      image[im].flags |= (mosaic[i].flags & ID_IMAGE_POOR);
     }
   }      
@@ -306,5 +306,5 @@
   if (i == -1) return (NAN);
 
-  if (mosaic[i].code & IMAGE_BAD) return (NAN);  
+  if (mosaic[i].flags & IMAGE_BAD) return (NAN);  
   value = mosaic[i].Mcal;
   return (value);
@@ -343,5 +343,5 @@
     /* on PoorImages run, skip good images */
     if (PoorImages) {
-      bad = mosaic[i].code & (ID_IMAGE_FEW | ID_IMAGE_POOR | ID_IMAGE_SKIP);
+      bad = mosaic[i].flags & (ID_IMAGE_FEW | ID_IMAGE_POOR | ID_IMAGE_SKIP);
       if (!bad) continue;
     }      
@@ -393,8 +393,8 @@
       if (mark) {
 	fprintf (stderr, "marked image %s (%d), (%d < %d) || (%d < %f*%d)\n", image[imlist[i][0]].name, i, N, IMAGE_TOOFEW, N, IMAGE_GOOD_FRACTION, Nlist[i]);
-	mosaic[i].code |= ID_IMAGE_FEW;
+	mosaic[i].flags |= ID_IMAGE_FEW;
 	Nfew ++;
       } else {
-	mosaic[i].code &= ~ID_IMAGE_FEW;
+	mosaic[i].flags &= ~ID_IMAGE_FEW;
       }
     }
@@ -434,5 +434,5 @@
   n = 0;
   for (i = 0; i < Nmosaic; i++) {
-    if (mosaic[i].code & IMAGE_BAD) continue;
+    if (mosaic[i].flags & IMAGE_BAD) continue;
     list[n] = mosaic[i].Mcal;
     dlist[n] = 1;
@@ -462,5 +462,5 @@
   for (i = 0; i < Nmosaic; i++) {
 
-    if (mosaic[i].code & IMAGE_BAD) continue;
+    if (mosaic[i].flags & IMAGE_BAD) continue;
     list[n] = mosaic[i].dMcal;
     dlist[n] = 1;
@@ -490,5 +490,5 @@
   n = 0;
   for (i = 0; i < Nmosaic; i++) {
-    if (mosaic[i].code & IMAGE_BAD)  continue;
+    if (mosaic[i].flags & IMAGE_BAD)  continue;
 
     N = 0;
@@ -534,5 +534,5 @@
   for (i = 0; i < Nmosaic; i++) {
 
-    if (mosaic[i].code & IMAGE_BAD) continue;
+    if (mosaic[i].flags & IMAGE_BAD) continue;
     list[n] = pow(10.0, 0.01*mosaic[i].Xm);
     dlist[n] = 1;
@@ -564,5 +564,5 @@
 
   for (i = N = 0; i < Nmosaic; i++) {
-    if (mosaic[i].code & IMAGE_BAD) continue;
+    if (mosaic[i].flags & IMAGE_BAD) continue;
     mlist[N] = mosaic[i].Mcal;
     slist[N] = mosaic[i].dMcal;
@@ -584,7 +584,7 @@
     if (mark) { 
       Nmark ++;
-      mosaic[i].code |= ID_IMAGE_POOR;
+      mosaic[i].flags |= ID_IMAGE_POOR;
     } else {
-      mosaic[i].code &= ~ID_IMAGE_POOR;
+      mosaic[i].flags &= ~ID_IMAGE_POOR;
     }
   }
Index: /branches/eam_branch_20090208/Ohana/src/relphot/src/StarOps.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/relphot/src/StarOps.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/relphot/src/StarOps.c	(revision 21419)
@@ -26,5 +26,5 @@
 
   ave = catalog[cat].measure[meas].averef;
-  if (catalog[cat].average[ave].code & STAR_BAD) return (NAN);  
+  if (catalog[cat].average[ave].flags & STAR_BAD) return (NAN);  
  
   value = catalog[cat].secfilt[PhotNsec*ave+PhotSec].M;
@@ -44,5 +44,5 @@
 
       /* calculate the average value for a single star */
-      if (catalog[i].average[j].code & STAR_BAD) continue;  
+      if (catalog[i].average[j].flags & STAR_BAD) continue;  
       m = catalog[i].average[j].measureOffset;
 
@@ -89,8 +89,8 @@
 
       if (N <= STAR_TOOFEW) { /* too few measurements */
-	catalog[i].average[j].code |= ID_STAR_FEW;
+	catalog[i].average[j].flags |= ID_STAR_FEW;
 	Nfew ++;
       } else {
-	catalog[i].average[j].code &= ~ID_STAR_FEW;
+	catalog[i].average[j].flags &= ~ID_STAR_FEW;
       }	
 
@@ -208,5 +208,5 @@
 
 	  // XXX this is a hack for the 2MASS search; better to save an average value?
-	  if (catalog[i].measure[m].qPSF < 0.85) continue;
+	  if (catalog[i].measure[m].psfQual < 0.85) continue;
 
 	  list[N] = Msys - catalog[i].measure[m].Mcal;
@@ -280,5 +280,5 @@
   for (i = Ntot = 0; i < Ncatalog; i++) {
     for (j = 0; j < catalog[i].Naverage; j++) {
-      if (catalog[i].average[j].code & STAR_BAD) continue;
+      if (catalog[i].average[j].flags & STAR_BAD) continue;
       Xm = catalog[i].secfilt[PhotNsec*j+PhotSec].Xm;
       if (Xm == -1) continue;
@@ -306,8 +306,8 @@
       mark = (dM > MaxScatter) || (Xm == NAN_S_SHORT) || (Chisq > MaxChisq);
       if (mark) {
-	catalog[i].average[j].code |= ID_STAR_POOR;
+	catalog[i].average[j].flags |= ID_STAR_POOR;
 	Ndel ++;
       } else {
-	catalog[i].average[j].code &= ~ID_STAR_POOR;
+	catalog[i].average[j].flags &= ~ID_STAR_POOR;
       }
       Nave ++;
@@ -351,5 +351,5 @@
 
       /* skip bad stars to prevent them from becoming good (on inner sample) */
-      if (catalog[i].average[j].code & STAR_BAD) continue;  
+      if (catalog[i].average[j].flags & STAR_BAD) continue;  
 
       /* on final processing, skip stars already measured */
@@ -448,5 +448,5 @@
 
       /* calculate the average value for a single star */
-      if (catalog[i].average[j].code & STAR_BAD) continue;  
+      if (catalog[i].average[j].flags & STAR_BAD) continue;  
       m = catalog[i].average[j].measureOffset;
 
@@ -493,5 +493,5 @@
 
       /* calculate the average value for a single star */
-      if (catalog[i].average[j].code & STAR_BAD) continue;  
+      if (catalog[i].average[j].flags & STAR_BAD) continue;  
 
       Xm = catalog[i].secfilt[PhotNsec*j+PhotSec].Xm;
@@ -529,5 +529,5 @@
 
       /* calculate the average value for a single star */
-      if (catalog[i].average[j].code & STAR_BAD) continue;  
+      if (catalog[i].average[j].flags & STAR_BAD) continue;  
 
       dM = catalog[i].secfilt[PhotNsec*j+PhotSec].dM;
@@ -559,5 +559,5 @@
   for (i = 0; i < Ncatalog; i++) {
     for (j = 0; j < catalog[i].Naverage; j++) {
-      if (catalog[i].average[j].code & STAR_BAD) continue;  
+      if (catalog[i].average[j].flags & STAR_BAD) continue;  
       dMrel = catalog[i].secfilt[PhotNsec*j+PhotSec].dM;
       bin = dMrel / 0.00025;
@@ -590,5 +590,5 @@
   for (i = 0; i < Ncatalog; i++) {
     for (j = 0; j < catalog[i].Naverage; j++) {
-      if (catalog[i].average[j].code & STAR_BAD) continue;
+      if (catalog[i].average[j].flags & STAR_BAD) continue;
       xlist[N] = catalog[i].secfilt[PhotNsec*j+PhotSec].M;
       value    = catalog[i].secfilt[PhotNsec*j+PhotSec].Xm;
Index: /branches/eam_branch_20090208/Ohana/src/relphot/src/bcatalog.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/relphot/src/bcatalog.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/relphot/src/bcatalog.c	(revision 21419)
@@ -34,6 +34,6 @@
       subcatalog[0].secfilt[PhotNsec*Naverage+PhotSec].M  = NAN;
       subcatalog[0].secfilt[PhotNsec*Naverage+PhotSec].dM = NAN;
-      subcatalog[0].average[Naverage].code &= ~ID_STAR_FEW;
-      subcatalog[0].average[Naverage].code &= ~ID_STAR_POOR;
+      subcatalog[0].average[Naverage].flags &= ~ID_STAR_FEW;
+      subcatalog[0].average[Naverage].flags &= ~ID_STAR_POOR;
     }
 
@@ -55,5 +55,6 @@
       /* select measurements by quality */
       // XXX ignore this criterion for REF measurements?
-      if (DophotSelect && (catalog[0].measure[offset].dophot != DophotValue)) continue;
+      // XXX chnage this to select by bitflags
+      if (DophotSelect && ((catalog[0].measure[offset].photFlags >> 16) != DophotValue)) continue;
 
       /* select measurements by mag limit */
Index: /branches/eam_branch_20090208/Ohana/src/relphot/src/plot_scatter.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/relphot/src/plot_scatter.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/relphot/src/plot_scatter.c	(revision 21419)
@@ -23,5 +23,5 @@
 
       /* calculate the average value for a single star */
-      if (catalog[i].average[j].code & STAR_BAD) continue;  
+      if (catalog[i].average[j].flags & STAR_BAD) continue;  
       m = catalog[i].average[j].measureOffset;
 
Index: /branches/eam_branch_20090208/Ohana/src/relphot/src/relphot_objects.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/relphot/src/relphot_objects.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/relphot/src/relphot_objects.c	(revision 21419)
@@ -42,12 +42,13 @@
       Nsecfilt = catalog.Nsecfilt;
       for (j = 0; j < catalog.Naverage; j++) {
-	catalog.average[j].code = 0;
+	catalog.average[j].flags = 0;
 	for (k = 0; k < Nsecfilt; k++) {
-	  catalog.secfilt[j*Nsecfilt + k].M  = NAN;
-	  catalog.secfilt[j*Nsecfilt + k].dM = NAN;
-	  catalog.secfilt[j*Nsecfilt + k].Xm = NAN_S_SHORT;
+	  catalog.secfilt[j*Nsecfilt + k].M    	= NAN;
+	  catalog.secfilt[j*Nsecfilt + k].M_20 	= NAN;
+	  catalog.secfilt[j*Nsecfilt + k].M_80 	= NAN;
+	  catalog.secfilt[j*Nsecfilt + k].dM   	= NAN;
+	  catalog.secfilt[j*Nsecfilt + k].Xm    = NAN_S_SHORT;
 	  catalog.secfilt[j*Nsecfilt + k].Ncode = 0;
 	  catalog.secfilt[j*Nsecfilt + k].Nused = 0;
-	  catalog.secfilt[j*Nsecfilt + k].dummy = 0;
 	}
 	m = catalog.average[j].measureOffset;
Index: /branches/eam_branch_20090208/Ohana/src/relphot/src/select_images.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/relphot/src/select_images.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/relphot/src/select_images.c	(revision 21419)
@@ -133,11 +133,11 @@
       image[nimage] = timage[i]; 
       /* always allow 'few' images to succeed, if possible */
-      if (image[nimage].code & ID_IMAGE_FEW) { 
-	image[nimage].code &= ~(ID_IMAGE_FEW | ID_IMAGE_POOR);
+      if (image[nimage].flags & ID_IMAGE_FEW) { 
+	image[nimage].flags &= ~(ID_IMAGE_FEW | ID_IMAGE_POOR);
       }
       if (RESET) {
 	assignMcal (&image[nimage], (double *) NULL, -1);
 	image[nimage].dMcal = NAN;
-	image[nimage].code &= ~ID_IMAGE_POOR;
+	image[nimage].flags &= ~ID_IMAGE_POOR;
       }
       line_number[nimage] = i;
Index: /branches/eam_branch_20090208/Ohana/src/relphot/src/setMrelFinal.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/relphot/src/setMrelFinal.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/relphot/src/setMrelFinal.c	(revision 21419)
@@ -54,6 +54,6 @@
   /* clear ID_STAR_POOR, ID_STAR_FEW, ID_MEAS_NOCAL values before writing ??? */
   for (i = 0; i < catalog[0].Naverage; i++) {
-    catalog[0].average[i].code &= ~ID_STAR_FEW;
-    catalog[0].average[i].code &= ~ID_STAR_POOR;
+    catalog[0].average[i].flags &= ~ID_STAR_FEW;
+    catalog[0].average[i].flags &= ~ID_STAR_POOR;
     m = catalog[0].average[i].measureOffset;
     for (j = 0; j < catalog[0].average[i].Nmeasure; j++, m++) {
@@ -102,5 +102,6 @@
 
       /* skip measurements with sat. dophot values */
-      if ((pass < 4) && (catalog[0].measure[m].dophot == 10)) goto skip;
+      // XXX we need to fix this: use the photFlags to ID saturation...
+      // if ((pass < 4) && (catalog[0].measure[m].dophot == 10)) goto skip;
 
       /* skip measurements from BAD images and mosaics */
@@ -116,6 +117,8 @@
       }
 
-      d1 = (catalog[0].measure[m].dophot == 1);
-      d2 = (catalog[0].measure[m].dophot == 2);
+      // d1 = (catalog[0].measure[m].dophot == 1);
+      // d2 = (catalog[0].measure[m].dophot == 2);
+      fprintf (stderr, "fix the dophot / type selections!");
+      abort ();
 
       /* skip measurements by measurement error */
Index: /branches/eam_branch_20090208/Ohana/src/uniphot/src/find_image_sgroups.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/uniphot/src/find_image_sgroups.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/uniphot/src/find_image_sgroups.c	(revision 21419)
@@ -27,5 +27,5 @@
   for (i = 0; i < Nimage; i++) {
     if (imlink[i].sgroup != NULL) continue;
-    if (image[i].code & ID_IMAGE_NOCAL) continue;
+    if (image[i].flags & ID_IMAGE_NOCAL) continue;
 
     /* new sgroup, set ref coords */
@@ -52,5 +52,5 @@
 
     for (j = 0; j < Nimage; j++) {
-      if (image[j].code & ID_IMAGE_NOCAL) continue;
+      if (image[j].flags & ID_IMAGE_NOCAL) continue;
       if (imlink[j].sgroup != NULL) continue;
 
Index: /branches/eam_branch_20090208/Ohana/src/uniphot/src/find_image_tgroups.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/uniphot/src/find_image_tgroups.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/uniphot/src/find_image_tgroups.c	(revision 21419)
@@ -63,5 +63,5 @@
       if (image[j].tzero < tmin[i]) continue;
       if (image[j].tzero > tmax[i]) continue;
-      if (image[j].code & ID_IMAGE_NOCAL) continue;
+      if (image[j].flags & ID_IMAGE_NOCAL) continue;
       
       group[i].image[Nentry] = &image[j];
Index: /branches/eam_branch_20090208/Ohana/src/uniphot/src/fit_groups.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/uniphot/src/fit_groups.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/uniphot/src/fit_groups.c	(revision 21419)
@@ -16,5 +16,5 @@
   for (i = 0; i < Ntgroup; i++) {
     for (j = Nlist = 0; j < tgroup[i].Nimage; j++) {
-      if (tgroup[i].image[j][0].code & IMAGE_BAD) continue;
+      if (tgroup[i].image[j][0].flags & IMAGE_BAD) continue;
       sgroup = (Group *) tgroup[i].imlink[j][0].sgroup;
       Mcal = tgroup[i].image[j][0].Mcal;
@@ -54,5 +54,5 @@
   for (i = 0; i < Nsgroup; i++) {
     for (j = Nlist = 0; j < sgroup[i].Nimage; j++) {
-      if (sgroup[i].image[j][0].code & IMAGE_BAD) continue;
+      if (sgroup[i].image[j][0].flags & IMAGE_BAD) continue;
       tgroup = (Group *) sgroup[i].imlink[j][0].tgroup;
       Mcal = sgroup[i].image[j][0].Mcal;
Index: /branches/eam_branch_20090208/Ohana/src/uniphot/src/subset_images.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/uniphot/src/subset_images.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/uniphot/src/subset_images.c	(revision 21419)
@@ -16,5 +16,5 @@
   for (i = 0; i < Nimage; i++) {
       
-    image[i].code |= ID_IMAGE_NOCAL;
+    image[i].flags |= ID_IMAGE_NOCAL;
 
     /* select images by photcode */
@@ -27,5 +27,5 @@
       if (image[i].tzero > TSTOP) continue;
     }
-    image[i].code &= ~ID_IMAGE_NOCAL;
+    image[i].flags &= ~ID_IMAGE_NOCAL;
     keep[Nkeep] = i;
     Nkeep ++;
Index: /branches/eam_branch_20090208/Ohana/src/uniphot/src/update.c
===================================================================
--- /branches/eam_branch_20090208/Ohana/src/uniphot/src/update.c	(revision 21418)
+++ /branches/eam_branch_20090208/Ohana/src/uniphot/src/update.c	(revision 21419)
@@ -16,5 +16,5 @@
   /* clear the NOCAL flags */
   for (i = 0; i < Nimage; i++) {
-    image[i].code &= ~ID_IMAGE_NOCAL;
+    image[i].flags &= ~ID_IMAGE_NOCAL;
   }
 
