From 5c2ae6522b8b2fdfa3ca3de458436c1effe5ca55 Mon Sep 17 00:00:00 2001 From: Edward Hartnett Date: Fri, 28 Aug 2020 08:47:12 -0600 Subject: [PATCH] adding pio_inq_var_chunking --- src/flib/pio_nf.F90 | 72 ++++++++++++++++++++++++++++++++++++++++ tests/unit/ftst_vars.F90 | 1 + 2 files changed, 73 insertions(+) diff --git a/src/flib/pio_nf.F90 b/src/flib/pio_nf.F90 index ed32fc23903..262fb000a8d 100644 --- a/src/flib/pio_nf.F90 +++ b/src/flib/pio_nf.F90 @@ -61,6 +61,7 @@ module pio_nf pio_inq_vardimid , & pio_inq_varnatts , & pio_inq_var_deflate , & + pio_inq_var_chunking , & pio_inquire_variable , & pio_inquire_dimension , & pio_inq_dimname , & @@ -156,6 +157,12 @@ module pio_nf inq_var_deflate_vid , & inq_var_deflate_id end interface pio_inq_var_deflate + interface pio_inq_var_chunking + module procedure & + inq_var_chunking_desc , & + inq_var_chunking_vid , & + inq_var_chunking_id + end interface pio_inq_var_chunking interface pio_inquire_dimension module procedure & inquire_dimension_desc , & @@ -1242,6 +1249,71 @@ end function PIOc_inq_var_deflate ierr = PIOc_inq_var_deflate(ncid, varid-1, shuffle, deflate, deflate_level) end function inq_var_deflate_id + !> + !! @public + !! @ingroup PIO_inquire_variable + !! Gets metadata information for netcdf file. + !! + !! @param File @copydoc file_desc_t + !! @param vardesc @copydoc var_desc_t + !! @param shuffle Value of shuffle + !! @param deflate Status of deflate + !! @param deflate_level Level of deflate + !! @retval ierr @copydoc error_return + !! @author Ed Hartnett + !< + integer function inq_var_chunking_desc(File, vardesc, storage, chunksizes) result(ierr) + + type (File_desc_t), intent(in) :: File + type (Var_desc_t), intent(in) :: vardesc + integer, intent(out) :: storage + integer (kind=PIO_OFFSET_KIND), intent(out) :: chunksizes(*) + + ierr = pio_inq_var_chunking(File%fh, vardesc%varid, storage, chunksizes) + end function inq_var_chunking_desc + + !> + !! @public + !! @ingroup PIO_inquire_variable + !! Gets metadata information for netcdf file. + !! @author Ed Hartnett + !< + integer function inq_var_chunking_vid(File, varid, storage, chunksizes) result(ierr) + + type (File_desc_t), intent(in) :: File + integer, intent(in) :: varid + integer, intent(out) :: storage + integer (kind=PIO_OFFSET_KIND), intent(out) :: chunksizes(*) + + ierr = pio_inq_var_chunking(File%fh, varid, storage, chunksizes) + end function inq_var_chunking_vid + + !> + !! @public + !! @ingroup PIO_inquire_variable + !! Gets metadata information for netcdf file. + !! @author Ed Hartnett + !< + integer function inq_var_chunking_id(ncid, varid, storage, chunksizes) result(ierr) + integer, intent(in) :: ncid + integer, intent(in) :: varid + integer, intent(out) :: storage + integer (kind=PIO_OFFSET_KIND), intent(out) :: chunksizes(*) + + interface + integer(C_INT) function PIOc_inq_var_chunking(ncid, varid, storage, chunksizes) & + bind(C, name="PIOc_inq_var_chunking") + use iso_c_binding + integer(C_INT), value :: ncid + integer(C_INT), value :: varid + integer(C_INT) :: storage + integer(C_SIZE_T) :: chunksizes(*) + end function PIOc_inq_var_chunking + end interface + + ierr = PIOc_inq_var_chunking(ncid, varid-1, storage, chunksizes) + end function inq_var_chunking_id + !> !! @public !! @ingroup PIO_inquire_variable diff --git a/tests/unit/ftst_vars.F90 b/tests/unit/ftst_vars.F90 index b152116d7aa..cae52c282bc 100644 --- a/tests/unit/ftst_vars.F90 +++ b/tests/unit/ftst_vars.F90 @@ -65,6 +65,7 @@ program ftst_vars if (ierr .ne. PIO_NOERR) stop 23 ! Find var chunksizes. + ! Close the file. call PIO_closefile(pio_file)