Index: /branches/eam_branches/ohana.20150429/src/libdvo/include/dvo.h
===================================================================
--- /branches/eam_branches/ohana.20150429/src/libdvo/include/dvo.h	(revision 38401)
+++ /branches/eam_branches/ohana.20150429/src/libdvo/include/dvo.h	(revision 38402)
@@ -13,5 +13,5 @@
 
 /* DVO table modes */
-typedef enum {DVO_COMPRESS_NONE = 0, DVO_COMPRESS_GZIP_1} DVOCatCompress; // 
+typedef enum {DVO_COMPRESS_NONE = 0, DVO_COMPRESS_AUTO, DVO_COMPRESS_GZIP_1, DVO_COMPRESS_GZIP_2, DVO_COMPRESS_RICE_1} DVOCatCompress; // 
 
 /* DVO table formats */
Index: /branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_catalog.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_catalog.c	(revision 38401)
+++ /branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_catalog.c	(revision 38402)
@@ -75,5 +75,8 @@
   /* set the specified CATMODE */
   if (!strcasecmp (catcompress, "NONE"))   return (DVO_COMPRESS_NONE);
+  if (!strcasecmp (catcompress, "AUTO"))   return (DVO_COMPRESS_AUTO);
   if (!strcasecmp (catcompress, "GZIP_1")) return (DVO_COMPRESS_GZIP_1);
+  if (!strcasecmp (catcompress, "GZIP_2")) return (DVO_COMPRESS_GZIP_2);
+  if (!strcasecmp (catcompress, "RICE_1")) return (DVO_COMPRESS_RICE_1);
   return (DVO_COMPRESS_NONE);
 }
@@ -87,6 +90,15 @@
       strcpy (compress_string, "NONE");
       break;
-      case DVO_COMPRESS_GZIP_1:
+    case DVO_COMPRESS_AUTO:
+      strcpy (compress_string, "AUTO");
+      break;
+    case DVO_COMPRESS_GZIP_1:
       strcpy (compress_string, "GZIP_1");
+      break;
+    case DVO_COMPRESS_GZIP_2:
+      strcpy (compress_string, "GZIP_2");
+      break;
+    case DVO_COMPRESS_RICE_1:
+      strcpy (compress_string, "RICE_1");
       break;
     default:
Index: /branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_catalog_split.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_catalog_split.c	(revision 38401)
+++ /branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_catalog_split.c	(revision 38402)
@@ -122,4 +122,8 @@
     if (!gfits_compress_table (ftable, &cmptable, 10, compressMode)) {
       fprintf (stderr, "compression failure\n");
+      return (FALSE);
+    }
+    if (!gfits_modify (cmptable.header, "DVO_CMP", "%s", 1, compressMode)) {
+      fprintf (stderr, "can't save compression mode\n");
       return (FALSE);
     }
@@ -251,5 +255,10 @@
       return FALSE;
     }
-    catalog->catcompress = DVO_COMPRESS_GZIP_1; // if any table is compressed, set all to a compress state?
+
+    char compressMode[80];
+    if (!gfits_scan (ftable->header, "DVO_CMP", "%s", 1, compressMode)) {
+      strcpy (compressMode, "AUTO");
+    }
+    catalog->catcompress = dvo_catalog_catcompress (compressMode); // if any table is compressed, set all to a compress state?
 
     // free the buffers 
