rsave_to_hdf5 Subroutine

private subroutine rsave_to_hdf5(h5file_id, dset, rdatum, attr)

Arguments

Type IntentOptional AttributesName
integer(kind=HID_T), intent(in) :: h5file_id
character(len=MAX_STRING_LENGTH), intent(in) :: dset
real(kind=rp), intent(in) :: rdatum
character(len=MAX_STRING_LENGTH), intent(in), optional :: attr

Calls

proc~~rsave_to_hdf5~~CallsGraph proc~rsave_to_hdf5 rsave_to_hdf5 h5tset_size_f h5tset_size_f proc~rsave_to_hdf5->h5tset_size_f h5dclose_f h5dclose_f proc~rsave_to_hdf5->h5dclose_f h5aclose_f h5aclose_f proc~rsave_to_hdf5->h5aclose_f h5tcopy_f h5tcopy_f proc~rsave_to_hdf5->h5tcopy_f h5screate_simple_f h5screate_simple_f proc~rsave_to_hdf5->h5screate_simple_f h5awrite_f h5awrite_f proc~rsave_to_hdf5->h5awrite_f h5dwrite_f h5dwrite_f proc~rsave_to_hdf5->h5dwrite_f h5sclose_f h5sclose_f proc~rsave_to_hdf5->h5sclose_f h5acreate_f h5acreate_f proc~rsave_to_hdf5->h5acreate_f

Called by

proc~~rsave_to_hdf5~~CalledByGraph proc~rsave_to_hdf5 rsave_to_hdf5 interface~save_to_hdf5 save_to_hdf5 interface~save_to_hdf5->proc~rsave_to_hdf5 proc~save_hollmann_params save_Hollmann_params proc~save_hollmann_params->interface~save_to_hdf5 proc~save_params~2 save_params proc~save_params~2->interface~save_to_hdf5 proc~save_gamma_params save_gamma_params proc~save_gamma_params->interface~save_to_hdf5 proc~save_simulation_parameters save_simulation_parameters proc~save_simulation_parameters->interface~save_to_hdf5 proc~save_params save_params proc~save_params->interface~save_to_hdf5 proc~save_params_ms save_params_ms proc~save_params_ms->interface~save_to_hdf5 proc~save_params_ss save_params_ss proc~save_params_ss->interface~save_to_hdf5 proc~save_restart_variables save_restart_variables proc~save_restart_variables->interface~save_to_hdf5 proc~save_avalanche_params save_avalanche_params proc~save_avalanche_params->interface~save_to_hdf5 proc~get_avalanche_distribution get_avalanche_distribution proc~get_avalanche_distribution->proc~save_avalanche_params proc~get_hollmann_distribution_3d get_Hollmann_distribution_3D proc~get_hollmann_distribution_3d->proc~save_hollmann_params proc~get_experimentalg_distribution get_experimentalG_distribution proc~get_experimentalg_distribution->proc~save_params~2 proc~get_gamma_distribution get_gamma_distribution proc~get_gamma_distribution->proc~save_gamma_params proc~save_collision_params save_collision_params proc~save_collision_params->proc~save_params_ms proc~save_collision_params->proc~save_params_ss program~main main program~main->proc~save_simulation_parameters program~main->proc~save_restart_variables program~main->proc~save_collision_params proc~get_equilibrium_distribution get_equilibrium_distribution proc~get_equilibrium_distribution->proc~save_params proc~get_avalanche_4d get_Avalanche_4D proc~get_avalanche_4d->proc~save_avalanche_params proc~get_hollmann_distribution_1dtransport get_Hollmann_distribution_1Dtransport proc~get_hollmann_distribution_1dtransport->proc~save_hollmann_params proc~get_hollmann_distribution_3d_psi get_Hollmann_distribution_3D_psi proc~get_hollmann_distribution_3d_psi->proc~save_hollmann_params proc~get_hollmann_distribution get_Hollmann_distribution proc~get_hollmann_distribution->proc~save_hollmann_params

Contents

Source Code


Source Code

  subroutine rsave_to_hdf5(h5file_id,dset,rdatum,attr)
    INTEGER(HID_T), INTENT(IN) 							:: h5file_id
    CHARACTER(MAX_STRING_LENGTH), INTENT(IN) 			:: dset
    REAL(rp), INTENT(IN) 								:: rdatum
    CHARACTER(MAX_STRING_LENGTH), OPTIONAL, INTENT(IN) 	:: attr
    CHARACTER(4) 										:: aname = "Info"
    INTEGER(HID_T) 										:: dset_id
    INTEGER(HID_T) 										:: dspace_id
    INTEGER(HID_T) 										:: aspace_id
    INTEGER(HID_T) 										:: attr_id
    INTEGER(HID_T) 										:: atype_id
    INTEGER(HSIZE_T), DIMENSION(1) 						:: dims = (/1/)
    INTEGER(HSIZE_T), DIMENSION(1) 						:: adims = (/1/)
    INTEGER 											:: rank = 1
    INTEGER 											:: arank = 1
    INTEGER(SIZE_T) 									:: attrlen
    INTEGER 											:: h5error

    ! * * * Write data to file * * *

    call h5screate_simple_f(rank,dims,dspace_id,h5error)
    call h5dcreate_f(h5file_id, TRIM(dset), KORC_HDF5_REAL, dspace_id, dset_id, h5error)

    if (rp .EQ. INT(rp_hdf5)) then
       call h5dwrite_f(dset_id, KORC_HDF5_REAL, rdatum, dims, h5error)
    else
       call h5dwrite_f(dset_id, KORC_HDF5_REAL, REAL(rdatum,4), dims, h5error)
    end if

    if (PRESENT(attr)) then
       ! * * * Write attribute of data to file * * *
       attrlen = LEN_TRIM(attr)
       call h5screate_simple_f(arank,adims,aspace_id,h5error)
       call h5tcopy_f(H5T_NATIVE_CHARACTER, atype_id, h5error)
       call h5tset_size_f(atype_id, attrlen, h5error)
       call h5acreate_f(dset_id, aname, atype_id, aspace_id, attr_id, h5error)
       call h5awrite_f(attr_id, atype_id, attr, adims, h5error)

       call h5aclose_f(attr_id, h5error)
       call h5sclose_f(aspace_id, h5error)
       ! * * * Write attribute of data to file * * *
    end if

    call h5sclose_f(dspace_id, h5error)
    call h5dclose_f(dset_id, h5error)
    ! * * * Write data to file * * *
  end subroutine rsave_to_hdf5