get2d_hdf5 Function

public function get2d_hdf5(cfg, sig) result(ok)

Arguments

Type IntentOptional Attributes Name
class(input_t), intent(in) :: cfg
real(kind=dp), allocatable :: sig(:,:)

Return Value logical


Calls

proc~~get2d_hdf5~~CallsGraph proc~get2d_hdf5 get2d_hdf5 h5dclose_f h5dclose_f proc~get2d_hdf5->h5dclose_f h5dopen_f h5dopen_f proc~get2d_hdf5->h5dopen_f h5dread_f h5dread_f proc~get2d_hdf5->h5dread_f h5fclose_f h5fclose_f proc~get2d_hdf5->h5fclose_f h5fopen_f h5fopen_f proc~get2d_hdf5->h5fopen_f h5ltget_dataset_info_f h5ltget_dataset_info_f proc~get2d_hdf5->h5ltget_dataset_info_f proc~input_has_key input_t%input_has_key proc~get2d_hdf5->proc~input_has_key proc~input_str input_t%input_str proc~get2d_hdf5->proc~input_str get get proc~input_has_key->get proc~select_dict select_dict proc~input_has_key->proc~select_dict proc~input_str->proc~input_has_key proc~input_node input_t%input_node proc~input_str->proc~input_node proc~select_scalar select_scalar proc~input_str->proc~select_scalar proc~input_node->get proc~input_node->proc~select_dict proc~dictionary_traverse dictionary_traverse proc~input_node->proc~dictionary_traverse proc~dictionary_traverse->proc~dictionary_traverse get_dictionary get_dictionary proc~dictionary_traverse->get_dictionary proc~abort_if abort_if proc~dictionary_traverse->proc~abort_if

Called by

proc~~get2d_hdf5~~CalledByGraph proc~get2d_hdf5 get2d_hdf5 proc~input_dbl2d input_t%input_dbl2d proc~input_dbl2d->proc~get2d_hdf5 proc~signal_init signal_t%signal_init proc~signal_init->proc~input_dbl2d proc~boundary_init_part1 boundary_init_part1 proc~boundary_init_part1->proc~signal_init proc~channel_init_part1 channel_init_part1 proc~channel_init_part1->proc~signal_init proc~mesh2d_init_part1 mesh2D_init_part1 proc~mesh2d_init_part1->proc~signal_init proc~sim_init simulation_t%sim_init proc~sim_init->proc~signal_init proc~solid_init_part1 solid_init_part1 proc~solid_init_part1->proc~signal_init proc~strand_init_part1 strand_init_part1 proc~strand_init_part1->proc~signal_init program~reims_p reims_p program~reims_p->proc~boundary_init_part1 program~reims_p->proc~channel_init_part1 program~reims_p->proc~mesh2d_init_part1 program~reims_p->proc~sim_init program~reims_p->proc~solid_init_part1 program~reims_p->proc~strand_init_part1

Source Code

function get2d_hdf5(cfg, sig) result(ok)
    class(input_t), intent(in) :: cfg
    real(dp), allocatable :: sig(:,:)
    logical :: ok

    integer(hId_t) :: file_id, dSet_id
    integer(hSize_t) :: dims(7), type_size
    integer :: error, type_class
    character(:), allocatable :: dSet

    ok = .false.
    if(.not.cfg%has_key('h5')) return
    dSet = cfg%str('data')
    call h5fOpen_f(cfg%str('h5'), H5F_ACC_RDONLY_F, file_id, error)
    call h5ltGet_dataset_info_f(file_id, dSet, dims, type_class, type_size, error)
    allocate(sig(dims(1),dims(2)))
    call h5dOpen_f(file_id, dSet, dSet_id, error)
    call h5dRead_f(dSet_id, H5T_NATIVE_DOUBLE, sig, dims, error)
    call h5dClose_f(dSet_id, error)
    call h5fClose_f(file_id, error)
    ok = .true.
end function get2d_hdf5