Index: trunk/Ohana/src/opihi/cmd.basic/date.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.basic/date.c	(revision 12280)
+++ trunk/Ohana/src/opihi/cmd.basic/date.c	(revision 12332)
@@ -5,5 +5,6 @@
   int N, SECONDS, REFTIME;
   struct timeval now;
-  char *tstring, *varName;
+  char *tstring = NULL;
+  char *varName = NULL;
 
   SECONDS = FALSE;
Index: trunk/Ohana/src/opihi/cmd.basic/macro.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.basic/macro.c	(revision 12280)
+++ trunk/Ohana/src/opihi/cmd.basic/macro.c	(revision 12332)
@@ -3,5 +3,5 @@
 int macro (int argc, char **argv) {
 
-  int i, N, status;
+  int status;
   CommandF *cmd;
 
Index: trunk/Ohana/src/opihi/cmd.basic/module.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.basic/module.c	(revision 12280)
+++ trunk/Ohana/src/opihi/cmd.basic/module.c	(revision 12332)
@@ -6,7 +6,7 @@
   
   int i, NLINES, Nmodules, Nbytes, status;
-  FILE *infile;
   Macro inlist;
   char modname[16], *modpath, *filename;
+  FILE *infile = NULL;
 
   if (argc != 2) {
Index: trunk/Ohana/src/opihi/cmd.data/book_commands.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/book_commands.c	(revision 12280)
+++ trunk/Ohana/src/opihi/cmd.data/book_commands.c	(revision 12332)
@@ -8,4 +8,5 @@
 
   ListBooks();
+  return TRUE;
 }
 
@@ -63,5 +64,4 @@
 int book_listbook (int argc, char **argv) {
 
-  int status;
   Book *book;
 
@@ -83,5 +83,5 @@
 int book_npages (int argc, char **argv) {
 
-  int N, status;
+  int N;
   Book *book;
   char *varName;
Index: trunk/Ohana/src/opihi/cmd.data/create.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/create.c	(revision 12280)
+++ trunk/Ohana/src/opihi/cmd.data/create.c	(revision 12332)
@@ -3,5 +3,5 @@
 int create (int argc, char **argv) {
   
-  int i, N;
+  int i;
   float start, end, delta;
   Vector *vec;
Index: trunk/Ohana/src/opihi/cmd.data/line.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/line.c	(revision 12280)
+++ trunk/Ohana/src/opihi/cmd.data/line.c	(revision 12332)
@@ -3,5 +3,4 @@
 int line (int argc, char **argv) {
   
-  int N, Npts;
   Graphdata graphmode;
   float x[2], y[2];
Index: trunk/Ohana/src/opihi/cmd.data/queueload.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/queueload.c	(revision 12280)
+++ trunk/Ohana/src/opihi/cmd.data/queueload.c	(revision 12332)
@@ -4,6 +4,6 @@
   
   char *A, *B, *val;
-  int i, done, status;
-  int N, Nread, Nbytes, NBYTES;
+  int i, status;
+  int Nread, Nbytes, NBYTES;
   FILE *f;
   Queue *queue;
Index: trunk/Ohana/src/opihi/dvo/avextract.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/avextract.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/avextract.c	(revision 12332)
@@ -4,5 +4,5 @@
   
   int i, j, m, N, NPTS, param;
-  int Nsec, mode;
+  int Nsecfilt, mode;
   char *RegionName, *RegionList, *p;
 
@@ -22,5 +22,5 @@
   /* load photcode information */
   if (!InitPhotcodes ()) goto escape;
-  Nsec = GetPhotcodeNsecfilt ();
+  Nsecfilt = GetPhotcodeNsecfilt ();
 
   /* interpret command-line options */
@@ -68,5 +68,5 @@
     for (j = 0; j < catalog.Naverage; j++) {
       m = catalog.average[j].offset;
-      vec[0].elements[N] = ExtractAverages (code, mode, &catalog.average[j], &catalog.secfilt[j*Nsec], &catalog.measure[m], param);
+      vec[0].elements[N] = ExtractAverages (code, mode, &catalog.average[j], &catalog.secfilt[j*Nsecfilt], &catalog.measure[m], param);
       N++;
       CHECK_REALLOCATE (vec[0].elements, float, NPTS, N, 2000);
Index: trunk/Ohana/src/opihi/dvo/calextract.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/calextract.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/calextract.c	(revision 12332)
@@ -6,5 +6,5 @@
   
   int i, j, m, N, Nr, mode[2];
-  int Nsec, NSTAR;
+  int Nsecfilt, NSTAR;
   char *RegionName, *RegionList;
   double M1, M2, dM2, color;
@@ -12,6 +12,6 @@
   PhotCode *code[2];
   Catalog catalog;
+  Vector **vec;
   SkyList *skylist;
-  Vector **vec;
 
   /* these need to be freed in the end */
@@ -21,9 +21,10 @@
   RegionName = NULL;
   RegionList = NULL;
+  skylist = NULL;
   vec = NULL;
 
   /* load photcode information */
   if (!InitPhotcodes ()) return (FALSE);
-  Nsec = GetPhotcodeNsecfilt ();
+  Nsecfilt = GetPhotcodeNsecfilt ();
 
   /* command line arguments */
@@ -77,5 +78,5 @@
       m = catalog.average[i].offset;
 
-      if (code[0][0].c1 && code[0][0].c2 && !PhotColor (&catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], code[0][0].c1, code[0][0].c2, &color)) continue;
+      if (code[0][0].c1 && code[0][0].c2 && !PhotColor (&catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], code[0][0].c1, code[0][0].c2, &color)) continue;
 
       /* find data for filter 2 (PHOT_REF) */
@@ -83,12 +84,12 @@
       dM2 = NO_MAG;
       for (j = 0; j < catalog.average[i].Nm; j++) {
-	if (catalog.measure[m+j].source != code[1][0].code) continue;
+	if (catalog.measure[m+j].photcode != code[1][0].code) continue;
 	M2 = PhotCat  (&catalog.measure[m+j]);
-	dM2 = catalog.measure[m+j].dM_PS;
+	dM2 = catalog.measure[m+j].dM;
       }	
       if (M2 == NO_MAG) continue;
 
       /* find data for filter 1 */
-      M1 = ExtractAverages (code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], AVE_MAG);
+      M1 = ExtractAverages (code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], AVE_MAG);
       if (M1 == NO_MAG) continue;
 
@@ -98,10 +99,10 @@
       vec[NR ][0].elements[N] = catalog.average[i].R;
       vec[ND ][0].elements[N] = catalog.average[i].D;
-      vec[Nd1][0].elements[N] = ExtractAverages (code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], AVE_dMAG);
+      vec[Nd1][0].elements[N] = ExtractAverages (code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], AVE_dMAG);
       vec[Nd2][0].elements[N] = dM2;
-      vec[Nx ][0].elements[N] = ExtractAverages (code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], AVE_Xm);
-      vec[Nc ][0].elements[N] = ExtractAverages (code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], AVE_NCODE);
-      vec[Np ][0].elements[N] = ExtractAverages (code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], AVE_NPHOT);
-      vec[Nt ][0].elements[N] = ExtractAverages (code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], AVE_NCRIT);
+      vec[Nx ][0].elements[N] = ExtractAverages (code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], AVE_Xm);
+      vec[Nc ][0].elements[N] = ExtractAverages (code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], AVE_NCODE);
+      vec[Np ][0].elements[N] = ExtractAverages (code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], AVE_NPHOT);
+      vec[Nt ][0].elements[N] = ExtractAverages (code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], AVE_NCRIT);
       N ++;
       if (N == NSTAR) {
Index: trunk/Ohana/src/opihi/dvo/calmextract.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/calmextract.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/calmextract.c	(revision 12332)
@@ -7,5 +7,5 @@
   
   int i, j, k, m, N, N1, Nr, mode[2];
-  int NSTAR, Nstar, Nsec;
+  int NSTAR, Nstar, Nsecfilt;
   char *RegionName, *RegionList;
   double *M1, M2, dM2, color;
@@ -22,9 +22,10 @@
   RegionName = NULL;
   RegionList = NULL;
+  skylist = NULL;
   vec = NULL;
 
   /* load photcode information */
   if (!InitPhotcodes ()) goto escape;
-  Nsec = GetPhotcodeNsecfilt ();
+  Nsecfilt = GetPhotcodeNsecfilt ();
 
   /* command line arguments */
@@ -90,5 +91,5 @@
 
       /* PRI/SEC must have data for color term */
-      if (code[0][0].c1 && code[0][0].c2 && !PhotColor (&catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], code[0][0].c1, code[0][0].c2, &color)) continue;
+      if (code[0][0].c1 && code[0][0].c2 && !PhotColor (&catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], code[0][0].c1, code[0][0].c2, &color)) continue;
 
       /* find data for filter 2 (REF) */
@@ -96,12 +97,12 @@
       dM2 = NO_MAG;
       for (j = 0; j < catalog.average[i].Nm; j++) {
-	if (catalog.measure[m+j].source != code[1][0].code) continue;
+	if (catalog.measure[m+j].photcode != code[1][0].code) continue;
 	M2 = PhotCat  (&catalog.measure[m+j]); 
-	dM2 = catalog.measure[m+j].dM_PS;
+	dM2 = catalog.measure[m+j].dM;
       }	
       if (M2 == NO_MAG) continue;
       
       /* find data for filter 1 */
-      M1 = ExtractMeasures (code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], &N1, MEAS_MAG);
+      M1 = ExtractMeasures (code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], &N1, MEAS_MAG);
       if (N1 == 0) goto skip;
 
@@ -114,13 +115,13 @@
       }
 
-      ConcatMeasures (vec[Nt ], code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], N1, MEAS_TIME); 
-      ConcatMeasures (vec[Nz ], code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], N1, MEAS_AIRMASS); 
-      ConcatMeasures (vec[NT ], code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], N1, MEAS_EXPTIME); 
-      ConcatMeasures (vec[NP ], code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], N1, MEAS_PHOTCODE); 
-      ConcatMeasures (vec[Nd1], code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], N1, MEAS_dMAG); 
-      ConcatMeasures (vec[Nxc], code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], N1, MEAS_XCCD); 
-      ConcatMeasures (vec[Nyc], code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], N1, MEAS_YCCD); 
-      ConcatMeasures (vec[Nxm], code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], N1, MEAS_XMOSAIC); 
-      ConcatMeasures (vec[Nym], code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], N1, MEAS_YMOSAIC); 
+      ConcatMeasures (vec[Nt ], code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], N1, MEAS_TIME); 
+      ConcatMeasures (vec[Nz ], code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], N1, MEAS_AIRMASS); 
+      ConcatMeasures (vec[NT ], code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], N1, MEAS_EXPTIME); 
+      ConcatMeasures (vec[NP ], code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], N1, MEAS_PHOTCODE); 
+      ConcatMeasures (vec[Nd1], code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], N1, MEAS_dMAG); 
+      ConcatMeasures (vec[Nxc], code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], N1, MEAS_XCCD); 
+      ConcatMeasures (vec[Nyc], code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], N1, MEAS_YCCD); 
+      ConcatMeasures (vec[Nxm], code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], N1, MEAS_XMOSAIC); 
+      ConcatMeasures (vec[Nym], code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], N1, MEAS_YMOSAIC); 
 
       for (j = 0; j < N1; j++, N++) {
Index: trunk/Ohana/src/opihi/dvo/catalog.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/catalog.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/catalog.c	(revision 12332)
@@ -197,7 +197,7 @@
 	dparse (&D, Ad, tbuffer);
 	dparse (&M, Am, tbuffer);
-	catalog.average[nstar].R_PS = R;
-	catalog.average[nstar].D_PS = D;
-	catalog.average[nstar].M_PS = M;
+	catalog.average[nstar].R = R;
+	catalog.average[nstar].D = D;
+	catalog.average[nstar].M = M;
 	nstar++;
 	if (nstar == NSTARS - 1) {
@@ -239,7 +239,7 @@
 	  dparse (&D, Ad, &tbuffer[i*Bytes_Star]);
 	  dparse (&M, Am, &tbuffer[i*Bytes_Star]);
-	  catalog.average[nstar].R_PS = R;
-	  catalog.average[nstar].D_PS = D;
-	  catalog.average[nstar].M_PS = M;
+	  catalog.average[nstar].R = R;
+	  catalog.average[nstar].D = D;
+	  catalog.average[nstar].M = M;
 	  nstar++;
 	  if (nstar == NSTARS - 1) {
@@ -289,7 +289,7 @@
 	  dparse (&D, 2, &tbuffer[i*BYTES_STAR]);
 	  dparse (&M, 3, &tbuffer[i*BYTES_STAR]);
-	  catalog.average[nstar].R_PS = R;
-	  catalog.average[nstar].D_PS = D;
-	  catalog.average[nstar].M_PS = M;
+	  catalog.average[nstar].R = R;
+	  catalog.average[nstar].D = D;
+	  catalog.average[nstar].M = M;
 	  nstar++;
 	  if (nstar == NSTARS - 1) {
@@ -342,15 +342,15 @@
 	if (IDclip && (catalog.average[i].code != IDchoice))
 	  continue;
-	Zvec.elements[N] = MIN (1.0, MAX (0.01, (catalog.average[i].M_PS - Mz) / Mr));
+	Zvec.elements[N] = MIN (1.0, MAX (0.01, (catalog.average[i].M - Mz) / Mr));
 	if (LimExclude && (Zvec.elements[N] > 0.99)) continue;
 	if (Zvec.elements[N] < 0.011) continue;
-	while (catalog.average[i].R_PS < Rmin) catalog.average[i].R_PS += 360.0;
-	while (catalog.average[i].R_PS > Rmax) catalog.average[i].R_PS -= 360.0;
-	if (fRD_to_XY (&Xvec.elements[N], &Yvec.elements[N], catalog.average[i].R_PS, catalog.average[i].D_PS, &graphmode.coords)) N ++;
+	while (catalog.average[i].R < Rmin) catalog.average[i].R += 360.0;
+	while (catalog.average[i].R > Rmax) catalog.average[i].R -= 360.0;
+	if (fRD_to_XY (&Xvec.elements[N], &Yvec.elements[N], catalog.average[i].R, catalog.average[i].D, &graphmode.coords)) N ++;
       }
       break;
     case (NUMSCALE):
       for (N = i = 0; i < catalog.Naverage; i++) {
-	if (clip && ((catalog.average[i].M_PS > Mz) || (catalog.average[i].M_PS < Mr+Mz))) 
+	if (clip && ((catalog.average[i].M > Mz) || (catalog.average[i].M < Mr+Mz))) 
 	  continue;
 	if (IDclip && (catalog.average[i].code != IDchoice))
@@ -360,12 +360,12 @@
 	if (Zvec.elements[N] == 0.01) 
 	  continue;
-	while (catalog.average[i].R_PS < Rmin) catalog.average[i].R_PS += 360.0;
-	while (catalog.average[i].R_PS > Rmax) catalog.average[i].R_PS -= 360.0;
-	if (fRD_to_XY (&Xvec.elements[N], &Yvec.elements[N], catalog.average[i].R_PS, catalog.average[i].D_PS, &graphmode.coords)) N++;
+	while (catalog.average[i].R < Rmin) catalog.average[i].R += 360.0;
+	while (catalog.average[i].R > Rmax) catalog.average[i].R -= 360.0;
+	if (fRD_to_XY (&Xvec.elements[N], &Yvec.elements[N], catalog.average[i].R, catalog.average[i].D, &graphmode.coords)) N++;
       }
       break;
     case (MISSCALE):
       for (N = i = 0; i < catalog.Naverage; i++) {
-	if (clip && ((catalog.average[i].M_PS > Mz) || (catalog.average[i].M_PS < Mr+Mz))) 
+	if (clip && ((catalog.average[i].M > Mz) || (catalog.average[i].M < Mr+Mz))) 
 	  continue;
 	if (IDclip && (catalog.average[i].code != IDchoice))
@@ -375,7 +375,7 @@
 	if (Zvec.elements[N] == 0.01) 
 	  continue;
-	while (catalog.average[i].R_PS < Rmin) catalog.average[i].R_PS += 360.0;
-	while (catalog.average[i].R_PS > Rmax) catalog.average[i].R_PS -= 360.0;
-	if (fRD_to_XY (&Xvec.elements[N], &Yvec.elements[N], catalog.average[i].R_PS, catalog.average[i].D_PS, &graphmode.coords)) N++;
+	while (catalog.average[i].R < Rmin) catalog.average[i].R += 360.0;
+	while (catalog.average[i].R > Rmax) catalog.average[i].R -= 360.0;
+	if (fRD_to_XY (&Xvec.elements[N], &Yvec.elements[N], catalog.average[i].R, catalog.average[i].D, &graphmode.coords)) N++;
       }
       break;
Index: trunk/Ohana/src/opihi/dvo/ccd.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/ccd.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/ccd.c	(revision 12332)
@@ -7,5 +7,5 @@
   int i, m, k, Npts, NPTS, N;
   int N1, N2, i1, i2, mode[4];
-  int Nsec, KeepNulls;
+  int Nsecfilt, KeepNulls;
 
   Catalog catalog;
@@ -20,8 +20,9 @@
   RegionName = NULL;
   RegionList = NULL;
+  skylist = NULL;
 
   /* load photcode information */
   if (!InitPhotcodes ()) goto escape;
-  Nsec = GetPhotcodeNsecfilt ();
+  Nsecfilt = GetPhotcodeNsecfilt ();
 
   /* interpret command-line options */
@@ -75,9 +76,9 @@
 
       SetSelectionParam (0);
-      M1 = ExtractDMag (&code[0], &mode[0], &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], &N1);
+      M1 = ExtractDMag (&code[0], &mode[0], &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], &N1);
       if (N1 == 0) goto skip;
 
       SetSelectionParam (2);
-      M2 = ExtractDMag (&code[2], &mode[2], &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], &N2);
+      M2 = ExtractDMag (&code[2], &mode[2], &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], &N2);
       if (N2 == 0) {
 	if (KeepNulls) {
Index: trunk/Ohana/src/opihi/dvo/cmatch.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/cmatch.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/cmatch.c	(revision 12332)
@@ -51,6 +51,6 @@
       dparse (&D, 2, &tbuffer[i*BYTES_STAR]);
       dparse (&M, 3, &tbuffer[i*BYTES_STAR]);
-      catalog2.average[nstar].R_PS = R;
-      catalog2.average[nstar].D_PS = D;
+      catalog2.average[nstar].R = R;
+      catalog2.average[nstar].D = D;
       catalog2.average[nstar].M = M * 1000.0;
       nstar++;
Index: trunk/Ohana/src/opihi/dvo/cmd.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/cmd.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/cmd.c	(revision 12332)
@@ -7,5 +7,5 @@
   int i, j, m, i1, i3, N1, N3, N;
   int Npts, NPTS, mode[3];
-  int Nsec, KeepNulls;
+  int Nsecfilt, KeepNulls;
 
   PhotCode *code[3];
@@ -20,8 +20,9 @@
   RegionName = NULL;
   RegionList = NULL;
+  skylist = NULL;
 
   /* load photcode information */
   if (!InitPhotcodes ()) goto escape;
-  Nsec = GetPhotcodeNsecfilt ();
+  Nsecfilt = GetPhotcodeNsecfilt ();
 
   /* interpret command-line options */
@@ -73,9 +74,9 @@
 
       SetSelectionParam (0);
-      M1 = ExtractDMag (code, mode, &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], &N1);
+      M1 = ExtractDMag (code, mode, &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], &N1);
       if (N1 == 0) goto skip;
 
       SetSelectionParam (2);
-      M3 = ExtractMagnitudes (code[2], mode[2], &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], &N3);
+      M3 = ExtractMagnitudes (code[2], mode[2], &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], &N3);
       if (N3 == 0) {
 	if (KeepNulls) {
Index: trunk/Ohana/src/opihi/dvo/compare.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/compare.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/compare.c	(revision 12332)
@@ -38,8 +38,8 @@
 	  rvec[0].elements[Nmatch] = catlog1[0].average[i].R;
 	  dvec[0].elements[Nmatch] = catlog1[0].average[i].D;
-	  mvec[0].elements[Nmatch] = catlog1[0].average[i].M;
+	  // mvec[0].elements[Nmatch] = catlog1[0].average[i].M;
 	  drvec[0].elements[Nmatch] = dX;
 	  ddvec[0].elements[Nmatch] = dY;
-	  dmvec[0].elements[Nmatch] = catlog1[0].average[i].M - catlog2[0].average[j].M;
+	  // dmvec[0].elements[Nmatch] = catlog1[0].average[i].M - catlog2[0].average[j].M;
 	  Nmatch ++;
 	  if (Nmatch == NMATCH - 1) {
Index: trunk/Ohana/src/opihi/dvo/ddmags.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/ddmags.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/ddmags.c	(revision 12332)
@@ -7,5 +7,5 @@
   int i, m, k, N, Npts, NPTS;
   int N1, N2, i1, i2, mode[4];
-  int Nsec, KeepNulls;
+  int Nsecfilt, KeepNulls;
 
   Catalog catalog;
@@ -24,5 +24,5 @@
   /* load photcode information */
   if (!InitPhotcodes ()) goto escape;
-  Nsec = GetPhotcodeNsecfilt ();
+  Nsecfilt = GetPhotcodeNsecfilt ();
 
   /* interpret command-line options */
@@ -79,9 +79,9 @@
 
       SetSelectionParam (0);
-      M1 = ExtractDMag (&code[0], &mode[0], &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], &N1);
+      M1 = ExtractDMag (&code[0], &mode[0], &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], &N1);
       if (N1 == 0) goto skip;
 
       SetSelectionParam (2);
-      M2 = ExtractDMag (&code[2], &mode[2], &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], &N2);
+      M2 = ExtractDMag (&code[2], &mode[2], &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], &N2);
       if (N2 == 0) {
 	if (KeepNulls) {
Index: trunk/Ohana/src/opihi/dvo/dmagaves.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/dmagaves.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/dmagaves.c	(revision 12332)
@@ -7,5 +7,5 @@
   int i, j, k, m, N1;
   int Npts, NPTS, param, mode[3];
-  int Nsec;
+  int Nsecfilt;
 
   PhotCode *code[3];
@@ -20,9 +20,10 @@
   RegionName = NULL;
   RegionList = NULL;
+  skylist = NULL;
   code[2] = NULL;
 
   /* load photcode information */
   if (!InitPhotcodes ()) goto escape;
-  Nsec = GetPhotcodeNsecfilt ();
+  Nsecfilt = GetPhotcodeNsecfilt ();
 
   /* interpret command-line options */
@@ -67,9 +68,9 @@
 
       SetSelectionParam (0);
-      M1 = ExtractDMag (code, mode, &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], &N1);
+      M1 = ExtractDMag (code, mode, &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], &N1);
       if (N1 == 0) goto skip;
 
       SetSelectionParam (2);
-      M2 = ExtractAverages (code[2], mode[2], &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], param);
+      M2 = ExtractAverages (code[2], mode[2], &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], param);
 
       for (k = 0; k < N1; k++) {
Index: trunk/Ohana/src/opihi/dvo/dmagmeas.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/dmagmeas.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/dmagmeas.c	(revision 12332)
@@ -7,5 +7,5 @@
   int i, j, m, i1, i3, N1, N3, N;
   int Npts, NPTS, param, mode[3];
-  int Nsec, KeepNulls;
+  int Nsecfilt, KeepNulls;
 
   Catalog catalog;
@@ -20,9 +20,10 @@
   RegionName = NULL;
   RegionList = NULL;
+  skylist = NULL;
   code[2] = NULL;
 
   /* load photcode information */
   if (!InitPhotcodes ()) goto escape;
-  Nsec = GetPhotcodeNsecfilt ();
+  Nsecfilt = GetPhotcodeNsecfilt ();
 
   /* interpret command-line options */
@@ -75,9 +76,9 @@
 
       SetSelectionParam (0);
-      M1 = ExtractDMag (code, mode, &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], &N1);
+      M1 = ExtractDMag (code, mode, &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], &N1);
       if (N1 == 0) goto skip;
 
       SetSelectionParam (2);
-      M3 = ExtractMeasures (code[2], mode[2], &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], &N3, param);
+      M3 = ExtractMeasures (code[2], mode[2], &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], &N3, param);
       if (N3 == 0) {
 	if (KeepNulls) {
Index: trunk/Ohana/src/opihi/dvo/dmags.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/dmags.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/dmags.c	(revision 12332)
@@ -7,5 +7,5 @@
   int i, j, m, i1, i3, N1, N3, N;
   int Npts, NPTS, mode[3];
-  int Nsec, KeepNulls;
+  int Nsecfilt, KeepNulls;
 
   PhotCode *code[3];
@@ -24,5 +24,5 @@
   /* load photcode information */
   if (!InitPhotcodes ()) goto escape;
-  Nsec = GetPhotcodeNsecfilt ();
+  Nsecfilt = GetPhotcodeNsecfilt ();
 
   /* interpret command-line options */
@@ -74,9 +74,9 @@
 
       SetSelectionParam (0);
-      M1 = ExtractDMag (code, mode, &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], &N1);
+      M1 = ExtractDMag (code, mode, &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], &N1);
       if (N1 == 0) goto skip;
 
       SetSelectionParam (2);
-      M3 = ExtractMagnitudes (code[2], mode[2], &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], &N3);
+      M3 = ExtractMagnitudes (code[2], mode[2], &catalog.average[i], &catalog.secfilt[i*Nsecfilt], &catalog.measure[m], &N3);
       if (N3 == 0) {
 	if (KeepNulls) {
Index: trunk/Ohana/src/opihi/dvo/dmt.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/dmt.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/dmt.c	(revision 12332)
@@ -5,5 +5,5 @@
   
   int i, m, k, N, Ngraph, SaveVectors;
-  int Ns, Nsec, NPTS;
+  int Nsec, Nsecfilt, NPTS;
   double Radius;
   float dt1, dt2, dmt1, dmt2;
@@ -16,4 +16,6 @@
   Vector Xvec, Yvec, Zvec, Rvec, Dvec;
   Vector *vec1, *vec2, *vec3, *vec4, *vec5;
+
+  Dvec.elements = Rvec.elements = Zvec.elements = NULL;
 
   if (!InitPhotcodes ()) return (FALSE);
@@ -44,10 +46,10 @@
     return (FALSE);
   }
-  if ((code[0].type != PHOT_SEC) && (code[0].type != PHOT_PRI)) {
-    gprint (GP_ERR, "first filter must be a PRIMARY or SECONDARY photometry type\n");
+  if (code[0].type != PHOT_SEC) {
+    gprint (GP_ERR, "first filter must be a average photometry type\n");
     return (FALSE);
   }
-  Nsec = GetPhotcodeNsecfilt();
-  Ns = GetPhotcodeNsec (code[0].code);
+  Nsecfilt = GetPhotcodeNsecfilt();
+  Nsec = GetPhotcodeNsec (code[0].code);
 
   Radius = MAX (fabs(graphsky.xmax), fabs(graphsky.ymax));
@@ -82,5 +84,5 @@
       if (catalog.average[i].Nm != 3) continue;
       m = catalog.average[i].offset;
-      M0 = (Ns == -1) ? catalog.average[i].M : catalog.secfilt[i*Nsec+Ns].M_PS;
+      M0 = catalog.secfilt[i*Nsecfilt+Nsec].M;
       M1 = PhotCat (&catalog.measure[m+0]);
       M2 = PhotCat (&catalog.measure[m+1]);
Index: trunk/Ohana/src/opihi/dvo/extract.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/extract.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/extract.c	(revision 12332)
@@ -119,6 +119,6 @@
   if (PhotcodeSelect) {
     Ns = GetPhotcodeNsec (code[0].code);
-    if ((mode != REF) && (code[0].type != PHOT_SEC) && (code[0].type != PHOT_PRI)) {
-      gprint (GP_ERR, "filter must be a PRIMARY or SECONDARY photometry type\n");
+    if ((mode != REF) && (code[0].type != PHOT_SEC)) {
+      gprint (GP_ERR, "filter must be a average photometry type\n");
       return (FALSE);
     }
@@ -341,5 +341,5 @@
 	  Ncode = 0;
 	  for (k = 0; k < catalog.average[i].Nm; k++, m++) {
-	    if (code[0].code != GetPhotcodeEquivCodebyCode (catalog.measure[m].source)) continue;
+	    if (code[0].code != GetPhotcodeEquivCodebyCode (catalog.measure[m].photcode)) continue;
 	    Ncode ++;
 	  }
@@ -357,6 +357,6 @@
 	  Ncode = 0;
 	  for (k = 0; k < catalog.average[i].Nm; k++, m++) {
-	    if (code[0].code != GetPhotcodeEquivCodebyCode (catalog.measure[m].source)) continue;
-	    if (catalog.measure[m].source & (ID_MEAS_POOR | ID_MEAS_SKIP)) continue;
+	    if (code[0].code != GetPhotcodeEquivCodebyCode (catalog.measure[m].photcode)) continue;
+	    if (catalog.measure[m].photcode & (ID_MEAS_POOR | ID_MEAS_SKIP)) continue;
 	    Ncode ++;
 	  }
@@ -407,5 +407,5 @@
 	  vec[0].elements[N] = -32;
 	  for (k = 0; k < catalog.average[i].Nm; k++) {
-	    if (catalog.measure[m+k].source == N1) {
+	    if (catalog.measure[m+k].photcode == N1) {
 	      vec[0].elements[N] = PhotCat (&catalog.measure[m+k]);
 	      k = catalog.average[i].Nm;
Index: trunk/Ohana/src/opihi/dvo/fitcolors.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/fitcolors.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/fitcolors.c	(revision 12332)
@@ -12,5 +12,5 @@
   int i, k, m, N, NP1, NP2, NP, Np, Npts, NPTS;
   int N1, N2, i1, i2, mode[4];
-  int Nsec, status;
+  int Nsecfilt, status;
   void *oldsignal;
   char *RegionName, *RegionList;
@@ -43,5 +43,5 @@
   /* load photcode information */
   if (!InitPhotcodes ()) goto escape;
-  Nsec = GetPhotcodeNsecfilt ();
+  Nsecfilt = GetPhotcodeNsecfilt ();
 
   /* interpret command-line options */
@@ -70,4 +70,5 @@
 
   PLOT = FALSE;
+  NPX = NPY = 0;
   if ((N = get_argument (argc, argv, "-plot"))) {
     remove_argument (N, &argc, argv);
@@ -217,9 +218,9 @@
 
 	  SetSelectionParam (0);
-	  M1 = ExtractDMag (&code[0], &mode[0], &catalog[k].average[i], &catalog[k].secfilt[i*Nsec], &catalog[k].measure[m], &N1);
+	  M1 = ExtractDMag (&code[0], &mode[0], &catalog[k].average[i], &catalog[k].secfilt[i*Nsecfilt], &catalog[k].measure[m], &N1);
 	  if (N1 == 0) goto skip_star;
 
 	  SetSelectionParam (2);
-	  M2 = ExtractDMag (&code[2], &mode[2], &catalog[k].average[i], &catalog[k].secfilt[i*Nsec], &catalog[k].measure[m], &N2);
+	  M2 = ExtractDMag (&code[2], &mode[2], &catalog[k].average[i], &catalog[k].secfilt[i*Nsecfilt], &catalog[k].measure[m], &N2);
 	  if (N2 == 0) goto skip_star;
 
Index: trunk/Ohana/src/opihi/dvo/fitsed.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/fitsed.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/fitsed.c	(revision 12332)
@@ -25,5 +25,5 @@
   int *hashcode;
   int i, j, k, m, N, done, Nfit;
-  int Nsec, status;
+  int Nsecfilt, status;
   void *oldsignal;
   char *RegionName, *RegionList;
@@ -68,4 +68,9 @@
   resSection.name = NULL;
 
+  Nrow = 0;
+
+  fiterrs = NULL;
+  fitmags = NULL;
+
   oldsignal = signal (SIGINT, handle_interrupt);
   interrupt = FALSE;
@@ -73,5 +78,5 @@
   /* load photcode information */
   if (!InitPhotcodes ()) goto escape;
-  Nsec = GetPhotcodeNsecfilt ();
+  Nsecfilt = GetPhotcodeNsecfilt ();
 
   /* interpret command-line options */
@@ -203,10 +208,10 @@
       m = catalog.average[i].offset;
       for (j = 0; j < catalog.average[i].Nm; j++) {
-	idx = hashcode[catalog.measure[m+j].source];
+	idx = hashcode[catalog.measure[m+j].photcode];
 	if (idx == -1) continue;
 	// XXX do something more clever if more than one value exists per photcode
-	sourceValue.mags[idx] = catalog.measure[m+j].M_PS + vegaToAB[idx];
-	sourceError.mags[idx] = catalog.measure[m+j].dM_PS;
-	if ((catalog.measure[m+j].source == USNOred) || (catalog.measure[m+j].source == USNOblu)) {
+	sourceValue.mags[idx] = catalog.measure[m+j].M + vegaToAB[idx];
+	sourceError.mags[idx] = catalog.measure[m+j].dM;
+	if ((catalog.measure[m+j].photcode == USNOred) || (catalog.measure[m+j].photcode == USNOblu)) {
 	  sourceError.mags[idx] = 0.3;
 	}
Index: trunk/Ohana/src/opihi/dvo/gimages.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/gimages.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/gimages.c	(revision 12332)
@@ -81,8 +81,8 @@
     if (PhotCodeSelect) {
       if ((code[0].type == PHOT_REF) || (code[0].type == PHOT_DEP)) {
-	if (code[0].code != image[i].source) continue;
+	if (code[0].code != image[i].photcode) continue;
       } 
-      if ((code[0].type == PHOT_PRI) || (code[0].type == PHOT_SEC)) {
-	if (code[0].code != GetPhotcodeEquivCodebyCode (image[i].source)) continue;
+      if (code[0].type == PHOT_SEC) {
+	if (code[0].code != GetPhotcodeEquivCodebyCode (image[i].photcode)) continue;
       } 
     }      
@@ -104,9 +104,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].source, image[i].secz_PS, image[i].Mcal_PS, image[i].dMcal_PS, 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].code);
     } 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].source, image[i].secz_PS, image[i].Mcal_PS, image[i].dMcal_PS, 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].code);
     }
     sprintf (name, "IMAGEx:%d", Nfound);
Index: trunk/Ohana/src/opihi/dvo/gstar.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/gstar.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/gstar.c	(revision 12332)
@@ -1,5 +1,5 @@
 # include "dvoshell.h"
 
-void initPhotcodeSequence (int Nsec);
+void initPhotcodeSequence (int Nsecfilt);
 void freePhotcodeSequence ();
 void printPhotcodeSequence (Average *average, SecFilt *secfilt, int entry, int type);
@@ -11,5 +11,5 @@
   double Mcat, Mrel;
   float *RA, *DEC;
-  int i, j, k, m, N, *N1, Nsec, NPTS, QUIET;
+  int i, j, k, m, N, *N1, Nsecfilt, NPTS, QUIET;
   int Nstars, found, GetMeasures, Nlo, Nhi;
   int SaveVectors;
@@ -22,5 +22,5 @@
 
   if (!InitPhotcodes ()) return (FALSE);
-  Nsec = GetPhotcodeNsecfilt ();
+  Nsecfilt = GetPhotcodeNsecfilt ();
 
   QUIET = FALSE;
@@ -127,5 +127,5 @@
   }
 
-  initPhotcodeSequence (Nsec);
+  initPhotcodeSequence (Nsecfilt);
 
   for (i = Nlo; (i < catalog.Naverage) && !found; i++) {
@@ -139,22 +139,22 @@
       if (!QUIET) {
 	gprint (GP_LOG, "star: %d\n", k);
-	gprint (GP_LOG, "%9.5f %9.5f %3d of %3d  %4.1f %5d\n", catalog.average[k].R, catalog.average[k].D, 
+	gprint (GP_LOG, "%11.7f %11.7f %3d of %3d  %4.1f %5d\n", catalog.average[k].R, catalog.average[k].D, 
 		 catalog.average[k].Nm, catalog.average[k].Nn + catalog.average[k].Nm,
 		 0.01*catalog.average[k].Xp, catalog.average[k].code);
       
 	/* filter names */
-	for (j = 0; j < Nsec + 1; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsec*k], j, 3);
+	for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, 3);
 	gprint (GP_LOG, "\n");
 
 	/* average mags */
-	for (j = 0; j < Nsec + 1; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsec*k], j, 0);
+	for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, 0);
 	gprint (GP_LOG, "\n");
 
 	/* average mag errors */
-	for (j = 0; j < Nsec + 1; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsec*k], j, 1);
+	for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, 1);
 	gprint (GP_LOG, "\n");
 
 	/* average mag chisq */
-	for (j = 0; j < Nsec + 1; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsec*k], j, 2);
+	for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, 2);
 	gprint (GP_LOG, "\n");
       }
@@ -165,13 +165,13 @@
 
 	  Mcat = PhotCat (&catalog.measure[m]);
-	  Mrel = PhotRel (&catalog.measure[m], &catalog.average[k], &catalog.secfilt[k*Nsec]);
+	  Mrel = PhotRel (&catalog.measure[m], &catalog.average[k], &catalog.secfilt[k*Nsecfilt]);
 
 	  if (GetMeasures && !QUIET) {
 	    date = sec_to_date (catalog.measure[m].t);
 	    gprint (GP_LOG, "%6.3f %6.3f %5.3f  %20s  %5.2f %5.2f %2d %3x %3d %-20s\n", 
-		     Mcat, Mrel, catalog.measure[m].dM_PS,
-		     date, catalog.measure[m].dR_PS, catalog.measure[m].dD_PS,
+		     Mcat, Mrel, catalog.measure[m].dM,
+		     date, catalog.measure[m].dR, catalog.measure[m].dD,
 		     catalog.measure[m].dophot, catalog.measure[m].flags,
-		     catalog.measure[m].source, GetPhotcodeNamebyCode (catalog.measure[m].source));
+		     catalog.measure[m].photcode, GetPhotcodeNamebyCode (catalog.measure[m].photcode));
 	    free (date);
 	  }
@@ -180,6 +180,6 @@
 	    vec1[0].elements[N] = Mcat;
 	    vec2[0].elements[N] = TimeValue (catalog.measure[m].t, TimeReference, TimeFormat);
-	    vec3[0].elements[N] = catalog.measure[m].airmass_PS;
-	    vec4[0].elements[N] = catalog.measure[m].source;
+	    vec3[0].elements[N] = catalog.measure[m].airmass;
+	    vec4[0].elements[N] = catalog.measure[m].photcode;
 	    N ++;
 	    if (N == NPTS - 1) {
@@ -223,5 +223,5 @@
 static int *sequence = NULL;
 
-void initPhotcodeSequence (int Nsec) {
+void initPhotcodeSequence (int Nsecfilt) {
 
   int j;
@@ -230,9 +230,9 @@
 
   // sequence contains, in desired order, secfilt number (0 == pri)
-  ALLOCATE (sequence, int, Nsec + 1);
-  ALLOCATE (codeNumber, int, Nsec + 1);
+  ALLOCATE (sequence, int, Nsecfilt);
+  ALLOCATE (codeNumber, int, Nsecfilt);
   
   /* filter names -- primary code is 0 in this function */
-  for (j = 0; j < Nsec + 1; j++) {
+  for (j = 0; j < Nsecfilt; j++) {
     code = GetPhotcodebyNsec (j);
     codeNumber[j] = code[0].code;
@@ -240,5 +240,5 @@
   }
 
-  isort_pair (codeNumber, sequence, Nsec + 1);
+  isort_pair (codeNumber, sequence, Nsecfilt);
   free (codeNumber);
 }
@@ -254,12 +254,12 @@
   PhotCode *code;
 
-  seq = sequence[entry] - 1;
+  seq = sequence[entry];
 
   switch (type) {
     case 0: /* average mags */
       if (seq == -1) {
-	print_value (average[0].M, average[0].M);
+	print_value (NO_MAG, NO_MAG);
       } else {
-	print_value (secfilt[seq].M_PS, secfilt[seq].M_PS);
+	print_value (secfilt[seq].M, secfilt[seq].M);
       }
       break;
@@ -267,7 +267,7 @@
     case 1: /* average mags errors */
       if (seq == -1) {
-	print_value (average[0].dM, average[0].dM);
+	print_value (NO_MAG, NO_MAG);
       } else {
-	print_value (secfilt[seq].dM_PS, secfilt[seq].dM_PS);
+	print_value (secfilt[seq].dM, secfilt[seq].dM);
       }
       break;
@@ -275,5 +275,5 @@
     case 2: /* average mag chisq */
       if (seq == -1) {
-	print_value (pow (10.0, 0.01*average[0].Xm), average[0].Xm);
+	print_value (NO_MAG, NO_MAG);
       } else {
 	print_value (pow (10.0, 0.01*secfilt[seq].Xm), secfilt[seq].Xm);
@@ -282,7 +282,7 @@
 
     case 3: /* filter names */
-      code = GetPhotcodebyNsec (seq + 1);
-      gprint (GP_LOG, "%6s ", code[0].name);
-      break;
-  }
-}
+      code = GetPhotcodebyNsec (seq);
+      gprint (GP_LOG, "%-6s ", code[0].name);
+      break;
+  }
+}
Index: trunk/Ohana/src/opihi/dvo/imbox.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/imbox.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/imbox.c	(revision 12332)
@@ -3,5 +3,5 @@
 int imbox (int argc, char **argv) {
   
-  int i, j, Nskip, status, InPic, flipped, Nextend;
+  int j, Nskip, status, InPic, flipped;
   Vector Xvec, Yvec;
   double r, d, x[4], y[4], Rmin, Rmax, Rmid;
Index: trunk/Ohana/src/opihi/dvo/imdata.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/imdata.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/imdata.c	(revision 12332)
@@ -39,4 +39,7 @@
     }      
   }
+
+  gprint (GP_ERR, "function is poorly defined; disabled and may be removed\n");
+  return (FALSE);
 
   if (argc != 4) {
@@ -137,5 +140,5 @@
 	  if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue;
 	  n = catalog.measure[i].averef;
-	  vec[0].elements[N] = catalog.average[n].R - catalog.measure[i].dR_PS / 3600.0;
+	  vec[0].elements[N] = catalog.average[n].R - catalog.measure[i].dR / 3600.0;
 	  N++;
 	  CHECK_REALLOCATE (vec[0].elements, float, NPTS, N, 1000);
@@ -146,5 +149,5 @@
 	  if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue;
 	  n = catalog.measure[i].averef;
-	  vec[0].elements[N] = catalog.average[n].D - catalog.measure[i].dD_PS / 3600.0;
+	  vec[0].elements[N] = catalog.average[n].D - catalog.measure[i].dD / 3600.0;
 	  N++;
 	  CHECK_REALLOCATE (vec[0].elements, float, NPTS, N, 1000);
@@ -154,5 +157,5 @@
 	for (i = 0; i < catalog.Nmeasure; i++) {
 	  if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue;
-	  vec[0].elements[N] = catalog.measure[i].M_PS;
+	  vec[0].elements[N] = catalog.measure[i].M;
 	  N++;
 	  CHECK_REALLOCATE (vec[0].elements, float, NPTS, N, 1000);
@@ -162,5 +165,5 @@
 	for (i = 0; i < catalog.Nmeasure; i++) {
 	  if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue;
-	  vec[0].elements[N] = catalog.measure[i].dM_PS;
+	  vec[0].elements[N] = catalog.measure[i].dM;
 	  N++;
 	  CHECK_REALLOCATE (vec[0].elements, float, NPTS, N, 1000);
@@ -170,5 +173,5 @@
 	for (i = 0; i < catalog.Nmeasure; i++) {
 	  if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue;
-	  vec[0].elements[N] = catalog.measure[i].Mcal_PS;
+	  vec[0].elements[N] = catalog.measure[i].Mcal;
 	  N++;
 	  CHECK_REALLOCATE (vec[0].elements, float, NPTS, N, 1000);
@@ -179,5 +182,5 @@
 	  if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue;
 	  n = catalog.measure[i].averef;
-	  vec[0].elements[N] = catalog.average[n].M;
+	  // vec[0].elements[N] = catalog.average[n].M;
 	  N++;
 	}
@@ -186,5 +189,5 @@
 	for (i = 0; i < catalog.Nmeasure; i++) {
 	  if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue;
-	  vec[0].elements[N] = catalog.measure[i].source;
+	  vec[0].elements[N] = catalog.measure[i].photcode;
 	  N++;
 	  CHECK_REALLOCATE (vec[0].elements, float, NPTS, N, 1000);
Index: trunk/Ohana/src/opihi/dvo/imextract.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/imextract.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/imextract.c	(revision 12332)
@@ -63,5 +63,5 @@
       return (FALSE);
     }
-    if ((code[0].type != PHOT_PRI) && (code[0].type != PHOT_SEC) && (code[0].type != PHOT_DEP)) {
+    if ((code[0].type != PHOT_SEC) && (code[0].type != PHOT_DEP)) {
       gprint (GP_ERR, "photcode must be primary, secondary, or dependent code\n");
       return (FALSE);
@@ -114,7 +114,7 @@
     if (PhotcodeSelect) {
       if (code[0].type == PHOT_DEP) {
-	if (code[0].code != image[j].source) continue;
+	if (code[0].code != image[j].photcode) continue;
       } else {
-	if (code[0].code != GetPhotcodeEquivCodebyCode (image[j].source)) continue;
+	if (code[0].code != GetPhotcodeEquivCodebyCode (image[j].photcode)) continue;
       }
     }
@@ -139,14 +139,14 @@
       break;
     case (AIRMASS):
-      vec[0].elements[N] = image[j].secz_PS;
+      vec[0].elements[N] = image[j].secz;
       break;
     case (MCAL):
-      vec[0].elements[N] = image[j].Mcal_PS;
+      vec[0].elements[N] = image[j].Mcal;
       break;
     case (dMCAL):
-      vec[0].elements[N] = image[j].dMcal_PS;
+      vec[0].elements[N] = image[j].dMcal;
       break;
     case (PHOTCODE):
-      vec[0].elements[N] = image[j].source;
+      vec[0].elements[N] = image[j].photcode;
       break;
     case (TIME):
Index: trunk/Ohana/src/opihi/dvo/imlist.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/imlist.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/imlist.c	(revision 12332)
@@ -77,7 +77,7 @@
     if (PhotcodeSelect) {
       if (PhotcodeValue[0].type == PHOT_DEP) {
-	if (PhotcodeValue[0].code != image[i].source) continue;
+	if (PhotcodeValue[0].code != image[i].photcode) continue;
       } else {
-	if (PhotcodeValue[0].code != GetPhotcodeEquivCodebyCode (image[i].source)) continue;
+	if (PhotcodeValue[0].code != GetPhotcodeEquivCodebyCode (image[i].photcode)) continue;
       }
     }
@@ -90,5 +90,5 @@
     }
     gprint (GP_LOG, "%3d %s %8.4f %8.4f %f %5d %2d %4.2f %5.3f %5.3f\n", 
-	     i, image[i].name, r, d, t, image[i].nstar, image[i].source, image[i].secz_PS, image[i].Mcal_PS, image[i].dMcal_PS);
+	     i, image[i].name, r, d, t, image[i].nstar, image[i].photcode, image[i].secz, image[i].Mcal, image[i].dMcal);
   }
 
Index: trunk/Ohana/src/opihi/dvo/imphot.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/imphot.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/imphot.c	(revision 12332)
@@ -65,18 +65,18 @@
     switch (image[i].order) {
     case 0:
-      gprint (GP_ERR, "%s: %d - %f\n", image[i].name, image[i].order, image[i].Mcal_PS);
+      gprint (GP_ERR, "%s: %d - %f\n", image[i].name, image[i].order, image[i].Mcal);
       break;
     case 1:
-      gprint (GP_ERR, "%s: %d - %f, %d %d\n", image[i].name, image[i].order, image[i].Mcal_PS, image[i].Mx, image[i].My);
+      gprint (GP_ERR, "%s: %d - %f, %d %d\n", image[i].name, image[i].order, image[i].Mcal, image[i].Mx, image[i].My);
       break;
     case 2:
-      gprint (GP_ERR, "%s: %d - %f, %d %d, %d %d %d\n", image[i].name, image[i].order, image[i].Mcal_PS, image[i].Mx, image[i].My, image[i].Mxx, image[i].Mxy, image[i].Myy);
+      gprint (GP_ERR, "%s: %d - %f, %d %d, %d %d %d\n", image[i].name, image[i].order, image[i].Mcal, image[i].Mx, image[i].My, image[i].Mxx, image[i].Mxy, image[i].Myy);
       break;
     case 3:
-      gprint (GP_ERR, "%s: %d - %f, %d %d, %d %d %d, %d %d %d %d\n", image[i].name, image[i].order, image[i].Mcal_PS, image[i].Mx, image[i].My, 
+      gprint (GP_ERR, "%s: %d - %f, %d %d, %d %d %d, %d %d %d %d\n", image[i].name, image[i].order, image[i].Mcal, image[i].Mx, image[i].My, 
 	       image[i].Mxx, image[i].Mxy, image[i].Myy, image[i].Mxxx, image[i].Mxxy, image[i].Mxyy, image[i].Myyy);
       break;
     case 4:
-      gprint (GP_ERR, "%s: %d - %f, %d %d, %d %d %d, %d %d %d %d, %d %d %d %d %d\n", image[i].name, image[i].order, image[i].Mcal_PS, image[i].Mx, image[i].My, 
+      gprint (GP_ERR, "%s: %d - %f, %d %d, %d %d %d, %d %d %d %d, %d %d %d %d %d\n", image[i].name, image[i].order, image[i].Mcal, image[i].Mx, image[i].My, 
 	       image[i].Mxx, image[i].Mxy, image[i].Myy, image[i].Mxxx, image[i].Mxxy, image[i].Mxyy, image[i].Myyy,
 	       image[i].Mxxxx, image[i].Mxxxy, image[i].Mxxyy, image[i].Mxyyy, image[i].Myyyy);
Index: trunk/Ohana/src/opihi/dvo/imsearch.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/imsearch.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/imsearch.c	(revision 12332)
@@ -11,5 +11,5 @@
   char *Filter, *obstime;
   int Type, Mode, CCD;
-  time_t tzero;
+  time_t tzero, obstime_sec;
   double trange;
    
@@ -126,5 +126,6 @@
     if (TypeSelect && (pimage[i].type != Type)) continue;
 
-    obstime = ctime ((time_t *)&pimage[i].obstime);
+    obstime_sec = (time_t) pimage[i].obstime;
+    obstime = ctime (&obstime_sec);
     obstime[strlen(obstime)-1] = 0;
 
Index: trunk/Ohana/src/opihi/dvo/imstats.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/imstats.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/imstats.c	(revision 12332)
@@ -45,14 +45,14 @@
   gprint (GP_LOG, "seq  ra (J2000) dec    time (s)   Nstars\n");
   for (i = 0; i < Nimage; i++) {
-    Xvec.elements[i] = image[i].secz_PS;
+    Xvec.elements[i] = image[i].secz;
     if (Mcal) 
-      Yvec.elements[i] = image[i].Mcal_PS;
+      Yvec.elements[i] = image[i].Mcal;
     else 
-      Yvec.elements[i] = image[i].dMcal_PS;
+      Yvec.elements[i] = image[i].dMcal;
     if (!FindMosaicForImage (image, Nimage, i)) continue;
     XY_to_RD (&r, &d, 0.5*image[i].NX, 0.5*image[i].NY, &image[i].coords);
     gprint (GP_ERR, "%d %8.4f %8.4f %10d %6d  %5.3f %6.3f %6.3f\n", 
 	     i, r, d, image[i].tzero, image[i].nstar, Xvec.elements[i], 
-	     image[i].Mcal_PS, image[i].dMcal_PS);
+	     image[i].Mcal, image[i].dMcal);
   } 
   if (AutoLimits) SetLimits (&Xvec, &Yvec, &graphmode);
Index: trunk/Ohana/src/opihi/dvo/lcurve.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/lcurve.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/lcurve.c	(revision 12332)
@@ -112,4 +112,5 @@
   ALLOCATE (Xvec.elements, float, NPTS);
   ALLOCATE (Yvec.elements, float, NPTS);
+  dYvec.elements = NULL;
   if (ErrorBars) { ALLOCATE (dYvec.elements, float, NPTS); }
   N = 0;
@@ -130,5 +131,5 @@
       m = catalog.average[N1[i]].offset;
       for (j = 0; j < catalog.average[N1[i]].Nm; j++, m++) {
-	if (ErrorBars) dYvec.elements[N] = catalog.measure[m].dM_PS;
+	if (ErrorBars) dYvec.elements[N] = catalog.measure[m].dM;
 	Xvec.elements[N] = TimeValue (catalog.measure[m].t, TimeReference, TimeFormat);
 	Yvec.elements[N] = PhotCat (&catalog.measure[m]);
Index: trunk/Ohana/src/opihi/dvo/lightcurve.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/lightcurve.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/lightcurve.c	(revision 12332)
@@ -6,5 +6,5 @@
   float *RA, *DEC;
   int Nstars, found, PhotCodeSelect;
-  int i, j, k, m, N, NPTS, Nsec, RELPHOT, *N1, TimeFormat;
+  int i, j, k, m, N, NPTS, Nsecfilt, RELPHOT, *N1, TimeFormat;
   time_t TimeReference;
 
@@ -16,5 +16,5 @@
 
   if (!InitPhotcodes ()) return (FALSE);
-  Nsec = GetPhotcodeNsecfilt ();
+  Nsecfilt = GetPhotcodeNsecfilt ();
 
   if ((tvec = SelectVector ("tc", ANYVECTOR, TRUE)) == NULL) return (FALSE);
@@ -110,17 +110,17 @@
 	if (PhotCodeSelect) {
 	  if ((code[0].type == PHOT_REF) || (code[0].type == PHOT_DEP)) {
-	    if (code[0].code != catalog.measure[m].source) continue;
+	    if (code[0].code != catalog.measure[m].photcode) continue;
 	  } 
-	  if ((code[0].type == PHOT_PRI) || (code[0].type == PHOT_SEC)) {
-	    if (code[0].code != GetPhotcodeEquivCodebyCode (catalog.measure[m].source)) continue;
+	  if (code[0].type == PHOT_SEC) {
+	    if (code[0].code != GetPhotcodeEquivCodebyCode (catalog.measure[m].photcode)) continue;
 	  } 
 	}      
 
 	tvec[0].elements[N] = TimeValue (catalog.measure[m].t, TimeReference, TimeFormat);
-	dmvec[0].elements[N] = catalog.measure[m].dM_PS;
+	dmvec[0].elements[N] = catalog.measure[m].dM;
 	if (RELPHOT) {
 	  mvec[0].elements[N] = PhotCat (&catalog.measure[m]);
 	} else {
-	  mvec[0].elements[N] = PhotRel (&catalog.measure[m], &catalog.average[k], &catalog.secfilt[k*Nsec]);
+	  mvec[0].elements[N] = PhotRel (&catalog.measure[m], &catalog.average[k], &catalog.secfilt[k*Nsecfilt]);
 	}
 	N++; 
Index: trunk/Ohana/src/opihi/dvo/match_image.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/match_image.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/match_image.c	(revision 12332)
@@ -30,5 +30,5 @@
 
   for (N = N1; N < N2; N++) {
-    if ((image[N].tzero == T) && (image[N].source == S)) {
+    if ((image[N].tzero == T) && (image[N].photcode == S)) {
       return (N);
     }
@@ -66,5 +66,5 @@
 
   for (N = N1; N < N2; N++) {
-    if ((image[subset[N]].tzero == T) && (image[subset[N]].source == S)) {
+    if ((image[subset[N]].tzero == T) && (image[subset[N]].photcode == S)) {
       return (subset[N]);
     }
Index: trunk/Ohana/src/opihi/dvo/mextract.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/mextract.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/mextract.c	(revision 12332)
@@ -4,5 +4,5 @@
   
   int i, j, k, m, N, N1, NPTS;
-  int param, mode, Nsec;
+  int param, mode, Nsecfilt;
   char *RegionName, *RegionList, *p;
   double *M1;
@@ -23,5 +23,5 @@
   /* load photcode information */
   if (!InitPhotcodes ()) goto escape;
-  Nsec = GetPhotcodeNsecfilt ();
+  Nsecfilt = GetPhotcodeNsecfilt ();
 
   /* interpret command-line options */
@@ -57,5 +57,5 @@
     catalog.filename = skylist[0].filename[i];
     catalog.catflags = LOAD_AVES | LOAD_MEAS | LOAD_SECF;
-    catalog.Nsecfilt = Nsec;
+    catalog.Nsecfilt = Nsecfilt;
 
     // an error exit status here is a significant error
@@ -66,8 +66,10 @@
     dvo_catalog_unlock (&catalog);
 
+    /* XXX need to call dvo_catalog_chipcoords here passing the loaded images */
+
     for (j = 0; j < catalog.Naverage; j++) {
       M1 = NULL;
       m = catalog.average[j].offset;
-      M1 = ExtractMeasures (code, mode, &catalog.average[j], &catalog.secfilt[j*Nsec], &catalog.measure[m], &N1, param);
+      M1 = ExtractMeasures (code, mode, &catalog.average[j], &catalog.secfilt[j*Nsecfilt], &catalog.measure[m], &N1, param);
       for (k = 0; k < N1; k++) {
 	vec[0].elements[N] = M1[k];
Index: trunk/Ohana/src/opihi/dvo/paverage.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/paverage.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/paverage.c	(revision 12332)
@@ -5,10 +5,9 @@
   
   FILE *f;
-  int i, j, k, m, Narg, Npts, NPTS, status, VERBOSE;
+  int i, j, Narg, Npts, NPTS, status, VERBOSE;
   int Nsecfilt, Nsec;
   double Mz, Mr, mag;
   double Radius, Rmin, Rmax, R, D;
   unsigned IDclip, IDchoice, LimExclude;
-  unsigned FlagChoice, FlagClip, flags;
   float *Xvec, *Yvec, *Zvec;
 
@@ -32,5 +31,6 @@
   Rmax = graphmode.coords.crval1 + 182.0;
 
-  Nsec = -1;
+  // require a photcode?  default to 0?
+  Nsec = 0;
   if ((Narg = get_argument (argc, argv, "-p"))) {
     remove_argument (Narg, &argc, argv);
@@ -42,4 +42,8 @@
     remove_argument (Narg, &argc, argv);
     Nsec = GetPhotcodeNsec (photcode[0].code);
+    if (Nsec == -1) {
+	fprintf (stderr, "photcode %s is not an AVERAGE photcode\n", argv[Narg]);
+	return (FALSE);
+    }
   }
 
@@ -109,4 +113,5 @@
 
     average = catalog.average;
+    secfilt = catalog.secfilt;
 
     /* project stars to screen display coords */
@@ -116,5 +121,5 @@
       while (average[i].R > Rmax) average[i].R -= 360.0;
 
-      mag = (Nsec == -1) ? average[i].M : secfilt[i*Nsecfilt+Nsec].M_PS;
+      mag = secfilt[i*Nsecfilt+Nsec].M;
       Zvec[Npts] = MIN (1.0, MAX (0.01, (mag - Mz) / Mr));
       if (LimExclude && (Zvec[Npts] > 0.99)) continue;
Index: trunk/Ohana/src/opihi/dvo/photometry.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/photometry.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/photometry.c	(revision 12332)
@@ -7,9 +7,8 @@
     case PHOT_DEP: \
     case PHOT_REF: \
-      if (C[0].code != M.source) continue; \
+      if (C[0].code != M.photcode) continue; \
       break; \
-    case PHOT_PRI: \
     case PHOT_SEC: \
-      if (C[0].code != GetPhotcodeEquivCodebyCode (M.source)) continue; \
+      if (C[0].code != GetPhotcodeEquivCodebyCode (M.photcode)) continue; \
       break; \
     default: \
@@ -22,5 +21,5 @@
     if (TimeSelect && (M.t < tzero)) continue; \
     if (TimeSelect && (M.t > tend)) continue; \
-    if (ErrSelect  && (M.dM_PS > ErrValue)) continue; \
+    if (ErrSelect  && (M.dM > ErrValue)) continue; \
     if (TypeSelect && (TypeValue != GetMeasureTypeCode (&M))) continue; \
     if (iMagSelect && (PhotInst (&M) < iMagMin)) continue; \
@@ -34,7 +33,7 @@
   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.source)); \
-  if (MODE == MAG_AVE)  MOUT = PhotAve  (GetPhotcodeEquivbyCode (MEAS.source), average, secfilt); \
-  if (MODE == MAG_REF)  MOUT = PhotRef  (GetPhotcodeEquivbyCode (MEAS.source), average, secfilt, measure); \
+  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; \
@@ -134,5 +133,5 @@
     if (mode == MAG_CAL)  status = TRUE;
   }  
-  if ((code[0].type == PHOT_PRI) || (code[0].type == PHOT_SEC)) {
+  if (code[0].type == PHOT_SEC) {
     if (mode == MAG_NONE) mode  = MAG_AVE;
     if (mode == MAG_INST) status = TRUE;
@@ -302,7 +301,6 @@
   }
   if (NeedPhotcode) {
-    if (code[0][0].type == PHOT_PRI) return (TRUE);
     if (code[0][0].type == PHOT_SEC) return (TRUE);
-    gprint (GP_ERR, "photcode selection problem: average value requires PRI/SEC photcode\n");
+    gprint (GP_ERR, "photcode selection problem: average value requires average photcode\n");
     return (FALSE);
   }
@@ -322,5 +320,7 @@
 
   double ZERO_POINT;
-  char PhotCodeFile[256];
+  char MasterPhotcodeFile[256];
+  char CatdirPhotcodeFile[256];
+  char *catdir;
 
   if (VarConfig ("ZERO_PT", "%lf", &ZERO_POINT) == (char *) NULL) {
@@ -330,10 +330,17 @@
   SetZeroPoint (ZERO_POINT);
 
-  if (VarConfig ("PHOTCODE_FILE", "%s", PhotCodeFile) == (char *) NULL) {
+  catdir = GetCATDIR();
+  if (catdir == NULL) {
+    CatdirPhotcodeFile[0] = 0;
+  } else {
+    sprintf (CatdirPhotcodeFile, "%s/Photcodes.dat", catdir);
+  }
+
+  if (VarConfig ("PHOTCODE_FILE", "%s", MasterPhotcodeFile) == (char *) NULL) {
       gprint (GP_ERR, "PHOTCODE_FILE undefined in config\n");
       return (FALSE);
   }
-  if (!LoadPhotcodes (PhotCodeFile)) {
-    gprint (GP_ERR, "error loading photcodes\n");
+  if (!LoadPhotcodes (CatdirPhotcodeFile, MasterPhotcodeFile)) {
+    gprint (GP_ERR, "error loading photcode table %s or master file %s\n", CatdirPhotcodeFile, MasterPhotcodeFile);
     return (FALSE);
   }
@@ -676,5 +683,5 @@
       value = 0;
       for (i = 0; i < average[0].Nm; i++) {
-	if (code[0].code != GetPhotcodeEquivCodebyCode (measure[i].source)) continue;
+	if (code[0].code != GetPhotcodeEquivCodebyCode (measure[i].photcode)) continue;
 	value ++;
       }
@@ -683,5 +690,5 @@
       value = 0;
       for (i = 0; i < average[0].Nm; i++) {
-	if (code[0].code != GetPhotcodeEquivCodebyCode (measure[i].source)) continue;
+	if (code[0].code != GetPhotcodeEquivCodebyCode (measure[i].photcode)) continue;
 	if (measure[i].flags & (ID_MEAS_POOR | ID_MEAS_SKIP)) continue;
 	value ++;
@@ -691,6 +698,6 @@
       value = 0;
       for (i = 0; i < average[0].Nm; i++) {
-	if ((code != NULL) && (code[0].code != GetPhotcodeEquivCodebyCode (measure[i].source))) continue;
-	if (ErrSelect && (measure[i].dM_PS > ErrValue)) continue;
+	if ((code != NULL) && (code[0].code != GetPhotcodeEquivCodebyCode (measure[i].photcode))) continue;
+	if (ErrSelect && (measure[i].dM > ErrValue)) continue;
 	if (FlagSelect && (measure[i].flags != FlagValue)) continue;
 	if (TypeSelect && (TypeValue != GetMeasureTypeCode (&measure[i]))) continue;
@@ -711,5 +718,5 @@
   Nt = Nc = 0;
   for (k = 0; k < average[0].Nm; k++) {
-    if ((code != NULL) && (code[0].code != GetPhotcodeEquivCodebyCode (measure[k].source))) continue;
+    if ((code != NULL) && (code[0].code != GetPhotcodeEquivCodebyCode (measure[k].photcode))) continue;
     Nc ++;
     if (measure[k].dophot != TypefracType) continue;
@@ -727,5 +734,5 @@
   Nt[0] = Nt[1] = Nt[2] = 0;
   for (k = 0; k < average[0].Nm; k++) {
-    if (code != GetPhotcodeEquivCodebyCode (measure[k].source)) continue;
+    if (code != GetPhotcodeEquivCodebyCode (measure[k].photcode)) continue;
     N = GetMeasureTypeCode (&measure[k]);
     Nt[N] ++;
@@ -1128,20 +1135,20 @@
       break;
     case MEAS_RA: /* OK */
-      value = average[0].R - measure[0].dR_PS / 3600.0;
+      value = average[0].R - measure[0].dR / 3600.0;
       break;
     case MEAS_DEC: /* OK */
-      value = average[0].D - measure[0].dD_PS / 3600.0;
+      value = average[0].D - measure[0].dD / 3600.0;
       break;
     case MEAS_dMAG: /* OK */
-      value = measure[0].dM_PS;
+      value = measure[0].dM;
       break;
     case MEAS_AIRMASS: /* OK */
-      value = measure[0].airmass_PS;
+      value = measure[0].airmass;
       break;
     case MEAS_EXPTIME: /* OK */
-      value = pow (10.0, measure[0].dt_PS * 0.4);
+      value = pow (10.0, measure[0].dt * 0.4);
       break;
     case MEAS_PHOTCODE: /* OK */
-      value = measure[0].source;
+      value = measure[0].photcode;
       break;
     case MEAS_TIME: /* OK */
@@ -1149,8 +1156,8 @@
       break;
     case MEAS_dR: /* OK */
-      value = measure[0].dR_PS;
+      value = measure[0].dR;
       break;
     case MEAS_dD: /* OK */
-      value = measure[0].dD_PS;
+      value = measure[0].dD;
       break;
     case MEAS_FWHM: /* OK */
@@ -1164,23 +1171,33 @@
       break;
     case MEAS_XCCD: /* OK */
-      ra  = average[0].R - measure[0].dR_PS / 3600.0;
-      dec = average[0].D - measure[0].dD_PS / 3600.0;
-      image = MatchImage (measure[0].t, measure[0].source);
+/* I need to perform this conversion for ELIXIR and LONEOS formats on load */      
+# if 0
+      value = measure[0].Xccd;
+# else
+      ra  = average[0].R - measure[0].dR / 3600.0;
+      dec = average[0].D - measure[0].dD / 3600.0;
+      image = MatchImage (measure[0].t, measure[0].photcode);
       if (image == NULL) break;
       RD_to_XY (&x, &y, ra, dec, &image[0].coords);
       value = x;
+# endif
       break;
     case MEAS_YCCD: /* OK */
-      ra  = average[0].R - measure[0].dR_PS / 3600.0;
-      dec = average[0].D - measure[0].dD_PS / 3600.0;
-      image = MatchImage (measure[0].t, measure[0].source);
+/* I need to perform this conversion for ELIXIR and LONEOS formats on load */      
+# if 0
+      value = measure[0].Yccd;
+# else
+      ra  = average[0].R - measure[0].dR / 3600.0;
+      dec = average[0].D - measure[0].dD / 3600.0;
+      image = MatchImage (measure[0].t, measure[0].photcode);
       if (image == NULL) break;
       RD_to_XY (&x, &y, ra, dec, &image[0].coords);
       value = y;
+# endif
       break;
     case MEAS_XMOSAIC: /* OK */
-      ra  = average[0].R - measure[0].dR_PS / 3600.0;
-      dec = average[0].D - measure[0].dD_PS / 3600.0;
-      mosaic = MatchMosaic (measure[0].t, measure[0].source);
+      ra  = average[0].R - measure[0].dR / 3600.0;
+      dec = average[0].D - measure[0].dD / 3600.0;
+      mosaic = MatchMosaic (measure[0].t, measure[0].photcode);
       if (mosaic == NULL) break;
       RD_to_XY (&x, &y, ra, dec, mosaic);
@@ -1188,7 +1205,7 @@
       break;
     case MEAS_YMOSAIC: /* OK */
-      ra  = average[0].R - measure[0].dR_PS / 3600.0;
-      dec = average[0].D - measure[0].dD_PS / 3600.0;
-      mosaic = MatchMosaic (measure[0].t, measure[0].source);
+      ra  = average[0].R - measure[0].dR / 3600.0;
+      dec = average[0].D - measure[0].dD / 3600.0;
+      mosaic = MatchMosaic (measure[0].t, measure[0].photcode);
       if (mosaic == NULL) break;
       RD_to_XY (&x, &y, ra, dec, mosaic);
Index: trunk/Ohana/src/opihi/dvo/pmeasure.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/pmeasure.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/pmeasure.c	(revision 12332)
@@ -116,16 +116,16 @@
 	  if (!(flags & FlagChoice)) continue;
 	}
-	if ((PhotcodeClip != -1) && (catalog.measure[m+k].source != PhotcodeClip)) continue;
+	if ((PhotcodeClip != -1) && (catalog.measure[m+k].photcode != PhotcodeClip)) continue;
 	mag = PhotCat (&catalog.measure[m+k]);
 	Zvec[Npts] = MIN (1.0, MAX (0.01, (mag - Mz) / Mr));
 	if (LimExclude && (Zvec[Npts] > 0.99)) continue;
 	if (Zvec[Npts] < 0.011) continue;
-	R = catalog.average[i].R - catalog.measure[m+k].dR_PS/3600.0;
-	D = catalog.average[i].D - catalog.measure[m+k].dD_PS/3600.0;
+	R = catalog.average[i].R - catalog.measure[m+k].dR/3600.0;
+	D = catalog.average[i].D - catalog.measure[m+k].dD/3600.0;
 	// XXX drop this check
 	if ((R < Rmin) || (R > Rmax) || (D < -90.0) || (D > 90.0)) {
 	  char *date;
 	  date = sec_to_date (catalog.measure[m+k].t);
-	  gprint (GP_LOG, "out: %f, %f : %s : (%f, %f) + (%f, %f)\n", R, D, date, catalog.average[i].R, catalog.average[i].D, catalog.measure[m+k].dR_PS/3600.0, catalog.measure[m+k].dD_PS/3600.0);
+	  gprint (GP_LOG, "out: %f, %f : %s : (%f, %f) + (%f, %f)\n", R, D, date, catalog.average[i].R, catalog.average[i].D, catalog.measure[m+k].dR/3600.0, catalog.measure[m+k].dD/3600.0);
 	  free (date);
 	}
Index: trunk/Ohana/src/opihi/dvo/subpix.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/subpix.c	(revision 12280)
+++ trunk/Ohana/src/opihi/dvo/subpix.c	(revision 12332)
@@ -143,5 +143,5 @@
 	RD_to_XY (&X, &Y, Ra, Dec, &image[I].coords);
 	t = TimeValue (measure[j].t, TimeReference, TimeFormat);
-	gprint (GP_LOG, "%f %6.3f %7.2f %7.2f %5.3f\n", t, Mabs, X, Y, image[I].secz_PS);
+	gprint (GP_LOG, "%f %6.3f %7.2f %7.2f %5.3f\n", t, Mabs, X, Y, image[I].secz);
       } 
     }
Index: trunk/Ohana/src/opihi/include/display.h
===================================================================
--- trunk/Ohana/src/opihi/include/display.h	(revision 12280)
+++ trunk/Ohana/src/opihi/include/display.h	(revision 12332)
@@ -20,4 +20,5 @@
 int           PrepPlotting          PROTO((int Npts, Graphdata *graphmode));
 int           PlotVector            PROTO((int, float *));
+int           PlotVectorTriplet     PROTO((int N, float *xValues, float *yValues, float *zValues, Graphdata *graphmode));
 int           GetGraphData          PROTO((Graphdata *data, int *sock, int *N));
 int           GetGraph              PROTO((Graphdata *data, int *socket, int *N));
Index: trunk/Ohana/src/opihi/include/pcontrol.h
===================================================================
--- trunk/Ohana/src/opihi/include/pcontrol.h	(revision 12280)
+++ trunk/Ohana/src/opihi/include/pcontrol.h	(revision 12332)
@@ -114,5 +114,5 @@
 # define PCLIENT_PROMPT "pclient:"
 
-# define FREE(X) if (X != NULL) { free (X); }
+// # define FREE(X) if (X != NULL) { free (X); }
 # define CLOSE(FD) { if (FD) close (FD); FD = 0; }
 # define DTIME(A,B) ((A.tv_sec - B.tv_sec) + 1e-6*(A.tv_usec - B.tv_usec))
@@ -151,4 +151,5 @@
 int   CheckLiveHosts (float delay);
 int   SetRunSystem (int state);
+RunLevels SetRunLevel (RunLevels level);
 
 /*** own files ***/
Index: trunk/Ohana/src/opihi/include/shell.h
===================================================================
--- trunk/Ohana/src/opihi/include/shell.h	(revision 12280)
+++ trunk/Ohana/src/opihi/include/shell.h	(revision 12332)
@@ -72,4 +72,5 @@
 void          welcome                   PROTO(());
 
+int           add_listentry             PROTO((int ThisList, char *line));
 int           is_for_loop           	PROTO((char *line));
 int           is_if_block           	PROTO((char *line));
Index: trunk/Ohana/src/opihi/lib.data/book.c
===================================================================
--- trunk/Ohana/src/opihi/lib.data/book.c	(revision 12280)
+++ trunk/Ohana/src/opihi/lib.data/book.c	(revision 12332)
@@ -38,6 +38,4 @@
 /* return the given book */
 Book *GetBook (int where) {
-
-  int i;
 
   if (where < 0) where += Nbooks;
Index: trunk/Ohana/src/opihi/lib.data/page.c
===================================================================
--- trunk/Ohana/src/opihi/lib.data/page.c	(revision 12280)
+++ trunk/Ohana/src/opihi/lib.data/page.c	(revision 12332)
@@ -27,6 +27,4 @@
 Page *GetPage (Book *book, int where) {
 
-  int i;
-
   if (where < 0) where += book[0].Npages;
   if (where < 0) return NULL;
@@ -46,4 +44,5 @@
   if (where >= book[0].Npages) return NULL;
 
+  Nout = -1;
   if (where >= 0) {
     N = -1;
Index: trunk/Ohana/src/opihi/lib.shell/ListOps.c
===================================================================
--- trunk/Ohana/src/opihi/lib.shell/ListOps.c	(revision 12280)
+++ trunk/Ohana/src/opihi/lib.shell/ListOps.c	(revision 12332)
@@ -79,5 +79,4 @@
 
   int Nlines;
-  char *output;
 
   Nlines = lists[ThisList].Nlines;
@@ -108,5 +107,5 @@
 int is_macro_create (char *line) {
 
-  int i, N, status;
+  int status;
   char *comm;
   char *this_macro;
Index: trunk/Ohana/src/opihi/lib.shell/SocketOps.c
===================================================================
--- trunk/Ohana/src/opihi/lib.shell/SocketOps.c	(revision 12280)
+++ trunk/Ohana/src/opihi/lib.shell/SocketOps.c	(revision 12332)
@@ -92,6 +92,7 @@
 int WaitServerSocket (int InitSocket, SockAddress *Address) {
 
-  int i, BindSocket, length;
+  int i, BindSocket;
   SockAddress Address_in;
+  socklen_t length;
   u_int32_t addr;
 
Index: trunk/Ohana/src/opihi/lib.shell/exec_loop.c
===================================================================
--- trunk/Ohana/src/opihi/lib.shell/exec_loop.c	(revision 12280)
+++ trunk/Ohana/src/opihi/lib.shell/exec_loop.c	(revision 12332)
@@ -4,5 +4,5 @@
 
   void *Signal;
-  int n, Nlines, j, status, ThisList;
+  int j, status, ThisList;
   char *line;
   
Index: trunk/Ohana/src/opihi/lib.shell/opihi.c
===================================================================
--- trunk/Ohana/src/opihi/lib.shell/opihi.c	(revision 12280)
+++ trunk/Ohana/src/opihi/lib.shell/opihi.c	(revision 12332)
@@ -7,5 +7,4 @@
   char *line, *prompt, *history;
   pid_t ppid;
-  FILE *log;
 
   general_init (&argc, argv);
Index: trunk/Ohana/src/opihi/lib.shell/version.c
===================================================================
--- trunk/Ohana/src/opihi/lib.shell/version.c	(revision 12280)
+++ trunk/Ohana/src/opihi/lib.shell/version.c	(revision 12332)
@@ -1,5 +1,3 @@
 # include "shell.h"
-
-static char *unknown = "UNKNOWN";
 static char *name = "$Name: not supported by cvs2svn $";
 
Index: trunk/Ohana/src/opihi/pantasks/CheckTasks.c
===================================================================
--- trunk/Ohana/src/opihi/pantasks/CheckTasks.c	(revision 12280)
+++ trunk/Ohana/src/opihi/pantasks/CheckTasks.c	(revision 12332)
@@ -6,5 +6,5 @@
   Task *task;
   int status;
-  struct timeval now;
+  // struct timeval now;
 
   /** test all tasks: ready to test? ready to run? **/
Index: trunk/Ohana/src/opihi/pantasks/TaskOps.c
===================================================================
--- trunk/Ohana/src/opihi/pantasks/TaskOps.c	(revision 12280)
+++ trunk/Ohana/src/opihi/pantasks/TaskOps.c	(revision 12332)
@@ -149,6 +149,5 @@
 void ListTaskStats (char *regex) {
 
-  int i, j, valid, nameLength;
-  char *start, *stop;
+  int i, valid, nameLength;
   char format[128];
   regex_t preg;
@@ -557,6 +556,6 @@
   if (verbose) {
       fprintf (stderr, "tt: %d %6d  - %d %6d : %f\n", 
-	       now.tv_sec, now.tv_usec, 
-	       start.tv_sec, start.tv_usec, dtime);
+	       (int) now.tv_sec, (int) now.tv_usec, 
+	       (int) start.tv_sec, (int) start.tv_usec, dtime);
   }
 
Index: trunk/Ohana/src/opihi/pantasks/ipptool2book.c
===================================================================
--- trunk/Ohana/src/opihi/pantasks/ipptool2book.c	(revision 12280)
+++ trunk/Ohana/src/opihi/pantasks/ipptool2book.c	(revision 12332)
@@ -15,7 +15,8 @@
   char **setWordValue;
   int setWordN, setWordNalloc;
-  Page *page;
-  Book *book;
-  Queue *queue;
+
+  Page *page = NULL;
+  Book *book = NULL;
+  Queue *queue = NULL;
 
   /* supply additional constant words */
Index: trunk/Ohana/src/opihi/pantasks/task_stdout.c
===================================================================
--- trunk/Ohana/src/opihi/pantasks/task_stdout.c	(revision 12280)
+++ trunk/Ohana/src/opihi/pantasks/task_stdout.c	(revision 12332)
@@ -3,5 +3,4 @@
 int task_stdout (int argc, char **argv) {
 
-  int N, RequiredHost;
   Task *task;
 
@@ -27,5 +26,4 @@
 int task_stderr (int argc, char **argv) {
 
-  int N, RequiredHost;
   Task *task;
 
