<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 "io_output_obj_decls.inc"
+!include "io_output_obj_decls.inc"
integer :: pioDimIDTime
#include "pio_output_io_dims_vars.inc"
@@ -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, & ! comp_comm
4, & ! num_iotasks
0, & ! num_aggregator
- 16, & ! stride
+ 32, & ! stride
PIO_rearr_box, & ! rearr
output_obj % pio_iosystem) ! iosystem
! domain % dminfo % nprocs, & ! num_iotasks
@@ -319,7 +321,9 @@
if (.not. output_obj % validExchangeLists) then
write(0,*) 'MGD PIO_initdecomp'
+call mpas_timer_start("PIO_initdecomp")
#include "pio_init_decomp.inc"
+call mpas_timer_stop("PIO_initdecomp")
call mpas_dmpar_get_owner_list(domain % dminfo, &
domain % blocklist % mesh % nCellsSolve, size(neededCellList), &
@@ -372,9 +376,9 @@
write(0,*) 'MGD PIO_setframe ', pio_time
write(0,*) 'MGD PIO_write_darray'
-call mpas_timer_start("pio write")
+call mpas_timer_start("PIO_write")
#include "pio_output_fields.inc"
-call mpas_timer_stop("pio write")
+call mpas_timer_stop("PIO_write")
domain % blocklist % mesh % cellsOnCell % array => cellsOnCell_save
@@ -395,7 +399,7 @@
deallocate(cellsOnVertex)
deallocate(edgesOnVertex)
-#include "nondecomp_outputs_dealloc.inc"
+!include "nondecomp_outputs_dealloc.inc"
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 "netcdf_def_dims_vars.inc"
+!include "netcdf_def_dims_vars.inc"
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, " write(0,*) \'Calling PIO_initdecomp for %s_Dbl\'</font>
<font color="black">", temp);
fortprintf(fd, " call PIO_initdecomp(output_obj %% pio_iosystem, PIO_DOUBLE, dimids(1:%i), compdof, output_obj %% iodesc%s_Dbl)</font>
<font color="blue">", var_ptr->ndims, temp);
+ fortprintf(fd, " write(0,*) \'Calling PIO_initdecomp for %s_Int\'</font>
<font color="black">", temp);
fortprintf(fd, " call PIO_initdecomp(output_obj %% pio_iosystem, PIO_INT, dimids(1:%i), compdof, output_obj %% iodesc%s_Int)</font>
<font color="black">", var_ptr->ndims, temp);
fortprintf(fd, " deallocate(compdof)</font>
<font color="black">");
</font>
</pre>