mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-11-21 01:04:10 +08:00
[svn-r3862]
Purpose: Codemaintenance Description: read/write APIs have been changed. Solution: Made necessary changes to the source code. Platforms tested: Linux, Solaris 2.7, O2K, T3E
This commit is contained in:
parent
9aba4e88c2
commit
fef182fd96
@ -28,6 +28,7 @@
|
||||
CHARACTER*80, DIMENSION(2) :: attr_data ! Attribute data
|
||||
|
||||
INTEGER :: error ! Error flag
|
||||
INTEGER, DIMENSION(7) :: data_dims
|
||||
|
||||
|
||||
!
|
||||
@ -71,7 +72,8 @@
|
||||
!
|
||||
! Write the attribute data.
|
||||
!
|
||||
CALL h5awrite_f(attr_id, atype_id, attr_data, error)
|
||||
data_dims(1) = 2
|
||||
CALL h5awrite_f(attr_id, atype_id, attr_data, data_dims, error)
|
||||
|
||||
!
|
||||
! Close the attribute.
|
||||
|
@ -48,6 +48,8 @@
|
||||
DOUBLE PRECISION, DIMENSION(dimsize) :: double_member
|
||||
REAL, DIMENSION(dimsize) :: real_member
|
||||
INTEGER :: i
|
||||
INTEGER, DIMENSION(7) :: data_dims
|
||||
data_dims(1) = dimsize
|
||||
!
|
||||
! Initialize data buffer.
|
||||
!
|
||||
@ -145,10 +147,10 @@
|
||||
!
|
||||
! Write data by fields in the datatype. Fields order is not important.
|
||||
!
|
||||
CALL h5dwrite_f(dset_id, dt4_id, real_member, error, xfer_prp = plist_id)
|
||||
CALL h5dwrite_f(dset_id, dt1_id, char_member, error, xfer_prp = plist_id)
|
||||
CALL h5dwrite_f(dset_id, dt3_id, double_member, error, xfer_prp = plist_id)
|
||||
CALL h5dwrite_f(dset_id, dt2_id, int_member, error, xfer_prp = plist_id)
|
||||
CALL h5dwrite_f(dset_id, dt4_id, real_member, data_dims, error, xfer_prp = plist_id)
|
||||
CALL h5dwrite_f(dset_id, dt1_id, char_member, data_dims, error, xfer_prp = plist_id)
|
||||
CALL h5dwrite_f(dset_id, dt3_id, double_member, data_dims, error, xfer_prp = plist_id)
|
||||
CALL h5dwrite_f(dset_id, dt2_id, int_member, data_dims, error, xfer_prp = plist_id)
|
||||
|
||||
!
|
||||
! End access to the dataset and release resources used by it.
|
||||
@ -195,7 +197,7 @@
|
||||
!
|
||||
! Read part of the datatset and display it.
|
||||
!
|
||||
CALL h5dread_f(dset_id, dt1_id, char_member_out, error)
|
||||
CALL h5dread_f(dset_id, dt1_id, char_member_out, data_dims, error)
|
||||
write(*,*) (char_member_out(i), i=1, dimsize)
|
||||
|
||||
!
|
||||
|
@ -29,6 +29,7 @@
|
||||
|
||||
INTEGER(HSIZE_T), DIMENSION(2) :: dims1 = (/3,3/) ! Datasets dimensions
|
||||
INTEGER(HSIZE_T), DIMENSION(2) :: dims2 = (/2,10/)!
|
||||
INTEGER, DIMENSION(7) :: data_dims
|
||||
|
||||
INTEGER :: rank = 2 ! Datasets rank
|
||||
|
||||
@ -75,7 +76,9 @@
|
||||
!
|
||||
! Write the first dataset.
|
||||
!
|
||||
CALL h5dwrite_f(dataset_id, H5T_NATIVE_INTEGER, dset1_data, error)
|
||||
data_dims(1) = 3
|
||||
data_dims(2) = 3
|
||||
CALL h5dwrite_f(dataset_id, H5T_NATIVE_INTEGER, dset1_data, data_dims, error)
|
||||
|
||||
!
|
||||
! Close the dataspace for the first dataset.
|
||||
@ -106,7 +109,9 @@
|
||||
!
|
||||
! Write the second dataset.
|
||||
!
|
||||
CALL h5dwrite_f(dataset_id, H5T_NATIVE_INTEGER, dset2_data, error)
|
||||
data_dims(1) = 2
|
||||
data_dims(1) = 10
|
||||
CALL h5dwrite_f(dataset_id, H5T_NATIVE_INTEGER, dset2_data, data_dims, error)
|
||||
|
||||
!
|
||||
! Close the dataspace for the second dataset.
|
||||
|
@ -33,9 +33,11 @@
|
||||
INTEGER, DIMENSION(3,3) :: dset1_data ! Arrays to hold data
|
||||
INTEGER, DIMENSION(2,10) :: dset2_data !
|
||||
|
||||
|
||||
INTEGER(HSIZE_T), DIMENSION(2) :: dims1 = (/3,3/) ! Dataset dimensions
|
||||
INTEGER(HSIZE_T), DIMENSION(2) :: dims2 = (/2,10/)!
|
||||
INTEGER :: rank = 2 ! Datasets rank
|
||||
INTEGER, DIMENSION(7) :: data_dims
|
||||
|
||||
!
|
||||
! Initialize dset1_data array.
|
||||
@ -90,7 +92,9 @@
|
||||
!
|
||||
! Write the first dataset.
|
||||
!
|
||||
CALL h5dwrite_f(dataset1_id, H5T_NATIVE_INTEGER, dset1_data, error)
|
||||
data_dims(1) = 3
|
||||
data_dims(2) = 3
|
||||
CALL h5dwrite_f(dataset1_id, H5T_NATIVE_INTEGER, dset1_data, data_dims, error)
|
||||
|
||||
!
|
||||
! Create the data space for the second dataset.
|
||||
@ -106,7 +110,9 @@
|
||||
!
|
||||
! Write the second dataset
|
||||
!
|
||||
CALL h5dwrite_f(dataset2_id, H5T_NATIVE_INTEGER, dset2_data, error)
|
||||
data_dims(1) = 2
|
||||
data_dims(2) = 10
|
||||
CALL h5dwrite_f(dataset2_id, H5T_NATIVE_INTEGER, dset2_data, data_dims, error)
|
||||
|
||||
!
|
||||
! Get number of members in the root group.
|
||||
|
@ -38,6 +38,7 @@
|
||||
INTEGER :: i, j, k
|
||||
|
||||
INTEGER :: error, error_n ! Error flags
|
||||
INTEGER, DIMENSION(7) :: data_dims
|
||||
|
||||
|
||||
!
|
||||
@ -84,7 +85,9 @@
|
||||
!
|
||||
! Write the dataset.
|
||||
!
|
||||
CALL h5dwrite_f(dset_id, H5T_NATIVE_INTEGER, data, error)
|
||||
data_dims(1) = 5
|
||||
data_dims(2) = 6
|
||||
CALL h5dwrite_f(dset_id, H5T_NATIVE_INTEGER, data, data_dims, error)
|
||||
|
||||
!
|
||||
! Close the dataspace for the dataset.
|
||||
@ -109,9 +112,9 @@
|
||||
!
|
||||
! Initialize data_out array.
|
||||
!
|
||||
do i = 1, 7
|
||||
do k = 1, 3
|
||||
do j = 1, 7
|
||||
do k = 1,3
|
||||
do i = 1, 7
|
||||
data_out(i,j,k) = 0;
|
||||
end do
|
||||
end do
|
||||
@ -154,7 +157,10 @@
|
||||
! Read data from hyperslab in the file into the hyperslab in
|
||||
! memory and display.
|
||||
!
|
||||
CALL H5Dread_f(dset_id, H5T_NATIVE_INTEGER, data_out, error, &
|
||||
data_dims(1) = 7
|
||||
data_dims(2) = 7
|
||||
data_dims(3) = 3
|
||||
CALL H5dread_f(dset_id, H5T_NATIVE_INTEGER, data_out, data_dims, error, &
|
||||
memspace, dataspace)
|
||||
|
||||
!
|
||||
|
@ -68,6 +68,7 @@
|
||||
! Data buffers
|
||||
!
|
||||
INTEGER, DIMENSION(NX,NY) :: data_in, data_out
|
||||
INTEGER, DIMENSION(7) :: data_dims
|
||||
|
||||
!
|
||||
! Initialize FORTRAN interface.
|
||||
@ -118,7 +119,9 @@
|
||||
!
|
||||
! Write data_in to the dataset
|
||||
!
|
||||
CALL h5dwrite_f(dset_id, H5T_NATIVE_INTEGER, data_in, error)
|
||||
data_dims(1) = NX
|
||||
data_dims(2) = NY
|
||||
CALL h5dwrite_f(dset_id, H5T_NATIVE_INTEGER, data_in, data_dims, error)
|
||||
|
||||
!
|
||||
! Close file, dataset and dataspace identifiers.
|
||||
@ -152,7 +155,7 @@
|
||||
!
|
||||
! Read the dataset.
|
||||
!
|
||||
CALL h5dread_f(dset_id, dtype_id, data_out, error)
|
||||
CALL h5dread_f(dset_id, dtype_id, data_out, data_dims, error)
|
||||
|
||||
!
|
||||
! Print out the data.
|
||||
|
@ -35,7 +35,8 @@
|
||||
TYPE(hobj_ref_t_f), DIMENSION(4) :: ref
|
||||
TYPE(hobj_ref_t_f), DIMENSION(4) :: ref_out
|
||||
INTEGER, DIMENSION(5) :: data = (/1, 2, 3, 4, 5/)
|
||||
INTEGER :: class, ref_size
|
||||
INTEGER :: class
|
||||
INTEGER, DIMENSION(7) :: data_dims, ref_size
|
||||
!
|
||||
! Initialize FORTRAN interface.
|
||||
!
|
||||
@ -91,7 +92,7 @@
|
||||
CALL h5rcreate_f(file_id, "/GROUP1/GROUP2", ref(2), error)
|
||||
CALL h5rcreate_f(file_id, dsetnamei, ref(3), error)
|
||||
CALL h5rcreate_f(file_id, "MyType", ref(4), error)
|
||||
ref_size = size(ref)
|
||||
ref_size(1) = size(ref)
|
||||
CALL h5dwrite_f(dsetr_id, H5T_STD_REF_OBJ, ref, ref_size, error)
|
||||
!
|
||||
! Close the dataset
|
||||
@ -101,7 +102,7 @@
|
||||
! Reopen the dataset with object references and read references to the buffer
|
||||
!
|
||||
CALL h5dopen_f(file_id, dsetnamer,dsetr_id,error)
|
||||
ref_size = size(ref_out)
|
||||
ref_size(1) = size(ref_out)
|
||||
CALL h5dread_f(dsetr_id, H5T_STD_REF_OBJ, ref_out, ref_size, error)
|
||||
!
|
||||
! Dereference the third reference. We know that it is a dataset. On practice
|
||||
@ -112,7 +113,8 @@
|
||||
!
|
||||
! Write data to the dataset.
|
||||
!
|
||||
CALL h5dwrite_f(dset_id, H5T_NATIVE_INTEGER, data, error)
|
||||
data_dims(1) = size(data)
|
||||
CALL h5dwrite_f(dset_id, H5T_NATIVE_INTEGER, data, data_dims, error)
|
||||
if (error .eq. 0) write(*,*) "Data has been successfully written to the dataset "
|
||||
!
|
||||
! Dereference the fourth reference. We know that it is a datatype. On practice
|
||||
|
@ -36,7 +36,8 @@
|
||||
INTEGER(HSSIZE_T) , DIMENSION(2,3) :: coord
|
||||
INTEGER(SIZE_T) ::num_points = 3 ! Number of selected points
|
||||
INTEGER :: i, j
|
||||
INTEGER :: ref_size
|
||||
INTEGER, DIMENSION(7) :: ref_size
|
||||
INTEGER, DIMENSION(7) :: data_dims
|
||||
coord = reshape((/1,1,2,7,1,9/), (/2,3/)) ! Coordinates of selected points
|
||||
data = reshape ((/1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6/), (/2,9/))
|
||||
!
|
||||
@ -66,7 +67,9 @@
|
||||
!
|
||||
CALL h5dcreate_f(file_id, dsetnamev, H5T_NATIVE_INTEGER, space_id, &
|
||||
dsetv_id, error)
|
||||
CALL h5dwrite_f(dsetv_id, H5T_NATIVE_INTEGER, data, error)
|
||||
data_dims(1) = 2
|
||||
data_dims(2) = 9
|
||||
CALL h5dwrite_f(dsetv_id, H5T_NATIVE_INTEGER, data, data_dims, error)
|
||||
CALL h5dclose_f(dsetv_id, error)
|
||||
!
|
||||
! Dataset with references
|
||||
@ -93,7 +96,7 @@
|
||||
!
|
||||
! Write dataset with the references.
|
||||
!
|
||||
ref_size = size(ref)
|
||||
ref_size(1) = size(ref)
|
||||
CALL h5dwrite_f(dsetr_id, H5T_STD_REF_DSETREG, ref, ref_size, error)
|
||||
!
|
||||
! Close all objects.
|
||||
@ -110,7 +113,7 @@
|
||||
!
|
||||
! Read references to the dataset regions.
|
||||
!
|
||||
ref_size = size(ref_out)
|
||||
ref_size(1) = size(ref_out)
|
||||
CALL h5dread_f(dsetr_id, H5T_STD_REF_DSETREG, ref_out, ref_size, error)
|
||||
!
|
||||
! Dereference the first reference.
|
||||
@ -120,7 +123,7 @@
|
||||
!
|
||||
! Read selected data from the dataset.
|
||||
!
|
||||
CALL h5dread_f(dsetv_id, H5T_NATIVE_INTEGER, data_out, error, &
|
||||
CALL h5dread_f(dsetv_id, H5T_NATIVE_INTEGER, data_out, data_dims, error, &
|
||||
mem_space_id = space_id, file_space_id = space_id)
|
||||
write(*,*) "Hypeslab selection"
|
||||
write(*,*)
|
||||
@ -139,7 +142,7 @@
|
||||
!
|
||||
! Read selected data from the dataset.
|
||||
!
|
||||
CALL h5dread_f(dsetv_id, H5T_NATIVE_INTEGER, data_out, error, &
|
||||
CALL h5dread_f(dsetv_id, H5T_NATIVE_INTEGER, data_out, data_dims, error, &
|
||||
mem_space_id = space_id, file_space_id = space_id)
|
||||
write(*,*) "Point selection"
|
||||
write(*,*)
|
||||
|
@ -22,6 +22,7 @@
|
||||
INTEGER :: i, j
|
||||
|
||||
INTEGER, DIMENSION(4,6) :: dset_data, data_out ! Data buffers
|
||||
INTEGER, DIMENSION(7) :: data_dims
|
||||
|
||||
!
|
||||
! Initialize the dset_data array.
|
||||
@ -50,12 +51,14 @@
|
||||
!
|
||||
! Write the dataset.
|
||||
!
|
||||
CALL h5dwrite_f(dset_id, H5T_NATIVE_INTEGER, dset_data, error)
|
||||
data_dims(1) = 4
|
||||
data_dims(2) = 6
|
||||
CALL h5dwrite_f(dset_id, H5T_NATIVE_INTEGER, dset_data, data_dims, error)
|
||||
|
||||
!
|
||||
! Read the dataset.
|
||||
!
|
||||
CALL h5dread_f(dset_id, H5T_NATIVE_INTEGER, data_out, error)
|
||||
CALL h5dread_f(dset_id, H5T_NATIVE_INTEGER, data_out, data_dims, error)
|
||||
|
||||
!
|
||||
! Close the dataset.
|
||||
|
@ -50,6 +50,7 @@
|
||||
|
||||
INTEGER :: error ! Error flag
|
||||
LOGICAL :: status
|
||||
INTEGER, DIMENSION(7) :: data_dims
|
||||
|
||||
|
||||
!
|
||||
@ -103,9 +104,11 @@
|
||||
!
|
||||
! Write the datasets.
|
||||
!
|
||||
CALL h5dwrite_f(dset1_id, H5T_NATIVE_INTEGER, buf1, error)
|
||||
data_dims(1) = 3
|
||||
data_dims(2) = 4
|
||||
CALL h5dwrite_f(dset1_id, H5T_NATIVE_INTEGER, buf1, data_dims, error)
|
||||
|
||||
CALL h5dwrite_f(dset2_id, H5T_NATIVE_INTEGER, buf2, error)
|
||||
CALL h5dwrite_f(dset2_id, H5T_NATIVE_INTEGER, buf2, data_dims, error)
|
||||
|
||||
!
|
||||
! Close the dataspace for the datasets.
|
||||
@ -176,7 +179,8 @@
|
||||
!
|
||||
! Write value into the selected points in dataset1.
|
||||
!
|
||||
CALL H5dwrite_f(dset1_id, H5T_NATIVE_INTEGER, val, error, &
|
||||
data_dims(1) = 2
|
||||
CALL H5dwrite_f(dset1_id, H5T_NATIVE_INTEGER, val, data_dims, error, &
|
||||
mem_space_id=memspace, file_space_id=dataspace1)
|
||||
|
||||
!
|
||||
@ -187,7 +191,8 @@
|
||||
!
|
||||
! Write value into the selected points in dataset2.
|
||||
!
|
||||
CALL H5dwrite_f(dset2_id, H5T_NATIVE_INTEGER, val, error, &
|
||||
data_dims(1) = 2
|
||||
CALL H5dwrite_f(dset2_id, H5T_NATIVE_INTEGER, val, data_dims, error, &
|
||||
mem_space_id=memspace, file_space_id=dataspace2)
|
||||
|
||||
!
|
||||
@ -237,7 +242,9 @@
|
||||
!
|
||||
! Read dataset from the first file.
|
||||
!
|
||||
CALL h5dread_f(dset1_id, H5T_NATIVE_INTEGER, bufnew, error)
|
||||
data_dims(1) = 3
|
||||
data_dims(2) = 4
|
||||
CALL h5dread_f(dset1_id, H5T_NATIVE_INTEGER, bufnew, data_dims, error)
|
||||
|
||||
!
|
||||
! Display the data read from dataset "Copy1"
|
||||
@ -250,7 +257,7 @@
|
||||
!
|
||||
! Read dataset from the second file.
|
||||
!
|
||||
CALL h5dread_f(dset2_id, H5T_NATIVE_INTEGER, bufnew, error)
|
||||
CALL h5dread_f(dset2_id, H5T_NATIVE_INTEGER, bufnew, data_dims, error)
|
||||
|
||||
!
|
||||
! Display the data read from dataset "Copy2"
|
||||
|
Loading…
Reference in New Issue
Block a user