Index: trunk/psLib/src/mathtypes/psVector.c
===================================================================
--- trunk/psLib/src/mathtypes/psVector.c	(revision 19501)
+++ trunk/psLib/src/mathtypes/psVector.c	(revision 19502)
@@ -10,6 +10,6 @@
 *  @author Joshua Hoblitt, University of Hawaii
 *
-*  @version $Revision: 1.102 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2008-06-24 21:32:52 $
+*  @version $Revision: 1.103 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2008-09-12 00:22:48 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -27,4 +27,5 @@
 
 #include "psMemory.h"
+#include "psAbort.h"
 #include "psError.h"
 #include "psVector.h"
@@ -204,4 +205,57 @@
 
     return vector;
+}
+
+bool psVectorAppend(psVector *vector,...) {
+
+    va_list argPtr;
+    
+    int N = vector->n;
+    if (vector->nalloc == vector->n) {
+	psVectorRealloc (vector, vector->nalloc + 100);
+    }
+
+    // Get the variable list parameters to pass to allocation function
+    va_start(argPtr, vector);
+
+    switch(vector->type.type) {
+    case PS_DATA_S8:
+        vector->data.S8[N] = (psS8)va_arg(argPtr, psS32);
+        break;
+    case PS_DATA_S16:
+        vector->data.S16[N] = (psS16)va_arg(argPtr, psS32);
+        break;
+    case PS_DATA_S32:
+        vector->data.S32[N] = (psS32)va_arg(argPtr, psS32);
+        break;
+    case PS_DATA_S64:
+        vector->data.S64[N] = (psS64)va_arg(argPtr, psS64);
+        break;
+    case PS_DATA_U8:
+        vector->data.U8[N] = (psU8)va_arg(argPtr, psU32);
+        break;
+    case PS_DATA_U16:
+        vector->data.U16[N] = (psU16)va_arg(argPtr, psU32);
+        break;
+    case PS_DATA_U32:
+        vector->data.U32[N] = (psU32)va_arg(argPtr, psU32);
+        break;
+    case PS_DATA_U64:
+        vector->data.U64[N] = (psU64)va_arg(argPtr, psU64);
+        break;
+    case PS_DATA_F32:
+        vector->data.F32[N] = (psF32)va_arg(argPtr, psF64);
+        break;
+    case PS_DATA_F64:
+        vector->data.F64[N] = (psF64)va_arg(argPtr, psF64);
+        break;
+      default:
+	psAbort ("invalid data type for vector");
+    }
+
+    vector->n ++;
+    va_end(argPtr);
+
+    return true;
 }
 
Index: trunk/psLib/src/mathtypes/psVector.h
===================================================================
--- trunk/psLib/src/mathtypes/psVector.h	(revision 19501)
+++ trunk/psLib/src/mathtypes/psVector.h	(revision 19502)
@@ -10,6 +10,6 @@
  * @author Joshua Hoblitt, University of Hawaii
  *
- * @version $Revision: 1.72 $ $Name: not supported by cvs2svn $
- * @date $Date: 2008-08-14 03:18:41 $
+ * @version $Revision: 1.73 $ $Name: not supported by cvs2svn $
+ * @date $Date: 2008-09-12 00:22:48 $
  * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
  */
@@ -153,4 +153,7 @@
 
 
+// add one more element of the vector type, extend as needed
+bool psVectorAppend(psVector *vector,...);
+
 /** Recycle a vector.
  *
