Index: branches/pap/ppSub/src/ppSubFiles.c
===================================================================
--- branches/pap/ppSub/src/ppSubFiles.c	(revision 23711)
+++ branches/pap/ppSub/src/ppSubFiles.c	(revision 23719)
@@ -12,7 +12,7 @@
 
 // Input files
-static const char *inputFiles[] = { "PPSUB.OUTPUT", "PPSUB.OUTPUT.MASK", "PPSUB.OUTPUT.VARIANCE",
-                                    "PPSUB.OUTPUT.KERNELS", "PPSUB.OUTPUT.JPEG1", "PPSUB.OUTPUT.JPEG2",
-                                    NULL };
+static const char *inputFiles[] = { "PPSUB.INPUT", "PPSUB.INPUT.MASK", "PPSUB.INPUT.VARIANCE",
+                                    "PPSUB.INPUT.SOURCES", "PPSUB.REF", "PPSUB.REF.MASK",
+                                    "PPSUB.REF.VARIANCE", "PPSUB.REF.SOURCES", NULL };
 
 // Convolved files
@@ -23,5 +23,5 @@
 // Subtraction files
 static const char *subFiles[] = { "PPSUB.OUTPUT", "PPSUB.OUTPUT.MASK", "PPSUB.OUTPUT.VARIANCE",
-                                  "PPSUB.OUTPUT.KERNELS", "PPSUB.OUTPUT.JPEG1", "PPSUB.OUTPUT.JPEG2",
+                                  "PPSUB.OUTPUT.JPEG1", "PPSUB.OUTPUT.JPEG2",
                                   NULL };
 
@@ -30,10 +30,11 @@
 
 // Inverse subtraction files
-static const char *invFiles[] = { "PPSUB.OUTINV", "PPSUB.OUTINV.MASK", "PPSUB.OUTINV.VARIANCE",
-                                  "PPSUB.OUTINV.KERNELS", "PPSUB.OUTINV.JPEG1", "PPSUB.OUTINV.JPEG2",
-                                  NULL };
+static const char *invFiles[] = { "PPSUB.INVERSE", "PPSUB.INVERSE.MASK", "PPSUB.INVERSE.VARIANCE", NULL };
 
 // Inverse subtraction photometry
-static const char *subPhotFiles[] = { "PPSUB.OUTINV.SOURCES", NULL };
+static const char *invPhotFiles[] = { "PPSUB.INVERSE.SOURCES", NULL };
+
+// PSF files
+static const char *psfFiles[] = { "PSPHOT.PSF.SAVE", NULL };
 
 // Calculation (may be either input or output) files
@@ -47,6 +48,6 @@
     )
 {
-    for (int i = 0; imageFiles[i]; i++) {
-        pmFPAfileActivate(config->files, files[i], state);
+    for (int i = 0; files[i]; i++) {
+        pmFPAfileActivate(config->files, state, files[i]);
     }
     return;
@@ -62,8 +63,8 @@
     )
 {
-    for (int i = 0; imageFiles[i]; i++) {
+    for (int i = 0; files[i]; i++) {
         pmFPAfile *file = pmFPAfileSelectSingle(config->files, files[i], 0);
         if (file && file->save == save) {
-            pmFPAfileActivate(config->files, files[i], state);
+            pmFPAfileActivate(config->files, state, files[i]);
         }
     }
@@ -76,5 +77,5 @@
 
     if (files & PPSUB_FILES_INPUT) {
-        filesActivate(inputFiles, state);
+        filesActivate(config, inputFiles, state);
         filesActivateSave(config, calcFiles, false, state);
     }
@@ -95,6 +96,9 @@
         filesActivate(config, invPhotFiles, state);
     }
+    if (files & PPSUB_FILES_PSF) {
+        filesActivate(config, psfFiles, state);
+    }
     if (files & PPSUB_FILES_PHOT) {
-        psphotFilesActivate(config, false);
+        psphotFilesActivate(config, state);
     }
 
@@ -110,7 +114,10 @@
 }
 
-bool ppSubFilesIterateDown(pmConfig *config)
+bool ppSubFilesIterateDown(pmConfig *config, ppSubFiles files)
 {
     psAssert(config, "Require configuration");
+
+    ppSubFilesActivate(config, PPSUB_FILES_ALL, false);
+    ppSubFilesActivate(config, files, true);
 
     pmFPAview *view = pmFPAviewAlloc(0);// View to FPA top
@@ -139,10 +146,15 @@
     }
 
+    ppSubFilesActivate(config, PPSUB_FILES_ALL, false);
+
     return true;
 }
 
-bool ppSubFilesIterateUp(pmConfig *config)
+bool ppSubFilesIterateUp(pmConfig *config, ppSubFiles files)
 {
     psAssert(config, "Require configuration");
+
+    ppSubFilesActivate(config, PPSUB_FILES_ALL, false);
+    ppSubFilesActivate(config, files, true);
 
     pmFPAview *view = ppSubViewReadout(); // View to readout
@@ -171,4 +183,6 @@
     }
 
+    ppSubFilesActivate(config, PPSUB_FILES_ALL, false);
+
     return true;
 }
