Index: /trunk/psLib/src/astro/psCoord.c
===================================================================
--- /trunk/psLib/src/astro/psCoord.c	(revision 2220)
+++ /trunk/psLib/src/astro/psCoord.c	(revision 2221)
@@ -10,6 +10,6 @@
 *  @author George Gusciora, MHPCC
 *
-*  @version $Revision: 1.31 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2004-10-27 20:07:17 $
+*  @version $Revision: 1.32 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2004-10-27 23:31:43 $
 *
 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -24,5 +24,4 @@
 #include "psCoord.h"
 #include "psMemory.h"
-#include "psAbort.h"
 #include "psTime.h"
 #include "psConstants.h"
@@ -69,4 +68,7 @@
 psPlaneTransform* psPlaneTransformAlloc(psS32 n1, psS32 n2)
 {
+    PS_INT_CHECK_NON_NEGATIVE(n1, NULL);
+    PS_INT_CHECK_NON_NEGATIVE(n2, NULL);
+
     psPlaneTransform *pt = psAlloc(sizeof(psPlaneTransform));
     pt->x = psDPolynomial2DAlloc(n1, n2, PS_POLYNOMIAL_ORD);
@@ -82,5 +84,8 @@
 {
     PS_PTR_CHECK_NULL(transform, NULL);
+    PS_PTR_CHECK_NULL(transform->x, NULL);
+    PS_PTR_CHECK_NULL(transform->y, NULL);
     PS_PTR_CHECK_NULL(coords, NULL);
+
     if (out == NULL) {
         out = (psPlane* ) psAlloc(sizeof(psPlane));
@@ -99,4 +104,9 @@
 psPlaneDistort* psPlaneDistortAlloc(psS32 n1, psS32 n2, psS32 n3, psS32 n4)
 {
+    PS_INT_CHECK_NON_NEGATIVE(n1, NULL);
+    PS_INT_CHECK_NON_NEGATIVE(n2, NULL);
+    PS_INT_CHECK_NON_NEGATIVE(n3, NULL);
+    PS_INT_CHECK_NON_NEGATIVE(n4, NULL);
+
     psPlaneDistort *pt = psAlloc(sizeof(psPlaneDistort));
     pt->x = psDPolynomial4DAlloc(n1, n2, n3, n4, PS_POLYNOMIAL_ORD);
@@ -118,5 +128,8 @@
 {
     PS_PTR_CHECK_NULL(transform, NULL);
+    PS_PTR_CHECK_NULL(transform->x, NULL);
+    PS_PTR_CHECK_NULL(transform->y, NULL);
     PS_PTR_CHECK_NULL(coords, NULL);
+
     if (out == NULL) {
         out = (psPlane* ) psAlloc(sizeof(psPlane));
@@ -158,4 +171,5 @@
     PS_PTR_CHECK_NULL(transform, NULL);
     PS_PTR_CHECK_NULL(coord, NULL);
+
     double sinY = 0.0;
     double cosY = 0.0;
@@ -186,4 +200,6 @@
 psSphereTransform* psSphereTransformICRSToEcliptic(psTime time)
 {
+    PS_PTR_CHECK_NULL(&time, NULL);
+
     struct tm *tmTime = psTimeToTM(&time);
     double year = (double)(1900 + tmTime->tm_year);
@@ -199,4 +215,6 @@
 psSphereTransform* psSphereTransformEclipticToICRS(psTime time)
 {
+    PS_PTR_CHECK_NULL(&time, NULL);
+
     struct tm *tmTime = psTimeToTM(&time);
     double year = (double)(1900 + tmTime->tm_year);
@@ -223,5 +241,4 @@
 XXX: Waiting for the definition of the PS_PROJ_PAR projection.
 XXX: Waiting for the definition of the PS_PROJ_GLS projection.
-XXX: get rid of the psAborts
  *****************************************************************************/
 psPlane* psProject(const psSphere* coord,
@@ -261,10 +278,10 @@
 
     } else if (projection->type == PS_PROJ_PAR) {
-        psAbort(__func__, "The projection type PS_PROJ_PAR is undefined.\n");
+        psError(__func__, "The projection type PS_PROJ_PAR is undefined.\n");
 
     } else if (projection->type == PS_PROJ_GLS) {
-        psAbort(__func__, "The projection type PS_PROJ_GLS is undefined.\n");
+        psError(__func__, "The projection type PS_PROJ_GLS is undefined.\n");
     } else {
-        psAbort(__func__, "Unknown projection type.\n");
+        psError(__func__, "Unknown projection type.\n");
     }
 
@@ -275,5 +292,4 @@
 XXX: Waiting for the definition of the PS_PROJ_PAR projection.
 XXX: Waiting for the definition of the PS_PROJ_GLS projection.
-XXX: get rid of the psAborts
  *****************************************************************************/
 psSphere* psDeproject(const psPlane* coord,
@@ -317,10 +333,10 @@
 
     } else if (projection->type == PS_PROJ_PAR) {
-        psAbort(__func__, "The projection type PS_PROJ_PAR is undefined.\n");
+        psError(__func__, "The projection type PS_PROJ_PAR is undefined.\n");
 
     } else if (projection->type == PS_PROJ_GLS) {
-        psAbort(__func__, "The projection type PS_PROJ_GLG is undefined.\n");
+        psError(__func__, "The projection type PS_PROJ_GLG is undefined.\n");
     } else {
-        psAbort(__func__, "Unknown projection type.\n");
+        psError(__func__, "Unknown projection type.\n");
     }
 
@@ -391,10 +407,11 @@
         } else if (unit == PS_RADIAN) {}
         else {
-            psAbort(__func__, "Unknown offset unit: 0x%x\n", unit);
+            psError(__func__, "Unknown offset unit: 0x%x\n", unit);
         }
 
         return (tmp);
     }
-    psAbort(__func__, "Unrecognized offset mode\n");
+
+    psError(__func__, "Unrecognized offset mode\n");
     return (NULL);
 }
@@ -452,5 +469,5 @@
             tmpD = offset->d;
         } else {
-            psAbort(__func__, "Unknown offset unit: 0x%x\n", unit);
+            psError(__func__, "Unknown offset unit: 0x%x\n", unit);
         }
 
@@ -465,5 +482,6 @@
         return (tmp);
     }
-    psAbort(__func__, "Unrecognized offset mode\n");
+
+    psError(__func__, "Unrecognized offset mode\n");
     return (NULL);
 }
Index: /trunk/psLib/src/astronomy/psAstrometry.c
===================================================================
--- /trunk/psLib/src/astronomy/psAstrometry.c	(revision 2220)
+++ /trunk/psLib/src/astronomy/psAstrometry.c	(revision 2221)
@@ -8,6 +8,6 @@
  *  @author George Gusciora, MHPCC
  *
- *  @version $Revision: 1.47 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-10-27 20:20:11 $
+ *  @version $Revision: 1.48 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-10-27 23:31:43 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -23,5 +23,4 @@
 #include "psAstrometry.h"
 #include "psMemory.h"
-#include "psAbort.h"
 #include "psError.h"
 #include "psConstants.h"
@@ -834,5 +833,5 @@
     // generate an error if cell->toTP is not linear.
     if (0 == isProjectionLinear(cell->toTP)) {
-        psAbort(__func__, "the cell->toTP transfrom is not linear.\n");
+        psError(__func__, "the cell->toTP transfrom is not linear.\n");
     }
 
Index: /trunk/psLib/src/astronomy/psCoord.c
===================================================================
--- /trunk/psLib/src/astronomy/psCoord.c	(revision 2220)
+++ /trunk/psLib/src/astronomy/psCoord.c	(revision 2221)
@@ -10,6 +10,6 @@
 *  @author George Gusciora, MHPCC
 *
-*  @version $Revision: 1.31 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2004-10-27 20:07:17 $
+*  @version $Revision: 1.32 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2004-10-27 23:31:43 $
 *
 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -24,5 +24,4 @@
 #include "psCoord.h"
 #include "psMemory.h"
-#include "psAbort.h"
 #include "psTime.h"
 #include "psConstants.h"
@@ -69,4 +68,7 @@
 psPlaneTransform* psPlaneTransformAlloc(psS32 n1, psS32 n2)
 {
+    PS_INT_CHECK_NON_NEGATIVE(n1, NULL);
+    PS_INT_CHECK_NON_NEGATIVE(n2, NULL);
+
     psPlaneTransform *pt = psAlloc(sizeof(psPlaneTransform));
     pt->x = psDPolynomial2DAlloc(n1, n2, PS_POLYNOMIAL_ORD);
@@ -82,5 +84,8 @@
 {
     PS_PTR_CHECK_NULL(transform, NULL);
+    PS_PTR_CHECK_NULL(transform->x, NULL);
+    PS_PTR_CHECK_NULL(transform->y, NULL);
     PS_PTR_CHECK_NULL(coords, NULL);
+
     if (out == NULL) {
         out = (psPlane* ) psAlloc(sizeof(psPlane));
@@ -99,4 +104,9 @@
 psPlaneDistort* psPlaneDistortAlloc(psS32 n1, psS32 n2, psS32 n3, psS32 n4)
 {
+    PS_INT_CHECK_NON_NEGATIVE(n1, NULL);
+    PS_INT_CHECK_NON_NEGATIVE(n2, NULL);
+    PS_INT_CHECK_NON_NEGATIVE(n3, NULL);
+    PS_INT_CHECK_NON_NEGATIVE(n4, NULL);
+
     psPlaneDistort *pt = psAlloc(sizeof(psPlaneDistort));
     pt->x = psDPolynomial4DAlloc(n1, n2, n3, n4, PS_POLYNOMIAL_ORD);
@@ -118,5 +128,8 @@
 {
     PS_PTR_CHECK_NULL(transform, NULL);
+    PS_PTR_CHECK_NULL(transform->x, NULL);
+    PS_PTR_CHECK_NULL(transform->y, NULL);
     PS_PTR_CHECK_NULL(coords, NULL);
+
     if (out == NULL) {
         out = (psPlane* ) psAlloc(sizeof(psPlane));
@@ -158,4 +171,5 @@
     PS_PTR_CHECK_NULL(transform, NULL);
     PS_PTR_CHECK_NULL(coord, NULL);
+
     double sinY = 0.0;
     double cosY = 0.0;
@@ -186,4 +200,6 @@
 psSphereTransform* psSphereTransformICRSToEcliptic(psTime time)
 {
+    PS_PTR_CHECK_NULL(&time, NULL);
+
     struct tm *tmTime = psTimeToTM(&time);
     double year = (double)(1900 + tmTime->tm_year);
@@ -199,4 +215,6 @@
 psSphereTransform* psSphereTransformEclipticToICRS(psTime time)
 {
+    PS_PTR_CHECK_NULL(&time, NULL);
+
     struct tm *tmTime = psTimeToTM(&time);
     double year = (double)(1900 + tmTime->tm_year);
@@ -223,5 +241,4 @@
 XXX: Waiting for the definition of the PS_PROJ_PAR projection.
 XXX: Waiting for the definition of the PS_PROJ_GLS projection.
-XXX: get rid of the psAborts
  *****************************************************************************/
 psPlane* psProject(const psSphere* coord,
@@ -261,10 +278,10 @@
 
     } else if (projection->type == PS_PROJ_PAR) {
-        psAbort(__func__, "The projection type PS_PROJ_PAR is undefined.\n");
+        psError(__func__, "The projection type PS_PROJ_PAR is undefined.\n");
 
     } else if (projection->type == PS_PROJ_GLS) {
-        psAbort(__func__, "The projection type PS_PROJ_GLS is undefined.\n");
+        psError(__func__, "The projection type PS_PROJ_GLS is undefined.\n");
     } else {
-        psAbort(__func__, "Unknown projection type.\n");
+        psError(__func__, "Unknown projection type.\n");
     }
 
@@ -275,5 +292,4 @@
 XXX: Waiting for the definition of the PS_PROJ_PAR projection.
 XXX: Waiting for the definition of the PS_PROJ_GLS projection.
-XXX: get rid of the psAborts
  *****************************************************************************/
 psSphere* psDeproject(const psPlane* coord,
@@ -317,10 +333,10 @@
 
     } else if (projection->type == PS_PROJ_PAR) {
-        psAbort(__func__, "The projection type PS_PROJ_PAR is undefined.\n");
+        psError(__func__, "The projection type PS_PROJ_PAR is undefined.\n");
 
     } else if (projection->type == PS_PROJ_GLS) {
-        psAbort(__func__, "The projection type PS_PROJ_GLG is undefined.\n");
+        psError(__func__, "The projection type PS_PROJ_GLG is undefined.\n");
     } else {
-        psAbort(__func__, "Unknown projection type.\n");
+        psError(__func__, "Unknown projection type.\n");
     }
 
@@ -391,10 +407,11 @@
         } else if (unit == PS_RADIAN) {}
         else {
-            psAbort(__func__, "Unknown offset unit: 0x%x\n", unit);
+            psError(__func__, "Unknown offset unit: 0x%x\n", unit);
         }
 
         return (tmp);
     }
-    psAbort(__func__, "Unrecognized offset mode\n");
+
+    psError(__func__, "Unrecognized offset mode\n");
     return (NULL);
 }
@@ -452,5 +469,5 @@
             tmpD = offset->d;
         } else {
-            psAbort(__func__, "Unknown offset unit: 0x%x\n", unit);
+            psError(__func__, "Unknown offset unit: 0x%x\n", unit);
         }
 
@@ -465,5 +482,6 @@
         return (tmp);
     }
-    psAbort(__func__, "Unrecognized offset mode\n");
+
+    psError(__func__, "Unrecognized offset mode\n");
     return (NULL);
 }
Index: /trunk/psLib/src/collections/psHash.c
===================================================================
--- /trunk/psLib/src/collections/psHash.c	(revision 2220)
+++ /trunk/psLib/src/collections/psHash.c	(revision 2221)
@@ -11,6 +11,6 @@
 *  @author George Gusciora, MHPCC
 *
-*  @version $Revision: 1.6 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2004-10-27 00:57:31 $
+*  @version $Revision: 1.7 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2004-10-27 23:31:43 $
 *
 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -24,5 +24,4 @@
 #include "psTrace.h"
 #include "psError.h"
-#include "psAbort.h"
 
 #include "psCollectionsErrors.h"
@@ -250,5 +249,5 @@
     // anyway.
     if ((hash < 0) || (hash >= table->nbucket)) {
-        psAbort(__func__, "Internal hash function out of range (%d)", hash);
+        psError(__func__, "Internal hash function out of range (%d)", hash);
     }
     // ptr will have the correct hash bucket.
Index: /trunk/psLib/src/dataManip/psConstants.h
===================================================================
--- /trunk/psLib/src/dataManip/psConstants.h	(revision 2220)
+++ /trunk/psLib/src/dataManip/psConstants.h	(revision 2221)
@@ -6,6 +6,6 @@
  *  @author GLG, MHPCC
  *
- *  @version $Revision: 1.27 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-10-27 21:55:09 $
+ *  @version $Revision: 1.28 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-10-27 23:31:43 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -103,5 +103,5 @@
 #define PS_VECTOR_CHECK_TYPE_F32_OR_F64(NAME, RVAL) \
 if ((NAME->type.type != PS_TYPE_F32) && (NAME->type.type != PS_TYPE_F64)) { \
-    psAbort(__func__, "psVector %s: bad type(%d)", #NAME, NAME->type.type); \
+    psError(__func__, "psVector %s: bad type(%d)", #NAME, NAME->type.type); \
     return(RVAL); \
 } \
Index: /trunk/psLib/src/dataManip/psFunctions.c
===================================================================
--- /trunk/psLib/src/dataManip/psFunctions.c	(revision 2220)
+++ /trunk/psLib/src/dataManip/psFunctions.c	(revision 2221)
@@ -7,6 +7,6 @@
  *  polynomials.  It also contains a Gaussian functions.
  *
- *  @version $Revision: 1.56 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-10-27 21:25:52 $
+ *  @version $Revision: 1.57 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-10-27 23:31:43 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -32,5 +32,4 @@
 #include "psTrace.h"
 #include "psError.h"
-#include "psAbort.h"
 #include "psLogMsg.h"
 #include "psFunctions.h"
@@ -145,5 +144,5 @@
  Gaussian distribution as well.
  
- NOTE: XXX: There is no way to seed the random generator.
+XXX: There is no way to seed the random generator.
  *****************************************************************************/
 psVector* psGaussianDev(float mean, float sigma, psS32 Npts)
@@ -167,5 +166,5 @@
     }
 
-    // NOTE: Should I free r as well?
+    // XXX: Should I free r, T as well?  This is a memory leak.
     return(gauss);
 }
@@ -426,18 +425,4 @@
     }
 
-
-    if (NULL == myPoly) {
-        psAbort(__func__, "psPolynomial1DEval(): myPoly is NULL\n");
-    }
-
-    // NOTE: Do we want to flag this case?
-    if (myPoly->n == 0) {
-        return(1.0);
-    }
-
-    if (NULL == myPoly->coeff) {
-        psAbort(__func__, "psPolynomial1DEval(): myPoly->coeff is NULL\n");
-    }
-
     for (loop_x = 0; loop_x < myPoly->n; loop_x++) {
         if (myPoly->mask[loop_x] == 0) {
@@ -508,5 +493,5 @@
         return(p_psChebPolynomial1DEval(x, myPoly));
     } else {
-        psAbort(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
+        psError(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
     }
     return(0.0);
@@ -604,5 +589,5 @@
         return(p_psChebPolynomial2DEval(x, y, myPoly));
     } else {
-        psAbort(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
+        psError(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
     }
     return(0.0);
@@ -727,5 +712,5 @@
         return(p_psChebPolynomial3DEval(x, y, z, myPoly));
     } else {
-        psAbort(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
+        psError(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
     }
     return(0.0);
@@ -876,5 +861,5 @@
         return(p_psChebPolynomial4DEval(w,x,y,z, myPoly));
     } else {
-        psAbort(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
+        psError(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
     }
     return(0.0);
@@ -1185,9 +1170,4 @@
     double xSum = 1.0;
 
-    // NOTE: Do we want to flag this case?
-    if (myPoly->n == 0) {
-        return(1.0);
-    }
-
     for (loop_x = 0; loop_x < myPoly->n; loop_x++) {
         if (myPoly->mask[loop_x] == 0) {
@@ -1236,5 +1216,5 @@
         return(p_psDChebPolynomial1DEval(x, myPoly));
     } else {
-        psAbort(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
+        psError(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
     }
     return(0.0);
@@ -1330,5 +1310,5 @@
         return(p_psDChebPolynomial2DEval(x, y, myPoly));
     } else {
-        psAbort(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
+        psError(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
     }
     return(0.0);
@@ -1452,5 +1432,5 @@
         return(p_psDChebPolynomial3DEval(x, y, z, myPoly));
     } else {
-        psAbort(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
+        psError(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
     }
     return(0.0);
@@ -1603,5 +1583,5 @@
         return(p_psDChebPolynomial4DEval(w,x,y,z, myPoly));
     } else {
-        psAbort(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
+        psError(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
     }
     return(0.0);
Index: /trunk/psLib/src/dataManip/psMinimize.c
===================================================================
--- /trunk/psLib/src/dataManip/psMinimize.c	(revision 2220)
+++ /trunk/psLib/src/dataManip/psMinimize.c	(revision 2221)
@@ -9,6 +9,6 @@
  *  @author GLG, MHPCC
  *
- *  @version $Revision: 1.71 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-10-27 21:42:21 $
+ *  @version $Revision: 1.72 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-10-27 23:31:43 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -24,4 +24,8 @@
 /* INCLUDE FILES                                                             */
 /*****************************************************************************/
+#include <stdio.h>
+#include <float.h>
+#include <math.h>
+
 #include "psMinimize.h"
 /*****************************************************************************/
@@ -1213,5 +1217,5 @@
         psFree(tmpc);
         psFree(tmpn);
-        psAbort(__func__, "(1) Could not bracket minimum.");
+        psError(__func__, "(1) Could not bracket minimum.");
     }
 
Index: /trunk/psLib/src/dataManip/psMinimize.h
===================================================================
--- /trunk/psLib/src/dataManip/psMinimize.h	(revision 2220)
+++ /trunk/psLib/src/dataManip/psMinimize.h	(revision 2221)
@@ -8,6 +8,6 @@
  *  @author GLG, MHPCC
  *
- *  @version $Revision: 1.33 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-10-27 01:15:47 $
+ *  @version $Revision: 1.34 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-10-27 23:31:43 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -18,22 +18,4 @@
 #define PS_MINIMIZE_H
 
-#include <stdio.h>
-#include <float.h>
-#include <math.h>
-
-#include "psMemory.h"
-#include "psVector.h"
-#include "psArray.h"
-#include "psImage.h"
-#include "psMatrix.h"
-#include "psFunctions.h"
-#include "psStats.h"
-#include "psTrace.h"
-#include "psLogMsg.h"
-#include "psError.h"
-#include "psAbort.h"
-#include "psConstants.h"
-
-
 /** \file psMinimize.h
  *  \brief minimization operations
@@ -43,4 +25,15 @@
  *  \{
  */
+
+#include "psVector.h"
+#include "psMemory.h"
+#include "psArray.h"
+#include "psImage.h"
+#include "psMatrix.h"
+#include "psFunctions.h"
+#include "psStats.h"
+#include "psTrace.h"
+#include "psError.h"
+#include "psConstants.h"
 
 typedef struct
Index: /trunk/psLib/src/dataManip/psStats.c
===================================================================
--- /trunk/psLib/src/dataManip/psStats.c	(revision 2220)
+++ /trunk/psLib/src/dataManip/psStats.c	(revision 2221)
@@ -9,6 +9,6 @@
  *  @author GLG, MHPCC
  *
- *  @version $Revision: 1.75 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-10-27 21:55:09 $
+ *  @version $Revision: 1.76 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-10-27 23:31:43 $
 n *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -30,5 +30,4 @@
 #include "psTrace.h"
 #include "psError.h"
-#include "psAbort.h"
 #include "psStats.h"
 #include "psMinimize.h"
@@ -743,9 +742,9 @@
     // Endure that stats->clipIter is within the proper range.
     if (!((PS_CLIPPED_NUM_ITER_LB <= stats->clipIter) && (stats->clipIter <= PS_CLIPPED_NUM_ITER_UB))) {
-        psAbort(__func__, "Unallowed value for clipIter (%d).\n", stats->clipIter);
+        psError(__func__, "Unallowed value for clipIter (%d).\n", stats->clipIter);
     }
     // Endure that stats->clipSigma is within the proper range.
     if (!((PS_CLIPPED_SIGMA_LB <= stats->clipSigma) && (stats->clipSigma <= PS_CLIPPED_SIGMA_UB))) {
-        psAbort(__func__, "Unallowed value for clipSigma (%f).\n", stats->clipSigma);
+        psError(__func__, "Unallowed value for clipSigma (%f).\n", stats->clipSigma);
     }
     // We allocate a temporary mask vector since during the iterative
@@ -763,5 +762,5 @@
     }
     // 1. Compute the sample median.
-    // NOTE: This seems odd.  Verify with IfA that we want to calculate the
+    // XXX: This seems odd.  Verify with IfA that we want to calculate the
     // median here, not the mean.
     p_psVectorSampleMedian(myVector, maskVector, maskVal, stats);
@@ -1453,5 +1452,5 @@
     // Calculate the bounds for each bin.
     binSize = (upper - lower) / (float)n;
-    // NOTE: Is the following necessary? It prevents the max data point
+    // XXX: Is the following necessary? It prevents the max data point
     // from being in a non-existant bin.
     binSize += FLT_EPSILON;
@@ -1546,4 +1545,5 @@
     PS_VECTOR_CHECK_TYPE(out->bounds, PS_TYPE_F32, NULL);
     PS_VECTOR_CHECK_TYPE(out->nums, PS_TYPE_U32, NULL);
+    PS_INT_CHECK_NON_NEGATIVE(out->nums->n, NULL);
     PS_VECTOR_CHECK_NULL(in, NULL);
     if (mask != NULL) {
@@ -1567,6 +1567,4 @@
     }
 
-    // NOTE: determine the correct action for a variety of other cases:
-    // in vector has 0 elements, and histogram structure has zero bins.
 
     numBins = out->nums->n;
@@ -1589,6 +1587,6 @@
                     binNum = (psS32)((inF32->data.F32[i] - out->bounds->data.F32[0]) / binSize);
 
-                    // NOTE: This next if-statement really shouldn't be necessary.
-                    // However, do to numerical lack of precision, we occasionally
+                    // XXX: This if-statement really shouldn't be necessary.
+                    // However, due to numerical lack of precision, we occasionally
                     // produce a binNum outside the range of bins.
                     if (binNum >= out->nums->n) {
@@ -1657,5 +1655,5 @@
         // do nothing
     } else {
-        psAbort(__func__, "unsupported vector type 0x%x\n", in->type.type);
+        psError(__func__, "unsupported vector type 0x%x\n", in->type.type);
     }
     return (tmp);
@@ -1674,8 +1672,4 @@
 Returns
     The stats structure.
- 
-NOTE: The current strategy is to implement everything assuming that all
-input data is of type PS_TYPE_F32.  Once the basic code is in place, we will
-macro-ize everything and add PS_TYPE_U16 and PS_TYPE_F64.
  *****************************************************************************/
 psStats* psVectorStats(psStats* stats,
@@ -1712,5 +1706,5 @@
     }
     // ************************************************************************
-    // NOTE: The Stdev calculation requires the mean.  Should we assume the
+    // XXX: The Stdev calculation requires the mean.  Should we assume the
     // mean has already been calculated? Or should we always calculate it?
     if (stats->options & PS_STAT_SAMPLE_STDEV) {
Index: /trunk/psLib/src/math/psConstants.h
===================================================================
--- /trunk/psLib/src/math/psConstants.h	(revision 2220)
+++ /trunk/psLib/src/math/psConstants.h	(revision 2221)
@@ -6,6 +6,6 @@
  *  @author GLG, MHPCC
  *
- *  @version $Revision: 1.27 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-10-27 21:55:09 $
+ *  @version $Revision: 1.28 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-10-27 23:31:43 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -103,5 +103,5 @@
 #define PS_VECTOR_CHECK_TYPE_F32_OR_F64(NAME, RVAL) \
 if ((NAME->type.type != PS_TYPE_F32) && (NAME->type.type != PS_TYPE_F64)) { \
-    psAbort(__func__, "psVector %s: bad type(%d)", #NAME, NAME->type.type); \
+    psError(__func__, "psVector %s: bad type(%d)", #NAME, NAME->type.type); \
     return(RVAL); \
 } \
Index: /trunk/psLib/src/math/psMinimize.c
===================================================================
--- /trunk/psLib/src/math/psMinimize.c	(revision 2220)
+++ /trunk/psLib/src/math/psMinimize.c	(revision 2221)
@@ -9,6 +9,6 @@
  *  @author GLG, MHPCC
  *
- *  @version $Revision: 1.71 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-10-27 21:42:21 $
+ *  @version $Revision: 1.72 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-10-27 23:31:43 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -24,4 +24,8 @@
 /* INCLUDE FILES                                                             */
 /*****************************************************************************/
+#include <stdio.h>
+#include <float.h>
+#include <math.h>
+
 #include "psMinimize.h"
 /*****************************************************************************/
@@ -1213,5 +1217,5 @@
         psFree(tmpc);
         psFree(tmpn);
-        psAbort(__func__, "(1) Could not bracket minimum.");
+        psError(__func__, "(1) Could not bracket minimum.");
     }
 
Index: /trunk/psLib/src/math/psMinimize.h
===================================================================
--- /trunk/psLib/src/math/psMinimize.h	(revision 2220)
+++ /trunk/psLib/src/math/psMinimize.h	(revision 2221)
@@ -8,6 +8,6 @@
  *  @author GLG, MHPCC
  *
- *  @version $Revision: 1.33 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-10-27 01:15:47 $
+ *  @version $Revision: 1.34 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-10-27 23:31:43 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -18,22 +18,4 @@
 #define PS_MINIMIZE_H
 
-#include <stdio.h>
-#include <float.h>
-#include <math.h>
-
-#include "psMemory.h"
-#include "psVector.h"
-#include "psArray.h"
-#include "psImage.h"
-#include "psMatrix.h"
-#include "psFunctions.h"
-#include "psStats.h"
-#include "psTrace.h"
-#include "psLogMsg.h"
-#include "psError.h"
-#include "psAbort.h"
-#include "psConstants.h"
-
-
 /** \file psMinimize.h
  *  \brief minimization operations
@@ -43,4 +25,15 @@
  *  \{
  */
+
+#include "psVector.h"
+#include "psMemory.h"
+#include "psArray.h"
+#include "psImage.h"
+#include "psMatrix.h"
+#include "psFunctions.h"
+#include "psStats.h"
+#include "psTrace.h"
+#include "psError.h"
+#include "psConstants.h"
 
 typedef struct
Index: /trunk/psLib/src/math/psPolynomial.c
===================================================================
--- /trunk/psLib/src/math/psPolynomial.c	(revision 2220)
+++ /trunk/psLib/src/math/psPolynomial.c	(revision 2221)
@@ -7,6 +7,6 @@
  *  polynomials.  It also contains a Gaussian functions.
  *
- *  @version $Revision: 1.56 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-10-27 21:25:52 $
+ *  @version $Revision: 1.57 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-10-27 23:31:43 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -32,5 +32,4 @@
 #include "psTrace.h"
 #include "psError.h"
-#include "psAbort.h"
 #include "psLogMsg.h"
 #include "psFunctions.h"
@@ -145,5 +144,5 @@
  Gaussian distribution as well.
  
- NOTE: XXX: There is no way to seed the random generator.
+XXX: There is no way to seed the random generator.
  *****************************************************************************/
 psVector* psGaussianDev(float mean, float sigma, psS32 Npts)
@@ -167,5 +166,5 @@
     }
 
-    // NOTE: Should I free r as well?
+    // XXX: Should I free r, T as well?  This is a memory leak.
     return(gauss);
 }
@@ -426,18 +425,4 @@
     }
 
-
-    if (NULL == myPoly) {
-        psAbort(__func__, "psPolynomial1DEval(): myPoly is NULL\n");
-    }
-
-    // NOTE: Do we want to flag this case?
-    if (myPoly->n == 0) {
-        return(1.0);
-    }
-
-    if (NULL == myPoly->coeff) {
-        psAbort(__func__, "psPolynomial1DEval(): myPoly->coeff is NULL\n");
-    }
-
     for (loop_x = 0; loop_x < myPoly->n; loop_x++) {
         if (myPoly->mask[loop_x] == 0) {
@@ -508,5 +493,5 @@
         return(p_psChebPolynomial1DEval(x, myPoly));
     } else {
-        psAbort(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
+        psError(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
     }
     return(0.0);
@@ -604,5 +589,5 @@
         return(p_psChebPolynomial2DEval(x, y, myPoly));
     } else {
-        psAbort(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
+        psError(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
     }
     return(0.0);
@@ -727,5 +712,5 @@
         return(p_psChebPolynomial3DEval(x, y, z, myPoly));
     } else {
-        psAbort(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
+        psError(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
     }
     return(0.0);
@@ -876,5 +861,5 @@
         return(p_psChebPolynomial4DEval(w,x,y,z, myPoly));
     } else {
-        psAbort(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
+        psError(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
     }
     return(0.0);
@@ -1185,9 +1170,4 @@
     double xSum = 1.0;
 
-    // NOTE: Do we want to flag this case?
-    if (myPoly->n == 0) {
-        return(1.0);
-    }
-
     for (loop_x = 0; loop_x < myPoly->n; loop_x++) {
         if (myPoly->mask[loop_x] == 0) {
@@ -1236,5 +1216,5 @@
         return(p_psDChebPolynomial1DEval(x, myPoly));
     } else {
-        psAbort(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
+        psError(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
     }
     return(0.0);
@@ -1330,5 +1310,5 @@
         return(p_psDChebPolynomial2DEval(x, y, myPoly));
     } else {
-        psAbort(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
+        psError(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
     }
     return(0.0);
@@ -1452,5 +1432,5 @@
         return(p_psDChebPolynomial3DEval(x, y, z, myPoly));
     } else {
-        psAbort(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
+        psError(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
     }
     return(0.0);
@@ -1603,5 +1583,5 @@
         return(p_psDChebPolynomial4DEval(w,x,y,z, myPoly));
     } else {
-        psAbort(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
+        psError(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
     }
     return(0.0);
Index: /trunk/psLib/src/math/psSpline.c
===================================================================
--- /trunk/psLib/src/math/psSpline.c	(revision 2220)
+++ /trunk/psLib/src/math/psSpline.c	(revision 2221)
@@ -7,6 +7,6 @@
  *  polynomials.  It also contains a Gaussian functions.
  *
- *  @version $Revision: 1.56 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-10-27 21:25:52 $
+ *  @version $Revision: 1.57 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-10-27 23:31:43 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -32,5 +32,4 @@
 #include "psTrace.h"
 #include "psError.h"
-#include "psAbort.h"
 #include "psLogMsg.h"
 #include "psFunctions.h"
@@ -145,5 +144,5 @@
  Gaussian distribution as well.
  
- NOTE: XXX: There is no way to seed the random generator.
+XXX: There is no way to seed the random generator.
  *****************************************************************************/
 psVector* psGaussianDev(float mean, float sigma, psS32 Npts)
@@ -167,5 +166,5 @@
     }
 
-    // NOTE: Should I free r as well?
+    // XXX: Should I free r, T as well?  This is a memory leak.
     return(gauss);
 }
@@ -426,18 +425,4 @@
     }
 
-
-    if (NULL == myPoly) {
-        psAbort(__func__, "psPolynomial1DEval(): myPoly is NULL\n");
-    }
-
-    // NOTE: Do we want to flag this case?
-    if (myPoly->n == 0) {
-        return(1.0);
-    }
-
-    if (NULL == myPoly->coeff) {
-        psAbort(__func__, "psPolynomial1DEval(): myPoly->coeff is NULL\n");
-    }
-
     for (loop_x = 0; loop_x < myPoly->n; loop_x++) {
         if (myPoly->mask[loop_x] == 0) {
@@ -508,5 +493,5 @@
         return(p_psChebPolynomial1DEval(x, myPoly));
     } else {
-        psAbort(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
+        psError(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
     }
     return(0.0);
@@ -604,5 +589,5 @@
         return(p_psChebPolynomial2DEval(x, y, myPoly));
     } else {
-        psAbort(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
+        psError(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
     }
     return(0.0);
@@ -727,5 +712,5 @@
         return(p_psChebPolynomial3DEval(x, y, z, myPoly));
     } else {
-        psAbort(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
+        psError(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
     }
     return(0.0);
@@ -876,5 +861,5 @@
         return(p_psChebPolynomial4DEval(w,x,y,z, myPoly));
     } else {
-        psAbort(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
+        psError(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
     }
     return(0.0);
@@ -1185,9 +1170,4 @@
     double xSum = 1.0;
 
-    // NOTE: Do we want to flag this case?
-    if (myPoly->n == 0) {
-        return(1.0);
-    }
-
     for (loop_x = 0; loop_x < myPoly->n; loop_x++) {
         if (myPoly->mask[loop_x] == 0) {
@@ -1236,5 +1216,5 @@
         return(p_psDChebPolynomial1DEval(x, myPoly));
     } else {
-        psAbort(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
+        psError(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
     }
     return(0.0);
@@ -1330,5 +1310,5 @@
         return(p_psDChebPolynomial2DEval(x, y, myPoly));
     } else {
-        psAbort(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
+        psError(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
     }
     return(0.0);
@@ -1452,5 +1432,5 @@
         return(p_psDChebPolynomial3DEval(x, y, z, myPoly));
     } else {
-        psAbort(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
+        psError(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
     }
     return(0.0);
@@ -1603,5 +1583,5 @@
         return(p_psDChebPolynomial4DEval(w,x,y,z, myPoly));
     } else {
-        psAbort(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
+        psError(__func__, "Unknown polynomial type 0x%x\n", myPoly->type);
     }
     return(0.0);
Index: /trunk/psLib/src/math/psStats.c
===================================================================
--- /trunk/psLib/src/math/psStats.c	(revision 2220)
+++ /trunk/psLib/src/math/psStats.c	(revision 2221)
@@ -9,6 +9,6 @@
  *  @author GLG, MHPCC
  *
- *  @version $Revision: 1.75 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-10-27 21:55:09 $
+ *  @version $Revision: 1.76 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-10-27 23:31:43 $
 n *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -30,5 +30,4 @@
 #include "psTrace.h"
 #include "psError.h"
-#include "psAbort.h"
 #include "psStats.h"
 #include "psMinimize.h"
@@ -743,9 +742,9 @@
     // Endure that stats->clipIter is within the proper range.
     if (!((PS_CLIPPED_NUM_ITER_LB <= stats->clipIter) && (stats->clipIter <= PS_CLIPPED_NUM_ITER_UB))) {
-        psAbort(__func__, "Unallowed value for clipIter (%d).\n", stats->clipIter);
+        psError(__func__, "Unallowed value for clipIter (%d).\n", stats->clipIter);
     }
     // Endure that stats->clipSigma is within the proper range.
     if (!((PS_CLIPPED_SIGMA_LB <= stats->clipSigma) && (stats->clipSigma <= PS_CLIPPED_SIGMA_UB))) {
-        psAbort(__func__, "Unallowed value for clipSigma (%f).\n", stats->clipSigma);
+        psError(__func__, "Unallowed value for clipSigma (%f).\n", stats->clipSigma);
     }
     // We allocate a temporary mask vector since during the iterative
@@ -763,5 +762,5 @@
     }
     // 1. Compute the sample median.
-    // NOTE: This seems odd.  Verify with IfA that we want to calculate the
+    // XXX: This seems odd.  Verify with IfA that we want to calculate the
     // median here, not the mean.
     p_psVectorSampleMedian(myVector, maskVector, maskVal, stats);
@@ -1453,5 +1452,5 @@
     // Calculate the bounds for each bin.
     binSize = (upper - lower) / (float)n;
-    // NOTE: Is the following necessary? It prevents the max data point
+    // XXX: Is the following necessary? It prevents the max data point
     // from being in a non-existant bin.
     binSize += FLT_EPSILON;
@@ -1546,4 +1545,5 @@
     PS_VECTOR_CHECK_TYPE(out->bounds, PS_TYPE_F32, NULL);
     PS_VECTOR_CHECK_TYPE(out->nums, PS_TYPE_U32, NULL);
+    PS_INT_CHECK_NON_NEGATIVE(out->nums->n, NULL);
     PS_VECTOR_CHECK_NULL(in, NULL);
     if (mask != NULL) {
@@ -1567,6 +1567,4 @@
     }
 
-    // NOTE: determine the correct action for a variety of other cases:
-    // in vector has 0 elements, and histogram structure has zero bins.
 
     numBins = out->nums->n;
@@ -1589,6 +1587,6 @@
                     binNum = (psS32)((inF32->data.F32[i] - out->bounds->data.F32[0]) / binSize);
 
-                    // NOTE: This next if-statement really shouldn't be necessary.
-                    // However, do to numerical lack of precision, we occasionally
+                    // XXX: This if-statement really shouldn't be necessary.
+                    // However, due to numerical lack of precision, we occasionally
                     // produce a binNum outside the range of bins.
                     if (binNum >= out->nums->n) {
@@ -1657,5 +1655,5 @@
         // do nothing
     } else {
-        psAbort(__func__, "unsupported vector type 0x%x\n", in->type.type);
+        psError(__func__, "unsupported vector type 0x%x\n", in->type.type);
     }
     return (tmp);
@@ -1674,8 +1672,4 @@
 Returns
     The stats structure.
- 
-NOTE: The current strategy is to implement everything assuming that all
-input data is of type PS_TYPE_F32.  Once the basic code is in place, we will
-macro-ize everything and add PS_TYPE_U16 and PS_TYPE_F64.
  *****************************************************************************/
 psStats* psVectorStats(psStats* stats,
@@ -1712,5 +1706,5 @@
     }
     // ************************************************************************
-    // NOTE: The Stdev calculation requires the mean.  Should we assume the
+    // XXX: The Stdev calculation requires the mean.  Should we assume the
     // mean has already been calculated? Or should we always calculate it?
     if (stats->options & PS_STAT_SAMPLE_STDEV) {
Index: /trunk/psLib/src/sys/psTrace.c
===================================================================
--- /trunk/psLib/src/sys/psTrace.c	(revision 2220)
+++ /trunk/psLib/src/sys/psTrace.c	(revision 2221)
@@ -9,6 +9,6 @@
  *  @author George Gusciora, MHPCC
  *
- *  @version $Revision: 1.36 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-10-27 00:57:31 $
+ *  @version $Revision: 1.37 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-10-27 23:31:44 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -71,4 +71,5 @@
     comp->level = level;
     comp->n = 0;
+    comp->p_psSpecified = false;
     comp->subcomp = NULL;
     return comp;
@@ -267,4 +268,5 @@
                    level,
                    compName);
+
         if (comp[0] != '.') {
             psFree(compName);
Index: /trunk/psLib/src/sys/psTrace.h
===================================================================
--- /trunk/psLib/src/sys/psTrace.h	(revision 2220)
+++ /trunk/psLib/src/sys/psTrace.h	(revision 2221)
@@ -9,6 +9,6 @@
  *  @author GLG, MHPCC
  *
- *  @version $Revision: 1.25 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-10-27 00:57:31 $
+ *  @version $Revision: 1.26 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-10-27 23:31:44 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -18,5 +18,5 @@
 
 #define PS_UNKNOWN_TRACE_LEVEL -9999   // we don't know this name's level
-#define PS_DEFAULT_TRACE_LEVEL -1
+#define PS_DEFAULT_TRACE_LEVEL 0
 
 /** \addtogroup LogTrace
@@ -51,4 +51,5 @@
         const char *name;           // last part of name of component
         psS32 level;                  // trace level for this component
+        bool p_psSpecified;
         psS32 n;                      // number of subcomponents
         struct p_psComponent* *subcomp;     // next level of subcomponents
Index: /trunk/psLib/src/sysUtils/psTrace.c
===================================================================
--- /trunk/psLib/src/sysUtils/psTrace.c	(revision 2220)
+++ /trunk/psLib/src/sysUtils/psTrace.c	(revision 2221)
@@ -9,6 +9,6 @@
  *  @author George Gusciora, MHPCC
  *
- *  @version $Revision: 1.36 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-10-27 00:57:31 $
+ *  @version $Revision: 1.37 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-10-27 23:31:44 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -71,4 +71,5 @@
     comp->level = level;
     comp->n = 0;
+    comp->p_psSpecified = false;
     comp->subcomp = NULL;
     return comp;
@@ -267,4 +268,5 @@
                    level,
                    compName);
+
         if (comp[0] != '.') {
             psFree(compName);
Index: /trunk/psLib/src/sysUtils/psTrace.h
===================================================================
--- /trunk/psLib/src/sysUtils/psTrace.h	(revision 2220)
+++ /trunk/psLib/src/sysUtils/psTrace.h	(revision 2221)
@@ -9,6 +9,6 @@
  *  @author GLG, MHPCC
  *
- *  @version $Revision: 1.25 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-10-27 00:57:31 $
+ *  @version $Revision: 1.26 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-10-27 23:31:44 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -18,5 +18,5 @@
 
 #define PS_UNKNOWN_TRACE_LEVEL -9999   // we don't know this name's level
-#define PS_DEFAULT_TRACE_LEVEL -1
+#define PS_DEFAULT_TRACE_LEVEL 0
 
 /** \addtogroup LogTrace
@@ -51,4 +51,5 @@
         const char *name;           // last part of name of component
         psS32 level;                  // trace level for this component
+        bool p_psSpecified;
         psS32 n;                      // number of subcomponents
         struct p_psComponent* *subcomp;     // next level of subcomponents
Index: /trunk/psLib/src/types/psHash.c
===================================================================
--- /trunk/psLib/src/types/psHash.c	(revision 2220)
+++ /trunk/psLib/src/types/psHash.c	(revision 2221)
@@ -11,6 +11,6 @@
 *  @author George Gusciora, MHPCC
 *
-*  @version $Revision: 1.6 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2004-10-27 00:57:31 $
+*  @version $Revision: 1.7 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2004-10-27 23:31:43 $
 *
 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -24,5 +24,4 @@
 #include "psTrace.h"
 #include "psError.h"
-#include "psAbort.h"
 
 #include "psCollectionsErrors.h"
@@ -250,5 +249,5 @@
     // anyway.
     if ((hash < 0) || (hash >= table->nbucket)) {
-        psAbort(__func__, "Internal hash function out of range (%d)", hash);
+        psError(__func__, "Internal hash function out of range (%d)", hash);
     }
     // ptr will have the correct hash bucket.
