Index: /trunk/anuga_core/source/anuga/abstract_2d_finite_volumes/generic_domain.py
===================================================================
--- /trunk/anuga_core/source/anuga/abstract_2d_finite_volumes/generic_domain.py	(revision 8063)
+++ /trunk/anuga_core/source/anuga/abstract_2d_finite_volumes/generic_domain.py	(revision 8064)
@@ -499,6 +499,5 @@
         """Get the absolute model time (seconds)."""
 
-        return self.time + self.starttime
-
+        return self.time
 
     ##
@@ -1016,4 +1015,5 @@
 
         model_time = self.get_time()
+ 
         if self.recorded_min_timestep == self.recorded_max_timestep:
             msg += 'Time = %.4f, delta t = %.8f, steps=%d' \
@@ -1225,6 +1225,6 @@
         # Observe time interval restriction if any
         if self.monitor_time_interval is not None and\
-               (self.time < self.monitor_time_interval[0] or\
-               self.time > self.monitor_time_interval[1]):
+               (self.get_time() < self.monitor_time_interval[0] or\
+               self.get_time() > self.monitor_time_interval[1]):
             return
 
@@ -1249,5 +1249,5 @@
                 maxloc = Q.get_maximum_location()
                 info_block['max_location'] = maxloc
-                info_block['max_time'] = self.time
+                info_block['max_time'] = self.get_time()
 
             # Update minimum
@@ -1258,5 +1258,5 @@
                 minloc = Q.get_minimum_location()
                 info_block['min_location'] = minloc
-                info_block['min_time'] = self.time
+                info_block['min_time'] = self.get_time()
 
     ##
@@ -1428,4 +1428,6 @@
         assert hasattr(self, 'boundary_objects'), msg
 
+        self.set_time(self.get_starttime())
+
         if yieldstep is None:
             yieldstep = self.evolve_max_timestep
@@ -1445,5 +1447,5 @@
 
         N = len(self)                             # Number of triangles
-        self.yieldtime = self.time + yieldstep    # set next yield time
+        self.yieldtime = self.get_time() + yieldstep    # set next yield time
 
         # Initialise interval of timestep sizes (for reporting only)
@@ -1467,6 +1469,4 @@
         self.update_extrema()
 
-
-
         # Or maybe restore from latest checkpoint
         if self.checkpoint is True:
@@ -1474,9 +1474,9 @@
 
         if skip_initial_step is False:
-            yield(self.time)      # Yield initial values
+            yield(self.get_time())      # Yield initial values
 
         while True:
 
-            initial_time = self.time
+            initial_time = self.get_time()
 
             #==========================================
@@ -1484,11 +1484,11 @@
             #==========================================
             if self.get_timestepping_method() == 'euler':
-                self.evolve_one_euler_step(yieldstep, finaltime)
+                self.evolve_one_euler_step(yieldstep, self.finaltime)
 
             elif self.get_timestepping_method() == 'rk2':
-                self.evolve_one_rk2_step(yieldstep, finaltime)
+                self.evolve_one_rk2_step(yieldstep, self.finaltime)
 
             elif self.get_timestepping_method() == 'rk3':
-                self.evolve_one_rk3_step(yieldstep, finaltime)
+                self.evolve_one_rk3_step(yieldstep, self.finaltime)
 
             #==========================================
@@ -1503,5 +1503,5 @@
 
             # Update time
-            self.time = initial_time + self.timestep
+            self.set_time(initial_time + self.timestep)
 
             # Update vertex and edge values
@@ -1519,21 +1519,21 @@
 
             # Yield results
-            if finaltime is not None and self.time >= finaltime-epsilon:
-                if self.time > finaltime:
+            if self.finaltime is not None and self.get_time() >= self.finaltime-epsilon:
+                
+                if self.get_time() > self.finaltime:
                     # FIXME (Ole, 30 April 2006): Do we need this check?
                     # Probably not (Ole, 18 September 2008).
                     # Now changed to Exception.
-                    msg = ('WARNING (domain.py): time overshot finaltime. '
-                           'Contact Ole.Nielsen@ga.gov.au')
+                    msg = ('WARNING (domain.py): time overshot finaltime. ')
                     raise Exception, msg
 
                 # Log and then Yield final time and stop
-                self.time = finaltime
+                self.set_time(self.finaltime)
                 self.log_operator_timestepping_statistics()
-                yield(self.time)
+                yield(self.get_time())
                 break
 
             # if we are at the next yield point
-            if self.time >= self.yieldtime:
+            if self.get_time() >= self.yieldtime:
                 # Yield (intermediate) time and allow inspection of domain
                 if self.checkpoint is True:
@@ -1543,5 +1543,5 @@
                 # Log and then Pass control on to outer loop for more specific actions
                 self.log_operator_timestepping_statistics()
-                yield(self.time)
+                yield(self.get_time())
 
                 # Reinitialise
@@ -1614,5 +1614,5 @@
 
         # Update time
-        self.time += self.timestep
+        self.set_time(self.get_time() + self.timestep)
 
         # Update vertex and edge values
@@ -1663,5 +1663,5 @@
         self.backup_conserved_quantities()
 
-        initial_time = self.time
+        initial_time = self.get_time()
 
         ######
@@ -1685,5 +1685,5 @@
 
         # Update time
-        self.time += self.timestep
+        self.set_time(self.time + self.timestep)
 
         # Update vertex and edge values
@@ -1721,5 +1721,5 @@
 
         # Set substep time
-        self.time = initial_time + self.timestep*0.5
+        self.set_time(initial_time + self.timestep*0.5)
 
         # Update vertex and edge values
@@ -1754,5 +1754,5 @@
 
         # Set new time
-        self.time = initial_time + self.timestep
+        self.set_time(initial_time + self.timestep)
 
 
@@ -1941,10 +1941,10 @@
 
         # Ensure that final time is not exceeded
-        if finaltime is not None and self.time + timestep > finaltime :
-            timestep = finaltime-self.time
+        if finaltime is not None and self.get_time() + timestep > finaltime :
+            timestep = finaltime - self.get_time()
 
         # Ensure that model time is aligned with yieldsteps
-        if self.time + timestep > self.yieldtime:
-            timestep = self.yieldtime - self.time
+        if self.get_time() + timestep > self.yieldtime:
+            timestep = self.yieldtime - self.get_time()
 
         self.timestep = timestep
@@ -2075,5 +2075,5 @@
             for i in range(self.number_of_full_triangles):
                 if self.max_speed[i] > bins[-1]:
-                    msg = 'Time=%f: Ignoring isolated high ' % self.time
+                    msg = 'Time=%f: Ignoring isolated high ' % self.get_time()
                     msg += 'speed triangle '
                     msg += '#%d of %d with max speed=%f' \
