DatasetLength1D_HDF5 Function

public function DatasetLength1D_HDF5(fileId, arrayName) result(n)

Number of entries in the one-dimensional dataset arrayName, or -1 if it does not exist or has a different rank.

Arguments

TypeIntentOptionalAttributesName
integer(kind=HID_T), intent(in) :: fileId
character, intent(in) :: arrayName

Return Value integer


Calls

proc~~datasetlength1d_hdf5~~CallsGraph proc~datasetlength1d_hdf5 DatasetLength1D_HDF5 h5lexists_f h5lexists_f proc~datasetlength1d_hdf5->h5lexists_f h5sget_simple_extent_dims_f h5sget_simple_extent_dims_f proc~datasetlength1d_hdf5->h5sget_simple_extent_dims_f h5dopen_f h5dopen_f proc~datasetlength1d_hdf5->h5dopen_f h5dget_space_f h5dget_space_f proc~datasetlength1d_hdf5->h5dget_space_f h5sget_simple_extent_ndims_f h5sget_simple_extent_ndims_f proc~datasetlength1d_hdf5->h5sget_simple_extent_ndims_f h5sclose_f h5sclose_f proc~datasetlength1d_hdf5->h5sclose_f h5dclose_f h5dclose_f proc~datasetlength1d_hdf5->h5dclose_f

Called by

proc~~datasetlength1d_hdf5~~CalledByGraph proc~datasetlength1d_hdf5 DatasetLength1D_HDF5 proc~read_multisetmodel3d_t Read_MultiSetModel3D_t proc~read_multisetmodel3d_t->proc~datasetlength1d_hdf5

Contents

Source Code


Source Code

  function DatasetLength1D_HDF5(fileId,arrayName) result(n)
    !! Number of entries in the one-dimensional dataset arrayName, or -1 if it does not
    !! exist or has a different rank.
    implicit none
    integer(HID_T),intent(in) :: fileId
    character(*),intent(in) :: arrayName
    integer :: n
    ! Local
    integer(HID_T) :: dsetId,filespace
    integer(HSIZE_T) :: dims(1:1),maxDims(1:1)
    integer :: error,ndims
    logical :: exists

    n = -1
    call h5lexists_f(fileId,trim(arrayName),exists,error)
    if(error /= 0 .or. .not. exists) return

    call h5dopen_f(fileId,trim(arrayName),dsetId,error)
    if(error /= 0) return
    call h5dget_space_f(dsetId,filespace,error)
    call h5sget_simple_extent_ndims_f(filespace,ndims,error)
    if(ndims == 1) then
      call h5sget_simple_extent_dims_f(filespace,dims,maxDims,error)
      if(error >= 0) n = int(dims(1))
    endif
    call h5sclose_f(filespace,error)
    call h5dclose_f(dsetId,error)

  endfunction DatasetLength1D_HDF5