Index: trunk/Ohana/src/libdvo/Makefile
===================================================================
--- trunk/Ohana/src/libdvo/Makefile	(revision 40063)
+++ trunk/Ohana/src/libdvo/Makefile	(revision 40291)
@@ -50,4 +50,5 @@
 $(DESTINC)/ps1_v4_defs.h \
 $(DESTINC)/ps1_v5_defs.h \
+$(DESTINC)/ps1_v6_defs.h \
 $(DESTINC)/ps1_v5_ld_defs.h \
 $(DESTINC)/ps1_ref_defs.h \
@@ -100,4 +101,5 @@
 $(SRC)/dvo_convert_PS1_V4.$(ARCH).o \
 $(SRC)/dvo_convert_PS1_V5.$(ARCH).o \
+$(SRC)/dvo_convert_PS1_V6.$(ARCH).o \
 $(SRC)/dvo_convert_PS1_V5_LOAD.$(ARCH).o \
 $(SRC)/dvo_convert_PS1_REF.$(ARCH).o \
Index: trunk/Ohana/src/libdvo/doc/notes.txt
===================================================================
--- trunk/Ohana/src/libdvo/doc/notes.txt	(revision 40063)
+++ trunk/Ohana/src/libdvo/doc/notes.txt	(revision 40291)
@@ -16,5 +16,5 @@
    uppercase, eg: AveragePanstarrs_DEV_0, AveragePanstarrs_PS1_2).
 
-4) create a DVOTableFormat entry for the new format
+4) create a DVOCatFormat entry for the new format
    (libdvo/include/dvo.h).  the naming convention is DVO_FORMAT_FOO.
 
@@ -37,5 +37,7 @@
    make is easy to identify the new changes needed.
 
-10) add the new format to the section at the end of dvo_image.c
+10a) if the Image structure must be changed, this is done in libdvo/include/libdvo_astro.h, not autocode
+10b) add the new format to the section at the end of dvo_image.c
+10c) update gfits_table_mkheader_Image in dvo_image.c to match modifications to Image (if any)
 
 11) add the new format to the dvo_image_raw.c
Index: trunk/Ohana/src/libdvo/include/dvo.h
===================================================================
--- trunk/Ohana/src/libdvo/include/dvo.h	(revision 40063)
+++ trunk/Ohana/src/libdvo/include/dvo.h	(revision 40291)
@@ -33,4 +33,5 @@
   DVO_FORMAT_PS1_V4,
   DVO_FORMAT_PS1_V5,
+  DVO_FORMAT_PS1_V6,
   DVO_FORMAT_PS1_V5_LOAD,
 } DVOCatFormat;
@@ -220,31 +221,32 @@
 /* Secfilt.flags values -- these values are 32 bit (as of PS1_V1) */
 typedef enum {
-  ID_SECF_STAR_FEW    	= 0x00000001, // used within relphot: skip star
-  ID_SECF_STAR_POOR   	= 0x00000002, // used within relphot: skip star
-  ID_SECF_USE_SYNTH   	= 0x00000004, // synthetic photometry used in average measurement
-  ID_SECF_USE_UBERCAL 	= 0x00000008, // ubercal photometry used in average measurement
-  ID_SECF_HAS_PS1     	= 0x00000010, // PS1 photometry used in average measurement
-  ID_SECF_HAS_PS1_STACK = 0x00000020, // PS1 stack photometry exists
-  ID_SECF_HAS_TYCHO   	= 0x00000040, // Tycho photometry used for synth mags
-  ID_SECF_FIX_SYNTH   	= 0x00000080, // synth mags repaired with zpt map
-  ID_SECF_RANK_0    	= 0x00000100, // average magnitude uses rank 0 values
-  ID_SECF_RANK_1    	= 0x00000200, // average magnitude uses rank 1 values
-  ID_SECF_RANK_2    	= 0x00000400, // average magnitude uses rank 2 values
-  ID_SECF_RANK_3    	= 0x00000800, // average magnitude uses rank 3 values
-  ID_SECF_RANK_4    	= 0x00001000, // average magnitude uses rank 4 values
-  ID_SECF_OBJ_EXT_PSPS  = 0x00002000, // In PSPS ID_SECF_OBJ_EXT is moved here so it fits within 16 bits 
-  ID_SECF_STACK_PRIMARY = 0x00004000, // PS1 stack photometry comes from primary skycell
-  ID_SECF_STACK_BESTDET = 0x00008000, // PS1 stack best measurement is a detection (not forced)
-  ID_SECF_STACK_PRIMDET = 0x00010000, // PS1 stack primary measurement is a detection (not forced)
-
-  ID_SECF_HAS_SDSS      = 0x00100000, // this photcode has SDSS photometry
-  ID_SECF_HAS_HSC       = 0x00200000, // this photcode has HSC  photometry
-  ID_SECF_HAS_CFH       = 0x00400000, // this photcode has CFH  photometry (mostly Megacam)
-  ID_SECF_HAS_DES       = 0x00800000, // this photcode has DES  photometry
-
-  ID_SECF_OBJ_EXT       = 0x01000000, // extended in this band
-
-  ID_SECF_CHIP_FLAGS    = 0x01003f1f, // all chip-related bits (used to reset the correct bits only)
-  ID_SECF_STACK_FLAGS   = 0x00004020, // all stack-related bits (
+  ID_SECF_STAR_FEW    		 = 0x00000001, // used within relphot: skip star
+  ID_SECF_STAR_POOR   		 = 0x00000002, // used within relphot: skip star
+  ID_SECF_USE_SYNTH   		 = 0x00000004, // synthetic photometry used in average measurement
+  ID_SECF_USE_UBERCAL 		 = 0x00000008, // ubercal photometry used in average measurement
+  ID_SECF_HAS_PS1     		 = 0x00000010, // PS1 photometry used in average measurement
+  ID_SECF_HAS_PS1_STACK 	 = 0x00000020, // PS1 stack photometry exists
+  ID_SECF_HAS_TYCHO   		 = 0x00000040, // Tycho photometry used for synth mags
+  ID_SECF_FIX_SYNTH   		 = 0x00000080, // synth mags repaired with zpt map
+  ID_SECF_RANK_0    		 = 0x00000100, // average magnitude uses rank 0 values
+  ID_SECF_RANK_1    		 = 0x00000200, // average magnitude uses rank 1 values
+  ID_SECF_RANK_2    		 = 0x00000400, // average magnitude uses rank 2 values
+  ID_SECF_RANK_3    		 = 0x00000800, // average magnitude uses rank 3 values
+  ID_SECF_RANK_4    		 = 0x00001000, // average magnitude uses rank 4 values
+  ID_SECF_OBJ_EXT_PSPS  	 = 0x00002000, // In PSPS ID_SECF_OBJ_EXT is moved here so it fits within 16 bits 
+  ID_SECF_STACK_PRIMARY 	 = 0x00004000, // PS1 stack photometry includes a primary skycell
+  ID_SECF_STACK_BESTDET 	 = 0x00008000, // PS1 stack best measurement is a detection (not forced)
+  ID_SECF_STACK_PRIMDET 	 = 0x00010000, // PS1 stack primary measurement is a detection (not forced)
+  ID_SECF_STACK_PRIMARY_MULTIPLE = 0x00020000, // PS1 stack object has multiple primary measurements
+
+  ID_SECF_HAS_SDSS      	 = 0x00100000, // this photcode has SDSS photometry
+  ID_SECF_HAS_HSC       	 = 0x00200000, // this photcode has HSC  photometry
+  ID_SECF_HAS_CFH       	 = 0x00400000, // this photcode has CFH  photometry (mostly Megacam)
+  ID_SECF_HAS_DES       	 = 0x00800000, // this photcode has DES  photometry
+
+  ID_SECF_OBJ_EXT       	 = 0x01000000, // extended in this band
+
+  ID_SECF_CHIP_FLAGS    	 = 0x01003f1f, // all chip-related bits (used to reset the correct bits only)
+  ID_SECF_STACK_FLAGS   	 = 0x0003c020, // all stack-related bits (
 } DVOSecfiltFlags;
 
@@ -501,6 +503,8 @@
   double         R;
   double         D;
-  float          M;
-  float          Mcal;
+  float          M; // change to Mpsf eventually to disambiguate
+  float          Mkron;
+  float          McalPSF;
+  float          McalAPER;
   float          Mflat;
   float          dM;
@@ -1073,4 +1077,5 @@
 # include "ps1_v4_defs.h"
 # include "ps1_v5_defs.h"
+# include "ps1_v6_defs.h"
 # include "ps1_v5_ld_defs.h"
 # include "ps1_ref_defs.h"
Index: trunk/Ohana/src/libdvo/include/dvodb.h
===================================================================
--- trunk/Ohana/src/libdvo/include/dvodb.h	(revision 40063)
+++ trunk/Ohana/src/libdvo/include/dvodb.h	(revision 40291)
@@ -3,4 +3,11 @@
 
 # define MEASURE_HAS_XCCD 1
+
+// Some values used by code moved to libdvo from opihi.
+enum {OPIHI_NOTYPE, OPIHI_FLT, OPIHI_INT};
+# define opihi_flt double
+// # define opihi_int int64_t
+# define opihi_int long long int
+# define OPIHI_INT_FMT "%lld"
 
 typedef enum {
@@ -236,5 +243,6 @@
       MEAS_EXTERN_ID,
       MEAS_EXPNAME_AS_INT,
-      MEAS_MCAL_OFFSET, // make this a dvoMagOption?
+      MEAS_MCAL_OFFSET_PSF, // make this a dvoMagOption?
+      MEAS_MCAL_OFFSET_APER, // make this a dvoMagOption?
       MEAS_FLAT,
       MEAS_CENTER_OFFSET,
@@ -369,5 +377,6 @@
       IMAGE_XM, 
       IMAGE_AIRMASS, 
-      IMAGE_MCAL, 
+      IMAGE_MCAL_PSF, 
+      IMAGE_MCAL_APER, 
       IMAGE_dMCAL, 
       IMAGE_PHOTCODE, 
@@ -471,15 +480,15 @@
   char    type;
   int     field;
-  // opihi_flt FltValue;
-  // opihi_int IntValue;
-  double FltValue;
-  int IntValue;
+  opihi_flt FltValue;
+  opihi_int IntValue;
+  // double FltValue;
+  // int IntValue;
 } dbStack;
 
 typedef struct {
-  // opihi_flt Flt;
-  // opihi_int Int;
-  double Flt;
-  int Int;
+  opihi_flt Flt;
+  opihi_int Int;
+  // double Flt;
+  // int Int;
 } dbValue;
 
@@ -562,9 +571,4 @@
 int dbExtractImagesReset (void);
 
-// Some values used by code moved to libdvo from opihi.
-enum {OPIHI_NOTYPE, OPIHI_FLT, OPIHI_INT};
-#define opihi_flt double
-#define opihi_int int
-
 #include "get_graphdata.h"
 
Index: trunk/Ohana/src/libdvo/include/libdvo_astro.h
===================================================================
--- trunk/Ohana/src/libdvo/include/libdvo_astro.h	(revision 40063)
+++ trunk/Ohana/src/libdvo/include/libdvo_astro.h	(revision 40291)
@@ -100,7 +100,8 @@
   float            apmifit;              // aperture correction (mag)
   float            dapmifit;             // apmifit error (mag)
-  float            Mcal;                 // calibration mag (mag)
+  float            McalPSF;              // calibration mag (mag)
+  float            McalAPER;             // calibration mag (mag)
   float            dMcal;                // error on Mcal (mag)
-  short            Xm;                   // image chisq (10*log(value))
+  float            McalChiSq;            // image chisq (10*log(value))
   short            photcode;             // identifier for CCD,
   float            exptime;              // exposure time (seconds)
Index: trunk/Ohana/src/libdvo/include/ps1_v6_defs.h
===================================================================
--- trunk/Ohana/src/libdvo/include/ps1_v6_defs.h	(revision 40291)
+++ trunk/Ohana/src/libdvo/include/ps1_v6_defs.h	(revision 40291)
@@ -0,0 +1,26 @@
+Image 		       	*Image_PS1_V6_ToInternal (Image_PS1_V6 *in, off_t Nvalues, off_t Nalloc);
+Image_PS1_V6    	*ImageInternalTo_PS1_V6 (Image *in, off_t Nvalues);
+
+Average 	       	*Average_PS1_V6_ToInternal (Average_PS1_V6 *in, off_t Nvalues, SecFilt **primary);
+Average_PS1_V6          *AverageInternalTo_PS1_V6 (Average *in, off_t Nvalues, SecFilt *primary);
+
+Measure 	       	*Measure_PS1_V6_ToInternal (Average *ave, Measure_PS1_V6 *in, off_t Nvalues);
+Measure_PS1_V6          *MeasureInternalTo_PS1_V6 (Average *ave, Measure *in, off_t Nvalues);
+
+SecFilt 	       	*SecFilt_PS1_V6_ToInternal (SecFilt_PS1_V6 *in, off_t Nvalues);
+SecFilt_PS1_V6          *SecFiltInternalTo_PS1_V6 (SecFilt *in, off_t Nvalues);
+
+Lensobj 	       	*Lensobj_PS1_V6_ToInternal (Lensobj_PS1_V6 *in, off_t Nvalues);
+Lensobj_PS1_V6          *LensobjInternalTo_PS1_V6 (Lensobj *in, off_t Nvalues);
+
+Lensing 	       	*Lensing_PS1_V6_ToInternal (Lensing_PS1_V6 *in, off_t Nvalues);
+Lensing_PS1_V6          *LensingInternalTo_PS1_V6 (Lensing *in, off_t Nvalues);
+
+StarPar 	       	*StarPar_PS1_V6_ToInternal (StarPar_PS1_V6 *in, off_t Nvalues);
+StarPar_PS1_V6          *StarParInternalTo_PS1_V6 (StarPar *in, off_t Nvalues);
+
+GalPhot 	       	*GalPhot_PS1_V6_ToInternal (GalPhot_PS1_V6 *in, off_t Nvalues);
+GalPhot_PS1_V6          *GalPhotInternalTo_PS1_V6 (GalPhot *in, off_t Nvalues);
+
+PhotCode                *PhotCode_PS1_V6_To_Internal (PhotCode_PS1_V6 *in, off_t Nvalues);
+PhotCode_PS1_V6         *PhotCode_Internal_To_PS1_V6 (PhotCode *in, off_t Nvalues);
Index: trunk/Ohana/src/libdvo/src/ImageMetadata.c
===================================================================
--- trunk/Ohana/src/libdvo/src/ImageMetadata.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/ImageMetadata.c	(revision 40291)
@@ -64,5 +64,5 @@
   GET_COLUMN (crval2,   "CRVAL2",         double);
   GET_COLUMN (theta,    "THETA",          float);
-  GET_COLUMN (Mcal,     "MCAL",           float);
+  GET_COLUMN (McalPSF,  "MCAL",           float);
   GET_COLUMN (secz,     "SECZ",           float);
   GET_COLUMN (Xcenter,  "X_CENTER",       float);
@@ -77,5 +77,5 @@
     image[i].crval2   = crval2[i]  ;
     image[i].theta    = theta[i]  ;
-    image[i].Mcal     = Mcal[i]    ;
+    image[i].Mcal     = McalPSF[i]    ;
     image[i].secz     = secz[i]    ;
     image[i].Xcenter  = Xcenter[i] ;
@@ -90,5 +90,5 @@
   free (crval2);
   free (theta);
-  free (Mcal);
+  free (McalPSF);
   free (secz);
   free (Xcenter);
@@ -166,5 +166,5 @@
     theta[i]    = DEG_RAD*atan2(mosaic->pc1_2, mosaic->pc1_1);
 
-    Mcal[i]     = image[i].Mcal;
+    Mcal[i]     = image[i].McalPSF;
     secz[i]     = image[i].secz;
     Xcenter[i]  = 0.5*image[i].NX;
Index: trunk/Ohana/src/libdvo/src/LoadPhotcodesFITS.c
===================================================================
--- trunk/Ohana/src/libdvo/src/LoadPhotcodesFITS.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/LoadPhotcodesFITS.c	(revision 40291)
@@ -64,4 +64,5 @@
   CONVERT_FORMAT("DVO_PHOTCODE_PS1_V4",      PS1_V4);
   CONVERT_FORMAT("DVO_PHOTCODE_PS1_V5",      PS1_V5);
+  CONVERT_FORMAT("DVO_PHOTCODE_PS1_V6",      PS1_V6);
   CONVERT_FORMAT("DVO_PHOTCODE_PS1_V5_LOAD", PS1_V5_LOAD);
 
Index: trunk/Ohana/src/libdvo/src/SavePhotcodesFITS.c
===================================================================
--- trunk/Ohana/src/libdvo/src/SavePhotcodesFITS.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/SavePhotcodesFITS.c	(revision 40291)
@@ -30,9 +30,9 @@
   // for the moment, we simply support the latest photcode format for output
   // XXX update this as needed as new formats are defined
-  PhotCode_PS1_V5 *photcode_output = PhotCode_Internal_To_PS1_V5 (table[0].code, table[0].Ncode);
+  PhotCode_PS1_V6 *photcode_output = PhotCode_Internal_To_PS1_V6 (table[0].code, table[0].Ncode);
 
   /* convert FITS format data to internal format (byteswaps & EXTNAME) */
   if (!gfits_db_create (&db)) return (FALSE);
-  if (!gfits_table_set_PhotCode_PS1_V5 (&db.ftable, photcode_output, table[0].Ncode, TRUE)) return (FALSE);
+  if (!gfits_table_set_PhotCode_PS1_V6 (&db.ftable, photcode_output, table[0].Ncode, TRUE)) return (FALSE);
   if (!gfits_db_save (&db)) return (FALSE);
   if (!gfits_db_close (&db)) return (FALSE);
Index: trunk/Ohana/src/libdvo/src/dbCheckStack.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dbCheckStack.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/dbCheckStack.c	(revision 40291)
@@ -43,5 +43,5 @@
        * an int unless proven otherwise **/
       stack[i].FltValue = strtod (stack[i].name, &c1);
-      stack[i].IntValue = strtol (stack[i].name, &c2, 0);
+      stack[i].IntValue = strtoll (stack[i].name, &c2, 0);
       if (c2 == stack[i].name + strlen (stack[i].name)) {
 	stack[i].type  |= DB_STACK_INT;
Index: trunk/Ohana/src/libdvo/src/dbExtractImages.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dbExtractImages.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/dbExtractImages.c	(revision 40291)
@@ -219,6 +219,9 @@
       break;
 
-    case IMAGE_MCAL:
-      value.Flt = image[N].Mcal;
+    case IMAGE_MCAL_PSF:
+      value.Flt = image[N].McalPSF;
+      break;
+    case IMAGE_MCAL_APER:
+      value.Flt = image[N].McalAPER;
       break;
     case IMAGE_dMCAL:
@@ -226,5 +229,5 @@
       break;
     case IMAGE_XM:
-      value.Flt = pow(10.0, 0.01*image[N].Xm);
+      value.Flt = image[N].McalChiSq;
       break;
     case IMAGE_PHOTCODE:
Index: trunk/Ohana/src/libdvo/src/dbExtractMeasures.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dbExtractMeasures.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/dbExtractMeasures.c	(revision 40291)
@@ -740,5 +740,6 @@
       break;
 
-    case MEAS_MCAL_OFFSET: { value.Flt = measure[0].Mcal; break; }
+    case MEAS_MCAL_OFFSET_PSF:  { value.Flt = measure[0].McalPSF;  break; }
+    case MEAS_MCAL_OFFSET_APER: { value.Flt = measure[0].McalAPER; break; }
     case MEAS_FLAT: { value.Flt = measure[0].Mflat; break; }
 
Index: trunk/Ohana/src/libdvo/src/dbFields.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dbFields.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/dbFields.c	(revision 40291)
@@ -333,4 +333,5 @@
 
   // make a local working copy of fieldName and replace ':' with spaces
+  // XXX memory leak here:
   char *fieldCopy = strcreate(fieldName);
   for (j = 0; fieldCopy[j]; j++) { 
@@ -338,5 +339,7 @@
   }
 
+  // XXX potential memory leak here
   char *firstWord = getword(fieldCopy);
+  if (!firstWord) return FALSE;
   
   // firstWord may be either flux, mag or photcode
@@ -606,5 +609,7 @@
   if (!strcasecmp (fieldName, "SKY"))        	 ESCAPE (MEAS_SKY,            OPIHI_FLT);
   if (!strcasecmp (fieldName, "SKY_ERR"))    	 ESCAPE (MEAS_dSKY,           OPIHI_FLT);
-  if (!strcasecmp (fieldName, "MCAL_OFFSET"))    ESCAPE (MEAS_MCAL_OFFSET,    OPIHI_FLT);
+  if (!strcasecmp (fieldName, "MCAL_OFFSET"))    ESCAPE (MEAS_MCAL_OFFSET_PSF,    OPIHI_FLT);
+  if (!strcasecmp (fieldName, "MCAL_OFFSET_PSF"))  ESCAPE (MEAS_MCAL_OFFSET_PSF,  OPIHI_FLT);
+  if (!strcasecmp (fieldName, "MCAL_OFFSET_APER")) ESCAPE (MEAS_MCAL_OFFSET_APER, OPIHI_FLT);
   if (!strcasecmp (fieldName, "FLAT"))    	 ESCAPE (MEAS_FLAT,           OPIHI_FLT);
   if (!strcasecmp (fieldName, "CENTER_OFFSET"))  ESCAPE (MEAS_CENTER_OFFSET,  OPIHI_FLT);
@@ -842,11 +847,14 @@
   if (!strcasecmp (fieldName, "dapresid" )) ESCAPE (IMAGE_DAPRESID,  OPIHI_FLT);
 
-  if (!strcasecmp (fieldName, "Mcal"     )) ESCAPE (IMAGE_MCAL,      OPIHI_FLT);
-  if (!strcasecmp (fieldName, "dMcal"    )) ESCAPE (IMAGE_dMCAL,     OPIHI_FLT);
-  if (!strcasecmp (fieldName, "Xm"       )) ESCAPE (IMAGE_XM,        OPIHI_FLT);
-  if (!strcasecmp (fieldName, "photcode" )) ESCAPE (IMAGE_PHOTCODE,  OPIHI_INT);
-  if (!strcasecmp (fieldName, "exptime"  )) ESCAPE (IMAGE_EXPTIME,   OPIHI_FLT);
-  if (!strcasecmp (fieldName, "expname"  )) ESCAPE (IMAGE_EXPNAME_AS_INT, OPIHI_INT);
-  if (!strcasecmp (fieldName, "sidtime"  )) ESCAPE (IMAGE_SIDTIME,   OPIHI_FLT);
+  if (!strcasecmp (fieldName, "Mcal"        )) ESCAPE (IMAGE_MCAL_PSF,       OPIHI_FLT);
+  if (!strcasecmp (fieldName, "McalPSF"     )) ESCAPE (IMAGE_MCAL_PSF,       OPIHI_FLT);
+  if (!strcasecmp (fieldName, "McalAPER"    )) ESCAPE (IMAGE_MCAL_APER,      OPIHI_FLT);
+  if (!strcasecmp (fieldName, "McalAPERTURE")) ESCAPE (IMAGE_MCAL_APER,      OPIHI_FLT);
+  if (!strcasecmp (fieldName, "dMcal"       )) ESCAPE (IMAGE_dMCAL,          OPIHI_FLT);
+  if (!strcasecmp (fieldName, "Xm"          )) ESCAPE (IMAGE_XM,             OPIHI_FLT);
+  if (!strcasecmp (fieldName, "photcode"    )) ESCAPE (IMAGE_PHOTCODE,       OPIHI_INT);
+  if (!strcasecmp (fieldName, "exptime"     )) ESCAPE (IMAGE_EXPTIME,        OPIHI_FLT);
+  if (!strcasecmp (fieldName, "expname"     )) ESCAPE (IMAGE_EXPNAME_AS_INT, OPIHI_INT);
+  if (!strcasecmp (fieldName, "sidtime"     )) ESCAPE (IMAGE_SIDTIME,        OPIHI_FLT);
 
   if (!strcasecmp (fieldName, "latitude" )) ESCAPE (IMAGE_LATITUDE,  OPIHI_FLT);
Index: trunk/Ohana/src/libdvo/src/dvo_catalog.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_catalog.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/dvo_catalog.c	(revision 40291)
@@ -57,4 +57,5 @@
   if (!strcasecmp (catformat, "PS1_V4"))          return (DVO_FORMAT_PS1_V4);
   if (!strcasecmp (catformat, "PS1_V5"))          return (DVO_FORMAT_PS1_V5);
+  if (!strcasecmp (catformat, "PS1_V6"))          return (DVO_FORMAT_PS1_V6);
   if (!strcasecmp (catformat, "PS1_V5_LOAD"))     return (DVO_FORMAT_PS1_V5_LOAD);
   if (!strcasecmp (catformat, "PS1_REF"))         return (DVO_FORMAT_PS1_REF);
@@ -234,17 +235,17 @@
 
   if (mode & SECFILT_RESET_CHIP) {
-    secfilt->M           = NAN;
-    secfilt->dM          = NAN;
-    secfilt->Map         = NAN;
-    secfilt->dMap        = NAN;
-    secfilt->sMap        = NAN;
-    secfilt->Mkron       = NAN;
-    secfilt->dMkron      = NAN;
-    secfilt->sMkron      = NAN;
+    secfilt->MpsfChp     = NAN;
+    secfilt->dMpsfChp    = NAN;
+    secfilt->sMpsfChp    = NAN;
+    secfilt->MapChp      = NAN;
+    secfilt->dMapChp     = NAN;
+    secfilt->sMapChp     = NAN;
+    secfilt->MkronChp    = NAN;
+    secfilt->dMkronChp   = NAN;
+    secfilt->sMkronChp   = NAN;
 
     secfilt->psfQfMax     = NAN;
     secfilt->psfQfPerfMax = NAN;
 
-    secfilt->Mstdev      = NAN;
     secfilt->Mmin        = NAN;
     secfilt->Mmax        = NAN;
@@ -316,5 +317,6 @@
  measure->Mkron     = NAN;
  measure->dMkron    = NAN;
- measure->Mcal      = NAN;
+ measure->McalPSF   = NAN;
+ measure->McalAPER  = NAN;
  measure->dMcal     = NAN;
  measure->dt        = NAN;
@@ -343,5 +345,4 @@
 
  measure->Mflat     = 0.0;
- measure->dummy2    = 0;
 
  measure->Sky       = NAN;
@@ -394,5 +395,6 @@
  measure->D         = NAN;
  measure->M         = NAN;
- measure->Mcal      = NAN;
+ measure->McalPSF   = NAN;
+ measure->McalAPER  = NAN;
  measure->dM        = NAN;
 
@@ -922,12 +924,12 @@
     for (in = out = i = 0; i < catalog[0].Naverage; i++) {
       for (j = 0; j < catalog[0].Nsecfilt; j++, in++, out++) {
-	outsec[out].M  	   = insec[in].M;
-	outsec[out].dM 	   = insec[in].dM;
-	outsec[out].Mchisq = insec[in].Mchisq;
+	outsec[out].MpsfChp  = insec[in].MpsfChp;
+	outsec[out].dMpsfChp = insec[in].dMpsfChp;
+	outsec[out].Mchisq   = insec[in].Mchisq;
       }
       for (j = 0; j < Nextra; j++, out++) {
-	outsec[out].M  	   = NAN;
-	outsec[out].dM 	   = NAN;
-	outsec[out].Mchisq = NAN;
+	outsec[out].MpsfChp  = NAN;
+	outsec[out].dMpsfChp = NAN;
+	outsec[out].Mchisq   = NAN;
       }
     }
Index: trunk/Ohana/src/libdvo/src/dvo_catalog_raw.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_catalog_raw.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/dvo_catalog_raw.c	(revision 40291)
@@ -91,4 +91,5 @@
       FORMAT_CASE (PS1_V4,      PS1_V4);
       FORMAT_CASE (PS1_V5,      PS1_V5);
+      FORMAT_CASE (PS1_V6,      PS1_V6);
       FORMAT_CASE (PS1_V5_LOAD, PS1_V5_LOAD);
       FORMAT_CASE (PS1_REF,     PS1_REF);
@@ -288,4 +289,5 @@
   if (catalog[0].catformat == DVO_FORMAT_PS1_V4)          gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PS1_V4");
   if (catalog[0].catformat == DVO_FORMAT_PS1_V5)          gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PS1_V5");
+  if (catalog[0].catformat == DVO_FORMAT_PS1_V6)          gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PS1_V6");
   if (catalog[0].catformat == DVO_FORMAT_PS1_V5_LOAD)     gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PS1_V5_LOAD");
   if (catalog[0].catformat == DVO_FORMAT_PS1_REF)         gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PS1_REF");
@@ -394,4 +396,5 @@
       FORMAT_CASE (PS1_V4,      PS1_V4);
       FORMAT_CASE (PS1_V5,      PS1_V5);
+      FORMAT_CASE (PS1_V6,      PS1_V6);
       FORMAT_CASE (PS1_V5_LOAD, PS1_V5_LOAD);
       FORMAT_CASE (PS1_REF,     PS1_REF);
@@ -448,4 +451,5 @@
       FORMAT_CASE (PS1_V4,      PS1_V4);
       FORMAT_CASE (PS1_V5,      PS1_V5);
+      FORMAT_CASE (PS1_V6,      PS1_V6);
       FORMAT_CASE (PS1_V5_LOAD, PS1_V5_LOAD);
       FORMAT_CASE (PS1_REF,     PS1_REF);
@@ -505,4 +509,5 @@
       FORMAT_CASE (PS1_V3,      PS1_V3);
       FORMAT_CASE (PS1_V5,      PS1_V5);
+      FORMAT_CASE (PS1_V6,      PS1_V6);
       FORMAT_CASE (PS1_V5_LOAD, PS1_V5_LOAD);
       FORMAT_CASE (PS1_REF,     PS1_REF);
@@ -559,4 +564,5 @@
       FORMAT_CASE (PS1_V4,      PS1_V4);
       FORMAT_CASE (PS1_V5,      PS1_V5);
+      FORMAT_CASE (PS1_V6,      PS1_V6);
       FORMAT_CASE (PS1_V5_LOAD, PS1_V5_LOAD);
       FORMAT_CASE (PS1_REF,     PS1_REF);
@@ -617,4 +623,5 @@
       FORMAT_CASE (PS1_V4,      PS1_V4);
       FORMAT_CASE (PS1_V5,      PS1_V5);
+      FORMAT_CASE (PS1_V6,      PS1_V6);
       FORMAT_CASE (PS1_V5_LOAD, PS1_V5_LOAD);
       FORMAT_CASE (PS1_REF,     PS1_REF);
@@ -671,4 +678,5 @@
       FORMAT_CASE (PS1_V4,      PS1_V4);
       FORMAT_CASE (PS1_V5,      PS1_V5);
+      FORMAT_CASE (PS1_V6,      PS1_V6);
       FORMAT_CASE (PS1_V5_LOAD, PS1_V5_LOAD);
       FORMAT_CASE (PS1_REF,     PS1_REF);
Index: trunk/Ohana/src/libdvo/src/dvo_catalog_split.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_catalog_split.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/dvo_catalog_split.c	(revision 40291)
@@ -464,7 +464,7 @@
   catalog[0].Nmissing_disk = Nmissing;
   catalog[0].Nsecfilt_disk = Naverage * Nsecfilt;
-  catalog[0].Nlensing_disk  = Nlensing;
-  catalog[0].Nlensobj_disk  = Nlensobj;
-  catalog[0].Nstarpar_disk  = Nstarpar;
+  catalog[0].Nlensing_disk = Nlensing;
+  catalog[0].Nlensobj_disk = Nlensobj;
+  catalog[0].Nstarpar_disk = Nstarpar;
   catalog[0].Ngalphot_disk = Ngalphot;
 
Index: trunk/Ohana/src/libdvo/src/dvo_convert.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_convert.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/dvo_convert.c	(revision 40291)
@@ -42,4 +42,5 @@
   CONVERT_FORMAT ("DVO_AVERAGE_PS1_V4",          PS1_V4);
   CONVERT_FORMAT ("DVO_AVERAGE_PS1_V5",          PS1_V5);
+  CONVERT_FORMAT ("DVO_AVERAGE_PS1_V6",          PS1_V6);
   CONVERT_FORMAT ("DVO_AVERAGE_PS1_V5_LOAD",     PS1_V5_LOAD);
   CONVERT_FORMAT ("DVO_AVERAGE_PS1_REF",         PS1_REF);
@@ -133,4 +134,5 @@
   CONVERT_FORMAT ("DVO_AVERAGE_PS1_V4",          PS1_V4,          PS1_V4);
   CONVERT_FORMAT ("DVO_AVERAGE_PS1_V5",          PS1_V5,          PS1_V5);
+  CONVERT_FORMAT ("DVO_AVERAGE_PS1_V6",          PS1_V6,          PS1_V6);
   CONVERT_FORMAT ("DVO_AVERAGE_PS1_V5_LOAD",     PS1_V5_LOAD,     PS1_V5_LOAD);
   CONVERT_FORMAT ("DVO_AVERAGE_PS1_REF",         PS1_REF,         PS1_REF);
@@ -171,4 +173,5 @@
       FORMAT_CASE (PS1_V4,          PS1_V4);
       FORMAT_CASE (PS1_V5,          PS1_V5);
+      FORMAT_CASE (PS1_V6,          PS1_V6);
       FORMAT_CASE (PS1_V5_LOAD,     PS1_V5_LOAD);
       FORMAT_CASE (PS1_REF,         PS1_REF);
@@ -270,4 +273,5 @@
   CONVERT_FORMAT ("DVO_MEASURE_PS1_V4",          PS1_V4,          PS1_V4,          FALSE);
   CONVERT_FORMAT ("DVO_MEASURE_PS1_V5",          PS1_V5,          PS1_V5,          TRUE);
+  CONVERT_FORMAT ("DVO_MEASURE_PS1_V6",          PS1_V6,          PS1_V6,          TRUE);
   CONVERT_FORMAT ("DVO_MEASURE_PS1_V5_LOAD",     PS1_V5_LOAD,     PS1_V5_LOAD,     TRUE);
   CONVERT_FORMAT ("DVO_MEASURE_PS1_REF",         PS1_REF,         PS1_REF,         FALSE);
@@ -310,4 +314,5 @@
       FORMAT_CASE (PS1_V4,          PS1_V4,          FALSE);
       FORMAT_CASE (PS1_V5,          PS1_V5,          TRUE);
+      FORMAT_CASE (PS1_V6,          PS1_V6,          TRUE);
       FORMAT_CASE (PS1_V5_LOAD,     PS1_V5_LOAD,     TRUE);
       FORMAT_CASE (PS1_REF,         PS1_REF,         FALSE);
@@ -391,4 +396,5 @@
   SKIPPING_FORMAT ("DVO_MISSING_PS1_V4",          PS1_V4,          PS1_V4);
   SKIPPING_FORMAT ("DVO_MISSING_PS1_V5",          PS1_V5,          PS1_V5);
+  SKIPPING_FORMAT ("DVO_MISSING_PS1_V6",          PS1_V6,          PS1_V6);
   SKIPPING_FORMAT ("DVO_MISSING_PS1_V5_LOAD",     PS1_V5_LOAD,     PS1_V5_LOAD);
 # undef CONVERT_FORMAT
@@ -466,4 +472,5 @@
   CONVERT_FORMAT ("DVO_SECFILT_PS1_V4",          PS1_V4,          PS1_V4);
   CONVERT_FORMAT ("DVO_SECFILT_PS1_V5",          PS1_V5,          PS1_V5);
+  CONVERT_FORMAT ("DVO_SECFILT_PS1_V6",          PS1_V6,          PS1_V6);
   CONVERT_FORMAT ("DVO_SECFILT_PS1_V5_LOAD",     PS1_V5_LOAD,     PS1_V5_LOAD);
   CONVERT_FORMAT ("DVO_SECFILT_PS1_REF",         PS1_REF,         PS1_REF);
@@ -504,4 +511,5 @@
       FORMAT_CASE (PS1_V4,          PS1_V4);
       FORMAT_CASE (PS1_V5,          PS1_V5);
+      FORMAT_CASE (PS1_V6,          PS1_V6);
       FORMAT_CASE (PS1_V5_LOAD,     PS1_V5_LOAD);
       FORMAT_CASE (PS1_REF,         PS1_REF);
@@ -612,4 +620,5 @@
   SKIPPING_FORMAT ("DVO_LENSING_PS1_V4",          PS1_V4,          PS1_V4);
   CONVERT_FORMAT  ("DVO_LENSING_PS1_V5",          PS1_V5,          PS1_V5_R3);
+  CONVERT_FORMAT  ("DVO_LENSING_PS1_V6",          PS1_V6,          PS1_V6);
   CONVERT_FORMAT  ("DVO_LENSING_PS1_V5_LOAD",     PS1_V5_LOAD,     PS1_V5_LOAD);
   SKIPPING_FORMAT ("DVO_LENSING_PS1_SIM",         PS1_SIM,         PS1_SIM);
@@ -652,4 +661,5 @@
 //    FORMAT_CASE (PS1_V4,          PS1_V4);
       FORMAT_CASE (PS1_V5,          PS1_V5_R3);
+      FORMAT_CASE (PS1_V6,          PS1_V6);
       FORMAT_CASE (PS1_V5_LOAD,     PS1_V5_LOAD);
 # undef FORMAT_CASE
@@ -732,4 +742,5 @@
   SKIPPING_FORMAT ("DVO_LENSOBJ_PS1_V4",          PS1_V4,          PS1_V4);
   CONVERT_FORMAT  ("DVO_LENSOBJ_PS1_V5",          PS1_V5,          PS1_V5_R1);
+  CONVERT_FORMAT  ("DVO_LENSOBJ_PS1_V6",          PS1_V6,          PS1_V6);
   CONVERT_FORMAT  ("DVO_LENSOBJ_PS1_V5_LOAD",     PS1_V5_LOAD,     PS1_V5_LOAD);
   SKIPPING_FORMAT ("DVO_LENSOBJ_PS1_SIM",         PS1_SIM,         PS1_SIM);
@@ -772,4 +783,5 @@
 //    FORMAT_CASE (PS1_V4,          PS1_V4);
       FORMAT_CASE (PS1_V5,          PS1_V5_R1);
+      FORMAT_CASE (PS1_V6,          PS1_V6);
       FORMAT_CASE (PS1_V5_LOAD,     PS1_V5_LOAD);
 # undef FORMAT_CASE
@@ -840,4 +852,5 @@
   SKIPPING_FORMAT ("DVO_STARPAR_PS1_V4",          PS1_V4,          PS1_V4);
   CONVERT_FORMAT  ("DVO_STARPAR_PS1_V5",          PS1_V5,          PS1_V5);
+  CONVERT_FORMAT  ("DVO_STARPAR_PS1_V6",          PS1_V6,          PS1_V6);
   CONVERT_FORMAT  ("DVO_STARPAR_PS1_V5_LOAD",     PS1_V5_LOAD,     PS1_V5_LOAD);
 # undef CONVERT_FORMAT
@@ -880,4 +893,5 @@
 //    FORMAT_CASE (PS1_V4,          PS1_V4);
       FORMAT_CASE (PS1_V5,          PS1_V5);
+      FORMAT_CASE (PS1_V6,          PS1_V6);
       FORMAT_CASE (PS1_V5_LOAD,     PS1_V5_LOAD);
 # undef FORMAT_CASE
@@ -961,4 +975,5 @@
   SKIPPING_FORMAT ("DVO_GALPHOT_PS1_V4",          PS1_V4,          PS1_V4);
   CONVERT_FORMAT  ("DVO_GALPHOT_PS1_V5",          PS1_V5,          PS1_V5_R1);
+  CONVERT_FORMAT  ("DVO_GALPHOT_PS1_V6",          PS1_V6,          PS1_V6);
   CONVERT_FORMAT  ("DVO_GALPHOT_PS1_V5_LOAD",     PS1_V5_LOAD,     PS1_V5_LOAD);
   SKIPPING_FORMAT ("DVO_GALPHOT_PS1_SIM",         PS1_SIM,         PS1_SIM);
@@ -1001,4 +1016,5 @@
 //    FORMAT_CASE (PS1_V4,          PS1_V4);
       FORMAT_CASE (PS1_V5,          PS1_V5_R1);
+      FORMAT_CASE (PS1_V6,          PS1_V6);
       FORMAT_CASE (PS1_V5_LOAD,     PS1_V5_LOAD);
 # undef FORMAT_CASE
@@ -1075,4 +1091,5 @@
   CONVERT_FORMAT ("DVO_IMAGE_PS1_V4",          PS1_V4,          PS1_V4);
   CONVERT_FORMAT ("DVO_IMAGE_PS1_V5",          PS1_V5,          PS1_V5);
+  CONVERT_FORMAT ("DVO_IMAGE_PS1_V6",          PS1_V6,          PS1_V6);
   CONVERT_FORMAT ("DVO_IMAGE_PS1_V5_LOAD",     PS1_V5_LOAD,     PS1_V5_LOAD);
   CONVERT_FORMAT ("DVO_IMAGE_PS1_REF",         PS1_REF,         PS1_REF);
@@ -1096,4 +1113,5 @@
     tmpImage = ImageInternalTo_##TYPE ((Image *) ftable[0].buffer, Nimage); \
     free (ftable[0].buffer);						\
+    ftable[0].buffer = NULL;						\
     gfits_free_header (ftable->header);					\
     gfits_table_set_Image_##TYPE (ftable, tmpImage, Nimage, TRUE);	\
@@ -1114,4 +1132,5 @@
     FORMAT_CASE (PS1_V4,          PS1_V4);
     FORMAT_CASE (PS1_V5,          PS1_V5);
+    FORMAT_CASE (PS1_V6,          PS1_V6);
     FORMAT_CASE (PS1_V5_LOAD,     PS1_V5_LOAD);
     FORMAT_CASE (PS1_REF,         PS1_REF);
@@ -1166,4 +1185,5 @@
     FORMAT_CASE (PS1_V4,          PS1_V4);
     FORMAT_CASE (PS1_V5,          PS1_V5);
+    FORMAT_CASE (PS1_V6,          PS1_V6);
     FORMAT_CASE (PS1_V5_LOAD,     PS1_V5_LOAD);
     FORMAT_CASE (PS1_REF,         PS1_REF);
Index: trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_1.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_1.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_1.c	(revision 40291)
@@ -17,5 +17,6 @@
     out[i].D          = ave[averef].D - in[i].dD / 3600.0;
     out[i].M          = in[i].M;
-    out[i].Mcal       = in[i].Mcal;
+    out[i].McalPSF    = in[i].Mcal;
+    out[i].McalAPER   = in[i].Mcal;
     out[i].dM         = in[i].dM;
     out[i].dt         = in[i].dt;
@@ -64,5 +65,5 @@
     out[i].dD         = 3600.0*(ave[averef].D - in[i].D);
     out[i].M          = in[i].M;
-    out[i].Mcal       = in[i].Mcal;
+    out[i].Mcal       = in[i].McalPSF;
     out[i].dM         = in[i].dM;
     out[i].dt         = in[i].dt;
@@ -182,6 +183,7 @@
     dvo_secfilt_init (&out[i], SECFILT_RESET_ALL);
 
-    out[i].M     = in[i].M;      
-    out[i].dM    = in[i].dM;      
+    out[i].MpsfChp     = in[i].M;      
+    out[i].dMpsfChp    = in[i].dM;      
+
     out[i].Mchisq= pow (10.0, 0.01*in[i].Xm);     
     out[i].Ncode = in[i].Ncode;
@@ -199,6 +201,7 @@
 
   for (i = 0; i < Nvalues; i++) {
-    out[i].M     = in[i].M;      
-    out[i].dM    = in[i].dM;      
+    out[i].M             = in[i].MpsfChp;      
+    out[i].dM            = in[i].dMpsfChp;      
+
     out[i].Xm    = 100.0*log10(in[i].Mchisq);     
     out[i].Ncode = in[i].Ncode;
@@ -237,7 +240,10 @@
     out[i].apmifit  	    = in[i].apmifit;
     out[i].dapmifit 	    = in[i].dapmifit;
-    out[i].Mcal	    	    = in[i].Mcal;
+
+    out[i].McalPSF    	    = in[i].Mcal;
+    out[i].McalAPER    	    = in[i].Mcal;
     out[i].dMcal    	    = in[i].dMcal;
-    out[i].Xm	    	    = in[i].Xm;
+    out[i].McalChiSq  	    = pow(10.0, 0.01*in[i].Xm);
+
     out[i].photcode   	    = in[i].photcode;
     out[i].exptime  	    = in[i].exptime;
@@ -306,7 +312,9 @@
     out[i].apmifit  	    = in[i].apmifit;
     out[i].dapmifit 	    = in[i].dapmifit;
-    out[i].Mcal	    	    = in[i].Mcal;
+
+    out[i].Mcal	    	    = in[i].McalPSF;
     out[i].dMcal    	    = in[i].dMcal;
-    out[i].Xm	    	    = in[i].Xm;
+    out[i].Xm	    	    = 100.0*log10(in[i].McalChiSq);
+
     out[i].photcode   	    = in[i].photcode;
     out[i].exptime  	    = in[i].exptime;
Index: trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_2.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_2.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_2.c	(revision 40291)
@@ -17,5 +17,6 @@
     out[i].D          = ave[averef].D - in[i].dD / 3600.0;
     out[i].M          = in[i].M;
-    out[i].Mcal       = in[i].Mcal;
+    out[i].McalPSF    = in[i].Mcal;
+    out[i].McalAPER   = in[i].Mcal;
     out[i].Map        = in[i].Map;
     out[i].dM         = in[i].dM;
@@ -62,5 +63,5 @@
     out[i].dD         = 3600.0*(ave[averef].D - in[i].D);
     out[i].M          = in[i].M;
-    out[i].Mcal       = in[i].Mcal;
+    out[i].Mcal       = in[i].McalPSF;
     out[i].Map        = in[i].Map;
     out[i].dM         = in[i].dM;
@@ -177,6 +178,7 @@
     dvo_secfilt_init (&out[i], SECFILT_RESET_ALL);
 
-    out[i].M     = in[i].M;      
-    out[i].dM    = in[i].dM;      
+    out[i].MpsfChp     = in[i].M;      
+    out[i].dMpsfChp    = in[i].dM;      
+
     out[i].Mchisq= pow (10.0, 0.01*in[i].Xm);     
     out[i].Ncode = in[i].Ncode;
@@ -194,6 +196,7 @@
 
   for (i = 0; i < Nvalues; i++) {
-    out[i].M     = in[i].M;      
-    out[i].dM    = in[i].dM;      
+    out[i].M             = in[i].MpsfChp;      
+    out[i].dM            = in[i].dMpsfChp;      
+
     out[i].Xm    = 100.0*log10(in[i].Mchisq);     
     out[i].Ncode = in[i].Ncode;
@@ -232,7 +235,10 @@
     out[i].apmifit  	    = in[i].apmifit;
     out[i].dapmifit 	    = in[i].dapmifit;
-    out[i].Mcal	    	    = in[i].Mcal;
+
+    out[i].McalPSF    	    = in[i].Mcal;
+    out[i].McalAPER    	    = in[i].Mcal;
     out[i].dMcal    	    = in[i].dMcal;
-    out[i].Xm	    	    = in[i].Xm;
+    out[i].McalChiSq  	    = pow(10.0, 0.01*in[i].Xm);
+
     out[i].photcode   	    = in[i].photcode;
     out[i].exptime  	    = in[i].exptime;
@@ -298,7 +304,9 @@
     out[i].apmifit  	    = in[i].apmifit;
     out[i].dapmifit 	    = in[i].dapmifit;
-    out[i].Mcal	    	    = in[i].Mcal;
+
+    out[i].Mcal	    	    = in[i].McalPSF;
     out[i].dMcal    	    = in[i].dMcal;
-    out[i].Xm	    	    = in[i].Xm;
+    out[i].Xm	    	    = 100.0*log10(in[i].McalChiSq);
+
     out[i].photcode   	    = in[i].photcode;
     out[i].exptime  	    = in[i].exptime;
Index: trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_3.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_3.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_3.c	(revision 40291)
@@ -34,7 +34,10 @@
     out[i].apmifit  	    = in[i].apmifit;
     out[i].dapmifit 	    = in[i].dapmifit;
-    out[i].Mcal	    	    = in[i].Mcal;
+
+    out[i].McalPSF    	    = in[i].Mcal;
+    out[i].McalAPER    	    = in[i].Mcal;
     out[i].dMcal    	    = in[i].dMcal;
-    out[i].Xm	    	    = in[i].Xm;
+    out[i].McalChiSq  	    = pow(10.0, 0.01*in[i].Xm);
+
     out[i].photcode   	    = in[i].photcode;
     out[i].exptime  	    = in[i].exptime;
@@ -95,7 +98,9 @@
     out[i].apmifit  	    = in[i].apmifit;
     out[i].dapmifit 	    = in[i].dapmifit;
-    out[i].Mcal	    	    = in[i].Mcal;
+
+    out[i].Mcal	    	    = in[i].McalPSF;
     out[i].dMcal    	    = in[i].dMcal;
-    out[i].Xm	    	    = in[i].Xm;
+    out[i].Xm	    	    = 100.0*log10(in[i].McalChiSq);
+
     out[i].photcode   	    = in[i].photcode;
     out[i].exptime  	    = in[i].exptime;
Index: trunk/Ohana/src/libdvo/src/dvo_convert_PS1_REF.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_convert_PS1_REF.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/dvo_convert_PS1_REF.c	(revision 40291)
@@ -114,6 +114,6 @@
     dvo_secfilt_init (&out[i], SECFILT_RESET_ALL);
 
-    out[i].M     = in[i].M;      
-    out[i].dM    = in[i].dM;      
+    out[i].MpsfChp     = in[i].M;      
+    out[i].dMpsfChp    = in[i].dM;      
  }
   return (out);
@@ -128,6 +128,6 @@
 
   for (i = 0; i < Nvalues; i++) {
-    out[i].M     = in[i].M;      
-    out[i].dM    = in[i].dM;      
+    out[i].M             = in[i].MpsfChp;      
+    out[i].dM            = in[i].dMpsfChp;      
   }
   return (out);
@@ -163,7 +163,10 @@
     out[i].apmifit  	    = in[i].apmifit;
     out[i].dapmifit 	    = in[i].dapmifit;
-    out[i].Mcal	    	    = in[i].Mcal;
+
+    out[i].McalPSF    	    = in[i].Mcal;
+    out[i].McalAPER    	    = in[i].Mcal;
     out[i].dMcal    	    = in[i].dMcal;
-    out[i].Xm	    	    = in[i].Xm;
+    out[i].McalChiSq  	    = pow(10.0, 0.01*in[i].Xm);
+
     out[i].photcode   	    = in[i].photcode;
     out[i].exptime  	    = in[i].exptime;
@@ -227,7 +230,9 @@
     out[i].apmifit  	    = in[i].apmifit;
     out[i].dapmifit 	    = in[i].dapmifit;
-    out[i].Mcal	    	    = in[i].Mcal;
+
+    out[i].Mcal	    	    = in[i].McalPSF;
     out[i].dMcal    	    = in[i].dMcal;
-    out[i].Xm	    	    = in[i].Xm;
+    out[i].Xm	    	    = 100.0*log10(in[i].McalChiSq);
+
     out[i].photcode   	    = in[i].photcode;
     out[i].exptime  	    = in[i].exptime;
Index: trunk/Ohana/src/libdvo/src/dvo_convert_PS1_SIM.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_convert_PS1_SIM.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/dvo_convert_PS1_SIM.c	(revision 40291)
@@ -18,5 +18,6 @@
     out[i].M          = in[i].M;
     out[i].dM         = in[i].dM;
-    out[i].Mcal       = in[i].Mcal;
+    out[i].McalPSF    = in[i].Mcal;
+    out[i].McalAPER   = in[i].Mcal;
     out[i].dt         = in[i].dt;
     out[i].airmass    = in[i].airmass;
@@ -64,5 +65,5 @@
     out[i].M          = in[i].M;
     out[i].dM         = in[i].dM;
-    out[i].Mcal       = in[i].Mcal;
+    out[i].Mcal       = in[i].McalPSF;
     out[i].dt         = in[i].dt;
     out[i].airmass    = in[i].airmass;
@@ -199,6 +200,7 @@
     dvo_secfilt_init (&out[i], SECFILT_RESET_ALL);
 
-    out[i].M             = in[i].M;      
-    out[i].dM            = in[i].dM;      
+    out[i].MpsfChp     = in[i].M;      
+    out[i].dMpsfChp    = in[i].dM;      
+
     out[i].Ncode         = in[i].Ncode;
     out[i].Nused         = in[i].Nused;
@@ -217,6 +219,7 @@
   for (i = 0; i < Nvalues; i++) {
 
-    out[i].M             = in[i].M;      
-    out[i].dM            = in[i].dM;      
+    out[i].M             = in[i].MpsfChp;      
+    out[i].dM            = in[i].dMpsfChp;      
+
     out[i].Ncode         = in[i].Ncode;
     out[i].Nused         = in[i].Nused;
@@ -320,7 +323,10 @@
     out[i].apmifit  	    = in[i].apmifit;
     out[i].dapmifit 	    = in[i].dapmifit;
-    out[i].Mcal	    	    = in[i].Mcal;
+
+    out[i].McalPSF    	    = in[i].Mcal;
+    out[i].McalAPER    	    = in[i].Mcal;
     out[i].dMcal    	    = in[i].dMcal;
-    out[i].Xm	    	    = in[i].Xm;
+    out[i].McalChiSq  	    = pow(10.0, 0.01*in[i].Xm);
+
     out[i].photcode   	    = in[i].photcode;
     out[i].exptime  	    = in[i].exptime;
@@ -386,7 +392,9 @@
     out[i].apmifit  	    = in[i].apmifit;
     out[i].dapmifit 	    = in[i].dapmifit;
-    out[i].Mcal	    	    = in[i].Mcal;
+
+    out[i].Mcal	    	    = in[i].McalPSF;
     out[i].dMcal    	    = in[i].dMcal;
-    out[i].Xm	    	    = in[i].Xm;
+    out[i].Xm	    	    = 100.0*log10(in[i].McalChiSq);
+
     out[i].photcode   	    = in[i].photcode;
     out[i].exptime  	    = in[i].exptime;
Index: trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V1.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V1.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V1.c	(revision 40291)
@@ -17,5 +17,6 @@
     out[i].D          = ave[averef].D - in[i].dD / 3600.0;
     out[i].M          = in[i].M;
-    out[i].Mcal       = in[i].Mcal;
+    out[i].McalPSF    = in[i].Mcal;
+    out[i].McalAPER   = in[i].Mcal;
     out[i].Map        = in[i].Map;
     out[i].dM         = in[i].dM;
@@ -71,5 +72,5 @@
     out[i].dD         = 3600.0*(ave[averef].D - in[i].D);
     out[i].M          = in[i].M;
-    out[i].Mcal       = in[i].Mcal;
+    out[i].Mcal       = in[i].McalPSF;
     out[i].Map        = in[i].Map;
     out[i].dM         = in[i].dM;
@@ -197,6 +198,7 @@
     dvo_secfilt_init (&out[i], SECFILT_RESET_ALL);
 
-    out[i].M     = in[i].M;      
-    out[i].dM    = in[i].dM;      
+    out[i].MpsfChp     = in[i].M;      
+    out[i].dMpsfChp    = in[i].dM;      
+
     out[i].Mchisq= in[i].Mchisq;     
     out[i].Ncode = in[i].Ncode;
@@ -216,6 +218,7 @@
 
   for (i = 0; i < Nvalues; i++) {
-    out[i].M     = in[i].M;      
-    out[i].dM    = in[i].dM;      
+    out[i].M             = in[i].MpsfChp;      
+    out[i].dM            = in[i].dMpsfChp;      
+
     out[i].Mchisq= in[i].Mchisq;     
     out[i].Ncode = in[i].Ncode;
@@ -256,7 +259,10 @@
     out[i].apmifit  	    = in[i].apmifit;
     out[i].dapmifit 	    = in[i].dapmifit;
-    out[i].Mcal	    	    = in[i].Mcal;
+
+    out[i].McalPSF    	    = in[i].Mcal;
+    out[i].McalAPER    	    = in[i].Mcal;
     out[i].dMcal    	    = in[i].dMcal;
-    out[i].Xm	    	    = in[i].Xm;
+    out[i].McalChiSq  	    = pow(10.0, 0.01*in[i].Xm);
+
     out[i].photcode   	    = in[i].photcode;
     out[i].exptime  	    = in[i].exptime;
@@ -321,7 +327,9 @@
     out[i].apmifit  	    = in[i].apmifit;
     out[i].dapmifit 	    = in[i].dapmifit;
-    out[i].Mcal	    	    = in[i].Mcal;
+
+    out[i].Mcal	    	    = in[i].McalPSF;
     out[i].dMcal    	    = in[i].dMcal;
-    out[i].Xm	    	    = in[i].Xm;
+    out[i].Xm	    	    = 100.0*log10(in[i].McalChiSq);
+
     out[i].photcode   	    = in[i].photcode;
     out[i].exptime  	    = in[i].exptime;
Index: trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V2.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V2.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V2.c	(revision 40291)
@@ -17,5 +17,6 @@
     out[i].D          = ave[averef].D - in[i].dD / 3600.0;
     out[i].M          = in[i].M;
-    out[i].Mcal       = in[i].Mcal;
+    out[i].McalPSF    = in[i].Mcal;
+    out[i].McalAPER   = in[i].Mcal;
     out[i].Map        = in[i].Map;
     out[i].dM         = in[i].dM;
@@ -72,5 +73,5 @@
     out[i].dD         = 3600.0*(ave[averef].D - in[i].D);
     out[i].M          = in[i].M;
-    out[i].Mcal       = in[i].Mcal;
+    out[i].Mcal       = in[i].McalPSF;
     out[i].Map        = in[i].Map;
     out[i].dM         = in[i].dM;
@@ -206,6 +207,7 @@
     dvo_secfilt_init (&out[i], SECFILT_RESET_ALL);
 
-    out[i].M     = in[i].M;      
-    out[i].dM    = in[i].dM;      
+    out[i].MpsfChp     = in[i].M;      
+    out[i].dMpsfChp    = in[i].dM;      
+
     out[i].Mchisq= in[i].Mchisq;     
     out[i].flags = in[i].flags;     
@@ -226,6 +228,7 @@
 
   for (i = 0; i < Nvalues; i++) {
-    out[i].M     = in[i].M;      
-    out[i].dM    = in[i].dM;      
+    out[i].M             = in[i].MpsfChp;      
+    out[i].dM            = in[i].dMpsfChp;      
+
     out[i].Mchisq= in[i].Mchisq;     
     out[i].flags = in[i].flags;     
@@ -267,7 +270,10 @@
     out[i].apmifit  	    = in[i].apmifit;
     out[i].dapmifit 	    = in[i].dapmifit;
-    out[i].Mcal	    	    = in[i].Mcal;
+
+    out[i].McalPSF    	    = in[i].Mcal;
+    out[i].McalAPER    	    = in[i].Mcal;
     out[i].dMcal    	    = in[i].dMcal;
-    out[i].Xm	    	    = in[i].Xm;
+    out[i].McalChiSq  	    = pow(10.0, 0.01*in[i].Xm);
+
     out[i].photcode   	    = in[i].photcode;
     out[i].exptime  	    = in[i].exptime;
@@ -332,7 +338,9 @@
     out[i].apmifit  	    = in[i].apmifit;
     out[i].dapmifit 	    = in[i].dapmifit;
-    out[i].Mcal	    	    = in[i].Mcal;
+
+    out[i].Mcal	    	    = in[i].McalPSF;
     out[i].dMcal    	    = in[i].dMcal;
-    out[i].Xm	    	    = in[i].Xm;
+    out[i].Xm	    	    = 100.0*log10(in[i].McalChiSq);
+
     out[i].photcode   	    = in[i].photcode;
     out[i].exptime  	    = in[i].exptime;
Index: trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V3.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V3.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V3.c	(revision 40291)
@@ -17,5 +17,6 @@
     out[i].D          = ave[averef].D - in[i].dD / 3600.0;
     out[i].M          = in[i].M;
-    out[i].Mcal       = in[i].Mcal;
+    out[i].McalPSF    = in[i].Mcal;
+    out[i].McalAPER   = in[i].Mcal;
     out[i].Map        = in[i].Map;
     out[i].dM         = in[i].dM;
@@ -72,5 +73,5 @@
     out[i].dD         = 3600.0*(ave[averef].D - in[i].D);
     out[i].M          = in[i].M;
-    out[i].Mcal       = in[i].Mcal;
+    out[i].Mcal       = in[i].McalPSF;
     out[i].Map        = in[i].Map;
     out[i].dM         = in[i].dM;
@@ -210,7 +211,9 @@
     dvo_secfilt_init (&out[i], SECFILT_RESET_ALL);
 
-    out[i].M           = in[i].M;      
-    out[i].Map         = in[i].Map;      
-    out[i].dM          = in[i].dM;      
+    out[i].MpsfChp     = in[i].M;      
+    out[i].sMpsfChp    = in[i].Mstdev;      
+    out[i].dMpsfChp    = in[i].dM;      
+    out[i].MapChp      = in[i].Map;      
+
     out[i].Mchisq      = in[i].Mchisq;     
     out[i].flags       = in[i].flags;     
@@ -219,5 +222,4 @@
     out[i].Mmin        = in[i].M_20*0.001;      
     out[i].Mmax        = in[i].M_80*0.001;      
-    out[i].Mstdev      = in[i].Mstdev;      
     out[i].ubercalDist = in[i].ubercalDist;      
  }
@@ -233,7 +235,9 @@
 
   for (i = 0; i < Nvalues; i++) {
-    out[i].M           = in[i].M;      
-    out[i].Map         = in[i].Map;      
-    out[i].dM          = in[i].dM;      
+    out[i].M             = in[i].MpsfChp;      
+    out[i].dM            = in[i].dMpsfChp;      
+    out[i].Mstdev        = in[i].sMpsfChp;      
+    out[i].Map           = in[i].MapChp;      
+
     out[i].Mchisq      = in[i].Mchisq;     
     out[i].flags       = in[i].flags;     
@@ -242,5 +246,4 @@
     out[i].M_20        = in[i].Mmin*1000.0;      
     out[i].M_80        = in[i].Mmax*1000.0;      
-    out[i].Mstdev      = in[i].Mstdev;      
     out[i].ubercalDist = in[i].ubercalDist;      
   }
@@ -277,7 +280,10 @@
     out[i].apmifit  	    = in[i].apmifit;
     out[i].dapmifit 	    = in[i].dapmifit;
-    out[i].Mcal	    	    = in[i].Mcal;
+
+    out[i].McalPSF    	    = in[i].Mcal;
+    out[i].McalAPER    	    = in[i].Mcal;
     out[i].dMcal    	    = in[i].dMcal;
-    out[i].Xm	    	    = in[i].Xm;
+    out[i].McalChiSq  	    = pow(10.0, 0.01*in[i].Xm);
+
     out[i].photcode   	    = in[i].photcode;
     out[i].exptime  	    = in[i].exptime;
@@ -342,7 +348,9 @@
     out[i].apmifit  	    = in[i].apmifit;
     out[i].dapmifit 	    = in[i].dapmifit;
-    out[i].Mcal	    	    = in[i].Mcal;
+
+    out[i].Mcal	    	    = in[i].McalPSF;
     out[i].dMcal    	    = in[i].dMcal;
-    out[i].Xm	    	    = in[i].Xm;
+    out[i].Xm	    	    = 100.0*log10(in[i].McalChiSq);
+
     out[i].photcode   	    = in[i].photcode;
     out[i].exptime  	    = in[i].exptime;
Index: trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V4.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V4.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V4.c	(revision 40291)
@@ -17,5 +17,6 @@
     out[i].D          = ave[averef].D - in[i].dD / 3600.0;
     out[i].M          = in[i].M;
-    out[i].Mcal       = in[i].Mcal;
+    out[i].McalPSF    = in[i].Mcal;
+    out[i].McalAPER   = in[i].Mcal;
     out[i].Map        = in[i].Map;
     out[i].Mkron      = in[i].Mkron;
@@ -81,5 +82,5 @@
     out[i].dD         = 3600.0*(ave[averef].D - in[i].D);
     out[i].M          = in[i].M;
-    out[i].Mcal       = in[i].Mcal;
+    out[i].Mcal       = in[i].McalPSF;
     out[i].Map        = in[i].Map;
     out[i].Mkron      = in[i].Mkron;
@@ -234,9 +235,10 @@
     dvo_secfilt_init (&out[i], SECFILT_RESET_ALL);
 
-    out[i].M             = in[i].M;      
-    out[i].Map           = in[i].Map;      
-    out[i].Mkron         = in[i].Mkron;      
-    out[i].dMkron        = in[i].dMkron;      
-    out[i].dM            = in[i].dM;      
+    out[i].MpsfChp       = in[i].M;      
+    out[i].sMpsfChp      = in[i].Mstdev;      
+    out[i].dMpsfChp      = in[i].dM;      
+    out[i].MapChp        = in[i].Map;      
+    out[i].MkronChp      = in[i].Mkron;      
+
     out[i].Mchisq        = in[i].Mchisq;     
     out[i].FpsfStk       = in[i].FluxPSF;
@@ -249,5 +251,4 @@
     out[i].Mmin          = in[i].M_20*0.001;      
     out[i].Mmax          = in[i].M_80*0.001;      
-    out[i].Mstdev        = in[i].Mstdev;      
     out[i].ubercalDist   = in[i].ubercalDist;      
     out[i].stackPrmryOff = in[i].stackPrmryOff;      
@@ -265,9 +266,10 @@
 
   for (i = 0; i < Nvalues; i++) {
-    out[i].M           	 = in[i].M;      
-    out[i].Map         	 = in[i].Map;      
-    out[i].Mkron       	 = in[i].Mkron;      
-    out[i].dMkron      	 = in[i].dMkron;      
-    out[i].dM          	 = in[i].dM;      
+    out[i].M             = in[i].MpsfChp;      
+    out[i].dM            = in[i].dMpsfChp;      
+    out[i].Mstdev        = in[i].sMpsfChp;      
+    out[i].Map           = in[i].MapChp;      
+    out[i].Mkron         = in[i].MkronChp;      
+
     out[i].Mchisq        = in[i].Mchisq;
     out[i].FluxPSF     	 = in[i].FpsfStk;
@@ -280,5 +282,4 @@
     out[i].M_20        	 = in[i].Mmin*1000.0;      
     out[i].M_80        	 = in[i].Mmax*1000.0;      
-    out[i].Mstdev      	 = in[i].Mstdev;      
     out[i].ubercalDist 	 = in[i].ubercalDist;      
     out[i].stackPrmryOff = in[i].stackPrmryOff;      
@@ -317,7 +318,10 @@
     out[i].apmifit  	    = in[i].apmifit;
     out[i].dapmifit 	    = in[i].dapmifit;
-    out[i].Mcal	    	    = in[i].Mcal;
+
+    out[i].McalPSF    	    = in[i].Mcal;
+    out[i].McalAPER    	    = in[i].Mcal;
     out[i].dMcal    	    = in[i].dMcal;
-    out[i].Xm	    	    = in[i].Xm;
+    out[i].McalChiSq  	    = pow(10.0, 0.01*in[i].Xm);
+
     out[i].photcode   	    = in[i].photcode;
     out[i].exptime  	    = in[i].exptime;
@@ -382,7 +386,9 @@
     out[i].apmifit  	    = in[i].apmifit;
     out[i].dapmifit 	    = in[i].dapmifit;
-    out[i].Mcal	    	    = in[i].Mcal;
+
+    out[i].Mcal	    	    = in[i].McalPSF;
     out[i].dMcal    	    = in[i].dMcal;
-    out[i].Xm	    	    = in[i].Xm;
+    out[i].Xm	    	    = 100.0*log10(in[i].McalChiSq);
+
     out[i].photcode   	    = in[i].photcode;
     out[i].exptime  	    = in[i].exptime;
@@ -513,5 +519,6 @@
     out[i].D          = ave[averef].D - in[i].dD / 3600.0;
     out[i].M          = in[i].M;
-    out[i].Mcal       = in[i].Mcal;
+    out[i].McalPSF    = in[i].Mcal;
+    out[i].McalAPER   = in[i].Mcal;
     out[i].Map        = in[i].Map;
     out[i].Mkron      = in[i].Mkron;
Index: trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V5.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V5.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V5.c	(revision 40291)
@@ -22,5 +22,6 @@
     out[i].Mkron      = in[i].Mkron;
     out[i].dMkron     = in[i].dMkron;
-    out[i].Mcal       = in[i].Mcal;
+    out[i].McalPSF    = in[i].Mcal;
+    out[i].McalAPER   = in[i].Mcal;
     out[i].dMcal      = in[i].dMcal;
     out[i].dt         = in[i].dt;
@@ -96,5 +97,5 @@
     out[i].Mkron      = in[i].Mkron;
     out[i].dMkron     = in[i].dMkron;
-    out[i].Mcal       = in[i].Mcal;
+    out[i].Mcal       = in[i].McalPSF;
     out[i].dMcal      = in[i].dMcal;
     out[i].dt         = in[i].dt;
@@ -311,17 +312,17 @@
     dvo_secfilt_init (&out[i], SECFILT_RESET_ALL);
 
-    out[i].M             = in[i].M;      
-    out[i].dM            = in[i].dM;      
-    out[i].Map           = in[i].Map;      
-    out[i].dMap          = in[i].dMap;      
-    out[i].sMap          = in[i].sMap;      
-    out[i].Mkron         = in[i].Mkron;      
-    out[i].dMkron        = in[i].dMkron;      
-    out[i].sMkron        = in[i].sMkron;      
+    out[i].MpsfChp       = in[i].M;      
+    out[i].sMpsfChp      = in[i].Mstdev;      
+    out[i].dMpsfChp      = in[i].dM;      
+    out[i].MapChp        = in[i].Map;      
+    out[i].dMapChp       = in[i].dMap;      
+    out[i].sMapChp       = in[i].sMap;      
+    out[i].MkronChp      = in[i].Mkron;      
+    out[i].dMkronChp     = in[i].dMkron;      
+    out[i].sMkronChp     = in[i].sMkron;      
 
     out[i].psfQfMax      = in[i].psfQfMax;      
     out[i].psfQfPerfMax  = in[i].psfQfPerfMax;      
 
-    out[i].Mstdev        = in[i].Mstdev;      
     out[i].Mmin          = in[i].Mmin;      
     out[i].Mmax          = in[i].Mmax;      
@@ -389,17 +390,17 @@
   for (i = 0; i < Nvalues; i++) {
 
-    out[i].M             = in[i].M;      
-    out[i].dM            = in[i].dM;      
-    out[i].Map           = in[i].Map;      
-    out[i].dMap          = in[i].dMap;      
-    out[i].sMap          = in[i].sMap;      
-    out[i].Mkron         = in[i].Mkron;      
-    out[i].dMkron        = in[i].dMkron;      
-    out[i].sMkron        = in[i].sMkron;      
+    out[i].M             = in[i].MpsfChp;      
+    out[i].dM            = in[i].dMpsfChp;      
+    out[i].Mstdev        = in[i].sMpsfChp;      
+    out[i].Map           = in[i].MapChp;      
+    out[i].dMap          = in[i].dMapChp;      
+    out[i].sMap          = in[i].sMapChp;      
+    out[i].Mkron         = in[i].MkronChp;      
+    out[i].dMkron        = in[i].dMkronChp;      
+    out[i].sMkron        = in[i].sMkronChp;      
 
     out[i].psfQfMax      = in[i].psfQfMax;      
     out[i].psfQfPerfMax  = in[i].psfQfPerfMax;      
 
-    out[i].Mstdev        = in[i].Mstdev;      
     out[i].Mmin          = in[i].Mmin;      
     out[i].Mmax          = in[i].Mmax;      
@@ -1143,7 +1144,10 @@
     out[i].apmifit  	    = in[i].apmifit;
     out[i].dapmifit 	    = in[i].dapmifit;
-    out[i].Mcal	    	    = in[i].Mcal;
+
+    out[i].McalPSF    	    = in[i].Mcal;
+    out[i].McalAPER    	    = in[i].Mcal;
     out[i].dMcal    	    = in[i].dMcal;
-    out[i].Xm	    	    = in[i].Xm;
+    out[i].McalChiSq  	    = pow(10.0, 0.01*in[i].Xm);
+
     out[i].photcode   	    = in[i].photcode;
     out[i].exptime  	    = in[i].exptime;
@@ -1209,7 +1213,9 @@
     out[i].apmifit  	    = in[i].apmifit;
     out[i].dapmifit 	    = in[i].dapmifit;
-    out[i].Mcal	    	    = in[i].Mcal;
+
+    out[i].Mcal	    	    = in[i].McalPSF;
     out[i].dMcal    	    = in[i].dMcal;
-    out[i].Xm	    	    = in[i].Xm;
+    out[i].Xm	    	    = 100.0*log10(in[i].McalChiSq);
+
     out[i].photcode   	    = in[i].photcode;
     out[i].exptime  	    = in[i].exptime;
@@ -1495,13 +1501,14 @@
     dvo_secfilt_init (&out[i], SECFILT_RESET_ALL);
 
-    out[i].M             = in[i].M;      
-    out[i].dM            = in[i].dM;      
-    out[i].Map           = in[i].Map;      
-    out[i].dMap          = in[i].dMap;      
-    out[i].sMap          = in[i].sMap;      
-    out[i].Mkron         = in[i].Mkron;      
-    out[i].dMkron        = in[i].dMkron;      
-
-    out[i].Mstdev        = in[i].Mstdev;      
+    out[i].MpsfChp       = in[i].M;      
+    out[i].dMpsfChp      = in[i].dM;      
+    out[i].sMpsfChp      = in[i].Mstdev;      
+    out[i].MapChp        = in[i].Map;      
+    out[i].dMapChp       = in[i].dMap;      
+    out[i].sMapChp       = in[i].sMap;      
+    out[i].MkronChp      = in[i].Mkron;      
+    out[i].dMkronChp     = in[i].dMkron;      
+    out[i].sMkronChp     = in[i].sMkron;      
+
     out[i].Mmin          = in[i].Mmin;      
     out[i].Mmax          = in[i].Mmax;      
@@ -1668,5 +1675,6 @@
     out[i].Mkron      = in[i].Mkron;
     out[i].dMkron     = in[i].dMkron;
-    out[i].Mcal       = in[i].Mcal;
+    out[i].McalPSF    = in[i].Mcal;
+    out[i].McalAPER   = in[i].Mcal;
     out[i].dMcal      = in[i].dMcal;
     out[i].dt         = in[i].dt;
Index: trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V5_LOAD.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V5_LOAD.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V5_LOAD.c	(revision 40291)
@@ -22,5 +22,6 @@
     out[i].Mkron      = in[i].Mkron;
     out[i].dMkron     = in[i].dMkron;
-    out[i].Mcal       = in[i].Mcal;
+    out[i].McalPSF    = in[i].Mcal;
+    out[i].McalAPER   = in[i].Mcal;
     out[i].dMcal      = in[i].dMcal;
     out[i].dt         = in[i].dt;
@@ -96,5 +97,5 @@
     out[i].Mkron      = in[i].Mkron;
     out[i].dMkron     = in[i].dMkron;
-    out[i].Mcal       = in[i].Mcal;
+    out[i].Mcal       = in[i].McalPSF;
     out[i].dMcal      = in[i].dMcal;
     out[i].dt         = in[i].dt;
@@ -221,5 +222,5 @@
     dvo_secfilt_init (&out[i], SECFILT_RESET_ALL);
 
-    out[i].M             = in[i].M;      
+    out[i].MpsfChp       = in[i].M;      
     out[i].Ncode         = in[i].Ncode;
     out[i].Nused         = in[i].Nused;
@@ -237,5 +238,5 @@
   for (i = 0; i < Nvalues; i++) {
 
-    out[i].M             = in[i].M;      
+    out[i].M             = in[i].MpsfChp;      
     out[i].Ncode         = in[i].Ncode;
     out[i].Nused         = in[i].Nused;
@@ -654,7 +655,10 @@
     out[i].apmifit  	    = in[i].apmifit;
     out[i].dapmifit 	    = in[i].dapmifit;
-    out[i].Mcal	    	    = in[i].Mcal;
+
+    out[i].McalPSF    	    = in[i].Mcal;
+    out[i].McalAPER    	    = in[i].Mcal;
     out[i].dMcal    	    = in[i].dMcal;
-    out[i].Xm	    	    = in[i].Xm;
+    out[i].McalChiSq  	    = pow(10.0, 0.01*in[i].Xm);
+
     out[i].photcode   	    = in[i].photcode;
     out[i].exptime  	    = in[i].exptime;
@@ -720,7 +724,9 @@
     out[i].apmifit  	    = in[i].apmifit;
     out[i].dapmifit 	    = in[i].dapmifit;
-    out[i].Mcal	    	    = in[i].Mcal;
+
+    out[i].Mcal	    	    = in[i].McalPSF;
     out[i].dMcal    	    = in[i].dMcal;
-    out[i].Xm	    	    = in[i].Xm;
+    out[i].Xm	    	    = 100.0*log10(in[i].McalChiSq);
+
     out[i].photcode   	    = in[i].photcode;
     out[i].exptime  	    = in[i].exptime;
Index: trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V6.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V6.c	(revision 40291)
+++ trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V6.c	(revision 40291)
@@ -0,0 +1,1054 @@
+# include <dvo.h>
+
+/* convert PS1_V6 formats to internal formats */
+
+Measure *Measure_PS1_V6_ToInternal (Average *ave, Measure_PS1_V6 *in, off_t Nvalues) {
+  OHANA_UNUSED_PARAM(ave);
+
+  off_t i;
+  Measure *out;
+
+  ALLOCATE_ZERO (out, Measure, Nvalues);
+
+  for (i = 0; i < Nvalues; i++) {
+    dvo_measure_init (&out[i]);
+
+    out[i].R          = in[i].R;
+    out[i].D          = in[i].D;
+    out[i].M          = in[i].M;
+    out[i].dM         = in[i].dM;
+    out[i].Map        = in[i].Map;
+    out[i].dMap       = in[i].dMap;
+    out[i].Mkron      = in[i].Mkron;
+    out[i].dMkron     = in[i].dMkron;
+    out[i].McalPSF    = in[i].McalPSF;
+    out[i].McalAPER   = in[i].McalAPER;
+    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].FluxAp     = in[i].FluxAp;
+    out[i].dFluxAp    = in[i].dFluxAp;
+    out[i].airmass    = in[i].airmass;
+    out[i].az         = in[i].az;
+    out[i].Xccd       = in[i].Xccd;
+    out[i].Yccd       = in[i].Yccd;
+    out[i].Xfix       = in[i].Xfix;
+    out[i].Yfix       = in[i].Yfix;
+    out[i].XoffKH     = in[i].XoffKH;
+    out[i].YoffKH     = in[i].YoffKH;
+    out[i].XoffDCR    = in[i].XoffDCR;
+    out[i].YoffDCR    = in[i].YoffDCR;
+    out[i].XoffCAM    = in[i].XoffCAM;
+    out[i].YoffCAM    = in[i].YoffCAM;
+    out[i].Mflat      = in[i].Mflat;
+    out[i].Sky        = in[i].Sky;
+    out[i].dSky       = in[i].dSky;
+    out[i].t          = in[i].t;
+    out[i].averef     = in[i].averef;
+    out[i].detID      = in[i].detID;
+    out[i].objID      = in[i].objID;
+    out[i].catID      = in[i].catID;
+    out[i].extID      = in[i].extID;
+    out[i].imageID    = in[i].imageID;
+    out[i].psfQF      = in[i].psfQF;
+    out[i].psfQFperf  = in[i].psfQFperf;
+    out[i].psfChisq   = in[i].psfChisq;
+    out[i].psfNdof    = in[i].psfNdof;
+    out[i].psfNpix    = in[i].psfNpix;
+    out[i].extNsigma  = in[i].extNsigma;
+    out[i].FWx 	      = in[i].FWx;
+    out[i].FWy 	      = in[i].FWy;
+    out[i].theta      = in[i].theta;
+    out[i].Mxx 	      = in[i].Mxx;
+    out[i].Mxy 	      = in[i].Mxy;
+    out[i].Myy 	      = in[i].Myy;
+    out[i].t_msec     = in[i].t_msec;
+    out[i].photcode   = in[i].photcode;
+    out[i].dXccd      = in[i].dXccd;
+    out[i].dYccd      = in[i].dYccd;
+    out[i].dRsys      = in[i].dRsys;
+    out[i].posangle   = in[i].posangle;
+    out[i].pltscale   = in[i].pltscale;
+    out[i].dbFlags    = in[i].dbFlags;
+    out[i].photFlags  = in[i].photFlags;
+    out[i].photFlags2 = in[i].photFlags2;
+  }
+  return (out);
+}
+
+Measure_PS1_V6 *MeasureInternalTo_PS1_V6 (Average *ave, Measure *in, off_t Nvalues) {
+  OHANA_UNUSED_PARAM(ave);
+
+  off_t i;
+  Measure_PS1_V6 *out;
+
+  ALLOCATE_ZERO (out, Measure_PS1_V6, Nvalues);
+
+  for (i = 0; i < Nvalues; i++) {
+    out[i].R          = in[i].R;
+    out[i].D          = in[i].D;
+    out[i].M          = in[i].M;
+    out[i].dM         = in[i].dM;
+    out[i].Map        = in[i].Map;
+    out[i].dMap       = in[i].dMap;
+    out[i].Mkron      = in[i].Mkron;
+    out[i].dMkron     = in[i].dMkron;
+    out[i].McalPSF    = in[i].McalPSF;
+    out[i].McalAPER   = in[i].McalAPER;
+    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].FluxAp     = in[i].FluxAp;
+    out[i].dFluxAp    = in[i].dFluxAp;
+    out[i].airmass    = in[i].airmass;
+    out[i].az         = in[i].az;
+    out[i].Xccd       = in[i].Xccd;
+    out[i].Yccd       = in[i].Yccd;
+    out[i].Xfix       = in[i].Xfix;
+    out[i].Yfix       = in[i].Yfix;
+    out[i].XoffKH     = in[i].XoffKH;
+    out[i].YoffKH     = in[i].YoffKH;
+    out[i].XoffDCR    = in[i].XoffDCR;
+    out[i].YoffDCR    = in[i].YoffDCR;
+    out[i].XoffCAM    = in[i].XoffCAM;
+    out[i].YoffCAM    = in[i].YoffCAM;
+    out[i].Mflat      = in[i].Mflat;
+    out[i].Sky        = in[i].Sky;
+    out[i].dSky       = in[i].dSky;
+    out[i].t          = in[i].t;
+    out[i].averef     = in[i].averef;
+    out[i].detID      = in[i].detID;
+    out[i].objID      = in[i].objID;
+    out[i].catID      = in[i].catID;
+    out[i].extID      = in[i].extID;
+    out[i].imageID    = in[i].imageID;
+    out[i].psfQF      = in[i].psfQF;
+    out[i].psfQFperf  = in[i].psfQFperf;
+    out[i].psfChisq   = in[i].psfChisq;
+    out[i].psfNdof    = in[i].psfNdof;
+    out[i].psfNpix    = in[i].psfNpix;
+    out[i].extNsigma  = in[i].extNsigma;
+    out[i].FWx 	      = in[i].FWx;
+    out[i].FWy 	      = in[i].FWy;
+    out[i].theta      = in[i].theta;
+    out[i].Mxx 	      = in[i].Mxx;
+    out[i].Mxy 	      = in[i].Mxy;
+    out[i].Myy 	      = in[i].Myy;
+    out[i].t_msec     = in[i].t_msec;
+    out[i].photcode   = in[i].photcode;
+    out[i].dXccd      = in[i].dXccd;
+    out[i].dYccd      = in[i].dYccd;
+    out[i].dRsys      = in[i].dRsys;
+    out[i].posangle   = in[i].posangle;
+    out[i].pltscale   = in[i].pltscale;
+    out[i].dbFlags    = in[i].dbFlags;
+    out[i].photFlags  = in[i].photFlags;
+    out[i].photFlags2 = in[i].photFlags2;
+  }
+  return (out);
+}
+
+// 'primary' is needed to conform with the API for Loneos and Elixir, but is not used
+Average *Average_PS1_V6_ToInternal (Average_PS1_V6 *in, off_t Nvalues, SecFilt **primary) {
+  OHANA_UNUSED_PARAM(primary);
+
+  off_t i;
+  Average *out;
+
+  ALLOCATE_ZERO (out, Average, Nvalues);
+
+  for (i = 0; i < Nvalues; i++) {
+    dvo_average_init (&out[i]);
+
+    out[i].R        	  = in[i].R;      
+    out[i].D        	  = in[i].D;      
+    out[i].dR       	  = in[i].dR;
+    out[i].dD       	  = in[i].dD;
+    out[i].uR       	  = in[i].uR;
+    out[i].uD       	  = in[i].uD;
+    out[i].duR      	  = in[i].duR;
+    out[i].duD      	  = in[i].duD;
+    out[i].P        	  = in[i].P;
+    out[i].dP       	  = in[i].dP;
+			  
+    out[i].Rstk        	  = in[i].Rstk;      
+    out[i].Dstk        	  = in[i].Dstk;      
+    out[i].dRstk       	  = in[i].dRstk;
+    out[i].dDstk       	  = in[i].dDstk;
+			  
+    out[i].ChiSqAve    	  = in[i].ChiSqAve;     
+    out[i].ChiSqPM    	  = in[i].ChiSqPM;     
+    out[i].ChiSqPar    	  = in[i].ChiSqPar;     
+    out[i].Tmean    	  = in[i].Tmean;     
+    out[i].Trange   	  = in[i].Trange;     
+			  
+    out[i].psfQF          = in[i].psfQF;
+    out[i].psfQFperf      = in[i].psfQFperf;
+    out[i].stargal     	  = in[i].stargal;     
+    out[i].Npos       	  = in[i].Npos;     
+			  
+    out[i].Nmeasure       = in[i].Nmeasure;     
+    out[i].Nmissing       = in[i].Nmissing;     
+    out[i].Nlensing       = in[i].Nlensing;     
+    out[i].Nlensobj       = in[i].Nlensobj;     
+    out[i].Nstarpar       = in[i].Nstarpar;     
+    out[i].Ngalphot       = in[i].Ngalphot;     
+			  
+    out[i].measureOffset  = in[i].measureOffset; 
+    out[i].missingOffset  = in[i].missingOffset;
+    out[i].lensingOffset  = in[i].lensingOffset;
+    out[i].lensobjOffset  = in[i].lensobjOffset;
+    out[i].starparOffset  = in[i].starparOffset;
+    out[i].galphotOffset  = in[i].galphotOffset;
+
+    out[i].refColorBlue   = in[i].refColorBlue;
+    out[i].refColorRed    = in[i].refColorRed;
+			  
+    out[i].tessID         = in[i].tessID;
+    out[i].skycellID      = in[i].skycellID;
+    out[i].projectionID   = in[i].projectionID;
+			  
+    out[i].NwarpOK     	  = in[i].NwarpOK;   
+
+    out[i].flags     	  = in[i].flags;   
+    out[i].photFlagsUpper = in[i].photFlagsUpper;   
+    out[i].photFlagsLower = in[i].photFlagsLower;   
+    out[i].objID 	  = in[i].objID;
+    out[i].catID 	  = in[i].catID;
+    out[i].extID 	  = in[i].extID;
+			  
+    out[i].uRgal 	  = in[i].uRgal;
+    out[i].uDgal 	  = in[i].uDgal;
+  }
+  return (out);
+}
+
+// 'primary' is needed to conform with the API for Loneos and Elixir, but is not used
+Average_PS1_V6 *AverageInternalTo_PS1_V6 (Average *in, off_t Nvalues, SecFilt *primary) {
+  OHANA_UNUSED_PARAM(primary);
+
+  off_t i;
+  Average_PS1_V6 *out;
+
+  ALLOCATE_ZERO (out, Average_PS1_V6, Nvalues);
+
+  for (i = 0; i < Nvalues; i++) {
+    out[i].R        	  = in[i].R;      
+    out[i].D        	  = in[i].D;      
+    out[i].dR       	  = in[i].dR;
+    out[i].dD       	  = in[i].dD;
+    out[i].uR       	  = in[i].uR;
+    out[i].uD       	  = in[i].uD;
+    out[i].duR      	  = in[i].duR;
+    out[i].duD      	  = in[i].duD;
+    out[i].P        	  = in[i].P;
+    out[i].dP       	  = in[i].dP;
+			  
+    out[i].Rstk        	  = in[i].Rstk;      
+    out[i].Dstk        	  = in[i].Dstk;      
+    out[i].dRstk       	  = in[i].dRstk;
+    out[i].dDstk       	  = in[i].dDstk;
+			  
+    out[i].ChiSqAve    	  = in[i].ChiSqAve;     
+    out[i].ChiSqPM     	  = in[i].ChiSqPM;     
+    out[i].ChiSqPar   	  = in[i].ChiSqPar;     
+    out[i].Tmean    	  = in[i].Tmean;     
+    out[i].Trange   	  = in[i].Trange;     
+			  
+    out[i].psfQF          = in[i].psfQF;
+    out[i].psfQFperf      = in[i].psfQFperf;
+    out[i].stargal     	  = in[i].stargal;     
+    out[i].Npos       	  = in[i].Npos;     
+			  
+    out[i].Nmeasure       = in[i].Nmeasure;     
+    out[i].Nmissing       = in[i].Nmissing;     
+    out[i].Nlensing       = in[i].Nlensing;     
+    out[i].Nlensobj       = in[i].Nlensobj;     
+    out[i].Nstarpar       = in[i].Nstarpar;     
+    out[i].Ngalphot        = in[i].Ngalphot;     
+			  
+    out[i].measureOffset  = in[i].measureOffset; 
+    out[i].missingOffset  = in[i].missingOffset;
+    out[i].lensingOffset  = in[i].lensingOffset;
+    out[i].lensobjOffset  = in[i].lensobjOffset;
+    out[i].starparOffset  = in[i].starparOffset;
+    out[i].galphotOffset   = in[i].galphotOffset;
+			  
+    out[i].refColorBlue   = in[i].refColorBlue;
+    out[i].refColorRed    = in[i].refColorRed;
+			  
+    out[i].tessID         = in[i].tessID;
+    out[i].skycellID      = in[i].skycellID;
+    out[i].projectionID   = in[i].projectionID;
+			  
+    out[i].NwarpOK     	  = in[i].NwarpOK;   
+
+    out[i].flags     	  = in[i].flags;   
+    out[i].photFlagsUpper = in[i].photFlagsUpper;   
+    out[i].photFlagsLower = in[i].photFlagsLower;   
+    out[i].objID 	  = in[i].objID;
+    out[i].catID 	  = in[i].catID;
+    out[i].extID 	  = in[i].extID;
+
+    out[i].uRgal 	 = in[i].uRgal;
+    out[i].uDgal 	 = in[i].uDgal;
+  }
+  return (out);
+}
+
+SecFilt *SecFilt_PS1_V6_ToInternal (SecFilt_PS1_V6 *in, off_t Nvalues) {
+
+  off_t i;
+  SecFilt *out;
+
+  ALLOCATE_ZERO (out, SecFilt, Nvalues);
+
+  for (i = 0; i < Nvalues; i++) {
+    dvo_secfilt_init (&out[i], SECFILT_RESET_ALL);
+
+    out[i].MpsfChp       = in[i].M;      
+    out[i].sMpsfChp      = in[i].Mstdev;      
+    out[i].dMpsfChp      = in[i].dM;      
+    out[i].MapChp        = in[i].Map;      
+    out[i].dMapChp       = in[i].dMap;      
+    out[i].sMapChp       = in[i].sMap;      
+    out[i].MkronChp      = in[i].Mkron;      
+    out[i].dMkronChp     = in[i].dMkron;      
+    out[i].sMkronChp     = in[i].sMkron;      
+
+    out[i].psfQfMax      = in[i].psfQfMax;      
+    out[i].psfQfPerfMax  = in[i].psfQfPerfMax;      
+
+    out[i].Mmin          = in[i].Mmin;      
+    out[i].Mmax          = in[i].Mmax;      
+    out[i].Mchisq        = in[i].Mchisq;     
+
+    out[i].Ncode         = in[i].Ncode;
+    out[i].Nused         = in[i].Nused;
+    out[i].NusedKron     = in[i].NusedKron;
+    out[i].NusedAp       = in[i].NusedAp;
+
+    out[i].flags         = in[i].flags;     
+
+    out[i].MpsfStk       = in[i].MpsfStk;
+    out[i].FpsfStk       = in[i].FpsfStk;
+    out[i].dFpsfStk      = in[i].dFpsfStk;
+
+    out[i].MkronStk      = in[i].MkronStk;
+    out[i].FkronStk      = in[i].FkronStk;
+    out[i].dFkronStk     = in[i].dFkronStk;
+
+    out[i].MapStk        = in[i].MapStk;
+    out[i].FapStk        = in[i].FapStk;
+    out[i].dFapStk       = in[i].dFapStk;
+
+    out[i].Nstack        = in[i].Nstack;      
+    out[i].NstackDet     = in[i].NstackDet;      
+
+    out[i].stackPrmryOff = in[i].stackPrmryOff;      
+    out[i].stackBestOff  = in[i].stackBestOff;      
+
+    out[i].MpsfWrp       = in[i].MpsfWrp;
+    out[i].FpsfWrp       = in[i].FpsfWrp;
+    out[i].dFpsfWrp      = in[i].dFpsfWrp;
+    out[i].sFpsfWrp      = in[i].sFpsfWrp;
+
+    out[i].MkronWrp      = in[i].MkronWrp;
+    out[i].FkronWrp      = in[i].FkronWrp;
+    out[i].dFkronWrp     = in[i].dFkronWrp;
+    out[i].sFkronWrp     = in[i].sFkronWrp;
+
+    out[i].MapWrp        = in[i].MapWrp;
+    out[i].FapWrp        = in[i].FapWrp;
+    out[i].dFapWrp       = in[i].dFapWrp;
+    out[i].sFapWrp       = in[i].sFapWrp;
+
+    out[i].NusedWrp      = in[i].NusedWrp;
+    out[i].NusedKronWrp  = in[i].NusedKronWrp;
+    out[i].NusedApWrp    = in[i].NusedApWrp;
+
+    out[i].Nwarp         = in[i].Nwarp;      
+    out[i].NwarpGood     = in[i].NwarpGood;      
+
+    out[i].ubercalDist   = in[i].ubercalDist;      
+  }
+  return (out);
+}
+
+SecFilt_PS1_V6 *SecFiltInternalTo_PS1_V6 (SecFilt *in, off_t Nvalues) {
+
+  off_t i;
+  SecFilt_PS1_V6 *out;
+
+  ALLOCATE_ZERO (out, SecFilt_PS1_V6, Nvalues);
+
+  for (i = 0; i < Nvalues; i++) {
+
+    out[i].M             = in[i].MpsfChp;      
+    out[i].dM            = in[i].dMpsfChp;      
+    out[i].Mstdev        = in[i].sMpsfChp;      
+    out[i].Map           = in[i].MapChp;      
+    out[i].dMap          = in[i].dMapChp;      
+    out[i].sMap          = in[i].sMapChp;      
+    out[i].Mkron         = in[i].MkronChp;      
+    out[i].dMkron        = in[i].dMkronChp;      
+    out[i].sMkron        = in[i].sMkronChp;      
+
+    out[i].psfQfMax      = in[i].psfQfMax;      
+    out[i].psfQfPerfMax  = in[i].psfQfPerfMax;      
+
+    out[i].Mmin          = in[i].Mmin;      
+    out[i].Mmax          = in[i].Mmax;      
+    out[i].Mchisq        = in[i].Mchisq;     
+
+    out[i].Ncode         = in[i].Ncode;
+    out[i].Nused         = in[i].Nused;
+    out[i].NusedKron     = in[i].NusedKron;
+    out[i].NusedAp       = in[i].NusedAp;
+
+    out[i].flags         = in[i].flags;     
+
+    out[i].MpsfStk       = in[i].MpsfStk;
+    out[i].FpsfStk       = in[i].FpsfStk;
+    out[i].dFpsfStk      = in[i].dFpsfStk;
+
+    out[i].MkronStk      = in[i].MkronStk;
+    out[i].FkronStk      = in[i].FkronStk;
+    out[i].dFkronStk     = in[i].dFkronStk;
+
+    out[i].MapStk        = in[i].MapStk;
+    out[i].FapStk        = in[i].FapStk;
+    out[i].dFapStk       = in[i].dFapStk;
+
+    out[i].Nstack        = in[i].Nstack;      
+    out[i].NstackDet     = in[i].NstackDet;      
+
+    out[i].stackPrmryOff = in[i].stackPrmryOff;      
+    out[i].stackBestOff  = in[i].stackBestOff;      
+
+    out[i].MpsfWrp       = in[i].MpsfWrp;
+    out[i].FpsfWrp       = in[i].FpsfWrp;
+    out[i].dFpsfWrp      = in[i].dFpsfWrp;
+    out[i].sFpsfWrp      = in[i].sFpsfWrp;
+
+    out[i].MkronWrp      = in[i].MkronWrp;
+    out[i].FkronWrp      = in[i].FkronWrp;
+    out[i].dFkronWrp     = in[i].dFkronWrp;
+    out[i].sFkronWrp     = in[i].sFkronWrp;
+
+    out[i].MapWrp        = in[i].MapWrp;
+    out[i].FapWrp        = in[i].FapWrp;
+    out[i].dFapWrp       = in[i].dFapWrp;
+    out[i].sFapWrp       = in[i].sFapWrp;
+
+    out[i].NusedWrp      = in[i].NusedWrp;
+    out[i].NusedKronWrp  = in[i].NusedKronWrp;
+    out[i].NusedApWrp    = in[i].NusedApWrp;
+
+    out[i].Nwarp         = in[i].Nwarp;      
+    out[i].NwarpGood     = in[i].NwarpGood;      
+
+    out[i].ubercalDist   = in[i].ubercalDist;      
+  }
+  return (out);
+}
+
+Lensing *Lensing_PS1_V6_ToInternal (Lensing_PS1_V6 *in, off_t Nvalues) {
+
+  off_t i;
+  Lensing *out;
+
+  ALLOCATE_ZERO (out, Lensing, Nvalues);
+
+  for (i = 0; i < Nvalues; i++) {
+    dvo_lensing_init (&out[i]);
+
+    out[i].X11_sm_obj  = in[i].X11_sm_obj;      
+    out[i].X12_sm_obj  = in[i].X12_sm_obj;      
+    out[i].X22_sm_obj  = in[i].X22_sm_obj;      
+    out[i].E1_sm_obj   = in[i].E1_sm_obj;      
+    out[i].E2_sm_obj   = in[i].E2_sm_obj;      
+	             	                 
+    out[i].X11_sh_obj  = in[i].X11_sh_obj;      
+    out[i].X12_sh_obj  = in[i].X12_sh_obj;      
+    out[i].X22_sh_obj  = in[i].X22_sh_obj;      
+    out[i].E1_sh_obj   = in[i].E1_sh_obj;      
+    out[i].E2_sh_obj   = in[i].E2_sh_obj;     
+	             	                 
+    out[i].X11_sm_psf  = in[i].X11_sm_psf;
+    out[i].X12_sm_psf  = in[i].X12_sm_psf;
+    out[i].X22_sm_psf  = in[i].X22_sm_psf;
+    out[i].E1_sm_psf   = in[i].E1_sm_psf;
+    out[i].E2_sm_psf   = in[i].E2_sm_psf;     
+	             	                 
+    out[i].X11_sh_psf  = in[i].X11_sh_psf;
+    out[i].X12_sh_psf  = in[i].X12_sh_psf;
+    out[i].X22_sh_psf  = in[i].X22_sh_psf;
+    out[i].E1_sh_psf   = in[i].E1_sh_psf;
+    out[i].E2_sh_psf   = in[i].E2_sh_psf;
+
+    out[i].E1_psf      = in[i].E1_psf;
+    out[i].E2_psf      = in[i].E2_psf;
+
+    out[i].F_ApR5      = in[i].F_ApR5;
+    out[i].dF_ApR5     = in[i].dF_ApR5;
+    out[i].sF_ApR5     = in[i].sF_ApR5;
+    out[i].fF_ApR5     = in[i].fF_ApR5;
+	               	            
+    out[i].F_ApR6      = in[i].F_ApR6;
+    out[i].dF_ApR6     = in[i].dF_ApR6;
+    out[i].sF_ApR6     = in[i].sF_ApR6;
+    out[i].fF_ApR6     = in[i].fF_ApR6;
+	          	            
+    out[i].F_ApR7      = in[i].F_ApR7;
+    out[i].dF_ApR7     = in[i].dF_ApR7;
+    out[i].sF_ApR7     = in[i].sF_ApR7;
+    out[i].fF_ApR7     = in[i].fF_ApR7;
+	          	            
+    out[i].detID       = in[i].detID;
+    out[i].objID       = in[i].objID;
+    out[i].catID       = in[i].catID;
+    out[i].averef      = in[i].averef;
+
+    out[i].imageID     = in[i].imageID;
+    out[i].oldImID     = in[i].oldImID;
+  }
+  return (out);
+}
+
+Lensing_PS1_V6 *LensingInternalTo_PS1_V6 (Lensing *in, off_t Nvalues) {
+
+  off_t i;
+  Lensing_PS1_V6 *out;
+
+  ALLOCATE_ZERO (out, Lensing_PS1_V6, Nvalues);
+
+  for (i = 0; i < Nvalues; i++) {
+
+    out[i].X11_sm_obj  = in[i].X11_sm_obj;      
+    out[i].X12_sm_obj  = in[i].X12_sm_obj;      
+    out[i].X22_sm_obj  = in[i].X22_sm_obj;      
+    out[i].E1_sm_obj   = in[i].E1_sm_obj;      
+    out[i].E2_sm_obj   = in[i].E2_sm_obj;      
+	             	                 
+    out[i].X11_sh_obj  = in[i].X11_sh_obj;      
+    out[i].X12_sh_obj  = in[i].X12_sh_obj;      
+    out[i].X22_sh_obj  = in[i].X22_sh_obj;      
+    out[i].E1_sh_obj   = in[i].E1_sh_obj;      
+    out[i].E2_sh_obj   = in[i].E2_sh_obj;     
+	             	                 
+    out[i].X11_sm_psf  = in[i].X11_sm_psf;
+    out[i].X12_sm_psf  = in[i].X12_sm_psf;
+    out[i].X22_sm_psf  = in[i].X22_sm_psf;
+    out[i].E1_sm_psf   = in[i].E1_sm_psf;
+    out[i].E2_sm_psf   = in[i].E2_sm_psf;     
+	             	                 
+    out[i].X11_sh_psf  = in[i].X11_sh_psf;
+    out[i].X12_sh_psf  = in[i].X12_sh_psf;
+    out[i].X22_sh_psf  = in[i].X22_sh_psf;
+    out[i].E1_sh_psf   = in[i].E1_sh_psf;
+    out[i].E2_sh_psf   = in[i].E2_sh_psf;
+
+    out[i].E1_psf      = in[i].E1_psf;
+    out[i].E2_psf      = in[i].E2_psf;
+
+    out[i].F_ApR5      = in[i].F_ApR5;
+    out[i].dF_ApR5     = in[i].dF_ApR5;
+    out[i].sF_ApR5     = in[i].sF_ApR5;
+    out[i].fF_ApR5     = in[i].fF_ApR5;
+	               	            
+    out[i].F_ApR6      = in[i].F_ApR6;
+    out[i].dF_ApR6     = in[i].dF_ApR6;
+    out[i].sF_ApR6     = in[i].sF_ApR6;
+    out[i].fF_ApR6     = in[i].fF_ApR6;
+	          	            
+    out[i].F_ApR7      = in[i].F_ApR7;
+    out[i].dF_ApR7     = in[i].dF_ApR7;
+    out[i].sF_ApR7     = in[i].sF_ApR7;
+    out[i].fF_ApR7     = in[i].fF_ApR7;
+	          	            
+    out[i].detID       = in[i].detID;
+    out[i].objID       = in[i].objID;
+    out[i].catID       = in[i].catID;
+    out[i].averef      = in[i].averef;
+
+    out[i].imageID     = in[i].imageID;
+    out[i].oldImID     = in[i].oldImID;
+  }
+  return (out);
+}
+
+Lensobj *Lensobj_PS1_V6_ToInternal (Lensobj_PS1_V6 *in, off_t Nvalues) {
+
+  off_t i;
+  Lensobj *out;
+
+  ALLOCATE_ZERO (out, Lensobj, Nvalues);
+
+  for (i = 0; i < Nvalues; i++) {
+    dvo_lensobj_init (&out[i], FALSE);
+
+    out[i].X11_sm_obj  = in[i].X11_sm_obj;      
+    out[i].X12_sm_obj  = in[i].X12_sm_obj;      
+    out[i].X22_sm_obj  = in[i].X22_sm_obj;      
+    out[i].E1_sm_obj   = in[i].E1_sm_obj;      
+    out[i].E2_sm_obj   = in[i].E2_sm_obj;      
+	             	                 
+    out[i].X11_sh_obj  = in[i].X11_sh_obj;      
+    out[i].X12_sh_obj  = in[i].X12_sh_obj;      
+    out[i].X22_sh_obj  = in[i].X22_sh_obj;      
+    out[i].E1_sh_obj   = in[i].E1_sh_obj;      
+    out[i].E2_sh_obj   = in[i].E2_sh_obj;     
+	             	                 
+    out[i].X11_sm_psf  = in[i].X11_sm_psf;
+    out[i].X12_sm_psf  = in[i].X12_sm_psf;
+    out[i].X22_sm_psf  = in[i].X22_sm_psf;
+    out[i].E1_sm_psf   = in[i].E1_sm_psf;
+    out[i].E2_sm_psf   = in[i].E2_sm_psf;     
+	             	                 
+    out[i].X11_sh_psf  = in[i].X11_sh_psf;
+    out[i].X12_sh_psf  = in[i].X12_sh_psf;
+    out[i].X22_sh_psf  = in[i].X22_sh_psf;
+    out[i].E1_sh_psf   = in[i].E1_sh_psf;
+    out[i].E2_sh_psf   = in[i].E2_sh_psf;
+
+    out[i].F_ApR5      = in[i].F_ApR5;
+    out[i].dF_ApR5     = in[i].dF_ApR5;
+    out[i].sF_ApR5     = in[i].sF_ApR5;
+    out[i].fF_ApR5     = in[i].fF_ApR5;
+	               	            
+    out[i].F_ApR6      = in[i].F_ApR6;
+    out[i].dF_ApR6     = in[i].dF_ApR6;
+    out[i].sF_ApR6     = in[i].sF_ApR6;
+    out[i].fF_ApR6     = in[i].fF_ApR6;
+	          	            
+    out[i].F_ApR7      = in[i].F_ApR7;
+    out[i].dF_ApR7     = in[i].dF_ApR7;
+    out[i].sF_ApR7     = in[i].sF_ApR7;
+    out[i].fF_ApR7     = in[i].fF_ApR7;
+	          	            
+    out[i].gamma       = in[i].gamma;
+    out[i].E1          = in[i].E1;
+    out[i].E2          = in[i].E2;
+
+    out[i].objID       = in[i].objID;
+    out[i].catID       = in[i].catID;
+
+    out[i].photcode    = in[i].photcode;
+    out[i].Nmeas       = in[i].Nmeas;
+  }
+  return (out);
+}
+
+Lensobj_PS1_V6 *LensobjInternalTo_PS1_V6 (Lensobj *in, off_t Nvalues) {
+
+  off_t i;
+  Lensobj_PS1_V6 *out;
+
+  ALLOCATE_ZERO (out, Lensobj_PS1_V6, Nvalues);
+
+  for (i = 0; i < Nvalues; i++) {
+
+    out[i].X11_sm_obj  = in[i].X11_sm_obj;      
+    out[i].X12_sm_obj  = in[i].X12_sm_obj;      
+    out[i].X22_sm_obj  = in[i].X22_sm_obj;      
+    out[i].E1_sm_obj   = in[i].E1_sm_obj;      
+    out[i].E2_sm_obj   = in[i].E2_sm_obj;      
+	             	                 
+    out[i].X11_sh_obj  = in[i].X11_sh_obj;      
+    out[i].X12_sh_obj  = in[i].X12_sh_obj;      
+    out[i].X22_sh_obj  = in[i].X22_sh_obj;      
+    out[i].E1_sh_obj   = in[i].E1_sh_obj;      
+    out[i].E2_sh_obj   = in[i].E2_sh_obj;     
+	             	                 
+    out[i].X11_sm_psf  = in[i].X11_sm_psf;
+    out[i].X12_sm_psf  = in[i].X12_sm_psf;
+    out[i].X22_sm_psf  = in[i].X22_sm_psf;
+    out[i].E1_sm_psf   = in[i].E1_sm_psf;
+    out[i].E2_sm_psf   = in[i].E2_sm_psf;     
+	             	                 
+    out[i].X11_sh_psf  = in[i].X11_sh_psf;
+    out[i].X12_sh_psf  = in[i].X12_sh_psf;
+    out[i].X22_sh_psf  = in[i].X22_sh_psf;
+    out[i].E1_sh_psf   = in[i].E1_sh_psf;
+    out[i].E2_sh_psf   = in[i].E2_sh_psf;
+
+    out[i].F_ApR5      = in[i].F_ApR5;
+    out[i].dF_ApR5     = in[i].dF_ApR5;
+    out[i].sF_ApR5     = in[i].sF_ApR5;
+    out[i].fF_ApR5     = in[i].fF_ApR5;
+	               	            
+    out[i].F_ApR6      = in[i].F_ApR6;
+    out[i].dF_ApR6     = in[i].dF_ApR6;
+    out[i].sF_ApR6     = in[i].sF_ApR6;
+    out[i].fF_ApR6     = in[i].fF_ApR6;
+	          	            
+    out[i].F_ApR7      = in[i].F_ApR7;
+    out[i].dF_ApR7     = in[i].dF_ApR7;
+    out[i].sF_ApR7     = in[i].sF_ApR7;
+    out[i].fF_ApR7     = in[i].fF_ApR7;
+	          	            
+    out[i].gamma       = in[i].gamma;
+    out[i].E1          = in[i].E1;
+    out[i].E2          = in[i].E2;
+
+    out[i].objID       = in[i].objID;
+    out[i].catID       = in[i].catID;
+
+    out[i].photcode    = in[i].photcode;
+    out[i].Nmeas       = in[i].Nmeas;
+  }
+  return (out);
+}
+
+StarPar *StarPar_PS1_V6_ToInternal (StarPar_PS1_V6 *in, off_t Nvalues) {
+
+  off_t i;
+  StarPar *out;
+
+  ALLOCATE_ZERO (out, StarPar, Nvalues);
+
+  for (i = 0; i < Nvalues; i++) {
+    dvo_starpar_init (&out[i]);
+
+    out[i].R  	     = in[i].R;      
+    out[i].D  	     = in[i].D;      
+    out[i].galLat    = in[i].galLat;      
+    out[i].galLon    = in[i].galLon;      
+
+    out[i].Ebv       = in[i].Ebv     ;      
+    out[i].dEbv      = in[i].dEbv    ;      
+    out[i].DistMag   = in[i].DistMag ;      
+    out[i].dDistMag  = in[i].dDistMag;      
+    out[i].M_r       = in[i].M_r     ;      
+    out[i].dM_r      = in[i].dM_r    ;      
+    out[i].FeH       = in[i].FeH     ;      
+    out[i].dFeH      = in[i].dFeH    ;      
+    out[i].uRA       = in[i].uRA     ;      
+    out[i].uDEC      = in[i].uDEC    ;      
+
+    out[i].averef  = in[i].averef;
+    out[i].objID   = in[i].objID ;
+    out[i].catID   = in[i].catID ;
+  }
+  return (out);
+}
+
+StarPar_PS1_V6 *StarParInternalTo_PS1_V6 (StarPar *in, off_t Nvalues) {
+
+  off_t i;
+  StarPar_PS1_V6 *out;
+
+  ALLOCATE_ZERO (out, StarPar_PS1_V6, Nvalues);
+
+  for (i = 0; i < Nvalues; i++) {
+
+    out[i].R  	     = in[i].R;      
+    out[i].D  	     = in[i].D;      
+    out[i].galLat    = in[i].galLat;      
+    out[i].galLon    = in[i].galLon;      
+
+    out[i].Ebv       = in[i].Ebv     ;      
+    out[i].dEbv      = in[i].dEbv    ;      
+    out[i].DistMag   = in[i].DistMag ;      
+    out[i].dDistMag  = in[i].dDistMag;      
+    out[i].M_r       = in[i].M_r     ;      
+    out[i].dM_r      = in[i].dM_r    ;      
+    out[i].FeH       = in[i].FeH     ;      
+    out[i].dFeH      = in[i].dFeH    ;      
+    out[i].uRA       = in[i].uRA     ;      
+    out[i].uDEC      = in[i].uDEC    ;      
+
+    out[i].averef  = in[i].averef;
+    out[i].objID   = in[i].objID ;
+    out[i].catID   = in[i].catID ;
+  }
+  return (out);
+}
+
+GalPhot *GalPhot_PS1_V6_ToInternal (GalPhot_PS1_V6 *in, off_t Nvalues) {
+
+  off_t i;
+  GalPhot *out;
+
+  ALLOCATE_ZERO (out, GalPhot, Nvalues);
+
+  for (i = 0; i < Nvalues; i++) {
+    dvo_galphot_init (&out[i]);
+
+    out[i].Xfit       	 = in[i].Xfit;
+    out[i].Yfit      	 = in[i].Yfit;
+    out[i].mag       	 = in[i].mag;
+    out[i].magErr    	 = in[i].magErr;
+    out[i].majorAxis 	 = in[i].majorAxis;
+    out[i].minorAxis 	 = in[i].minorAxis;
+    out[i].majorAxisErr  = in[i].majorAxisErr;
+    out[i].minorAxisErr  = in[i].minorAxisErr;
+    out[i].theta         = in[i].theta;
+    out[i].thetaErr      = in[i].thetaErr;
+    out[i].index         = in[i].index;
+    out[i].chisq	 = in[i].chisq;
+    out[i].Npix 	 = in[i].Npix;
+    out[i].objID	 = in[i].objID;
+    out[i].catID         = in[i].catID;
+    out[i].detID	 = in[i].detID;
+    out[i].imageID	 = in[i].imageID;
+    out[i].averef	 = in[i].averef;
+    out[i].flags	 = in[i].flags;
+    out[i].photcode	 = in[i].photcode;
+    out[i].modelType	 = in[i].modelType;
+  }
+  return (out);
+}
+
+GalPhot_PS1_V6 *GalPhotInternalTo_PS1_V6 (GalPhot *in, off_t Nvalues) {
+
+  off_t i;
+  GalPhot_PS1_V6 *out;
+
+  ALLOCATE_ZERO (out, GalPhot_PS1_V6, Nvalues);
+
+  for (i = 0; i < Nvalues; i++) {
+    out[i].Xfit       	 = in[i].Xfit;
+    out[i].Yfit      	 = in[i].Yfit;
+    out[i].mag       	 = in[i].mag;
+    out[i].magErr    	 = in[i].magErr;
+    out[i].majorAxis 	 = in[i].majorAxis;
+    out[i].minorAxis 	 = in[i].minorAxis;
+    out[i].majorAxisErr  = in[i].majorAxisErr;
+    out[i].minorAxisErr  = in[i].minorAxisErr;
+    out[i].theta         = in[i].theta;
+    out[i].thetaErr      = in[i].thetaErr;
+    out[i].index         = in[i].index;
+    out[i].chisq	 = in[i].chisq;
+    out[i].Npix 	 = in[i].Npix;
+    out[i].objID	 = in[i].objID;
+    out[i].catID         = in[i].catID;
+    out[i].detID	 = in[i].detID;
+    out[i].imageID	 = in[i].imageID;
+    out[i].averef	 = in[i].averef;
+    out[i].flags	 = in[i].flags;
+    out[i].photcode	 = in[i].photcode;
+    out[i].modelType	 = in[i].modelType;
+  }
+  return (out);
+}
+
+# define RAW_IMAGE_NAME_LEN 117
+
+Image *Image_PS1_V6_ToInternal (Image_PS1_V6 *in, off_t Nvalues, off_t Nalloc) {
+
+  off_t i;
+  Image *out;
+
+  char *buffer;
+  ALLOCATE_ZERO (buffer, char, Nalloc);
+  out = (Image *) buffer;
+  // ALLOCATE_ZERO (out, Image, Nvalues);
+
+  for (i = 0; i < Nvalues; i++) {
+    // this is only safe because the initial 120 bytes in Coords match CoordsDisk
+    memcpy (&out[i].coords, &in[i].coords, sizeof(CoordsDisk));
+    out[i].coords.mosaic   = NULL;
+    out[i].coords.offsetMap = NULL;
+
+    // RAW_IMAGE_NAME_LEN == DVO_IMAGE_NAME_LEN
+    strncpy (out[i].name, in[i].name, RAW_IMAGE_NAME_LEN - 1);
+    out[i].name[RAW_IMAGE_NAME_LEN - 1] = 0; // force termination
+
+    out[i].tzero    	    = in[i].tzero;
+    out[i].nstar    	    = in[i].nstar;
+    out[i].secz	    	    = in[i].secz;
+    out[i].NX	    	    = in[i].NX;
+    out[i].NY	    	    = in[i].NY;
+    out[i].apmifit  	    = in[i].apmifit;
+    out[i].dapmifit 	    = in[i].dapmifit;
+    out[i].McalPSF   	    = in[i].McalPSF;
+    out[i].McalAPER    	    = in[i].McalAPER;
+    out[i].dMcal    	    = in[i].dMcal;
+    out[i].McalChiSq   	    = in[i].McalChiSq;
+    out[i].photcode   	    = in[i].photcode;
+    out[i].exptime  	    = in[i].exptime;
+    out[i].sidtime  	    = in[i].sidtime;
+    out[i].latitude  	    = in[i].latitude;
+
+    out[i].RAo  	    = in[i].RAo;
+    out[i].DECo  	    = in[i].DECo;
+    out[i].Radius  	    = in[i].Radius;
+    out[i].refColorBlue	    = in[i].refColorBlue;
+    out[i].refColorRed 	    = in[i].refColorRed;
+
+    out[i].detection_limit  = in[i].detection_limit;
+    out[i].saturation_limit = in[i].saturation_limit;
+    out[i].cerror	    = in[i].cerror;
+    out[i].fwhm_x	    = in[i].fwhm_x;
+    out[i].fwhm_y	    = in[i].fwhm_y;
+    out[i].trate	    = in[i].trate;
+    out[i].ccdnum	    = in[i].ccdnum;
+    out[i].flags	    = in[i].flags;
+    out[i].imageID	    = in[i].imageID;
+    out[i].parentID	    = in[i].parentID;
+    out[i].externID	    = in[i].externID;
+    out[i].sourceID	    = in[i].sourceID;
+
+    // as of 2011.02.03, the old Mx,My,..., Mxxxx,Myyyy have been deprecated and replaced
+    // with the following.  (no real databases used those values -- see
+    // libdvo/doc/dvo-images.txt)
+    out[i].nLinkAstrom	    = in[i].nLinkAstrom;
+    out[i].nLinkPhotom	    = in[i].nLinkPhotom;
+    out[i].ubercalDist	    = in[i].ubercalDist;
+    out[i].dXpixSys	    = in[i].dXpixSys;
+    out[i].dYpixSys	    = in[i].dYpixSys;
+    out[i].dMagSys	    = in[i].dMagSys;
+    out[i].nFitAstrom       = in[i].nFitAstrom;
+    out[i].nFitPhotom       = in[i].nFitPhotom;
+    out[i].photom_map_id    = in[i].photom_map_id;
+    out[i].astrom_map_id    = in[i].astrom_map_id;
+  }
+  return (out);
+}
+
+Image_PS1_V6 *ImageInternalTo_PS1_V6 (Image *in, off_t Nvalues) {
+
+  off_t i;
+  Image_PS1_V6 *out;
+
+  ALLOCATE_ZERO (out, Image_PS1_V6, Nvalues);
+
+  for (i = 0; i < Nvalues; i++) {
+    // this is only save because the initial 120 bytes in Coords match CoordsDisk
+    memcpy (&out[i].coords, &in[i].coords, sizeof(CoordsDisk));
+
+    // RAW_IMAGE_NAME_LEN == DVO_IMAGE_NAME_LEN
+    strncpy (out[i].name, in[i].name, RAW_IMAGE_NAME_LEN - 1);
+    out[i].name[RAW_IMAGE_NAME_LEN - 1] = 0; // force termination
+
+    out[i].tzero    	    = in[i].tzero;
+    out[i].nstar    	    = in[i].nstar;
+    out[i].secz	    	    = in[i].secz;
+    out[i].NX	    	    = in[i].NX;
+    out[i].NY	    	    = in[i].NY;
+    out[i].apmifit  	    = in[i].apmifit;
+    out[i].dapmifit 	    = in[i].dapmifit;
+    out[i].McalPSF   	    = in[i].McalPSF;
+    out[i].McalAPER    	    = in[i].McalAPER;
+    out[i].dMcal    	    = in[i].dMcal;
+    out[i].McalChiSq   	    = in[i].McalChiSq;
+    out[i].photcode   	    = in[i].photcode;
+    out[i].exptime  	    = in[i].exptime;
+    out[i].sidtime  	    = in[i].sidtime;
+    out[i].latitude  	    = in[i].latitude;
+
+    out[i].RAo  	    = in[i].RAo;
+    out[i].DECo  	    = in[i].DECo;
+    out[i].Radius  	    = in[i].Radius;
+    out[i].refColorBlue	    = in[i].refColorBlue;
+    out[i].refColorRed 	    = in[i].refColorRed;
+
+    out[i].detection_limit  = in[i].detection_limit;
+    out[i].saturation_limit = in[i].saturation_limit;
+    out[i].cerror	    = in[i].cerror;
+    out[i].fwhm_x	    = in[i].fwhm_x;
+    out[i].fwhm_y	    = in[i].fwhm_y;
+    out[i].trate	    = in[i].trate;
+    out[i].ccdnum	    = in[i].ccdnum;
+    out[i].flags	    = in[i].flags;
+    out[i].imageID	    = in[i].imageID;
+    out[i].parentID	    = in[i].parentID;
+    out[i].externID	    = in[i].externID;
+    out[i].sourceID	    = in[i].sourceID;
+
+    // as of 2011.02.03, the old Mx,My,..., Mxxxx,Myyyy have been deprecated and replaced
+    // with the following.  (no real databases used those values -- see
+    // libdvo/doc/dvo-images.txt)
+    out[i].nLinkAstrom	    = in[i].nLinkAstrom;
+    out[i].nLinkPhotom	    = in[i].nLinkPhotom;
+    out[i].ubercalDist	    = in[i].ubercalDist;
+    out[i].dXpixSys	    = in[i].dXpixSys;
+    out[i].dYpixSys	    = in[i].dYpixSys;
+    out[i].dMagSys	    = in[i].dMagSys;
+    out[i].nFitAstrom       = in[i].nFitAstrom;
+    out[i].nFitPhotom       = in[i].nFitPhotom;
+    out[i].photom_map_id    = in[i].photom_map_id;
+    out[i].astrom_map_id    = in[i].astrom_map_id;
+  }
+  return (out);
+}
+
+PhotCode *PhotCode_PS1_V6_To_Internal (PhotCode_PS1_V6 *in, off_t Nvalues) {
+
+  off_t i;
+  PhotCode *out;
+
+  ALLOCATE_ZERO (out, PhotCode, Nvalues);
+
+  for (i = 0; i < Nvalues; i++) {
+    strncpy (out[i].name, in[i].name, 31); // out[32], in[32]
+    out[i].name[31] = 0; // force termination
+
+    out[i].code  = in[i].code;         
+    out[i].type  = in[i].type;         
+    out[i].C     = in[i].C;            
+    out[i].dC 	 = in[i].dC;           
+    out[i].dX 	 = in[i].dX;           
+    out[i].K  	 = in[i].K;            
+    out[i].c1 	 = in[i].c1;           
+    out[i].c2 	 = in[i].c2;           
+    out[i].equiv = in[i].equiv;        
+    out[i].Nc    = in[i].Nc;           
+    memcpy (out[i].X, in[i].X, 4*sizeof(float));            
+
+    out[i].astromErrSys      = in[i].astromErrSys;
+    out[i].astromErrScale    = in[i].astromErrScale;
+    out[i].astromErrMagScale = in[i].astromErrMagScale;
+    out[i].photomErrSys      = in[i].photomErrSys;
+
+    out[i].photomPoorMask      = in[i].photomPoorMask;
+    out[i].photomBadMask       = in[i].photomBadMask;
+    out[i].astromPoorMask      = in[i].astromPoorMask;
+    out[i].astromBadMask       = in[i].astromBadMask;
+  }
+  return (out);
+}
+
+PhotCode_PS1_V6 *PhotCode_Internal_To_PS1_V6 (PhotCode *in, off_t Nvalues) {
+
+  off_t i;
+  PhotCode_PS1_V6 *out;
+
+  ALLOCATE_ZERO (out, PhotCode_PS1_V6, Nvalues);
+
+  for (i = 0; i < Nvalues; i++) {
+    strncpy (out[i].name, in[i].name, 31); // out[32], in[32]
+    out[i].name[31] = 0; // force termination
+
+    out[i].code  = in[i].code;         
+    out[i].type  = in[i].type;         
+    out[i].C     = in[i].C;            
+    out[i].dC 	 = in[i].dC;           
+    out[i].dX 	 = in[i].dX;           
+    out[i].K  	 = in[i].K;            
+    out[i].c1 	 = in[i].c1;           
+    out[i].c2 	 = in[i].c2;           
+    out[i].equiv = in[i].equiv;        
+    out[i].Nc    = in[i].Nc;           
+    memcpy (out[i].X, in[i].X, 4*sizeof(float));            
+
+    out[i].astromErrSys      = in[i].astromErrSys;
+    out[i].astromErrScale    = in[i].astromErrScale;
+    out[i].astromErrMagScale = in[i].astromErrMagScale;
+    out[i].photomErrSys      = in[i].photomErrSys;
+
+    out[i].photomPoorMask      = in[i].photomPoorMask;
+    out[i].photomBadMask       = in[i].photomBadMask;
+    out[i].astromPoorMask      = in[i].astromPoorMask;
+    out[i].astromBadMask       = in[i].astromBadMask;
+  }
+  return (out);
+}
Index: trunk/Ohana/src/libdvo/src/dvo_convert_elixir.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_convert_elixir.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/dvo_convert_elixir.c	(revision 40291)
@@ -24,5 +24,6 @@
     out[i].dM       = (in[i].dM      == NAN_U_CHAR)  ? NAN : in[i].dM     * 0.001;
     out[i].dt       = (in[i].dt      == NAN_S_SHORT) ? NAN : in[i].dt     * 0.001;
-    out[i].Mcal     = (in[i].Mcal    == NAN_S_SHORT) ? NAN : in[i].Mcal   * 0.001;
+    out[i].McalPSF  = (in[i].Mcal    == NAN_S_SHORT) ? NAN : in[i].Mcal   * 0.001;
+    out[i].McalAPER = (in[i].Mcal    == NAN_S_SHORT) ? NAN : in[i].Mcal   * 0.001;
     out[i].Map      = (in[i].Mgal    == NAN_S_SHORT) ? NAN : in[i].Mgal   * 0.001;
     out[i].airmass  = (in[i].airmass == NAN_S_SHORT) ? NAN : in[i].airmass* 0.001;
@@ -72,5 +73,5 @@
     out[i].dM       = isnan(in[i].dM     ) ? NAN_U_CHAR  : in[i].dM      * 1000.0;
     out[i].dt       = isnan(in[i].dt     ) ? NAN_S_SHORT : in[i].dt      * 1000.0;
-    out[i].Mcal     = isnan(in[i].Mcal   ) ? NAN_S_SHORT : in[i].Mcal    * 1000.0;
+    out[i].Mcal     = isnan(in[i].McalPSF) ? NAN_S_SHORT : in[i].McalPSF * 1000.0;
     out[i].Mgal     = isnan(in[i].Map    ) ? NAN_S_SHORT : in[i].Map     * 1000.0;
     out[i].airmass  = isnan(in[i].airmass) ? NAN_S_SHORT : in[i].airmass * 1000.0;
@@ -109,6 +110,6 @@
 
     // changed for PANSTARRS_DEV_0 (moved from Average to Measure)
-    primary[0][i].M     = (in[i].M  == NAN_S_SHORT) ? NAN : in[i].M  * 0.001;      
-    primary[0][i].dM    = (in[i].dM == NAN_S_SHORT) ? NAN : in[i].dM * 0.001;      
+    primary[0][i].MpsfChp  = (in[i].M  == NAN_S_SHORT) ? NAN : in[i].M  * 0.001;      
+    primary[0][i].dMpsfChp = (in[i].dM == NAN_S_SHORT) ? NAN : in[i].dM * 0.001;      
     primary[0][i].Mchisq= pow (10.0, 0.01*in[i].Xm);     
 
@@ -142,6 +143,6 @@
 
     // changed for PANSTARRS_DEV_0 (moved from Average to Measure)
-    out[i].M       = isnan(primary[i].M)  ? NAN_S_SHORT : primary[i].M   * 1000.0;
-    out[i].dM      = isnan(primary[i].dM) ? NAN_S_SHORT : primary[i].dM  * 1000.0;
+    out[i].M       = isnan(primary[i].MpsfChp)  ? NAN_S_SHORT : primary[i].MpsfChp   * 1000.0;
+    out[i].dM      = isnan(primary[i].dMpsfChp) ? NAN_S_SHORT : primary[i].dMpsfChp  * 1000.0;
     out[i].Xm      = 100.0*log10(primary[i].Mchisq);     
 
@@ -172,6 +173,6 @@
 
     // added or changed for PANSTARRS_DEV_0
-    out[i].M     = (in[i].M  == NAN_S_SHORT) ? NAN : in[i].M   * 0.001;
-    out[i].dM    = (in[i].dM == NAN_S_SHORT) ? NAN : in[i].dM  * 0.001;
+    out[i].MpsfChp     = (in[i].M  == NAN_S_SHORT) ? NAN : in[i].M   * 0.001;
+    out[i].dMpsfChp    = (in[i].dM == NAN_S_SHORT) ? NAN : in[i].dM  * 0.001;
   }
   return (out);
@@ -190,6 +191,6 @@
 
     // added or changed for PANSTARRS_DEV_0
-    out[i].M     = isnan(in[i].M)  ? NAN_S_SHORT : in[i].M   * 1000.0;
-    out[i].dM    = isnan(in[i].dM) ? NAN_S_SHORT : in[i].dM  * 1000.0;
+    out[i].M     = isnan(in[i].MpsfChp)  ? NAN_S_SHORT : in[i].MpsfChp   * 1000.0;
+    out[i].dM    = isnan(in[i].dMpsfChp) ? NAN_S_SHORT : in[i].dMpsfChp  * 1000.0;
   }
   return (out);
@@ -223,5 +224,4 @@
     out[i].NX	    	    = in[i].NX;
     out[i].NY	    	    = in[i].NY;
-    out[i].Xm	    	    = in[i].Xm;
     out[i].photcode   	    = in[i].source;
     out[i].exptime  	    = in[i].exptime;
@@ -252,6 +252,10 @@
     out[i].apmifit  	    = (in[i].apmifit  == NAN_S_SHORT) ? NAN : in[i].apmifit  * 0.001;
     out[i].dapmifit  	    = (in[i].dapmifit == NAN_S_SHORT) ? NAN : in[i].dapmifit * 0.001;
-    out[i].Mcal   	    = (in[i].Mcal     == NAN_S_SHORT) ? NAN : in[i].Mcal     * 0.001;
+
+    out[i].McalPSF   	    = (in[i].Mcal     == NAN_S_SHORT) ? NAN : in[i].Mcal     * 0.001;
+    out[i].McalAPER   	    = (in[i].Mcal     == NAN_S_SHORT) ? NAN : in[i].Mcal     * 0.001;
     out[i].dMcal   	    = (in[i].dMcal    == NAN_S_SHORT) ? NAN : in[i].dMcal    * 0.001;
+    out[i].McalChiSq  	    = (in[i].dMcal    == NAN_S_SHORT) ? NAN : pow(10.0, 0.01*in[i].Xm);
+
     out[i].sidtime  	    = NAN;
     out[i].latitude  	    = NAN;
@@ -295,5 +299,4 @@
     out[i].NY	    	    = in[i].NY;
 
-    out[i].Xm	    	    = in[i].Xm;
     out[i].source   	    = in[i].photcode;
     out[i].exptime  	    = in[i].exptime;
@@ -324,6 +327,8 @@
     out[i].apmifit    	    = isnan(in[i].apmifit ) ? NAN_S_SHORT : in[i].apmifit  * 1000.0;
     out[i].dapmifit    	    = isnan(in[i].dapmifit) ? NAN_S_SHORT : in[i].dapmifit * 1000.0;
-    out[i].Mcal    	    = isnan(in[i].Mcal    ) ? NAN_S_SHORT : in[i].Mcal     * 1000.0;
+
+    out[i].Mcal    	    = isnan(in[i].McalPSF ) ? NAN_S_SHORT : in[i].McalPSF  * 1000.0;
     out[i].dMcal    	    = isnan(in[i].dMcal   ) ? NAN_S_SHORT : in[i].dMcal    * 1000.0;
+    out[i].Xm    	    = isnan(in[i].dMcal   ) ? NAN_S_SHORT : 100.0*log10(in[i].McalChiSq);
 
     // changed or added for PS1_V1
Index: trunk/Ohana/src/libdvo/src/dvo_convert_loneos.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_convert_loneos.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/dvo_convert_loneos.c	(revision 40291)
@@ -26,5 +26,6 @@
     out[i].M        = (in[i].M       == NAN_S_SHORT) ? NAN : in[i].M      * 0.001;
     out[i].dM       = (in[i].dM      == NAN_U_CHAR)  ? NAN : in[i].dM     * 0.001;
-    out[i].Mcal     = (in[i].Mcal    == NAN_S_SHORT) ? NAN : in[i].Mcal   * 0.001;
+    out[i].McalPSF  = (in[i].Mcal    == NAN_S_SHORT) ? NAN : in[i].Mcal   * 0.001;
+    out[i].McalAPER = (in[i].Mcal    == NAN_S_SHORT) ? NAN : in[i].Mcal   * 0.001;
     out[i].Map      = (in[i].M       == NAN_S_SHORT) ? NAN : in[i].M      * 0.001;
     out[i].photcode = in[i].source;
@@ -59,5 +60,5 @@
     out[i].M      = isnan(in[i].M      ) ? NAN_S_SHORT : in[i].M       * 1000.0;
     out[i].dM     = isnan(in[i].dM     ) ? NAN_U_CHAR  : in[i].dM      * 1000.0;
-    out[i].Mcal   = isnan(in[i].Mcal   ) ? NAN_S_SHORT : in[i].Mcal    * 1000.0;
+    out[i].Mcal   = isnan(in[i].McalPSF) ? NAN_S_SHORT : in[i].McalPSF * 1000.0;
     out[i].source = in[i].photcode;
     out[i].t      = in[i].t;
@@ -89,6 +90,6 @@
 
     // changed for PANSTARRS_DEV_0 (moved from Average to Measure)
-    primary[0][i].M     = (in[i].M  == NAN_S_SHORT) ? NAN : in[i].M  * 0.001;      
-    primary[0][i].Mchisq= pow (10.0, 0.01*in[i].Xm);     
+    primary[0][i].MpsfChp = (in[i].M  == NAN_S_SHORT) ? NAN : in[i].M  * 0.001;      
+    primary[0][i].Mchisq  = pow (10.0, 0.01*in[i].Xm);     
 
     // added for PANSTARRS_DEV_0
@@ -123,5 +124,5 @@
 
     // changed for PANSTARRS_DEV_0 (moved from Average to Measure)
-    out[i].M       = isnan(primary[i].M)  ? NAN_S_SHORT : primary[i].M   * 1000.0;
+    out[i].M       = isnan(primary[i].MpsfChp)  ? NAN_S_SHORT : primary[i].MpsfChp   * 1000.0;
     out[i].Xm      = 100.0*log10(primary[i].Mchisq);     
 
@@ -152,5 +153,5 @@
 
     // added or changed for PANSTARRS_DEV_0
-    out[i].M     = (in[i].M  == NAN_S_SHORT) ? NAN : in[i].M * 0.001;
+    out[i].MpsfChp = (in[i].M  == NAN_S_SHORT) ? NAN : in[i].M * 0.001;
   }
   return (out);
@@ -169,5 +170,5 @@
 
     // added or changed for PANSTARRS_DEV_0
-    out[i].M    = isnan(in[i].M)  ? NAN_S_SHORT : in[i].M * 1000.0;
+    out[i].M    = isnan(in[i].MpsfChp)  ? NAN_S_SHORT : in[i].MpsfChp * 1000.0;
   }
   return (out);
@@ -202,5 +203,4 @@
     out[i].NY	    	    = in[i].NY;
 
-    out[i].Xm	    	    = in[i].Xm;
     out[i].photcode   	    = in[i].source;
     out[i].exptime  	    = in[i].exptime;
@@ -231,6 +231,10 @@
     out[i].apmifit  	    = (in[i].apmifit  == NAN_S_SHORT) ? NAN : in[i].apmifit  * 0.001;
     out[i].dapmifit  	    = (in[i].dapmifit == NAN_S_SHORT) ? NAN : in[i].dapmifit * 0.001;
-    out[i].Mcal   	    = (in[i].Mcal     == NAN_S_SHORT) ? NAN : in[i].Mcal     * 0.001;
+
+    out[i].McalPSF   	    = (in[i].Mcal     == NAN_S_SHORT) ? NAN : in[i].Mcal     * 0.001;
+    out[i].McalAPER   	    = (in[i].Mcal     == NAN_S_SHORT) ? NAN : in[i].Mcal     * 0.001;
     out[i].dMcal   	    = (in[i].dMcal    == NAN_S_SHORT) ? NAN : in[i].dMcal    * 0.001;
+    out[i].McalChiSq  	    = (in[i].dMcal    == NAN_S_SHORT) ? NAN : pow(10.0, 0.01*in[i].Xm);
+
     out[i].sidtime  	    = NAN;
     out[i].latitude  	    = NAN;
@@ -274,5 +278,4 @@
     out[i].NY	    	    = in[i].NY;
 
-    out[i].Xm	    	    = in[i].Xm;
     out[i].source   	    = in[i].photcode;
     out[i].exptime  	    = in[i].exptime;
@@ -303,6 +306,8 @@
     out[i].apmifit    	    = isnan(in[i].apmifit ) ? NAN_S_SHORT : in[i].apmifit  * 1000.0;
     out[i].dapmifit    	    = isnan(in[i].dapmifit) ? NAN_S_SHORT : in[i].dapmifit * 1000.0;
-    out[i].Mcal    	    = isnan(in[i].Mcal    ) ? NAN_S_SHORT : in[i].Mcal     * 1000.0;
+
+    out[i].Mcal    	    = isnan(in[i].McalPSF ) ? NAN_S_SHORT : in[i].McalPSF  * 1000.0;
     out[i].dMcal    	    = isnan(in[i].dMcal   ) ? NAN_S_SHORT : in[i].dMcal    * 1000.0;
+    out[i].Xm    	    = isnan(in[i].dMcal   ) ? NAN_S_SHORT : 100.0*log10(in[i].McalChiSq);
 
     // changed or added for PS1_V1
Index: trunk/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_0.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_0.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_0.c	(revision 40291)
@@ -17,5 +17,6 @@
     out[i].M          = in[i].M;
     out[i].dM         = in[i].dM;
-    out[i].Mcal       = in[i].Mcal;
+    out[i].McalPSF    = in[i].Mcal;
+    out[i].McalAPER   = in[i].Mcal;
 
     out[i].airmass    = in[i].airmass;
@@ -68,5 +69,5 @@
     out[i].M          = in[i].M;
     out[i].dM         = in[i].dM;
-    out[i].Mcal       = in[i].Mcal;
+    out[i].Mcal       = in[i].McalPSF;
     out[i].airmass    = in[i].airmass;
     out[i].az         = in[i].az;
@@ -188,6 +189,7 @@
     dvo_secfilt_init (&out[i], SECFILT_RESET_ALL);
 
-    out[i].M     = in[i].M;      
-    out[i].dM    = in[i].dM;      
+    out[i].MpsfChp     = in[i].M;      
+    out[i].dMpsfChp    = in[i].dM;      
+
     out[i].Mchisq= pow (10.0, 0.01*in[i].Xm);     
     out[i].Ncode = in[i].Ncode;
@@ -206,6 +208,7 @@
 
   for (i = 0; i < Nvalues; i++) {
-    out[i].M     = in[i].M;      
-    out[i].dM    = in[i].dM;      
+    out[i].M             = in[i].MpsfChp;      
+    out[i].dM            = in[i].dMpsfChp;      
+
     out[i].Xm    = 100.0*log10(in[i].Mchisq);     
     out[i].Ncode = in[i].Ncode;
@@ -245,7 +248,10 @@
     out[i].apmifit  	    = in[i].apmifit;
     out[i].dapmifit 	    = in[i].dapmifit;
-    out[i].Mcal	    	    = in[i].Mcal;
+
+    out[i].McalPSF    	    = in[i].Mcal;
+    out[i].McalAPER    	    = in[i].Mcal;
     out[i].dMcal    	    = in[i].dMcal;
-    out[i].Xm	    	    = in[i].Xm;
+    out[i].McalChiSq  	    = pow(10.0, 0.01*in[i].Xm);
+
     out[i].photcode   	    = in[i].photcode;
     out[i].exptime  	    = in[i].exptime;
@@ -316,7 +322,9 @@
     out[i].apmifit  	    = in[i].apmifit;
     out[i].dapmifit 	    = in[i].dapmifit;
-    out[i].Mcal	    	    = in[i].Mcal;
+
+    out[i].Mcal	    	    = in[i].McalPSF;
     out[i].dMcal    	    = in[i].dMcal;
-    out[i].Xm	    	    = in[i].Xm;
+    out[i].Xm	    	    = 100.0*log10(in[i].McalChiSq);
+
     out[i].photcode   	    = in[i].photcode;
     out[i].exptime  	    = in[i].exptime;
Index: trunk/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_1.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_1.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_1.c	(revision 40291)
@@ -17,5 +17,6 @@
     out[i].M          = in[i].M;
     out[i].dM         = in[i].dM;
-    out[i].Mcal       = in[i].Mcal;
+    out[i].McalPSF    = in[i].Mcal;
+    out[i].McalAPER   = in[i].Mcal;
 
     out[i].airmass    = in[i].airmass;
@@ -68,5 +69,5 @@
     out[i].M          = in[i].M;
     out[i].dM         = in[i].dM;
-    out[i].Mcal       = in[i].Mcal;
+    out[i].Mcal       = in[i].McalPSF;
     out[i].airmass    = in[i].airmass;
     out[i].az         = in[i].az;
@@ -188,6 +189,7 @@
     dvo_secfilt_init (&out[i], SECFILT_RESET_ALL);
 
-    out[i].M     = in[i].M;      
-    out[i].dM    = in[i].dM;      
+    out[i].MpsfChp     = in[i].M;      
+    out[i].dMpsfChp    = in[i].dM;      
+
     out[i].Mchisq= pow (10.0, 0.01*in[i].Xm);     
     out[i].Ncode = in[i].Ncode;
@@ -206,6 +208,7 @@
 
   for (i = 0; i < Nvalues; i++) {
-    out[i].M     = in[i].M;      
-    out[i].dM    = in[i].dM;      
+    out[i].M             = in[i].MpsfChp;      
+    out[i].dM            = in[i].dMpsfChp;      
+
     out[i].Xm    = 100.0*log10(in[i].Mchisq);     
     out[i].Ncode = in[i].Ncode;
@@ -245,7 +248,10 @@
     out[i].apmifit  	    = in[i].apmifit;
     out[i].dapmifit 	    = in[i].dapmifit;
-    out[i].Mcal	    	    = in[i].Mcal;
+
+    out[i].McalPSF    	    = in[i].Mcal;
+    out[i].McalAPER    	    = in[i].Mcal;
     out[i].dMcal    	    = in[i].dMcal;
-    out[i].Xm	    	    = in[i].Xm;
+    out[i].McalChiSq  	    = pow(10.0, 0.01*in[i].Xm);
+
     out[i].photcode   	    = in[i].photcode;
     out[i].exptime  	    = in[i].exptime;
@@ -316,7 +322,9 @@
     out[i].apmifit  	    = in[i].apmifit;
     out[i].dapmifit 	    = in[i].dapmifit;
-    out[i].Mcal	    	    = in[i].Mcal;
+
+    out[i].Mcal	    	    = in[i].McalPSF;
     out[i].dMcal    	    = in[i].dMcal;
-    out[i].Xm	    	    = in[i].Xm;
+    out[i].Xm	    	    = 100.0*log10(in[i].McalChiSq);
+
     out[i].photcode   	    = in[i].photcode;
     out[i].exptime  	    = in[i].exptime;
Index: trunk/Ohana/src/libdvo/src/dvo_image.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_image.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/dvo_image.c	(revision 40291)
@@ -223,4 +223,5 @@
   if (db[0].format == DVO_FORMAT_PS1_V4)          gfits_modify (&db[0].header, "FORMAT", "%s", 1, "PS1_V4");
   if (db[0].format == DVO_FORMAT_PS1_V5)          gfits_modify (&db[0].header, "FORMAT", "%s", 1, "PS1_V5");
+  if (db[0].format == DVO_FORMAT_PS1_V6)          gfits_modify (&db[0].header, "FORMAT", "%s", 1, "PS1_V6");
   if (db[0].format == DVO_FORMAT_PS1_V5_LOAD)     gfits_modify (&db[0].header, "FORMAT", "%s", 1, "PS1_V5_LOAD");
   if (db[0].format == DVO_FORMAT_PS1_REF)         gfits_modify (&db[0].header, "FORMAT", "%s", 1, "PS1_REF");
@@ -256,5 +257,6 @@
   int start_size = header->datasize;
 
-  long A = time(NULL);
+  int PID = getpid();
+  long A = PID + time(NULL);
   srand48(A);
   
@@ -321,7 +323,9 @@
   gfits_define_bintable_column (header, "E",    "APMIFIT",          "aperture correction",             "mag",               1.0, 0.0);
   gfits_define_bintable_column (header, "E",    "DAPMIFIT",         "apmifit error",                   "mag",               1.0, 0.0);
-  gfits_define_bintable_column (header, "E",    "MCAL",             "calibration mag",                 "mag",               1.0, 0.0);
+  gfits_define_bintable_column (header, "E",    "MCAL_PSF",         "calibration mag for psfs",        "mag",               1.0, 0.0);
+  gfits_define_bintable_column (header, "E",    "MCAL_APER",        "calibration mag for aper",        "mag",               1.0, 0.0);
   gfits_define_bintable_column (header, "E",    "DMCAL",            "error on Mcal",                   "mag",               1.0, 0.0);
-  gfits_define_bintable_column (header, "I",    "XM",               "image chisq",                     "10*log(value)",     1.0, 0.0);
+  gfits_define_bintable_column (header, "E",    "XM",               "image chisq",                     "10*log(value)",     1.0, 0.0);
+  gfits_define_bintable_column (header, "I",    "PADDING",          "filler for 8-byte boundaries,",   "",                  1.0, 0.0);
   gfits_define_bintable_column (header, "I",    "PHOTCODE",         "identifier for CCD,",             "",                  1.0, 0.0);
   gfits_define_bintable_column (header, "E",    "EXPTIME",          "exposure time",                   "seconds",           1.0, 0.0);
Index: trunk/Ohana/src/libdvo/src/dvo_image_raw.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_image_raw.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/dvo_image_raw.c	(revision 40291)
@@ -60,4 +60,5 @@
   if (db[0].format == DVO_FORMAT_PS1_V4)          ImageSize = sizeof(Image_PS1_V4);
   if (db[0].format == DVO_FORMAT_PS1_V5)          ImageSize = sizeof(Image_PS1_V5);
+  if (db[0].format == DVO_FORMAT_PS1_V6)          ImageSize = sizeof(Image_PS1_V6);
   if (db[0].format == DVO_FORMAT_PS1_V5_LOAD)     ImageSize = sizeof(Image_PS1_V5_LOAD);
   if (db[0].format == DVO_FORMAT_PS1_REF)         ImageSize = sizeof(Image_PS1_REF);
@@ -93,4 +94,5 @@
   if (db[0].format == DVO_FORMAT_PS1_V4)          gfits_table_mkheader_Image_PS1_V4 (&db[0].theader);
   if (db[0].format == DVO_FORMAT_PS1_V5)          gfits_table_mkheader_Image_PS1_V5 (&db[0].theader);
+  if (db[0].format == DVO_FORMAT_PS1_V6)          gfits_table_mkheader_Image_PS1_V6 (&db[0].theader);
   if (db[0].format == DVO_FORMAT_PS1_V5_LOAD)     gfits_table_mkheader_Image_PS1_V5_LOAD (&db[0].theader);
   if (db[0].format == DVO_FORMAT_PS1_REF)         gfits_table_mkheader_Image_PS1_REF (&db[0].theader);
Index: trunk/Ohana/src/libdvo/src/dvo_photcode_ops.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_photcode_ops.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/dvo_photcode_ops.c	(revision 40291)
@@ -381,13 +381,17 @@
 
   float Mraw = NAN;
+  float Mcal = NAN;
   switch (class) {
     case MAG_CLASS_PSF:
       Mraw = measure[0].M;
+      Mcal = measure[0].McalPSF;
       break;
     case MAG_CLASS_KRON:
       Mraw = measure[0].Mkron;
+      Mcal = measure[0].McalAPER;
       break;
     case MAG_CLASS_APER:
       Mraw = measure[0].Map;
+      Mcal = measure[0].McalAPER;
       break;
     default:
@@ -398,5 +402,5 @@
   }
   float Mflat = isfinite(measure[0].Mflat) ? measure[0].Mflat : 0.0;
-  float Mcat = Mraw - ZERO_POINT + code[0].K*(measure[0].airmass - 1.000) + SCALE*code[0].C - measure[0].Mcal - Mflat;
+  float Mcat = Mraw - ZERO_POINT + code[0].K*(measure[0].airmass - 1.000) + SCALE*code[0].C - Mcal - Mflat;
 
   /* for DEP, color must be made of PRI/SEC */
@@ -479,11 +483,11 @@
       switch (class) {
 	case MAG_CLASS_PSF:
-	  Mave = secfilt[Ns].M;
+	  Mave = secfilt[Ns].MpsfChp;
 	  break;
 	case MAG_CLASS_KRON:
-	  Mave = secfilt[Ns].Mkron;
+	  Mave = secfilt[Ns].MkronChp;
 	  break;
 	case MAG_CLASS_APER:
-	  Mave = secfilt[Ns].Map;
+	  Mave = secfilt[Ns].MapChp;
 	  break;
 	default:
@@ -592,11 +596,11 @@
       switch (class) {
 	case MAG_CLASS_PSF:
-	  dMave = secfilt[Ns].dM;
+	  dMave = secfilt[Ns].dMpsfChp;
 	  break;
 	case MAG_CLASS_KRON:
-	  dMave = secfilt[Ns].dMkron;
+	  dMave = secfilt[Ns].dMkronChp;
 	  break;
 	case MAG_CLASS_APER:
-	  dMave = secfilt[Ns].dMap;
+	  dMave = secfilt[Ns].dMapChp;
 	  break;
 	default:
@@ -677,6 +681,6 @@
     Ns2 = photcodes[0].hashNsec[code[0].c2];
   
-    m1 = (Ns1 == -1) ? NAN : secfilt[Ns1].M;
-    m2 = (Ns2 == -1) ? NAN : secfilt[Ns2].M;
+    m1 = (Ns1 == -1) ? NAN : secfilt[Ns1].MpsfChp;
+    m2 = (Ns2 == -1) ? NAN : secfilt[Ns2].MpsfChp;
     mc = (isnan(m1) || isnan(m2)) ? NAN : (m1 - m2);
     return (mc);
@@ -694,5 +698,5 @@
   } else {
     Ns = photcodes[0].hashNsec[color[0].code];
-    m1 = (Ns == -1) ? NAN : secfilt[Ns].M;
+    m1 = (Ns == -1) ? NAN : secfilt[Ns].MpsfChp;
   }	
 
@@ -708,5 +712,5 @@
   } else {
     Ns = photcodes[0].hashNsec[color[0].code];
-    m2 = (Ns == -1) ? NAN : secfilt[Ns].M;
+    m2 = (Ns == -1) ? NAN : secfilt[Ns].MpsfChp;
   }	
   mc = (isnan(m1) || isnan(m2)) ? NAN : (m1 - m2);
@@ -727,11 +731,11 @@
       switch (class) {
 	case MAG_CLASS_PSF:
-	  Mstdev = secfilt[Ns].Mstdev;
+	  Mstdev = secfilt[Ns].sMpsfChp;
 	  break;
 	case MAG_CLASS_KRON:
-	  Mstdev = secfilt[Ns].sMkron;
+	  Mstdev = secfilt[Ns].sMkronChp;
 	  break;
 	case MAG_CLASS_APER:
-	  Mstdev = secfilt[Ns].sMap;
+	  Mstdev = secfilt[Ns].sMapChp;
 	  break;
 	default:
@@ -1040,5 +1044,5 @@
   } else {
     Ns = photcodes[0].hashNsec[code[0].code];
-    M1 = (Ns == -1) ? NAN : secfilt[Ns].M;
+    M1 = (Ns == -1) ? NAN : secfilt[Ns].MpsfChp;
   }	
 
@@ -1056,5 +1060,5 @@
   } else {
     Ns = photcodes[0].hashNsec[code[0].code];
-    M2 = (Ns == -1) ? NAN : secfilt[Ns].M;
+    M2 = (Ns == -1) ? NAN : secfilt[Ns].MpsfChp;
   }	
   
@@ -1130,7 +1134,7 @@
 
   // measure.M has the static ZERO_POINT (25.0) applied, but not measure.Flux
-  float Mcal = code[0].K*(measure[0].airmass - 1.000) + SCALE*code[0].C;
-  float Moff = Mcal - ZERO_POINT + 8.9;
-  float Foff = 3630.8 * MagToFlux(Mcal);
+  float Mzpt = code[0].K*(measure[0].airmass - 1.000) + SCALE*code[0].C;
+  float Moff = Mzpt - ZERO_POINT + 8.9;
+  float Foff = 3630.8 * MagToFlux(Mzpt);
   float Fcat = NAN;
   switch (class) {
@@ -1158,7 +1162,7 @@
 
   // measure.M has the static ZERO_POINT (25.0) applied, but not measure.Flux
-  float Mcal = code[0].K*(measure[0].airmass - 1.000) + SCALE*code[0].C;
-  float Moff = Mcal - ZERO_POINT + 8.9;
-  float Foff = 3630.8 * MagToFlux(Mcal);
+  float Mzpt = code[0].K*(measure[0].airmass - 1.000) + SCALE*code[0].C;
+  float Moff = Mzpt - ZERO_POINT + 8.9;
+  float Foff = 3630.8 * MagToFlux(Mzpt);
   float Fcat = NAN;
   switch (class) {
@@ -1203,8 +1207,12 @@
 
   // measure.M has the static ZERO_POINT (25.0) applied, but not measure.Flux
+
+  // use Mcal APER for aperture-like data
+  float Mcal = (class == MAG_CLASS_PSF) ? measure[0].McalPSF : measure[0].McalAPER;
   float Mflat = isfinite(measure[0].Mflat) ? measure[0].Mflat : 0.0;
-  float Mcal = code[0].K*(measure[0].airmass - 1.000) + SCALE*code[0].C - measure[0].Mcal - Mflat;
-  float Moff = Mcal - ZERO_POINT + 8.9;
-  float Foff = 3630.8 * MagToFlux(Mcal);
+
+  float Mzpt = code[0].K*(measure[0].airmass - 1.000) + SCALE*code[0].C - Mcal - Mflat;
+  float Moff = Mzpt - ZERO_POINT + 8.9;
+  float Foff = 3630.8 * MagToFlux(Mzpt);
   float Fcat = NAN;
   switch (class) {
@@ -1289,11 +1297,11 @@
       switch (class) {
 	case MAG_CLASS_PSF:
-	  Fave = MagToFlux(secfilt[Ns].M - 8.9);
+	  Fave = MagToFlux(secfilt[Ns].MpsfChp - 8.9);
 	  break;
 	case MAG_CLASS_KRON:
-	  Fave = MagToFlux(secfilt[Ns].Mkron - 8.9);
+	  Fave = MagToFlux(secfilt[Ns].MkronChp - 8.9);
 	  break;
 	case MAG_CLASS_APER:
-	  Fave = MagToFlux(secfilt[Ns].Map - 8.9);
+	  Fave = MagToFlux(secfilt[Ns].MapChp - 8.9);
 	  break;
 	default:
@@ -1350,11 +1358,11 @@
       switch (class) {
 	case MAG_CLASS_PSF:
-	  dFave = secfilt[Ns].dM * MagToFlux(secfilt[Ns].M - 8.9);
+	  dFave = secfilt[Ns].dMpsfChp * MagToFlux(secfilt[Ns].MpsfChp - 8.9);
 	  break;
 	case MAG_CLASS_KRON:
-	  dFave = secfilt[Ns].dMkron * MagToFlux(secfilt[Ns].Mkron - 8.9);
+	  dFave = secfilt[Ns].dMkronChp * MagToFlux(secfilt[Ns].MkronChp - 8.9);
 	  break;
 	case MAG_CLASS_APER:
-	  dFave = secfilt[Ns].dMap * MagToFlux(secfilt[Ns].Map - 8.9);
+	  dFave = secfilt[Ns].dMapChp * MagToFlux(secfilt[Ns].MapChp - 8.9);
 	  break;
 	default:
@@ -1470,7 +1478,7 @@
 
   // measure.M has the static ZERO_POINT (25.0) applied, but not measure.Flux
-  float Mcal = code[0].K*(measure[0].airmass - 1.000) + SCALE*code[0].C;
-  float Moff = Mcal - ZERO_POINT + 8.9;
-  float Foff = 3630.8 * MagToFlux(Mcal);
+  float Mzpt = code[0].K*(measure[0].airmass - 1.000) + SCALE*code[0].C;
+  float Moff = Mzpt - ZERO_POINT + 8.9;
+  float Foff = 3630.8 * MagToFlux(Mzpt);
 
   // use dFlux if we can, but use dMag if we must:
@@ -1516,7 +1524,7 @@
 
   // measure.M has the static ZERO_POINT (25.0) applied, but not measure.Flux
-  float Mcal = code[0].K*(measure[0].airmass - 1.000) + SCALE*code[0].C;
-  float Moff = Mcal - ZERO_POINT + 8.9;
-  float Foff = 3630.8 * MagToFlux(Mcal);
+  float Mzpt = code[0].K*(measure[0].airmass - 1.000) + SCALE*code[0].C;
+  float Moff = Mzpt - ZERO_POINT + 8.9;
+  float Foff = 3630.8 * MagToFlux(Mzpt);
 
   // use dFlux if we can, but use dMag if we must:
@@ -1579,8 +1587,11 @@
 
   // measure.M has the static ZERO_POINT (25.0) applied, but not measure.Flux
+  // XXX fix this too:
   float Mflat = isfinite(measure[0].Mflat) ? measure[0].Mflat : 0.0;
-  float Mcal = code[0].K*(measure[0].airmass - 1.000) + SCALE*code[0].C - measure[0].Mcal - Mflat;
-  float Moff = Mcal - ZERO_POINT + 8.9;
-  float Foff = 3630.8 * MagToFlux(Mcal);
+  float Mcal = (class == MAG_CLASS_PSF) ? measure[0].McalPSF : measure[0].McalAPER;
+
+  float Mzpt = code[0].K*(measure[0].airmass - 1.000) + SCALE*code[0].C - Mcal - Mflat;
+  float Moff = Mzpt - ZERO_POINT + 8.9;
+  float Foff = 3630.8 * MagToFlux(Mzpt);
 
   // use dFlux if we can, but use dMag if we must:
@@ -1649,8 +1660,8 @@
       break;
     case MAG_CLASS_KRON:
-      // Mraw = measure[0].Mkron;
+      Mraw = measure[0].Mkron;
       break;
     case MAG_CLASS_APER:
-      // Mraw = measure[0].Map;
+      // Mraw = measure[0].Map; // MeasureTiny does not have Map
       break;
     default:
@@ -1677,8 +1688,8 @@
       break;
     case MAG_CLASS_KRON:
-      // Mraw = measure[0].Mkron;
+      Mraw = measure[0].Mkron;
       break;
     case MAG_CLASS_APER:
-      // Mraw = measure[0].Map;
+      // Mraw = measure[0].Map; // MeasureTiny does not have Map
       break;
     default:
@@ -1706,8 +1717,8 @@
       break;
     case MAG_CLASS_KRON:
-      // Mraw = measure[0].Mkron;
+      Mraw = measure[0].Mkron;
       break;
     case MAG_CLASS_APER:
-      // Mraw = measure[0].Map;
+      // Mraw = measure[0].Map; // MeasureTiny does not have Map
       break;
     default:
@@ -1742,13 +1753,17 @@
 
   float Mraw = NAN;
+  float Mcal = NAN;
   switch (class) {
     case MAG_CLASS_PSF:
       Mraw = measure[0].M;
+      Mcal = measure[0].McalPSF;
       break;
     case MAG_CLASS_KRON:
-      // Mraw = measure[0].Mkron;
+      Mraw = measure[0].Mkron;
+      Mcal = measure[0].McalAPER;
       break;
     case MAG_CLASS_APER:
-      // Mraw = measure[0].Map;
+      // Mraw = measure[0].Map; // MeasureTiny does not have Map
+      // Mcal = measure[0].McalAPER;
       break;
     default:
@@ -1759,5 +1774,5 @@
   }
   float Mflat = isfinite(measure[0].Mflat) ? measure[0].Mflat : 0.0;
-  float Mcat = Mraw - ZERO_POINT + code[0].K*(measure[0].airmass - 1.000) + SCALE*code[0].C - measure[0].Mcal - Mflat;
+  float Mcat = Mraw - ZERO_POINT + code[0].K*(measure[0].airmass - 1.000) + SCALE*code[0].C - Mcal - Mflat;
 
   /* for DEP, color must be made of PRI/SEC */
@@ -1799,8 +1814,8 @@
 	break;
       case MAG_CLASS_KRON:
-	// Mraw = thisone[0].Mkron;
+	Mraw = thisone[0].Mkron;
 	break;
       case MAG_CLASS_APER:
-	// Mraw = thisone[0].Map;
+	// Mraw = thisone[0].Map; // MeasureTiny does not have Map
 	break;
       default:
@@ -1840,11 +1855,11 @@
       switch (class) {
 	case MAG_CLASS_PSF:
-	  Mave = secfilt[Ns].M;
+	  Mave = secfilt[Ns].MpsfChp;
 	  break;
 	case MAG_CLASS_KRON:
-	  Mave = secfilt[Ns].Mkron;
+	  Mave = secfilt[Ns].MkronChp;
 	  break;
 	case MAG_CLASS_APER:
-	  Mave = secfilt[Ns].Map;
+	  Mave = secfilt[Ns].MapChp;
 	  break;
 	default:
@@ -1927,6 +1942,6 @@
     Ns2 = photcodes[0].hashNsec[code[0].c2];
   
-    m1 = (Ns1 == -1) ? NAN : secfilt[Ns1].M;
-    m2 = (Ns2 == -1) ? NAN : secfilt[Ns2].M;
+    m1 = (Ns1 == -1) ? NAN : secfilt[Ns1].MpsfChp;
+    m2 = (Ns2 == -1) ? NAN : secfilt[Ns2].MpsfChp;
     mc = (isnan(m1) || isnan(m2)) ? NAN : (m1 - m2);
     return (mc);
@@ -1944,5 +1959,5 @@
   } else {
     Ns = photcodes[0].hashNsec[color[0].code];
-    m1 = (Ns == -1) ? NAN : secfilt[Ns].M;
+    m1 = (Ns == -1) ? NAN : secfilt[Ns].MpsfChp;
   }	
 
@@ -1958,5 +1973,5 @@
   } else {
     Ns = photcodes[0].hashNsec[color[0].code];
-    m2 = (Ns == -1) ? NAN : secfilt[Ns].M;
+    m2 = (Ns == -1) ? NAN : secfilt[Ns].MpsfChp;
   }	
   mc = (isnan(m1) || isnan(m2)) ? NAN : (m1 - m2);
@@ -1973,5 +1988,5 @@
 
   Ns = photcodes[0].hashNsec[code[0].code];
-  dM  = (Ns == -1) ? NAN : secfilt[Ns].dM;
+  dM  = (Ns == -1) ? NAN : secfilt[Ns].dMpsfChp;
   return (dM);
 }
@@ -2010,5 +2025,5 @@
   } else {
     Ns = photcodes[0].hashNsec[code[0].code];
-    M1 = (Ns == -1) ? NAN : secfilt[Ns].M;
+    M1 = (Ns == -1) ? NAN : secfilt[Ns].MpsfChp;
   }	
 
@@ -2026,5 +2041,5 @@
   } else {
     Ns = photcodes[0].hashNsec[code[0].code];
-    M2 = (Ns == -1) ? NAN : secfilt[Ns].M;
+    M2 = (Ns == -1) ? NAN : secfilt[Ns].MpsfChp;
   }	
   
Index: trunk/Ohana/src/libdvo/src/dvo_tiny_values.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_tiny_values.c	(revision 40063)
+++ trunk/Ohana/src/libdvo/src/dvo_tiny_values.c	(revision 40291)
@@ -19,5 +19,7 @@
   measureT[0].D          = measure[0].D;
   measureT[0].M          = measure[0].M;
-  measureT[0].Mcal       = measure[0].Mcal;
+  measureT[0].Mkron      = measure[0].Mkron;
+  measureT[0].McalPSF    = measure[0].McalPSF;
+  measureT[0].McalAPER   = measure[0].McalAPER;
   measureT[0].dM         = measure[0].dM;
   measureT[0].airmass    = measure[0].airmass;
