Index: branches/eam_branches/ipp-20120627/Ohana/src/addstar/src/FilterStars.c
===================================================================
--- branches/eam_branches/ipp-20120627/Ohana/src/addstar/src/FilterStars.c	(revision 34191)
+++ branches/eam_branches/ipp-20120627/Ohana/src/addstar/src/FilterStars.c	(revision 34194)
@@ -84,4 +84,19 @@
       stars[N].measure.Map += MTIME - dMs;
     }
+    if (!isnan(stars[N].measure.Mkron)) {
+      stars[N].measure.Mkron += MTIME - dMs;
+    }
+    if (!isnan(stars[N].measure.FluxPSF)) {
+      stars[N].measure.FluxPSF /= image[0].exptime;
+    }
+    if (!isnan(stars[N].measure.dFluxPSF)) {
+      stars[N].measure.dFluxPSF /= image[0].exptime;
+    }
+    if (!isnan(stars[N].measure.FluxKron)) {
+      stars[N].measure.FluxKron /= image[0].exptime;
+    }
+    if (!isnan(stars[N].measure.dFluxKron)) {
+      stars[N].measure.dFluxKron /= image[0].exptime;
+    }
     
     // the external ID is supplied, but do we trust it?
Index: branches/eam_branches/ipp-20120627/Ohana/src/addstar/src/ReadStarsFITS.c
===================================================================
--- branches/eam_branches/ipp-20120627/Ohana/src/addstar/src/ReadStarsFITS.c	(revision 34191)
+++ branches/eam_branches/ipp-20120627/Ohana/src/addstar/src/ReadStarsFITS.c	(revision 34194)
@@ -100,7 +100,11 @@
       stars[i].measure.M        = NAN;
       stars[i].measure.Map      = NAN;
+      stars[i].measure.FluxPSF  = NAN;
+      stars[i].measure.dFluxPSF = NAN;
     } else {
       stars[i].measure.M        = smpdata[i].M;
       stars[i].measure.Map      = smpdata[i].M;
+      stars[i].measure.FluxPSF  = pow(10.0, -0.4*smpdata[i].M);
+      stars[i].measure.dFluxPSF = stars[i].measure.FluxPSF * smpdata[i].dM;
     }
     stars[i].measure.dM         = smpdata[i].dM*0.001;
@@ -109,4 +113,6 @@
     stars[i].measure.Mkron    	= NAN; // not provided by SMPDATA:
     stars[i].measure.dMkron   	= NAN; // not provided by SMPDATA:
+    stars[i].measure.FluxKron   = NAN; // not provided by SMPDATA:
+    stars[i].measure.dFluxKron  = NAN; // not provided by SMPDATA:
 
     stars[i].measure.Sky      	= NAN; // not provided by SMPDATA:
@@ -163,6 +169,10 @@
     if ((ps1data[i].M >= 0.0) || isnan(ps1data[i].M)) {
       stars[i].measure.M      	= NAN;
+      stars[i].measure.FluxPSF  = NAN;
+      stars[i].measure.dFluxPSF = NAN;
     } else {
       stars[i].measure.M      	= ps1data[i].M + ZeroPt;
+      stars[i].measure.FluxPSF  = pow(10.0, -0.4*ps1data[i].M);
+      stars[i].measure.dFluxPSF = stars[i].measure.FluxPSF * ps1data[i].dM;
     }
     stars[i].measure.dM       	= ps1data[i].dM;
@@ -172,4 +182,6 @@
     stars[i].measure.Mkron    	= NAN; // not provided by PS1_DEV_0:
     stars[i].measure.dMkron   	= NAN; // not provided by PS1_DEV_0:
+    stars[i].measure.FluxKron   = NAN; // not provided by PS1_DEV_0:
+    stars[i].measure.dFluxKron  = NAN; // not provided by PS1_DEV_0:
 
     stars[i].measure.Sky      	= ps1data[i].sky;
@@ -228,7 +240,11 @@
 
     if ((ps1data[i].M >= 0.0) || isnan(ps1data[i].M)) {
-        stars[i].measure.M      = NAN;
-    } else {
-        stars[i].measure.M      = ps1data[i].M + ZeroPt;
+      stars[i].measure.M      = NAN;
+      stars[i].measure.FluxPSF  = NAN;
+      stars[i].measure.dFluxPSF = NAN;
+    } else {
+      stars[i].measure.M      = ps1data[i].M + ZeroPt;
+      stars[i].measure.FluxPSF  = pow(10.0, -0.4*ps1data[i].M);
+      stars[i].measure.dFluxPSF = stars[i].measure.FluxPSF * ps1data[i].dM;
     }
     stars[i].measure.dM         = ps1data[i].dM;
@@ -238,4 +254,6 @@
     stars[i].measure.Mkron      = NAN; // not provided by PS1_DEV_1:
     stars[i].measure.dMkron     = NAN; // not provided by PS1_DEV_1:
+    stars[i].measure.FluxKron   = NAN; // not provided by PS1_DEV_1:
+    stars[i].measure.dFluxKron  = NAN; // not provided by PS1_DEV_1:
 
     stars[i].measure.Sky        = ps1data[i].sky;
@@ -283,6 +301,6 @@
 
   if (table[0].header[0].Naxis[0] == 136) {
-      stars = Convert_PS1_V1_Alt (table, nstars);
-      return (stars);
+    stars = Convert_PS1_V1_Alt (table, nstars);
+    return (stars);
   }
 
@@ -306,7 +324,11 @@
 
     if ((ps1data[i].M >= 0.0) || isnan(ps1data[i].M)) {
-        stars[i].measure.M      = NAN;
-    } else {
-        stars[i].measure.M      = ps1data[i].M + ZeroPt;
+      stars[i].measure.M      = NAN;
+      stars[i].measure.FluxPSF  = NAN;
+      stars[i].measure.dFluxPSF = NAN;
+    } else {
+      stars[i].measure.M      = ps1data[i].M + ZeroPt;
+      stars[i].measure.FluxPSF  = pow(10.0, -0.4*ps1data[i].M);
+      stars[i].measure.dFluxPSF = stars[i].measure.FluxPSF * ps1data[i].dM;
     }
     stars[i].measure.dM         = ps1data[i].dM;
@@ -316,4 +338,6 @@
     stars[i].measure.Mkron      = NAN; // not provided by PS1_V1:
     stars[i].measure.dMkron     = NAN; // not provided by PS1_V1:
+    stars[i].measure.FluxKron   = NAN; // not provided by PS1_V1:
+    stars[i].measure.dFluxKron  = NAN; // not provided by PS1_V1:
 
     stars[i].measure.Sky        = ps1data[i].sky;
@@ -385,7 +409,11 @@
 
     if ((ps1data[i].M >= 0.0) || isnan(ps1data[i].M)) {
-        stars[i].measure.M      = NAN;
-    } else {
-        stars[i].measure.M      = ps1data[i].M + ZeroPt;
+      stars[i].measure.M      = NAN;
+      stars[i].measure.FluxPSF  = NAN;
+      stars[i].measure.dFluxPSF = NAN;
+    } else {
+      stars[i].measure.M        = ps1data[i].M + ZeroPt;
+      stars[i].measure.FluxPSF  = pow(10.0, -0.4*ps1data[i].M);
+      stars[i].measure.dFluxPSF = stars[i].measure.FluxPSF * ps1data[i].dM;
     }
     stars[i].measure.dM         = ps1data[i].dM;
@@ -395,4 +423,6 @@
     stars[i].measure.Mkron      = NAN; // not provided by PS1_V1_Alt:
     stars[i].measure.dMkron     = NAN; // not provided by PS1_V1_Alt:
+    stars[i].measure.FluxKron   = NAN; // not provided by PS1_V1_Alt:
+    stars[i].measure.dFluxKron  = NAN; // not provided by PS1_V1_Alt:
 
     stars[i].measure.Sky        = ps1data[i].sky;
@@ -456,7 +486,11 @@
 
     if ((ps1data[i].M >= 0.0) || isnan(ps1data[i].M)) {
-        stars[i].measure.M      = NAN;
-    } else {
-        stars[i].measure.M      = ps1data[i].M + ZeroPt;
+      stars[i].measure.M        = NAN;
+      stars[i].measure.FluxPSF  = NAN;
+      stars[i].measure.dFluxPSF = NAN;
+    } else {
+      stars[i].measure.M      = ps1data[i].M + ZeroPt;
+      stars[i].measure.FluxPSF  = pow(10.0, -0.4*ps1data[i].M);
+      stars[i].measure.dFluxPSF = stars[i].measure.FluxPSF * ps1data[i].dM;
     }
     stars[i].measure.dM         = ps1data[i].dM;
@@ -466,4 +500,6 @@
     stars[i].measure.Mkron      = NAN; // not provided by PS1_V2:
     stars[i].measure.dMkron     = NAN; // not provided by PS1_V2:
+    stars[i].measure.FluxKron   = NAN; // not provided by PS1_V2:
+    stars[i].measure.dFluxKron  = NAN; // not provided by PS1_V2:
 
     stars[i].measure.Sky        = ps1data[i].sky;
@@ -527,7 +563,7 @@
 
     if ((ps1data[i].M >= 0.0) || isnan(ps1data[i].M)) {
-        stars[i].measure.M      = NAN;
-    } else {
-        stars[i].measure.M      = ps1data[i].M + ZeroPt;
+      stars[i].measure.M      = NAN;
+    } else {
+      stars[i].measure.M      = ps1data[i].M + ZeroPt;
     }
     stars[i].measure.dM         = ps1data[i].dM;
@@ -538,4 +574,10 @@
     stars[i].measure.dMkron     = (ps1data[i].kronFlux > 0.0) ? ps1data[i].kronFluxErr / ps1data[i].kronFlux : NAN;
                         
+    // these fluxes are converted from counts to counts/sec in FilterStars.c
+    stars[i].measure.FluxPSF    = ps1data[i].Flux;
+    stars[i].measure.dFluxPSF   = ps1data[i].dFlux;
+    stars[i].measure.FluxKron   = ps1data[i].kronFlux;
+    stars[i].measure.dFluxKron  = ps1data[i].kronFluxErr;
+
     stars[i].measure.Sky        = ps1data[i].sky;
     stars[i].measure.dSky       = ps1data[i].dSky;
@@ -583,6 +625,6 @@
 
   if (table[0].header[0].Naxis[0] == 196) {
-      stars = Convert_PS1_SV1_Alt (table, nstars);
-      return (stars);
+    stars = Convert_PS1_SV1_Alt (table, nstars);
+    return (stars);
   }
 
@@ -606,7 +648,7 @@
 
     if ((ps1data[i].M >= 0.0) || isnan(ps1data[i].M)) {
-        stars[i].measure.M      = NAN;
-    } else {
-        stars[i].measure.M      = ps1data[i].M + ZeroPt;
+      stars[i].measure.M      = NAN;
+    } else {
+      stars[i].measure.M      = ps1data[i].M + ZeroPt;
     }
     stars[i].measure.dM         = ps1data[i].dM;
@@ -616,4 +658,10 @@
     stars[i].measure.Mkron      = (ps1data[i].kronFlux > 0.0) ? -2.5*log10(ps1data[i].kronFlux) + ZeroPt : NAN;
     stars[i].measure.dMkron     = (ps1data[i].kronFlux > 0.0) ? ps1data[i].kronFluxErr / ps1data[i].kronFlux : NAN;
+
+    // these fluxes are converted from counts to counts/sec in FilterStars.c
+    stars[i].measure.FluxPSF    = ps1data[i].Flux;
+    stars[i].measure.dFluxPSF   = ps1data[i].dFlux;
+    stars[i].measure.FluxKron   = ps1data[i].kronFlux;
+    stars[i].measure.dFluxKron  = ps1data[i].kronFluxErr;
 
     stars[i].measure.Sky        = ps1data[i].sky;
@@ -679,7 +727,7 @@
 
     if ((ps1data[i].M >= 0.0) || isnan(ps1data[i].M)) {
-        stars[i].measure.M      = NAN;
-    } else {
-        stars[i].measure.M      = ps1data[i].M + ZeroPt;
+      stars[i].measure.M      = NAN;
+    } else {
+      stars[i].measure.M      = ps1data[i].M + ZeroPt;
     }
     stars[i].measure.dM         = ps1data[i].dM;
@@ -689,4 +737,10 @@
     stars[i].measure.Mkron      = (ps1data[i].kronFlux > 0.0) ? -2.5*log10(ps1data[i].kronFlux) + ZeroPt : NAN;
     stars[i].measure.dMkron     = (ps1data[i].kronFlux > 0.0) ? ps1data[i].kronFluxErr / ps1data[i].kronFlux : NAN;
+
+    // these fluxes are converted from counts to counts/sec in FilterStars.c
+    stars[i].measure.FluxPSF    = ps1data[i].Flux;
+    stars[i].measure.dFluxPSF   = ps1data[i].dFlux;
+    stars[i].measure.FluxKron   = ps1data[i].kronFlux;
+    stars[i].measure.dFluxKron  = ps1data[i].kronFluxErr;
 
     stars[i].measure.Sky        = ps1data[i].sky;
Index: branches/eam_branches/ipp-20120627/Ohana/src/libautocode/def/measure-ps1-v4.d
===================================================================
--- branches/eam_branches/ipp-20120627/Ohana/src/libautocode/def/measure-ps1-v4.d	(revision 34191)
+++ branches/eam_branches/ipp-20120627/Ohana/src/libautocode/def/measure-ps1-v4.d	(revision 34194)
@@ -2,5 +2,5 @@
 EXTNAME      DVO_MEASURE_PS1_V4
 TYPE         BINTABLE
-SIZE         160
+SIZE         176
 DESCRIPTION  DVO Detection Measurement Table 
 
@@ -15,4 +15,10 @@
 FIELD dMcal,          MAG_CAL_ERR,  float,          systematic calibration error, mag
 FIELD dt,             M_TIME,       float,          exposure time,                2.5*log(exptime)
+
+# for stacks only?
+FIELD FluxPSF,        FLUX_PSF,     float,          flux from psf fit,              counts/sec?
+FIELD dFluxPSF,       FLUX_PSF_ERR, float,          error on psf flux,              counts/sec?
+FIELD FluxKron,       FLUX_KRON,     float,         flux from kron ap,              counts/sec?
+FIELD dFluxKron,      FLUX_KRON_ERR, float,         error on kron flux,             counts/sec?
 
 # note that with airmass = 1.0 / cos(90 - alt), we have full alt/az representation
Index: branches/eam_branches/ipp-20120627/Ohana/src/libautocode/def/measure.d
===================================================================
--- branches/eam_branches/ipp-20120627/Ohana/src/libautocode/def/measure.d	(revision 34191)
+++ branches/eam_branches/ipp-20120627/Ohana/src/libautocode/def/measure.d	(revision 34194)
@@ -2,5 +2,5 @@
 EXTNAME      DVO_MEASURE
 TYPE         BINTABLE
-SIZE         156
+SIZE         172
 DESCRIPTION  DVO Detection Measurement Table 
 
@@ -15,4 +15,10 @@
 FIELD dMcal,          MAG_CAL_ERR,  float,          systematic calibration error,   mag
 FIELD dt,             M_TIME,       float,          exposure time,                  2.5*log(exptime)
+
+# for stacks only?
+FIELD FluxPSF,        FLUX_PSF,     float,          flux from psf fit,              counts/sec?
+FIELD dFluxPSF,       FLUX_PSF_ERR, float,          error on psf flux,              counts/sec?
+FIELD FluxKron,       FLUX_KRON,     float,         flux from kron ap,              counts/sec?
+FIELD dFluxKron,      FLUX_KRON_ERR, float,         error on kron flux,             counts/sec?
 
 # note that with airmass = 1.0 / cos(90 - alt), we have full alt/az representation
Index: branches/eam_branches/ipp-20120627/Ohana/src/libautocode/def/secfilt-ps1-v4.d
===================================================================
--- branches/eam_branches/ipp-20120627/Ohana/src/libautocode/def/secfilt-ps1-v4.d	(revision 34191)
+++ branches/eam_branches/ipp-20120627/Ohana/src/libautocode/def/secfilt-ps1-v4.d	(revision 34194)
@@ -2,21 +2,23 @@
 EXTNAME      DVO_SECFILT_PS1_V4
 TYPE         BINTABLE
-SIZE         48
+SIZE         56
 DESCRIPTION  DVO SecFilt : Secondary Filter Data 
 
 # elements of data structure / FITS table
-FIELD  M,     	    MAG,      	  float,      average mag in this band,              mags
-FIELD  Map,    	    MAG_AP,    	  float,      ave aperture mag in this band,         mags
-FIELD  Mkron,  	    MAG_KRON,  	  float,      ave kron mag in this band,             mags
-FIELD  dMkron, 	    MAG_KRON_ERR, float,      formal error on average kron mag,      mags
-FIELD  dM,    	    MAG_ERR,  	  float,      formal error on average mag,           mags
-FIELD  Xm,    	    MAG_CHI,  	  float,      chisq on average mag,                  [100*log(value)]
-FIELD  extNsigma,   EXT_NSIGMA,   float,      mean extendedness in band
-FIELD  flags, 	    FLAGS,    	  uint32_t,   photometry flags
-FIELD  Ncode, 	    NCODE,    	  short,      number of detections in band
-FIELD  Nused, 	    NUSED,    	  short,      number of detections used in average
-FIELD  M_20,  	    MAG_20,   	  short,      lower 20percent mag,                   millimags
-FIELD  M_80,  	    MAG_80,   	  short,      upper 20percent mag,                   millimags
-FIELD  ubercalDist, UBERCAL_DIST, short,      number of images from an ubercal-image
-FIELD  Mstdev,      MAG_STDEV,    short,      standard deviation of measurements,    millimags
-FIELD  dummy,       DUMMY,        char[4],    padding to fill 8-byte boundary
+FIELD  M,     	    MAG,      	   float,      average mag in this band,              mags
+FIELD  Map,    	    MAG_AP,    	   float,      ave aperture mag in this band,         mags
+FIELD  Mkron,  	    MAG_KRON,  	   float,      ave kron mag in this band,             mags
+FIELD  dMkron, 	    MAG_KRON_ERR,  float,      formal error on average kron mag,      mags
+FIELD  dM,    	    MAG_ERR,  	   float,      formal error on average mag,           mags
+FIELD  Xm,    	    MAG_CHI,  	   float,      chisq on average mag,                  [100*log(value)]
+FIELD  FluxPSF,     FLUX_PSF,      float,      mean flux psf fit (PS1: stack)
+FIELD  dFluxPSF,    FLUX_PSF_ERR,  float,      mean flux psf error
+FIELD  FluxKron,    FLUX_KRON,     float,      mean flux kron ap (PS1: stack)
+FIELD  dFluxKron,   FLUX_KRON_ERR, float,      mean flux kron err
+FIELD  flags, 	    FLAGS,    	   uint32_t,   photometry flags
+FIELD  Ncode, 	    NCODE,    	   short,      number of detections in band
+FIELD  Nused, 	    NUSED,    	   short,      number of detections used in average
+FIELD  M_20,  	    MAG_20,   	   short,      lower 20percent mag,                   millimags
+FIELD  M_80,  	    MAG_80,   	   short,      upper 20percent mag,                   millimags
+FIELD  ubercalDist, UBERCAL_DIST,  short,      number of images from an ubercal-image
+FIELD  Mstdev,      MAG_STDEV,     short,      standard deviation of measurements,    millimags
Index: branches/eam_branches/ipp-20120627/Ohana/src/libautocode/def/secfilt.d
===================================================================
--- branches/eam_branches/ipp-20120627/Ohana/src/libautocode/def/secfilt.d	(revision 34191)
+++ branches/eam_branches/ipp-20120627/Ohana/src/libautocode/def/secfilt.d	(revision 34194)
@@ -2,5 +2,5 @@
 EXTNAME      DVO_SECFILT
 TYPE         BINTABLE
-SIZE         48
+SIZE         56
 DESCRIPTION  DVO SecFilt : Secondary Filter Data 
 
@@ -12,5 +12,8 @@
 FIELD  dM,    	    MAG_ERR,  	  float,      formal error on average mag,           mags
 FIELD  Xm,    	    MAG_CHI,  	  float,      chisq on average mag,                  [100*log(value)]
-FIELD  extNsigma,   EXT_NSIGMA,   float,      mean extendedness in band
+FIELD  FluxPSF,     FLUX_PSF,      float,      mean flux psf fit (PS1: stack)
+FIELD  dFluxPSF,    FLUX_PSF_ERR,  float,      mean flux psf error
+FIELD  FluxKron,    FLUX_KRON,     float,      mean flux kron ap (PS1: stack)
+FIELD  dFluxKron,   FLUX_KRON_ERR, float,      mean flux kron err
 FIELD  flags, 	    FLAGS,    	  uint32_t,   photometry flags
 FIELD  Ncode, 	    NCODE,    	  short,      number of detections in band
@@ -20,7 +23,6 @@
 FIELD  ubercalDist, UBERCAL_DIST, short,      number of images from an ubercal-image
 FIELD  Mstdev,      MAG_STDEV,    short,      standard deviation of measurements,    millimags
-FIELD  dummy,       DUMMY,        char[4],    padding to fill 8-byte boundary
 
 # *** 20090206 : new fields : M_20, M_80; dropped dummy
 # *** 20120302 : new fields : ubercalDist, Map, Mstdev
-# *** 20120710 : new fields : Mkron, dMkron, extNsigma, dummy[4byte]
+# *** 20120710 : new fields : Mkron, dMkron, FluxPSF, dFluxPSF, FluxKron, dFluxKron
Index: branches/eam_branches/ipp-20120627/Ohana/src/libdvo/include/dvo.h
===================================================================
--- branches/eam_branches/ipp-20120627/Ohana/src/libdvo/include/dvo.h	(revision 34191)
+++ branches/eam_branches/ipp-20120627/Ohana/src/libdvo/include/dvo.h	(revision 34194)
@@ -462,4 +462,10 @@
 float PhotKronAve (PhotCode *code, Average *average, SecFilt *secfilt);
 
+float PhotZeroPoint (Measure *measure, Average *average, SecFilt *secfilt);
+float PhotAveFluxPSF (PhotCode *code, Average *average, SecFilt *secfilt);
+float PhotAvedFluxPSF (PhotCode *code, Average *average, SecFilt *secfilt);
+float PhotAveFluxKron (PhotCode *code, Average *average, SecFilt *secfilt);
+float PhotAvedFluxKron (PhotCode *code, Average *average, SecFilt *secfilt);
+
 float PhotMstdev (PhotCode *code, Average *average, SecFilt *secfilt);
 float PhotM20 (PhotCode *code, Average *average, SecFilt *secfilt);
Index: branches/eam_branches/ipp-20120627/Ohana/src/libdvo/include/dvodb.h
===================================================================
--- branches/eam_branches/ipp-20120627/Ohana/src/libdvo/include/dvodb.h	(revision 34191)
+++ branches/eam_branches/ipp-20120627/Ohana/src/libdvo/include/dvodb.h	(revision 34194)
@@ -45,4 +45,8 @@
       MAG_80, 
       MAG_UC_DIST, 
+      MAG_FLUX_PSF,
+      MAG_FLUX_PSF_ERR,
+      MAG_FLUX_KRON,
+      MAG_FLUX_KRON_ERR,
 };
 
@@ -136,4 +140,8 @@
       MEAS_MCAL_OFFSET,
       MEAS_FLAT,
+      MEAS_FLUX_PSF,
+      MEAS_FLUX_PSF_ERR,
+      MEAS_FLUX_KRON,
+      MEAS_FLUX_KRON_ERR,
 };
 
Index: branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dbExtractAverages.c
===================================================================
--- branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dbExtractAverages.c	(revision 34191)
+++ branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dbExtractAverages.c	(revision 34194)
@@ -246,4 +246,17 @@
 	  value.Flt = PhotUCdist (field->photcode, average, secfilt);
 	  break;
+
+	case MAG_FLUX_PSF:
+	  value.Flt = PhotAveFluxPSF (field->photcode, average, secfilt);
+	  break;
+	case MAG_FLUX_PSF_ERR:
+	  value.Flt = PhotAvedFluxPSF (field->photcode, average, secfilt);
+	  break;
+	case MAG_FLUX_KRON:
+	  value.Flt = PhotAveFluxKron (field->photcode, average, secfilt);
+	  break;
+	case MAG_FLUX_KRON_ERR:
+	  value.Flt = PhotAvedFluxKron (field->photcode, average, secfilt);
+	  break;
       }
       break;
Index: branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dbExtractMeasures.c
===================================================================
--- branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dbExtractMeasures.c	(revision 34191)
+++ branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dbExtractMeasures.c	(revision 34194)
@@ -164,4 +164,16 @@
 	  if (Nsec == -1) break;
 	  value.Int = secfilt[Nsec].Nused;
+	  break;
+	case MAG_FLUX_PSF:
+	  value.Flt = PhotAveFluxPSF (field->photcode, average, secfilt);
+	  break;
+	case MAG_FLUX_PSF_ERR:
+	  value.Flt = PhotAvedFluxPSF (field->photcode, average, secfilt);
+	  break;
+	case MAG_FLUX_KRON:
+	  value.Flt = PhotAveFluxKron (field->photcode, average, secfilt);
+	  break;
+	case MAG_FLUX_KRON_ERR:
+	  value.Flt = PhotAvedFluxKron (field->photcode, average, secfilt);
 	  break;
       }
@@ -510,5 +522,16 @@
       break;
 
-      // add the star/galaxy sep -- 
+    case MEAS_FLUX_PSF: /* OK */
+      value.Flt = measure[0].FluxPSF;
+      break;
+    case MEAS_FLUX_PSF_ERR: /* OK */
+      value.Flt = measure[0].dFluxPSF;
+      break;
+    case MEAS_FLUX_KRON: /* OK */
+      value.Flt = measure[0].FluxKron;
+      break;
+    case MEAS_FLUX_KRON_ERR: /* OK */
+      value.Flt = measure[0].dFluxKron;
+      break;
   }
   return (value);
Index: branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dbFields.c
===================================================================
--- branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dbFields.c	(revision 34191)
+++ branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dbFields.c	(revision 34194)
@@ -30,30 +30,34 @@
 int GetMagMode (char *string) {
 
-  if (!strcasecmp (string, "inst"))      return (MAG_INST);
-  if (!strcasecmp (string, "cat"))       return (MAG_CAT);
-  if (!strcasecmp (string, "sys"))       return (MAG_SYS);
-  if (!strcasecmp (string, "rel"))       return (MAG_REL);
-  if (!strcasecmp (string, "cal"))       return (MAG_CAL);
-  if (!strcasecmp (string, "ave"))       return (MAG_AVE);
-  if (!strcasecmp (string, "ref"))       return (MAG_REF);
-  if (!strcasecmp (string, "ap"))        return (MAG_APER);
-  if (!strcasecmp (string, "aper"))      return (MAG_APER);
-  if (!strcasecmp (string, "aperinst"))  return (MAG_APER_INST);
-  if (!strcasecmp (string, "aper_inst")) return (MAG_APER_INST);
-  if (!strcasecmp (string, "kron"))      return (MAG_KRON);
-  if (!strcasecmp (string, "kroninst"))  return (MAG_KRON_INST);
-  if (!strcasecmp (string, "kron_inst")) return (MAG_KRON_INST);
-  if (!strcasecmp (string, "kronerr"))   return (MAG_KRON_ERR);
-  if (!strcasecmp (string, "err"))       return (MAG_ERR);
-  if (!strcasecmp (string, "aveerr"))    return (MAG_AVE_ERR);
-  if (!strcasecmp (string, "photflags")) return (MAG_PHOT_FLAGS);
-  if (!strcasecmp (string, "flags"))     return (MAG_PHOT_FLAGS);
-  if (!strcasecmp (string, "chisq"))     return (MAG_CHISQ);
-  if (!strcasecmp (string, "ncode"))     return (MAG_NCODE);
-  if (!strcasecmp (string, "nphot"))     return (MAG_NPHOT);
-  if (!strcasecmp (string, "stdev"))     return (MAG_STDEV);
-  if (!strcasecmp (string, "20"))        return (MAG_20);
-  if (!strcasecmp (string, "80"))        return (MAG_80);
-  if (!strcasecmp (string, "ucdist"))    return (MAG_UC_DIST);
+  if (!strcasecmp (string, "inst"))        return (MAG_INST);
+  if (!strcasecmp (string, "cat"))         return (MAG_CAT);
+  if (!strcasecmp (string, "sys"))         return (MAG_SYS);
+  if (!strcasecmp (string, "rel"))         return (MAG_REL);
+  if (!strcasecmp (string, "cal"))         return (MAG_CAL);
+  if (!strcasecmp (string, "ave"))         return (MAG_AVE);
+  if (!strcasecmp (string, "ref"))         return (MAG_REF);
+  if (!strcasecmp (string, "ap"))          return (MAG_APER);
+  if (!strcasecmp (string, "aper"))        return (MAG_APER);
+  if (!strcasecmp (string, "aperinst"))    return (MAG_APER_INST);
+  if (!strcasecmp (string, "aper_inst"))   return (MAG_APER_INST);
+  if (!strcasecmp (string, "kron"))        return (MAG_KRON);
+  if (!strcasecmp (string, "kroninst"))    return (MAG_KRON_INST);
+  if (!strcasecmp (string, "kron_inst"))   return (MAG_KRON_INST);
+  if (!strcasecmp (string, "kronerr"))     return (MAG_KRON_ERR);
+  if (!strcasecmp (string, "err"))         return (MAG_ERR);
+  if (!strcasecmp (string, "aveerr"))      return (MAG_AVE_ERR);
+  if (!strcasecmp (string, "photflags"))   return (MAG_PHOT_FLAGS);
+  if (!strcasecmp (string, "flags"))       return (MAG_PHOT_FLAGS);
+  if (!strcasecmp (string, "chisq"))       return (MAG_CHISQ);
+  if (!strcasecmp (string, "ncode"))       return (MAG_NCODE);
+  if (!strcasecmp (string, "nphot"))       return (MAG_NPHOT);
+  if (!strcasecmp (string, "stdev"))       return (MAG_STDEV);
+  if (!strcasecmp (string, "20"))          return (MAG_20);
+  if (!strcasecmp (string, "80"))          return (MAG_80);
+  if (!strcasecmp (string, "ucdist"))      return (MAG_UC_DIST);
+  if (!strcasecmp (string, "fluxpsf"))     return (MAG_FLUX_PSF);
+  if (!strcasecmp (string, "fluxpsferr"))  return (MAG_FLUX_PSF_ERR);
+  if (!strcasecmp (string, "fluxkron"))    return (MAG_FLUX_KRON);
+  if (!strcasecmp (string, "fluxkronerr")) return (MAG_FLUX_KRON_ERR);
   return (MAG_NONE);
 }
@@ -235,4 +239,10 @@
   if (!strcasecmp (fieldName, "MCAL_OFFSET"))    ESCAPE (MEAS_MCAL_OFFSET,    MAG_NONE, OPIHI_FLT);
   if (!strcasecmp (fieldName, "FLAT"))    	 ESCAPE (MEAS_FLAT,           MAG_NONE, OPIHI_FLT);
+  if (!strcasecmp (fieldName, "FLUX"))       	 ESCAPE (MEAS_FLUX_PSF,       MAG_NONE, OPIHI_FLT);
+  if (!strcasecmp (fieldName, "FLUX_ERR"))       ESCAPE (MEAS_FLUX_PSF_ERR,   MAG_NONE, OPIHI_FLT);
+  if (!strcasecmp (fieldName, "FLUX_PSF"))       ESCAPE (MEAS_FLUX_PSF,       MAG_NONE, OPIHI_FLT);
+  if (!strcasecmp (fieldName, "FLUX_PSF_ERR"))   ESCAPE (MEAS_FLUX_PSF_ERR,   MAG_NONE, OPIHI_FLT);
+  if (!strcasecmp (fieldName, "FLUX_KRON"))      ESCAPE (MEAS_FLUX_KRON,      MAG_NONE, OPIHI_FLT);
+  if (!strcasecmp (fieldName, "FLUX_KRON_ERR"))  ESCAPE (MEAS_FLUX_KRON_ERR,  MAG_NONE, OPIHI_FLT);
 
   // for words that don't parse, try a photcode
Index: branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_1.c
===================================================================
--- branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_1.c	(revision 34191)
+++ branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_1.c	(revision 34194)
@@ -61,4 +61,8 @@
     out[i].Mkron      = NAN;
     out[i].dMkron     = NAN;
+    out[i].FluxPSF    = NAN;
+    out[i].dFluxPSF   = NAN;
+    out[i].FluxKron   = NAN;
+    out[i].dFluxKron  = NAN;
   }
   return (out);
@@ -223,5 +227,8 @@
     out[i].Mkron       = NAN;
     out[i].dMkron      = NAN;
-    out[i].extNsigma   = NAN;
+    out[i].FluxPSF     = NAN;
+    out[i].dFluxPSF    = NAN;
+    out[i].FluxKron    = NAN;
+    out[i].dFluxKron   = NAN;
  }
   return (out);
Index: branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_2.c
===================================================================
--- branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_2.c	(revision 34191)
+++ branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_2.c	(revision 34194)
@@ -58,4 +58,8 @@
     out[i].Mkron      = NAN;
     out[i].dMkron     = NAN;
+    out[i].FluxPSF    = NAN;
+    out[i].dFluxPSF   = NAN;
+    out[i].FluxKron   = NAN;
+    out[i].dFluxKron  = NAN;
   }
   return (out);
@@ -217,5 +221,8 @@
     out[i].Mkron       = NAN;
     out[i].dMkron      = NAN;
-    out[i].extNsigma   = NAN;
+    out[i].FluxPSF     = NAN;
+    out[i].dFluxPSF    = NAN;
+    out[i].FluxKron    = NAN;
+    out[i].dFluxKron   = NAN;
  }
   return (out);
Index: branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_REF.c
===================================================================
--- branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_REF.c	(revision 34191)
+++ branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_REF.c	(revision 34194)
@@ -56,4 +56,8 @@
     out[i].Mkron      = NAN;
     out[i].dMkron     = NAN;
+    out[i].FluxPSF    = NAN;
+    out[i].dFluxPSF   = NAN;
+    out[i].FluxKron   = NAN;
+    out[i].dFluxKron  = NAN;
   }
   return (out);
@@ -177,5 +181,8 @@
     out[i].Mkron       = NAN;
     out[i].dMkron      = NAN;
-    out[i].extNsigma   = NAN;
+    out[i].FluxPSF     = NAN;
+    out[i].dFluxPSF    = NAN;
+    out[i].FluxKron    = NAN;
+    out[i].dFluxKron   = NAN;
  }
   return (out);
Index: branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_V1.c
===================================================================
--- branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_V1.c	(revision 34191)
+++ branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_V1.c	(revision 34194)
@@ -56,4 +56,8 @@
     out[i].Mkron      = NAN;
     out[i].dMkron     = NAN;
+    out[i].FluxPSF    = NAN;
+    out[i].dFluxPSF   = NAN;
+    out[i].FluxKron   = NAN;
+    out[i].dFluxKron  = NAN;
   }
   return (out);
@@ -221,5 +225,8 @@
     out[i].Mkron       = NAN;
     out[i].dMkron      = NAN;
-    out[i].extNsigma   = NAN;
+    out[i].FluxPSF     = NAN;
+    out[i].dFluxPSF    = NAN;
+    out[i].FluxKron    = NAN;
+    out[i].dFluxKron   = NAN;
  }
   return (out);
Index: branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_V2.c
===================================================================
--- branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_V2.c	(revision 34191)
+++ branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_V2.c	(revision 34194)
@@ -57,4 +57,8 @@
     out[i].Mkron      = NAN;
     out[i].dMkron     = NAN;
+    out[i].FluxPSF    = NAN;
+    out[i].dFluxPSF   = NAN;
+    out[i].FluxKron   = NAN;
+    out[i].dFluxKron  = NAN;
   }
   return (out);
@@ -224,5 +228,8 @@
     out[i].Mkron       = NAN;
     out[i].dMkron      = NAN;
-    out[i].extNsigma   = NAN;
+    out[i].FluxPSF    = NAN;
+    out[i].dFluxPSF   = NAN;
+    out[i].FluxKron   = NAN;
+    out[i].dFluxKron  = NAN;
  }
   return (out);
Index: branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_V3.c
===================================================================
--- branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_V3.c	(revision 34191)
+++ branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_V3.c	(revision 34194)
@@ -57,4 +57,8 @@
     out[i].Mkron      = NAN;
     out[i].dMkron     = NAN;
+    out[i].FluxPSF    = NAN;
+    out[i].dFluxPSF   = NAN;
+    out[i].FluxKron   = NAN;
+    out[i].dFluxKron  = NAN;
   }
   return (out);
@@ -222,5 +226,8 @@
     out[i].Mkron       = NAN;
     out[i].dMkron      = NAN;
-    out[i].extNsigma   = NAN;
+    out[i].FluxPSF    = NAN;
+    out[i].dFluxPSF   = NAN;
+    out[i].FluxKron   = NAN;
+    out[i].dFluxKron  = NAN;
  }
   return (out);
Index: branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_V4.c
===================================================================
--- branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_V4.c	(revision 34191)
+++ branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_V4.c	(revision 34194)
@@ -21,4 +21,8 @@
     out[i].dMcal      = in[i].dMcal;
     out[i].dt         = in[i].dt;
+    out[i].FluxPSF    = in[i].FluxPSF;
+    out[i].dFluxPSF   = in[i].dFluxPSF;
+    out[i].FluxKron   = in[i].FluxKron;
+    out[i].dFluxKron  = in[i].dFluxKron;
     out[i].airmass    = in[i].airmass;
     out[i].az         = in[i].az;
@@ -77,4 +81,8 @@
     out[i].dMcal      = in[i].dMcal;
     out[i].dt         = in[i].dt;
+    out[i].FluxPSF    = in[i].FluxPSF;
+    out[i].dFluxPSF   = in[i].dFluxPSF;
+    out[i].FluxKron   = in[i].FluxKron;
+    out[i].dFluxKron  = in[i].dFluxKron;
     out[i].airmass    = in[i].airmass;
     out[i].az         = in[i].az;
@@ -213,5 +221,8 @@
     out[i].dM          = in[i].dM;      
     out[i].Xm          = in[i].Xm;     
-    out[i].extNsigma   = in[i].extNsigma;     
+    out[i].FluxPSF     = in[i].FluxPSF;
+    out[i].dFluxPSF    = in[i].dFluxPSF;
+    out[i].FluxKron    = in[i].FluxKron;
+    out[i].dFluxKron   = in[i].dFluxKron;
     out[i].flags       = in[i].flags;     
     out[i].Ncode       = in[i].Ncode;
@@ -239,5 +250,8 @@
     out[i].dM          = in[i].dM;      
     out[i].Xm          = in[i].Xm;     
-    out[i].extNsigma   = in[i].extNsigma;     
+    out[i].FluxPSF     = in[i].FluxPSF;
+    out[i].dFluxPSF    = in[i].dFluxPSF;
+    out[i].FluxKron    = in[i].FluxKron;
+    out[i].dFluxKron   = in[i].dFluxKron;
     out[i].flags       = in[i].flags;     
     out[i].Ncode       = in[i].Ncode;
Index: branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_elixir.c
===================================================================
--- branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_elixir.c	(revision 34191)
+++ branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_elixir.c	(revision 34194)
@@ -68,4 +68,8 @@
     out[i].Mkron      = NAN;
     out[i].dMkron     = NAN;
+    out[i].FluxPSF    = NAN;
+    out[i].dFluxPSF   = NAN;
+    out[i].FluxKron   = NAN;
+    out[i].dFluxKron  = NAN;
   }
   return (out);
@@ -232,5 +236,8 @@
     out[i].Mkron       = NAN;
     out[i].dMkron      = NAN;
-    out[i].extNsigma   = NAN;
+    out[i].FluxPSF    = NAN;
+    out[i].dFluxPSF   = NAN;
+    out[i].FluxKron   = NAN;
+    out[i].dFluxKron  = NAN;
   }
   return (out);
Index: branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_loneos.c
===================================================================
--- branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_loneos.c	(revision 34191)
+++ branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_loneos.c	(revision 34194)
@@ -70,4 +70,8 @@
     out[i].Mkron      = NAN;
     out[i].dMkron     = NAN;
+    out[i].FluxPSF    = NAN;
+    out[i].dFluxPSF   = NAN;
+    out[i].FluxKron   = NAN;
+    out[i].dFluxKron  = NAN;
   }
   return (out);
@@ -225,5 +229,8 @@
     out[i].Mkron       = NAN;
     out[i].dMkron      = NAN;
-    out[i].extNsigma   = NAN;
+    out[i].FluxPSF    = NAN;
+    out[i].dFluxPSF   = NAN;
+    out[i].FluxKron   = NAN;
+    out[i].dFluxKron  = NAN;
   }
   return (out);
Index: branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_0.c
===================================================================
--- branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_0.c	(revision 34191)
+++ branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_0.c	(revision 34194)
@@ -65,4 +65,8 @@
     out[i].Mkron      = NAN;
     out[i].dMkron     = NAN;
+    out[i].FluxPSF     = NAN;
+    out[i].dFluxPSF    = NAN;
+    out[i].FluxKron    = NAN;
+    out[i].dFluxKron   = NAN;
   }
   return (out);
@@ -232,5 +236,8 @@
     out[i].Mkron       = NAN;
     out[i].dMkron      = NAN;
-    out[i].extNsigma   = NAN;
+    out[i].FluxPSF     = NAN;
+    out[i].dFluxPSF    = NAN;
+    out[i].FluxKron    = NAN;
+    out[i].dFluxKron   = NAN;
  }
   return (out);
Index: branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_1.c
===================================================================
--- branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_1.c	(revision 34191)
+++ branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_1.c	(revision 34194)
@@ -65,4 +65,8 @@
     out[i].Mkron      = NAN;
     out[i].dMkron     = NAN;
+    out[i].FluxPSF     = NAN;
+    out[i].dFluxPSF    = NAN;
+    out[i].FluxKron    = NAN;
+    out[i].dFluxKron   = NAN;
   }
   return (out);
@@ -232,5 +236,8 @@
     out[i].Mkron       = NAN;
     out[i].dMkron      = NAN;
-    out[i].extNsigma   = NAN;
+    out[i].FluxPSF     = NAN;
+    out[i].dFluxPSF    = NAN;
+    out[i].FluxKron    = NAN;
+    out[i].dFluxKron   = NAN;
  }
   return (out);
Index: branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_photcode_ops.c
===================================================================
--- branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_photcode_ops.c	(revision 34191)
+++ branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_photcode_ops.c	(revision 34194)
@@ -360,4 +360,23 @@
   Msys = Mcat + Mcol;
   return (Msys);
+}
+
+float PhotZeroPoint (Measure *measure, Average *average, SecFilt *secfilt) {
+
+  int Np;
+  float ZP;
+  PhotCode *code;
+
+  Np = photcodes[0].hashcode[measure[0].photcode];
+  if (Np == -1) return (NAN);
+
+  if (photcodes[0].code[Np].type == PHOT_REF) {
+    ZP = 0.0;
+    return (ZP);
+  }
+  code = &photcodes[0].code[Np];
+  ZP = code[0].K*(measure[0].airmass - 1.000) + SCALE*code[0].C;
+
+  return (ZP);
 }
 
@@ -553,4 +572,52 @@
 }
 
+float PhotAveFluxPSF (PhotCode *code, Average *average, SecFilt *secfilt) {
+
+  int Ns;
+  float Fpsf;
+
+  if (code == NULL) return NAN;
+
+  Ns = photcodes[0].hashNsec[code[0].code];
+  Fpsf = (Ns == -1) ? NAN : secfilt[Ns].FluxPSF;
+  return (Fpsf);
+}
+
+float PhotAvedFluxPSF (PhotCode *code, Average *average, SecFilt *secfilt) {
+
+  int Ns;
+  float dFpsf;
+
+  if (code == NULL) return NAN;
+
+  Ns = photcodes[0].hashNsec[code[0].code];
+  dFpsf = (Ns == -1) ? NAN : secfilt[Ns].dFluxPSF;
+  return (dFpsf);
+}
+
+float PhotAveFluxKron (PhotCode *code, Average *average, SecFilt *secfilt) {
+
+  int Ns;
+  float Fkron;
+
+  if (code == NULL) return NAN;
+
+  Ns = photcodes[0].hashNsec[code[0].code];
+  Fkron = (Ns == -1) ? NAN : secfilt[Ns].FluxKron;
+  return (Fkron);
+}
+
+float PhotAvedFluxKron (PhotCode *code, Average *average, SecFilt *secfilt) {
+
+  int Ns;
+  float dFkron;
+
+  if (code == NULL) return NAN;
+
+  Ns = photcodes[0].hashNsec[code[0].code];
+  dFkron = (Ns == -1) ? NAN : secfilt[Ns].dFluxKron;
+  return (dFkron);
+}
+
 float PhotM20 (PhotCode *code, Average *average, SecFilt *secfilt) {
 
Index: branches/eam_branches/ipp-20120627/Ohana/src/relphot/src/StarOps.c
===================================================================
--- branches/eam_branches/ipp-20120627/Ohana/src/relphot/src/StarOps.c	(revision 34191)
+++ branches/eam_branches/ipp-20120627/Ohana/src/relphot/src/StarOps.c	(revision 34194)
@@ -360,4 +360,9 @@
       int haveSynth = FALSE;
       int haveStack = FALSE;
+
+      float stackFluxPSF = NAN;
+      float stackdFluxPSF = NAN;
+      float stackFluxKron = NAN;
+      float stackdFluxKron = NAN;
 
       int forceSynth = FALSE;
@@ -427,4 +432,11 @@
 	    if (pass < 2) continue;
 	    haveStack = TRUE;
+	    float zp = Mcal + Mmos + Mgrid + PhotZeroPoint (&catalog[Nc].measure[m], &catalog[Nc].average[j], &catalog[Nc].secfilt[j*Nsecfilt]);
+	    float zpFactor = pow(10.0, -0.4*zp);
+	    // need to put in AB mag factor to get to Janskies (or uJy?)
+	    stackFluxPSF   = zpFactor * catalog[Nc].measure[m].FluxPSF;
+	    stackdFluxPSF  = zpFactor * catalog[Nc].measure[m].dFluxPSF;
+	    stackFluxKron  = zpFactor * catalog[Nc].measure[m].FluxKron;
+	    stackdFluxKron = zpFactor * catalog[Nc].measure[m].dFluxKron;
 	  }
 
@@ -565,4 +577,11 @@
 	catalog[Nc].secfilt[Nsecfilt*j+Nsec].dMkron = kronstats.error; 
 
+	if (haveStack) {
+	  catalog[Nc].secfilt[Nsecfilt*j+Nsec].FluxPSF = stackFluxPSF;
+	  catalog[Nc].secfilt[Nsecfilt*j+Nsec].dFluxPSF = stackdFluxPSF;
+	  catalog[Nc].secfilt[Nsecfilt*j+Nsec].FluxKron = stackFluxKron;
+	  catalog[Nc].secfilt[Nsecfilt*j+Nsec].dFluxKron = stackdFluxKron;
+	}
+
 	// NOTE: for 2MASS measurements, Next should be 1, as should N
 	if ((Next > 0) && (Next > 0.5*N)) {
