Index: trunk/Ohana/src/libdvo/include/dvo.h
===================================================================
--- trunk/Ohana/src/libdvo/include/dvo.h	(revision 5273)
+++ trunk/Ohana/src/libdvo/include/dvo.h	(revision 5320)
@@ -145,4 +145,5 @@
   int catmode;				/* storage mode (raw, mef, split, mysql) */
   int catformat;			/* storage format (elixir, panstarrs, etc) */
+  int catflags;				/* choices to be loaded */
   int sorted;				/* is measure table average-sorted? */
   
@@ -181,5 +182,5 @@
 int lock_catalog (Catalog *catalog, int lockmode);
 int unlock_catalog (Catalog *catalog);
-int load_catalog (Catalog *catalog, char mode, int VERBOSE);
+int load_catalog (Catalog *catalog, int VERBOSE);
 int save_catalog (Catalog *catalog, char VERBOSE);
 int update_catalog (Catalog *catalog, char VERBOSE);
@@ -292,9 +293,9 @@
 int SecFiltToFtable (FTable *ftable, SecFilt *secfilt, int Nsecfilt, int format);
 
-int load_catalog_raw (Catalog *catalog, char mode, int VERBOSE);
+int load_catalog_raw (Catalog *catalog, int VERBOSE);
 int save_catalog_raw (Catalog *catalog, char VERBOSE);
-int load_catalog_mef (Catalog *catalog, char mode, int VERBOSE);
+int load_catalog_mef (Catalog *catalog, int VERBOSE);
 int save_catalog_mef (Catalog *catalog, char VERBOSE);
-int load_catalog_split (Catalog *catalog, char mode, int VERBOSE);
+int load_catalog_split (Catalog *catalog, int VERBOSE);
 int save_catalog_split (Catalog *catalog, char VERBOSE);
 int update_catalog_split (Catalog *catalog, char VERBOSE);
Index: trunk/Ohana/src/libdvo/src/dvo_catalog.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_catalog.c	(revision 5273)
+++ trunk/Ohana/src/libdvo/src/dvo_catalog.c	(revision 5320)
@@ -35,5 +35,5 @@
 }
 
-int load_catalog (Catalog *catalog, char mode, int VERBOSE) {
+int load_catalog (Catalog *catalog, int VERBOSE) {
   
   int Naxis, split;
@@ -63,13 +63,13 @@
     case DVO_MODE_RAW:
       if (VERBOSE) fprintf (stderr, "reading catalog (mode DVO_MODE_RAW)\n");
-      load_catalog_raw (catalog, mode, VERBOSE);
+      load_catalog_raw (catalog, VERBOSE);
       break;
     case DVO_MODE_MEF:
       if (VERBOSE) fprintf (stderr, "reading catalog (mode DVO_MODE_MEF)\n");
-      load_catalog_mef (catalog, mode, VERBOSE);
+      load_catalog_mef (catalog, VERBOSE);
       break;
     case DVO_MODE_SPLIT:
       if (VERBOSE) fprintf (stderr, "reading catalog (mode DVO_MODE_SPLIT)\n");
-      load_catalog_split (catalog, mode, VERBOSE);
+      load_catalog_split (catalog, VERBOSE);
       break;
     default:
Index: trunk/Ohana/src/libdvo/src/dvo_catalog_mef.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_catalog_mef.c	(revision 5273)
+++ trunk/Ohana/src/libdvo/src/dvo_catalog_mef.c	(revision 5320)
@@ -1,5 +1,5 @@
 # include <dvo.h>
 
-int load_catalog_mef (Catalog *catalog, char mode, int VERBOSE) {
+int load_catalog_mef (Catalog *catalog, int VERBOSE) {
   
   int Nitems, Nbytes, Nexpect, Naverage, Nmeasure, Nmissing, Nsecfilt;
@@ -39,5 +39,5 @@
   }
   /* read Average table data (or skip) */
-  if (mode & LOAD_AVES) {
+  if (catalog[0].catflags & LOAD_AVES) {
     if (!fits_fread_ftable_data (f, &ftable)) {
       if (VERBOSE) fprintf (stderr, "can't read table average data");
@@ -61,5 +61,5 @@
   }
   /* read Measure table data */
-  if (mode & LOAD_MEAS) {
+  if (catalog[0].catflags & LOAD_MEAS) {
     if (!fits_fread_ftable_data (f, &ftable)) {
       if (VERBOSE) fprintf (stderr, "can't read table measure data");
@@ -81,5 +81,5 @@
   }
   /* read Missing table data */
-  if (mode & LOAD_MISS) {
+  if (catalog[0].catflags & LOAD_MISS) {
     if (!fits_fread_ftable_data (f, &ftable)) {
       if (VERBOSE) fprintf (stderr, "can't read table missing data");
@@ -105,5 +105,5 @@
   }
   /* read secfilt table data */
-  if (mode & LOAD_SECF) {
+  if (catalog[0].catflags & LOAD_SECF) {
     if (!fits_fread_ftable_data (f, &ftable)) {
       if (VERBOSE) fprintf (stderr, "can't read table secfilt data");
Index: trunk/Ohana/src/libdvo/src/dvo_catalog_raw.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_catalog_raw.c	(revision 5273)
+++ trunk/Ohana/src/libdvo/src/dvo_catalog_raw.c	(revision 5320)
@@ -3,5 +3,5 @@
 /* read data from raw-style catalog file; set data format values based on file */
 
-int load_catalog_raw (Catalog *catalog, char mode, int VERBOSE) {
+int load_catalog_raw (Catalog *catalog, int VERBOSE) {
   
   int Nitems, nitems;
@@ -113,5 +113,5 @@
 
   /* read and convert the averages (use a macro to clean this up?) */
-  if (mode & LOAD_AVES) {
+  if (catalog[0].catflags & LOAD_AVES) {
     catalog[0].average = ReadRawAverage (catalog[0].f, catalog[0].Naverage, catalog[0].catformat);
   } else {
@@ -122,5 +122,5 @@
   
   /* read and convert the measures (use a macro to clean this up?) */
-  if (mode & LOAD_MEAS) {
+  if (catalog[0].catflags & LOAD_MEAS) {
     catalog[0].measure = ReadRawMeasure (catalog[0].f, catalog[0].Nmeasure, catalog[0].catformat);
   } else {
@@ -131,5 +131,5 @@
 
   /* read and convert missing */
-  if (mode & LOAD_MISS) {
+  if (catalog[0].catflags & LOAD_MISS) {
     ALLOCATE (catalog[0].missing, Missing, MAX (catalog[0].Nmissing, 1));
     Nitems = catalog[0].Nmissing;
@@ -147,5 +147,5 @@
   
   /* read and convert secfilt */
-  if (mode & LOAD_SECF) {
+  if (catalog[0].catflags & LOAD_SECF) {
     Nitems = catalog[0].Naverage * catalog[0].Nsecfilt;
     catalog[0].secfilt = ReadRawSecFilt (catalog[0].f, Nitems, catalog[0].catformat);
@@ -160,5 +160,5 @@
 
   /* check data integrity */
-  if (mode & LOAD_AVES) {
+  if (catalog[0].catflags & LOAD_AVES) {
     for (i = Nmeas = Nmiss = 0; i < catalog[0].Naverage; i++) {
       Nmeas += catalog[0].average[i].Nm; 
Index: trunk/Ohana/src/libdvo/src/dvo_catalog_split.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_catalog_split.c	(revision 5273)
+++ trunk/Ohana/src/libdvo/src/dvo_catalog_split.c	(revision 5320)
@@ -1,5 +1,5 @@
 # include <dvo.h>
 
-int load_catalog_split (Catalog *catalog, char mode, int VERBOSE) {
+int load_catalog_split (Catalog *catalog, int VERBOSE) {
 
   int Nitems, Nexpect, Naverage, Nmeasure, Nmissing, Nsecfilt;
@@ -36,5 +36,5 @@
   /*** Average Table ***/
 
-  if (mode & LOAD_AVES) {
+  if (catalog[0].catflags & LOAD_AVES) {
     /* move pointer past header -- must be already read (load_catalog) */
     fseek (catalog[0].f, catalog[0].header.size, SEEK_SET);
@@ -66,5 +66,5 @@
 
   /* (Full Load) */
-  if (mode & LOAD_MEAS) {
+  if (catalog[0].catflags & LOAD_MEAS) {
     ALLOCATE (measure, Catalog, 1);
 
@@ -111,5 +111,5 @@
 
   /* (Meta Load) */
-  if (mode & LOAD_MEAS_META) {
+  if (catalog[0].catflags & LOAD_MEAS_META) {
     ALLOCATE (measure, Catalog, 1);
 
@@ -143,5 +143,5 @@
 
   missing = NULL;
-  if (mode & LOAD_MISS) {
+  if (catalog[0].catflags & LOAD_MISS) {
     ALLOCATE (missing, Catalog, 1);
 
@@ -190,5 +190,5 @@
 
   secfilt = NULL;
-  if (mode & LOAD_SECF) {
+  if (catalog[0].catflags & LOAD_SECF) {
     ALLOCATE (secfilt, Catalog, 1);
   
