From 32c3651c89625341e16a9bf116302d93fdd0564e Mon Sep 17 00:00:00 2001
From: Eric Bavier <bavier@cray.com>
Date: Mon, 26 Jan 2015 15:24:30 -0600
Subject: [PATCH] threadcomm: Fix initialization for THREADCOMM_PROD.

---
 src/sys/threadcomm/interface/threadcommred.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/sys/threadcomm/interface/threadcommred.c b/src/sys/threadcomm/interface/threadcommred.c
index d783f14..1582fe1 100644
--- a/src/sys/threadcomm/interface/threadcommred.c
+++ b/src/sys/threadcomm/interface/threadcommred.c
@@ -182,19 +182,19 @@ PetscErrorCode PetscThreadReductionEnd_Private(PetscThreadCommRedCtx redctx,void
     break;
   case THREADCOMM_PROD:
     if (redctx->type == PETSC_REAL) {
-      PetscReal red_prod=0.0;
+      PetscReal red_prod=1.0;
       for (i=0; i < redctx->tcomm->nworkThreads; i++) red_prod *= ((PetscReal*)redctx->local_red)[i];
       PetscMemcpy(outdata,&red_prod,sizeof(PetscReal));
       break;
     }
     if (redctx->type == PETSC_SCALAR) {
-      PetscScalar red_prod=0.0;
+      PetscScalar red_prod=1.0;
       for (i=0; i < redctx->tcomm->nworkThreads; i++) red_prod *= ((PetscScalar*)redctx->local_red)[i];
       PetscMemcpy(outdata,&red_prod,sizeof(PetscScalar));
       break;
     }
     if (redctx->type == PETSC_INT) {
-      PetscInt red_prod=0.0;
+      PetscInt red_prod=1.0;
       for (i=0; i < redctx->tcomm->nworkThreads; i++) red_prod *= ((PetscInt*)redctx->local_red)[i];
       PetscMemcpy(outdata,&red_prod,sizeof(PetscInt));
     }
-- 
2.0.0

