<p><b>duda</b> 2012-01-09 15:01:16 -0700 (Mon, 09 Jan 2012)</p><p>BRANCH COMMIT<br>
<br>
Add copy lists for shared-memory copies of ghost cells to complement<br>
the existing send and receive lists for MPI communication of ghost cells.<br>
<br>
<br>
M    src/registry/gen_inc.c<br>
M    src/framework/mpas_grid_types.F<br>
</p><hr noshade><pre><font color="gray">Modified: branches/omp_blocks/ddt_reorg/src/framework/mpas_grid_types.F
===================================================================
--- branches/omp_blocks/ddt_reorg/src/framework/mpas_grid_types.F        2012-01-09 21:23:30 UTC (rev 1326)
+++ branches/omp_blocks/ddt_reorg/src/framework/mpas_grid_types.F        2012-01-09 22:01:16 UTC (rev 1327)
@@ -149,10 +149,15 @@
    type parallel_info
       type (exchange_list), pointer :: cellsToSend            ! List of types describing which cells to send to other blocks
       type (exchange_list), pointer :: cellsToRecv            ! List of types describing which cells to receive from other blocks
+      type (exchange_list), pointer :: cellsToCopy            ! List of types describing which cells to copy from other blocks
+
       type (exchange_list), pointer :: edgesToSend            ! List of types describing which edges to send to other blocks
       type (exchange_list), pointer :: edgesToRecv            ! List of types describing which edges to receive from other blocks
+      type (exchange_list), pointer :: edgesToCopy            ! List of types describing which edges to copy from other blocks
+
       type (exchange_list), pointer :: verticesToSend         ! List of types describing which vertices to send to other blocks
       type (exchange_list), pointer :: verticesToRecv         ! List of types describing which vertices to receive from other blocks
+      type (exchange_list), pointer :: verticesToCopy         ! List of types describing which vertices to copy from other blocks
    end type parallel_info
 
 

Modified: branches/omp_blocks/ddt_reorg/src/registry/gen_inc.c
===================================================================
--- branches/omp_blocks/ddt_reorg/src/registry/gen_inc.c        2012-01-09 21:23:30 UTC (rev 1326)
+++ branches/omp_blocks/ddt_reorg/src/registry/gen_inc.c        2012-01-09 22:01:16 UTC (rev 1327)
@@ -866,18 +866,21 @@
                   for(i=1; i&lt;=var_ptr2-&gt;ntime_levs; i++) {
                      fortprintf(fd, &quot;         b %% %s %% time_levs(%i) %% %s %% %s %% sendList =&gt; b %% parinfo %% cellsToSend</font>
<font color="black">&quot;, group_ptr-&gt;name, i, group_ptr-&gt;name, var_ptr2-&gt;super_array); 
                      fortprintf(fd, &quot;         b %% %s %% time_levs(%i) %% %s %% %s %% recvList =&gt; b %% parinfo %% cellsToRecv</font>
<font color="blue">&quot;, group_ptr-&gt;name, i, group_ptr-&gt;name, var_ptr2-&gt;super_array); 
+                     fortprintf(fd, &quot;         b %% %s %% time_levs(%i) %% %s %% %s %% copyList =&gt; b %% parinfo %% cellsToCopy</font>
<font color="black">&quot;, group_ptr-&gt;name, i, group_ptr-&gt;name, var_ptr2-&gt;super_array); 
                   }
                }
                else if (strncmp(&quot;nEdges&quot;,outer_dim,1024) == 0) {
                   for(i=1; i&lt;=var_ptr2-&gt;ntime_levs; i++) {
                      fortprintf(fd, &quot;         b %% %s %% time_levs(%i) %% %s %% %s %% sendList =&gt; b %% parinfo %% edgesToSend</font>
<font color="black">&quot;, group_ptr-&gt;name, i, group_ptr-&gt;name, var_ptr2-&gt;super_array); 
                      fortprintf(fd, &quot;         b %% %s %% time_levs(%i) %% %s %% %s %% recvList =&gt; b %% parinfo %% edgesToRecv</font>
<font color="blue">&quot;, group_ptr-&gt;name, i, group_ptr-&gt;name, var_ptr2-&gt;super_array); 
+                     fortprintf(fd, &quot;         b %% %s %% time_levs(%i) %% %s %% %s %% copyList =&gt; b %% parinfo %% edgesToCopy</font>
<font color="black">&quot;, group_ptr-&gt;name, i, group_ptr-&gt;name, var_ptr2-&gt;super_array); 
                   }
                }
                else if (strncmp(&quot;nVertices&quot;,outer_dim,1024) == 0) {
                   for(i=1; i&lt;=var_ptr2-&gt;ntime_levs; i++) {
                      fortprintf(fd, &quot;         b %% %s %% time_levs(%i) %% %s %% %s %% sendList =&gt; b %% parinfo %% verticesToSend</font>
<font color="black">&quot;, group_ptr-&gt;name, i, group_ptr-&gt;name, var_ptr2-&gt;super_array); 
                      fortprintf(fd, &quot;         b %% %s %% time_levs(%i) %% %s %% %s %% recvList =&gt; b %% parinfo %% verticesToRecv</font>
<font color="blue">&quot;, group_ptr-&gt;name, i, group_ptr-&gt;name, var_ptr2-&gt;super_array); 
+                     fortprintf(fd, &quot;         b %% %s %% time_levs(%i) %% %s %% %s %% copyList =&gt; b %% parinfo %% verticesToCopy</font>
<font color="gray">&quot;, group_ptr-&gt;name, i, group_ptr-&gt;name, var_ptr2-&gt;super_array); 
                   }
                }
             }
@@ -885,7 +888,18 @@
                if (strncmp(&quot;nCells&quot;,outer_dim,1024) == 0) {
                   fortprintf(fd, &quot;         b %% %s %% %s %% sendList =&gt; b %% parinfo %% cellsToSend</font>
<font color="black">&quot;, group_ptr-&gt;name, var_ptr2-&gt;super_array); 
                   fortprintf(fd, &quot;         b %% %s %% %s %% recvList =&gt; b %% parinfo %% cellsToRecv</font>
<font color="blue">&quot;, group_ptr-&gt;name, var_ptr2-&gt;super_array); 
+                  fortprintf(fd, &quot;         b %% %s %% %s %% copyList =&gt; b %% parinfo %% cellsToCopy</font>
<font color="blue">&quot;, group_ptr-&gt;name, var_ptr2-&gt;super_array); 
                }
+               else if (strncmp(&quot;nEdges&quot;,outer_dim,1024) == 0) {
+                  fortprintf(fd, &quot;         b %% %s %% %s %% sendList =&gt; b %% parinfo %% edgesToSend</font>
<font color="blue">&quot;, group_ptr-&gt;name, var_ptr2-&gt;super_array); 
+                  fortprintf(fd, &quot;         b %% %s %% %s %% recvList =&gt; b %% parinfo %% edgesToRecv</font>
<font color="blue">&quot;, group_ptr-&gt;name, var_ptr2-&gt;super_array); 
+                  fortprintf(fd, &quot;         b %% %s %% %s %% copyList =&gt; b %% parinfo %% edgesToCopy</font>
<font color="blue">&quot;, group_ptr-&gt;name, var_ptr2-&gt;super_array); 
+               }
+               else if (strncmp(&quot;nVertices&quot;,outer_dim,1024) == 0) {
+                  fortprintf(fd, &quot;         b %% %s %% %s %% sendList =&gt; b %% parinfo %% verticesToSend</font>
<font color="blue">&quot;, group_ptr-&gt;name, var_ptr2-&gt;super_array); 
+                  fortprintf(fd, &quot;         b %% %s %% %s %% recvList =&gt; b %% parinfo %% verticesToRecv</font>
<font color="blue">&quot;, group_ptr-&gt;name, var_ptr2-&gt;super_array); 
+                  fortprintf(fd, &quot;         b %% %s %% %s %% copyList =&gt; b %% parinfo %% verticesToCopy</font>
<font color="blue">&quot;, group_ptr-&gt;name, var_ptr2-&gt;super_array); 
+               }
             }
             fortprintf(fd, &quot;</font>
<font color="gray">&quot;);
          }
@@ -897,14 +911,17 @@
                      if (strncmp(&quot;nCells&quot;,outer_dim,1024) == 0) {
                        fortprintf(fd, &quot;         b %% %s %% time_levs(%i) %% %s %% %s %% sendList =&gt; b %% parinfo %% cellsToSend</font>
<font color="black">&quot;, group_ptr-&gt;name, i, group_ptr-&gt;name, var_ptr-&gt;name_in_code); 
                        fortprintf(fd, &quot;         b %% %s %% time_levs(%i) %% %s %% %s %% recvList =&gt; b %% parinfo %% cellsToRecv</font>
<font color="blue">&quot;, group_ptr-&gt;name, i, group_ptr-&gt;name, var_ptr-&gt;name_in_code); 
+                       fortprintf(fd, &quot;         b %% %s %% time_levs(%i) %% %s %% %s %% copyList =&gt; b %% parinfo %% cellsToCopy</font>
<font color="black">&quot;, group_ptr-&gt;name, i, group_ptr-&gt;name, var_ptr-&gt;name_in_code); 
                      }
                      else if (strncmp(&quot;nEdges&quot;,outer_dim,1024) == 0) {
                        fortprintf(fd, &quot;         b %% %s %% time_levs(%i) %% %s %% %s %% sendList =&gt; b %% parinfo %% edgesToSend</font>
<font color="black">&quot;, group_ptr-&gt;name, i, group_ptr-&gt;name, var_ptr-&gt;name_in_code); 
                        fortprintf(fd, &quot;         b %% %s %% time_levs(%i) %% %s %% %s %% recvList =&gt; b %% parinfo %% edgesToRecv</font>
<font color="blue">&quot;, group_ptr-&gt;name, i, group_ptr-&gt;name, var_ptr-&gt;name_in_code); 
+                       fortprintf(fd, &quot;         b %% %s %% time_levs(%i) %% %s %% %s %% copyList =&gt; b %% parinfo %% edgesToCopy</font>
<font color="black">&quot;, group_ptr-&gt;name, i, group_ptr-&gt;name, var_ptr-&gt;name_in_code); 
                      }
                      else if (strncmp(&quot;nVertices&quot;,outer_dim,1024) == 0) {
                        fortprintf(fd, &quot;         b %% %s %% time_levs(%i) %% %s %% %s %% sendList =&gt; b %% parinfo %% verticesToSend</font>
<font color="black">&quot;, group_ptr-&gt;name, i, group_ptr-&gt;name, var_ptr-&gt;name_in_code); 
                        fortprintf(fd, &quot;         b %% %s %% time_levs(%i) %% %s %% %s %% recvList =&gt; b %% parinfo %% verticesToRecv</font>
<font color="blue">&quot;, group_ptr-&gt;name, i, group_ptr-&gt;name, var_ptr-&gt;name_in_code); 
+                       fortprintf(fd, &quot;         b %% %s %% time_levs(%i) %% %s %% %s %% copyList =&gt; b %% parinfo %% verticesToCopy</font>
<font color="gray">&quot;, group_ptr-&gt;name, i, group_ptr-&gt;name, var_ptr-&gt;name_in_code); 
                      }
                   }
                }
@@ -912,14 +929,17 @@
                   if (strncmp(&quot;nCells&quot;,outer_dim,1024) == 0) {
                      fortprintf(fd, &quot;         b %% %s %% %s %% sendList =&gt; b %% parinfo %% cellsToSend</font>
<font color="black">&quot;, group_ptr-&gt;name, var_ptr-&gt;name_in_code); 
                      fortprintf(fd, &quot;         b %% %s %% %s %% recvList =&gt; b %% parinfo %% cellsToRecv</font>
<font color="blue">&quot;, group_ptr-&gt;name, var_ptr-&gt;name_in_code); 
+                     fortprintf(fd, &quot;         b %% %s %% %s %% copyList =&gt; b %% parinfo %% cellsToCopy</font>
<font color="black">&quot;, group_ptr-&gt;name, var_ptr-&gt;name_in_code); 
                   }
                   else if (strncmp(&quot;nEdges&quot;,outer_dim,1024) == 0) {
                      fortprintf(fd, &quot;         b %% %s %% %s %% sendList =&gt; b %% parinfo %% edgesToSend</font>
<font color="black">&quot;, group_ptr-&gt;name, var_ptr-&gt;name_in_code); 
                      fortprintf(fd, &quot;         b %% %s %% %s %% recvList =&gt; b %% parinfo %% edgesToRecv</font>
<font color="blue">&quot;, group_ptr-&gt;name, var_ptr-&gt;name_in_code); 
+                     fortprintf(fd, &quot;         b %% %s %% %s %% copyList =&gt; b %% parinfo %% edgesToCopy</font>
<font color="black">&quot;, group_ptr-&gt;name, var_ptr-&gt;name_in_code); 
                   }
                   else if (strncmp(&quot;nVertices&quot;,outer_dim,1024) == 0) {
                      fortprintf(fd, &quot;         b %% %s %% %s %% sendList =&gt; b %% parinfo %% verticesToSend</font>
<font color="black">&quot;, group_ptr-&gt;name, var_ptr-&gt;name_in_code); 
                      fortprintf(fd, &quot;         b %% %s %% %s %% recvList =&gt; b %% parinfo %% verticesToRecv</font>
<font color="blue">&quot;, group_ptr-&gt;name, var_ptr-&gt;name_in_code); 
+                     fortprintf(fd, &quot;         b %% %s %% %s %% copyList =&gt; b %% parinfo %% verticesToCopy</font>
<font color="black">&quot;, group_ptr-&gt;name, var_ptr-&gt;name_in_code); 
                   }
                }
                fortprintf(fd, &quot;</font>
<font color="black">&quot;);

</font>
</pre>