<p><b>duda</b> 2009-08-12 15:24:01 -0600 (Wed, 12 Aug 2009)</p><p>Modifications to allow the code to be compiled without MPI.<br>
To compile without MPI, select appropriate serial compilers<br>
for FC and CC in the Makefile, and also remove -D_MPI from<br>
CPPFLAGS.<br>
<br>
Also, wrap lines longer than 132 characters.<br>
<br>
<br>
M    module_dmpar.F<br>
M    module_timer.F<br>
M    module_block_decomp.F<br>
</p><hr noshade><pre><font color="gray">Modified: trunk/swmodel/module_block_decomp.F
===================================================================
--- trunk/swmodel/module_block_decomp.F        2009-08-12 21:15:59 UTC (rev 26)
+++ trunk/swmodel/module_block_decomp.F        2009-08-12 21:24:01 UTC (rev 27)
@@ -27,48 +27,54 @@
       integer :: i, j, owner, iunit, istatus, local_nvertices
       character (len=256) :: filename
 
-      iunit = 50 + dminfo % my_proc_id
-      if (dminfo % nprocs &lt; 10) then
-         write(filename,'(a,i1)') 'graph.info.part.', dminfo % nprocs
-      else if (dminfo % nprocs &lt; 100) then
-         write(filename,'(a,i2)') 'graph.info.part.', dminfo % nprocs
-      else if (dminfo % nprocs &lt; 1000) then
-         write(filename,'(a,i3)') 'graph.info.part.', dminfo % nprocs
-      else if (dminfo % nprocs &lt; 10000) then
-         write(filename,'(a,i4)') 'graph.info.part.', dminfo % nprocs
-      else if (dminfo % nprocs &lt; 100000) then
-         write(filename,'(a,i5)') 'graph.info.part.', dminfo % nprocs
-      end if
-    
-      open(unit=iunit, file=trim(filename), form='formatted', status='old', iostat=istatus)
+      if (dminfo % nprocs &gt; 1) then
 
-      if (istatus /= 0) then
-         write(0,*) 'Could not open block decomposition file for ',dminfo % nprocs,' tasks.'
-         write(0,*) 'Filename: ',trim(filename)
-         call dmpar_abort(dminfo)
-      end if
-
-      local_nvertices = 0
-      do i=1,partial_global_graph_info % nVerticesTotal
-         read(unit=iunit, fmt=*) owner
-         if (owner == dminfo % my_proc_id) local_nvertices = local_nvertices + 1
-      end do
-
-      allocate(local_cell_list(local_nvertices))
-
-      rewind(unit=iunit)
-
-      j = 0
-      do i=1,partial_global_graph_info % nVerticesTotal
-         read(unit=iunit, fmt=*) owner
-         if (owner == dminfo % my_proc_id) then
-            j = j + 1
-            local_cell_list(j) = i
+         iunit = 50 + dminfo % my_proc_id
+         if (dminfo % nprocs &lt; 10) then
+            write(filename,'(a,i1)') 'graph.info.part.', dminfo % nprocs
+         else if (dminfo % nprocs &lt; 100) then
+            write(filename,'(a,i2)') 'graph.info.part.', dminfo % nprocs
+         else if (dminfo % nprocs &lt; 1000) then
+            write(filename,'(a,i3)') 'graph.info.part.', dminfo % nprocs
+         else if (dminfo % nprocs &lt; 10000) then
+            write(filename,'(a,i4)') 'graph.info.part.', dminfo % nprocs
+         else if (dminfo % nprocs &lt; 100000) then
+            write(filename,'(a,i5)') 'graph.info.part.', dminfo % nprocs
          end if
-      end do
+       
+         open(unit=iunit, file=trim(filename), form='formatted', status='old', iostat=istatus)
+   
+         if (istatus /= 0) then
+            write(0,*) 'Could not open block decomposition file for ',dminfo % nprocs,' tasks.'
+            write(0,*) 'Filename: ',trim(filename)
+            call dmpar_abort(dminfo)
+         end if
+   
+         local_nvertices = 0
+         do i=1,partial_global_graph_info % nVerticesTotal
+            read(unit=iunit, fmt=*) owner
+            if (owner == dminfo % my_proc_id) local_nvertices = local_nvertices + 1
+         end do
+   
+         allocate(local_cell_list(local_nvertices))
+   
+         rewind(unit=iunit)
+   
+         j = 0
+         do i=1,partial_global_graph_info % nVerticesTotal
+            read(unit=iunit, fmt=*) owner
+            if (owner == dminfo % my_proc_id) then
+               j = j + 1
+               local_cell_list(j) = i
+            end if
+         end do
+   
+         close(unit=iunit)
+      else
+         allocate(local_cell_list(partial_global_graph_info % nVerticesTotal))
+         local_cell_list(:) = dminfo % my_proc_id
+      endif
 
-      close(unit=iunit)
-
    end subroutine block_decomp_cells_for_proc
 
 
@@ -208,7 +214,8 @@
       call hash_init(h)
 
       do i=1,local_graph_info % nVertices
-if (hash_search(h, local_graph_info % vertexID(i))) write(0,*) 'block_decomp_add_halo: There appear to be duplicates in vertexID list.'
+if (hash_search(h, local_graph_info % vertexID(i))) &amp;
+  write(0,*) 'block_decomp_add_halo: There appear to be duplicates in vertexID list.'
          call hash_insert(h, local_graph_info % vertexID(i)) 
          local_graph_with_halo % vertexID(i) = local_graph_info % vertexID(i) 
          local_graph_with_halo % nAdjacent(i) = local_graph_info % nAdjacent(i) 
@@ -216,7 +223,8 @@
       end do
 
       k = local_graph_with_halo % ghostStart
-if (hash_size(h) /= k-1) write(0,*) 'block_decomp_add_halo: Somehow we don''t have the right number of non-ghost cells.'
+if (hash_size(h) /= k-1) &amp;
+  write(0,*) 'block_decomp_add_halo: Somehow we don''t have the right number of non-ghost cells.'
       do i=1,local_graph_info % nVertices
          do j=1,local_graph_info % nAdjacent(i)
             if (.not. hash_search(h, local_graph_info % adjacencyList(j,i))) then
@@ -226,7 +234,8 @@
             end if
          end do
       end do 
-if (local_graph_with_halo % nVerticesTotal /= k-1) write(0,*) 'block_decomp_add_halo: Somehow we don''t have the right number of total cells.'
+if (local_graph_with_halo % nVerticesTotal /= k-1) &amp;
+  write(0,*) 'block_decomp_add_halo: Somehow we don''t have the right number of total cells.'
 
       call hash_destroy(h)
 

Modified: trunk/swmodel/module_dmpar.F
===================================================================
--- trunk/swmodel/module_dmpar.F        2009-08-12 21:15:59 UTC (rev 26)
+++ trunk/swmodel/module_dmpar.F        2009-08-12 21:24:01 UTC (rev 27)
@@ -4,13 +4,13 @@
 
 #ifdef _MPI
 include 'mpif.h'
-#endif
 
 #if (RKIND == 8)
    integer, parameter :: MPI_REALKIND = MPI_DOUBLE_PRECISION
 #else
    integer, parameter :: MPI_REALKIND = MPI_REAL
 #endif
+#endif
 
    integer, parameter :: IO_NODE = 0
    integer, parameter :: BUFSIZE = 6000
@@ -65,14 +65,13 @@
 
       call open_streams(dminfo % my_proc_id)
 
+      dminfo % info = MPI_INFO_NULL
 #else
       dminfo % comm = 0
       dminfo % my_proc_id = IO_NODE
       dminfo % nprocs = 1
 #endif
 
-      dminfo % info = MPI_INFO_NULL
-
    end subroutine dmpar_init
 
 
@@ -118,7 +117,11 @@
 
       integer :: mpi_ierr
 
+#ifdef _MPI
       call MPI_Allreduce(i, isum, 1, MPI_INTEGER, MPI_SUM, dminfo % comm, mpi_ierr)
+#else
+      isum = i
+#endif
 
    end subroutine dmpar_sum_int
 
@@ -158,6 +161,7 @@
          global_start = 1
          global_end = global_start + n - 1
          
+#ifdef _MPI
       else if (dminfo % my_proc_id == dminfo % nprocs - 1) then
          call MPI_Recv(global_start, 1, MPI_INTEGER, dminfo % my_proc_id - 1, 0, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
          global_end = global_start + n - 1
@@ -167,6 +171,7 @@
          global_end = global_start + n
          call MPI_Send(global_end, 1, MPI_INTEGER, dminfo % my_proc_id + 1, 0, dminfo % comm, mpi_ierr)
          global_end = global_end - 1
+#endif
 
       end if
       
@@ -192,6 +197,7 @@
       integer :: mpi_ierr
 
 
+#ifdef _MPI
       nLoop = dminfo % nprocs / 2
 
       allocate(buffer(BUFSIZE))
@@ -241,7 +247,8 @@
                do while (istart &lt;= recvListPtr % nlist)
                   call MPI_Recv(nRecvBuf, 1, MPI_INTEGER, leftNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
                   call MPI_Recv(buffer, nRecvBuf, MPI_INTEGER, leftNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
-                  call unpackRecvBuf1dInteger(nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, lastUnpackedIdx)
+                  call unpackRecvBuf1dInteger(nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, &amp;
+                                              lastUnpackedIdx)
                   istart = lastUnpackedIdx + 1
                end do
             end if
@@ -251,7 +258,8 @@
                   do while (istart &lt;= recvListPtr % nlist)
                      call MPI_Recv(nRecvBuf, 1, MPI_INTEGER, rightNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
                      call MPI_Recv(buffer, nRecvBuf, MPI_INTEGER, rightNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
-                     call unpackRecvBuf1dInteger(nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, lastUnpackedIdx)
+                     call unpackRecvBuf1dInteger(nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, &amp;
+                                                 lastUnpackedIdx)
                      istart = lastUnpackedIdx + 1
                   end do
                end if
@@ -272,7 +280,8 @@
                do while (istart &lt;= recvListPtr % nlist)
                   call MPI_Recv(nRecvBuf, 1, MPI_INTEGER, rightNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
                   call MPI_Recv(buffer, nRecvBuf, MPI_INTEGER, rightNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
-                  call unpackRecvBuf1dInteger(nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, lastUnpackedIdx)
+                  call unpackRecvBuf1dInteger(nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, &amp;
+                                              lastUnpackedIdx)
                   istart = lastUnpackedIdx + 1
                end do
             end if
@@ -300,7 +309,8 @@
                   do while (istart &lt;= recvListPtr % nlist)
                      call MPI_Recv(nRecvBuf, 1, MPI_INTEGER, leftNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
                      call MPI_Recv(buffer, nRecvBuf, MPI_INTEGER, leftNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
-                     call unpackRecvBuf1dInteger(nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, lastUnpackedIdx)
+                     call unpackRecvBuf1dInteger(nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, &amp;
+                                                 lastUnpackedIdx)
                      istart = lastUnpackedIdx + 1
                   end do
                end if
@@ -310,6 +320,14 @@
       end do
 
       deallocate(buffer)
+#else
+      if (nOwnedList /= nNeededList) then
+         write(0,*) 'Error in dmpar_alltoall_field: For non-dmpar, arrayIn and arrayOut dims must match.'
+         call dmpar_abort(dminfo)
+      else
+         arrayOut(:) = arrayIn(:)
+      end if
+#endif
 
    end subroutine dmpar_alltoall_field1dInteger
 
@@ -333,6 +351,7 @@
       integer :: d1
 
 
+#ifdef _MPI
       nLoop = dminfo % nprocs / 2
 
       d1 = dim1
@@ -373,7 +392,8 @@
             if (isInList(leftNeighbor, sendList, sendListPtr)) then
                istart = 1
                do while (istart &lt;= sendListPtr % nlist)
-                  call packSendBuf2dInteger(1, d1, nOwnedList, arrayIn, sendListPtr, istart, BUFSIZE, buffer, nSendBuf, lastPackedIdx)
+                  call packSendBuf2dInteger(1, d1, nOwnedList, arrayIn, sendListPtr, istart, BUFSIZE, buffer, nSendBuf, &amp;
+                                            lastPackedIdx)
                   call MPI_Send(nSendBuf, 1, MPI_INTEGER, leftNeighbor, i, dminfo % comm, mpi_ierr)
                   call MPI_Send(buffer, nSendBuf, MPI_INTEGER, leftNeighbor, i, dminfo % comm, mpi_ierr)
                   istart = lastPackedIdx + 1
@@ -384,7 +404,8 @@
                do while (istart &lt;= recvListPtr % nList)
                   call MPI_Recv(nRecvBuf, 1, MPI_INTEGER, leftNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
                   call MPI_Recv(buffer, nRecvBuf, MPI_INTEGER, leftNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
-                  call unpackRecvBuf2dInteger(1, d1, nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, lastUnpackedIdx)
+                  call unpackRecvBuf2dInteger(1, d1, nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, &amp;
+                                              lastUnpackedIdx)
                   istart = lastUnpackedIdx + 1
                end do
             end if
@@ -394,14 +415,16 @@
                   do while (istart &lt;= recvListPtr % nList)
                      call MPI_Recv(nRecvBuf, 1, MPI_INTEGER, rightNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
                      call MPI_Recv(buffer, nRecvBuf, MPI_INTEGER, rightNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
-                     call unpackRecvBuf2dInteger(1, d1, nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, lastUnpackedIdx)
+                     call unpackRecvBuf2dInteger(1, d1, nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, 
+                                                 lastUnpackedIdx)
                      istart = lastUnpackedIdx + 1
                   end do
                end if
                if (isInList(rightNeighbor, sendList, sendListPtr)) then
                   istart = 1
                   do while (istart &lt;= sendListPtr % nlist)
-                     call packSendBuf2dInteger(1, d1, nOwnedList, arrayIn, sendListPtr, istart, BUFSIZE, buffer, nSendBuf, lastPackedIdx)
+                     call packSendBuf2dInteger(1, d1, nOwnedList, arrayIn, sendListPtr, istart, BUFSIZE, buffer, nSendBuf, &amp;
+                                               lastPackedIdx)
                      call MPI_Send(nSendBuf, 1, MPI_INTEGER, rightNeighbor, i, dminfo % comm, mpi_ierr)
                      call MPI_Send(buffer, nSendBuf, MPI_INTEGER, rightNeighbor, i, dminfo % comm, mpi_ierr)
                      istart = lastPackedIdx + 1
@@ -415,14 +438,16 @@
                do while (istart &lt;= recvListPtr % nList)
                   call MPI_Recv(nRecvBuf, 1, MPI_INTEGER, rightNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
                   call MPI_Recv(buffer, nRecvBuf, MPI_INTEGER, rightNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
-                  call unpackRecvBuf2dInteger(1, d1, nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, lastUnpackedIdx)
+                  call unpackRecvBuf2dInteger(1, d1, nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, 
+                                              lastUnpackedIdx)
                   istart = lastUnpackedIdx + 1
                end do
             end if
             if (isInList(rightNeighbor, sendList, sendListPtr)) then
                istart = 1
                do while (istart &lt;= sendListPtr % nlist)
-                  call packSendBuf2dInteger(1, d1, nOwnedList, arrayIn, sendListPtr, istart, BUFSIZE, buffer, nSendBuf, lastPackedIdx)
+                  call packSendBuf2dInteger(1, d1, nOwnedList, arrayIn, sendListPtr, istart, BUFSIZE, buffer, nSendBuf, &amp;
+                                            lastPackedIdx)
                   call MPI_Send(nSendBuf, 1, MPI_INTEGER, rightNeighbor, i, dminfo % comm, mpi_ierr)
                   call MPI_Send(buffer, nSendBuf, MPI_INTEGER, rightNeighbor, i, dminfo % comm, mpi_ierr)
                   istart = lastPackedIdx + 1
@@ -432,7 +457,8 @@
                if (isInList(leftNeighbor, sendList, sendListPtr)) then
                   istart = 1
                   do while (istart &lt;= sendListPtr % nlist)
-                     call packSendBuf2dInteger(1, d1, nOwnedList, arrayIn, sendListPtr, istart, BUFSIZE, buffer, nSendBuf, lastPackedIdx)
+                     call packSendBuf2dInteger(1, d1, nOwnedList, arrayIn, sendListPtr, istart, BUFSIZE, buffer, nSendBuf, &amp;
+                                               lastPackedIdx)
                      call MPI_Send(nSendBuf, 1, MPI_INTEGER, leftNeighbor, i, dminfo % comm, mpi_ierr)
                      call MPI_Send(buffer, nSendBuf, MPI_INTEGER, leftNeighbor, i, dminfo % comm, mpi_ierr)
                      istart = lastPackedIdx + 1
@@ -443,7 +469,8 @@
                   do while (istart &lt;= recvListPtr % nList)
                      call MPI_Recv(nRecvBuf, 1, MPI_INTEGER, leftNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
                      call MPI_Recv(buffer, nRecvBuf, MPI_INTEGER, leftNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
-                     call unpackRecvBuf2dInteger(1, d1, nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, lastUnpackedIdx)
+                     call unpackRecvBuf2dInteger(1, d1, nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, &amp;
+                                                 lastUnpackedIdx)
                      istart = lastUnpackedIdx + 1
                   end do
                end if
@@ -453,6 +480,14 @@
       end do
 
       deallocate(buffer)
+#else
+      if (nOwnedList /= nNeededList) then
+         write(0,*) 'Error in dmpar_alltoall_field: For non-dmpar, arrayIn and arrayOut dims must match.'
+         call dmpar_abort(dminfo)
+      else
+         arrayOut(:,:) = arrayIn(:,:)
+      end if
+#endif
 
    end subroutine dmpar_alltoall_field2dInteger
 
@@ -623,6 +658,7 @@
       logical :: needToRecv
       integer :: mpi_ierr
 
+#ifdef _MPI
       do i=1,nOwnedList
          ownedListSorted(1,i) = ownedList(i)
          ownedListSorted(2,i) = i
@@ -902,7 +938,26 @@
       deallocate(recvListPtr)
 
       call MPI_Barrier(dminfo % comm, mpi_ierr)
+#else
+      allocate(recvList)
+      recvList % procID = dminfo % my_proc_id
+      recvList % nlist = nNeededList
+      allocate(recvList % list(nNeededList))
+      nullify(recvList % next)
+      do j=1,nNeededList
+         recvList % list(j) = j
+      end do
 
+      allocate(sendList)
+      sendList % procID = dminfo % my_proc_id
+      sendList % nlist = nOwnedList
+      allocate(sendList % list(nOwnedList))
+      nullify(sendList % next)
+      do j=1,nOwnedList
+         sendList % list(j) = j
+      end do
+#endif
+
    end subroutine dmpar_get_owner_list
 
   
@@ -924,6 +979,7 @@
       integer :: mpi_ierr
 
 
+#ifdef _MPI
       nLoop = dminfo % nprocs / 2
 
       allocate(buffer(BUFSIZE))
@@ -983,7 +1039,8 @@
                   do while (istart &lt;= recvListPtr % nlist)
                      call MPI_Recv(nRecvBuf, 1, MPI_INTEGER, rightNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
                      call MPI_Recv(buffer, nRecvBuf, MPI_REALKIND, rightNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
-                     call unpackRecvBuf1dReal(nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, lastUnpackedIdx)
+                     call unpackRecvBuf1dReal(nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, &amp;
+                                              lastUnpackedIdx)
                      istart = lastUnpackedIdx + 1
                   end do
                end if
@@ -1032,7 +1089,8 @@
                   do while (istart &lt;= recvListPtr % nlist)
                      call MPI_Recv(nRecvBuf, 1, MPI_INTEGER, leftNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
                      call MPI_Recv(buffer, nRecvBuf, MPI_REALKIND, leftNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
-                     call unpackRecvBuf1dReal(nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, lastUnpackedIdx)
+                     call unpackRecvBuf1dReal(nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, &amp;
+                                              lastUnpackedIdx)
                      istart = lastUnpackedIdx + 1
                   end do
                end if
@@ -1042,6 +1100,14 @@
       end do
 
       deallocate(buffer)
+#else
+      if (nOwnedList /= nNeededList) then
+         write(0,*) 'Error in dmpar_alltoall_field: For non-dmpar, arrayIn and arrayOut dims must match.'
+         call dmpar_abort(dminfo)
+      else
+         arrayOut(:) = arrayIn(:)
+      end if
+#endif
 
    end subroutine dmpar_alltoall_field1dReal
 
@@ -1065,6 +1131,7 @@
       integer :: d1
 
 
+#ifdef _MPI
       nLoop = dminfo % nprocs / 2
 
       d1 = dim1
@@ -1116,7 +1183,8 @@
                do while (istart &lt;= recvListPtr % nList)
                   call MPI_Recv(nRecvBuf, 1, MPI_INTEGER, leftNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
                   call MPI_Recv(buffer, nRecvBuf, MPI_REALKIND, leftNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
-                  call unpackRecvBuf2dReal(1, d1, nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, lastUnpackedIdx)
+                  call unpackRecvBuf2dReal(1, d1, nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, &amp;
+                                           lastUnpackedIdx)
                   istart = lastUnpackedIdx + 1
                end do
             end if
@@ -1126,14 +1194,16 @@
                   do while (istart &lt;= recvListPtr % nList)
                      call MPI_Recv(nRecvBuf, 1, MPI_INTEGER, rightNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
                      call MPI_Recv(buffer, nRecvBuf, MPI_REALKIND, rightNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
-                     call unpackRecvBuf2dReal(1, d1, nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, lastUnpackedIdx)
+                     call unpackRecvBuf2dReal(1, d1, nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, &amp;
+                                              lastUnpackedIdx)
                      istart = lastUnpackedIdx + 1
                   end do
                end if
                if (isInList(rightNeighbor, sendList, sendListPtr)) then
                   istart = 1
                   do while (istart &lt;= sendListPtr % nlist)
-                     call packSendBuf2dReal(1, d1, nOwnedList, arrayIn, sendListPtr, istart, BUFSIZE, buffer, nSendBuf, lastPackedIdx)
+                     call packSendBuf2dReal(1, d1, nOwnedList, arrayIn, sendListPtr, istart, BUFSIZE, buffer, nSendBuf, &amp;
+                                            lastPackedIdx)
                      call MPI_Send(nSendBuf, 1, MPI_INTEGER, rightNeighbor, i, dminfo % comm, mpi_ierr)
                      call MPI_Send(buffer, nSendBuf, MPI_REALKIND, rightNeighbor, i, dminfo % comm, mpi_ierr)
                      istart = lastPackedIdx + 1
@@ -1147,7 +1217,8 @@
                do while (istart &lt;= recvListPtr % nList)
                   call MPI_Recv(nRecvBuf, 1, MPI_INTEGER, rightNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
                   call MPI_Recv(buffer, nRecvBuf, MPI_REALKIND, rightNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
-                  call unpackRecvBuf2dReal(1, d1, nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, lastUnpackedIdx)
+                  call unpackRecvBuf2dReal(1, d1, nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, &amp;
+                                           lastUnpackedIdx)
                   istart = lastUnpackedIdx + 1
                end do
             end if
@@ -1164,7 +1235,8 @@
                if (isInList(leftNeighbor, sendList, sendListPtr)) then
                   istart = 1
                   do while (istart &lt;= sendListPtr % nlist)
-                     call packSendBuf2dReal(1, d1, nOwnedList, arrayIn, sendListPtr, istart, BUFSIZE, buffer, nSendBuf, lastPackedIdx)
+                     call packSendBuf2dReal(1, d1, nOwnedList, arrayIn, sendListPtr, istart, BUFSIZE, buffer, nSendBuf, &amp;
+                                            lastPackedIdx)
                      call MPI_Send(nSendBuf, 1, MPI_INTEGER, leftNeighbor, i, dminfo % comm, mpi_ierr)
                      call MPI_Send(buffer, nSendBuf, MPI_REALKIND, leftNeighbor, i, dminfo % comm, mpi_ierr)
                      istart = lastPackedIdx + 1
@@ -1175,7 +1247,8 @@
                   do while (istart &lt;= recvListPtr % nList)
                      call MPI_Recv(nRecvBuf, 1, MPI_INTEGER, leftNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
                      call MPI_Recv(buffer, nRecvBuf, MPI_REALKIND, leftNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
-                     call unpackRecvBuf2dReal(1, d1, nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, lastUnpackedIdx)
+                     call unpackRecvBuf2dReal(1, d1, nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, &amp;
+                                              lastUnpackedIdx)
                      istart = lastUnpackedIdx + 1
                   end do
                end if
@@ -1185,6 +1258,14 @@
       end do
 
       deallocate(buffer)
+#else
+      if (nOwnedList /= nNeededList) then
+         write(0,*) 'Error in dmpar_alltoall_field: For non-dmpar, arrayIn and arrayOut dims must match.'
+         call dmpar_abort(dminfo)
+      else
+         arrayOut(:,:) = arrayIn(:,:)
+      end if
+#endif
 
    end subroutine dmpar_alltoall_field2dReal
 
@@ -1208,6 +1289,7 @@
       integer :: d1, d2
 
 
+#ifdef _MPI
       nLoop = dminfo % nprocs / 2
 
       d1 = dim1
@@ -1249,7 +1331,8 @@
             if (isInList(leftNeighbor, sendList, sendListPtr)) then
                istart = 1
                do while (istart &lt;= sendListPtr % nlist)
-                  call packSendBuf3dReal(1, d1, 1, d2, nOwnedList, arrayIn, sendListPtr, istart, BUFSIZE, buffer, nSendBuf, lastPackedIdx)
+                  call packSendBuf3dReal(1, d1, 1, d2, nOwnedList, arrayIn, sendListPtr, istart, BUFSIZE, buffer, nSendBuf, &amp;
+                                         lastPackedIdx)
                   call MPI_Send(nSendBuf, 1, MPI_INTEGER, leftNeighbor, i, dminfo % comm, mpi_ierr)
                   call MPI_Send(buffer, nSendBuf, MPI_REALKIND, leftNeighbor, i, dminfo % comm, mpi_ierr)
                   istart = lastPackedIdx + 1
@@ -1260,7 +1343,8 @@
                do while (istart &lt;= recvListPtr % nList)
                   call MPI_Recv(nRecvBuf, 1, MPI_INTEGER, leftNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
                   call MPI_Recv(buffer, nRecvBuf, MPI_REALKIND, leftNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
-                  call unpackRecvBuf3dReal(1, d1, 1, d2, nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, lastUnpackedIdx)
+                  call unpackRecvBuf3dReal(1, d1, 1, d2, nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, &amp;
+                                           lastUnpackedIdx)
                   istart = lastUnpackedIdx + 1
                end do
             end if
@@ -1270,14 +1354,16 @@
                   do while (istart &lt;= recvListPtr % nList)
                      call MPI_Recv(nRecvBuf, 1, MPI_INTEGER, rightNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
                      call MPI_Recv(buffer, nRecvBuf, MPI_REALKIND, rightNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
-                     call unpackRecvBuf3dReal(1, d1, 1, d2, nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, lastUnpackedIdx)
+                     call unpackRecvBuf3dReal(1, d1, 1, d2, nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, &amp;
+                                              nUnpacked, lastUnpackedIdx)
                      istart = lastUnpackedIdx + 1
                   end do
                end if
                if (isInList(rightNeighbor, sendList, sendListPtr)) then
                   istart = 1
                   do while (istart &lt;= sendListPtr % nlist)
-                     call packSendBuf3dReal(1, d1, 1, d2, nOwnedList, arrayIn, sendListPtr, istart, BUFSIZE, buffer, nSendBuf, lastPackedIdx)
+                     call packSendBuf3dReal(1, d1, 1, d2, nOwnedList, arrayIn, sendListPtr, istart, BUFSIZE, buffer, nSendBuf, &amp;
+                                            lastPackedIdx)
                      call MPI_Send(nSendBuf, 1, MPI_INTEGER, rightNeighbor, i, dminfo % comm, mpi_ierr)
                      call MPI_Send(buffer, nSendBuf, MPI_REALKIND, rightNeighbor, i, dminfo % comm, mpi_ierr)
                      istart = lastPackedIdx + 1
@@ -1291,14 +1377,16 @@
                do while (istart &lt;= recvListPtr % nList)
                   call MPI_Recv(nRecvBuf, 1, MPI_INTEGER, rightNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
                   call MPI_Recv(buffer, nRecvBuf, MPI_REALKIND, rightNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
-                  call unpackRecvBuf3dReal(1, d1, 1, d2, nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, lastUnpackedIdx)
+                  call unpackRecvBuf3dReal(1, d1, 1, d2, nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, &amp;
+                                           lastUnpackedIdx)
                   istart = lastUnpackedIdx + 1
                end do
             end if
             if (isInList(rightNeighbor, sendList, sendListPtr)) then
                istart = 1
                do while (istart &lt;= sendListPtr % nlist)
-                  call packSendBuf3dReal(1, d1, 1, d2, nOwnedList, arrayIn, sendListPtr, istart, BUFSIZE, buffer, nSendBuf, lastPackedIdx)
+                  call packSendBuf3dReal(1, d1, 1, d2, nOwnedList, arrayIn, sendListPtr, istart, BUFSIZE, buffer, nSendBuf, &amp;
+                                         lastPackedIdx)
                   call MPI_Send(nSendBuf, 1, MPI_INTEGER, rightNeighbor, i, dminfo % comm, mpi_ierr)
                   call MPI_Send(buffer, nSendBuf, MPI_REALKIND, rightNeighbor, i, dminfo % comm, mpi_ierr)
                   istart = lastPackedIdx + 1
@@ -1308,7 +1396,8 @@
                if (isInList(leftNeighbor, sendList, sendListPtr)) then
                   istart = 1
                   do while (istart &lt;= sendListPtr % nlist)
-                     call packSendBuf3dReal(1, d1, 1, d2, nOwnedList, arrayIn, sendListPtr, istart, BUFSIZE, buffer, nSendBuf, lastPackedIdx)
+                     call packSendBuf3dReal(1, d1, 1, d2, nOwnedList, arrayIn, sendListPtr, istart, BUFSIZE, buffer, nSendBuf, &amp;
+                                            lastPackedIdx)
                      call MPI_Send(nSendBuf, 1, MPI_INTEGER, leftNeighbor, i, dminfo % comm, mpi_ierr)
                      call MPI_Send(buffer, nSendBuf, MPI_REALKIND, leftNeighbor, i, dminfo % comm, mpi_ierr)
                      istart = lastPackedIdx + 1
@@ -1319,7 +1408,8 @@
                   do while (istart &lt;= recvListPtr % nList)
                      call MPI_Recv(nRecvBuf, 1, MPI_INTEGER, leftNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
                      call MPI_Recv(buffer, nRecvBuf, MPI_REALKIND, leftNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
-                     call unpackRecvBuf3dReal(1, d1, 1, d2, nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, lastUnpackedIdx)
+                     call unpackRecvBuf3dReal(1, d1, 1, d2, nNeededList, arrayOut, recvListPtr, istart, BUFSIZE, buffer, &amp;
+                                              nUnpacked, lastUnpackedIdx)
                      istart = lastUnpackedIdx + 1
                   end do
                end if
@@ -1329,6 +1419,14 @@
       end do
 
       deallocate(buffer)
+#else
+      if (nOwnedList /= nNeededList) then
+         write(0,*) 'Error in dmpar_alltoall_field: For non-dmpar, arrayIn and arrayOut dims must match.'
+         call dmpar_abort(dminfo)
+      else
+         arrayOut(:,:,:) = arrayIn(:,:,:)
+      end if
+#endif
 
    end subroutine dmpar_alltoall_field3dReal
 
@@ -1490,7 +1588,8 @@
    end subroutine unpackRecvBuf2dReal
 
 
-   subroutine unpackRecvBuf3dReal(d1s, d1e, d2s, d2e, nField, field, recvList, startUnpackIdx, nBuffer, buffer, nUnpacked, lastUnpackedIdx)
+   subroutine unpackRecvBuf3dReal(d1s, d1e, d2s, d2e, nField, field, recvList, startUnpackIdx, nBuffer, buffer, &amp;
+                                  nUnpacked, lastUnpackedIdx)
 
       implicit none
 
@@ -1542,7 +1641,7 @@
       integer :: mpi_ierr
       integer :: d1, d2
 
-
+#ifdef _MPI
       nLoop = dminfo % nprocs / 2
 
       d1 = dim1
@@ -1658,6 +1757,7 @@
       end do
 
       deallocate(buffer)
+#endif
 
    end subroutine dmpar_exch_halo_field2dReal
 
@@ -1680,6 +1780,7 @@
       integer :: d1, d2, d3
 
 
+#ifdef _MPI
       nLoop = dminfo % nprocs / 2
 
       d1 = dim1
@@ -1727,7 +1828,8 @@
                do while (istart &lt;= recvListPtr % nList)
                   call MPI_Recv(nRecvBuf, 1, MPI_INTEGER, leftNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
                   call MPI_Recv(buffer, nRecvBuf, MPI_REALKIND, leftNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
-                  call unpackRecvBuf3dReal(1, d1, 1, d2, d3, array, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, lastUnpackedIdx)
+                  call unpackRecvBuf3dReal(1, d1, 1, d2, d3, array, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, &amp;
+                                           lastUnpackedIdx)
                   istart = lastUnpackedIdx + 1
                end do
             end if
@@ -1737,7 +1839,8 @@
                   do while (istart &lt;= recvListPtr % nList)
                      call MPI_Recv(nRecvBuf, 1, MPI_INTEGER, rightNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
                      call MPI_Recv(buffer, nRecvBuf, MPI_REALKIND, rightNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
-                     call unpackRecvBuf3dReal(1, d1, 1, d2, d3, array, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, lastUnpackedIdx)
+                     call unpackRecvBuf3dReal(1, d1, 1, d2, d3, array, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, &amp;
+                                              lastUnpackedIdx)
                      istart = lastUnpackedIdx + 1
                   end do
                end if
@@ -1758,7 +1861,8 @@
                do while (istart &lt;= recvListPtr % nList)
                   call MPI_Recv(nRecvBuf, 1, MPI_INTEGER, rightNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
                   call MPI_Recv(buffer, nRecvBuf, MPI_REALKIND, rightNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
-                  call unpackRecvBuf3dReal(1, d1, 1, d2, d3, array, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, lastUnpackedIdx)
+                  call unpackRecvBuf3dReal(1, d1, 1, d2, d3, array, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, &amp;
+                                           lastUnpackedIdx)
                   istart = lastUnpackedIdx + 1
                end do
             end if
@@ -1786,7 +1890,8 @@
                   do while (istart &lt;= recvListPtr % nList)
                      call MPI_Recv(nRecvBuf, 1, MPI_INTEGER, leftNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
                      call MPI_Recv(buffer, nRecvBuf, MPI_REALKIND, leftNeighbor, i, dminfo % comm, MPI_STATUS_IGNORE, mpi_ierr)
-                     call unpackRecvBuf3dReal(1, d1, 1, d2, d3, array, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, lastUnpackedIdx)
+                     call unpackRecvBuf3dReal(1, d1, 1, d2, d3, array, recvListPtr, istart, BUFSIZE, buffer, nUnpacked, &amp;
+                                              lastUnpackedIdx)
                      istart = lastUnpackedIdx + 1
                   end do
                end if
@@ -1796,6 +1901,7 @@
       end do
 
       deallocate(buffer)
+#endif
 
    end subroutine dmpar_exch_halo_field3dReal
 

Modified: trunk/swmodel/module_timer.F
===================================================================
--- trunk/swmodel/module_timer.F        2009-08-12 21:15:59 UTC (rev 26)
+++ trunk/swmodel/module_timer.F        2009-08-12 21:24:01 UTC (rev 27)
@@ -65,7 +65,9 @@
       SAVE
       PRIVATE
 
+#ifdef _MPI
       include 'mpif.h'
+#endif
 
       TYPE timer_node
          CHARACTER (LEN=72) :: event_name
@@ -278,7 +280,9 @@
       CALL system_clock (count_rate=hz)
       wall_now = REAL (clock)/REAL (hz)
 
+#ifdef _MPI
       CALL MPI_BARRIER (MPI_COMM_WORLD,ierr)
+#endif
 
       IF (.NOT.ASSOCIATED (timer_events)) THEN
          PRINT *,' timer_write :: timer_write called with no events initiated '
@@ -365,12 +369,16 @@
                ENDDO
             ENDIF
 
+#ifdef _MPI
             CALL MPI_BARRIER (MPI_COMM_WORLD,ierr)
+#endif
 
          ENDDO
       ENDIF
 
+#ifdef _MPI
       CALL MPI_BARRIER (MPI_COMM_WORLD,ierr)
+#endif
 
    10 FORMAT (1x,i5,' : ',a20,l1,2f15.5,f8.2)
    20 FORMAT (1x,i5,' : ',a20,l1,2f15.5     )

</font>
</pre>