Index: trunk/psLib/src/dataManip/psRandom.c
===================================================================
--- trunk/psLib/src/dataManip/psRandom.c	(revision 3001)
+++ trunk/psLib/src/dataManip/psRandom.c	(revision 3005)
@@ -10,6 +10,6 @@
 *  @author GLG, MHPCC
 *
-*  @version $Revision: 1.4 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2005-01-14 23:34:46 $
+*  @version $Revision: 1.5 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2005-01-15 00:45:25 $
 *
 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -50,4 +50,7 @@
     }
 
+    // Send log message of the system seed value used
+    psLogMsg(__func__,PS_LOG_INFO,"System random seed value used  seed = %llX hex",seedVal);
+
     return seedVal;
 }
@@ -81,20 +84,56 @@
                    psU64 seed)
 {
-    gsl_rng_set(rand->gsl, seed);
+    // Check null psRandom
+    if(rand==NULL) {
+        psError(PS_ERR_UNEXPECTED_NULL,
+                true,
+                PS_ERRORTEXT_psRandom_NULL_RANDOM_VAR);
+    } else {
+        // Check seed value to see if system seed should be used
+        if(seed == 0) {
+            gsl_rng_set(rand->gsl,p_psRandomGetSystemSeed());
+        } else {
+            gsl_rng_set(rand->gsl, seed);
+        }
+    }
 }
 
 psF64 psRandomUniform(const psRandom *r)
 {
-    return(gsl_rng_uniform(r->gsl));
+    // Check null psRandom variable
+    if(r == NULL) {
+        psError(PS_ERR_UNEXPECTED_NULL,
+                true,
+                PS_ERRORTEXT_psRandom_NULL_RANDOM_VAR);
+        return(0);
+    } else {
+        return(gsl_rng_uniform(r->gsl));
+    }
 }
 
 psF64 psRandomGaussian(const psRandom *r)
 {
-    // XXX: What should sigma be?
-    return(gsl_ran_gaussian(r->gsl, 1.0));
+    // Check null psRandom variable
+    if(r == NULL) {
+        psError(PS_ERR_UNEXPECTED_NULL,
+                true,
+                PS_ERRORTEXT_psRandom_NULL_RANDOM_VAR);
+        return(0);
+    } else {
+        // XXX: What should sigma be?
+        return(gsl_ran_gaussian(r->gsl, 1.0));
+    }
 }
 
 psF64 psRandomPoisson(const psRandom *r, psF64 mean)
 {
-    return((psF64) gsl_ran_poisson(r->gsl, mean));
+    // Check null psRandom variable
+    if(r == NULL) {
+        psError(PS_ERR_UNEXPECTED_NULL,
+                true,
+                PS_ERRORTEXT_psRandom_NULL_RANDOM_VAR);
+        return(0);
+    } else {
+        return((psF64) gsl_ran_poisson(r->gsl, mean));
+    }
 }
