summaryrefslogtreecommitdiff
path: root/src/comm
diff options
context:
space:
mode:
authortradke <tradke@17b73243-c579-4c4c-a9d2-2d5706c11dac>2001-05-04 18:49:01 +0000
committertradke <tradke@17b73243-c579-4c4c-a9d2-2d5706c11dac>2001-05-04 18:49:01 +0000
commita8b248ee10aeb9e357358b5899d173f8c9bc8a21 (patch)
tree00dbb24e5f8f646602715610644db58a08e05e02 /src/comm
parent9afeb87f3ccb8edc78c478fda00ba43fee10e633 (diff)
Check for invalid group/variable indices/names.
This closes PR Cactus 659. git-svn-id: http://svn.cactuscode.org/flesh/trunk@2143 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'src/comm')
-rw-r--r--src/comm/CactusSync.c216
1 files changed, 133 insertions, 83 deletions
diff --git a/src/comm/CactusSync.c b/src/comm/CactusSync.c
index fb1b2494..c401aab5 100644
--- a/src/comm/CactusSync.c
+++ b/src/comm/CactusSync.c
@@ -2,15 +2,15 @@
@file CactusSync.c
@date Thu Sep 18 14:27:18 1999
@author Gerd Lanfermann
- @desc
- A collection of SyncGroup routines: Sync a group by the GROUP INDEX,
- by the group's VARIABLE NAME, by the group's VARIABLE INDEX.
+ @desc
+ A collection of SyncGroup routines:
+ Sync a group by the GROUP INDEX, by the group's VARIABLE NAME,
+ by the group's VARIABLE INDEX.
- It ends up calling CCTK_SyncGroup(GH,groupname), which is overloaded (currently
- by PUGH).
-
+ It ends up calling CCTK_SyncGroup(GH,groupname),
+ which is overloaded (currently by PUGH).
@enddesc
- @version $Header$
+ @version $Id$
@@*/
#include <stdlib.h>
@@ -22,130 +22,180 @@
#include "cctk_Sync.h"
static char *rcsid = "$Header$";
-
CCTK_FILEVERSION(comm_CactusSync_c)
+
+/********************************************************************
+ ******************** External Routines ************************
+ ********************************************************************/
+/* prototypes for external C routines are declared in header cctk_Groups.h
+ here only follow the fortran wrapper prototypes */
+void CCTK_FCALL CCTK_FNAME (CCTK_SyncGroupI)
+ (cGH *GH, const int *group);
+void CCTK_FCALL CCTK_FNAME (CCTK_SyncGroupWithVar)
+ (cGH *GH, ONE_FORTSTRING_ARG);
+void CCTK_FCALL CCTK_FNAME (CCTK_SyncGroupWithVarI)
+ (cGH *GH, const int *var);
+
+
/*@@
@routine CCTK_SyncGroupI
@date Thu Sep 18 14:27:18 1999
@author Gerd Lanfermann
- @desc
-
- @enddesc
- @calls
- @calledby
- @history
-
- @endhistory
-
+ @desc
+ Synchronizes a group given by its index.
+ @enddesc
+ @calls CCTK_GroupName
+ CCTK_SyncGroup
+
+ @var GH
+ @vdesc Pointer to Grid Hierachy
+ @vtype cGH *
+ @vio in
+ @endvar
+ @var group
+ @vdesc group index
+ @vtype int
+ @vio in
+ @endvar
@@*/
-void CCTK_SyncGroupI(cGH *GH,
- int groupi)
+void CCTK_SyncGroupI (cGH *GH,
+ int group)
{
- char *groupname = CCTK_GroupName(groupi);
+ char *groupname;
+
- CCTK_SyncGroup(GH,groupname);
+ groupname = CCTK_GroupName (group);
- free(groupname);
+ if (groupname)
+ {
+ CCTK_SyncGroup (GH, groupname);
+
+ free (groupname);
+ }
}
-void CCTK_FCALL CCTK_FNAME(CCTK_SyncGroupI)
- (cGH *GH, int *groupi)
+void CCTK_FCALL CCTK_FNAME (CCTK_SyncGroupI)
+ (cGH *GH, const int *group)
{
- CCTK_SyncGroupI(GH, *groupi);
+ CCTK_SyncGroupI (GH, *group);
}
-
/*@@
@routine CCTK_SyncGroupWithVar
@date Thu Sep 18 14:27:18 1999
@author Gerd Lanfermann
- @desc
-
- @enddesc
- @calls
- @calledby
- @history
-
- @endhistory
-
+ @desc
+ Synchronizes a group which contains the given variable
+ (given by its name).
+ @enddesc
+ @calls CCTK_GroupIndexFromVarI
+ CCTK_VarIndex
+ CCTK_SyncGroupI
+
+ @var GH
+ @vdesc Pointer to Grid Hierachy
+ @vtype cGH *
+ @vio in
+ @endvar
+ @var varname
+ @vdesc full variable name
+ @vtype const char *
+ @vio in
+ @endvar
@@*/
-void CCTK_SyncGroupWithVar(cGH *GH,
- const char *varn)
+void CCTK_SyncGroupWithVar (cGH *GH,
+ const char *varname)
{
- int groupi;
-
- groupi = CCTK_GroupIndexFromVarI(CCTK_VarIndex(varn));
-
- CCTK_SyncGroupI(GH,groupi);
+ CCTK_SyncGroupI (GH, CCTK_GroupIndexFromVarI (CCTK_VarIndex (varname)));
}
-void CCTK_FCALL CCTK_FNAME(CCTK_SyncGroupWithVar)
- (cGH *GH, ONE_FORTSTRING_ARG)
+void CCTK_FCALL CCTK_FNAME (CCTK_SyncGroupWithVar)
+ (cGH *GH, ONE_FORTSTRING_ARG)
{
- ONE_FORTSTRING_CREATE(varn);
- CCTK_SyncGroupWithVar(GH,varn);
- free(varn);
+ ONE_FORTSTRING_CREATE (varname);
+ CCTK_SyncGroupWithVar (GH, varname);
+ free (varname);
}
-
/*@@
@routine CCTK_SyncGroupWithVarI
@date Thu Sep 18 14:27:18 1999
@author Gerd Lanfermann
- @desc
-
- @enddesc
- @calls
- @calledby
- @history
-
- @endhistory
-
+ @desc
+ Synchronizes a group which contains the given variable
+ (given by its index).
+ @enddesc
+ @calls CCTK_GroupIndexFromVarI
+ CCTK_SyncGroupI
+
+ @var GH
+ @vdesc Pointer to Grid Hierachy
+ @vtype cGH *
+ @vio in
+ @endvar
+ @var var
+ @vdesc variable index
+ @vtype int
+ @vio in
+ @endvar
@@*/
-void CCTK_SyncGroupWithVarI(cGH *GH,
- int vari)
+void CCTK_SyncGroupWithVarI (cGH *GH,
+ int var)
{
- int groupi;
-
- groupi = CCTK_GroupIndexFromVarI(vari);
-
- CCTK_SyncGroupI(GH,groupi);
+ CCTK_SyncGroupI (GH, CCTK_GroupIndexFromVarI (var));
}
-void CCTK_FCALL CCTK_FNAME(CCTK_SyncGroupWithVarI)
- (cGH *GH, int *vari)
+void CCTK_FCALL CCTK_FNAME (CCTK_SyncGroupWithVarI)
+ (cGH *GH, const int *var)
{
- CCTK_SyncGroupWithVarI(GH,*vari);
+ CCTK_SyncGroupWithVarI (GH, *var);
}
+
/*@@
@routine CCTK_SyncGroupsI
@date Thu Jan 27 18:00:15 2000
@author Tom Goodale
- @desc
- Synchronises a list of groups by group index.
- @enddesc
- @calls
- @calledby
- @history
-
- @endhistory
-
+ @desc
+ Synchronises a list of groups given by their group indices.
+ @enddesc
+ @calls CCTK_SyncGroupI
+
+ @var GH
+ @vdesc Pointer to Grid Hierachy
+ @vtype cGH *
+ @vio in
+ @endvar
+ @var n_groups
+ @vdesc number of groups to synchronize
+ @vtype int
+ @vio in
+ @endvar
+ @var groups
+ @vdesc list of group indices
+ @vtype const int *
+ @vio in
+ @endvar
+
+ @returntype int
+ @returndesc
+ 0
+ @endreturndesc
@@*/
-int CCTK_SyncGroupsI(cGH *GH,
- int n_groups,
- int *groups)
+int CCTK_SyncGroupsI (cGH *GH,
+ int n_groups,
+ const int *groups)
{
int i;
- for(i = 0; i < n_groups; i++)
+
+ for (i = 0; i < n_groups; i++)
{
- CCTK_SyncGroupI(GH, groups[i]);
+ CCTK_SyncGroupI (GH, groups[i]);
}
- return 0;
+ return (0);
}
-