Index: /branches/eam_branches/ipp-20110710/psModules/src/objects/Makefile.am
===================================================================
--- /branches/eam_branches/ipp-20110710/psModules/src/objects/Makefile.am	(revision 31991)
+++ /branches/eam_branches/ipp-20110710/psModules/src/objects/Makefile.am	(revision 31992)
@@ -130,13 +130,13 @@
 
 # pmSourceID_CMF_* functions use a common framework
-BUILT_SOURCES = pmSourceIO_CMF_PS1_V1.v1.c pmSourceIO_CMF_PS1_V2.v1.c pmSourceIO_CMF_PS1_V3.v1.c
+BUILT_SOURCES = pmSourceIO_CMF_PS1_V1.c pmSourceIO_CMF_PS1_V2.c pmSourceIO_CMF_PS1_V3.c
 
-pmSourceIO_CMF_PS1_V1.v1.c : pmSourceIO_CMF.c.in mksource.pl
+pmSourceIO_CMF_PS1_V1.c : pmSourceIO_CMF.c.in mksource.pl
 	mksource.pl pmSourceIO_CMF.c.in PS1_V1 pmSourceIO_CMF_PS1_V1.c
 
-pmSourceIO_CMF_PS1_V2.v1.c : pmSourceIO_CMF.c.in mksource.pl
+pmSourceIO_CMF_PS1_V2.c : pmSourceIO_CMF.c.in mksource.pl
 	mksource.pl pmSourceIO_CMF.c.in PS1_V2 pmSourceIO_CMF_PS1_V2.c
 
-pmSourceIO_CMF_PS1_V3.v1.c : pmSourceIO_CMF.c.in mksource.pl
+pmSourceIO_CMF_PS1_V3.c : pmSourceIO_CMF.c.in mksource.pl
 	mksource.pl pmSourceIO_CMF.c.in PS1_V3 pmSourceIO_CMF_PS1_V3.c
 
Index: /branches/eam_branches/ipp-20110710/psModules/src/objects/pmSource.c
===================================================================
--- /branches/eam_branches/ipp-20110710/psModules/src/objects/pmSource.c	(revision 31991)
+++ /branches/eam_branches/ipp-20110710/psModules/src/objects/pmSource.c	(revision 31992)
@@ -58,4 +58,5 @@
     psFree(tmp->modelEXT);
     psFree(tmp->modelFits);
+    psFree(tmp->extFitPars);
     psFree(tmp->extpars);
     psFree(tmp->moments);
@@ -119,4 +120,5 @@
     source->modelEXT = NULL;
     source->modelFits = NULL;
+    source->extFitPars = NULL;
     source->type = PM_SOURCE_TYPE_UNKNOWN;
     source->mode = PM_SOURCE_MODE_DEFAULT;
Index: /branches/eam_branches/ipp-20110710/psModules/src/objects/pmSourceExtendedPars.c
===================================================================
--- /branches/eam_branches/ipp-20110710/psModules/src/objects/pmSourceExtendedPars.c	(revision 31991)
+++ /branches/eam_branches/ipp-20110710/psModules/src/objects/pmSourceExtendedPars.c	(revision 31992)
@@ -274,7 +274,10 @@
 
     pars->Mrf    = NAN;
+    pars->Mrh    = NAN;
+
     pars->apMag  = NAN;
     pars->krMag  = NAN;
     pars->psfMag = NAN;
+    pars->peakMag = NAN;
 
     return pars;
Index: /branches/eam_branches/ipp-20110710/psModules/src/objects/pmSourceExtendedPars.h
===================================================================
--- /branches/eam_branches/ipp-20110710/psModules/src/objects/pmSourceExtendedPars.h	(revision 31991)
+++ /branches/eam_branches/ipp-20110710/psModules/src/objects/pmSourceExtendedPars.h	(revision 31992)
@@ -74,7 +74,10 @@
     
     float Mrf;
+    float Mrh;
+
     float apMag;
     float krMag;
     float psfMag;
+    float peakMag;
 } pmSourceExtFitPars;
 
@@ -104,5 +107,5 @@
 bool pmSourceRadialProfileSortPair(psVector *index, psVector *extra);
 
-
+pmSourceExtFitPars *pmSourceExtFitParsAlloc (void);
 
 /// @}
Index: /branches/eam_branches/ipp-20110710/psModules/src/objects/pmSourceFitPCM.c
===================================================================
--- /branches/eam_branches/ipp-20110710/psModules/src/objects/pmSourceFitPCM.c	(revision 31991)
+++ /branches/eam_branches/ipp-20110710/psModules/src/objects/pmSourceFitPCM.c	(revision 31992)
@@ -48,7 +48,9 @@
 // convolved model image.
 
+# define TIMING 0
+
 bool pmSourceFitPCM (pmPCMdata *pcm, pmSource *source, pmSourceFitOptions *fitOptions, psImageMaskType maskVal, psImageMaskType markVal, int psfSize) {
     
-    psTimerStart ("pmSourceFitPCM");
+    if (TIMING) { psTimerStart ("pmSourceFitPCM"); }
 
     psVector *params  = pcm->modelConv->params;
@@ -66,8 +68,9 @@
     psImage *covar = psImageAlloc (params->n, params->n, PS_TYPE_F32);
 
-    float t1 = psTimerMark ("pmSourceFitPCM");
+    float t1, t2, t3, t4, t5;
+    if (TIMING) { t1 = psTimerMark ("pmSourceFitPCM"); }
 
     bool fitStatus = pmPCM_MinimizeChisq (myMin, covar, params, source, pcm);
-    float t2 = psTimerMark ("pmSourceFitPCM");
+    if (TIMING) { t2 = psTimerMark ("pmSourceFitPCM"); }
 
     for (int i = 0; i < dparams->n; i++) {
@@ -82,5 +85,5 @@
     }
     psTrace ("psphot", 4, "niter: %d, chisq: %f", myMin->iter, myMin->value);
-    float t3 = psTimerMark ("pmSourceFitPCM");
+    if (TIMING) { t3 = psTimerMark ("pmSourceFitPCM"); }
 
     // renormalize output model image (generated by fitting process)
@@ -104,5 +107,5 @@
 	pmSourceChisqUnsubtracted (source, pcm->modelConv, maskVal);
     }
-    float t4 = psTimerMark ("pmSourceFitPCM");
+    if (TIMING) { t4 = psTimerMark ("pmSourceFitPCM"); }
 
     // set the model success or failure status
@@ -122,9 +125,9 @@
 
     source->mode |= PM_SOURCE_MODE_FITTED; // XXX is this needed?
-    float t5 = psTimerMark ("pmSourceFitPCM");
+    if (TIMING) { t5 = psTimerMark ("pmSourceFitPCM"); }
 
-    if (0) {
-	fprintf (stderr, "nIter: %2d, npix: %5d, t1: %6.4f, t2: %6.4f, t3: %6.4f, t4: %6.4f, t5: %6.4f\n", myMin->iter, pcm->nPix, t1, t2, t3, t4, t5);
-    }
+     if (TIMING) {
+ 	fprintf (stderr, "nIter: %2d, npix: %5d, t1: %6.4f, t2: %6.4f, t3: %6.4f, t4: %6.4f, t5: %6.4f\n", myMin->iter, pcm->nPix, t1, t2, t3, t4, t5);
+     }
 
     psFree(myMin);
Index: /branches/eam_branches/ipp-20110710/psModules/src/objects/pmSourceIO_CMF.c.in
===================================================================
--- /branches/eam_branches/ipp-20110710/psModules/src/objects/pmSourceIO_CMF.c.in	(revision 31991)
+++ /branches/eam_branches/ipp-20110710/psModules/src/objects/pmSourceIO_CMF.c.in	(revision 31992)
@@ -55,5 +55,4 @@
 // followed by a zero-size matrix, followed by the table data
 
-// # define MODE @CMFMODE@
 bool pmSourcesWrite_CMF_@CMFMODE@ (psFits *fits, pmReadout *readout, psArray *sources, psMetadata *imageHeader, psMetadata *tableHeader, char *extname, psMetadata *recipe)
 {
@@ -595,4 +594,7 @@
             assert (model);
 
+            pmSourceExtFitPars *extPars = source->extFitPars->data[j];
+	    assert (extPars);
+
 	    // skip models which were not actually fitted
 	    if (model->flags & PM_MODEL_STATUS_BADARGS) continue;
@@ -617,4 +619,15 @@
             psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_INST_MAG",     0, "EXT fit instrumental magnitude",             model->mag);
             psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_INST_MAG_SIG", 0, "Sigma of PSF instrumental magnitude",        model->magErr);
+
+            psMetadataAddF32 (row, PS_LIST_TAIL, "MOMENTS_XX",       0, "second moment in x",                         extPars->Mxx);
+            psMetadataAddF32 (row, PS_LIST_TAIL, "MOMENTS_XY",       0, "second moment in x,y",                       extPars->Mxy);
+            psMetadataAddF32 (row, PS_LIST_TAIL, "MOMENTS_YY",       0, "second moment in y",                         extPars->Myy);
+            psMetadataAddF32 (row, PS_LIST_TAIL, "MOMENTS_R1",       0, "first radial moment",                        extPars->Mrf);
+            psMetadataAddF32 (row, PS_LIST_TAIL, "MOMENTS_RH",       0, "half radial moment",                         extPars->Mrh);
+
+            psMetadataAddF32 (row, PS_LIST_TAIL, "PSF_INST_MAG",     0, "PSF fit instrumental magnitude",             source->psfMag);
+            psMetadataAddF32 (row, PS_LIST_TAIL, "AP_MAG",           0, "PSF-sized aperture magnitude",               source->apMag);
+            psMetadataAddF32 (row, PS_LIST_TAIL, "KRON_MAG",         0, "Kron Mag",                                   extPars->krMag);
+            psMetadataAddF32 (row, PS_LIST_TAIL, "PEAK_FLUX_AS_MAG", 0, "peak flux expressed as a magnitude",         extPars->peakMag);
 
             psMetadataAddF32 (row, PS_LIST_TAIL, "NPARAMS",          0, "number of model parameters",                 model->params->n);
