Index: /trunk/psLib/src/collections/psArray.c
===================================================================
--- /trunk/psLib/src/collections/psArray.c	(revision 501)
+++ /trunk/psLib/src/collections/psArray.c	(revision 502)
@@ -3,11 +3,11 @@
  *  @brief Contains support for array types
  *
- *  The type of basic one dimensional arrays are defined here include: int, float, double, complex float, and
- *  void *.
+ *  This file defines basic types of one dimensional arrays which include: int, float, double, complex float, and
+ *  void **.
  *
  *  @author Ross Harman, MHPCC
  *   
- *  @version $Revision: 1.5 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-04-21 21:05:39 $
+ *  @version $Revision: 1.6 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-04-22 21:15:01 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -48,17 +48,31 @@
 /*****************************************************************************/
 
+static void* p_psArrayAlloc(psType *arrType, psElemType elemType, int nalloc, int elemSize)
+{
+    void *arr = NULL;
+
+    arrType->dimen = PS_DIMEN_VECTOR;
+    arrType->type = elemType;
+
+    if(nalloc != 0) {
+        arr = psAlloc(nalloc*sizeof(elemSize));
+    }
+
+    return arr;
+}
+
 static psVoidPtrArray *p_psVoidPtrArrayRealloc(psVoidPtrArray *restrict psArr, int nalloc)
 {
-    if(psArr == NULL) {
-        return psVoidPtrArrayAlloc(nalloc);
-    }
-    if(nalloc <= psArr->nalloc) {
-        if (psArr->n < nalloc) {
-            psArr->n = nalloc;
-        }
-    } else {
-        psArr->arr = p_psRealloc(psArr->arr, nalloc*sizeof(void*), __FILE__, __LINE__);
-        psArr->nalloc = nalloc;
-    }
+    if(nalloc < psArr->n) {                                         // For decrease in psArray size
+        psArr->n = nalloc;
+        psArr->nalloc = nalloc;
+        psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(void*));   // For increase in psArray size
+    } else if(nalloc > psArr->nalloc) {
+        psArr->nalloc = nalloc;
+        psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(void*));
+    } else if(psArr == NULL) {                                      // For creating new psArray with realloc
+        psArr = psVoidPtrArrayAlloc(nalloc);
+    }
+
     return psArr;
 }
@@ -69,6 +83,6 @@
         return;
     }
-    p_psFree(psArr->arr, __FILE__, __LINE__);
-    p_psFree(psArr, __FILE__, __LINE__);
+    psFree(psArr->arr);
+    psFree(psArr);
 }
 
@@ -79,15 +93,9 @@
 psIntArray* psIntArrayAlloc(int nalloc)
 {
-    psIntArray *psArr = (psIntArray*)p_psAlloc(sizeof(psIntArray), __FILE__, __LINE__);
-    psArr->type.dimen = PS_DIMEN_VECTOR;
-    psArr->type.type = PS_TYPE_INT;
-    psArr->nalloc = nalloc;
-    psArr->n = 0;
-
-    if(nalloc == 0) {
-        psArr->arr = NULL;
-    } else {
-        psArr->arr = p_psAlloc(nalloc*sizeof(int), __FILE__, __LINE__);
-    }
+    psIntArray *psArr = NULL;
+    psArr = (psIntArray*)psAlloc(sizeof(psIntArray));
+    psArr->nalloc = nalloc;
+    psArr->n = 0;
+    psArr->arr = (int*)p_psArrayAlloc(&psArr->type, PS_TYPE_INT, nalloc, sizeof(int));
 
     return psArr;
@@ -96,15 +104,15 @@
 psIntArray *psIntArrayRealloc(psIntArray *psArr, int nalloc)
 {
-    if(psArr == NULL) {
-        return psIntArrayAlloc(nalloc);
-    }
-    if(nalloc <= psArr->nalloc) {
-        if (psArr->n < nalloc) {
-            psArr->n = nalloc;
-        }
-    } else {
-        psArr->arr = p_psRealloc(psArr->arr, nalloc*sizeof(int), __FILE__, __LINE__);
-        psArr->nalloc = nalloc;
-    }
+    if(nalloc < psArr->n) {                                         // For decrease in psArray size
+        psArr->n = nalloc;
+        psArr->nalloc = nalloc;
+        psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(int));     // For increase in psArray size
+    } else if(nalloc > psArr->nalloc) {
+        psArr->nalloc = nalloc;
+        psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(int));
+    } else if(psArr == NULL) {                                      // For creating new psArray with realloc
+        psArr = psIntArrayAlloc(nalloc);
+    }
+
     return psArr;
 }
@@ -115,21 +123,16 @@
         return;
     }
-    p_psFree(psArr->arr, __FILE__, __LINE__);
-    p_psFree(psArr, __FILE__, __LINE__);
+
+    psFree(psArr->arr);
+    psFree(psArr);
 }
 
 psFloatArray* psFloatArrayAlloc(int nalloc)
 {
-    psFloatArray *psArr = (psFloatArray*)p_psAlloc(sizeof(psFloatArray), __FILE__, __LINE__);
-    psArr->type.dimen = PS_DIMEN_VECTOR;
-    psArr->type.type = PS_TYPE_FLOAT;
-    psArr->nalloc = nalloc;
-    psArr->n = 0;
-
-    if(nalloc == 0) {
-        psArr->arr = NULL;
-    } else {
-        psArr->arr = p_psAlloc(nalloc*sizeof(float), __FILE__, __LINE__);
-    }
+    psFloatArray *psArr = NULL;
+    psArr = (psFloatArray*)psAlloc(sizeof(psFloatArray));
+    psArr->nalloc = nalloc;
+    psArr->n = 0;
+    psArr->arr = (float*)p_psArrayAlloc(&psArr->type, PS_TYPE_FLOAT, nalloc, sizeof(float));
 
     return psArr;
@@ -138,15 +141,15 @@
 psFloatArray *psFloatArrayRealloc(psFloatArray *psArr, int nalloc)
 {
-    if(psArr == NULL) {
-        return psFloatArrayAlloc(nalloc);
-    }
-    if(nalloc <= psArr->nalloc) {
-        if (psArr->n < nalloc) {
-            psArr->n = nalloc;
-        }
-    } else {
-        psArr->arr = p_psRealloc(psArr->arr, nalloc*sizeof(float), __FILE__, __LINE__);
-        psArr->nalloc = nalloc;
-    }
+    if(nalloc < psArr->n) {                                         // For decrease in psArray size
+        psArr->n = nalloc;
+        psArr->nalloc = nalloc;
+        psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(float));   // For increase in psArray size
+    } else if(nalloc > psArr->nalloc) {
+        psArr->nalloc = nalloc;
+        psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(float));
+    } else if(psArr == NULL) {                                      // For creating new psArray with realloc
+        psArr = psFloatArrayAlloc(nalloc);
+    }
+
     return psArr;
 }
@@ -157,21 +160,15 @@
         return;
     }
-    p_psFree(psArr->arr, __FILE__, __LINE__);
-    p_psFree(psArr, __FILE__, __LINE__);
+    psFree(psArr->arr);
+    psFree(psArr);
 }
 
 psDoubleArray* psDoubleArrayAlloc(int nalloc)
 {
-    psDoubleArray *psArr = (psDoubleArray*)p_psAlloc(sizeof(psDoubleArray), __FILE__, __LINE__);
-    psArr->type.dimen = PS_DIMEN_VECTOR;
-    psArr->type.type = PS_TYPE_DOUBLE;
-    psArr->nalloc = nalloc;
-    psArr->n = 0;
-
-    if(nalloc == 0) {
-        psArr->arr = NULL;
-    } else {
-        psArr->arr = p_psAlloc(nalloc*sizeof(double), __FILE__, __LINE__);
-    }
+    psDoubleArray *psArr = NULL;
+    psArr = (psDoubleArray*)psAlloc(sizeof(psDoubleArray));
+    psArr->nalloc = nalloc;
+    psArr->n = 0;
+    psArr->arr = (double*)p_psArrayAlloc(&psArr->type, PS_TYPE_DOUBLE, nalloc, sizeof(double));
 
     return psArr;
@@ -180,15 +177,15 @@
 psDoubleArray *psDoubleArrayRealloc(psDoubleArray *psArr, int nalloc)
 {
-    if(psArr == NULL) {
-        return psDoubleArrayAlloc(nalloc);
-    }
-    if(nalloc <= psArr->nalloc) {
-        if (psArr->n < nalloc) {
-            psArr->n = nalloc;
-        }
-    } else {
-        psArr->arr = p_psRealloc(psArr->arr, nalloc*sizeof(double), __FILE__, __LINE__);
-        psArr->nalloc = nalloc;
-    }
+    if(nalloc < psArr->n) {                                         // For decrease in psArray size
+        psArr->n = nalloc;
+        psArr->nalloc = nalloc;
+        psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(double));  // For increase in psArray size
+    } else if(nalloc > psArr->nalloc) {
+        psArr->nalloc = nalloc;
+        psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(double));
+    } else if(psArr == NULL) {                                      // For creating new psArray with realloc
+        psArr = psDoubleArrayAlloc(nalloc);
+    }
+
     return psArr;
 }
@@ -199,21 +196,15 @@
         return;
     }
-    p_psFree(psArr->arr, __FILE__, __LINE__);
-    p_psFree(psArr, __FILE__, __LINE__);
+    psFree(psArr->arr);
+    psFree(psArr);
 }
 
 psComplexArray* psComplexArrayAlloc(int nalloc)
 {
-    psComplexArray *psArr = (psComplexArray*)p_psAlloc(sizeof(psComplexArray), __FILE__, __LINE__);
-    psArr->type.dimen = PS_DIMEN_VECTOR;
-    psArr->type.type = PS_TYPE_COMPLEX;
-    psArr->nalloc = nalloc;
-    psArr->n = 0;
-
-    if(nalloc == 0) {
-        psArr->arr = NULL;
-    } else {
-        psArr->arr = p_psAlloc(nalloc*sizeof(complex float), __FILE__, __LINE__);
-    }
+    psComplexArray *psArr = NULL;
+    psArr = (psComplexArray*)psAlloc(sizeof(psComplexArray));
+    psArr->nalloc = nalloc;
+    psArr->n = 0;
+    psArr->arr = (complex float*)p_psArrayAlloc(&psArr->type, PS_TYPE_COMPLEX, nalloc, sizeof(complex float));
 
     return psArr;
@@ -222,15 +213,15 @@
 psComplexArray *psComplexArrayRealloc(psComplexArray *psArr, int nalloc)
 {
-    if(psArr == NULL) {
-        return psComplexArrayAlloc(nalloc);
-    }
-    if(nalloc <= psArr->nalloc) {
-        if (psArr->n < nalloc) {
-            psArr->n = nalloc;
-        }
-    } else {
-        psArr->arr = p_psRealloc(psArr->arr, nalloc*sizeof(complex float), __FILE__, __LINE__);
-        psArr->nalloc = nalloc;
-    }
+    if(nalloc < psArr->n) {                                                 // For decrease in psArray size
+        psArr->n = nalloc;
+        psArr->nalloc = nalloc;
+        psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(complex float));   // For increase in psArray size
+    } else if(nalloc > psArr->nalloc) {
+        psArr->nalloc = nalloc;
+        psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(complex float));
+    } else if(psArr == NULL) {                                              // For creating new psArray with realloc
+        psArr = psComplexArrayAlloc(nalloc);
+    }
+
     return psArr;
 }
@@ -241,21 +232,15 @@
         return;
     }
-    p_psFree(psArr->arr, __FILE__, __LINE__);
-    p_psFree(psArr, __FILE__, __LINE__);
+    psFree(psArr->arr);
+    psFree(psArr);
 }
 
 psVoidPtrArray* psVoidPtrArrayAlloc(int nalloc)
 {
-    psVoidPtrArray *psArr = (psVoidPtrArray*)p_psAlloc(sizeof(psVoidPtrArray), __FILE__, __LINE__);
-    psArr->type.dimen = PS_DIMEN_VECTOR;
-    psArr->type.type = PS_TYPE_OTHER;
-    psArr->nalloc = nalloc;
-    psArr->n = 0;
-
-    if(nalloc == 0) {
-        psArr->arr = NULL;
-    } else {
-        psArr->arr = p_psAlloc(nalloc*sizeof(void*), __FILE__, __LINE__);
-    }
+    psVoidPtrArray *psArr = NULL;
+    psArr = (psVoidPtrArray*)psAlloc(sizeof(psVoidPtrArray));
+    psArr->nalloc = nalloc;
+    psArr->n = 0;
+    psArr->arr = (void*)p_psArrayAlloc(&psArr->type, PS_TYPE_OTHER, nalloc, sizeof(void*));
 
     return psArr;
Index: /trunk/psLib/src/collections/psArray.h
===================================================================
--- /trunk/psLib/src/collections/psArray.h	(revision 501)
+++ /trunk/psLib/src/collections/psArray.h	(revision 502)
@@ -3,11 +3,11 @@
  *  @brief Contains support for basic array types
  *
- *  The types of basic one dimensional arrays defined include: int, float, double, complex float, and
- *  void *.
+ *  This file defines basic types of one dimensional arrays which include: int, float, double, complex float, and
+ *  void **.
  *
  *  @author Ross Harman, MHPCC
  *   
- *  @version $Revision: 1.5 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-04-21 21:05:39 $
+ *  @version $Revision: 1.6 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-04-22 21:15:01 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
Index: /trunk/psLib/src/types/psArray.c
===================================================================
--- /trunk/psLib/src/types/psArray.c	(revision 501)
+++ /trunk/psLib/src/types/psArray.c	(revision 502)
@@ -3,11 +3,11 @@
  *  @brief Contains support for array types
  *
- *  The type of basic one dimensional arrays are defined here include: int, float, double, complex float, and
- *  void *.
+ *  This file defines basic types of one dimensional arrays which include: int, float, double, complex float, and
+ *  void **.
  *
  *  @author Ross Harman, MHPCC
  *   
- *  @version $Revision: 1.5 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-04-21 21:05:39 $
+ *  @version $Revision: 1.6 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-04-22 21:15:01 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -48,17 +48,31 @@
 /*****************************************************************************/
 
+static void* p_psArrayAlloc(psType *arrType, psElemType elemType, int nalloc, int elemSize)
+{
+    void *arr = NULL;
+
+    arrType->dimen = PS_DIMEN_VECTOR;
+    arrType->type = elemType;
+
+    if(nalloc != 0) {
+        arr = psAlloc(nalloc*sizeof(elemSize));
+    }
+
+    return arr;
+}
+
 static psVoidPtrArray *p_psVoidPtrArrayRealloc(psVoidPtrArray *restrict psArr, int nalloc)
 {
-    if(psArr == NULL) {
-        return psVoidPtrArrayAlloc(nalloc);
-    }
-    if(nalloc <= psArr->nalloc) {
-        if (psArr->n < nalloc) {
-            psArr->n = nalloc;
-        }
-    } else {
-        psArr->arr = p_psRealloc(psArr->arr, nalloc*sizeof(void*), __FILE__, __LINE__);
-        psArr->nalloc = nalloc;
-    }
+    if(nalloc < psArr->n) {                                         // For decrease in psArray size
+        psArr->n = nalloc;
+        psArr->nalloc = nalloc;
+        psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(void*));   // For increase in psArray size
+    } else if(nalloc > psArr->nalloc) {
+        psArr->nalloc = nalloc;
+        psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(void*));
+    } else if(psArr == NULL) {                                      // For creating new psArray with realloc
+        psArr = psVoidPtrArrayAlloc(nalloc);
+    }
+
     return psArr;
 }
@@ -69,6 +83,6 @@
         return;
     }
-    p_psFree(psArr->arr, __FILE__, __LINE__);
-    p_psFree(psArr, __FILE__, __LINE__);
+    psFree(psArr->arr);
+    psFree(psArr);
 }
 
@@ -79,15 +93,9 @@
 psIntArray* psIntArrayAlloc(int nalloc)
 {
-    psIntArray *psArr = (psIntArray*)p_psAlloc(sizeof(psIntArray), __FILE__, __LINE__);
-    psArr->type.dimen = PS_DIMEN_VECTOR;
-    psArr->type.type = PS_TYPE_INT;
-    psArr->nalloc = nalloc;
-    psArr->n = 0;
-
-    if(nalloc == 0) {
-        psArr->arr = NULL;
-    } else {
-        psArr->arr = p_psAlloc(nalloc*sizeof(int), __FILE__, __LINE__);
-    }
+    psIntArray *psArr = NULL;
+    psArr = (psIntArray*)psAlloc(sizeof(psIntArray));
+    psArr->nalloc = nalloc;
+    psArr->n = 0;
+    psArr->arr = (int*)p_psArrayAlloc(&psArr->type, PS_TYPE_INT, nalloc, sizeof(int));
 
     return psArr;
@@ -96,15 +104,15 @@
 psIntArray *psIntArrayRealloc(psIntArray *psArr, int nalloc)
 {
-    if(psArr == NULL) {
-        return psIntArrayAlloc(nalloc);
-    }
-    if(nalloc <= psArr->nalloc) {
-        if (psArr->n < nalloc) {
-            psArr->n = nalloc;
-        }
-    } else {
-        psArr->arr = p_psRealloc(psArr->arr, nalloc*sizeof(int), __FILE__, __LINE__);
-        psArr->nalloc = nalloc;
-    }
+    if(nalloc < psArr->n) {                                         // For decrease in psArray size
+        psArr->n = nalloc;
+        psArr->nalloc = nalloc;
+        psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(int));     // For increase in psArray size
+    } else if(nalloc > psArr->nalloc) {
+        psArr->nalloc = nalloc;
+        psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(int));
+    } else if(psArr == NULL) {                                      // For creating new psArray with realloc
+        psArr = psIntArrayAlloc(nalloc);
+    }
+
     return psArr;
 }
@@ -115,21 +123,16 @@
         return;
     }
-    p_psFree(psArr->arr, __FILE__, __LINE__);
-    p_psFree(psArr, __FILE__, __LINE__);
+
+    psFree(psArr->arr);
+    psFree(psArr);
 }
 
 psFloatArray* psFloatArrayAlloc(int nalloc)
 {
-    psFloatArray *psArr = (psFloatArray*)p_psAlloc(sizeof(psFloatArray), __FILE__, __LINE__);
-    psArr->type.dimen = PS_DIMEN_VECTOR;
-    psArr->type.type = PS_TYPE_FLOAT;
-    psArr->nalloc = nalloc;
-    psArr->n = 0;
-
-    if(nalloc == 0) {
-        psArr->arr = NULL;
-    } else {
-        psArr->arr = p_psAlloc(nalloc*sizeof(float), __FILE__, __LINE__);
-    }
+    psFloatArray *psArr = NULL;
+    psArr = (psFloatArray*)psAlloc(sizeof(psFloatArray));
+    psArr->nalloc = nalloc;
+    psArr->n = 0;
+    psArr->arr = (float*)p_psArrayAlloc(&psArr->type, PS_TYPE_FLOAT, nalloc, sizeof(float));
 
     return psArr;
@@ -138,15 +141,15 @@
 psFloatArray *psFloatArrayRealloc(psFloatArray *psArr, int nalloc)
 {
-    if(psArr == NULL) {
-        return psFloatArrayAlloc(nalloc);
-    }
-    if(nalloc <= psArr->nalloc) {
-        if (psArr->n < nalloc) {
-            psArr->n = nalloc;
-        }
-    } else {
-        psArr->arr = p_psRealloc(psArr->arr, nalloc*sizeof(float), __FILE__, __LINE__);
-        psArr->nalloc = nalloc;
-    }
+    if(nalloc < psArr->n) {                                         // For decrease in psArray size
+        psArr->n = nalloc;
+        psArr->nalloc = nalloc;
+        psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(float));   // For increase in psArray size
+    } else if(nalloc > psArr->nalloc) {
+        psArr->nalloc = nalloc;
+        psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(float));
+    } else if(psArr == NULL) {                                      // For creating new psArray with realloc
+        psArr = psFloatArrayAlloc(nalloc);
+    }
+
     return psArr;
 }
@@ -157,21 +160,15 @@
         return;
     }
-    p_psFree(psArr->arr, __FILE__, __LINE__);
-    p_psFree(psArr, __FILE__, __LINE__);
+    psFree(psArr->arr);
+    psFree(psArr);
 }
 
 psDoubleArray* psDoubleArrayAlloc(int nalloc)
 {
-    psDoubleArray *psArr = (psDoubleArray*)p_psAlloc(sizeof(psDoubleArray), __FILE__, __LINE__);
-    psArr->type.dimen = PS_DIMEN_VECTOR;
-    psArr->type.type = PS_TYPE_DOUBLE;
-    psArr->nalloc = nalloc;
-    psArr->n = 0;
-
-    if(nalloc == 0) {
-        psArr->arr = NULL;
-    } else {
-        psArr->arr = p_psAlloc(nalloc*sizeof(double), __FILE__, __LINE__);
-    }
+    psDoubleArray *psArr = NULL;
+    psArr = (psDoubleArray*)psAlloc(sizeof(psDoubleArray));
+    psArr->nalloc = nalloc;
+    psArr->n = 0;
+    psArr->arr = (double*)p_psArrayAlloc(&psArr->type, PS_TYPE_DOUBLE, nalloc, sizeof(double));
 
     return psArr;
@@ -180,15 +177,15 @@
 psDoubleArray *psDoubleArrayRealloc(psDoubleArray *psArr, int nalloc)
 {
-    if(psArr == NULL) {
-        return psDoubleArrayAlloc(nalloc);
-    }
-    if(nalloc <= psArr->nalloc) {
-        if (psArr->n < nalloc) {
-            psArr->n = nalloc;
-        }
-    } else {
-        psArr->arr = p_psRealloc(psArr->arr, nalloc*sizeof(double), __FILE__, __LINE__);
-        psArr->nalloc = nalloc;
-    }
+    if(nalloc < psArr->n) {                                         // For decrease in psArray size
+        psArr->n = nalloc;
+        psArr->nalloc = nalloc;
+        psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(double));  // For increase in psArray size
+    } else if(nalloc > psArr->nalloc) {
+        psArr->nalloc = nalloc;
+        psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(double));
+    } else if(psArr == NULL) {                                      // For creating new psArray with realloc
+        psArr = psDoubleArrayAlloc(nalloc);
+    }
+
     return psArr;
 }
@@ -199,21 +196,15 @@
         return;
     }
-    p_psFree(psArr->arr, __FILE__, __LINE__);
-    p_psFree(psArr, __FILE__, __LINE__);
+    psFree(psArr->arr);
+    psFree(psArr);
 }
 
 psComplexArray* psComplexArrayAlloc(int nalloc)
 {
-    psComplexArray *psArr = (psComplexArray*)p_psAlloc(sizeof(psComplexArray), __FILE__, __LINE__);
-    psArr->type.dimen = PS_DIMEN_VECTOR;
-    psArr->type.type = PS_TYPE_COMPLEX;
-    psArr->nalloc = nalloc;
-    psArr->n = 0;
-
-    if(nalloc == 0) {
-        psArr->arr = NULL;
-    } else {
-        psArr->arr = p_psAlloc(nalloc*sizeof(complex float), __FILE__, __LINE__);
-    }
+    psComplexArray *psArr = NULL;
+    psArr = (psComplexArray*)psAlloc(sizeof(psComplexArray));
+    psArr->nalloc = nalloc;
+    psArr->n = 0;
+    psArr->arr = (complex float*)p_psArrayAlloc(&psArr->type, PS_TYPE_COMPLEX, nalloc, sizeof(complex float));
 
     return psArr;
@@ -222,15 +213,15 @@
 psComplexArray *psComplexArrayRealloc(psComplexArray *psArr, int nalloc)
 {
-    if(psArr == NULL) {
-        return psComplexArrayAlloc(nalloc);
-    }
-    if(nalloc <= psArr->nalloc) {
-        if (psArr->n < nalloc) {
-            psArr->n = nalloc;
-        }
-    } else {
-        psArr->arr = p_psRealloc(psArr->arr, nalloc*sizeof(complex float), __FILE__, __LINE__);
-        psArr->nalloc = nalloc;
-    }
+    if(nalloc < psArr->n) {                                                 // For decrease in psArray size
+        psArr->n = nalloc;
+        psArr->nalloc = nalloc;
+        psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(complex float));   // For increase in psArray size
+    } else if(nalloc > psArr->nalloc) {
+        psArr->nalloc = nalloc;
+        psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(complex float));
+    } else if(psArr == NULL) {                                              // For creating new psArray with realloc
+        psArr = psComplexArrayAlloc(nalloc);
+    }
+
     return psArr;
 }
@@ -241,21 +232,15 @@
         return;
     }
-    p_psFree(psArr->arr, __FILE__, __LINE__);
-    p_psFree(psArr, __FILE__, __LINE__);
+    psFree(psArr->arr);
+    psFree(psArr);
 }
 
 psVoidPtrArray* psVoidPtrArrayAlloc(int nalloc)
 {
-    psVoidPtrArray *psArr = (psVoidPtrArray*)p_psAlloc(sizeof(psVoidPtrArray), __FILE__, __LINE__);
-    psArr->type.dimen = PS_DIMEN_VECTOR;
-    psArr->type.type = PS_TYPE_OTHER;
-    psArr->nalloc = nalloc;
-    psArr->n = 0;
-
-    if(nalloc == 0) {
-        psArr->arr = NULL;
-    } else {
-        psArr->arr = p_psAlloc(nalloc*sizeof(void*), __FILE__, __LINE__);
-    }
+    psVoidPtrArray *psArr = NULL;
+    psArr = (psVoidPtrArray*)psAlloc(sizeof(psVoidPtrArray));
+    psArr->nalloc = nalloc;
+    psArr->n = 0;
+    psArr->arr = (void*)p_psArrayAlloc(&psArr->type, PS_TYPE_OTHER, nalloc, sizeof(void*));
 
     return psArr;
Index: /trunk/psLib/src/types/psArray.h
===================================================================
--- /trunk/psLib/src/types/psArray.h	(revision 501)
+++ /trunk/psLib/src/types/psArray.h	(revision 502)
@@ -3,11 +3,11 @@
  *  @brief Contains support for basic array types
  *
- *  The types of basic one dimensional arrays defined include: int, float, double, complex float, and
- *  void *.
+ *  This file defines basic types of one dimensional arrays which include: int, float, double, complex float, and
+ *  void **.
  *
  *  @author Ross Harman, MHPCC
  *   
- *  @version $Revision: 1.5 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-04-21 21:05:39 $
+ *  @version $Revision: 1.6 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-04-22 21:15:01 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
