<p><b>duda</b> 2011-11-28 09:34:50 -0700 (Mon, 28 Nov 2011)</p><p>BRANCH COMMIT<br>
<br>
- Add debugging prints for PIO_initdecomp calls<br>
- Add option for 64-bit offsets in netCDF files (a must for big files)<br>
- Comment out serial netCDF output, which takes much too long for large grids<br>
<br>
<br>
M    src/registry/gen_inc.c<br>
M    src/framework/mpas_io_output.F<br>
</p><hr noshade><pre><font color="gray">Modified: branches/pio/src/framework/mpas_io_output.F
===================================================================
--- branches/pio/src/framework/mpas_io_output.F        2011-11-28 15:45:06 UTC (rev 1213)
+++ branches/pio/src/framework/mpas_io_output.F        2011-11-28 16:34:50 UTC (rev 1214)
@@ -28,7 +28,7 @@
       integer :: stream
 
       integer :: wrDimIDStrLen
-#include &quot;io_output_obj_decls.inc&quot;
+!include &quot;io_output_obj_decls.inc&quot;
 
       integer :: pioDimIDTime
 #include &quot;pio_output_io_dims_vars.inc&quot;
@@ -41,6 +41,7 @@
    end type io_output_object
 
 
+#if 0
    interface mpas_io_output_field
       module procedure mpas_io_output_field0d_real
       module procedure mpas_io_output_field1d_real
@@ -61,6 +62,7 @@
       module procedure mpas_io_output_field0d_char_time
       module procedure mpas_io_output_field1d_char_time
    end interface mpas_io_output_field_time
+#endif
  
 
    contains
@@ -87,7 +89,7 @@
                     domain % dminfo % comm,       &amp;     ! comp_comm
                     4,                            &amp;     ! num_iotasks
                     0,                            &amp;     ! num_aggregator
-                    16,                           &amp;     ! stride
+                    32,                           &amp;     ! stride
                     PIO_rearr_box,                &amp;     ! rearr
                     output_obj % pio_iosystem)          ! iosystem
 !                    domain % dminfo % nprocs,     &amp;     ! num_iotasks
@@ -319,7 +321,9 @@
       if (.not. output_obj % validExchangeLists) then
 
 write(0,*) 'MGD PIO_initdecomp'
+call mpas_timer_start(&quot;PIO_initdecomp&quot;)
 #include &quot;pio_init_decomp.inc&quot;
+call mpas_timer_stop(&quot;PIO_initdecomp&quot;)
 
          call mpas_dmpar_get_owner_list(domain % dminfo, &amp;
                                    domain % blocklist % mesh % nCellsSolve, size(neededCellList), &amp;
@@ -372,9 +376,9 @@
 
 write(0,*) 'MGD PIO_setframe ', pio_time
 write(0,*) 'MGD PIO_write_darray'
-call mpas_timer_start(&quot;pio write&quot;)
+call mpas_timer_start(&quot;PIO_write&quot;)
 #include &quot;pio_output_fields.inc&quot;
-call mpas_timer_stop(&quot;pio write&quot;)
+call mpas_timer_stop(&quot;PIO_write&quot;)
 
 
       domain % blocklist % mesh % cellsOnCell % array =&gt; cellsOnCell_save
@@ -395,7 +399,7 @@
       deallocate(cellsOnVertex)
       deallocate(edgesOnVertex)
 
-#include &quot;nondecomp_outputs_dealloc.inc&quot;
+!include &quot;nondecomp_outputs_dealloc.inc&quot;
 
    end subroutine mpas_output_state_for_domain
 
@@ -435,8 +439,13 @@
 write(0,*) 'MGD *** calling mpas_io_output_init ***'
 
 write(0,*) 'MGD PIO_createfile'
+#ifdef OFFSET64BIT
+      nferr = PIO_createfile(output_obj % pio_iosystem, output_obj % pio_file, PIO_iotype_pnetcdf, 'pio_output.nc', PIO_64BIT_OFFSET)
+#else
       nferr = PIO_createfile(output_obj % pio_iosystem, output_obj % pio_file, PIO_iotype_pnetcdf, 'pio_output.nc')
+#endif
  
+#if 0
       if (dminfo % my_proc_id == 0) then
 #ifdef OFFSET64BIT
       nferr = nf_create(trim(output_obj % filename), ior(NF_CLOBBER,NF_64BIT_OFFSET), output_obj % wr_ncid)
@@ -445,7 +454,7 @@
 #endif
  
       nferr = nf_def_dim(output_obj % wr_ncid, 'StrLen', 64, output_obj % wrDimIDStrLen)
-#include &quot;netcdf_def_dims_vars.inc&quot;
+!include &quot;netcdf_def_dims_vars.inc&quot;
 
       if (mesh % on_a_sphere) then
          nferr = nf_put_att_text(output_obj % wr_ncid, NF_GLOBAL, 'on_a_sphere', 16, 'YES             ')
@@ -460,6 +469,7 @@
  
       nferr = nf_enddef(output_obj % wr_ncid)
       end if
+#endif
 
 !MGD-REGISTRY will need to generate definitions for each dimension
 write(0,*) 'MGD PIO_def_dim'
@@ -483,6 +493,7 @@
    end subroutine mpas_io_output_init
 
 
+#if 0
    subroutine mpas_io_output_field0d_real(output_obj, field)
 
       implicit none
@@ -920,6 +931,7 @@
       nferr = nf_sync(output_obj % wr_ncid)
 
    end subroutine mpas_io_output_field1d_char
+#endif
 
 
    subroutine mpas_io_output_finalize(output_obj, dminfo)
@@ -944,9 +956,11 @@
 write(0,*) 'MGD PIO_finalize'
       call PIO_finalize(output_obj % pio_iosystem, nferr)
  
+#if 0
       if (dminfo % my_proc_id == 0) then
       nferr = nf_close(output_obj % wr_ncid)
       end if
+#endif
  
    end subroutine mpas_io_output_finalize
  

Modified: branches/pio/src/registry/gen_inc.c
===================================================================
--- branches/pio/src/registry/gen_inc.c        2011-11-28 15:45:06 UTC (rev 1213)
+++ branches/pio/src/registry/gen_inc.c        2011-11-28 16:34:50 UTC (rev 1214)
@@ -2552,7 +2552,9 @@
             }
 
 /* MGD NEED TO ADD MORE CODE HERE TO CREATE DECOMPS FOR EACH TYPE */
+            fortprintf(fd, &quot;         write(0,*) \'Calling PIO_initdecomp for %s_Dbl\'</font>
<font color="black">&quot;, temp);
             fortprintf(fd, &quot;         call PIO_initdecomp(output_obj %% pio_iosystem, PIO_DOUBLE, dimids(1:%i), compdof, output_obj %% iodesc%s_Dbl)</font>
<font color="blue">&quot;, var_ptr-&gt;ndims, temp);
+            fortprintf(fd, &quot;         write(0,*) \'Calling PIO_initdecomp for %s_Int\'</font>
<font color="black">&quot;, temp);
             fortprintf(fd, &quot;         call PIO_initdecomp(output_obj %% pio_iosystem, PIO_INT, dimids(1:%i), compdof, output_obj %% iodesc%s_Int)</font>
<font color="black">&quot;, var_ptr-&gt;ndims, temp);
 
             fortprintf(fd, &quot;         deallocate(compdof)</font>
<font color="black">&quot;);

</font>
</pre>