summaryrefslogtreecommitdiff
path: root/src/main/GHExtensions.c
diff options
context:
space:
mode:
authortradke <tradke@17b73243-c579-4c4c-a9d2-2d5706c11dac>2001-07-04 13:20:29 +0000
committertradke <tradke@17b73243-c579-4c4c-a9d2-2d5706c11dac>2001-07-04 13:20:29 +0000
commit5f55c8e114738740d691b9fa8ec4aa66a3db0bb5 (patch)
treed6fabb859f2d626439a7a7dd6d497cfde013c727 /src/main/GHExtensions.c
parent06afb39d0e1483e005998c7dcf5c2fc313535d8e (diff)
In CCTKi_ScheduleTraverseGHExtensions(): call CCTK_ScheduleTraverse()
if no GH extensions were registered. This allows evolution routines to be called even if no driver was activated. git-svn-id: http://svn.cactuscode.org/flesh/trunk@2270 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'src/main/GHExtensions.c')
-rw-r--r--src/main/GHExtensions.c41
1 files changed, 30 insertions, 11 deletions
diff --git a/src/main/GHExtensions.c b/src/main/GHExtensions.c
index 51cfbf4b..59f0c0f6 100644
--- a/src/main/GHExtensions.c
+++ b/src/main/GHExtensions.c
@@ -18,6 +18,8 @@
#include "cctk_GHExtensions.h"
#include "StoreHandledData.h"
#include "cctk_WarnLevel.h"
+#include "cctk_Schedule.h"
+#include "cctki_GHExtensions.h"
static const char *rcsid = "$Header$";
@@ -69,6 +71,8 @@ static int DummyScheduleTraverseGH(cGH *GH,
/********************************************************************
********************* Other Routine Prototypes *********************
********************************************************************/
+void CCTK_FCALL CCTK_FNAME (CCTK_GHExtensionHandle)
+ (int *handle, ONE_FORTSTRING_ARG);
/********************************************************************
********************* Local Data *****************************
@@ -559,25 +563,34 @@ int CCTKi_InitGHExtensions(cGH *GH)
@returntype int
@returndesc
+ return code of @seeroutine CCTK_ScheduleTraverse, or
0 - success
@endreturndesc
@@*/
int CCTKi_ScheduleTraverseGHExtensions(cGH *GH,
const char *where)
{
- int handle;
+ int handle, retval;
struct GHExtension *extension;
- for(handle = 0; handle < num_extensions; handle++)
+ if (num_extensions <= 0)
{
- extension = (struct GHExtension *)Util_GetHandledData(GHExtensions, handle);
- if(extension)
+ retval = CCTK_ScheduleTraverse(where, GH, NULL);
+ }
+ else
+ {
+ for(handle = 0; handle < num_extensions; handle++)
{
- extension->ScheduleTraverseGH(GH, where);
+ extension = (struct GHExtension *)Util_GetHandledData(GHExtensions, handle);
+ if(extension)
+ {
+ extension->ScheduleTraverseGH(GH, where);
+ }
}
+ retval = 0;
}
- return 0;
+ return (retval);
}
/************************************************************************
@@ -616,12 +629,12 @@ int CCTK_GHExtensionHandle(const char *name)
return Util_GetHandle(GHExtensions, name, NULL);
}
-void CCTK_FCALL CCTK_FNAME(CCTK_GHExtensionHandle)
- (int *handle,ONE_FORTSTRING_ARG)
+void CCTK_FCALL CCTK_FNAME (CCTK_GHExtensionHandle)
+ (int *handle, ONE_FORTSTRING_ARG)
{
- ONE_FORTSTRING_CREATE(name)
- *handle = CCTK_GHExtensionHandle(name);
- free(name);
+ ONE_FORTSTRING_CREATE (name)
+ *handle = CCTK_GHExtensionHandle (name);
+ free (name);
}
@@ -791,6 +804,9 @@ static void *DummySetupGH(tFleshConfig *config,
int convergence_level,
cGH *GH)
{
+ config = config;
+ convergence_level = convergence_level;
+ GH = GH;
return NULL;
}
@@ -822,6 +838,7 @@ static void *DummySetupGH(tFleshConfig *config,
@@*/
static int DummyInitGH(cGH *GH)
{
+ GH = GH;
return 0;
}
@@ -861,5 +878,7 @@ static int DummyInitGH(cGH *GH)
static int DummyScheduleTraverseGH(cGH *GH,
const char *where)
{
+ GH = GH;
+ where = where;
return 0;
}