Index: /trunk/anuga_core/source/anuga/abstract_2d_finite_volumes/general_mesh.py
===================================================================
--- /trunk/anuga_core/source/anuga/abstract_2d_finite_volumes/general_mesh.py	(revision 8504)
+++ /trunk/anuga_core/source/anuga/abstract_2d_finite_volumes/general_mesh.py	(revision 8505)
@@ -363,5 +363,5 @@
 
         # Build structure listing which triangles belong to which node.
-        if verbose: log.critical('Building inverted triangle structure')
+        if verbose: log.critical('General Mesh: Building inverted triangle structure')
         self.build_inverted_triangle_structure()
         
@@ -774,5 +774,5 @@
         #number_of_triangles_per_node = num.zeros(self.number_of_nodes, num.int)
 
-        number_of_triangles_per_node = num.bincount(self.triangles.flatten())
+        number_of_triangles_per_node = num.bincount(self.triangles.flat)
 
         number_of_lone_nodes = self.number_of_nodes - len(number_of_triangles_per_node)
@@ -796,12 +796,18 @@
         # find vertices associated with a node.
         # ie There are  number_of_triangles_per_node[i] vertices
-        vertex_value_indices = num.argsort(self.triangles.flatten())
+        vertex_value_indices = num.argsort(self.triangles.flat)
+        #vertex_value_indices = num.argsort(self.triangles.flatten())
+
+#        node_index = num.zeros((self.number_of_nodes)+1, dtype = num.int)
+#        node_index[0] = 0
+#        for i in xrange(self.number_of_nodes):
+#            node_index[i+1] = node_index[i] + number_of_triangles_per_node[i]
 
         node_index = num.zeros((self.number_of_nodes)+1, dtype = num.int)
-
-        k = 0
-        node_index[0] = 0
-        for i in range(self.number_of_nodes):
-            node_index[i+1] = node_index[i] + number_of_triangles_per_node[i]
+        node_index[1:] = num.cumsum(number_of_triangles_per_node)
+
+        #assert num.allclose(node_index,node_index_new)
+
+
 
 
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 8504)
+++ /trunk/anuga_core/source/anuga/abstract_2d_finite_volumes/generic_domain.py	(revision 8505)
@@ -33,4 +33,5 @@
     Generic computational Domain constructor.
     '''
+
 
     def __init__(self, source=None,
@@ -72,4 +73,7 @@
         """
 
+
+        if verbose: log.critical('Domain: Initialising')
+
         # FIXME SR: This is a bug
         number_of_full_nodes=None
@@ -82,8 +86,9 @@
             coordinates = source
 
-        if verbose: log.critical('Domain: Initialising')
+
 
         # In case a filename has been specified, extract content
         if mesh_filename is not None:
+
             coordinates, triangles, boundary, vertex_quantity_dict, \
                          tagged_elements, geo_reference = \
@@ -101,4 +106,6 @@
                          #number_of_full_triangles=number_of_full_triangles,
                          verbose=verbose)
+
+        if verbose: log.critical('Domain: Expose mesh attributes')
 
         # Expose Mesh attributes (FIXME: Maybe turn into methods)
@@ -134,5 +141,5 @@
 
 
-
+        if verbose: log.critical('Domain: Expose quantity names and types')
         # List of quantity names entering the conservation equations
         if conserved_quantities is None:
@@ -160,4 +167,5 @@
             
 
+        if verbose: log.critical('Domain: Build Quantities')
         # Build dictionary of Quantity instances keyed by quantity names
         self.quantities = {}
@@ -198,6 +206,5 @@
 
         # Setup Communication Buffers
-        if verbose: log.critical('Domain: Set up communication buffers '
-                                 '(parallel)')
+        if verbose: log.critical('Domain: Set up communication buffers ')
         self.nsys = len(self.conserved_quantities)
         for key in self.full_send_dict:
@@ -213,9 +220,10 @@
 
 
-
+        # Setup triangle full flag
+        if verbose: log.critical('Domain: Set up triangle/node full flags ')
         N = len(self) #number_of_elements
         self.number_of_elements = N
 
-        # Setup cell full flag
+        
         # =1 for full
         # =0 for ghost
@@ -229,10 +237,10 @@
 
 
-        # Identify full nodes as thosethat intersect a full triangle.
+        # Identify full nodes as those that intersect a full triangle.
 
         Vol_ids  = self.vertex_value_indices/3
         W = num.repeat(self.tri_full_flag, 3)
 
-        self.node_full_flag = num.minimum(num.bincount(self.triangles.flatten(), weights = W).astype(num.int), 1)
+        self.node_full_flag = num.minimum(num.bincount(self.triangles.flat, weights = W).astype(num.int), 1)
 
 
@@ -250,4 +258,6 @@
 
         # Defaults
+        if verbose: log.critical('Domain: Set defaults')
+
         from anuga.config import max_smallsteps, beta_w, epsilon
         from anuga.config import CFL
@@ -301,4 +311,7 @@
         self.simulation_name = 'domain'
         self.checkpoint = False
+
+        if verbose: log.critical('Domain: Set work arrays')
+
 
         # To avoid calculating the flux across each edge twice, keep an integer
Index: /trunk/anuga_core/source/anuga/abstract_2d_finite_volumes/pmesh2domain.py
===================================================================
--- /trunk/anuga_core/source/anuga/abstract_2d_finite_volumes/pmesh2domain.py	(revision 8504)
+++ /trunk/anuga_core/source/anuga/abstract_2d_finite_volumes/pmesh2domain.py	(revision 8505)
@@ -9,4 +9,5 @@
 import sys
 import numpy as num
+import anuga.utilities.log as log
 
 
@@ -89,5 +90,7 @@
     use_cache: True means that caching is attempted for the computed domain.    
     """
- 
+
+    if verbose: log.critical('Pmesh_to_Domain: Initialising')
+    
     if use_cache is True:
         from caching import cache
@@ -97,5 +100,7 @@
     else:
         result = apply(_pmesh_to_domain, (file_name, mesh_instance))        
-        
+
+    if verbose: log.critical('Pmesh_to_Domain: Done')
+
     return result
 
Index: /trunk/anuga_core/source/anuga/abstract_2d_finite_volumes/quantity.py
===================================================================
--- /trunk/anuga_core/source/anuga/abstract_2d_finite_volumes/quantity.py	(revision 8504)
+++ /trunk/anuga_core/source/anuga/abstract_2d_finite_volumes/quantity.py	(revision 8505)
@@ -673,5 +673,5 @@
             assert len(values.shape) == 1 or num.allclose(values.shape[1:], 1), msg
 
-            self.set_vertex_values(values.flatten(), indices=indices,
+            self.set_vertex_values(values.flat, indices=indices,
                                    use_cache=use_cache, verbose=verbose)
         else:
Index: /trunk/anuga_core/source/anuga/pmesh/mesh_interface.py
===================================================================
--- /trunk/anuga_core/source/anuga/pmesh/mesh_interface.py	(revision 8504)
+++ /trunk/anuga_core/source/anuga/pmesh/mesh_interface.py	(revision 8505)
@@ -243,5 +243,5 @@
 
             # Test that we have a polygon
-            if len(num.array(interior_polygon).flatten()) < 6:
+            if len(num.array(interior_polygon).flat) < 6:
                 msg = 'Interior hole polygon %s has too few (<3) points.\n' \
                     %(str(interior_polygon))
