Index: branches/eam_branches/ipp-20140904/psModules/src/concepts/pmConcepts.c
===================================================================
--- branches/eam_branches/ipp-20140904/psModules/src/concepts/pmConcepts.c	(revision 37363)
+++ branches/eam_branches/ipp-20140904/psModules/src/concepts/pmConcepts.c	(revision 37804)
@@ -312,4 +312,7 @@
         conceptRegisterEnum("FPA.TIMESYS", "Time system", p_pmConceptParse_TIMESYS, p_pmConceptFormat_TIMESYS, p_pmConceptCopy_TIMESYS, false, PM_FPA_LEVEL_FPA);
         conceptRegisterTime("FPA.TIME", "Time of exposure", false, PM_FPA_LEVEL_FPA);
+
+        conceptRegisterStr("FPA.SHUTOUTC", "Time of exposure", NULL,NULL,NULL,false, PM_FPA_LEVEL_FPA);
+
         conceptRegisterF32("FPA.TEMP", "Temperature of focal plane", NULL, NULL, NULL, false, PM_FPA_LEVEL_FPA);
         conceptRegisterF32("FPA.M1X", "Primary Mirror X Position", NULL, NULL, NULL, false, PM_FPA_LEVEL_FPA);
Index: branches/eam_branches/ipp-20140904/psModules/src/imcombine/pmSubtraction.c
===================================================================
--- branches/eam_branches/ipp-20140904/psModules/src/imcombine/pmSubtraction.c	(revision 37363)
+++ branches/eam_branches/ipp-20140904/psModules/src/imcombine/pmSubtraction.c	(revision 37804)
@@ -995,4 +995,19 @@
 
     }
+
+    if (0) { 
+      FILE *f = fopen ("vector.dat", "w");
+      psAssert (f, "should not fail to open test file");
+      
+      for (int qq = 0; qq < match->chisq->n; qq++) {
+	fprintf (f, "%f %f : %f %f : %d\n", 
+		 match->chisq->data.F32[qq], match->fluxes->data.F32[qq], 
+		 logchisq->data.F32[qq], logflux->data.F32[qq], 
+		 match->stampMask->data.PS_TYPE_VECTOR_MASK_DATA[qq]);
+      }
+      fclose (f);
+    }
+
+
     bool result = psVectorClipFitPolynomial1D(model, stats, match->stampMask, 0xff, logchisq, NULL, logflux);
     if (!result) {
Index: branches/eam_branches/ipp-20140904/psModules/src/objects/pmSourceExtendedPars.c
===================================================================
--- branches/eam_branches/ipp-20140904/psModules/src/objects/pmSourceExtendedPars.c	(revision 37363)
+++ branches/eam_branches/ipp-20140904/psModules/src/objects/pmSourceExtendedPars.c	(revision 37804)
@@ -226,4 +226,10 @@
     pars->petrosianR50 = NAN;
     pars->petrosianR50Err = NAN;
+    pars->ghalfLightRadius = NAN;
+    pars->gRT = NAN;
+    pars->gRA = NAN;
+    pars->gS2 = NAN;
+    pars->gA = NAN;
+    pars->gbumpy = NAN;
     return pars;
 }
Index: branches/eam_branches/ipp-20140904/psModules/src/objects/pmSourceExtendedPars.h
===================================================================
--- branches/eam_branches/ipp-20140904/psModules/src/objects/pmSourceExtendedPars.h	(revision 37363)
+++ branches/eam_branches/ipp-20140904/psModules/src/objects/pmSourceExtendedPars.h	(revision 37804)
@@ -65,4 +65,10 @@
     float petrosianR50Err;
     float petrosianFill;
+    float ghalfLightRadius;                 
+    float gRT;                           // total residual (from eliptically symmetric model) Simard 2002
+    float gRA;                           // assymetric residual (from eliptically symmetric model) Simard 2002
+    float gS2;                           // (un) smoothness  (Simard, 2011 Cheng 2011)
+    float gA;                            // assymetry index (Gyory & Bell 2010)
+    float gbumpy;                        // Blakeslee bumpiness
 } pmSourceExtendedPars;
 
Index: branches/eam_branches/ipp-20140904/psModules/src/objects/pmSourceIO_CMF.c.in
===================================================================
--- branches/eam_branches/ipp-20140904/psModules/src/objects/pmSourceIO_CMF.c.in	(revision 37363)
+++ branches/eam_branches/ipp-20140904/psModules/src/objects/pmSourceIO_CMF.c.in	(revision 37804)
@@ -319,5 +319,6 @@
 
     // define PSF model type
-    int modelType = pmModelClassGetType ("PS_MODEL_GAUSS");
+    int defaultModelType = pmModelClassGetType ("PS_MODEL_GAUSS");
+    int modelType = -1;
 
     // if header does not define the model, default to a gaussian
@@ -326,5 +327,9 @@
         modelType = pmModelClassGetType (PSF_NAME);
     }
-    assert (modelType > -1);
+    // work around bug in psphotFullForce
+    if (modelType < 0) {
+    	modelType = defaultModelType;
+    }
+    // assert (modelType > -1);
 
     // do we expect to find lensing parameters?
@@ -456,4 +461,8 @@
 	  @>PS1_V4@ source->lensingOBJ->shear->e2  = psMetadataLookupF32 (&status, row, "LENS_E2_SH_OBJ");
 	}
+
+	@>PS1_V4@ source->chipNum = psMetadataLookupS16 (&status, row, "SRC_CHIP_NUM");
+	@>PS1_V4@ source->chipX = psMetadataLookupS16 (&status, row, "SRC_CHIP_X");
+	@>PS1_V4@ source->chipY = psMetadataLookupS16 (&status, row, "SRC_CHIP_Y");
 
 	if (haveLensPSF) {
@@ -639,4 +648,10 @@
                 psMetadataAdd (row, PS_LIST_TAIL, "PETRO_RADIUS_90_ERR", PS_DATA_F32, "Petrosian R90 Error (pix)", extpars->petrosianR90Err);
                 psMetadataAdd (row, PS_LIST_TAIL, "PETRO_FILL",          PS_DATA_F32, "Petrosian Fill Factor", extpars->petrosianFill);
+                @>PS1_SV3@ psMetadataAddF32 (row, PS_LIST_TAIL, "HALF_LIGHT_RADIUS", 0, "Half Light Radius", extpars->ghalfLightRadius);
+                @>PS1_SV3@ psMetadataAddF32 (row, PS_LIST_TAIL, "G_RT", 0, "total residual Sersic Model", extpars->gRT);
+                @>PS1_SV3@ psMetadataAddF32 (row, PS_LIST_TAIL, "G_RA", 0, "assymetric residual Sersic Model", extpars->gRA);
+                @>PS1_SV3@ psMetadataAddF32 (row, PS_LIST_TAIL, "G_S2", 0, "(un)smoothness paramter residual Sersic Model", extpars->gS2);
+                @>PS1_SV3@ psMetadataAddF32 (row, PS_LIST_TAIL, "G_A", 0, "assymetry index", extpars->gA);
+                @>PS1_SV3@ psMetadataAddF32 (row, PS_LIST_TAIL, "G_BUMPY", 0, "bumpiness", extpars->gbumpy);
             } else {
                 psMetadataAdd (row, PS_LIST_TAIL, "PETRO_MAG",        PS_DATA_F32, "Petrosian Magnitude",       NAN);
@@ -649,4 +664,10 @@
                 psMetadataAdd (row, PS_LIST_TAIL, "PETRO_RADIUS_90_ERR", PS_DATA_F32, "Petrosian R90 Error (pix)",NAN); 
                 psMetadataAdd (row, PS_LIST_TAIL, "PETRO_FILL",          PS_DATA_F32, "Petrosian Fill Factor", NAN);
+                @>PS1_SV3@ psMetadataAddF32 (row, PS_LIST_TAIL, "HALF_LIGHT_RADIUS", 0, "Half Light Radius", NAN);
+                @>PS1_SV3@ psMetadataAddF32 (row, PS_LIST_TAIL, "G_RT", 0, "total residual Sersic Model", NAN);
+                @>PS1_SV3@ psMetadataAddF32 (row, PS_LIST_TAIL, "G_RA", 0, "assymetric residual Sersic Model", NAN);
+                @>PS1_SV3@ psMetadataAddF32 (row, PS_LIST_TAIL, "G_S2", 0, "(un)smoothness paramter residual Sersic Model", NAN);
+                @>PS1_SV3@ psMetadataAddF32 (row, PS_LIST_TAIL, "G_A", 0, "assymetry index", NAN);
+                @>PS1_SV3@ psMetadataAddF32 (row, PS_LIST_TAIL, "G_BUMPY", 0, "bumpiness", NAN);
             }
         }
@@ -848,4 +869,10 @@
         extpars->petrosianR90Err   = psMetadataLookupF32(&status, row, "PETRO_RADIUS_90_ERR");
         extpars->petrosianFill     = psMetadataLookupF32(&status, row, "PETRO_FILL");
+        extpars->ghalfLightRadius  = psMetadataLookupF32(&status, row, "HALF_LIGHT_RADIUS");
+        extpars->gRT               = psMetadataLookupF32(&status, row, "G_RT");
+        extpars->gRA               = psMetadataLookupF32(&status, row, "G_RA");
+        extpars->gS2               = psMetadataLookupF32(&status, row, "G_S2");
+        extpars->gA                = psMetadataLookupF32(&status, row, "G_A");
+        extpars->gbumpy            = psMetadataLookupF32(&status, row, "G_BUMPY");
 
         psVector *radSB   = psMetadataLookupVector(&status, row, "PROF_SB");
@@ -995,4 +1022,5 @@
             psMetadataAddF32 (row, PS_LIST_TAIL, "X_EXT_SIG",        0, "Sigma in EXT x coordinate",                  xErr);
             psMetadataAddF32 (row, PS_LIST_TAIL, "Y_EXT_SIG",        0, "Sigma in EXT y coordinate",                  yErr);
+            @>PS1_SV3@ psMetadataAddF32 (row, PS_LIST_TAIL, "SKY_EXT",        0, "EXT fit sky value",                  PAR ? PAR[PM_PAR_SKY] : NAN);
             @>PS1_DV2,>PS1_SV3@ psMetadataAddF32 (row, PS_LIST_TAIL, "RA_EXT",           0, "EXT model ra coordinate",                    raPos);
             @>PS1_DV2,>PS1_SV3@ psMetadataAddF32 (row, PS_LIST_TAIL, "DEC_EXT",          0, "EXT model dec coordinate",                   decPos);
