<p><b>duda</b> 2011-06-29 12:19:49 -0600 (Wed, 29 Jun 2011)</p><p>BRANCH COMMIT<br>
<br>
Add changes to registry and I/O modules so that nVertLevelsP1 is treated<br>
as just another non-decomposed dimension, rather than as a special case.<br>
These changes allow us to dimension a variable with nVertLevelsP1 as the<br>
outer-most dimension.<br>
<br>
<br>
M    src/registry/gen_inc.c<br>
M    src/framework/module_io_input.F<br>
M    src/framework/module_io_output.F<br>
</p><hr noshade><pre><font color="gray">Modified: branches/atmos_physics/src/framework/module_io_input.F
===================================================================
--- branches/atmos_physics/src/framework/module_io_input.F        2011-06-28 17:44:22 UTC (rev 906)
+++ branches/atmos_physics/src/framework/module_io_input.F        2011-06-29 18:19:49 UTC (rev 907)
@@ -107,7 +107,6 @@
       type (exchange_list), pointer :: sendEdgeList, recvEdgeList
       type (exchange_list), pointer :: sendVertexList, recvVertexList
       type (exchange_list), pointer :: sendVertLevelList, recvVertLevelList
-      type (exchange_list), pointer :: sendVertLevelP1List, recvVertLevelP1List
       type (exchange_list), pointer :: send1Halo, recv1Halo
       type (exchange_list), pointer :: send2Halo, recv2Halo
       type (graph) :: partial_global_graph_info
@@ -698,28 +697,7 @@
       deallocate(local_vertlevel_list)
       deallocate(needed_vertlevel_list)
 
-      if (domain % dminfo % my_proc_id == 0) then
-         allocate(local_vertlevel_list(nVertLevels+1))
-         do i=1,nVertLevels+1
-            local_vertlevel_list(i) = i
-         end do
-      else
-         allocate(local_vertlevel_list(0))
-      end if
-      allocate(needed_vertlevel_list(nVertLevels+1))
-      do i=1,nVertLevels+1
-         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;
-                                sendVertLevelP1List, recvVertLevelP1List)
-
-      deallocate(local_vertlevel_list)
-      deallocate(needed_vertlevel_list)
-
-
       !
       ! Read and distribute all fields given ownership lists and exchange lists (maybe already in block?)
       !
@@ -803,7 +781,7 @@
                                       readCellStart, nReadCells, readEdgeStart, nReadEdges, readVertexStart, nReadVertices, &amp;
                                       readVertLevelStart, nReadVertLevels, &amp;
                                       sendCellList, recvCellList, sendEdgeList, recvEdgeList, sendVertexList, recvVertexList, &amp;
-                                      sendVertLevelList, recvVertLevelList, sendVertLevelP1List, recvVertLevelP1List) 
+                                      sendVertLevelList, recvVertLevelList) 
 
 
       call io_input_finalize(input_obj, domain % dminfo)
@@ -1015,8 +993,7 @@
                                      sendCellsList, recvCellsList, &amp;
                                      sendEdgesList, recvEdgesList, &amp;
                                      sendVerticesList, recvVerticesList, &amp;
-                                     sendVertLevelsList, recvVertLevelsList, &amp; 
-                                     sendVertLevelsP1List, recvVertLevelsP1List) 
+                                     sendVertLevelsList, recvVertLevelsList)
       
       implicit none
 
@@ -1029,7 +1006,6 @@
       type (exchange_list), pointer :: sendEdgesList, recvEdgesList
       type (exchange_list), pointer :: sendVerticesList, recvVerticesList
       type (exchange_list), pointer :: sendVertLevelsList, recvVertLevelsList
-      type (exchange_list), pointer :: sendVertLevelsP1List, recvVertLevelsP1List
 
       type (field1dInteger) :: int1d
       type (field2dInteger) :: int2d

Modified: branches/atmos_physics/src/framework/module_io_output.F
===================================================================
--- branches/atmos_physics/src/framework/module_io_output.F        2011-06-28 17:44:22 UTC (rev 906)
+++ branches/atmos_physics/src/framework/module_io_output.F        2011-06-29 18:19:49 UTC (rev 907)
@@ -23,7 +23,6 @@
       type (exchange_list), pointer :: sendEdgesList, recvEdgesList
       type (exchange_list), pointer :: sendVerticesList, recvVerticesList
       type (exchange_list), pointer :: sendVertLevelsList, recvVertLevelsList
-      type (exchange_list), pointer :: sendVertLevelsP1List, recvVertLevelsP1List
    end type io_output_object
 
 
@@ -68,8 +67,6 @@
       nullify(output_obj % recvVerticesList)
       nullify(output_obj % sendVertLevelsList)
       nullify(output_obj % recvVertLevelsList)
-      nullify(output_obj % sendVertLevelsP1List)
-      nullify(output_obj % recvVertLevelsP1List)
       output_obj % validExchangeLists = .false.
 
 #include &quot;output_dim_inits.inc&quot;
@@ -115,7 +112,6 @@
       integer, dimension(:), pointer :: neededEdgeList
       integer, dimension(:), pointer :: neededVertexList
       integer, dimension(:), pointer :: neededVertLevelList
-      integer, dimension(:), pointer :: neededVertLevelP1List
       integer, dimension(:,:), pointer :: cellsOnCell, edgesOnCell, verticesOnCell, &amp;
                                           cellsOnEdge, verticesOnEdge, edgesOnEdge, cellsOnVertex, edgesOnVertex
       integer, dimension(:,:), pointer :: cellsOnCell_save, edgesOnCell_save, verticesOnCell_save, &amp;
@@ -218,7 +214,6 @@
          allocate(neededEdgeList(nEdgesGlobal))
          allocate(neededVertexList(nVerticesGlobal))
          allocate(neededVertLevelList(nVertLevelsGlobal))
-         allocate(neededVertLevelP1List(nVertLevelsGlobal+1))
          do i=1,nCellsGlobal
             neededCellList(i) = i
          end do
@@ -231,15 +226,11 @@
          do i=1,nVertLevelsGlobal
             neededVertLevelList(i) = i
          end do
-         do i=1,nVertLevelsGlobal+1
-            neededVertLevelP1List(i) = i
-         end do
       else
          allocate(neededCellList(0))
          allocate(neededEdgeList(0))
          allocate(neededVertexList(0))
          allocate(neededVertLevelList(0))
-         allocate(neededVertLevelP1List(0))
       end if
 
       if (.not. output_obj % validExchangeLists) then
@@ -263,11 +254,6 @@
                                    neededVertLevelList, neededVertLevelList, &amp;
                                    output_obj % sendVertLevelsList, output_obj % recvVertLevelsList)
 
-         call dmpar_get_owner_list(domain % dminfo, &amp;
-                                   size(neededVertLevelP1List), size(neededVertLevelP1List), &amp;
-                                   neededVertLevelP1List, neededVertLevelP1List, &amp;
-                                   output_obj % sendVertLevelsP1List, output_obj % recvVertLevelsP1List)
-
          output_obj % validExchangeLists = .true.
       end if
 

Modified: branches/atmos_physics/src/registry/gen_inc.c
===================================================================
--- branches/atmos_physics/src/registry/gen_inc.c        2011-06-28 17:44:22 UTC (rev 906)
+++ branches/atmos_physics/src/registry/gen_inc.c        2011-06-29 18:19:49 UTC (rev 907)
@@ -815,7 +815,7 @@
       if (strncmp(dim_ptr-&gt;name_in_file,&quot;nCells&quot;,1024) != 0 &amp;&amp;
           strncmp(dim_ptr-&gt;name_in_file,&quot;nEdges&quot;,1024) != 0 &amp;&amp;
           strncmp(dim_ptr-&gt;name_in_file,&quot;nVertices&quot;,1024) != 0 &amp;&amp;
-          strncmp(dim_ptr-&gt;name_in_file,&quot;nVertLevels&quot;,11) != 0
+          strncmp(dim_ptr-&gt;name_in_file,&quot;nVertLevels&quot;,1024) != 0
          ) {
 
          if (is_derived_dim(dim_ptr-&gt;name_in_code)) {
@@ -855,7 +855,7 @@
       if (strncmp(dim_ptr-&gt;name_in_file,&quot;nCells&quot;,1024) != 0 &amp;&amp;
           strncmp(dim_ptr-&gt;name_in_file,&quot;nEdges&quot;,1024) != 0 &amp;&amp;
           strncmp(dim_ptr-&gt;name_in_file,&quot;nVertices&quot;,1024) != 0 &amp;&amp;
-          strncmp(dim_ptr-&gt;name_in_file,&quot;nVertLevels&quot;,11) != 0
+          strncmp(dim_ptr-&gt;name_in_file,&quot;nVertLevels&quot;,1024) != 0
          ) {
 
          if (is_derived_dim(dim_ptr-&gt;name_in_code)) {
@@ -954,7 +954,7 @@
       if (strncmp(dim_ptr-&gt;name_in_file,&quot;nCells&quot;,1024) != 0 &amp;&amp;
           strncmp(dim_ptr-&gt;name_in_file,&quot;nEdges&quot;,1024) != 0 &amp;&amp;
           strncmp(dim_ptr-&gt;name_in_file,&quot;nVertices&quot;,1024) != 0 &amp;&amp;
-          strncmp(dim_ptr-&gt;name_in_file,&quot;nVertLevels&quot;,11) != 0
+          strncmp(dim_ptr-&gt;name_in_file,&quot;nVertLevels&quot;,1024) != 0
          ) {
 
          if (is_derived_dim(dim_ptr-&gt;name_in_code)) {
@@ -1001,7 +1001,7 @@
       if (strncmp(dim_ptr-&gt;name_in_file,&quot;nCells&quot;,1024) != 0 &amp;&amp;
           strncmp(dim_ptr-&gt;name_in_file,&quot;nEdges&quot;,1024) != 0 &amp;&amp;
           strncmp(dim_ptr-&gt;name_in_file,&quot;nVertices&quot;,1024) != 0 &amp;&amp;
-          strncmp(dim_ptr-&gt;name_in_file,&quot;nVertLevels&quot;,11) != 0
+          strncmp(dim_ptr-&gt;name_in_file,&quot;nVertLevels&quot;,1024) != 0
          ) {
 
          if (is_derived_dim(dim_ptr-&gt;name_in_code)) {
@@ -1037,7 +1037,7 @@
       if (strncmp(dim_ptr-&gt;name_in_file,&quot;nCells&quot;,1024) != 0 &amp;&amp;
           strncmp(dim_ptr-&gt;name_in_file,&quot;nEdges&quot;,1024) != 0 &amp;&amp;
           strncmp(dim_ptr-&gt;name_in_file,&quot;nVertices&quot;,1024) != 0 &amp;&amp;
-          strncmp(dim_ptr-&gt;name_in_file,&quot;nVertLevels&quot;,11) != 0
+          strncmp(dim_ptr-&gt;name_in_file,&quot;nVertLevels&quot;,1024) != 0
          ) {
 
          if (is_derived_dim(dim_ptr-&gt;name_in_code)) {
@@ -1151,7 +1151,7 @@
       if (strncmp(dim_ptr-&gt;name_in_file,&quot;nCells&quot;,1024) != 0 &amp;&amp;
           strncmp(dim_ptr-&gt;name_in_file,&quot;nEdges&quot;,1024) != 0 &amp;&amp;
           strncmp(dim_ptr-&gt;name_in_file,&quot;nVertices&quot;,1024) != 0 &amp;&amp;
-          strncmp(dim_ptr-&gt;name_in_file,&quot;nVertLevels&quot;,11) != 0
+          strncmp(dim_ptr-&gt;name_in_file,&quot;nVertLevels&quot;,1024) != 0
          ) {
 
          if (is_derived_dim(dim_ptr-&gt;name_in_code)) {
@@ -1950,7 +1950,7 @@
             if (strncmp(lastdim-&gt;dim-&gt;name_in_file,&quot;nCells&quot;,1024) != 0 &amp;&amp;
                 strncmp(lastdim-&gt;dim-&gt;name_in_file,&quot;nEdges&quot;,1024) != 0 &amp;&amp;
                 strncmp(lastdim-&gt;dim-&gt;name_in_file,&quot;nVertices&quot;,1024) != 0 &amp;&amp;
-                strncmp(lastdim-&gt;dim-&gt;name_in_file,&quot;nVertLevels&quot;,11) != 0
+                strncmp(lastdim-&gt;dim-&gt;name_in_file,&quot;nVertLevels&quot;,1024) != 0
                ) {
                if (is_derived_dim(lastdim-&gt;dim-&gt;name_in_code)) {
                   split_derived_dim_string(lastdim-&gt;dim-&gt;name_in_code, &amp;cp1, &amp;cp2);

</font>
</pre>