Index: trunk/psModules/src/camera/pmFPAfileIO.c
===================================================================
--- trunk/psModules/src/camera/pmFPAfileIO.c	(revision 18601)
+++ trunk/psModules/src/camera/pmFPAfileIO.c	(revision 19189)
@@ -40,4 +40,5 @@
 #include "pmSourcePlots.h"
 #include "pmFPAConstruct.h"
+#include "pmSubtractionIO.h"
 #include "pmConcepts.h"
 
@@ -188,4 +189,7 @@
         }
         break;
+      case PM_FPA_FILE_SUBKERNEL:
+        status = pmSubtractionReadKernels(view, file, config);
+        break;
       case PM_FPA_FILE_SX:
       case PM_FPA_FILE_RAW:
@@ -258,38 +262,39 @@
       case PM_FPA_FILE_FRINGE:
       case PM_FPA_FILE_DARK: {
-            // create FPA structure component based on view
-            psMetadata *format = file->format; // Camera format configuration
-            if (!format) {
-                format = config->format;
-            }
-
-            pmFPA *nameSource = file->src; // Source of FPA.OBS
-            if (!nameSource) {
-                nameSource = file->fpa;
-            }
-            bool mdok;                  // Status of MD lookup
-            const char *fpaObs = psMetadataLookupStr(&mdok, nameSource->concepts, "FPA.OBS"); // Obs. id
-
-            pmFPAAddSourceFromView(file->fpa, fpaObs, view, format);
-            psTrace ("psModules.camera", 5, "created fpa data elements for %s (%s) (%d:%d:%d)\n",
-                     file->name, file->name, view->chip, view->cell, view->readout);
-            break;
-    }
-    case PM_FPA_FILE_HEADER:
-      psAbort ("Create not defined for HEADER");
-      break;
-    case PM_FPA_FILE_SX:
-    case PM_FPA_FILE_RAW:
-    case PM_FPA_FILE_OBJ:
-    case PM_FPA_FILE_CMP:
-    case PM_FPA_FILE_CMF:
-    case PM_FPA_FILE_PSF:
-    case PM_FPA_FILE_ASTROM_MODEL:
-    case PM_FPA_FILE_ASTROM_REFSTARS:
-    case PM_FPA_FILE_JPEG:
-    case PM_FPA_FILE_KAPA:
-        break;
-
-    default:
+          // create FPA structure component based on view
+          psMetadata *format = file->format; // Camera format configuration
+          if (!format) {
+              format = config->format;
+          }
+
+          pmFPA *nameSource = file->src; // Source of FPA.OBS
+          if (!nameSource) {
+              nameSource = file->fpa;
+          }
+          bool mdok;                  // Status of MD lookup
+          const char *fpaObs = psMetadataLookupStr(&mdok, nameSource->concepts, "FPA.OBS"); // Obs. id
+
+          pmFPAAddSourceFromView(file->fpa, fpaObs, view, format);
+          psTrace ("psModules.camera", 5, "created fpa data elements for %s (%s) (%d:%d:%d)\n",
+                   file->name, file->name, view->chip, view->cell, view->readout);
+          break;
+      }
+      case PM_FPA_FILE_HEADER:
+        psAbort ("Create not defined for HEADER");
+        break;
+      case PM_FPA_FILE_SUBKERNEL:
+      case PM_FPA_FILE_SX:
+      case PM_FPA_FILE_RAW:
+      case PM_FPA_FILE_OBJ:
+      case PM_FPA_FILE_CMP:
+      case PM_FPA_FILE_CMF:
+      case PM_FPA_FILE_PSF:
+      case PM_FPA_FILE_ASTROM_MODEL:
+      case PM_FPA_FILE_ASTROM_REFSTARS:
+      case PM_FPA_FILE_JPEG:
+      case PM_FPA_FILE_KAPA:
+        break;
+
+      default:
         psError(PS_ERR_IO, true, "Unsupported type for %s: %d", file->name, file->type);
         return false;
@@ -435,4 +440,7 @@
             }
         }
+        break;
+      case PM_FPA_FILE_SUBKERNEL:
+        status = pmSubtractionWriteKernels(view, file, config);
         break;
       case PM_FPA_FILE_SX:
@@ -512,4 +520,5 @@
       case PM_FPA_FILE_FRINGE:
       case PM_FPA_FILE_DARK:
+      case PM_FPA_FILE_SUBKERNEL:
       case PM_FPA_FILE_CMF:
       case PM_FPA_FILE_PSF:
@@ -577,4 +586,5 @@
         status = pmFPAviewFreeData(view, file);
         break;
+      case PM_FPA_FILE_SUBKERNEL:
       case PM_FPA_FILE_SX:
       case PM_FPA_FILE_RAW:
@@ -720,4 +730,5 @@
       case PM_FPA_FILE_FRINGE:
       case PM_FPA_FILE_DARK:
+      case PM_FPA_FILE_SUBKERNEL:
       case PM_FPA_FILE_CMF:
       case PM_FPA_FILE_PSF:
@@ -899,9 +910,11 @@
         status = pmFPAviewFitsWritePHU (view, file, config);
         break;
+      case PM_FPA_FILE_SUBKERNEL:
+        status = pmSubtractionWritePHU(view, file, config);
       case PM_FPA_FILE_CMF:
         status = pmSource_CMF_WritePHU (view, file, config);
         break;
       case PM_FPA_FILE_PSF:
-        status = pmPSFmodelWritePHU (view, file, config);
+        status = pmPSFmodelWritePHU(view, file, config);
         break;
       case PM_FPA_FILE_ASTROM_REFSTARS:
