<p><b>duda</b> 2012-03-28 15:29:40 -0600 (Wed, 28 Mar 2012)</p><p>BRANCH COMMIT<br>
<br>
Fix to avoid array bounds errors for 0-sized arrays.<br>
With this new code, some compilers complain about declaring arrays with size 0, but it is nonetheless legitimate to do so.<br>
<br>
<br>
M    src/framework/mpas_io_streams.F<br>
</p><hr noshade><pre><font color="gray">Modified: branches/omp_blocks/io/src/framework/mpas_io_streams.F
===================================================================
--- branches/omp_blocks/io/src/framework/mpas_io_streams.F        2012-03-28 20:51:22 UTC (rev 1729)
+++ branches/omp_blocks/io/src/framework/mpas_io_streams.F        2012-03-28 21:29:40 UTC (rev 1730)
@@ -208,6 +208,8 @@
       type (field1dInteger), pointer :: field_ptr
       character (len=64), dimension(5) :: dimNames
       character (len=64), dimension(:), pointer :: dimNamesInq
+      character (len=64), dimension(0) :: dimNames0
+      integer, dimension(0) :: dimSizes0
       integer, dimension(:), pointer :: indices
       type (field_list_type), pointer :: field_list_cursor
       type (field_list_type), pointer :: new_field_list_node
@@ -236,10 +238,9 @@
 
       
       if (field % isSuperArray) then
-!MGD This could use some testing, in particular, so see whether dimNames(2:1) will pass a 0-sized array
          do i=1,size(field % constituentNames)
-            call MPAS_streamAddField_generic(stream, trim(field % constituentNames(i)), MPAS_IO_INT, field % dimNames(2:ndims), &amp;
-                                             field % dimSizes(2:ndims), field % hasTimeDimension, isDecomposed, totalDimSize, globalDimSize, &amp;
+            call MPAS_streamAddField_generic(stream, trim(field % constituentNames(i)), MPAS_IO_INT, dimNames0, &amp;
+                                             dimSizes0, field % hasTimeDimension, isDecomposed, totalDimSize, globalDimSize, &amp;
                                              indices, io_err)
          end do
       else
@@ -541,6 +542,8 @@
       type (field1dReal), pointer :: field_ptr
       character (len=64), dimension(5) :: dimNames
       character (len=64), dimension(:), pointer :: dimNamesInq
+      character (len=64), dimension(0) :: dimNames0
+      integer, dimension(0) :: dimSizes0
       integer, dimension(:), pointer :: indices
       type (field_list_type), pointer :: field_list_cursor
       type (field_list_type), pointer :: new_field_list_node
@@ -569,10 +572,9 @@
 
       
       if (field % isSuperArray) then
-!MGD This could use some testing, in particular, so see whether dimNames(2:1) will pass a 0-sized array
          do i=1,size(field % constituentNames)
-            call MPAS_streamAddField_generic(stream, trim(field % constituentNames(i)), MPAS_IO_DOUBLE, field % dimNames(2:ndims), &amp;
-                                             field % dimSizes(2:ndims), field % hasTimeDimension, isDecomposed, totalDimSize, globalDimSize, &amp;
+            call MPAS_streamAddField_generic(stream, trim(field % constituentNames(i)), MPAS_IO_DOUBLE, dimNames0, &amp;
+                                             dimSizes0, field % hasTimeDimension, isDecomposed, totalDimSize, globalDimSize, &amp;
                                              indices, io_err)
          end do
       else

</font>
</pre>