diff options
Diffstat (limited to 'fortran/examples/mountexample.f90')
-rw-r--r-- | fortran/examples/mountexample.f90 | 80 |
1 files changed, 40 insertions, 40 deletions
diff --git a/fortran/examples/mountexample.f90 b/fortran/examples/mountexample.f90 index fe9eb7e..5bdec2a 100644 --- a/fortran/examples/mountexample.f90 +++ b/fortran/examples/mountexample.f90 @@ -1,4 +1,4 @@ -! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! Copyright by The HDF Group. * ! Copyright by the Board of Trustees of the University of Illinois. * ! All rights reserved. * @@ -11,19 +11,19 @@ ! is linked from the top-level documents page. It can also be found at * ! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * ! access to either file, you may request a copy from help@hdfgroup.org. * -! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! ! -!In the following example we create one file with a group in it, +!In the following example we create one file with a group in it, !and another file with a dataset. Mounting is used to -!access the dataset from the second file as a member of a group -!in the first file. +!access the dataset from the second file as a member of a group +!in the first file. ! PROGRAM MOUNTEXAMPLE - USE HDF5 ! This module contains all necessary modules - + USE HDF5 ! This module contains all necessary modules + IMPLICIT NONE ! @@ -42,53 +42,53 @@ ! ! File identifiers ! - INTEGER(HID_T) :: file1_id, file2_id - + INTEGER(HID_T) :: file1_id, file2_id + ! ! Group identifier ! - INTEGER(HID_T) :: gid + INTEGER(HID_T) :: gid ! ! Dataset identifier ! INTEGER(HID_T) :: dset_id - + ! ! Data space identifier ! INTEGER(HID_T) :: dataspace - + ! ! Data type identifier ! INTEGER(HID_T) :: dtype_id - ! + ! ! The dimensions for the dataset. ! INTEGER(HSIZE_T), DIMENSION(2) :: dims = (/NX,NY/) ! - ! Flag to check operation success - ! + ! Flag to check operation success + ! INTEGER :: error ! - ! General purpose integer - ! + ! General purpose integer + ! INTEGER :: i, j ! - ! Data buffers - ! + ! Data buffers + ! INTEGER, DIMENSION(NX,NY) :: data_in, data_out INTEGER(HSIZE_T), DIMENSION(2) :: data_dims ! - ! Initialize FORTRAN interface. + ! Initialize FORTRAN interface. ! - CALL h5open_f(error) + CALL h5open_f(error) ! ! Initialize data_in buffer @@ -101,36 +101,36 @@ ! ! Create first file "mount1.h5" using default properties. - ! + ! CALL h5fcreate_f(filename1, H5F_ACC_TRUNC_F, file1_id, error) ! ! Create group "/G" inside file "mount1.h5". - ! + ! CALL h5gcreate_f(file1_id, "/G", gid, error) ! ! Close file and group identifiers. - ! + ! CALL h5gclose_f(gid, error) CALL h5fclose_f(file1_id, error) ! ! Create second file "mount2.h5" using default properties. - ! + ! CALL h5fcreate_f(filename2, H5F_ACC_TRUNC_F, file2_id, error) ! - ! Create data space for the dataset. + ! Create data space for the dataset. ! CALL h5screate_simple_f(RANK, dims, dataspace, error) ! ! Create dataset "/D" inside file "mount2.h5". - ! + ! CALL h5dcreate_f(file2_id, "/D", H5T_NATIVE_INTEGER, dataspace, & dset_id, error) - + ! ! Write data_in to the dataset ! @@ -140,41 +140,41 @@ ! ! Close file, dataset and dataspace identifiers. - ! + ! CALL h5sclose_f(dataspace, error) CALL h5dclose_f(dset_id, error) CALL h5fclose_f(file2_id, error) ! ! Reopen both files. - ! + ! CALL h5fopen_f (filename1, H5F_ACC_RDWR_F, file1_id, error) CALL h5fopen_f (filename2, H5F_ACC_RDWR_F, file2_id, error) ! ! Mount the second file under the first file's "/G" group. - ! + ! CALL h5fmount_f (file1_id, "/G", file2_id, error) ! ! Access dataset D in the first file under /G/D name. - ! + ! CALL h5dopen_f(file1_id, "/G/D", dset_id, error) ! ! Get dataset's data type. - ! + ! CALL h5dget_type_f(dset_id, dtype_id, error) ! ! Read the dataset. - ! + ! CALL h5dread_f(dset_id, dtype_id, data_out, data_dims, error) ! ! Print out the data. - ! + ! do i = 1, NX print *, (data_out(i,j), j = 1, NY) end do @@ -182,24 +182,24 @@ ! !Close dset_id and dtype_id. - ! + ! CALL h5dclose_f(dset_id, error) CALL h5tclose_f(dtype_id, error) ! ! Unmount the second file. - ! + ! CALL h5funmount_f(file1_id, "/G", error); ! ! Close both files. - ! + ! CALL h5fclose_f(file1_id, error) CALL h5fclose_f(file2_id, error) ! - ! Close FORTRAN interface. + ! Close FORTRAN interface. ! - CALL h5close_f(error) + CALL h5close_f(error) END PROGRAM MOUNTEXAMPLE |