summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorallen <allen@17b73243-c579-4c4c-a9d2-2d5706c11dac>1999-05-20 11:12:37 +0000
committerallen <allen@17b73243-c579-4c4c-a9d2-2d5706c11dac>1999-05-20 11:12:37 +0000
commit6c4ffad774a75ad63a5a7f4fa4f8bef232a2814d (patch)
tree783fe989e32df460dccce7d6fdd6d02414462184 /src/main
parenta68a6214fb3bd87cd8382f3f8e832be060010360 (diff)
Corrected my submission for stupidest bug of all time ...
CCTK_GetVarDataPtr_ByName was always returning a NULL, which explains why Malcolm is having such a hard time making elliptic solvers work. Also, I've changed around the argument lists for calling these functions, so that the string is last, in case we want to call them from Fortran. I think they are only called from LinearElliptic at the moment. git-svn-id: http://svn.cactuscode.org/flesh/trunk@531 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'src/main')
-rw-r--r--src/main/GroupsOnGH.c120
1 files changed, 111 insertions, 9 deletions
diff --git a/src/main/GroupsOnGH.c b/src/main/GroupsOnGH.c
index 980effde..fc23bec5 100644
--- a/src/main/GroupsOnGH.c
+++ b/src/main/GroupsOnGH.c
@@ -15,9 +15,10 @@
#include "flesh.h"
#include "Misc.h"
#include "Groups.h"
+#include "WarnLevel.h"
#include "GroupsOnGH.h"
-/*#define GROUPSDEBUG*/
+/*#define DEBUG_GROUPS*/
static char *rcsid = "$Header$";
@@ -34,17 +35,57 @@ static char *rcsid = "$Header$";
@endhistory
+ @var GH
+ @vdesc Pointer to Grid Hierachy
+ @vtype cGH *
+ @vio in
+ @vcomment
+ @endvar
+
+ @var fullvarname
+ @vdesc Full name of the grid variable
+ @vtype char *
+ @vio in
+ @vcomment Format <implementation>::<variable>
+ @endvar
+
+ @var timelevel
+ @vdesc Index of timelevel on which data is required
+ @vtype int
+ @vio in
+ @vcomment
+ @endvar
+
+ @returntype void *
+ @returndesc Pointer to the required data, should be cast to required type
+ @endreturndesc
+
+ @version $Header$
+
@@*/
-void *CCTK_GetVarDataPtr_ByName(cGH *GH, char *fullvarname, int timelevel)
+
+void *CCTK_GetVarDataPtr_ByName(cGH *GH, int timelevel, char *fullvarname)
{
- int index;
- void *retval=NULL;
+ int index;
+ void *retval=NULL;
index = CCTK_GetVarIndex(fullvarname);
if (index >= 0)
{
retval = GH->data[index][timelevel];
- }
+ }
+ else
+ CCTK_Warn(1,"CCTK","Invalid index in CCTK_GetVarDataPtr_ByName");
+
+#ifdef DEBUG_GROUPS
+ CCTK_PRINTSEPARATOR
+ printf("In CCTK_GetVarDataPtr_ByName\n----------------------------\n");
+ printf(" Data pointer for %s (%d) is %x\n",fullvarname,index,retval);
+ CCTK_PRINTSEPARATOR
+#endif
+
+ return retval;
+
}
/*@@
@@ -59,8 +100,36 @@ void *CCTK_GetVarDataPtr_ByName(cGH *GH, char *fullvarname, int timelevel)
@endhistory
+ @var GH
+ @vdesc Pointer to Grid Hierachy
+ @vtype cGH *
+ @vio in
+ @vcomment
+ @endvar
+
+ @var varindex
+ @vdesc Index of grid variable
+ @vtype int
+ @vio in
+ @vcomment Assumed to be in correct range
+ @endvar
+
+ @var timelevel
+ @vdesc Index of timelevel on which data is required
+ @vtype int
+ @vio in
+ @vcomment
+ @endvar
+
+ @returntype void *
+ @returndesc Pointer to the required data, should be cast to required type
+ @endreturndesc
+
+ @version $Header$
+
@@*/
-void *CCTK_GetVarDataPtr_ByIndex(cGH *GH, int varindex, int timelevel)
+
+void *CCTK_GetVarDataPtr_ByIndex(cGH *GH, int timelevel, int varindex)
{
return GH->data[varindex][timelevel];
}
@@ -77,17 +146,50 @@ void *CCTK_GetVarDataPtr_ByIndex(cGH *GH, int varindex, int timelevel)
@history
@endhistory
+ @var GH
+ @vdesc Pointer to Grid Hierachy
+ @vtype cGH *
+ @vio in
+ @vcomment
+ @endvar
+
+ @var varindex
+ @vdesc Index of grid variable
+ @vtype int
+ @vio in
+ @vcomment Assumed to be in correct range
+ @endvar
+
+ @var fullvarname
+ @vdesc Full name of the grid variable
+ @vtype char *
+ @vio in
+ @vcomment Format <implementation>::<variable>
+ @endvar
+
+ @var timelevel
+ @vdesc Index of timelevel on which data is required
+ @vtype int
+ @vio in
+ @vcomment
+ @endvar
+
+ @returntype void *
+ @returndesc Pointer to the required data, should be cast to required type
+ @endreturndesc
+
+ @version $Header$
@@*/
-void *CCTK_GetVarDataPtr(cGH *GH, int varindex, char *fullvarname, int timelevel)
+void *CCTK_GetVarDataPtr(cGH *GH, int timelevel, int varindex, char *fullvarname)
{
if (fullvarname)
{
- return CCTK_GetVarDataPtr_ByName(GH, fullvarname, timelevel);
+ return CCTK_GetVarDataPtr_ByName(GH, timelevel, fullvarname);
}
else
{
- return CCTK_GetVarDataPtr_ByIndex(GH, varindex, timelevel);
+ return CCTK_GetVarDataPtr_ByIndex(GH, timelevel, varindex);
}
}