Index: /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/Makefile
===================================================================
--- /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/Makefile	(revision 30501)
+++ /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/Makefile	(revision 30502)
@@ -51,5 +51,4 @@
 $(SRC)/mosaic_astrom.$(ARCH).o   \
 $(SRC)/fits_db.$(ARCH).o	 \
-$(SRC)/photfits.$(ARCH).o        \
 $(SRC)/dvo_image.$(ARCH).o       \
 $(SRC)/dvo_image_raw.$(ARCH).o   \
@@ -77,6 +76,7 @@
 $(SRC)/dvo_util.$(ARCH).o
 
-# $(SRC)/dvo_convert_panstarrs.$(ARCH).o \
-# $(SRC)/dvo_convert_pmtest.$(ARCH).o \
+# $(SRC)/dvo_convert_panstarrs.$(ARCH).o 
+# $(SRC)/dvo_convert_pmtest.$(ARCH).o 
+# $(SRC)/photfits.$(ARCH).o        
 
 include ../libautocode/Makefile.Targets
Index: /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/doc/dvo-images.txt
===================================================================
--- /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/doc/dvo-images.txt	(revision 30501)
+++ /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/doc/dvo-images.txt	(revision 30502)
@@ -1,7 +1,90 @@
 
-the dvo image table is not extremely efficient.  it is unsorted, and
-spatial searches consist of complete scans of the table.
+20110203 
 
-a spatial index could consist of five cardinal points for each square
-image (4 corners and the center) or a central point and max radius.
-table would consist each would be
+  The Image table (PS1_V2) has a bunch of fields that are not really
+  used by anything / much.  I would like to re-use those bytes to
+  store information about the quality of the astrometric and
+  photometric calibrations.  
+
+  The under-used fields are the 'photometric zero point variation'
+  polynomial terms (Mx, My, ... Mxxxx, Myyyy). 
+
+  (I list the sourceID, which does not change, because the word-boundaries matter)
+FIELD 	  sourceID,         SOURCE_ID,            unsigned short, analysis source ID
+FIELD 	  order,            ORDER,                short,      	  Mrel 2D polynomical order 
+FIELD 	  Mx,               MX,                   short,      	  Mrel polyterm
+FIELD 	  My,               MY,                   short,      	  Mrel polyterm
+
+FIELD 	  Mxx,              MXX,                  short,      	  Mrel polyterm
+FIELD 	  Mxy,              MXY,                  short,      	  Mrel polyterm
+FIELD 	  Myy,              MYY,                  short,      	  Mrel polyterm
+FIELD 	  Mxxx,             MXXX,                 short,      	  Mrel polyterm
+
+FIELD 	  Mxxy,             MXXY,                 short,      	  Mrel polyterm
+FIELD 	  Mxyy,             MXYY,                 short,      	  Mrel polyterm
+FIELD 	  Myyy,             MYYY,                 short,      	  Mrel polyterm
+FIELD 	  Mxxxx,            MXXXX,                short,      	  Mrel polyterm
+
+FIELD 	  Mxxxy,            MXXXY,                short,      	  Mrel polyterm
+FIELD 	  Mxxyy,            MXXYY,                short,      	  Mrel polyterm
+FIELD 	  Mxyyy,            MXYYY,                short,      	  Mrel polyterm
+FIELD 	  Myyyy,            MYYYY,                short,      	  Mrel polyterm
+(30 bytes)
+
+  I am going to replace these with:
+
+  photom_map_id (int) 	: index to a 2D map of the zp variations (table and format not yet defined)
+  astrom_map_id (int) 	: index to a 2D map of the zp variations (table and format not yet defined)
+  dMagSys       (float) : systematic photometric error (mag) 
+  dXpixSys	(float) : systematic astrometric error (pix)
+  dYpixSys	(float) : systematic astrometric error (pix)
+  nFitAstrom 	(short) : number of stars used for astrometric calibration (saturate at 0x7fff)
+  nFitPhotom 	(short) : number of stars used for astrometric calibration (saturate at 0x7fff)
+(24 bytes)
+
+  As for the existing uses of these fields: 
+
+  The official use can just be dropped (replaced by the maps and
+  recalculated if needed -- no db actually uses them).  There are a
+  few places in the code where these fields were overloaded:
+
+  Triangular Images : in the skycell creation code, there is an option
+  to create images which are the triangular projection centers for a
+  given subdivided geometric solid.  This code was overloading the Mx,
+  My, and Mxxx through Myyy fields.  I can invalidate any existing db
+  with triangles (probably none are needed) and repurpose some of the
+  fields above for these values.  (addstar/src/sky_tesslation.c, opihi/dvo/images.c)
+
+  Mxxxx : some code was using Mxxxx to store nFitPhotom.  Again, any
+  existing databases are unlikely to use that info (CFHT skyprobe
+  only).  If I am clever, I can align the existing bytes so that the
+  old Mxxxx hits the new nFitPhotom. (addstar/src/calibrate.c,
+  dbExtractImages.c)
+
+  Myyyy : dbExtractImages.c expects this value to have (sky - 0x8000),
+  but that value is not actually set by any code.  Ignore (replace?)
+  
+FIELD 	  sourceID,         SOURCE_ID,            unsigned short, analysis source ID
+FIELD 	  dummy1,           DUMMY1,               short,      	  place holder for byte boundaries
+FIELD 	  dummy2,           DUMMY2,               short,      	  place holder for byte boundaries
+FIELD 	  dummy3,           DUMMY3,               short,      	  place holder for byte boundaries
+
+FIELD 	  dXpixSys,         XPIX_SYS_ERR,         float,      	  systematic astrometry error in X
+FIELD 	  dYpixSys,         YPIX_SYS_ERR,         float,      	  systematic astrometry error in Y
+
+FIELD 	  dMagSys,          MAG_SYS_ERR,          float,      	  systematic photometry error
+FIELD 	  nFitAstrom,       N_FIT_ASTROM,         short,      	  number of stars used for astrometry cal
+FIELD 	  nFitPhotom,       N_FIT_PHOTOM,         short,      	  number of stars used for photometry cal
+
+FIELD 	  photom_map_id,    PHOTOM_MAP_ID,        unsigned int,   reference to 2D zero point map
+FIELD 	  astrom_map_id,    ASTROM_MAP_ID,        unsigned int,   reference to 2D astrometry map
+
+older:
+  
+  the dvo image table is not extremely efficient.  it is unsorted, and
+  spatial searches consist of complete scans of the table.
+  
+  a spatial index could consist of five cardinal points for each
+  square image (4 corners and the center) or a central point and max
+  radius. 
+
Index: /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_1.c
===================================================================
--- /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_1.c	(revision 30501)
+++ /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_1.c	(revision 30502)
@@ -8,5 +8,5 @@
   Measure *out;
 
-  ALLOCATE (out, Measure, Nvalues);
+  ALLOCATE_ZERO (out, Measure, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -66,5 +66,5 @@
   Measure_PS1_DEV_1 *out;
 
-  ALLOCATE (out, Measure_PS1_DEV_1, Nvalues);
+  ALLOCATE_ZERO (out, Measure_PS1_DEV_1, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -113,5 +113,5 @@
   Average *out;
 
-  ALLOCATE (out, Average, Nvalues);
+  ALLOCATE_ZERO (out, Average, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -157,5 +157,5 @@
   Average_PS1_DEV_1 *out;
 
-  ALLOCATE (out, Average_PS1_DEV_1, Nvalues);
+  ALLOCATE_ZERO (out, Average_PS1_DEV_1, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -191,5 +191,5 @@
   SecFilt *out;
 
-  ALLOCATE (out, SecFilt, Nvalues);
+  ALLOCATE_ZERO (out, SecFilt, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -215,5 +215,5 @@
   SecFilt_PS1_DEV_1 *out;
 
-  ALLOCATE (out, SecFilt_PS1_DEV_1, Nvalues);
+  ALLOCATE_ZERO (out, SecFilt_PS1_DEV_1, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -232,5 +232,5 @@
   Image *out;
 
-  ALLOCATE (out, Image, Nvalues);
+  ALLOCATE_ZERO (out, Image, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -263,19 +263,17 @@
     out[i].imageID	    = in[i].imageID;
 
-    out[i].order	    = in[i].order;
-    out[i].Mx		    = in[i].Mx;
-    out[i].My		    = in[i].My;
-    out[i].Mxx		    = in[i].Mxx;
-    out[i].Mxy		    = in[i].Mxy;
-    out[i].Myy		    = in[i].Myy;
-    out[i].Mxxx		    = in[i].Mxxx;
-    out[i].Mxxy		    = in[i].Mxxy;
-    out[i].Mxyy		    = in[i].Mxyy;
-    out[i].Myyy		    = in[i].Myyy;
-    out[i].Mxxxx	    = in[i].Mxxxx;
-    out[i].Mxxxy	    = in[i].Mxxxy;
-    out[i].Mxxyy	    = in[i].Mxxyy;
-    out[i].Mxyyy	    = in[i].Mxyyy;
-    out[i].Myyyy	    = in[i].Myyyy;
+    // 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].dummy1	    = in[i].dummy1;
+    out[i].dummy2	    = in[i].dummy2;
+    out[i].dummy3	    = in[i].dummy3;
+    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;
 
     // changed or added for PS1_DEV_2
@@ -301,5 +299,5 @@
   Image_PS1_DEV_1 *out;
 
-  ALLOCATE (out, Image_PS1_DEV_1, Nvalues);
+  ALLOCATE_ZERO (out, Image_PS1_DEV_1, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -332,19 +330,17 @@
     out[i].imageID	    = in[i].imageID;
 
-    out[i].order	    = in[i].order;
-    out[i].Mx		    = in[i].Mx;
-    out[i].My		    = in[i].My;
-    out[i].Mxx		    = in[i].Mxx;
-    out[i].Mxy		    = in[i].Mxy;
-    out[i].Myy		    = in[i].Myy;
-    out[i].Mxxx		    = in[i].Mxxx;
-    out[i].Mxxy		    = in[i].Mxxy;
-    out[i].Mxyy		    = in[i].Mxyy;
-    out[i].Myyy		    = in[i].Myyy;
-    out[i].Mxxxx	    = in[i].Mxxxx;
-    out[i].Mxxxy	    = in[i].Mxxxy;
-    out[i].Mxxyy	    = in[i].Mxxyy;
-    out[i].Mxyyy	    = in[i].Mxyyy;
-    out[i].Myyyy	    = in[i].Myyyy;
+    // 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].dummy1	    = in[i].dummy1;
+    out[i].dummy2	    = in[i].dummy2;
+    out[i].dummy3	    = in[i].dummy3;
+    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;
 
     // changed or added for PS1_V1
@@ -359,5 +355,5 @@
   PhotCode *out;
 
-  ALLOCATE (out, PhotCode, Nvalues);
+  ALLOCATE_ZERO (out, PhotCode, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -398,5 +394,5 @@
   PhotCode_PS1_DEV_1 *out;
 
-  ALLOCATE (out, PhotCode_PS1_DEV_1, Nvalues);
+  ALLOCATE_ZERO (out, PhotCode_PS1_DEV_1, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
Index: /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_2.c
===================================================================
--- /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_2.c	(revision 30501)
+++ /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_2.c	(revision 30502)
@@ -8,5 +8,5 @@
   Measure *out;
 
-  ALLOCATE (out, Measure, Nvalues);
+  ALLOCATE_ZERO (out, Measure, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -63,5 +63,5 @@
   Measure_PS1_DEV_2 *out;
 
-  ALLOCATE (out, Measure_PS1_DEV_2, Nvalues);
+  ALLOCATE_ZERO (out, Measure_PS1_DEV_2, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -109,5 +109,5 @@
   Average *out;
 
-  ALLOCATE (out, Average, Nvalues);
+  ALLOCATE_ZERO (out, Average, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -151,5 +151,5 @@
   Average_PS1_DEV_2 *out;
 
-  ALLOCATE (out, Average_PS1_DEV_2, Nvalues);
+  ALLOCATE_ZERO (out, Average_PS1_DEV_2, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -185,5 +185,5 @@
   SecFilt *out;
 
-  ALLOCATE (out, SecFilt, Nvalues);
+  ALLOCATE_ZERO (out, SecFilt, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -209,5 +209,5 @@
   SecFilt_PS1_DEV_2 *out;
 
-  ALLOCATE (out, SecFilt_PS1_DEV_2, Nvalues);
+  ALLOCATE_ZERO (out, SecFilt_PS1_DEV_2, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -226,5 +226,5 @@
   Image *out;
 
-  ALLOCATE (out, Image, Nvalues);
+  ALLOCATE_ZERO (out, Image, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -259,19 +259,17 @@
     out[i].sourceID	    = in[i].sourceID;
 
-    out[i].order	    = in[i].order;
-    out[i].Mx		    = in[i].Mx;
-    out[i].My		    = in[i].My;
-    out[i].Mxx		    = in[i].Mxx;
-    out[i].Mxy		    = in[i].Mxy;
-    out[i].Myy		    = in[i].Myy;
-    out[i].Mxxx		    = in[i].Mxxx;
-    out[i].Mxxy		    = in[i].Mxxy;
-    out[i].Mxyy		    = in[i].Mxyy;
-    out[i].Myyy		    = in[i].Myyy;
-    out[i].Mxxxx	    = in[i].Mxxxx;
-    out[i].Mxxxy	    = in[i].Mxxxy;
-    out[i].Mxxyy	    = in[i].Mxxyy;
-    out[i].Mxyyy	    = in[i].Mxyyy;
-    out[i].Myyyy	    = in[i].Myyyy;
+    // 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].dummy1	    = in[i].dummy1;
+    out[i].dummy2	    = in[i].dummy2;
+    out[i].dummy3	    = in[i].dummy3;
+    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;
 
     // changed or added for PS1_V1
@@ -292,5 +290,5 @@
   Image_PS1_DEV_2 *out;
 
-  ALLOCATE (out, Image_PS1_DEV_2, Nvalues);
+  ALLOCATE_ZERO (out, Image_PS1_DEV_2, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -326,19 +324,17 @@
     out[i].sourceID	    = in[i].sourceID;
 
-    out[i].order	    = in[i].order;
-    out[i].Mx		    = in[i].Mx;
-    out[i].My		    = in[i].My;
-    out[i].Mxx		    = in[i].Mxx;
-    out[i].Mxy		    = in[i].Mxy;
-    out[i].Myy		    = in[i].Myy;
-    out[i].Mxxx		    = in[i].Mxxx;
-    out[i].Mxxy		    = in[i].Mxxy;
-    out[i].Mxyy		    = in[i].Mxyy;
-    out[i].Myyy		    = in[i].Myyy;
-    out[i].Mxxxx	    = in[i].Mxxxx;
-    out[i].Mxxxy	    = in[i].Mxxxy;
-    out[i].Mxxyy	    = in[i].Mxxyy;
-    out[i].Mxyyy	    = in[i].Mxyyy;
-    out[i].Myyyy	    = in[i].Myyyy;
+    // 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].dummy1	    = in[i].dummy1;
+    out[i].dummy2	    = in[i].dummy2;
+    out[i].dummy3	    = in[i].dummy3;
+    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;
 
     // changed or added for PS1_V1
@@ -353,5 +349,5 @@
   PhotCode *out;
 
-  ALLOCATE (out, PhotCode, Nvalues);
+  ALLOCATE_ZERO (out, PhotCode, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -390,5 +386,5 @@
   PhotCode_PS1_DEV_2 *out;
 
-  ALLOCATE (out, PhotCode_PS1_DEV_2, Nvalues);
+  ALLOCATE_ZERO (out, PhotCode_PS1_DEV_2, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
Index: /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_3.c
===================================================================
--- /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_3.c	(revision 30501)
+++ /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_3.c	(revision 30502)
@@ -10,5 +10,5 @@
   Image *out;
 
-  ALLOCATE (out, Image, Nvalues);
+  ALLOCATE_ZERO (out, Image, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -43,19 +43,17 @@
     out[i].sourceID	    = in[i].sourceID;
 
-    out[i].order	    = in[i].order;
-    out[i].Mx		    = in[i].Mx;
-    out[i].My		    = in[i].My;
-    out[i].Mxx		    = in[i].Mxx;
-    out[i].Mxy		    = in[i].Mxy;
-    out[i].Myy		    = in[i].Myy;
-    out[i].Mxxx		    = in[i].Mxxx;
-    out[i].Mxxy		    = in[i].Mxxy;
-    out[i].Mxyy		    = in[i].Mxyy;
-    out[i].Myyy		    = in[i].Myyy;
-    out[i].Mxxxx	    = in[i].Mxxxx;
-    out[i].Mxxxy	    = in[i].Mxxxy;
-    out[i].Mxxyy	    = in[i].Mxxyy;
-    out[i].Mxyyy	    = in[i].Mxyyy;
-    out[i].Myyyy	    = in[i].Myyyy;
+    // 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].dummy1	    = in[i].dummy1;
+    out[i].dummy2	    = in[i].dummy2;
+    out[i].dummy3	    = in[i].dummy3;
+    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;
 
     // changed or added for PS1_V1
@@ -71,5 +69,5 @@
   Image_PS1_DEV_3 *out;
 
-  ALLOCATE (out, Image_PS1_DEV_3, Nvalues);
+  ALLOCATE_ZERO (out, Image_PS1_DEV_3, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -104,19 +102,17 @@
     out[i].sourceID	    = in[i].sourceID;
 
-    out[i].order	    = in[i].order;
-    out[i].Mx		    = in[i].Mx;
-    out[i].My		    = in[i].My;
-    out[i].Mxx		    = in[i].Mxx;
-    out[i].Mxy		    = in[i].Mxy;
-    out[i].Myy		    = in[i].Myy;
-    out[i].Mxxx		    = in[i].Mxxx;
-    out[i].Mxxy		    = in[i].Mxxy;
-    out[i].Mxyy		    = in[i].Mxyy;
-    out[i].Myyy		    = in[i].Myyy;
-    out[i].Mxxxx	    = in[i].Mxxxx;
-    out[i].Mxxxy	    = in[i].Mxxxy;
-    out[i].Mxxyy	    = in[i].Mxxyy;
-    out[i].Mxyyy	    = in[i].Mxyyy;
-    out[i].Myyyy	    = in[i].Myyyy;
+    // 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].dummy1	    = in[i].dummy1;
+    out[i].dummy2	    = in[i].dummy2;
+    out[i].dummy3	    = in[i].dummy3;
+    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;
 
     // changed or added for PS1_V1
@@ -131,5 +127,5 @@
   PhotCode *out;
 
-  ALLOCATE (out, PhotCode, Nvalues);
+  ALLOCATE_ZERO (out, PhotCode, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -167,5 +163,5 @@
   PhotCode_PS1_DEV_3 *out;
 
-  ALLOCATE (out, PhotCode_PS1_DEV_3, Nvalues);
+  ALLOCATE_ZERO (out, PhotCode_PS1_DEV_3, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
Index: /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_PS1_REF.c
===================================================================
--- /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_PS1_REF.c	(revision 30501)
+++ /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_PS1_REF.c	(revision 30502)
@@ -8,5 +8,5 @@
   Measure *out;
 
-  ALLOCATE (out, Measure, Nvalues);
+  ALLOCATE_ZERO (out, Measure, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -61,5 +61,5 @@
   Measure_PS1_REF *out;
 
-  ALLOCATE (out, Measure_PS1_REF, Nvalues);
+  ALLOCATE_ZERO (out, Measure_PS1_REF, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -84,5 +84,5 @@
   Average *out;
 
-  ALLOCATE (out, Average, Nvalues);
+  ALLOCATE_ZERO (out, Average, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -124,5 +124,5 @@
   Average_PS1_REF *out;
 
-  ALLOCATE (out, Average_PS1_REF, Nvalues);
+  ALLOCATE_ZERO (out, Average_PS1_REF, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -147,5 +147,5 @@
   SecFilt *out;
 
-  ALLOCATE (out, SecFilt, Nvalues);
+  ALLOCATE_ZERO (out, SecFilt, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -169,5 +169,5 @@
   SecFilt_PS1_REF *out;
 
-  ALLOCATE (out, SecFilt_PS1_REF, Nvalues);
+  ALLOCATE_ZERO (out, SecFilt_PS1_REF, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -183,5 +183,5 @@
   Image *out;
 
-  ALLOCATE (out, Image, Nvalues);
+  ALLOCATE_ZERO (out, Image, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -218,19 +218,17 @@
     out[i].sourceID	    = in[i].sourceID;
 
-    out[i].order	    = in[i].order;
-    out[i].Mx		    = in[i].Mx;
-    out[i].My		    = in[i].My;
-    out[i].Mxx		    = in[i].Mxx;
-    out[i].Mxy		    = in[i].Mxy;
-    out[i].Myy		    = in[i].Myy;
-    out[i].Mxxx		    = in[i].Mxxx;
-    out[i].Mxxy		    = in[i].Mxxy;
-    out[i].Mxyy		    = in[i].Mxyy;
-    out[i].Myyy		    = in[i].Myyy;
-    out[i].Mxxxx	    = in[i].Mxxxx;
-    out[i].Mxxxy	    = in[i].Mxxxy;
-    out[i].Mxxyy	    = in[i].Mxxyy;
-    out[i].Mxyyy	    = in[i].Mxyyy;
-    out[i].Myyyy	    = in[i].Myyyy;
+    // 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].dummy1	    = in[i].dummy1;
+    out[i].dummy2	    = in[i].dummy2;
+    out[i].dummy3	    = in[i].dummy3;
+    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;
 
     // changed or added for PS1_V2
@@ -247,5 +245,5 @@
   Image_PS1_REF *out;
 
-  ALLOCATE (out, Image_PS1_REF, Nvalues);
+  ALLOCATE_ZERO (out, Image_PS1_REF, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -282,19 +280,17 @@
     out[i].sourceID	    = in[i].sourceID;
 
-    out[i].order	    = in[i].order;
-    out[i].Mx		    = in[i].Mx;
-    out[i].My		    = in[i].My;
-    out[i].Mxx		    = in[i].Mxx;
-    out[i].Mxy		    = in[i].Mxy;
-    out[i].Myy		    = in[i].Myy;
-    out[i].Mxxx		    = in[i].Mxxx;
-    out[i].Mxxy		    = in[i].Mxxy;
-    out[i].Mxyy		    = in[i].Mxyy;
-    out[i].Myyy		    = in[i].Myyy;
-    out[i].Mxxxx	    = in[i].Mxxxx;
-    out[i].Mxxxy	    = in[i].Mxxxy;
-    out[i].Mxxyy	    = in[i].Mxxyy;
-    out[i].Mxyyy	    = in[i].Mxyyy;
-    out[i].Myyyy	    = in[i].Myyyy;
+    // 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].dummy1	    = in[i].dummy1;
+    out[i].dummy2	    = in[i].dummy2;
+    out[i].dummy3	    = in[i].dummy3;
+    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);
@@ -306,5 +302,5 @@
   PhotCode *out;
 
-  ALLOCATE (out, PhotCode, Nvalues);
+  ALLOCATE_ZERO (out, PhotCode, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -342,5 +338,5 @@
   PhotCode_PS1_REF *out;
 
-  ALLOCATE (out, PhotCode_PS1_REF, Nvalues);
+  ALLOCATE_ZERO (out, PhotCode_PS1_REF, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
Index: /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_PS1_V1.c
===================================================================
--- /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_PS1_V1.c	(revision 30501)
+++ /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_PS1_V1.c	(revision 30502)
@@ -8,5 +8,5 @@
   Measure *out;
 
-  ALLOCATE (out, Measure, Nvalues);
+  ALLOCATE_ZERO (out, Measure, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -61,5 +61,5 @@
   Measure_PS1_V1 *out;
 
-  ALLOCATE (out, Measure_PS1_V1, Nvalues);
+  ALLOCATE_ZERO (out, Measure_PS1_V1, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -116,5 +116,5 @@
   Average *out;
 
-  ALLOCATE (out, Average, Nvalues);
+  ALLOCATE_ZERO (out, Average, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -156,5 +156,5 @@
   Average_PS1_V1 *out;
 
-  ALLOCATE (out, Average_PS1_V1, Nvalues);
+  ALLOCATE_ZERO (out, Average_PS1_V1, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -191,5 +191,5 @@
   SecFilt *out;
 
-  ALLOCATE (out, SecFilt, Nvalues);
+  ALLOCATE_ZERO (out, SecFilt, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -213,5 +213,5 @@
   SecFilt_PS1_V1 *out;
 
-  ALLOCATE (out, SecFilt_PS1_V1, Nvalues);
+  ALLOCATE_ZERO (out, SecFilt_PS1_V1, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -232,5 +232,5 @@
   Image *out;
 
-  ALLOCATE (out, Image, Nvalues);
+  ALLOCATE_ZERO (out, Image, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -267,19 +267,17 @@
     out[i].sourceID	    = in[i].sourceID;
 
-    out[i].order	    = in[i].order;
-    out[i].Mx		    = in[i].Mx;
-    out[i].My		    = in[i].My;
-    out[i].Mxx		    = in[i].Mxx;
-    out[i].Mxy		    = in[i].Mxy;
-    out[i].Myy		    = in[i].Myy;
-    out[i].Mxxx		    = in[i].Mxxx;
-    out[i].Mxxy		    = in[i].Mxxy;
-    out[i].Mxyy		    = in[i].Mxyy;
-    out[i].Myyy		    = in[i].Myyy;
-    out[i].Mxxxx	    = in[i].Mxxxx;
-    out[i].Mxxxy	    = in[i].Mxxxy;
-    out[i].Mxxyy	    = in[i].Mxxyy;
-    out[i].Mxyyy	    = in[i].Mxyyy;
-    out[i].Myyyy	    = in[i].Myyyy;
+    // 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].dummy1	    = in[i].dummy1;
+    out[i].dummy2	    = in[i].dummy2;
+    out[i].dummy3	    = in[i].dummy3;
+    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;
 
     // changed or added for PS1_V2
@@ -297,5 +295,5 @@
   Image_PS1_V1 *out;
 
-  ALLOCATE (out, Image_PS1_V1, Nvalues);
+  ALLOCATE_ZERO (out, Image_PS1_V1, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -333,19 +331,17 @@
     out[i].sourceID	    = in[i].sourceID;
 
-    out[i].order	    = in[i].order;
-    out[i].Mx		    = in[i].Mx;
-    out[i].My		    = in[i].My;
-    out[i].Mxx		    = in[i].Mxx;
-    out[i].Mxy		    = in[i].Mxy;
-    out[i].Myy		    = in[i].Myy;
-    out[i].Mxxx		    = in[i].Mxxx;
-    out[i].Mxxy		    = in[i].Mxxy;
-    out[i].Mxyy		    = in[i].Mxyy;
-    out[i].Myyy		    = in[i].Myyy;
-    out[i].Mxxxx	    = in[i].Mxxxx;
-    out[i].Mxxxy	    = in[i].Mxxxy;
-    out[i].Mxxyy	    = in[i].Mxxyy;
-    out[i].Mxyyy	    = in[i].Mxyyy;
-    out[i].Myyyy	    = in[i].Myyyy;
+    // 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].dummy1	    = in[i].dummy1;
+    out[i].dummy2	    = in[i].dummy2;
+    out[i].dummy3	    = in[i].dummy3;
+    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);
@@ -357,5 +353,5 @@
   PhotCode *out;
 
-  ALLOCATE (out, PhotCode, Nvalues);
+  ALLOCATE_ZERO (out, PhotCode, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -393,5 +389,5 @@
   PhotCode_PS1_V1 *out;
 
-  ALLOCATE (out, PhotCode_PS1_V1, Nvalues);
+  ALLOCATE_ZERO (out, PhotCode_PS1_V1, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
Index: /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_PS1_V2.c
===================================================================
--- /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_PS1_V2.c	(revision 30501)
+++ /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_PS1_V2.c	(revision 30502)
@@ -8,5 +8,5 @@
   Measure *out;
 
-  ALLOCATE (out, Measure, Nvalues);
+  ALLOCATE_ZERO (out, Measure, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -47,4 +47,5 @@
     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;
@@ -61,5 +62,5 @@
   Measure_PS1_V2 *out;
 
-  ALLOCATE (out, Measure_PS1_V2, Nvalues);
+  ALLOCATE_ZERO (out, Measure_PS1_V2, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -100,5 +101,5 @@
     out[i].dXccd      = in[i].dXccd;
     out[i].dYccd      = in[i].dYccd;
-    memset(out[i].pad, 0, sizeof(out[i].pad));
+    out[i].dRsys      = in[i].dRsys;
     out[i].posangle   = in[i].posangle;
     out[i].pltscale   = in[i].pltscale;
@@ -116,5 +117,5 @@
   Average *out;
 
-  ALLOCATE (out, Average, Nvalues);
+  ALLOCATE_ZERO (out, Average, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -156,5 +157,5 @@
   Average_PS1_V2 *out;
 
-  ALLOCATE (out, Average_PS1_V2, Nvalues);
+  ALLOCATE_ZERO (out, Average_PS1_V2, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -195,5 +196,5 @@
   SecFilt *out;
 
-  ALLOCATE (out, SecFilt, Nvalues);
+  ALLOCATE_ZERO (out, SecFilt, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -215,5 +216,5 @@
   SecFilt_PS1_V2 *out;
 
-  ALLOCATE (out, SecFilt_PS1_V2, Nvalues);
+  ALLOCATE_ZERO (out, SecFilt_PS1_V2, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -235,5 +236,5 @@
   Image *out;
 
-  ALLOCATE (out, Image, Nvalues);
+  ALLOCATE_ZERO (out, Image, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -275,19 +276,17 @@
     out[i].sourceID	    = in[i].sourceID;
 
-    out[i].order	    = in[i].order;
-    out[i].Mx		    = in[i].Mx;
-    out[i].My		    = in[i].My;
-    out[i].Mxx		    = in[i].Mxx;
-    out[i].Mxy		    = in[i].Mxy;
-    out[i].Myy		    = in[i].Myy;
-    out[i].Mxxx		    = in[i].Mxxx;
-    out[i].Mxxy		    = in[i].Mxxy;
-    out[i].Mxyy		    = in[i].Mxyy;
-    out[i].Myyy		    = in[i].Myyy;
-    out[i].Mxxxx	    = in[i].Mxxxx;
-    out[i].Mxxxy	    = in[i].Mxxxy;
-    out[i].Mxxyy	    = in[i].Mxxyy;
-    out[i].Mxyyy	    = in[i].Mxyyy;
-    out[i].Myyyy	    = in[i].Myyyy;
+    // 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].dummy1	    = in[i].dummy1;
+    out[i].dummy2	    = in[i].dummy2;
+    out[i].dummy3	    = in[i].dummy3;
+    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);
@@ -299,5 +298,5 @@
   Image_PS1_V2 *out;
 
-  ALLOCATE (out, Image_PS1_V2, Nvalues);
+  ALLOCATE_ZERO (out, Image_PS1_V2, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -339,19 +338,17 @@
     out[i].sourceID	    = in[i].sourceID;
 
-    out[i].order	    = in[i].order;
-    out[i].Mx		    = in[i].Mx;
-    out[i].My		    = in[i].My;
-    out[i].Mxx		    = in[i].Mxx;
-    out[i].Mxy		    = in[i].Mxy;
-    out[i].Myy		    = in[i].Myy;
-    out[i].Mxxx		    = in[i].Mxxx;
-    out[i].Mxxy		    = in[i].Mxxy;
-    out[i].Mxyy		    = in[i].Mxyy;
-    out[i].Myyy		    = in[i].Myyy;
-    out[i].Mxxxx	    = in[i].Mxxxx;
-    out[i].Mxxxy	    = in[i].Mxxxy;
-    out[i].Mxxyy	    = in[i].Mxxyy;
-    out[i].Mxyyy	    = in[i].Mxyyy;
-    out[i].Myyyy	    = in[i].Myyyy;
+    // 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].dummy1	    = in[i].dummy1;
+    out[i].dummy2	    = in[i].dummy2;
+    out[i].dummy3	    = in[i].dummy3;
+    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);
@@ -363,5 +360,5 @@
   PhotCode *out;
 
-  ALLOCATE (out, PhotCode, Nvalues);
+  ALLOCATE_ZERO (out, PhotCode, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -399,5 +396,5 @@
   PhotCode_PS1_V2 *out;
 
-  ALLOCATE (out, PhotCode_PS1_V2, Nvalues);
+  ALLOCATE_ZERO (out, PhotCode_PS1_V2, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -407,5 +404,4 @@
     out[i].code  = in[i].code;         
     out[i].type  = in[i].type;         
-    memset(out[i].dummy, 0, sizeof(out[i].dummy));
     out[i].C     = in[i].C;            
     out[i].dC 	 = in[i].dC;           
Index: /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_elixir.c
===================================================================
--- /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_elixir.c	(revision 30501)
+++ /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_elixir.c	(revision 30502)
@@ -7,5 +7,5 @@
   Measure *out;
 
-  ALLOCATE (out, Measure, Nvalues);
+  ALLOCATE_ZERO (out, Measure, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -74,5 +74,5 @@
   Measure_Elixir *out;
 
-  ALLOCATE (out, Measure_Elixir, Nvalues);
+  ALLOCATE_ZERO (out, Measure_Elixir, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -113,6 +113,6 @@
   Average *out;
 
-  ALLOCATE (out, Average, Nvalues);
-  ALLOCATE (*primary, SecFilt, Nvalues);
+  ALLOCATE_ZERO (out, Average, Nvalues);
+  ALLOCATE_ZERO (*primary, SecFilt, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -168,5 +168,5 @@
   Average_Elixir *out;
 
-  ALLOCATE (out, Average_Elixir, Nvalues);
+  ALLOCATE_ZERO (out, Average_Elixir, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -198,5 +198,5 @@
   SecFilt *out;
 
-  ALLOCATE (out, SecFilt, Nvalues);
+  ALLOCATE_ZERO (out, SecFilt, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -225,5 +225,5 @@
   SecFilt_Elixir *out;
 
-  ALLOCATE (out, SecFilt_Elixir, Nvalues);
+  ALLOCATE_ZERO (out, SecFilt_Elixir, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -243,5 +243,5 @@
   Image *out;
 
-  ALLOCATE (out, Image, Nvalues);
+  ALLOCATE_ZERO (out, Image, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -266,19 +266,17 @@
     out[i].ccdnum	    = in[i].ccdnum;
 
-    out[i].order	    = in[i].order;
-    out[i].Mx		    = in[i].Mx;
-    out[i].My		    = in[i].My;
-    out[i].Mxx		    = in[i].Mxx;
-    out[i].Mxy		    = in[i].Mxy;
-    out[i].Myy		    = in[i].Myy;
-    out[i].Mxxx		    = in[i].Mxxx;
-    out[i].Mxxy		    = in[i].Mxxy;
-    out[i].Mxyy		    = in[i].Mxyy;
-    out[i].Myyy		    = in[i].Myyy;
-    out[i].Mxxxx	    = in[i].Mxxxx;
-    out[i].Mxxxy	    = in[i].Mxxxy;
-    out[i].Mxxyy	    = in[i].Mxxyy;
-    out[i].Mxyyy	    = in[i].Mxyyy;
-    out[i].Myyyy	    = in[i].Myyyy;
+    // 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].dummy1	    = in[i].dummy1;
+    out[i].dummy2	    = in[i].dummy2;
+    out[i].dummy3	    = in[i].dummy3;
+    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;
 
     // added or changed for PANSTARRS_DEV_0
@@ -314,5 +312,5 @@
   Image_Elixir *out;
 
-  ALLOCATE (out, Image_Elixir, Nvalues);
+  ALLOCATE_ZERO (out, Image_Elixir, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -338,19 +336,17 @@
     out[i].ccdnum	    = in[i].ccdnum;
 
-    out[i].order	    = in[i].order;
-    out[i].Mx		    = in[i].Mx;
-    out[i].My		    = in[i].My;
-    out[i].Mxx		    = in[i].Mxx;
-    out[i].Mxy		    = in[i].Mxy;
-    out[i].Myy		    = in[i].Myy;
-    out[i].Mxxx		    = in[i].Mxxx;
-    out[i].Mxxy		    = in[i].Mxxy;
-    out[i].Mxyy		    = in[i].Mxyy;
-    out[i].Myyy		    = in[i].Myyy;
-    out[i].Mxxxx	    = in[i].Mxxxx;
-    out[i].Mxxxy	    = in[i].Mxxxy;
-    out[i].Mxxyy	    = in[i].Mxxyy;
-    out[i].Mxyyy	    = in[i].Mxyyy;
-    out[i].Myyyy	    = in[i].Myyyy;
+    // 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].dummy1	    = in[i].dummy1;
+    out[i].dummy2	    = in[i].dummy2;
+    out[i].dummy3	    = in[i].dummy3;
+    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;
 
     // added or changed for PANSTARRS_DEV_0
@@ -372,5 +368,5 @@
   PhotCode *out;
 
-  ALLOCATE (out, PhotCode, Nvalues);
+  ALLOCATE_ZERO (out, PhotCode, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -412,5 +408,5 @@
   PhotCode_Elixir *out;
 
-  ALLOCATE (out, PhotCode_Elixir, Nvalues);
+  ALLOCATE_ZERO (out, PhotCode_Elixir, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
Index: /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_loneos.c
===================================================================
--- /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_loneos.c	(revision 30501)
+++ /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_loneos.c	(revision 30502)
@@ -7,5 +7,5 @@
   Measure *out;
 
-  ALLOCATE (out, Measure, Nvalues);
+  ALLOCATE_ZERO (out, Measure, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -76,5 +76,5 @@
   Measure_Loneos *out;
 
-  ALLOCATE (out, Measure_Loneos, Nvalues);
+  ALLOCATE_ZERO (out, Measure_Loneos, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -104,6 +104,6 @@
   Average *out;
 
-  ALLOCATE (out, Average, Nvalues);
-  ALLOCATE (*primary, SecFilt, Nvalues);
+  ALLOCATE_ZERO (out, Average, Nvalues);
+  ALLOCATE_ZERO (*primary, SecFilt, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -160,5 +160,5 @@
   Average_Loneos *out;
 
-  ALLOCATE (out, Average_Loneos, Nvalues);
+  ALLOCATE_ZERO (out, Average_Loneos, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -189,5 +189,5 @@
   SecFilt *out;
 
-  ALLOCATE (out, SecFilt, Nvalues);
+  ALLOCATE_ZERO (out, SecFilt, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -218,5 +218,5 @@
   SecFilt_Loneos *out;
 
-  ALLOCATE (out, SecFilt_Loneos, Nvalues);
+  ALLOCATE_ZERO (out, SecFilt_Loneos, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -235,5 +235,5 @@
   Image *out;
 
-  ALLOCATE (out, Image, Nvalues);
+  ALLOCATE_ZERO (out, Image, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -259,19 +259,17 @@
     out[i].ccdnum	    = in[i].ccdnum;
 
-    out[i].order	    = in[i].order;
-    out[i].Mx		    = in[i].Mx;
-    out[i].My		    = in[i].My;
-    out[i].Mxx		    = in[i].Mxx;
-    out[i].Mxy		    = in[i].Mxy;
-    out[i].Myy		    = in[i].Myy;
-    out[i].Mxxx		    = in[i].Mxxx;
-    out[i].Mxxy		    = in[i].Mxxy;
-    out[i].Mxyy		    = in[i].Mxyy;
-    out[i].Myyy		    = in[i].Myyy;
-    out[i].Mxxxx	    = in[i].Mxxxx;
-    out[i].Mxxxy	    = in[i].Mxxxy;
-    out[i].Mxxyy	    = in[i].Mxxyy;
-    out[i].Mxyyy	    = in[i].Mxyyy;
-    out[i].Myyyy	    = in[i].Myyyy;
+    // 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].dummy1	    = in[i].dummy1;
+    out[i].dummy2	    = in[i].dummy2;
+    out[i].dummy3	    = in[i].dummy3;
+    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;
 
     // added or changed for PANSTARRS_DEV_0
@@ -307,5 +305,5 @@
   Image_Loneos *out;
 
-  ALLOCATE (out, Image_Loneos, Nvalues);
+  ALLOCATE_ZERO (out, Image_Loneos, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -331,19 +329,17 @@
     out[i].ccdnum	    = in[i].ccdnum;
 
-    out[i].order	    = in[i].order;
-    out[i].Mx		    = in[i].Mx;
-    out[i].My		    = in[i].My;
-    out[i].Mxx		    = in[i].Mxx;
-    out[i].Mxy		    = in[i].Mxy;
-    out[i].Myy		    = in[i].Myy;
-    out[i].Mxxx		    = in[i].Mxxx;
-    out[i].Mxxy		    = in[i].Mxxy;
-    out[i].Mxyy		    = in[i].Mxyy;
-    out[i].Myyy		    = in[i].Myyy;
-    out[i].Mxxxx	    = in[i].Mxxxx;
-    out[i].Mxxxy	    = in[i].Mxxxy;
-    out[i].Mxxyy	    = in[i].Mxxyy;
-    out[i].Mxyyy	    = in[i].Mxyyy;
-    out[i].Myyyy	    = in[i].Myyyy;
+    // 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].dummy1	    = in[i].dummy1;
+    out[i].dummy2	    = in[i].dummy2;
+    out[i].dummy3	    = in[i].dummy3;
+    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;
 
     // added or changed for PANSTARRS_DEV_0
Index: /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_0.c
===================================================================
--- /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_0.c	(revision 30501)
+++ /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_0.c	(revision 30502)
@@ -7,5 +7,5 @@
   Measure *out;
 
-  ALLOCATE (out, Measure, Nvalues);
+  ALLOCATE_ZERO (out, Measure, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -71,5 +71,5 @@
   Measure_Panstarrs_DEV_0 *out;
 
-  ALLOCATE (out, Measure_Panstarrs_DEV_0, Nvalues);
+  ALLOCATE_ZERO (out, Measure_Panstarrs_DEV_0, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -120,5 +120,5 @@
   Average *out;
 
-  ALLOCATE (out, Average, Nvalues);
+  ALLOCATE_ZERO (out, Average, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -165,5 +165,5 @@
   Average_Panstarrs_DEV_0 *out;
 
-  ALLOCATE (out, Average_Panstarrs_DEV_0, Nvalues);
+  ALLOCATE_ZERO (out, Average_Panstarrs_DEV_0, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -200,5 +200,5 @@
   SecFilt *out;
 
-  ALLOCATE (out, SecFilt, Nvalues);
+  ALLOCATE_ZERO (out, SecFilt, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -225,5 +225,5 @@
   SecFilt_Panstarrs_DEV_0 *out;
 
-  ALLOCATE (out, SecFilt_Panstarrs_DEV_0, Nvalues);
+  ALLOCATE_ZERO (out, SecFilt_Panstarrs_DEV_0, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -243,5 +243,5 @@
   Image *out;
 
-  ALLOCATE (out, Image, Nvalues);
+  ALLOCATE_ZERO (out, Image, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -273,19 +273,17 @@
     out[i].ccdnum	    = in[i].ccdnum;
 
-    out[i].order	    = in[i].order;
-    out[i].Mx		    = in[i].Mx;
-    out[i].My		    = in[i].My;
-    out[i].Mxx		    = in[i].Mxx;
-    out[i].Mxy		    = in[i].Mxy;
-    out[i].Myy		    = in[i].Myy;
-    out[i].Mxxx		    = in[i].Mxxx;
-    out[i].Mxxy		    = in[i].Mxxy;
-    out[i].Mxyy		    = in[i].Mxyy;
-    out[i].Myyy		    = in[i].Myyy;
-    out[i].Mxxxx	    = in[i].Mxxxx;
-    out[i].Mxxxy	    = in[i].Mxxxy;
-    out[i].Mxxyy	    = in[i].Mxxyy;
-    out[i].Mxyyy	    = in[i].Mxyyy;
-    out[i].Myyyy	    = in[i].Myyyy;
+    // 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].dummy1	    = in[i].dummy1;
+    out[i].dummy2	    = in[i].dummy2;
+    out[i].dummy3	    = in[i].dummy3;
+    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;
 
     // changed or added for PS1_DEV_1
@@ -314,5 +312,5 @@
   Image_Panstarrs_DEV_0 *out;
 
-  ALLOCATE (out, Image_Panstarrs_DEV_0, Nvalues);
+  ALLOCATE_ZERO (out, Image_Panstarrs_DEV_0, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -344,19 +342,17 @@
     out[i].ccdnum	    = in[i].ccdnum;
 
-    out[i].order	    = in[i].order;
-    out[i].Mx		    = in[i].Mx;
-    out[i].My		    = in[i].My;
-    out[i].Mxx		    = in[i].Mxx;
-    out[i].Mxy		    = in[i].Mxy;
-    out[i].Myy		    = in[i].Myy;
-    out[i].Mxxx		    = in[i].Mxxx;
-    out[i].Mxxy		    = in[i].Mxxy;
-    out[i].Mxyy		    = in[i].Mxyy;
-    out[i].Myyy		    = in[i].Myyy;
-    out[i].Mxxxx	    = in[i].Mxxxx;
-    out[i].Mxxxy	    = in[i].Mxxxy;
-    out[i].Mxxyy	    = in[i].Mxxyy;
-    out[i].Mxyyy	    = in[i].Mxyyy;
-    out[i].Myyyy	    = in[i].Myyyy;
+    // 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].dummy1	    = in[i].dummy1;
+    out[i].dummy2	    = in[i].dummy2;
+    out[i].dummy3	    = in[i].dummy3;
+    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;
 
     // changed or added for PS1_DEV_1
Index: /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_1.c
===================================================================
--- /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_1.c	(revision 30501)
+++ /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_1.c	(revision 30502)
@@ -7,5 +7,5 @@
   Measure *out;
 
-  ALLOCATE (out, Measure, Nvalues);
+  ALLOCATE_ZERO (out, Measure, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -71,5 +71,5 @@
   Measure_Panstarrs_DEV_1 *out;
 
-  ALLOCATE (out, Measure_Panstarrs_DEV_1, Nvalues);
+  ALLOCATE_ZERO (out, Measure_Panstarrs_DEV_1, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -120,5 +120,5 @@
   Average *out;
 
-  ALLOCATE (out, Average, Nvalues);
+  ALLOCATE_ZERO (out, Average, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -165,5 +165,5 @@
   Average_Panstarrs_DEV_1 *out;
 
-  ALLOCATE (out, Average_Panstarrs_DEV_1, Nvalues);
+  ALLOCATE_ZERO (out, Average_Panstarrs_DEV_1, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -200,5 +200,5 @@
   SecFilt *out;
 
-  ALLOCATE (out, SecFilt, Nvalues);
+  ALLOCATE_ZERO (out, SecFilt, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -225,5 +225,5 @@
   SecFilt_Panstarrs_DEV_1 *out;
 
-  ALLOCATE (out, SecFilt_Panstarrs_DEV_1, Nvalues);
+  ALLOCATE_ZERO (out, SecFilt_Panstarrs_DEV_1, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -243,5 +243,5 @@
   Image *out;
 
-  ALLOCATE (out, Image, Nvalues);
+  ALLOCATE_ZERO (out, Image, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -273,19 +273,17 @@
     out[i].ccdnum	    = in[i].ccdnum;
 
-    out[i].order	    = in[i].order;
-    out[i].Mx		    = in[i].Mx;
-    out[i].My		    = in[i].My;
-    out[i].Mxx		    = in[i].Mxx;
-    out[i].Mxy		    = in[i].Mxy;
-    out[i].Myy		    = in[i].Myy;
-    out[i].Mxxx		    = in[i].Mxxx;
-    out[i].Mxxy		    = in[i].Mxxy;
-    out[i].Mxyy		    = in[i].Mxyy;
-    out[i].Myyy		    = in[i].Myyy;
-    out[i].Mxxxx	    = in[i].Mxxxx;
-    out[i].Mxxxy	    = in[i].Mxxxy;
-    out[i].Mxxyy	    = in[i].Mxxyy;
-    out[i].Mxyyy	    = in[i].Mxyyy;
-    out[i].Myyyy	    = in[i].Myyyy;
+    // 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].dummy1	    = in[i].dummy1;
+    out[i].dummy2	    = in[i].dummy2;
+    out[i].dummy3	    = in[i].dummy3;
+    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;
 
     // changed or added for PS1_DEV_1
@@ -314,5 +312,5 @@
   Image_Panstarrs_DEV_1 *out;
 
-  ALLOCATE (out, Image_Panstarrs_DEV_1, Nvalues);
+  ALLOCATE_ZERO (out, Image_Panstarrs_DEV_1, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
@@ -344,19 +342,17 @@
     out[i].ccdnum	    = in[i].ccdnum;
 
-    out[i].order	    = in[i].order;
-    out[i].Mx		    = in[i].Mx;
-    out[i].My		    = in[i].My;
-    out[i].Mxx		    = in[i].Mxx;
-    out[i].Mxy		    = in[i].Mxy;
-    out[i].Myy		    = in[i].Myy;
-    out[i].Mxxx		    = in[i].Mxxx;
-    out[i].Mxxy		    = in[i].Mxxy;
-    out[i].Mxyy		    = in[i].Mxyy;
-    out[i].Myyy		    = in[i].Myyy;
-    out[i].Mxxxx	    = in[i].Mxxxx;
-    out[i].Mxxxy	    = in[i].Mxxxy;
-    out[i].Mxxyy	    = in[i].Mxxyy;
-    out[i].Mxyyy	    = in[i].Mxyyy;
-    out[i].Myyyy	    = in[i].Myyyy;
+    // 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].dummy1	    = in[i].dummy1;
+    out[i].dummy2	    = in[i].dummy2;
+    out[i].dummy3	    = in[i].dummy3;
+    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;
 
     // changed or added for PS1_DEV_1
Index: /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/photfits.c
===================================================================
--- /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/photfits.c	(revision 30501)
+++ /branches/eam_branches/ipp-20101205/Ohana/src/libdvo/src/photfits.c	(revision 30502)
@@ -2,11 +2,11 @@
 # define MAX_ORDER 3
 
-/**** XXXX warning: these functions have not been corrected to handle 
-      the change of Mcal from millimags to mags
-      I don't think most functions are using the Mcal polynomial terms in 
-      any case... ****/
-
-/* all terms of order > 0 are stored as 16bit floats 
-   the zero-order term is stored as a short int (-32k,+32k) */
+/*** This file contains deprecated functions which were used to implement the 2D zero point variations per image.
+     This code has not been used for a long time, and is not up-to-date wrt the change from
+     millimag shorts to mag floats for values in the db tables.  As of 2011.02.03, these
+     structures are no longer used.  There is now an (as yet unused) index in the image table
+     to a zero-point map table.  Someday, we may need similarly named functions to interact
+     with the ZP map.  for now, this file is not used in the build.
+***/
 
 /* convert double to low-precision short int */
