<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, &
- size(local_vertlevel_list), size(needed_vertlevel_list), &
- local_vertlevel_list, needed_vertlevel_list, &
- 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, &
readVertLevelStart, nReadVertLevels, &
sendCellList, recvCellList, sendEdgeList, recvEdgeList, sendVertexList, recvVertexList, &
- sendVertLevelList, recvVertLevelList, sendVertLevelP1List, recvVertLevelP1List)
+ sendVertLevelList, recvVertLevelList)
call io_input_finalize(input_obj, domain % dminfo)
@@ -1015,8 +993,7 @@
sendCellsList, recvCellsList, &
sendEdgesList, recvEdgesList, &
sendVerticesList, recvVerticesList, &
- sendVertLevelsList, recvVertLevelsList, &
- 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 "output_dim_inits.inc"
@@ -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, &
cellsOnEdge, verticesOnEdge, edgesOnEdge, cellsOnVertex, edgesOnVertex
integer, dimension(:,:), pointer :: cellsOnCell_save, edgesOnCell_save, verticesOnCell_save, &
@@ -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, &
output_obj % sendVertLevelsList, output_obj % recvVertLevelsList)
- call dmpar_get_owner_list(domain % dminfo, &
- size(neededVertLevelP1List), size(neededVertLevelP1List), &
- neededVertLevelP1List, neededVertLevelP1List, &
- 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->name_in_file,"nCells",1024) != 0 &&
strncmp(dim_ptr->name_in_file,"nEdges",1024) != 0 &&
strncmp(dim_ptr->name_in_file,"nVertices",1024) != 0 &&
- strncmp(dim_ptr->name_in_file,"nVertLevels",11) != 0
+ strncmp(dim_ptr->name_in_file,"nVertLevels",1024) != 0
) {
if (is_derived_dim(dim_ptr->name_in_code)) {
@@ -855,7 +855,7 @@
if (strncmp(dim_ptr->name_in_file,"nCells",1024) != 0 &&
strncmp(dim_ptr->name_in_file,"nEdges",1024) != 0 &&
strncmp(dim_ptr->name_in_file,"nVertices",1024) != 0 &&
- strncmp(dim_ptr->name_in_file,"nVertLevels",11) != 0
+ strncmp(dim_ptr->name_in_file,"nVertLevels",1024) != 0
) {
if (is_derived_dim(dim_ptr->name_in_code)) {
@@ -954,7 +954,7 @@
if (strncmp(dim_ptr->name_in_file,"nCells",1024) != 0 &&
strncmp(dim_ptr->name_in_file,"nEdges",1024) != 0 &&
strncmp(dim_ptr->name_in_file,"nVertices",1024) != 0 &&
- strncmp(dim_ptr->name_in_file,"nVertLevels",11) != 0
+ strncmp(dim_ptr->name_in_file,"nVertLevels",1024) != 0
) {
if (is_derived_dim(dim_ptr->name_in_code)) {
@@ -1001,7 +1001,7 @@
if (strncmp(dim_ptr->name_in_file,"nCells",1024) != 0 &&
strncmp(dim_ptr->name_in_file,"nEdges",1024) != 0 &&
strncmp(dim_ptr->name_in_file,"nVertices",1024) != 0 &&
- strncmp(dim_ptr->name_in_file,"nVertLevels",11) != 0
+ strncmp(dim_ptr->name_in_file,"nVertLevels",1024) != 0
) {
if (is_derived_dim(dim_ptr->name_in_code)) {
@@ -1037,7 +1037,7 @@
if (strncmp(dim_ptr->name_in_file,"nCells",1024) != 0 &&
strncmp(dim_ptr->name_in_file,"nEdges",1024) != 0 &&
strncmp(dim_ptr->name_in_file,"nVertices",1024) != 0 &&
- strncmp(dim_ptr->name_in_file,"nVertLevels",11) != 0
+ strncmp(dim_ptr->name_in_file,"nVertLevels",1024) != 0
) {
if (is_derived_dim(dim_ptr->name_in_code)) {
@@ -1151,7 +1151,7 @@
if (strncmp(dim_ptr->name_in_file,"nCells",1024) != 0 &&
strncmp(dim_ptr->name_in_file,"nEdges",1024) != 0 &&
strncmp(dim_ptr->name_in_file,"nVertices",1024) != 0 &&
- strncmp(dim_ptr->name_in_file,"nVertLevels",11) != 0
+ strncmp(dim_ptr->name_in_file,"nVertLevels",1024) != 0
) {
if (is_derived_dim(dim_ptr->name_in_code)) {
@@ -1950,7 +1950,7 @@
if (strncmp(lastdim->dim->name_in_file,"nCells",1024) != 0 &&
strncmp(lastdim->dim->name_in_file,"nEdges",1024) != 0 &&
strncmp(lastdim->dim->name_in_file,"nVertices",1024) != 0 &&
- strncmp(lastdim->dim->name_in_file,"nVertLevels",11) != 0
+ strncmp(lastdim->dim->name_in_file,"nVertLevels",1024) != 0
) {
if (is_derived_dim(lastdim->dim->name_in_code)) {
split_derived_dim_string(lastdim->dim->name_in_code, &cp1, &cp2);
</font>
</pre>