Name: H5Dvlen_reclaim
Signature:
  herr_t `H5Dvlen_reclaim`(hid_t `type_id`, hid_t `space_id`, hid_t `plist_id`, void *`buf` )
Purpose:
  Reclaims VL datatype memory buffers.
Description:
  `H5Dvlen_reclaim` reclaims memory buffers created to store VL datatypes.

  The `type_id` must be the datatype stored in the buffer. The `space_id` describes the selection for the memory buffer to free the VL datatypes within. The `plist_id` is the dataset transfer property list which was used for the I/O transfer to create the buffer. And `buf` is the pointer to the buffer to be reclaimed.

  The VL structures (`hvl_t`) in the user's buffer are modified to zero out the VL information after the memory has been reclaimed.

  If nested VL datatypes were used to create the buffer, this routine frees them from the bottom up, releasing all the memory without creating memory leaks.

Parameters:

hid_t `type_id` | IN: Identifier of the datatype.
hid_t `space_id` | IN: Identifier of the dataspace.
hid_t `plist_id` | IN: Identifier of the property list used to create the buffer.
void *`buf` | IN: Pointer to the buffer to be reclaimed.

Returns:
  Returns non-negative value if successful; otherwise returns a negative value.
Fortran90 Interface:
  None.