h5dwrite_f API and mem_space_id

Another question, hopefully this one garners more responses than the last:
In the Fortran API, when an entire array is passed to h5dwrite_f as
the data buffer, buf, the purpose of the mem_space_id is to select a
certain subset of the data in memory to write to the file, correct?

If I have a regular hyperslab of an in memory array, am I correct in
saying that I have two options of writing this to the file:
1) pass the entire array (as buf) to h5dwrite_f along with a
mem_space_id pointing to a data space where the appropriate hyperslab
has been selected, or
2) exclude the mem_space_id argument and pass a Fortran array
subsection containing only the data from the array I wish to have
written to the file

i.e. are the following two statements equivalent, assuming
mem_space_id points to a memory space with the appropriate hyperslab

CALL h5dwrite_f(dset_id, mem_type_id, buf, dims, hdferr, mem_space_id)


CALL h5dwrite_f(dset_id, mem_type_id, buf(i1:i2:is,j1:j2:js,...), dims, hdferr)

I assume the point of the mem_space_id is to deal with more
complicated selections (cherry picking for example) and for c
programmers since modern Fortran has a useful array subsection syntax
which, to my knowledge, c is lacking.

Izaak Beekman


UMD-CP Visiting Graduate Student
Aerospace Engineering