printf("         stride = [%llu, %llu, %llu] \n", (unsigned long long)stride_out[0], (unsigned long long)stride_out[1], (unsigned long long)stride_out[2]);
 
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * Copyright by The HDF Group.                                               *
 * All rights reserved.                                                      *
 *                                                                           *
 * This file is part of HDF5.  The full HDF5 copyright notice, including     *
 * terms governing use, modification, and redistribution, is contained in    *
 * the COPYING file, which can be found at the root of the source code       *
 * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases.  *
 * If you do not have access to either file, you may request a copy from     *
 * help@hdfgroup.org.                                                        *
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/************************************************************
  This example illustrates the concept of the virtual dataset.
  Excalibur use case with k=2 and m=3 and only 3 planes in
  Z-direction (i.e., not unlimited).
  This file is intended for use with HDF5 Library version 1.10
 ************************************************************/
/* EIP Add link to the picture */
#include "hdf5.h"
#include <stdio.h>
#include <stdlib.h>
#define FILE         "vds-exclim.h5"
#define DATASET      "VDS-Excaliburlim"
#define VDSDIM0         3 
#define VDSDIM1         15 
#define VDSDIM2         6 
#define KDIM0           3 
#define KDIM1           2 
#define KDIM2           6 
#define NDIM0           3 
#define NDIM1           3 
#define NDIM2           6 
#define RANK            3 
const char *SRC_FILE[] = {
    "a.h5",
    "b.h5",
    "c.h5",
    "d.h5",
    "e.h5",
    "f.h5"
};
const char *SRC_DATASET[] = {
    "A",
    "B",
    "C",