diff options
author | tradke <tradke@b61c5cb5-eaca-4651-9a7a-d64986f99364> | 2001-04-21 17:11:40 +0000 |
---|---|---|
committer | tradke <tradke@b61c5cb5-eaca-4651-9a7a-d64986f99364> | 2001-04-21 17:11:40 +0000 |
commit | ce3eb862f86c768fbe066f3d285d50249fa84a69 (patch) | |
tree | e65c43be8e677f6560284eee5aa58b9eb4a90c1b /src/Overloadables.c | |
parent | 30c0cac2c08c216c3874938bac39759e34d2e287 (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.c | 103 |
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); } |