diff options
author | tradke <tradke@d60812e6-3970-4df4-986e-c251b06effeb> | 2003-07-09 16:04:43 +0000 |
---|---|---|
committer | tradke <tradke@d60812e6-3970-4df4-986e-c251b06effeb> | 2003-07-09 16:04:43 +0000 |
commit | 6d0154d89521ba27fec78ee4023f1a688b5954d0 (patch) | |
tree | 191498fc9440d0de2bd65f01640c06ed4e4c3fed /src/ReductionNormInf.c | |
parent | 16266c2af7fe606b142e3c8498b8bf690ce48cc3 (diff) |
Fix for the reduction of grid arrays which don't have any point on a specific
processor.
git-svn-id: http://svn.cactuscode.org/arrangements/CactusPUGH/PUGHReduce/trunk@42 d60812e6-3970-4df4-986e-c251b06effeb
Diffstat (limited to 'src/ReductionNormInf.c')
-rw-r--r-- | src/ReductionNormInf.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/ReductionNormInf.c b/src/ReductionNormInf.c index 363ca5b..fa4ea97 100644 --- a/src/ReductionNormInf.c +++ b/src/ReductionNormInf.c @@ -12,6 +12,7 @@ #include <stdlib.h> #include <string.h> +#include <float.h> #include "pugh_reductions.h" @@ -28,6 +29,7 @@ static int ReductionNormInf (const cGH *GH, int iterator[/* dim */], const int points_per_dim[/* dim */], int num_points, + int have_local_points, int num_inarrays, const int intypes[/* num_inarrays */], const void *const inarrays[/* num_inarrays */], @@ -209,6 +211,7 @@ static int ReductionNormInf (const cGH *GH, int iterator[/* dim */], const int points_per_dim[/* dim */], int num_points, + int have_local_points, int num_inarrays, const int intypes[/* num_inarrays */], const void *const inarrays[/* num_inarrays */], @@ -361,8 +364,19 @@ static int ReductionNormInf (const cGH *GH, { local_outvals = malloc (total_outvals * sizeof (CCTK_REAL)); - /* outvals[] contains now the local sum */ - memcpy (local_outvals, outvals, total_outvals * sizeof (CCTK_REAL)); + if (have_local_points) + { + /* outvals[] contains now the local sum */ + memcpy (local_outvals, outvals, total_outvals * sizeof (CCTK_REAL)); + } + else + { + /* initialize local values to be smallest possible fp number */ + for (i = 0; i < total_outvals; i++) + { + local_outvals[i] = -DBL_MAX; + } + } pughGH = PUGH_pGH (GH); if (proc < 0) { |