Index: /anuga_core/source/anuga/abstract_2d_finite_volumes/domain.py
===================================================================
--- /anuga_core/source/anuga/abstract_2d_finite_volumes/domain.py	(revision 3630)
+++ /anuga_core/source/anuga/abstract_2d_finite_volumes/domain.py	(revision 3631)
@@ -355,4 +355,20 @@
 
 
+    def modify_boundary(self, boundary_map):
+        """Modify existing boundary by elements in boundary map
+
+        Input:
+
+        boundary_map: Dictionary mapping tags to boundary objects
+
+        See set_boundary for more details on how this works
+        """
+
+        for key in boundary_map.keys():
+            self.boundary_map[key] = boundary_map[key]
+
+        self.set_boundary(self.boundary_map)
+        
+        
 
     def set_boundary(self, boundary_map):
Index: /anuga_work/production/karratha_2006/run_karratha.py
===================================================================
--- /anuga_work/production/karratha_2006/run_karratha.py	(revision 3630)
+++ /anuga_work/production/karratha_2006/run_karratha.py	(revision 3631)
@@ -1,3 +1,3 @@
-"""Script for running a tsunami inundation scenario for Broome, WA, Australia.
+"""Script for running tsunami inundation scenario for Karratha, WA, Australia.
 
 Source data such as elevation and boundary data is assumed to be available in
@@ -8,5 +8,5 @@
 the elevation data and a simulated submarine landslide.
 
-Ole Nielsen and Duncan Gray, GA - 2005 and Nick Bartzis, GA - 2006
+Ole Nielsen and Duncan Gray, GA - 2005 and Jane Sexton, Nick Bartzis, GA - 2006
 """
 #------------------------------------------------------------------------------
@@ -17,5 +17,9 @@
 from os import sep
 from os.path import dirname, basename
+from os import mkdir, access, F_OK
+from shutil import copy
 import time
+import sys
+
 
 # Related major packages
@@ -27,9 +31,5 @@
 from anuga.pmesh.mesh_interface import create_mesh_from_regions
 
-from shutil import copy
-from os import mkdir, access, F_OK
 from anuga.geospatial_data.geospatial_data import *
-import sys
-from anuga.abstract_2d_finite_volumes.util import Screen_Catcher
 
 # Application specific imports
@@ -58,16 +58,8 @@
     print 'project.outputtimedir',project.outputtimedir
 
-    # normal screen output is stored in 
-    screen_output_name = project.outputtimedir + 'screen_output.txt'
-    screen_error_name = project.outputtimedir + 'screen_error.txt'
-
-    # used to catch screen output to file
-    #sys.stdout = Screen_Catcher(screen_output_name)
-    #sys.stderr = Screen_Catcher(screen_error_name)
-    print 'USER:    ', project.user
-
 
     #--------------------------------------------------------------------------
-    # Create the triangular mesh based on overall clipping polygon with a tagged
+    # Create the triangular mesh based on overall clipping polygon with a
+    # tagged
     # boundary and interior regions defined in project.py along with
     # resolutions (maximal area of per triangle) for each polygon
@@ -75,14 +67,6 @@
 
 
-    resolution = 4000
-    interior_regions = [[project.neil1_polygon, resolution],
-                        [project.neil2_polygon, 64000]]
-
-    print 'number of interior regions', len(interior_regions)
-
-
     print 'start create mesh from regions'
     from caching import cache
-
     meshname = project.meshname + '_%d.msh' %myid
     _ = cache(create_mesh_from_regions,
@@ -90,18 +74,14 @@
               {'boundary_tags': {'back': [7, 8], 'side': [0, 6],
                                  'ocean': [1, 2, 3, 4, 5]},
-               'maximum_triangle_area': 100000,
+               'maximum_triangle_area': 200000,
                'filename': meshname},
-              #'interior_regions': interior_regions},
               verbose = True,
               evaluate = False)
 
-    #-------------------------------------------------------------------------  
+    #-------------------------------------------------------------------------
     # Setup computational domain
     #-------------------------------------------------------------------------
-
     domain = Domain(meshname, use_cache = True, verbose = True)
     print domain.statistics()
-
-
     domain.set_name(project.basename)
     domain.set_datadir(project.outputtimedir)
@@ -111,7 +91,5 @@
     # Setup initial conditions
     #-------------------------------------------------------------------------
-
     tide = 0.
-    
     domain.set_quantity('stage', tide)
     domain.set_quantity('friction', 0.0) 
@@ -120,6 +98,5 @@
                         use_cache = False,
                         verbose = True,
-                        alpha = 0.1
-                        )
+                        alpha = 0.1)
     
     #-------------------------------------------------------------------------
@@ -128,5 +105,4 @@
 
     print 'Available boundary tags', domain.get_boundary_tags()
-
     Bf = File_boundary(source_dir + project.boundary_basename + '.sww', 
                        domain, verbose = True)
@@ -135,6 +111,5 @@
     domain.set_boundary({'back': Br,
                          'side': Bd,
-                         #'ocean': None}) # Bind this one later
-                         'ocean': Bf}) # Bind this one later    
+                         'ocean': None}) # Bind this one later
 else:
     domain = None
@@ -146,5 +121,4 @@
 domain = distribute(domain, verbose=True)
 
-
 # Set those boundaries that can't be communicated automatically
 Bf = File_boundary(source_dir + project.boundary_basename + '.sww',
@@ -152,8 +126,5 @@
 boundary_map = domain.boundary_map
 boundary_map['ocean'] = Bf
-
-print boundary_map
 domain.set_boundary(boundary_map)
-
 
 
Index: /anuga_work/production/wollongong_2006/run_flagstaff_parallel_api.py
===================================================================
--- /anuga_work/production/wollongong_2006/run_flagstaff_parallel_api.py	(revision 3630)
+++ /anuga_work/production/wollongong_2006/run_flagstaff_parallel_api.py	(revision 3631)
@@ -32,11 +32,4 @@
 
 # Parallelism
-import pypar   # The Python-MPI interface
-from anuga_parallel.pmesh_divide  import pmesh_divide_metis
-from anuga_parallel.build_submesh import build_submesh
-from anuga_parallel.build_local   import build_local_mesh
-from anuga_parallel.build_commun  import send_submesh, rec_submesh, extract_hostmesh
-from anuga_parallel.parallel_shallow_water import Parallel_Domain
-
 from anuga_parallel.parallel_api import *
 
@@ -89,7 +82,7 @@
                         verbose=True)
 
-    #------------------------------------------------------------------------------
+    #-------------------------------------------------------------------------
     # Setup boundary conditions
-    #------------------------------------------------------------------------------
+    #-------------------------------------------------------------------------
 
     
@@ -108,12 +101,9 @@
 
 
-
 # Set those boundaries that can't be pickled here using boundary_map.
 W = Time_boundary(domain = domain,
                   f=lambda t: [project.initial_sealevel + (60<t<480)*6, 0, 0])
 
-boundary_map = domain.boundary_map
-boundary_map['ocean'] = W
-domain.set_boundary(boundary_map)
+domain.modify_boundary({'ocean': W})
 
 
