aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorswhite <swhite@e5a5a894-0e4f-0410-be11-d22c8b0a171a>2006-06-30 13:18:48 +0000
committerswhite <swhite@e5a5a894-0e4f-0410-be11-d22c8b0a171a>2006-06-30 13:18:48 +0000
commit6f384e57a2fe661f00c0bfeab68100b5016746be (patch)
tree05124f9de75bc072749876b7e5d575e9e96602c9
parent02437564319f1e56f791a0e7fa8a516c5bf6cbf2 (diff)
Got rid of watchminutes Cactus variable in favour of a local variable.
Suspect the use of this variable caused a crash. Tidied up output a bit. git-svn-id: http://svn.aei.mpg.de/numrel/AEIThorns/ManualTermination/trunk@15 e5a5a894-0e4f-0410-be11-d22c8b0a171a
-rw-r--r--doc/documentation.tex2
-rw-r--r--interface.ccl2
-rw-r--r--schedule.ccl2
-rw-r--r--src/ManualTermination.c34
4 files changed, 17 insertions, 23 deletions
diff --git a/doc/documentation.tex b/doc/documentation.tex
index 1decb0d..e36378c 100644
--- a/doc/documentation.tex
+++ b/doc/documentation.tex
@@ -87,7 +87,7 @@ environment variable. If the environment variable
\texttt{MANUAL\_TERMINATION\_JOB\_ID} is set, that will be used instead
as the \texttt{\textit{job\_id}}.
-In this configuration, any user may terminate the run by putting a '1' into
+In this configuration, any user may terminate the run by putting a `1' into
the specified file.
The the termination file is removed when the run shuts down.
diff --git a/interface.ccl b/interface.ccl
index b2d0b22..1c09f0a 100644
--- a/interface.ccl
+++ b/interface.ccl
@@ -4,5 +4,3 @@
IMPLEMENTS: ManualTermination
-
-CCTK_REAL watchminutes TYPE=scalar
diff --git a/schedule.ccl b/schedule.ccl
index 971a67d..fc43082 100644
--- a/schedule.ccl
+++ b/schedule.ccl
@@ -1,8 +1,6 @@
# Schedule definitions for thorn ManualTermination
# $Header$
-STORAGE: watchminutes
-
if (on_remaining_walltime > 0)
{
schedule ManualTermination_StartTimer at WRAGH
diff --git a/src/ManualTermination.c b/src/ManualTermination.c
index e0e32c4..e5a7062 100644
--- a/src/ManualTermination.c
+++ b/src/ManualTermination.c
@@ -7,6 +7,7 @@
#include "cctk_Termination.h"
#include "cctk_Timers.h"
+static CCTK_REAL watchminutes;
int ManualTermination_StartTimer (CCTK_ARGUMENTS)
{
@@ -17,21 +18,20 @@ int ManualTermination_StartTimer (CCTK_ARGUMENTS)
int ierr;
int TimerIndex;
- /* only one processor needs to query the elapsed runtime */
- if (CCTK_MyProc (cctkGH) != 0)
+ if (CCTK_MyProc (cctkGH) != 0) /* only root process queries elapsed runtime */
{
return (0);
}
- /* Create timer */
+
TimerIndex = CCTK_TimerCreate ("WatchWalltime");
- /* Start timer */
+
ierr = CCTK_TimerStart ("WatchWalltime");
- *watchminutes = output_remtime_every_minutes*1.0e0;
+ watchminutes = output_remtime_every_minutes*1.0e0;
CCTK_VInfo (CCTK_THORNSTRING, "Started Timer");
CCTK_VInfo (CCTK_THORNSTRING, "Reminding you every %d "
- "minutes about remaining walltime.",
+ "minutes of remaining walltime.",
output_remtime_every_minutes);
return (retval);
}
@@ -41,7 +41,7 @@ int ManualTermination_ResetMinutes (CCTK_ARGUMENTS)
DECLARE_CCTK_ARGUMENTS;
DECLARE_CCTK_PARAMETERS;
- *watchminutes = output_remtime_every_minutes*1.0e0;
+ watchminutes = output_remtime_every_minutes*1.0e0;
return 0;
}
@@ -56,8 +56,7 @@ int ManualTermination_CheckWalltime (CCTK_ARGUMENTS)
const cTimerVal *walltime;
CCTK_REAL time;
- /* only one processor needs to query the elapsed runtime */
- if (CCTK_MyProc (cctkGH) != 0)
+ if (CCTK_MyProc (cctkGH) != 0) /* only root process queries elapsed runtime */
{
return (0);
}
@@ -66,30 +65,29 @@ int ManualTermination_CheckWalltime (CCTK_ARGUMENTS)
info = CCTK_TimerCreateData ();
ierr = CCTK_Timer ("WatchWalltime",info);
- /* stop timer */
+
ierr = CCTK_TimerStop ("WatchWalltime");
/* get walltime */
walltime = CCTK_GetClockValue ("gettimeofday",info);
time = CCTK_TimerClockSeconds (walltime);
CCTK_TimerDestroyData (info);
- /* start timer */
+
ierr = CCTK_TimerStart ("WatchWalltime");
- if ((time/60.0e0 > *watchminutes) && *watchminutes != 0)
+ if ((time/60.0e0 > watchminutes) && watchminutes != 0)
{
- *watchminutes = (*watchminutes)+output_remtime_every_minutes*1.0e0;
+ watchminutes = (watchminutes)+output_remtime_every_minutes*1.0e0;
CCTK_INFO ("------------------------------------------------------");
- CCTK_VInfo (CCTK_THORNSTRING, "Remaining wallclock time for your job "
- "is %1.2f minutes. :-)", (max_walltime*60.0-time/60.0));
+ CCTK_VInfo (CCTK_THORNSTRING, "Remaining walltime is %1.2f minutes. :-)",
+ (max_walltime*60.0-time/60.0));
CCTK_INFO ("------------------------------------------------------");
}
if (time/60.0e0 >= (max_walltime*60.0e0 - on_remaining_walltime*1.0e0))
{
CCTK_INFO ("------------------------------------------------------");
- CCTK_VInfo (CCTK_THORNSTRING, "Remaining wallclock time for your job "
- "is %1.2f minutes. Triggering termination ...",
- (max_walltime*60.0-time/60.0));
+ CCTK_VInfo (CCTK_THORNSTRING, "Remaining walltime is %1.2f minutes. \n"
+ "Triggering termination ...", (max_walltime*60.0-time/60.0));
CCTK_INFO ("------------------------------------------------------");
CCTK_TerminateNext (cctkGH);
}