<p><b>dwj07@fsu.edu</b> 2012-04-16 20:14:19 -0600 (Mon, 16 Apr 2012)</p><p><br>
        -- BRANCH COMMIT --<br>
<br>
        Turning off writing of grid data with every frame of an output file.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/omp_blocks/io/src/framework/mpas_io.F
===================================================================
--- branches/omp_blocks/io/src/framework/mpas_io.F        2012-04-16 21:57:31 UTC (rev 1781)
+++ branches/omp_blocks/io/src/framework/mpas_io.F        2012-04-17 02:14:19 UTC (rev 1782)
@@ -1177,6 +1177,7 @@
!
! Check whether the field has been defined
!
+ write(0,*) 'Checking if field is define'
field_cursor => handle % fieldlist_head
do while (associated(field_cursor))
if (trim(fieldname) == trim(field_cursor % fieldhandle % fieldname)) then
@@ -1193,6 +1194,7 @@
!
! Check that we have a decomposition for this field
!
+ write(0,*) 'Checking for decomposition'
if (.not.present(intVal) .and. .not.present(realVal) .and. .not.present(charVal)) then
if (.not. associated(field_cursor % fieldhandle % decomp)) then
if (present(ierr)) ierr = MPAS_IO_ERR_NO_DECOMP
@@ -1202,6 +1204,7 @@
!!!! Assume array was already allocated by the user
+ write(0,*) 'Checking for unlimited dim'
if (field_cursor % fieldhandle % has_unlimited_dim) then
call PIO_setframe(field_cursor % fieldhandle % field_desc, handle % frame_number)
start1(1) = handle % frame_number
@@ -1212,19 +1215,23 @@
count2(2) = 1
end if
+ write(0,*) 'Checking for real, int, char, etc'
if (present(realVal)) then
+ write (0,*) ' value is real'
if (field_cursor % fieldhandle % has_unlimited_dim) then
pio_ierr = PIO_get_var(handle % pio_file, field_cursor % fieldhandle % field_desc, start1, realVal)
else
pio_ierr = PIO_get_var(handle % pio_file, field_cursor % fieldhandle % field_desc, realVal)
end if
else if (present(intVal)) then
+ write (0,*) ' value is int'
if (field_cursor % fieldhandle % has_unlimited_dim) then
pio_ierr = PIO_get_var(handle % pio_file, field_cursor % fieldhandle % field_desc, start1, intVal)
else
pio_ierr = PIO_get_var(handle % pio_file, field_cursor % fieldhandle % field_desc, intVal)
end if
else if (present(charVal)) then
+ write (0,*) ' value is char'
if (field_cursor % fieldhandle % has_unlimited_dim) then
count2(1) = field_cursor % fieldhandle % dims(1) % dimsize
pio_ierr = PIO_get_var(handle % pio_file, field_cursor % fieldhandle % fieldid, start2, count2, tempchar)
@@ -1233,30 +1240,40 @@
pio_ierr = PIO_get_var(handle % pio_file, field_cursor % fieldhandle % field_desc, charVal)
end if
else if (present(realArray1d)) then
+ write (0,*) ' value is real1'
call PIO_read_darray(handle % pio_file, field_cursor % fieldhandle % field_desc, field_cursor % fieldhandle % decomp % pio_iodesc, &
realArray1d, pio_ierr)
else if (present(realArray2d)) then
+ write (0,*) ' value is real2'
call PIO_read_darray(handle % pio_file, field_cursor % fieldhandle % field_desc, field_cursor % fieldhandle % decomp % pio_iodesc, &
realArray2d, pio_ierr)
else if (present(realArray3d)) then
+ write (0,*) ' value is real3'
call PIO_read_darray(handle % pio_file, field_cursor % fieldhandle % field_desc, field_cursor % fieldhandle % decomp % pio_iodesc, &
realArray3d, pio_ierr)
else if (present(realArray4d)) then
+ write (0,*) ' value is real4'
call PIO_read_darray(handle % pio_file, field_cursor % fieldhandle % field_desc, field_cursor % fieldhandle % decomp % pio_iodesc, &
realArray4d, pio_ierr)
else if (present(intArray1d)) then
+ write (0,*) ' value is int1'
call PIO_read_darray(handle % pio_file, field_cursor % fieldhandle % field_desc, field_cursor % fieldhandle % decomp % pio_iodesc, &
intArray1d, pio_ierr)
else if (present(intArray2d)) then
+ write (0,*) ' value is int2'
call PIO_read_darray(handle % pio_file, field_cursor % fieldhandle % field_desc, field_cursor % fieldhandle % decomp % pio_iodesc, &
intArray2d, pio_ierr)
else if (present(intArray3d)) then
+ write (0,*) ' value is int3'
call PIO_read_darray(handle % pio_file, field_cursor % fieldhandle % field_desc, field_cursor % fieldhandle % decomp % pio_iodesc, &
intArray3d, pio_ierr)
else if (present(intArray4d)) then
+ write (0,*) ' value is int4'
call PIO_read_darray(handle % pio_file, field_cursor % fieldhandle % field_desc, field_cursor % fieldhandle % decomp % pio_iodesc, &
intArray4d, pio_ierr)
end if
+
+ write (0,*) 'Checking for error'
if (pio_ierr /= PIO_noerr) then
if (present(ierr)) ierr = MPAS_IO_ERR_PIO
return
@@ -1568,6 +1585,9 @@
start2(1) = 1
start2(2) = handle % frame_number
count2(2) = 1
+ else if (handle % frame_number > 1) then
+ if(present(ierr)) ierr = MPAS_IO_NOERR
+ return
end if
if (present(realVal)) then
</font>
</pre>