if ((ret = PIOc_InitDecomp(iosysid, PIO_FLOAT, 2, &dim_len[1], (PIO_Offset)elements_per_pe,
 
/**
 * @file 
 * Tests for NetCDF-4 Functions
 *
 */
#include <pio.h>
#ifdef TIMING
#include <gptl.h>
#endif
/** The number of possible output netCDF output flavors available to
 * the ParallelIO library. */
#define NUM_NETCDF_FLAVORS 4
/** The number of dimensions in the example data. In this example, we
 * are using three-dimensional data. */
#define NDIM 3
/** The length of our sample data along each dimension. There will be
 * a total of 16 integers in each timestep of our data, and
 * responsibilty for writing and reading them will be spread between
 * all the processors used to run this example. */
/**@{*/
#define X_DIM_LEN 400
#define Y_DIM_LEN 400
/**@}*/
/** The number of timesteps of data to write. */
#define NUM_TIMESTEPS 6
/** The name of the variable in the netCDF output file. */
#define VAR_NAME "foo"
/** The meaning of life, the universe, and everything. */
#define START_DATA_VAL 42
/** Handle MPI errors. This should only be used with MPI library
 * function calls. */
#define MPIERR(e) do {                                                  \
    MPI_Error_string(e, err_buffer, &resultlen);            \
    fprintf(stderr, "MPI error, line %d, file %s: %s\n", __LINE__, __FILE__, err_buffer); \
    MPI_Finalize();                         \
    return 2;                           \
    } while (0) 
/** Handle non-MPI errors by finalizing the MPI library and exiting
 * with an exit code. */
#define ERR(e) do {             \
        fprintf(stderr, "Error %d in %s, line %d\n", e, __FILE__, __LINE__); \
    MPI_Finalize();             \
    return e;               \