Index: /trunk/psphot/src/pmObjects_EAM.c
===================================================================
--- /trunk/psphot/src/pmObjects_EAM.c	(revision 5349)
+++ /trunk/psphot/src/pmObjects_EAM.c	(revision 5350)
@@ -6,6 +6,6 @@
  *  @author EAM, IfA: significant modifications.
  *
- *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-09-26 19:49:41 $
+ *  @version $Revision: 1.9 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2005-10-17 18:07:54 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -999,4 +999,5 @@
     int Ncr    	 = 0;
     int Nsatstar = 0;
+    psRegion allArray = {0, 0, 0, 0};
 
     psVector *starsn = psVectorAlloc (sources->n, PS_TYPE_F32);
@@ -1030,5 +1031,5 @@
 
 	// XXX EAM : can we use the value of SATURATE if mask is NULL?
-	int Nsatpix = psImageCountPixelMask (tmpSrc->mask, PSPHOT_MASK_SATURATED);
+	int Nsatpix = psImageCountPixelMask (tmpSrc->mask, allArray, PSPHOT_MASK_SATURATED);
 
         // saturated star (size consistent with PSF or larger)
Index: /trunk/psphot/src/psMinimize.c
===================================================================
--- /trunk/psphot/src/psMinimize.c	(revision 5349)
+++ /trunk/psphot/src/psMinimize.c	(revision 5350)
@@ -4,4 +4,17 @@
 // XXX EAM : this file contains my alternate implementations of psMinimizeLMChi2
 // XXX EAM this implementation of MinLM includes limits on params & dparams
+
+psBool p_psMinLM_GuessABP(
+			  psImage  *Alpha,
+			  psVector *Beta,
+			  psVector *Params,
+			  const psImage  *alpha,
+			  const psVector *beta,
+			  const psVector *params,
+			  const psVector *paramMask,
+			  const psVector *beta_lim,
+			  const psVector *params_min,
+			  const psVector *params_max,
+			  psF64 lambda);
 
 psBool psMinimizeLMChi2_EAM(psMinimization *min,
@@ -275,5 +288,5 @@
 
     p_psMinLM_SetABX (alpha, beta, params, paramMask, x, y, dy, func);
-    p_psMinLM_GuessABP (Alpha, delta, Params, alpha, beta, params, paramMask, 0.0);
+    p_psMinLM_GuessABP (Alpha, delta, Params, alpha, beta, params, paramMask, NULL, NULL, NULL, 0.0);
 
     psFree (alpha);
Index: /trunk/psphot/src/psModulesUtils.c
===================================================================
--- /trunk/psphot/src/psModulesUtils.c	(revision 5349)
+++ /trunk/psphot/src/psModulesUtils.c	(revision 5350)
@@ -23,5 +23,5 @@
 
     // I'm either expecting a string, with the name "HD:keyword"...
-    if (item->type == PS_META_STR) {
+    if (item->type == PS_DATA_STRING) {
 	source = item->data.V;
 	if (!strncasecmp (source, "HD:", 3)) {
@@ -38,5 +38,5 @@
 
     //  ... or a value (F32?)
-    if (item->type == PS_META_F32) {
+    if (item->type == PS_DATA_F32) {
 	value = item->data.F32;
 	// psFree (item);
Index: /trunk/psphot/src/psPolynomials.c
===================================================================
--- /trunk/psphot/src/psPolynomials.c	(revision 5349)
+++ /trunk/psphot/src/psPolynomials.c	(revision 5350)
@@ -12,5 +12,5 @@
 void Polynomial1DDump_EAM (psPolynomial1D *poly) {
 
-    for (int i = 0; i < poly->COOL_1D_n + 1; i++) {
+    for (int i = 0; i < poly->nX + 1; i++) {
 	fprintf (stderr, "x^%d : %g +/- %g\n", i, poly->coeff[i], poly->coeffErr[i]);
     }
@@ -39,5 +39,5 @@
     newPoly = (psPolynomial1D* ) psAlloc(sizeof(psPolynomial1D));
     newPoly->type = type;
-    newPoly->COOL_1D_n = nOrder;
+    newPoly->nX = nOrder;
     newPoly->coeff = (psF64 *)psAlloc(nTerm * sizeof(psF64));
     newPoly->coeffErr = (psF64 *)psAlloc(nTerm * sizeof(psF64));
@@ -58,5 +58,5 @@
     psF64 xSum = 1.0;
 
-    for (loop_x = 0; loop_x < myPoly->COOL_1D_n + 1; loop_x++) {
+    for (loop_x = 0; loop_x < myPoly->nX + 1; loop_x++) {
         if (myPoly->mask[loop_x] == 0) {
             polySum += xSum * myPoly->coeff[loop_x];
@@ -141,5 +141,5 @@
 # endif
       
-    nTerm = myPoly->COOL_1D_n + 1;
+    nTerm = myPoly->nX + 1;
     A     = psImageAlloc(nTerm, nTerm, PS_TYPE_F64);
     B     = psVectorAlloc(nTerm, PS_TYPE_F64);
@@ -223,5 +223,5 @@
 
     if (poly == NULL) return;
-    for (int i = 0; i < poly->COOL_2D_nX + 1; i++) {
+    for (int i = 0; i < poly->nX + 1; i++) {
 	psFree (poly->coeff[i]);
 	psFree (poly->coeffErr[i]);
@@ -251,6 +251,6 @@
     newPoly = (psPolynomial2D* ) psAlloc(sizeof(psPolynomial2D));
     newPoly->type = type;
-    newPoly->COOL_2D_nX = nXorder;
-    newPoly->COOL_2D_nY = nYorder;
+    newPoly->nX = nXorder;
+    newPoly->nY = nYorder;
 
     newPoly->coeff = (psF64 **)psAlloc(nXterm * sizeof(psF64 *));
@@ -278,6 +278,6 @@
 void Polynomial2DDump_EAM (psPolynomial2D *poly) {
 
-    for (int i = 0; i < poly->COOL_2D_nX + 1; i++) {
-	for (int j = 0; j < poly->COOL_2D_nY + 1; j++) {
+    for (int i = 0; i < poly->nX + 1; i++) {
+	for (int j = 0; j < poly->nY + 1; j++) {
 	    fprintf (stderr, "x^%d y^%d : %g +/- %g\n", i, j, poly->coeff[i][j], poly->coeffErr[i][j]);
 	}
@@ -298,8 +298,8 @@
 
     // XXX EAM : nX is order, not nTerms
-    for (loop_x = 0; loop_x < myPoly->COOL_2D_nX + 1; loop_x++) {
+    for (loop_x = 0; loop_x < myPoly->nX + 1; loop_x++) {
         ySum = xSum;
 	// XXX EAM : nX is order, not nTerms
-        for (loop_y = 0; loop_y < myPoly->COOL_2D_nY + 1; loop_y++) {
+        for (loop_y = 0; loop_y < myPoly->nY + 1; loop_y++) {
             if (myPoly->mask[loop_x][loop_y] == 0) {
                 polySum += ySum * myPoly->coeff[loop_x][loop_y];
@@ -425,6 +425,6 @@
     psS32 nTerm, nXterm, nYterm;
 
-    nXterm = myPoly->COOL_2D_nX + 1;
-    nYterm = myPoly->COOL_2D_nY + 1;
+    nXterm = myPoly->nX + 1;
+    nYterm = myPoly->nY + 1;
     nTerm = nXterm * nYterm;
 
Index: /trunk/psphot/src/psphotArguments.c
===================================================================
--- /trunk/psphot/src/psphotArguments.c	(revision 5349)
+++ /trunk/psphot/src/psphotArguments.c	(revision 5350)
@@ -6,5 +6,5 @@
 
   int N, Nfail;
-  int mode = PS_META_STR | PS_META_REPLACE;
+  int mode = PS_DATA_STRING | PS_META_REPLACE;
 
   // basic pslib options
@@ -50,5 +50,5 @@
   // load config information
   psMetadata *config = psMetadataAlloc ();
-  psMetadataAdd (config, PS_LIST_HEAD, "PSF_MODEL", PS_META_MULTI, "folder for psf model entries", NULL);
+  psMetadataAdd (config, PS_LIST_HEAD, "PSF_MODEL", PS_DATA_METADATA_MULTI, "folder for psf model entries", NULL);
   config = psMetadataConfigParse (config, &Nfail, argv[3], FALSE);
 
Index: /trunk/psphot/src/psphotOutput.c
===================================================================
--- /trunk/psphot/src/psphotOutput.c	(revision 5349)
+++ /trunk/psphot/src/psphotOutput.c	(revision 5350)
@@ -186,15 +186,15 @@
 
     // write necessary information to output header
-    psMetadataAdd (imdata->header, PS_LIST_TAIL, "NSTARS",   PS_META_S32 | PS_META_REPLACE, "NUMBER OF STARS",     sources->n);
-    psMetadataAdd (imdata->header, PS_LIST_TAIL, "ZERO_PT",  PS_META_F32 | PS_META_REPLACE, "zero point",          ZERO_POINT);
-    psMetadataAdd (imdata->header, PS_LIST_TAIL, "APMIFIT",  PS_META_F32 | PS_META_REPLACE, "aperture residual",   psf->ApResid);
-    psMetadataAdd (imdata->header, PS_LIST_TAIL, "dAPMIFIT", PS_META_F32 | PS_META_REPLACE, "ap residual scatter", psf->dApResid);
-    psMetadataAdd (imdata->header, PS_LIST_TAIL, "SKYBIAS",  PS_META_F32 | PS_META_REPLACE, "aperture sky bias",   psf->skyBias);
-    psMetadataAdd (imdata->header, PS_LIST_TAIL, "PHOTCODE", PS_META_STR | PS_META_REPLACE, "photometry code",     PHOTCODE);
-    psMetadataAdd (imdata->header, PS_LIST_TAIL, "FWHM_X",   PS_META_F32 | PS_META_REPLACE, "PSF FWHM X",          0.0);
-    psMetadataAdd (imdata->header, PS_LIST_TAIL, "FWHM_Y",   PS_META_F32 | PS_META_REPLACE, "PSF FWHM Y",          0.0);
-    psMetadataAdd (imdata->header, PS_LIST_TAIL, "ANGLE",    PS_META_F32 | PS_META_REPLACE, "PSF ANGLE",           0.0);
-    psMetadataAdd (imdata->header, PS_LIST_TAIL, "FSATUR",   PS_META_F32 | PS_META_REPLACE, "SATURATION MAG",      0.0);
-    psMetadataAdd (imdata->header, PS_LIST_TAIL, "FLIMIT",   PS_META_F32 | PS_META_REPLACE, "COMPLETENESS MAG",    0.0);
+    psMetadataAdd (imdata->header, PS_LIST_TAIL, "NSTARS",   PS_DATA_S32 | PS_META_REPLACE, "NUMBER OF STARS",     sources->n);
+    psMetadataAdd (imdata->header, PS_LIST_TAIL, "ZERO_PT",  PS_DATA_F32 | PS_META_REPLACE, "zero point",          ZERO_POINT);
+    psMetadataAdd (imdata->header, PS_LIST_TAIL, "APMIFIT",  PS_DATA_F32 | PS_META_REPLACE, "aperture residual",   psf->ApResid);
+    psMetadataAdd (imdata->header, PS_LIST_TAIL, "dAPMIFIT", PS_DATA_F32 | PS_META_REPLACE, "ap residual scatter", psf->dApResid);
+    psMetadataAdd (imdata->header, PS_LIST_TAIL, "SKYBIAS",  PS_DATA_F32 | PS_META_REPLACE, "aperture sky bias",   psf->skyBias);
+    psMetadataAdd (imdata->header, PS_LIST_TAIL, "PHOTCODE", PS_DATA_STRING | PS_META_REPLACE, "photometry code",     PHOTCODE);
+    psMetadataAdd (imdata->header, PS_LIST_TAIL, "FWHM_X",   PS_DATA_F32 | PS_META_REPLACE, "PSF FWHM X",          0.0);
+    psMetadataAdd (imdata->header, PS_LIST_TAIL, "FWHM_Y",   PS_DATA_F32 | PS_META_REPLACE, "PSF FWHM Y",          0.0);
+    psMetadataAdd (imdata->header, PS_LIST_TAIL, "ANGLE",    PS_DATA_F32 | PS_META_REPLACE, "PSF ANGLE",           0.0);
+    psMetadataAdd (imdata->header, PS_LIST_TAIL, "FSATUR",   PS_DATA_F32 | PS_META_REPLACE, "SATURATION MAG",      0.0);
+    psMetadataAdd (imdata->header, PS_LIST_TAIL, "FLIMIT",   PS_DATA_F32 | PS_META_REPLACE, "COMPLETENESS MAG",    0.0);
 
     // create file, write-out header
@@ -205,7 +205,7 @@
     mdi = psMetadataLookup (imdata->header, "NAXIS");
     mdi->data.S32 = 0;
-    mdi->type = PS_META_S32;
-
-    // psMetadataAdd (imdata->header, PS_LIST_HEAD, "NAXIS", PS_META_S32 | PS_META_REPLACE, "", 0);
+    mdi->type = PS_DATA_S32;
+
+    // psMetadataAdd (imdata->header, PS_LIST_HEAD, "NAXIS", PS_DATA_S32 | PS_META_REPLACE, "", 0);
     psFitsWriteHeader (imdata->header, fits);
     psFree (fits);
@@ -275,15 +275,15 @@
 
     // write necessary information to output header
-    psMetadataAdd (imdata->header, PS_LIST_TAIL, "NSTARS",   PS_META_S32 | PS_META_REPLACE, "NUMBER OF STARS",     sources->n);
-    psMetadataAdd (imdata->header, PS_LIST_TAIL, "ZERO_PT",  PS_META_F32 | PS_META_REPLACE, "zero point",          ZERO_POINT);
-    psMetadataAdd (imdata->header, PS_LIST_TAIL, "APMIFIT",  PS_META_F32 | PS_META_REPLACE, "aperture residual",   psf->ApResid);
-    psMetadataAdd (imdata->header, PS_LIST_TAIL, "dAPMIFIT", PS_META_F32 | PS_META_REPLACE, "ap residual scatter", psf->dApResid);
-    psMetadataAdd (imdata->header, PS_LIST_TAIL, "SKYBIAS",  PS_META_F32 | PS_META_REPLACE, "aperture sky bias",   psf->skyBias);
-    psMetadataAdd (imdata->header, PS_LIST_TAIL, "PHOTCODE", PS_META_STR | PS_META_REPLACE, "photometry code",     PHOTCODE);
-    psMetadataAdd (imdata->header, PS_LIST_TAIL, "FWHM_X",   PS_META_F32 | PS_META_REPLACE, "PSF FWHM X",          0.0);
-    psMetadataAdd (imdata->header, PS_LIST_TAIL, "FWHM_Y",   PS_META_F32 | PS_META_REPLACE, "PSF FWHM Y",          0.0);
-    psMetadataAdd (imdata->header, PS_LIST_TAIL, "ANGLE",    PS_META_F32 | PS_META_REPLACE, "PSF ANGLE",           0.0);
-    psMetadataAdd (imdata->header, PS_LIST_TAIL, "FSATUR",   PS_META_F32 | PS_META_REPLACE, "SATURATION MAG",      0.0);
-    psMetadataAdd (imdata->header, PS_LIST_TAIL, "FLIMIT",   PS_META_F32 | PS_META_REPLACE, "COMPLETENESS MAG",    0.0);
+    psMetadataAdd (imdata->header, PS_LIST_TAIL, "NSTARS",   PS_DATA_S32 | PS_META_REPLACE, "NUMBER OF STARS",     sources->n);
+    psMetadataAdd (imdata->header, PS_LIST_TAIL, "ZERO_PT",  PS_DATA_F32 | PS_META_REPLACE, "zero point",          ZERO_POINT);
+    psMetadataAdd (imdata->header, PS_LIST_TAIL, "APMIFIT",  PS_DATA_F32 | PS_META_REPLACE, "aperture residual",   psf->ApResid);
+    psMetadataAdd (imdata->header, PS_LIST_TAIL, "dAPMIFIT", PS_DATA_F32 | PS_META_REPLACE, "ap residual scatter", psf->dApResid);
+    psMetadataAdd (imdata->header, PS_LIST_TAIL, "SKYBIAS",  PS_DATA_F32 | PS_META_REPLACE, "aperture sky bias",   psf->skyBias);
+    psMetadataAdd (imdata->header, PS_LIST_TAIL, "PHOTCODE", PS_DATA_STRING | PS_META_REPLACE, "photometry code",     PHOTCODE);
+    psMetadataAdd (imdata->header, PS_LIST_TAIL, "FWHM_X",   PS_DATA_F32 | PS_META_REPLACE, "PSF FWHM X",          0.0);
+    psMetadataAdd (imdata->header, PS_LIST_TAIL, "FWHM_Y",   PS_DATA_F32 | PS_META_REPLACE, "PSF FWHM Y",          0.0);
+    psMetadataAdd (imdata->header, PS_LIST_TAIL, "ANGLE",    PS_DATA_F32 | PS_META_REPLACE, "PSF ANGLE",           0.0);
+    psMetadataAdd (imdata->header, PS_LIST_TAIL, "FSATUR",   PS_DATA_F32 | PS_META_REPLACE, "SATURATION MAG",      0.0);
+    psMetadataAdd (imdata->header, PS_LIST_TAIL, "FLIMIT",   PS_DATA_F32 | PS_META_REPLACE, "COMPLETENESS MAG",    0.0);
 
     // set NAXIS to 0
@@ -291,5 +291,5 @@
     mdi = psMetadataLookup (imdata->header, "NAXIS");
     mdi->data.S32 = 0;
-    mdi->type = PS_META_S32;
+    mdi->type = PS_DATA_S32;
 
     table = psArrayAlloc (sources->n);
@@ -310,16 +310,16 @@
 
 	row = psMetadataAlloc ();
-	psMetadataAdd (row, PS_LIST_HEAD, "X_PIX",   PS_META_F32, "", PAR[2]);
-	psMetadataAdd (row, PS_LIST_HEAD, "Y_PIX",   PS_META_F32, "", PAR[3]);
-	psMetadataAdd (row, PS_LIST_HEAD, "MAG_RAW", PS_META_F32, "", source->fitMag + ZERO_POINT);
-	psMetadataAdd (row, PS_LIST_HEAD, "MAG_ERR", PS_META_F32, "", (int)(1000*dmag));
-	psMetadataAdd (row, PS_LIST_HEAD, "MAG_GAL", PS_META_F32, "", type);
-	psMetadataAdd (row, PS_LIST_HEAD, "MAG_AP",  PS_META_F32, "", lsky);
-	psMetadataAdd (row, PS_LIST_HEAD, "LOG_SKY", PS_META_F32, "", 32.0);    // should be 'Mgal'
-	psMetadataAdd (row, PS_LIST_HEAD, "FWHM_X",  PS_META_F32, "", source->apMag + ZERO_POINT); 
-	psMetadataAdd (row, PS_LIST_HEAD, "FWHM_Y",  PS_META_F32, "", PAR[4]);  // should be 'FHWM x'
-	psMetadataAdd (row, PS_LIST_HEAD, "THETA",   PS_META_F32, "", PAR[5]);  // should be 'FHWM y'
+	psMetadataAdd (row, PS_LIST_HEAD, "X_PIX",   PS_DATA_F32, "", PAR[2]);
+	psMetadataAdd (row, PS_LIST_HEAD, "Y_PIX",   PS_DATA_F32, "", PAR[3]);
+	psMetadataAdd (row, PS_LIST_HEAD, "MAG_RAW", PS_DATA_F32, "", source->fitMag + ZERO_POINT);
+	psMetadataAdd (row, PS_LIST_HEAD, "MAG_ERR", PS_DATA_F32, "", (int)(1000*dmag));
+	psMetadataAdd (row, PS_LIST_HEAD, "MAG_GAL", PS_DATA_F32, "", type);
+	psMetadataAdd (row, PS_LIST_HEAD, "MAG_AP",  PS_DATA_F32, "", lsky);
+	psMetadataAdd (row, PS_LIST_HEAD, "LOG_SKY", PS_DATA_F32, "", 32.0);    // should be 'Mgal'
+	psMetadataAdd (row, PS_LIST_HEAD, "FWHM_X",  PS_DATA_F32, "", source->apMag + ZERO_POINT); 
+	psMetadataAdd (row, PS_LIST_HEAD, "FWHM_Y",  PS_DATA_F32, "", PAR[4]);  // should be 'FHWM x'
+	psMetadataAdd (row, PS_LIST_HEAD, "THETA",   PS_DATA_F32, "", PAR[5]);  // should be 'FHWM y'
 	psMetadataAdd (row, PS_LIST_HEAD, "DOPHOT",  PS_TYPE_S8,  "", 0);   // should be theta
-	// psMetadataAdd (header, PS_LIST_HEAD, "DUMMY",   PS_META_STR, "", NULL);
+	// psMetadataAdd (header, PS_LIST_HEAD, "DUMMY",   PS_DATA_STRING, "", NULL);
     
 	psArrayAdd (table, 100, row);
@@ -334,5 +334,5 @@
 
     theader = psMetadataAlloc ();
-    psMetadataAdd (theader, PS_LIST_HEAD, "EXTNAME", PS_META_STR, "extension name", "SMPFILE");
+    psMetadataAdd (theader, PS_LIST_HEAD, "EXTNAME", PS_DATA_STRING, "extension name", "SMPFILE");
 
     unlink (filename);
Index: /trunk/psphot/src/psphotSetup.c
===================================================================
--- /trunk/psphot/src/psphotSetup.c	(revision 5349)
+++ /trunk/psphot/src/psphotSetup.c	(revision 5350)
@@ -21,6 +21,6 @@
     // XXX EAM - shouldn't this be part of the basic FITS concept?
     header = psMetadataAlloc ();
-    psMetadataAdd (header, PS_LIST_HEAD, "COMMENT", PS_META_MULTI, "folder for comment", NULL);
-    psMetadataAdd (header, PS_LIST_HEAD, "HISTORY", PS_META_MULTI, "folder for history", NULL);
+    psMetadataAdd (header, PS_LIST_HEAD, "COMMENT", PS_DATA_METADATA_MULTI, "folder for comment", NULL);
+    psMetadataAdd (header, PS_LIST_HEAD, "HISTORY", PS_DATA_METADATA_MULTI, "folder for history", NULL);
 
     // read header and image data from INPUT 
@@ -38,6 +38,6 @@
     float RDNOISE  = pmConfigLookupF32 (&status, config, header, "RDNOISE");
     float GAIN     = pmConfigLookupF32 (&status, config, header, "GAIN");
-    psMetadataAdd (config, PS_LIST_TAIL, "RDNOISE", PS_META_F32 | PS_META_REPLACE, "read noise value used", RDNOISE);
-    psMetadataAdd (config, PS_LIST_TAIL, "GAIN",    PS_META_F32 | PS_META_REPLACE, "gain value used", GAIN);
+    psMetadataAdd (config, PS_LIST_TAIL, "RDNOISE", PS_DATA_F32 | PS_META_REPLACE, "read noise value used", RDNOISE);
+    psMetadataAdd (config, PS_LIST_TAIL, "GAIN",    PS_DATA_F32 | PS_META_REPLACE, "gain value used", GAIN);
 
     // load the weight image if it is supplied, otherwise build from input
