aboutsummaryrefslogtreecommitdiff
path: root/src/Overloadables.c
diff options
context:
space:
mode:
authortradke <tradke@b61c5cb5-eaca-4651-9a7a-d64986f99364>2001-04-21 17:11:40 +0000
committertradke <tradke@b61c5cb5-eaca-4651-9a7a-d64986f99364>2001-04-21 17:11:40 +0000
commitce3eb862f86c768fbe066f3d285d50249fa84a69 (patch)
treee65c43be8e677f6560284eee5aa58b9eb4a90c1b /src/Overloadables.c
parent30c0cac2c08c216c3874938bac39759e34d2e287 (diff)
Check arguments for PUGH_GroupDynamicData(). Grdoc'ed.
git-svn-id: http://svn.cactuscode.org/arrangements/CactusPUGH/PUGH/trunk@318 b61c5cb5-eaca-4651-9a7a-d64986f99364
Diffstat (limited to 'src/Overloadables.c')
-rw-r--r--src/Overloadables.c103
1 files changed, 88 insertions, 15 deletions
diff --git a/src/Overloadables.c b/src/Overloadables.c
index d650c1f..8574ff7 100644
--- a/src/Overloadables.c
+++ b/src/Overloadables.c
@@ -1,28 +1,101 @@
+/*@@
+ @file Overloadables.c
+ @author Gabrielle Allen
+ @date 2000/06/22
+ @desc
+ PUGH routines which overload CCTK routines in the flesh
+ @enddesc
+ @version $Id$
+ @@*/
+
#include "cctk.h"
#include "pugh.h"
#include "pugh_Comm.h"
-int PUGH_GroupDynamicData(cGH *cctkGH, int group,cGroupDynamicData *data)
+static char *rcsid = "$Header$";
+CCTK_FILEVERSION(CactusPUGH_PUGH_Overloadables_c)
+
+
+/*@@
+ @routine PUGH_GroupDynamicData
+ @author Gabrielle Allen
+ @date 2000/06/22
+ @desc
+ Returns the driver's internal data for a given group
+ of CCTK_GF or CCTK_ARRAY variables
+ @enddesc
+ @calls CCTK_GroupTypeI
+ CCTK_FirstVarIndexI
+
+ @var GH
+ @vdesc Pointer to CCTK GH
+ @vtype cGH *
+ @vio in
+ @endvar
+ @var group
+ @vdesc index of group
+ @vtype int
+ @vio in
+ @endvar
+ @var data
+ @vdesc Pointer to caller-supplied data structure to store group data
+ @vtype cGroupDynamicData *
+ @vio out
+ @endvar
+
+ @returntype int
+ @returndesc
+ 0 for success <BR>
+ -1 if given pointer to data structure is NULL <BR>
+ -2 if given group is not of type CCTK_GF or CCTK_ARRAY <BR>
+ -3 if given GH pointer is invalid
+ @endreturndesc
+@@*/
+int PUGH_GroupDynamicData (cGH *GH, int group, cGroupDynamicData *data)
{
- int var;
- pGH *mypGH;
+ int gtype, var;
+ pGH *pughGH;
pGExtras *extras;
+ int retval;
- mypGH = PUGH_pGH(cctkGH);
- /* Get the first variable in the group */
- var = CCTK_FirstVarIndexI(group);
+ if (data)
+ {
+ gtype = CCTK_GroupTypeI (group);
+ if (gtype == CCTK_GF || gtype == CCTK_ARRAY)
+ {
+ /* Get the first variable in the group */
+ var = CCTK_FirstVarIndexI (group);
- extras = ((pGA ***)(mypGH->variables))[var][0]->extras;
+ pughGH = PUGH_pGH (GH);
+ if (pughGH)
+ {
+ extras = ((pGA ***) pughGH->variables)[var][0]->extras;
- data->dim = extras->dim;
- data->lsh = extras->lnsize;
- data->gsh = extras->nsize;
- data->lbnd = extras->lb[mypGH->myproc];
- data->ubnd = extras->ub[mypGH->myproc];
- data->nghostzones = extras->nghostzones;
- data->bbox = extras->bbox;
+ data->dim = extras->dim;
+ data->lsh = extras->lnsize;
+ data->gsh = extras->nsize;
+ data->lbnd = extras->lb[pughGH->myproc];
+ data->ubnd = extras->ub[pughGH->myproc];
+ data->nghostzones = extras->nghostzones;
+ data->bbox = extras->bbox;
- return 0;
+ retval = 0;
+ }
+ else
+ {
+ retval = -3;
+ }
+ }
+ else
+ {
+ retval = -2;
+ }
+ }
+ else
+ {
+ retval = -1;
+ }
+ return (retval);
}