aboutsummaryrefslogtreecommitdiff
path: root/src/Comm.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/Comm.c')
-rw-r--r--src/Comm.c25
1 files changed, 23 insertions, 2 deletions
diff --git a/src/Comm.c b/src/Comm.c
index 0c36af8..bd7f453 100644
--- a/src/Comm.c
+++ b/src/Comm.c
@@ -88,7 +88,14 @@ int PUGH_SyncGroup(const cGH *GH, const char *groupname)
{
CCTK_GroupData(group, &pgroup);
- retval = PUGH_SyncGArrayGroup(PUGH_pGH(GH), CCTK_FirstVarIndexI(group));
+ if (pgroup.numvars == 0)
+ {
+ retval = 0;
+ }
+ else
+ {
+ retval = PUGH_SyncGArrayGroup(PUGH_pGH(GH), CCTK_FirstVarIndexI(group));
+ }
}
return (retval);
@@ -192,6 +199,10 @@ int PUGH_DisableGroupComm(const cGH *GH, const char *groupname)
CCTK_GroupData(group, &pgroup);
first_var = CCTK_FirstVarIndexI(group);
+ if (first_var < 0)
+ {
+ CCTK_WARN (0, "Illegal group index -- group has no variables");
+ }
pughGH = PUGH_pGH(GH);
GA = (pGA *) pughGH->variables[first_var][0];
@@ -388,6 +399,11 @@ int PUGH_DisableGArrayGroupComm(pGH *pughGH, int first_var, pComm *groupcomm)
pGA *GA; /* first variable in group */
+ if (first_var < 0)
+ {
+ CCTK_WARN (0, "Illegal variable index");
+ }
+
GA = (pGA *) pughGH->variables[first_var][0];
#ifdef DEBUG_PUGH
@@ -470,6 +486,11 @@ static int PUGH_EnableGArrayGroupComm(pGH *pughGH, int first_var, int commflag)
pGA *GA; /* first variable in group */
+ if (first_var < 0)
+ {
+ CCTK_WARN (0, "Illegal variable index");
+ }
+
GA = pughGH->variables [first_var][0];
#ifdef DEBUG_PUGH
@@ -972,7 +993,7 @@ static int PUGH_SyncSingleProc(pGH *pughGH, pComm *comm)
return (0);
}
- /* since we need to iterators here we need to allocate one */
+ /* since we need two iterators here we need to allocate one */
iterator_from = GA->extras->iterator;
iterator_to = (int *) malloc (GA->extras->dim * sizeof (int));