hdf5_obj_OpenGroup Subroutine

private impure subroutine hdf5_obj_OpenGroup(this, groupname)

Opens a group (analogous to directory) in an HDF5 file and updates hash table.

Type Bound

hdf5_obj

Arguments

Type IntentOptional Attributes Name
class(hdf5_obj), intent(inout) :: this

A HDF5 object

character(len=*), intent(in) :: groupname

Group name


Calls

proc~~hdf5_obj_opengroup~~CallsGraph proc~hdf5_obj_opengroup hdf5_obj%hdf5_obj_OpenGroup h5oopen_f h5oopen_f proc~hdf5_obj_opengroup->h5oopen_f proc~hashtbl_obj_hashstring hashtbl_obj%hashtbl_obj_HashString proc~hdf5_obj_opengroup->proc~hashtbl_obj_hashstring proc~hashtbl_obj_put hashtbl_obj%hashtbl_obj_Put proc~hdf5_obj_opengroup->proc~hashtbl_obj_put proc~hdf5_obj_fixgroupname hdf5_obj%hdf5_obj_FixGroupName proc~hdf5_obj_opengroup->proc~hdf5_obj_fixgroupname proc~hdf5_obj_getgroupobject hdf5_obj%hdf5_obj_GetGroupObject proc~hdf5_obj_opengroup->proc~hdf5_obj_getgroupobject proc~sllist_obj_put sllist_obj%sllist_obj_Put proc~hashtbl_obj_put->proc~sllist_obj_put proc~hdf5_obj_getgroupobject->proc~hashtbl_obj_hashstring proc~hdf5_obj_getgroupobject->proc~hdf5_obj_fixgroupname none~get~3 hashtbl_obj%Get proc~hdf5_obj_getgroupobject->none~get~3 proc~hashtbl_obj_get_int4 hashtbl_obj%hashtbl_obj_Get_int4 none~get~3->proc~hashtbl_obj_get_int4 proc~hashtbl_obj_get_int8 hashtbl_obj%hashtbl_obj_Get_int8 none~get~3->proc~hashtbl_obj_get_int8 proc~hashtbl_obj_get_real_dp hashtbl_obj%hashtbl_obj_Get_real_dp none~get~3->proc~hashtbl_obj_get_real_dp proc~hashtbl_obj_get_real_sp hashtbl_obj%hashtbl_obj_Get_real_sp none~get~3->proc~hashtbl_obj_get_real_sp proc~sllist_obj_put->proc~sllist_obj_put none~get~2 sllist_obj%Get proc~hashtbl_obj_get_int4->none~get~2 proc~hashtbl_obj_get_int8->none~get~2 proc~hashtbl_obj_get_real_dp->none~get~2 proc~hashtbl_obj_get_real_sp->none~get~2 proc~sllist_obj_get_int4 sllist_obj%sllist_obj_Get_int4 none~get~2->proc~sllist_obj_get_int4 proc~sllist_obj_get_int8 sllist_obj%sllist_obj_Get_int8 none~get~2->proc~sllist_obj_get_int8 proc~sllist_obj_get_real_dp sllist_obj%sllist_obj_Get_real_dp none~get~2->proc~sllist_obj_get_real_dp proc~sllist_obj_get_real_sp sllist_obj%sllist_obj_Get_real_sp none~get~2->proc~sllist_obj_get_real_sp proc~sllist_obj_get_int4->proc~sllist_obj_get_int4 proc~sllist_obj_get_int8->proc~sllist_obj_get_int8 proc~sllist_obj_get_real_dp->proc~sllist_obj_get_real_dp proc~sllist_obj_get_real_sp->proc~sllist_obj_get_real_sp

Called by

proc~~hdf5_obj_opengroup~~CalledByGraph proc~hdf5_obj_opengroup hdf5_obj%hdf5_obj_OpenGroup proc~hdf5_obj_getnpoints hdf5_obj%hdf5_obj_GetNPoints proc~hdf5_obj_getnpoints->proc~hdf5_obj_opengroup proc~hdf5_obj_read1d hdf5_obj%hdf5_obj_Read1D proc~hdf5_obj_read1d->proc~hdf5_obj_opengroup proc~hdf5_obj_read3d hdf5_obj%hdf5_obj_Read3D proc~hdf5_obj_read3d->proc~hdf5_obj_opengroup proc~hdf5_obj_readattributes0d hdf5_obj%hdf5_obj_ReadAttributes0D proc~hdf5_obj_readattributes0d->proc~hdf5_obj_opengroup proc~hdf5_obj_readattributes1d hdf5_obj%hdf5_obj_ReadAttributes1D proc~hdf5_obj_readattributes1d->proc~hdf5_obj_opengroup proc~hdf5_obj_readcoord hdf5_obj%hdf5_obj_ReadCoord proc~hdf5_obj_readcoord->proc~hdf5_obj_opengroup proc~hdf5_obj_write1d hdf5_obj%hdf5_obj_Write1D proc~hdf5_obj_write1d->proc~hdf5_obj_opengroup proc~hdf5_obj_write3d hdf5_obj%hdf5_obj_Write3D proc~hdf5_obj_write3d->proc~hdf5_obj_opengroup proc~hdf5_obj_writeattributes0d hdf5_obj%hdf5_obj_WriteAttributes0D proc~hdf5_obj_writeattributes0d->proc~hdf5_obj_opengroup proc~hdf5_obj_writeattributes1d hdf5_obj%hdf5_obj_WriteAttributes1D proc~hdf5_obj_writeattributes1d->proc~hdf5_obj_opengroup proc~hdf5_obj_writecoord hdf5_obj%hdf5_obj_WriteCoord proc~hdf5_obj_writecoord->proc~hdf5_obj_opengroup none~readattributes hdf5_obj%ReadAttributes none~readattributes->proc~hdf5_obj_readattributes0d none~readattributes->proc~hdf5_obj_readattributes1d none~writeattributes hdf5_obj%WriteAttributes none~writeattributes->proc~hdf5_obj_writeattributes0d none~writeattributes->proc~hdf5_obj_writeattributes1d proc~block_obj_read block_obj%block_obj_Read proc~block_obj_read->proc~hdf5_obj_readcoord proc~block_obj_read->none~readattributes proc~block_obj_write block_obj%block_obj_Write proc~block_obj_write->proc~hdf5_obj_writecoord proc~block_obj_write->none~writeattributes proc~h5hut_obj_getnpoints h5hut_obj%h5hut_obj_GetNPoints proc~h5hut_obj_getnpoints->proc~hdf5_obj_getnpoints proc~bc_set_read bc_set%bc_set_Read proc~bc_set_read->none~readattributes proc~bc_set_write bc_set%bc_set_Write proc~bc_set_write->none~writeattributes proc~eulerian_set_readhdf5 eulerian_set%eulerian_set_ReadHDF5 proc~eulerian_set_readhdf5->none~readattributes proc~eulerian_set_writehdf5 eulerian_set%eulerian_set_WriteHDF5 proc~eulerian_set_writehdf5->none~writeattributes none~writesingle eulerian_set%WriteSingle proc~eulerian_set_writehdf5->none~writesingle proc~h5hut_obj_jumptostep h5hut_obj%h5hut_obj_JumpToStep proc~h5hut_obj_jumptostep->none~readattributes proc~h5hut_obj_lasttimestep h5hut_obj%h5hut_obj_LastTimeStep proc~h5hut_obj_lasttimestep->none~readattributes proc~h5hut_obj_newtimestep h5hut_obj%h5hut_obj_NewTimeStep proc~h5hut_obj_newtimestep->none~writeattributes proc~h5hut_obj_readattributes0d h5hut_obj%h5hut_obj_ReadAttributes0D proc~h5hut_obj_readattributes0d->none~readattributes proc~h5hut_obj_readattributes1d h5hut_obj%h5hut_obj_ReadAttributes1D proc~h5hut_obj_readattributes1d->none~readattributes proc~h5hut_obj_writeattributes0d h5hut_obj%h5hut_obj_WriteAttributes0D proc~h5hut_obj_writeattributes0d->none~writeattributes proc~h5hut_obj_writeattributes1d h5hut_obj%h5hut_obj_WriteAttributes1D proc~h5hut_obj_writeattributes1d->none~writeattributes proc~h5hut_obj_writegrid h5hut_obj%h5hut_obj_WriteGrid proc~h5hut_obj_writegrid->none~writeattributes proc~marker_set_readh5hut marker_set%marker_set_ReadH5HUT proc~marker_set_readh5hut->proc~h5hut_obj_getnpoints proc~marker_set_readh5hut->proc~h5hut_obj_jumptostep proc~marker_set_readh5hut->proc~h5hut_obj_lasttimestep proc~marker_set_readhdf5 marker_set%marker_set_ReadHDF5 proc~marker_set_readhdf5->none~readattributes proc~marker_set_writehdf5 marker_set%marker_set_WriteHDF5 proc~marker_set_writehdf5->none~writeattributes proc~particle_set_readh5hut particle_set%particle_set_ReadH5HUT proc~particle_set_readh5hut->proc~h5hut_obj_getnpoints proc~particle_set_readh5hut->proc~h5hut_obj_jumptostep proc~particle_set_readh5hut->proc~h5hut_obj_lasttimestep proc~particle_set_readhdf5 particle_set%particle_set_ReadHDF5 proc~particle_set_readhdf5->none~readattributes proc~particle_set_writehdf5 particle_set%particle_set_WriteHDF5 proc~particle_set_writehdf5->none~writeattributes proc~respart_set_readh5hut ResPart_set%ResPart_set_ReadH5HUT proc~respart_set_readh5hut->proc~h5hut_obj_getnpoints proc~respart_set_readh5hut->proc~h5hut_obj_jumptostep proc~respart_set_readh5hut->proc~h5hut_obj_lasttimestep proc~respart_set_readhdf5 ResPart_set%ResPart_set_ReadHDF5 proc~respart_set_readhdf5->none~readattributes proc~respart_set_readhdf5->proc~marker_set_readhdf5 proc~respart_set_writehdf5 ResPart_set%ResPart_set_WriteHDF5 proc~respart_set_writehdf5->none~writeattributes proc~respart_set_writehdf5->proc~marker_set_writehdf5 proc~solid_set_readhdf5 solid_set%solid_set_ReadHDF5 proc~solid_set_readhdf5->none~readattributes proc~solid_set_readhdf5->proc~marker_set_readhdf5 proc~solid_set_writehdf5 solid_set%solid_set_WriteHDF5 proc~solid_set_writehdf5->none~writeattributes proc~solid_set_writehdf5->proc~marker_set_writehdf5 none~readattributes~2 h5hut_obj%ReadAttributes none~readattributes~2->proc~h5hut_obj_readattributes0d none~readattributes~2->proc~h5hut_obj_readattributes1d none~writeattributes~2 h5hut_obj%WriteAttributes none~writeattributes~2->proc~h5hut_obj_writeattributes0d none~writeattributes~2->proc~h5hut_obj_writeattributes1d proc~eulerian_set_readh5hut eulerian_set%eulerian_set_ReadH5HUT proc~eulerian_set_readh5hut->proc~h5hut_obj_jumptostep proc~eulerian_set_readh5hut->proc~h5hut_obj_lasttimestep proc~eulerian_set_writeh5hut eulerian_set%eulerian_set_WriteH5HUT proc~eulerian_set_writeh5hut->proc~h5hut_obj_newtimestep proc~eulerian_set_writeh5hut->none~writesingle proc~eulerian_set_writesingleh5hut eulerian_set%eulerian_set_WriteSingleH5HUT proc~eulerian_set_writesingleh5hut->proc~h5hut_obj_writegrid proc~marker_set_writeh5hut marker_set%marker_set_WriteH5HUT proc~marker_set_writeh5hut->proc~h5hut_obj_newtimestep proc~particle_set_writeh5hut particle_set%particle_set_WriteH5HUT proc~particle_set_writeh5hut->proc~h5hut_obj_newtimestep proc~respart_set_writeh5hut ResPart_set%ResPart_set_WriteH5HUT proc~respart_set_writeh5hut->proc~h5hut_obj_newtimestep proc~respart_set_writeh5hut->proc~marker_set_writeh5hut none~writesingle->proc~eulerian_set_writesingleh5hut proc~solid_set_readh5hut solid_set%solid_set_ReadH5HUT proc~solid_set_readh5hut->none~readattributes~2 proc~solid_set_writeh5hut solid_set%solid_set_WriteH5HUT proc~solid_set_writeh5hut->none~writeattributes~2 proc~eulerian_set_writesilo eulerian_set%eulerian_set_WriteSILO proc~eulerian_set_writesilo->none~writesingle

Source Code

    impure subroutine hdf5_obj_OpenGroup(this,groupname)
      !> Opens a group (analogous to directory) in an HDF5
      ! file and updates hash table.
      implicit none
      class(hdf5_obj),  intent(inout) :: this                                  !! A HDF5 object
      character(len=*), intent(in)    :: groupname                             !! Group name
      ! Work variables
      integer(HID_T)      :: obj
      integer             :: ierr
      character(len=:), &
              allocatable :: groupname_

      ! Format name of this group
      groupname_=this%FixGroupName(groupname)

      ! If not already open, open group and add it to hashtable
      if (this%GetGroupObject(groupname).eq.-1_HID_T) then
        ! Open group
        call H5Oopen_f(this%fid,groupname_,obj,ierr)

        if (ierr.ne.0) &
          call this%parallel%Stop("Unable to open group "//trim(adjustl(groupname))//" in HDF5 file "//this%filename)

        ! Add to hash table
        call this%tbl%Put(key=this%tbl%HashString(groupname_),val=obj)
      end if

      return
    end subroutine hdf5_obj_OpenGroup