Index: /tags/ipp-pv3-20140717/ippTools/src/difftool.c
===================================================================
--- /tags/ipp-pv3-20140717/ippTools/src/difftool.c	(revision 37947)
+++ /tags/ipp-pv3-20140717/ippTools/src/difftool.c	(revision 37948)
@@ -42,4 +42,5 @@
 static bool definepoprunMode(pxConfig *config);
 static bool definewarpstackMode(pxConfig *config);
+//static bool definewarpstackOldMethodMode(pxConfig *config);
 static bool definewarpwarpMode(pxConfig *config);
 static bool definestackstackMode(pxConfig *config);
@@ -95,4 +96,5 @@
         MODECASE(DIFFTOOL_MODE_DEFINEPOPRUN,          definepoprunMode);
         MODECASE(DIFFTOOL_MODE_DEFINEWARPSTACK,       definewarpstackMode);
+	//	MODECASE(DIFFTOOL_MODE_DEFINEWARPSTACKOLDMETHOD,       definewarpstackOldMethodMode);
         MODECASE(DIFFTOOL_MODE_DEFINEWARPWARP,        definewarpwarpMode);
         MODECASE(DIFFTOOL_MODE_DEFINESTACKSTACK,      definestackstackMode);
@@ -1244,4 +1246,11 @@
   PXOPT_COPY_STR(config->args, where, "-stack_data_group", "stackRun.data_group", "==");
 
+  // Add position dependence here.
+  if (!pxspaceBoxAddWhere(config,where)) {
+    psError(psErrorCodeLast(), false, "pxSpaceBoxAddWhere failed");
+    return false;
+  }
+  
+  PXOPT_LOOKUP_BOOL(available, config->args, "-available", false);
   PXOPT_LOOKUP_BOOL(bothways, config->args, "-bothways", false);
   
@@ -1327,4 +1336,5 @@
     return true;
   }
+  
   if (pretend) {
     // negative simple so the default is true
@@ -1518,5 +1528,5 @@
 
 #if (0)
-static bool definewarpstackMode(pxConfig *config)
+static bool definewarpstackOldMethodMode(pxConfig *config)
 {
     PS_ASSERT_PTR_NON_NULL(config, false);
@@ -1530,4 +1540,5 @@
     PXOPT_COPY_STR(config->args, expWhere, "-filter", "filter", "==");
     PXOPT_COPY_STR(config->args, expWhere, "-comment", "comment", "LIKE");
+    
     PXOPT_COPY_S64(config->args, warp1Where, "-warp_id", "warpRun.warp_id", "==");
     PXOPT_COPY_STR(config->args, warp1Where, "-warp_label", "warpRun.label", "==");
@@ -1798,4 +1809,6 @@
         }
 
+	// CZW force available off.  If we're using this very-expensive mode, we need to get the one thing it does correctly.
+	available = false;;
         if (!available && (num != skycell_count)) {
             psTrace("difftool", PS_LOG_INFO, "%" PRId64 " skyfiles with stack found for warp_id %" PRId64
Index: /tags/ipp-pv3-20140717/ippTools/src/difftool.h
===================================================================
--- /tags/ipp-pv3-20140717/ippTools/src/difftool.h	(revision 37947)
+++ /tags/ipp-pv3-20140717/ippTools/src/difftool.h	(revision 37948)
@@ -54,4 +54,5 @@
     DIFFTOOL_MODE_LISTSSRUN,
     DIFFTOOL_MODE_SETSKYFILETOUPDATE,
+    //    DIFFTOOL_MODE_DEFINEWARPSTACKOLDMETHOD,
 } difftoolMode;
 
Index: /tags/ipp-pv3-20140717/ippTools/src/difftoolConfig.c
===================================================================
--- /tags/ipp-pv3-20140717/ippTools/src/difftoolConfig.c	(revision 37947)
+++ /tags/ipp-pv3-20140717/ippTools/src/difftoolConfig.c	(revision 37948)
@@ -272,4 +272,37 @@
     psMetadataAddBool(definewarpstackArgs, PS_LIST_TAIL, "-pretend", 0, "list results but to not queue", false);
 
+    pxspaceBoxAddArguments(definewarpstackArgs);
+
+#if (0)    
+    // -definewarpstackOldMethod
+    psMetadata *definewarpstackOldMethodArgs = psMetadataAlloc();
+    psMetadataAddS64(definewarpstackOldMethodArgs, PS_LIST_TAIL, "-warp_id", 0, "search by warp ID", 0);
+    psMetadataAddS64(definewarpstackOldMethodArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exposure ID", 0);
+    psMetadataAddStr(definewarpstackOldMethodArgs, PS_LIST_TAIL, "-skycell_id", 0, "search by skycell ID", NULL);
+    psMetadataAddStr(definewarpstackOldMethodArgs, PS_LIST_TAIL, "-tess_id", 0, "search by tess ID", NULL);
+    psMetadataAddBool(definewarpstackOldMethodArgs, PS_LIST_TAIL, "-bothways",  0,          "do the subtraction both ways?", false);
+    psMetadataAddStr(definewarpstackOldMethodArgs, PS_LIST_TAIL, "-filter", 0, "search by filter", NULL);
+    psMetadataAddStr(definewarpstackOldMethodArgs, PS_LIST_TAIL, "-comment", 0, "search by comment (LIKE)", NULL);
+    psMetadataAddStr(definewarpstackOldMethodArgs, PS_LIST_TAIL, "-stack_label", 0, "search by stack label", NULL);
+    psMetadataAddStr(definewarpstackOldMethodArgs, PS_LIST_TAIL, "-stack_data_group", 0, "search by stack data_group", NULL);
+    psMetadataAddStr(definewarpstackOldMethodArgs, PS_LIST_TAIL, "-warp_label", 0, "search by warp label", NULL);
+    psMetadataAddStr(definewarpstackOldMethodArgs, PS_LIST_TAIL, "-data_group", 0, "search by data_group", NULL);
+    psMetadataAddF32(definewarpstackOldMethodArgs, PS_LIST_TAIL, "-good_frac", 0, "minimum good fraction of skycell", NAN);
+    psMetadataAddStr(definewarpstackOldMethodArgs, PS_LIST_TAIL, "-set_workdir", 0, "define workdir (required)", NULL);
+    psMetadataAddStr(definewarpstackOldMethodArgs, PS_LIST_TAIL, "-set_label",  0, "define label", NULL);
+    psMetadataAddStr(definewarpstackOldMethodArgs, PS_LIST_TAIL, "-set_reduction",  0, "define reduction class", NULL);
+    psMetadataAddTime(definewarpstackOldMethodArgs, PS_LIST_TAIL, "-set_registered", 0, "time detrend run was registered", now);
+    psMetadataAddStr(definewarpstackOldMethodArgs, PS_LIST_TAIL, "-set_data_group",  0,     "define data group", NULL);
+    psMetadataAddStr(definewarpstackOldMethodArgs, PS_LIST_TAIL, "-set_dist_group",  0,     "define dist group", NULL);
+    psMetadataAddStr(definewarpstackOldMethodArgs, PS_LIST_TAIL, "-set_note",  0,           "define note", NULL);
+    psMetadataAddBool(definewarpstackOldMethodArgs, PS_LIST_TAIL, "-new-templates", 0, "also search for diffs with new template", false);
+    psMetadataAddBool(definewarpstackOldMethodArgs, PS_LIST_TAIL, "-rerun", 0, "define new run even if one exists", false);
+    psMetadataAddBool(definewarpstackOldMethodArgs, PS_LIST_TAIL, "-available", 0, "define new run even if no stacks available for some skycells", false);
+    psMetadataAddBool(definewarpstackOldMethodArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false);
+    psMetadataAddBool(definewarpstackOldMethodArgs, PS_LIST_TAIL, "-pretend", 0, "list results but to not queue", false);
+
+    pxspaceBoxAddArguments(definewarpstackOldMethodArgs);
+#endif
+    
     // -definewarpwarp
     psMetadata *definewarpwarpArgs = psMetadataAlloc();
@@ -478,4 +511,5 @@
     PXOPT_ADD_MODE("-definepoprun",     "", DIFFTOOL_MODE_DEFINEPOPRUN,      definepoprunArgs);
     PXOPT_ADD_MODE("-definewarpstack",  "", DIFFTOOL_MODE_DEFINEWARPSTACK,   definewarpstackArgs);
+    //    PXOPT_ADD_MODE("-definewarpstackOldMethod",  "", DIFFTOOL_MODE_DEFINEWARPSTACKOLDMETHOD,   definewarpstackOldMethodArgs);
     PXOPT_ADD_MODE("-definewarpwarp",   "", DIFFTOOL_MODE_DEFINEWARPWARP,    definewarpwarpArgs);
     PXOPT_ADD_MODE("-definestackstack", "", DIFFTOOL_MODE_DEFINESTACKSTACK,  definestackstackArgs);
Index: /tags/ipp-pv3-20140717/ippTools/src/pxspace.c
===================================================================
--- /tags/ipp-pv3-20140717/ippTools/src/pxspace.c	(revision 37947)
+++ /tags/ipp-pv3-20140717/ippTools/src/pxspace.c	(revision 37948)
@@ -57,4 +57,40 @@
 }
 
+bool pxspaceBoxAddWhere(pxConfig *config, psMetadata *where)
+{
+  PXOPT_LOOKUP_F64(ra_min, config->args, "-ra_min", false, false);
+  PXOPT_LOOKUP_F64(ra_max, config->args, "-ra_max", false, false);
+  PXOPT_LOOKUP_F64(dec_min, config->args, "-dec_min", false, false);
+  PXOPT_LOOKUP_F64(dec_max, config->args, "-dec_max", false, false);
+
+  if (ra_min) {
+    ra_min *= PS_RAD_DEG;
+    psMetadataAddF32(where,PS_LIST_TAIL,"rawExp.ra",PS_META_DUPLICATE_OK, ">=", ra_min);
+  }
+  if (ra_max) {
+    ra_max *= PS_RAD_DEG;
+    psMetadataAddF32(where,PS_LIST_TAIL,"rawExp.ra",PS_META_DUPLICATE_OK, "<=", ra_max);
+  }
+  if (dec_min) {
+    dec_min *= PS_RAD_DEG;
+    psMetadataAddF32(where,PS_LIST_TAIL,"rawExp.decl",PS_META_DUPLICATE_OK, ">=", dec_min);
+  }
+  if (dec_max) {
+    dec_max *= PS_RAD_DEG;
+    psMetadataAddF32(where,PS_LIST_TAIL,"rawExp.decl",PS_META_DUPLICATE_OK, "<=", dec_max);
+  }
+    
+  return true;
+}
+
+void pxspaceBoxAddArguments(psMetadata *md)
+{
+    psMetadataAddF64(md,  PS_LIST_TAIL, "-ra_min",            0, "search by right ascension (degrees)", NAN);
+    psMetadataAddF64(md,  PS_LIST_TAIL, "-dec_min",           0, "search by declination (degrees)", NAN);
+    psMetadataAddF64(md,  PS_LIST_TAIL, "-ra_max",            0, "search by right ascension (degrees)", NAN);
+    psMetadataAddF64(md,  PS_LIST_TAIL, "-dec_max",           0, "search by declination (degrees)", NAN);
+}
+  
+
 void pxskycellAddArguments(psMetadata *md)
 {
Index: /tags/ipp-pv3-20140717/ippTools/src/pxspace.h
===================================================================
--- /tags/ipp-pv3-20140717/ippTools/src/pxspace.h	(revision 37947)
+++ /tags/ipp-pv3-20140717/ippTools/src/pxspace.h	(revision 37948)
@@ -24,4 +24,7 @@
 extern void pxspaceAddArguments(psMetadata *md);
 
+extern bool pxspaceBoxAddWhere(pxConfig *config, psMetadata *where);
+extern void pxspaceBoxAddArguments(psMetadata *md);
+
 extern bool pxskycellAddWhere(pxConfig *config, psMetadata *where);
 extern void pxskycellAddArguments(psMetadata *md);
