aboutsummaryrefslogtreecommitdiff
path: root/src/ReductionNormInf.c
diff options
context:
space:
mode:
authortradke <tradke@d60812e6-3970-4df4-986e-c251b06effeb>2003-07-09 16:04:43 +0000
committertradke <tradke@d60812e6-3970-4df4-986e-c251b06effeb>2003-07-09 16:04:43 +0000
commit6d0154d89521ba27fec78ee4023f1a688b5954d0 (patch)
tree191498fc9440d0de2bd65f01640c06ed4e4c3fed /src/ReductionNormInf.c
parent16266c2af7fe606b142e3c8498b8bf690ce48cc3 (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.c18
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)
{