<p><b>duda</b> 2011-11-28 16:03:27 -0700 (Mon, 28 Nov 2011)</p><p>BRANCH COMMIT<br>
<br>
Add namelist options to control the number of IO tasks and the stride between them.<br>
<br>
<br>
M    src/core_hyd_atmos/Registry<br>
M    src/core_sw/Registry<br>
M    src/core_nhyd_atmos/Registry<br>
M    src/core_ocean/Registry<br>
M    src/framework/mpas_io_output.F<br>
</p><hr noshade><pre><font color="gray">Modified: branches/pio/src/core_hyd_atmos/Registry
===================================================================
--- branches/pio/src/core_hyd_atmos/Registry        2011-11-28 21:46:55 UTC (rev 1216)
+++ branches/pio/src/core_hyd_atmos/Registry        2011-11-28 23:03:27 UTC (rev 1217)
@@ -28,6 +28,8 @@
 namelist character io       config_output_interval      06:00:00
 namelist integer   io       config_frames_per_outfile   0
 namelist character io       config_decomp_file_prefix   graph.info.part.
+namelist integer   io       config_pio_num_iotasks      0
+namelist integer   io       config_pio_stride           1 
 namelist logical   restart  config_do_restart           false
 namelist character restart  config_restart_interval     none
 

Modified: branches/pio/src/core_nhyd_atmos/Registry
===================================================================
--- branches/pio/src/core_nhyd_atmos/Registry        2011-11-28 21:46:55 UTC (rev 1216)
+++ branches/pio/src/core_nhyd_atmos/Registry        2011-11-28 23:03:27 UTC (rev 1217)
@@ -46,6 +46,8 @@
 namelist character io         config_output_interval      06:00:00
 namelist integer   io         config_frames_per_outfile   0
 namelist character io         config_decomp_file_prefix   graph.info.part.
+namelist integer   io         config_pio_num_iotasks      0 
+namelist integer   io         config_pio_stride           1
 namelist logical   restart    config_do_restart           false
 namelist logical   restart    config_do_DAcycling         false
 namelist character restart    config_restart_interval     none

Modified: branches/pio/src/core_ocean/Registry
===================================================================
--- branches/pio/src/core_ocean/Registry        2011-11-28 21:46:55 UTC (rev 1216)
+++ branches/pio/src/core_ocean/Registry        2011-11-28 23:03:27 UTC (rev 1217)
@@ -16,6 +16,8 @@
 namelist character io       config_output_interval     24:00:00
 namelist integer   io       config_frames_per_outfile  0
 namelist character io       config_decomp_file_prefix  graph.info.part.
+namelist integer   io       config_pio_num_iotasks     0
+namelist integer   io       config_pio_stride          1 
 namelist logical   restart  config_do_restart          false
 namelist character restart  config_restart_interval    none
 namelist character grid     config_vert_grid_type      isopycnal

Modified: branches/pio/src/core_sw/Registry
===================================================================
--- branches/pio/src/core_sw/Registry        2011-11-28 21:46:55 UTC (rev 1216)
+++ branches/pio/src/core_sw/Registry        2011-11-28 23:03:27 UTC (rev 1217)
@@ -27,6 +27,8 @@
 namelist character   io        config_output_interval       06:00:00
 namelist integer     io        config_frames_per_outfile    0
 namelist character   io        config_decomp_file_prefix    graph.info.part.
+namelist integer     io        config_pio_num_iotasks       0
+namelist integer     io        config_pio_stride            1 
 namelist logical     restart   config_do_restart            false
 namelist character   restart   config_restart_interval      none
 

Modified: branches/pio/src/framework/mpas_io_output.F
===================================================================
--- branches/pio/src/framework/mpas_io_output.F        2011-11-28 21:46:55 UTC (rev 1216)
+++ branches/pio/src/framework/mpas_io_output.F        2011-11-28 23:03:27 UTC (rev 1217)
@@ -78,21 +78,30 @@
       character (len=*), optional :: outputSuffix
 
       character (len=128) :: tempfilename
+      integer :: pio_num_iotasks, pio_stride
 
       type (block_type), pointer :: block_ptr
 #include &quot;output_dim_actual_decls.inc&quot;
 
 write(0,*) 'MGD *** calling mpas_output_state_init ***'
 
+      pio_num_iotasks = config_pio_num_iotasks
+      pio_stride = config_pio_stride
+      if (pio_num_iotasks == 0) then
+         pio_num_iotasks = domain % dminfo % nprocs
+      end if
+
+write(0,*) 'Using ', pio_num_iotasks, ' IO tasks'
+write(0,*) 'Using stride ', pio_stride, ' between IO tasks'
+
 write(0,*) 'MGD PIO_init'
       call PIO_init(domain % dminfo % my_proc_id, &amp;     ! comp_rank
                     domain % dminfo % comm,       &amp;     ! comp_comm
-                    4,                            &amp;     ! num_iotasks
+                    pio_num_iotasks,              &amp;     ! num_iotasks
                     0,                            &amp;     ! num_aggregator
-                    32,                           &amp;     ! stride
+                    pio_stride,                   &amp;     ! stride
                     PIO_rearr_box,                &amp;     ! rearr
                     output_obj % pio_iosystem)          ! iosystem
-!                    domain % dminfo % nprocs,     &amp;     ! num_iotasks
 
       block_ptr =&gt; domain % blocklist
       nullify(output_obj % sendCellsList)

</font>
</pre>