<p><b>duda</b> 2009-11-13 17:17:20 -0700 (Fri, 13 Nov 2009)</p><p>Add fix to allow variables with nVertLevels as their outer-most <br>
dimension to be written properly for multi-processor runs.<br>
<br>
M module_io_output.F<br>
</p><hr noshade><pre><font color="gray">Modified: trunk/swmodel/src/module_io_output.F
===================================================================
--- trunk/swmodel/src/module_io_output.F        2009-10-29 17:01:25 UTC (rev 69)
+++ trunk/swmodel/src/module_io_output.F        2009-11-14 00:17:20 UTC (rev 70)
@@ -107,6 +107,7 @@
integer, dimension(:), pointer :: neededCellList
integer, dimension(:), pointer :: neededEdgeList
integer, dimension(:), pointer :: neededVertexList
+ integer, dimension(:), pointer :: neededVertLevelList
integer, dimension(:,:), pointer :: cellsOnCell, edgesOnCell, verticesOnCell, &
cellsOnEdge, verticesOnEdge, edgesOnEdge, cellsOnVertex, edgesOnVertex
integer, dimension(:,:), pointer :: cellsOnCell_save, edgesOnCell_save, verticesOnCell_save, &
@@ -193,6 +194,7 @@
allocate(neededCellList(nCellsGlobal))
allocate(neededEdgeList(nEdgesGlobal))
allocate(neededVertexList(nVerticesGlobal))
+ allocate(neededVertLevelList(nVertLevelsGlobal))
do i=1,nCellsGlobal
neededCellList(i) = i
end do
@@ -202,10 +204,14 @@
do i=1,nVerticesGlobal
neededVertexList(i) = i
end do
+ do i=1,nVertLevelsGlobal
+ neededVertLevelList(i) = i
+ end do
else
allocate(neededCellList(0))
allocate(neededEdgeList(0))
allocate(neededVertexList(0))
+ allocate(neededVertLevelList(0))
end if
if (.not. output_obj % validExchangeLists) then
@@ -224,6 +230,11 @@
domain % blocklist % mesh % indexToVertexID % array, neededVertexList, &
output_obj % sendVerticesList, output_obj % recvVerticesList)
+ call dmpar_get_owner_list(domain % dminfo, &
+ size(neededVertLevelList), size(neededVertLevelList), &
+ neededVertLevelList, neededVertLevelList, &
+ output_obj % sendVertLevelsList, output_obj % recvVertLevelsList)
+
output_obj % validExchangeLists = .true.
end if
</font>
</pre>