<p><b>duda</b> 2011-11-14 18:50:07 -0700 (Mon, 14 Nov 2011)</p><p>BRANCH COMMIT<br>
<br>
- Switch from serial netCDF ioform to pNetCDF ioform<br>
- Enable multiple time slices per output file<br>
<br>
<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-14 22:10:12 UTC (rev 1194)
+++ branches/pio/src/framework/mpas_io_output.F        2011-11-15 01:50:07 UTC (rev 1195)
@@ -6,6 +6,7 @@
use mpas_configure
use mpas_timer
use pio
+ use piolib_mod
use pio_types
integer, parameter :: OUTPUT = 1
@@ -187,6 +188,7 @@
!MGD-REGISTRY will need to generate compdof info for each combination of dimensions
!MGD hard-wired for initial PIO testing
+ integer(kind=PIO_Offset) :: pio_time
integer, dimension(:), pointer :: compdof
integer, dimension(2) :: dimids2
integer, dimension(3) :: dimids3
@@ -341,12 +343,8 @@
dimids2(1) = nVertLevelsGlobal
dimids2(2) = nCellsGlobal
- dimids3(1) = nVertLevelsGlobal
- dimids3(2) = nCellsGlobal
- dimids3(3) = 1 ! Time dimension
-
call PIO_initdecomp(output_obj % pio_iosystem, PIO_DOUBLE, &
- dimids3, compdof, output_obj % iodesc_nVertLevels_nCells)
+ dimids2, compdof, output_obj % iodesc_nVertLevels_nCells)
deallocate(compdof)
!MGD end PIO_initdecomp call
@@ -397,6 +395,11 @@
!include "io_output_fields.inc"
+ pio_time = output_obj % time
+write(0,*) 'MGD PIO_setframe ', pio_time
+ call PIO_setframe(output_obj % pioVarIDtheta, pio_time)
+ call PIO_setframe(output_obj % pioVarIDrho, pio_time)
+
!MGD-REGISTRY will need to generate write calls for each field
write(0,*) 'MGD PIO_write_darray'
call mpas_timer_start("pio theta")
@@ -408,6 +411,7 @@
domain % blocklist % diag % rho % array(:,1:domain%blocklist%mesh%nCellsSolve), i1)
call mpas_timer_stop("pio rho")
+
domain % blocklist % mesh % cellsOnCell % array => cellsOnCell_save
domain % blocklist % mesh % edgesOnCell % array => edgesOnCell_save
domain % blocklist % mesh % verticesOnCell % array => verticesOnCell_save
@@ -466,7 +470,7 @@
write(0,*) 'MGD *** calling mpas_io_output_init ***'
write(0,*) 'MGD PIO_createfile'
- nferr = PIO_createfile(output_obj % pio_iosystem, output_obj % pio_file, PIO_iotype_netcdf, 'pio_output.nc')
+ nferr = PIO_createfile(output_obj % pio_iosystem, output_obj % pio_file, PIO_iotype_pnetcdf, 'pio_output.nc')
if (dminfo % my_proc_id == 0) then
#ifdef OFFSET64BIT
</font>
</pre>