<p><b>duda</b> 2009-11-17 14:15:20 -0700 (Tue, 17 Nov 2009)</p><p>Add fix to allow variables with nVertLevels as their outer-most <br>
dimension to be read properly for multi-processor runs. This<br>
change essentailly does for reading what the change in r70 did <br>
for writing. <br>
<br>
M    swmodel/src/module_io_input.F<br>
</p><hr noshade><pre><font color="gray">Modified: trunk/swmodel/src/module_io_input.F
===================================================================
--- trunk/swmodel/src/module_io_input.F        2009-11-16 23:17:45 UTC (rev 72)
+++ trunk/swmodel/src/module_io_input.F        2009-11-17 21:15:20 UTC (rev 73)
@@ -75,6 +75,7 @@
       integer, dimension(:,:), pointer :: vertexIDSorted
    
       integer, dimension(:), pointer :: local_cell_list, local_edge_list, local_vertex_list
+      integer, dimension(:), pointer :: local_vertlevel_list, needed_vertlevel_list
       integer :: nlocal_edges, nlocal_vertices
       type (exchange_list), pointer :: sendCellList, recvCellList
       type (exchange_list), pointer :: sendEdgeList, recvEdgeList
@@ -411,7 +412,28 @@
                                 indexToVertexIDField % array, local_vertex_list, &amp;
                                 sendVertexList, recvVertexList)
 
+      if (domain % dminfo % my_proc_id == 0) then
+         allocate(local_vertlevel_list(nVertLevels))
+         do i=1,nVertLevels
+            local_vertlevel_list(i) = i
+         end do
+      else
+         allocate(local_vertlevel_list(0))
+      end if
+      allocate(needed_vertlevel_list(nVertLevels))
+      do i=1,nVertLevels
+         needed_vertlevel_list(i) = i
+      end do
 
+      call dmpar_get_owner_list(domain % dminfo, &amp;
+                                size(local_vertlevel_list), size(needed_vertlevel_list), &amp;
+                                local_vertlevel_list, needed_vertlevel_list, &amp;
+                                sendVertLevelList, recvVertLevelList)
+
+      deallocate(local_vertlevel_list)
+      deallocate(needed_vertlevel_list)
+
+
       !
       ! Read and distribute all fields given ownership lists and exchange lists (maybe already in block?)
       !
@@ -464,9 +486,6 @@
     
       end if
 
-      nullify(sendVertLevelList)
-      nullify(recvVertLevelList)
-
       call read_and_distribute_fields(domain % dminfo, input_obj, domain % blocklist, &amp;
                                       readCellStart, nReadCells, readEdgeStart, nReadEdges, readVertexStart, nReadVertices, &amp;
                                       readVertLevelStart, nReadVertLevels, &amp;

</font>
</pre>