<p><b>dwj07@fsu.edu</b> 2012-05-11 15:06:29 -0600 (Fri, 11 May 2012)</p><p><br>
        -- BRANCH COMMIT --<br>
<br>
        Updating exchange list description in design document.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/omp_blocks/docs/mpas_multiple_blocks.pdf
===================================================================
(Binary files differ)

Modified: branches/omp_blocks/docs/mpas_multiple_blocks.tex
===================================================================
--- branches/omp_blocks/docs/mpas_multiple_blocks.tex        2012-05-11 20:38:33 UTC (rev 1899)
+++ branches/omp_blocks/docs/mpas_multiple_blocks.tex        2012-05-11 21:06:29 UTC (rev 1900)
@@ -191,43 +191,48 @@
 end type exchange_list
 \end{lstlisting}
 
-The exchange lists need to be split to accommodate shared memory copies. The
-distributed memory exchange lists won't change, aside from their name. These
-can be seen below
+The exchange lists requires less information now, and can be seen below:
 
 \begin{lstlisting}[language=fortran,escapechar=@,frame=single]
-@\colorbox{yellow}{type distributed\_exchange\_list}@
-  integer :: procID
-  integer :: blockID
+type mpas_exchange_list
+  integer :: endPointID
   integer :: nlist
-  integer, dimension(:), pointer :: list
+  integer, dimension(:), pointer :: srcList
+  integer, dimension(:), pointer :: destList
   type (exchange_list), pointer :: next
-  real (kind=RKIND), dimension(:), pointer :: rbuffer
-  integer, dimension(:), pointer           :: ibuffer
-  integer :: reqID
-@\colorbox{yellow}{end type distributed\_exchange\_list}@
+end type mpas_exchange_list
 \end{lstlisting}
 
-In addition to these new distributed memory exchange lists, shared memory
-exchange lists will be created as well. The shared memory exchange list can be
-seen below
+where endPointID can represent a procID or a blockID, srcList represents where
+the data should come from, and destList represents where the data should go.
+These are different depending on the specific type of exchange list provided.
+In the case of a sendList, srcList represents the indices in the current field's
+array to grab data from while destList represents where in the buffer array
+this data should go. These are opposite for recvLists. While copyLists are
+built on the sending block side, and srcList represents the indices in the
+current field's array to get the data from while destList represnts the indices
+in the receiving block's array's field to put the data into.
+
 \begin{lstlisting}[language=fortran,escapechar=@,frame=single]
-@\colorbox{yellow}{type shared\_exchange\_list}@
-  integer :: blockID
+type mpas_communication_list
+  integer :: procID
   integer :: nlist
-  @\colorbox{yellow}{integer, dimension(:), pointer :: srcList}@
-  @\colorbox{yellow}{integer, dimension(:), pointer :: destList}@
   type (exchange_list), pointer :: next
-@\colorbox{yellow}{end type shared\_exchange\_list}@
+  real (kind=RKIND), dimension(:), pointer :: rbuffer
+  integer, dimension(:), pointer           :: ibuffer
+  integer :: reqID
+end type mpas_communication_list
 \end{lstlisting}
 
-The new exchange list will be tied to a field which should be recieving data,
-therefore blockID now refers to the block that the data should be taken from.
-Since these are all shared memory copies the procID is not needed anymore, and
-because they are local copies no buffers are required to send/recieve the data.
-However, the list field is not split into srcList and destList to allow the
-complement of two exchange lists within the shared memory context.
+where the communication list is created with the understanding that it handles
+MPI send/recvs, procID is either the receiving processorID or the sending
+processorID from the other end of the communication, nlist represents the total
+number of elements in this communication list, rbuffer and ibuffer represent
+the data buffers for the communications, and reqID represents the mpi request id.
 
+Communication lists are used to aggregate mpi communication
+buffers across multiple blocks.
+
 Changes within the framework of MPAS can be seen below. To begin, a name change
 to the dmpar module is proposed. The new name will be mpas\_comm.F rather than
 mpas\_dmpar.F.

</font>
</pre>