1 integer(hid_t) :: plist_id
2 integer(hid_t) :: dset_id
3 integer(hid_t) :: memspace
4 integer(hid_t) :: filespace
5 integer(hsize_t) :: dimsfi(dspace_dims)
6 integer(hsize_t) :: block(dspace_dims)
7 integer(hsize_t) :: start(dspace_dims)
8 integer(hsize_t) :: count(dspace_dims)
9 integer(hsize_t) :: stride(dspace_dims)
18 dimsfi = int(global_size, hsize_t)
19 block = int(shape(array), hsize_t)
20 start = int(offset, hsize_t)
25 call h5screate_simple_f(rank, global_size, filespace, error)
26 sll_assert_always(error == 0)
28 call h5screate_simple_f(rank, block, memspace, error)
29 sll_assert_always(error == 0)
34 call h5pcreate_f(h5p_dataset_create_f, plist_id, error)
35 sll_assert_always(error == 0)
40 call h5dopen_f(handle%file_id, dsetname, dset_id, error)
41 sll_assert_always(error == 0)
43 call h5pclose_f(plist_id, error)
44 sll_assert_always(error == 0)
46 call h5sclose_f(filespace, error)
47 sll_assert_always(error == 0)
52 call h5dget_space_f(dset_id, filespace, error)
53 sll_assert_always(error == 0)
55 call h5sselect_hyperslab_f(filespace, h5s_select_set_f, &
56 start, count, error, stride, block)
57 sll_assert_always(error == 0)
65 call h5pcreate_f(h5p_dataset_xfer_f, plist_id, error)
66 sll_assert_always(error == 0)
68 call h5pset_dxpl_mpio_f(plist_id, h5fd_mpio_collective_f, error)
69 sll_assert_always(error == 0)
74 call h5dread_f(dset_id, datatype, array, dimsfi, error, &
75 file_space_id=filespace, mem_space_id=memspace, &
77 sll_assert_always(error == 0)
82 call h5pclose_f(plist_id, error)
83 sll_assert_always(error == 0)
88 call h5sclose_f(filespace, error)
89 sll_assert_always(error == 0)
91 call h5sclose_f(memspace, error)
92 sll_assert_always(error == 0)
97 call h5dclose_f(dset_id, error)
98 sll_assert_always(error == 0)