! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! 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://www.hdfgroup.org/licenses. * ! If you do not have access to either file, you may request a copy from * ! help@hdfgroup.org. * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! ! ! The following example shows how to create an empty dataset. ! It creates a file called 'dsetf.h5', defines the ! dataset dataspace, creates a dataset which is a 4x6 integer array, ! and then closes the dataspace, the dataset, and the file. ! ! This example is used in the HDF5 Tutorial. PROGRAM H5_CRTDAT USE HDF5 ! This module contains all necessary modules IMPLICIT NONE CHARACTER(LEN=:), ALLOCATABLE :: filename ! File name CHARACTER(LEN=6), PARAMETER, dimension(3) :: dsetname = & ["4_dset","2_dset","6_dset"] ! Dataset names INTEGER(HID_T) :: file_id ! File identifier INTEGER(HID_T) :: dset_id ! Dataset identifier INTEGER(HID_T) :: dspace_id ! Dataspace identifier INTEGER(HID_T) :: plist_id ! Propertylist identifier INTEGER(HSIZE_T), DIMENSION(2) :: dims = [4,6] ! Dataset dimensions INTEGER :: rank = 2 ! Dataset rank INTEGER :: error,i,j,order ! ! Initialize FORTRAN interface. ! CALL h5open_f(error) ! do j = 1, 2 ! ! Create property list for file. ! CALL H5Pcreate_f(H5P_FILE_CREATE_F, plist_id, error) if (j == 1) then filename = 'file_unsorted.hdf5' else filename = 'file_sorted.hdf5' CALL H5Pset_link_creation_order_f(plist_id, ior(H5P_CRT_ORDER_INDEXED_F,H5P_CRT_ORDER_TRACKED_F), error) endif ! ! Create a new file using default properties. ! CALL H5Fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, error, creation_prp = plist_id) do i=1, size(dsetname) ! ! Create the dataspace. ! CALL h5screate_simple_f(rank, dims, dspace_id, error) ! ! Create the dataset with default properties. ! CALL h5dcreate_f(file_id, dsetname(i), H5T_NATIVE_INTEGER, dspace_id, & dset_id, error) ! ! End access to the dataset and release resources used by it. ! CALL h5dclose_f(dset_id, error) ! ! Terminate access to the data space. ! CALL h5sclose_f(dspace_id, error) end do ! ! Close the file. ! CALL h5fclose_f(file_id, error) end do do j = 1, 2 ! ! Create property list for file. ! CALL H5Pcreate_f(H5P_FILE_CREATE_F, plist_id, error) if (j == 1) then filename = 'file_unsorted.hdf5' else filename = 'file_sorted.hdf5' endif ! ! Open a default properties. ! CALL H5Fopen_f(filename, H5F_ACC_RDWR_F, file_id, error) CALL H5Fget_create_plist_f(file_id,plist_id,error) CALL H5Pget_link_creation_order_f(plist_id,order,error) print*, filename print*, iand(order,H5P_CRT_ORDER_INDEXED_F) if (filename=='file_sorted.hdf5') print*, 'expected', H5P_CRT_ORDER_INDEXED_F print*, iand(order,H5P_CRT_ORDER_TRACKED_F) CALL h5pclose_f(plist_id, error) if (filename=='file_sorted.hdf5') print*, 'expected', H5P_CRT_ORDER_TRACKED_F ! ! Close the file. ! CALL h5fclose_f(file_id, error) end do ! ! Close FORTRAN interface. ! CALL h5close_f(error) END PROGRAM H5_CRTDAT