Index: /trunk/Ohana/src/imregister/imreg/args.imsearch.c
===================================================================
--- /trunk/Ohana/src/imregister/imreg/args.imsearch.c	(revision 12)
+++ /trunk/Ohana/src/imregister/imreg/args.imsearch.c	(revision 13)
@@ -99,4 +99,20 @@
   }
 
+  /* processed state */
+  criteria.ProcSelect = FALSE;
+  if (N = get_argument (argc, argv, "-proc")) {
+    criteria.ProcSelect = TRUE;
+    remove_argument (N, &argc, argv);
+
+    criteria.Proc = -1;
+    if (strcasecmp (argv[N], "t")) criteria.Proc = TRUE;
+    if (strcasecmp (argv[N], "f")) criteria.Proc = FALSE;
+    remove_argument (N, &argc, argv);
+    if (criteria.Proc == -1) {
+      fprintf (stderr, "ERROR: -proc (t/f)\n");
+      exit (1);
+    }
+  }
+
   /*** command-line options which modify the output list */
   if (N = get_argument (argc, argv, "-treg")) {
@@ -116,4 +132,10 @@
     remove_argument (N, &argc, argv);
     output.table = strcreate (argv[N]);
+    remove_argument (N, &argc, argv);
+  }
+  output.cadctable = (char *) NULL;
+  if (N = get_argument (argc, argv, "-cadctable")) {
+    remove_argument (N, &argc, argv);
+    output.cadctable = strcreate (argv[N]);
     remove_argument (N, &argc, argv);
   }
@@ -162,5 +184,9 @@
 
   if (argc != 1) {
-    fprintf (stderr, "USAGE: imsearch [config ops] [-time start range] [-type type] [-mode mode] [-ccd N] [-filter name]\n");
+    fprintf (stderr, "USAGE: imsearch [config ops] \n");
+    fprintf (stderr, "  [-type type] [-mode mode] [-trange start range] [-ccd N]\n");
+    fprintf (stderr, "  [-etime exptime] [-filter name] [-name string] [-proc t/f]\n");
+    fprintf (stderr, "  [-treg] [-seq] [-pt] [-table] [-cadctable] [-bintable]\n");
+    fprintf (stderr, "  [-del] [-delete] [-newpath (oldpath) (newpath)] [-mef2split] [-split2mef]\n");
     exit (1);
   }
Index: /trunk/Ohana/src/imregister/imreg/match.c
===================================================================
--- /trunk/Ohana/src/imregister/imreg/match.c	(revision 12)
+++ /trunk/Ohana/src/imregister/imreg/match.c	(revision 13)
@@ -31,4 +31,5 @@
     if (criteria.ExptimeSelect && (fabs (image[i].exptime - criteria.Exptime) > 5.0)) continue;
     if (criteria.NameSelect    && (strncasecmp (image[i].filename, criteria.Name, Nname))) continue;
+    if (criteria.ProcSelect    && (criteria.Proc ^ (image[i].bias == 0.0))) continue;
 
     match[N] = i;
Index: /trunk/Ohana/src/imregister/imreg/output.c
===================================================================
--- /trunk/Ohana/src/imregister/imreg/output.c	(revision 12)
+++ /trunk/Ohana/src/imregister/imreg/output.c	(revision 13)
@@ -37,4 +37,8 @@
   if (output.bintable != (char *) NULL) {
     DumpFitsBintable (output.bintable, image, match, Nmatch);
+  } 
+
+  if (output.cadctable != (char *) NULL) {
+    DumpCADCTable (output.cadctable, image, match, Nmatch);
   } 
 
@@ -169,4 +173,59 @@
 }
 
+void DumpCADCTable (char *filename, RegImage *image, int *match, int Nmatch) {
+  
+  int i;
+  char *obsstr, *regstr, *line, dummy[64];
+  char *modestr, *typestr, *ccdstr, *datestr;
+  unsigned long tsecond;
+  Header header, theader;
+  Matrix matrix;
+  FTable table;
+  RegImage *subset;
+
+  bzero (dummy, 64);
+  memset (dummy, ' ', 63);
+
+  /* create primary header */
+  fits_init_header (&header);    
+  header.extend = TRUE;
+  fits_create_header (&header);
+  fits_create_matrix (&header, &matrix);
+  fits_print (&header, "NEXTEND", "%d", 1, 1);
+  
+  /* create table header */
+  fits_create_table_header (&theader, "TABLE", "CADC_RAW_IMAGES");
+      
+  /* add current date/time to header */
+  str_to_time ("now", &tsecond);
+  datestr = sec_to_date (tsecond);
+  fits_modify (&header,  "DATE", "%s", 1, datestr);
+  fits_modify (&theader, "DATE", "%s", 1, datestr);
+
+  /* define table layout */
+  fits_define_table_column (&theader, "A64",   "FILE",       "filename in db",        "",                              1.0, 0.0);
+  fits_define_table_column (&theader, "F7.1",  "SKY",        "background level",     "counts / pixel",                 1.0, 0.0); 
+  fits_define_table_column (&theader, "F6.1",  "BIAS",       "bias level",           "counts / pixel",                 1.0, 0.0); 
+  fits_define_table_column (&theader, "F5.2",  "FWHM",       "image quality",        "pixels",                         1.0, 0.0); 
+
+  /* create table, add data values */
+  fits_create_table (&theader, &table);
+  
+  /* add data to table */
+  for (i = 0; i < Nmatch; i++) {
+    subset = &image[match[i]];
+    line = fits_table_print (&table, subset[0].pathname, subset[0].sky, subset[0].bias, subset[0].fwhm);
+
+    fits_add_rows (&table, line, 1, strlen(line));
+    free (line);
+  }
+
+  fits_write_header  (filename, &header);
+  fits_write_matrix  (filename, &matrix);
+  fits_write_Theader (filename, &theader);
+  fits_write_table   (filename, &table);
+  exit (0);
+}
+
 /* Select, TimeMode are global */
 int PrintSubset (RegImage *image, int *match, int Nmatch) {
Index: /trunk/Ohana/src/imregister/include/imreg.h
===================================================================
--- /trunk/Ohana/src/imregister/include/imreg.h	(revision 12)
+++ /trunk/Ohana/src/imregister/include/imreg.h	(revision 13)
@@ -9,4 +9,5 @@
   int TimeSelect;    unsigned long Time;
   int NameSelect;    char *Name;
+  int ProcSelect;    int Proc;
   int Ntimes;        unsigned long *tstart, *tstop;
   int MatchNumber;
@@ -24,4 +25,5 @@
   char *table;
   char *bintable;
+  char *cadctable;
 } output;
 
