Index: /trunk/ppSub/configure.ac
===================================================================
--- /trunk/ppSub/configure.ac	(revision 13461)
+++ /trunk/ppSub/configure.ac	(revision 13462)
@@ -21,10 +21,9 @@
 PKG_CHECK_MODULES([PSMODULE], [psmodules >= 1.0.0])
 PKG_CHECK_MODULES([PPSTATS], [ppStats >= 1.0.0]) 
+PKG_CHECK_MODULES([PSPHOT], [psphot >= 0.9.0]) 
 
 dnl Set CFLAGS for build
 IPP_STDOPTS
 CFLAGS="${CFLAGS} -Wall -Werror -std=c99"
-echo "PPSUB_CFLAGS: $PPSUB_CFLAGS"
-echo "PPSUB_LIBS: $PPSUB_LIBS"
 
 AC_SUBST([PPSUB_CFLAGS])
Index: /trunk/ppSub/src/Makefile.am
===================================================================
--- /trunk/ppSub/src/Makefile.am	(revision 13461)
+++ /trunk/ppSub/src/Makefile.am	(revision 13462)
@@ -1,5 +1,5 @@
 bin_PROGRAMS = ppSub
-ppSub_CPPFLAGS = $(PSLIB_CFLAGS) $(PSMODULE_CFLAGS) $(PPSTATS_CFLAGS) $(PPSUB_CFLAGS)
-ppSub_LDFLAGS = $(PSLIB_LIBS) $(PSMODULE_LIBS) $(PPSTATS_LIBS) $(PPSUB_LIBS)
+ppSub_CPPFLAGS = $(PSLIB_CFLAGS) $(PSMODULE_CFLAGS) $(PPSTATS_CFLAGS) $(PSPHOT_CFLAGS) $(PPSUB_CFLAGS)
+ppSub_LDFLAGS = $(PSLIB_LIBS) $(PSMODULE_LIBS) $(PPSTATS_LIBS) $(PSPHOT_LIBS) $(PPSUB_LIBS)
 
 ppSub_SOURCES =			\
Index: /trunk/ppSub/src/ppSubArguments.c
===================================================================
--- /trunk/ppSub/src/ppSubArguments.c	(revision 13461)
+++ /trunk/ppSub/src/ppSubArguments.c	(revision 13462)
@@ -17,5 +17,7 @@
 {
     fprintf(stderr, "\nPan-STARRS PSF-matched image subtraction\n\n");
-    fprintf(stderr, "Usage: %s INPUT.fits REFERENCE.fits OUTPUT_ROOT\n", program);
+    fprintf(stderr, "Usage: %s INPUT.fits REFERENCE.fits OUTPUT_ROOT \n"
+            "\t[-psf REFERENCE.psf.fits|-psflist REFERENCE.list]\n",
+            program);
     fprintf(stderr, "\n");
     psArgumentHelp(arguments);
@@ -139,4 +141,6 @@
     assert(config);
 
+    pmConfigFileSetsMD(config->arguments, &argc, argv, "PSPHOT.PSF", "-psf", "-psflist");
+
     psMetadata *arguments = psMetadataAlloc(); // Command-line arguments
     psMetadataAddStr(arguments, PS_LIST_TAIL, "-inmask", 0, "Input mask image", NULL);
Index: /trunk/ppSub/src/ppSubCamera.c
===================================================================
--- /trunk/ppSub/src/ppSubCamera.c	(revision 13461)
+++ /trunk/ppSub/src/ppSubCamera.c	(revision 13462)
@@ -6,4 +6,5 @@
 #include <pslib.h>
 #include <psmodules.h>
+#include <psphot.h>
 
 #include "ppSub.h"
@@ -97,4 +98,20 @@
     }
 
+    // psPhot input
+    pmFPAfile *psphot = pmFPAfileDefineFromFPA(config, output->fpa, 1, 1, "PSPHOT.INPUT");
+    if (!psphot) {
+        psError(PS_ERR_IO, false, "Failed to build FPA from PSPHOT.INPUT");
+        return false;
+    }
+    if (input->type != PM_FPA_FILE_IMAGE) {
+        psError(PS_ERR_IO, true, "PSPHOT.INPUT is not of type IMAGE");
+        return false;
+    }
+
+    if (!psphotDefineFiles(config, psphot)) {
+        psError(PS_ERR_UNKNOWN, false, "Unable to set up psphot files.");
+        return false;
+    }
+
     return true;
 }
Index: /trunk/ppSub/src/ppSubReadout.c
===================================================================
--- /trunk/ppSub/src/ppSubReadout.c	(revision 13461)
+++ /trunk/ppSub/src/ppSubReadout.c	(revision 13462)
@@ -6,4 +6,5 @@
 #include <pslib.h>
 #include <psmodules.h>
+#include <psphot.h>
 
 #include "ppSub.h"
@@ -174,14 +175,21 @@
 #endif
 
+    psFree(kernels);
+    psFree(stamps);
+    psFree(solution);
 
-        psFree(kernels);
-        psFree(stamps);
-        psFree(solution);
-        return true;
+    pmFPAfile *photFile = psMetadataLookupPtr(NULL, config->files, "PSPHOT.INPUT");
+    pmFPACopy(photFile->fpa, inRO->parent->parent->parent);
 
-    ERROR:
-        psFree(kernels);
-        psFree(stamps);
-        psFree(solution);
-        return false;
+    psphotReadout(config, view);
+
+    pmFPAfileActivate(config->files, false, "PSPHOT.INPUT");
+
+    return true;
+
+ERROR:
+    psFree(kernels);
+    psFree(stamps);
+    psFree(solution);
+    return false;
 }
