Index: /branches/eam_branches/ipp-20150625/Ohana/src/relphot/include/relphot.h
===================================================================
--- /branches/eam_branches/ipp-20150625/Ohana/src/relphot/include/relphot.h	(revision 38638)
+++ /branches/eam_branches/ipp-20150625/Ohana/src/relphot/include/relphot.h	(revision 38639)
@@ -14,4 +14,10 @@
 // # define IDX_T off_t
 # define IDX_T int 
+
+typedef enum {
+  STAGE_CHIP  = 0x01,
+  STAGE_WARP  = 0x02,
+  STAGE_STACK = 0x04,
+} RelphotStages;
 
 typedef enum {
@@ -327,4 +333,6 @@
 int USE_BASIC_CHECK;
 int USE_FULL_OVERLAP;
+
+RelphotStages STAGES;
 
 # ifdef GRID_V1
Index: /branches/eam_branches/ipp-20150625/Ohana/src/relphot/src/args.c
===================================================================
--- /branches/eam_branches/ipp-20150625/Ohana/src/relphot/src/args.c	(revision 38638)
+++ /branches/eam_branches/ipp-20150625/Ohana/src/relphot/src/args.c	(revision 38639)
@@ -344,4 +344,22 @@
   }
 
+  STAGES = STAGE_CHIP | STAGE_WARP | STAGE_STACK;
+  if ((N = get_argument (argc, argv, "-skip-chip"))) {
+    remove_argument (N, &argc, argv);
+    STAGES &= ~STAGE_CHIP;
+  }
+  if ((N = get_argument (argc, argv, "-skip-warp"))) {
+    remove_argument (N, &argc, argv);
+    STAGES &= ~STAGE_WARP;
+  }
+  if ((N = get_argument (argc, argv, "-skip-stack"))) {
+    remove_argument (N, &argc, argv);
+    STAGES &= ~STAGE_STACK;
+  }
+  if (!STAGES) {
+    fprintf (stderr, "ERROR: no valid stages selected\n");
+    exit (3);
+  }
+
   REGION_FILE = NULL;
   if ((N = get_argument (argc, argv, "-region-hosts"))) {
@@ -664,4 +682,22 @@
   }
 
+  STAGES = STAGE_CHIP | STAGE_WARP | STAGE_STACK;
+  if ((N = get_argument (argc, argv, "-skip-chip"))) {
+    remove_argument (N, &argc, argv);
+    STAGES &= ~STAGE_CHIP;
+  }
+  if ((N = get_argument (argc, argv, "-skip-warp"))) {
+    remove_argument (N, &argc, argv);
+    STAGES &= ~STAGE_WARP;
+  }
+  if ((N = get_argument (argc, argv, "-skip-stack"))) {
+    remove_argument (N, &argc, argv);
+    STAGES &= ~STAGE_STACK;
+  }
+  if (!STAGES) {
+    fprintf (stderr, "ERROR: no valid stages selected\n");
+    exit (3);
+  }
+
   if ((MODE == MODE_SYNTH_PHOT)  && (argc == 1)) return TRUE;
   if ((MODE == MODE_UPDATE_OBJECTS)  && (argc == 1)) return TRUE;
Index: /branches/eam_branches/ipp-20150625/Ohana/src/relphot/src/reload_catalogs.c
===================================================================
--- /branches/eam_branches/ipp-20150625/Ohana/src/relphot/src/reload_catalogs.c	(revision 38638)
+++ /branches/eam_branches/ipp-20150625/Ohana/src/relphot/src/reload_catalogs.c	(revision 38639)
@@ -246,4 +246,8 @@
     if (SYNTH_ZERO_POINTS) { strextend (&command, "-synthphot-zpts %s", SYNTH_ZERO_POINTS); }
 
+    if (!(STAGES & STAGE_CHIP))  { strextend (&command, "-skip-chip"); }
+    if (!(STAGES & STAGE_WARP))  { strextend (&command, "-skip-warp"); }
+    if (!(STAGES & STAGE_STACK)) { strextend (&command, "-skip-stack"); }
+
     // deprecate
     // if (SET_MREL_VERSION != 1) { snprintf (tmpline, 1024, "%s -set-mrel-version %d", SET_MREL_VERSION); } // XXXX deprecate this...
Index: /branches/eam_branches/ipp-20150625/Ohana/src/relphot/src/relphot_objects.c
===================================================================
--- /branches/eam_branches/ipp-20150625/Ohana/src/relphot/src/relphot_objects.c	(revision 38638)
+++ /branches/eam_branches/ipp-20150625/Ohana/src/relphot/src/relphot_objects.c	(revision 38639)
@@ -157,4 +157,8 @@
     if (SYNTH_ZERO_POINTS) { strextend (&command, "-synthphot-zpts %s", SYNTH_ZERO_POINTS); }
 
+    if (!(STAGES & STAGE_CHIP))  { strextend (&command, "-skip-chip"); }
+    if (!(STAGES & STAGE_WARP))  { strextend (&command, "-skip-warp"); }
+    if (!(STAGES & STAGE_STACK)) { strextend (&command, "-skip-stack"); }
+
     // if (SET_MREL_VERSION != 1) { strextend (&command, "-set-mrel-version %d", SET_MREL_VERSION); } 
 
Index: /branches/eam_branches/ipp-20150625/Ohana/src/relphot/src/setMrelCatalog.c
===================================================================
--- /branches/eam_branches/ipp-20150625/Ohana/src/relphot/src/setMrelCatalog.c	(revision 38638)
+++ /branches/eam_branches/ipp-20150625/Ohana/src/relphot/src/setMrelCatalog.c	(revision 38639)
@@ -49,13 +49,15 @@
   for (j = 0; j < catalog[Nc].Naverage; j++) {
 
-    setMrelAverageExposure (&catalog[Nc], Nc, j, Nsecfilt, isSetMrelFinal, flatcorr, results);
+    if (STAGES & STAGE_CHIP) {
+      setMrelAverageExposure (&catalog[Nc], Nc, j, Nsecfilt, isSetMrelFinal, flatcorr, results);
+    }
 
     // only apply Stack operation on setMrelFinal in first pass 
-    if (isSetMrelFinal && !IS_DIFF_DB) {
+    if (isSetMrelFinal && (STAGES & STAGE_STACK) && !IS_DIFF_DB) {
       setMrelAverageStack (&catalog[Nc], Nc, j, Nsecfilt, flatcorr);
     }
 
     // only measure force-warp mean values if issetMrelFinal (make it optional?)
-    if (isSetMrelFinal) {
+    if (isSetMrelFinal && (STAGES & STAGE_WARP)) {
       setMrelAverageForcedWarp (&catalog[Nc], Nc, j, Nsecfilt, flatcorr, results);
     }
