/* Create file */
    fid1 = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
    CHECK(fid1, FAIL, "H5Fcreate");
    /* Create dataspace for datasets */
    sid1 = H5Screate_simple(SPACE1_RANK, sdims1, NULL);
    CHECK(sid1, FAIL, "H5Screate_simple");
    /* Create a datatype to refer to */
    tid1 = H5Tarray_create(H5T_NATIVE_INT, ARRAY1_RANK, tdims1, NULL);
    CHECK(tid1, FAIL, "H5Tarray_create");
    tid1 = H5Tarray_create2(H5T_NATIVE_INT, ARRAY1_RANK, tdims1);
    CHECK(tid1, FAIL, "H5Tarray_create2");
    /* Create a dataset */
    dataset = H5Dcreate2(fid1, "Dataset1", tid1, sid1, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
    CHECK(dataset, FAIL, "H5Dcreate2");
    /* Write dataset to disk */
    ret = H5Dwrite(dataset, tid1, H5S_ALL, H5S_ALL, H5P_DEFAULT, wdata);
    CHECK(ret, FAIL, "H5Dwrite");
    /* Close Dataset */
    /* Get the datatype */
    tid1 = H5Dget_type (dataset);
    CHECK(tid1, FAIL, "H5Dget_type");
    /* Check the array rank */
    ndims = H5Tget_array_ndims(tid1);
    VERIFY(ndims, ARRAY1_RANK, "H5Tget_array_ndims");
    /* Get the array dimensions */
    ret = H5Tget_array_dims(tid1, rdims1, NULL);
    CHECK(ret, FAIL, "H5Tget_array_dims");
    ret = H5Tget_array_dims2(tid1, rdims1);
    CHECK(ret, FAIL, "H5Tget_array_dims2");
    /* Check the array dimensions */
    for(i = 0; i < ndims; i++)
        if(rdims1[i] != tdims1[i]) {
            TestErrPrintf("Array dimension information doesn't match!, rdims1[%d]=%d, tdims1[%d]=%d\n", (int)i, (int)rdims1[i], (int)i, (int)tdims1[i]);
            continue;
        } /* end if */
    /* Read dataset from disk */
    ret = H5Dread(dataset, tid1, H5S_ALL, H5S_ALL, H5P_DEFAULT, rdata);
    hid_t       type;       /* Datatype ID */
    hsize_t     tdims1[] = {ARRAY1_DIM1};
    int                 size;
    H5T_pad_t           inpad;
    H5T_norm_t          norm;
    H5T_cset_t          cset;
    H5T_str_t           strpad;
    herr_t      ret;        /* Generic return value */
    /* Create a datatype to refer to */
    type = H5Tarray_create(H5T_IEEE_F32BE, ARRAY1_RANK, tdims1, NULL);
    CHECK(type, FAIL, "H5Tarray_create");
    type = H5Tarray_create2(H5T_IEEE_F32BE, ARRAY1_RANK, tdims1);
    CHECK(type, FAIL, "H5Tarray_create2");
    size=H5Tget_precision(type);
    CHECK(size, FAIL, "H5Tget_precision");
    size=H5Tget_size(type);
    CHECK(size, FAIL, "H5Tget_size");
    size=H5Tget_ebias(type);
    CHECK(size, FAIL, "H5Tget_ebias");
    /* Create file */
    fid = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
    CHECK(fid, FAIL, "H5Fcreate");
    /* Create dataspace for datasets */
    sid = H5Screate_simple(SPACE1_RANK, sdims1, NULL);
    CHECK(sid, FAIL, "H5Screate_simple");
    /* Create a datatype to refer to */
    tid = H5Tarray_create(H5T_NATIVE_INT, ARRAY2_RANK, tdims2, NULL);
    CHECK(tid, FAIL, "H5Tarray_create");
    tid = H5Tarray_create2(H5T_NATIVE_INT, ARRAY2_RANK, tdims2);
    CHECK(tid, FAIL, "H5Tarray_create2");
    /* Create a dataset */
    dataset = H5Dcreate2(fid, "Dataset1", tid, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
    CHECK(dataset, FAIL, "H5Dcreate2");
    /* Write dataset to disk */
    ret = H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, wdata);
    CHECK(ret, FAIL, "H5Dwrite");
    /* Close Dataset */
    /* Get the datatype */
    tid = H5Dget_type (dataset);
    CHECK(tid, FAIL, "H5Dget_type");
    /* Check the array rank */
    ndims = H5Tget_array_ndims(tid);
    VERIFY(ndims, ARRAY2_RANK, "H5Tget_array_ndims");
    /* Get the array dimensions */
    ret = H5Tget_array_dims(tid, rdims2, NULL);
    CHECK(ret, FAIL, "H5Tget_array_dims");
    ret = H5Tget_array_dims2(tid, rdims2);
    CHECK(ret, FAIL, "H5Tget_array_dims2");
    /* Check the array dimensions */
    for(i = 0; i < ndims; i++)
        if(rdims2[i] != tdims2[i]) {
            TestErrPrintf("Array dimension information doesn't match!, rdims2[%d]=%d, tdims2[%d]=%d\n", (int)i, (int)rdims2[i], (int)i, (int)tdims2[i]);
            continue;
        } /* end if */
    /* Read dataset from disk */
    ret = H5Dread(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, rdata);
    /* Create file */
    fid = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
    CHECK(fid, FAIL, "H5Fcreate");
    /* Create dataspace for datasets */
    sid = H5Screate_simple(SPACE1_RANK, sdims1, NULL);
    CHECK(sid, FAIL, "H5Screate_simple");
    /* Create a 2-D datatype to refer to */
    tid2 = H5Tarray_create(H5T_NATIVE_INT, ARRAY3_RANK, tdims2, NULL);
    CHECK(tid2, FAIL, "H5Tarray_create");
    tid2 = H5Tarray_create2(H5T_NATIVE_INT, ARRAY3_RANK, tdims2);
    CHECK(tid2, FAIL, "H5Tarray_create2");
    /* Create a 1-D datatype to refer to */
    tid1 = H5Tarray_create(tid2, ARRAY1_RANK, tdims1, NULL);
    CHECK(tid1, FAIL, "H5Tarray_create");
    tid1 = H5Tarray_create2(tid2, ARRAY1_RANK, tdims1);
    CHECK(tid1, FAIL, "H5Tarray_create2");
    /* Create a dataset */
    dataset = H5Dcreate2(fid, "Dataset1", tid1, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
    CHECK(dataset, FAIL, "H5Dcreate2");
    /* Write dataset to disk */
    ret = H5Dwrite(dataset, tid1, H5S_ALL, H5S_ALL, H5P_DEFAULT, wdata);
    CHECK(ret, FAIL, "H5Dwrite");
    /* Close Dataset */
    /* Get the 1-D datatype */
    tid1 = H5Dget_type(dataset);
    CHECK(tid1, FAIL, "H5Dget_type");
    /* Check the 1-D array rank */
    ndims1 = H5Tget_array_ndims(tid1);
    VERIFY(ndims1, ARRAY1_RANK, "H5Tget_array_ndims");
    /* Get the 1-D array dimensions */
    ret = H5Tget_array_dims(tid1, rdims1, NULL);
    CHECK(ret, FAIL, "H5Tget_array_dims");
    ret = H5Tget_array_dims2(tid1, rdims1);
    CHECK(ret, FAIL, "H5Tget_array_dims2");
    /* Check the array dimensions */
    for(i = 0; i < ndims1; i++)
        if(rdims1[i] != tdims1[i]) {
            TestErrPrintf("Array dimension information doesn't match!, rdims1[%d]=%d, tdims1[%d]=%d\n", (int)i, (int)rdims1[i], (int)i, (int)tdims1[i]);
            continue;
        } /* end if */
    /* Get the 2-D datatype */
    tid2 = H5Tget_super(tid1);
    CHECK(tid2, FAIL, "H5Tget_super");
    /* Check the 2-D array rank */
    ndims2 = H5Tget_array_ndims(tid2);
    VERIFY(ndims2, ARRAY3_RANK, "H5Tget_array_ndims");
    /* Get the 2-D array dimensions */
    ret = H5Tget_array_dims(tid2, rdims2, NULL);
    CHECK(ret, FAIL, "H5Tget_array_dims");
    ret = H5Tget_array_dims2(tid2, rdims2);
    CHECK(ret, FAIL, "H5Tget_array_dims2");
    /* Check the array dimensions */
    for(i = 0; i < ndims2; i++)
        if(rdims2[i] != tdims2[i]) {
            TestErrPrintf("Array dimension information doesn't match!, rdims2[%d]=%d, tdims2[%d]=%d\n", (int)i, (int)rdims2[i], (int)i, (int)tdims2[i]);
            continue;
        } /* end if */
    /* Read dataset from disk */
    ret = H5Dread(dataset, tid1, H5S_ALL, H5S_ALL, H5P_DEFAULT, rdata);
    /* Insert integer field */
    ret = H5Tinsert(tid2, "i", HOFFSET(s1_t, i), H5T_NATIVE_INT);
    CHECK(ret, FAIL, "H5Tinsert");
    /* Insert float field */
    ret = H5Tinsert(tid2, "f", HOFFSET(s1_t, f), H5T_NATIVE_FLOAT);
    CHECK(ret, FAIL, "H5Tinsert");
    /* Create an array datatype to refer to */
    tid1 = H5Tarray_create(tid2, ARRAY1_RANK, tdims1, NULL);
    CHECK(tid1, FAIL, "H5Tarray_create");
    tid1 = H5Tarray_create2(tid2, ARRAY1_RANK, tdims1);
    CHECK(tid1, FAIL, "H5Tarray_create2");
    /* Close compound datatype */
    ret = H5Tclose(tid2);
    CHECK(ret, FAIL, "H5Tclose");
    /* Create a dataset */
    dataset = H5Dcreate2(fid1, "Dataset1", tid1, sid1, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
    CHECK(dataset, FAIL, "H5Dcreate2");
    /* Write dataset to disk */
    /* Get the datatype */
    tid1 = H5Dget_type(dataset);
    CHECK(tid1, FAIL, "H5Dget_type");
    /* Check the array rank */
    ndims = H5Tget_array_ndims(tid1);
    VERIFY(ndims,ARRAY1_RANK,"H5Tget_array_ndims");
    /* Get the array dimensions */
    ret = H5Tget_array_dims(tid1, rdims1, NULL);
    CHECK(ret, FAIL, "H5Tget_array_dims");
    ret = H5Tget_array_dims2(tid1, rdims1);
    CHECK(ret, FAIL, "H5Tget_array_dims2");
    /* Check the array dimensions */
    for(i = 0; i < ndims; i++)
        if(rdims1[i] != tdims1[i]) {
            TestErrPrintf("Array dimension information doesn't match!, rdims1[%d]=%d, tdims1[%d]=%d\n", (int)i, (int)rdims1[i], (int)i, (int)tdims1[i]);
            continue;
        } /* end if */
    /* Get the compound datatype */
    tid2 = H5Tget_super (tid1);
    /* Create a compound datatype to refer to */
    tid2 = H5Tcreate(H5T_COMPOUND, sizeof(s1_t));
    CHECK(tid2, FAIL, "H5Tcreate");
    /* Insert integer field */
    ret = H5Tinsert (tid2, "i", HOFFSET(s1_t,i), H5T_NATIVE_INT);
    CHECK(ret, FAIL, "H5Tinsert");
    /* Create an array of floats datatype */
    tid3 = H5Tarray_create(H5T_NATIVE_FLOAT, ARRAY1_RANK, tdims1, NULL);
    CHECK(tid3, FAIL, "H5Tarray_create");
    tid3 = H5Tarray_create2(H5T_NATIVE_FLOAT, ARRAY1_RANK, tdims1);
    CHECK(tid3, FAIL, "H5Tarray_create2");
    /* Insert float array field */
    ret = H5Tinsert(tid2, "f", HOFFSET(s1_t, f), tid3);
    CHECK(ret, FAIL, "H5Tinsert");
    /* Close array of floats field datatype */
    ret = H5Tclose(tid3);
    CHECK(ret, FAIL, "H5Tclose");
    /* Create an array datatype to refer to */
    tid1 = H5Tarray_create(tid2, ARRAY1_RANK, tdims1, NULL);
    CHECK(tid1, FAIL, "H5Tarray_create");
    tid1 = H5Tarray_create2(tid2, ARRAY1_RANK, tdims1);
    CHECK(tid1, FAIL, "H5Tarray_create2");
    /* Close compound datatype */
    ret = H5Tclose(tid2);
    CHECK(ret, FAIL, "H5Tclose");
    /* Create a dataset */
    dataset = H5Dcreate2(fid1, "Dataset1", tid1, sid1, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
    CHECK(dataset, FAIL, "H5Dcreate2");
    /* Write dataset to disk */
    /* Get the datatype */
    tid1 = H5Dget_type (dataset);
    CHECK(tid1, FAIL, "H5Dget_type");
    /* Check the array rank */
    ndims=H5Tget_array_ndims(tid1);
    VERIFY(ndims,ARRAY1_RANK,"H5Tget_array_ndims");
    /* Get the array dimensions */
    ret = H5Tget_array_dims(tid1, rdims1, NULL);
    CHECK(ret, FAIL, "H5Tget_array_dims");
    ret = H5Tget_array_dims2(tid1, rdims1);
    CHECK(ret, FAIL, "H5Tget_array_dims2");
    /* Check the array dimensions */
    for(i=0; i<ndims; i++)
        if(rdims1[i]!=tdims1[i]) {
            TestErrPrintf("Array dimension information doesn't match!, rdims1[%d]=%d, tdims1[%d]=%d\n",(int)i,(int)rdims1[i],(int)i,(int)tdims1[i]);
            continue;
        } /* end if */
    /* Get the compound datatype */
    tid2 = H5Tget_super (tid1);
    /* Get the 2nd field's class */
    mclass=H5Tget_class(mtid);
    VERIFY(mclass, H5T_ARRAY, "H5Tget_class");
    /* Check the array rank */
    ndims=H5Tget_array_ndims(mtid);
    VERIFY(ndims,ARRAY1_RANK,"H5Tget_array_ndims");
    /* Get the array dimensions */
    ret = H5Tget_array_dims(mtid, rdims1, NULL);
    CHECK(ret, FAIL, "H5Tget_array_dims");
    ret = H5Tget_array_dims2(mtid, rdims1);
    CHECK(ret, FAIL, "H5Tget_array_dims2");
    /* Check the array dimensions */
    for(i=0; i<ndims; i++)
        if(rdims1[i]!=tdims1[i]) {
            TestErrPrintf("Nested array dimension information doesn't match!, rdims1[%d]=%d, tdims1[%d]=%d\n",(int)i,(int)rdims1[i],(int)i,(int)tdims1[i]);
            continue;
        } /* end if */
    /* Check the nested array's datatype */
    tid3=H5Tget_super(mtid);
    /* Create dataspace for datasets */
    sid1 = H5Screate_simple(SPACE1_RANK, sdims1, NULL);
    CHECK(sid1, FAIL, "H5Screate_simple");
    /* Create a compound datatype to refer to */
    tid2 = H5Tvlen_create(H5T_NATIVE_UINT);
    CHECK(tid2, FAIL, "H5Tcreate");
    /* Create an array datatype to refer to */
    tid1 = H5Tarray_create(tid2, ARRAY1_RANK, tdims1, NULL);
    CHECK(tid1, FAIL, "H5Tarray_create");
    tid1 = H5Tarray_create2(tid2, ARRAY1_RANK, tdims1);
    CHECK(tid1, FAIL, "H5Tarray_create2");
    /* Close VL datatype */
    ret = H5Tclose(tid2);
    CHECK(ret, FAIL, "H5Tclose");
    /* Create a dataset */
    dataset = H5Dcreate2(fid1, "Dataset1", tid1, sid1, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
    CHECK(dataset, FAIL, "H5Dcreate2");
    /* Write dataset to disk */
    /* Get the datatype */
    tid1 = H5Dget_type (dataset);
    CHECK(tid1, FAIL, "H5Dget_type");
    /* Check the array rank */
    ndims=H5Tget_array_ndims(tid1);
    VERIFY(ndims,ARRAY1_RANK,"H5Tget_array_ndims");
    /* Get the array dimensions */
    ret = H5Tget_array_dims(tid1, rdims1, NULL);
    CHECK(ret, FAIL, "H5Tget_array_dims");
    ret = H5Tget_array_dims2(tid1, rdims1);
    CHECK(ret, FAIL, "H5Tget_array_dims2");
    /* Check the array dimensions */
    for(i=0; i<ndims; i++)
        if(rdims1[i]!=tdims1[i]) {
            TestErrPrintf("Array dimension information doesn't match!, rdims1[%d]=%d, tdims1[%d]=%d\n",(int)i,(int)rdims1[i],(int)i,(int)tdims1[i]);
            continue;
        } /* end if */
    /* Get the VL datatype */
    tid2 = H5Tget_super (tid1);
    /* Create file */
    fid1 = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
    CHECK(fid1, FAIL, "H5Fcreate");
    /* Create dataspace for datasets */
    sid1 = H5Screate_simple(SPACE1_RANK, sdims1, NULL);
    CHECK(sid1, FAIL, "H5Screate_simple");
    /* Create the nested array datatype to refer to */
    tid3 = H5Tarray_create(H5T_NATIVE_UINT, ARRAY1_RANK, tdims1, NULL);
    CHECK(tid3, FAIL, "H5Tcreate");
    tid3 = H5Tarray_create2(H5T_NATIVE_UINT, ARRAY1_RANK, tdims1);
    CHECK(tid3, FAIL, "H5Tarray_create2");
    /* Create a VL datatype of 1-D arrays to refer to */
    tid2 = H5Tvlen_create(tid3);
    CHECK(tid2, FAIL, "H5Tcreate");
    /* Close nested array datatype */
    ret = H5Tclose(tid3);
    CHECK(ret, FAIL, "H5Tclose");
    /* Create an array datatype to refer to */
    tid1 = H5Tarray_create(tid2, ARRAY1_RANK, tdims1, NULL);
    CHECK(tid1, FAIL, "H5Tarray_create");
    tid1 = H5Tarray_create2(tid2, ARRAY1_RANK, tdims1);
    CHECK(tid1, FAIL, "H5Tarray_create2");
    /* Close VL datatype */
    ret = H5Tclose(tid2);
    CHECK(ret, FAIL, "H5Tclose");
    /* Create a dataset */
    dataset = H5Dcreate2(fid1, "Dataset1", tid1, sid1, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
    CHECK(dataset, FAIL, "H5Dcreate2");
    /* Write dataset to disk */
    /* Get the datatype */
    tid1 = H5Dget_type (dataset);
    CHECK(tid1, FAIL, "H5Dget_type");
    /* Check the array rank */
    ndims=H5Tget_array_ndims(tid1);
    VERIFY(ndims,ARRAY1_RANK,"H5Tget_array_ndims");
    /* Get the array dimensions */
    ret = H5Tget_array_dims(tid1, rdims1, NULL);
    CHECK(ret, FAIL, "H5Tget_array_dims");
    ret = H5Tget_array_dims2(tid1, rdims1);
    CHECK(ret, FAIL, "H5Tget_array_dims2");
    /* Check the array dimensions */
    for(i=0; i<ndims; i++)
        if(rdims1[i]!=tdims1[i]) {
            TestErrPrintf("Array dimension information doesn't match!, rdims1[%d]=%d, tdims1[%d]=%d\n",(int)i,(int)rdims1[i],(int)i,(int)tdims1[i]);
            continue;
        } /* end if */
    /* Get the VL datatype */
    tid2 = H5Tget_super (tid1);
    /* Get the nested array datatype's class */
    mclass=H5Tget_class(tid3);
    VERIFY(mclass, H5T_ARRAY, "H5Tget_class");
    /* Check the array rank */
    ndims=H5Tget_array_ndims(tid3);
    VERIFY(ndims,ARRAY1_RANK,"H5Tget_array_ndims");
    /* Get the array dimensions */
    ret = H5Tget_array_dims(tid3, rdims1, NULL);
    CHECK(ret, FAIL, "H5Tget_array_dims");
    ret = H5Tget_array_dims2(tid3, rdims1);
    CHECK(ret, FAIL, "H5Tget_array_dims2");
    /* Check the array dimensions */
    for(i=0; i<ndims; i++)
        if(rdims1[i]!=tdims1[i]) {
            TestErrPrintf("Array dimension information doesn't match!, rdims1[%d]=%d, tdims1[%d]=%d\n",(int)i,(int)rdims1[i],(int)i,(int)tdims1[i]);
            continue;
        } /* end if */
    /* Check the array's base type */
    tid4=H5Tget_super(tid3);
    /* Create the memory data type */
    /* --------------------------- */
    type   = H5Tcreate(H5T_COMPOUND, sizeof(CmpField));
    CHECK(type, FAIL, "H5Tcreate");
    /* Add  members to the compound data type */
    /* -------------------------------------- */
    for ( i = 0; i < dtsinfo.nsubfields; i++)
    {
        array_dt = H5Tarray_create(dtsinfo.datatype[i], ndims[i], dima, NULL);
        CHECK(array_dt, FAIL, "H5Tarray_create");
        array_dt = H5Tarray_create2(dtsinfo.datatype[i], ndims[i], dima);
        CHECK(array_dt, FAIL, "H5Tarray_create2");
        status = H5Tinsert (type, dtsinfo.name[i], dtsinfo.offset[i], array_dt);
        CHECK(status, FAIL, "H5Tinsert");
        status = H5Tclose(array_dt);
        CHECK(status, FAIL, "H5Tclose");
    }
    /* Create the dataset */
    /* ------------------ */
    fid = H5Fopen(FILENAME, H5F_ACC_RDWR, H5P_DEFAULT);
    CHECK(fid, FAIL, "H5Fopen");
    dataset = H5Dopen2(fid, FIELDNAME, H5P_DEFAULT);
    CHECK(dataset, FAIL, "H5Dopen2");
    type = H5Tcreate(H5T_COMPOUND, sizeof(fld_t));
    CHECK(type, FAIL, "H5Tcreate");
    array_dt = H5Tarray_create(H5T_NATIVE_FLOAT, 1, dima, NULL);
    CHECK(array_dt, FAIL, "H5Tarray_create");
    array_dt = H5Tarray_create2(H5T_NATIVE_FLOAT, 1, dima);
    CHECK(array_dt, FAIL, "H5Tarray_create2");
    status = H5Tinsert (type, "Two", HOFFSET(fld_t, b), array_dt);
    CHECK(status, FAIL, "H5Tinsert");
    /* Initialize the data to overwrite */
    /* -------------------------------- */
    for (i=0; i< LENGTH; i++)
        for (j = 0; j < ALEN; j++)
            cf[i].b[j]=fld[i].b[j] = (float)1.313;
        /* Verify datatype class */
        mclass=H5Tget_class(mtid);
        VERIFY(mclass, H5T_ARRAY, "H5Tget_class");
        /* Check the array rank */
        ndims=H5Tget_array_ndims(mtid);
        VERIFY(ndims,ARRAY1_RANK,"H5Tget_array_ndims");
        /* Get the array dimensions */
        ret = H5Tget_array_dims(mtid, rdims1, NULL);
        CHECK(ret, FAIL, "H5Tget_array_dims");
        ret = H5Tget_array_dims2(mtid, rdims1);
        CHECK(ret, FAIL, "H5Tget_array_dims2");
        /* Check the array dimensions */
        for(i=0; i<ndims; i++)
            if(rdims1[i]!=tdims1[i]) {
                TestErrPrintf("Array dimension information doesn't match!, rdims1[%d]=%d, tdims1[%d]=%d\n",(int)i,(int)rdims1[i],(int)i,(int)tdims1[i]);
                continue;
            } /* end if */
        /* Check the array's base datatype */
        tid2=H5Tget_super(mtid);
        /* Verify datatype class */
        mclass=H5Tget_class(mtid);
        VERIFY(mclass, H5T_ARRAY, "H5Tget_class");
        /* Check the array rank */
        ndims=H5Tget_array_ndims(mtid);
        VERIFY(ndims,ARRAY1_RANK,"H5Tget_array_ndims");
        /* Get the array dimensions */
        ret = H5Tget_array_dims(mtid,rdims1, NULL);
        CHECK(ret, FAIL, "H5Tget_array_dims");
        ret = H5Tget_array_dims2(mtid, rdims1);
        CHECK(ret, FAIL, "H5Tget_array_dims2");
        /* Check the array dimensions */
        for(i=0; i<ndims; i++)
            if(rdims1[i]!=tdims1[i]) {
                TestErrPrintf("Array dimension information doesn't match!, rdims1[%d]=%d, tdims1[%d]=%d\n",(int)i,(int)rdims1[i],(int)i,(int)tdims1[i]);
                continue;
            } /* end if */
        /* Check the array's base datatype */
        tid2=H5Tget_super(mtid);