[svn-r27489] reverted merge of branch

This commit is contained in:
Scot Breitenfeld
2015-08-10 20:22:33 -05:00
parent 415eb5512b
commit 3b4696ccd1
262 changed files with 69673 additions and 27234 deletions

View File

@@ -7,7 +7,7 @@ PROJECT (HDF5_HL_FORTRAN_TESTS C CXX Fortran)
INCLUDE_DIRECTORIES (${CMAKE_Fortran_MODULE_DIRECTORY} ${HDF5_F90_BINARY_DIR} ${HDF5_F90_SRC_DIR}/src)
#-- Adding test for hl_f90_tstds
add_executable (hl_f90_tstds tstds.F90)
add_executable (hl_f90_tstds tstds.f90)
TARGET_NAMING (hl_f90_tstds STATIC)
TARGET_FORTRAN_PROPERTIES (hl_f90_tstds STATIC " " " ")
target_link_libraries (hl_f90_tstds ${HDF5_HL_F90_LIB_TARGET} ${HDF5_F90_LIB_TARGET})
@@ -15,7 +15,7 @@ target_include_directories (hl_f90_tstds PRIVATE ${CMAKE_Fortran_MODULE_DIRECTOR
set_target_properties (hl_f90_tstds PROPERTIES LINKER_LANGUAGE Fortran)
set_target_properties (hl_f90_tstds PROPERTIES FOLDER test/hl/fortran)
if (BUILD_SHARED_LIBS)
add_executable (hl_f90_tstds-shared tstds.F90)
add_executable (hl_f90_tstds-shared tstds.f90)
TARGET_NAMING (hl_f90_tstds-shared SHARED)
TARGET_FORTRAN_PROPERTIES (hl_f90_tstds-shared SHARED " " " ")
target_link_libraries (hl_f90_tstds-shared ${HDF5_HL_F90_LIBSH_TARGET} ${HDF5_F90_LIBSH_TARGET})
@@ -28,7 +28,7 @@ if (BUILD_SHARED_LIBS)
endif (BUILD_SHARED_LIBS)
#-- Adding test for hl_f90_tstlite
add_executable (hl_f90_tstlite tstlite.F90)
add_executable (hl_f90_tstlite tstlite.f90)
TARGET_NAMING (hl_f90_tstlite STATIC)
TARGET_FORTRAN_PROPERTIES (hl_f90_tstlite STATIC " " " ")
target_link_libraries (hl_f90_tstlite ${HDF5_HL_F90_LIB_TARGET} ${HDF5_F90_LIB_TARGET})
@@ -36,7 +36,7 @@ target_include_directories (hl_f90_tstlite PRIVATE ${CMAKE_Fortran_MODULE_DIRECT
set_target_properties (hl_f90_tstlite PROPERTIES LINKER_LANGUAGE Fortran)
set_target_properties (hl_f90_tstlite PROPERTIES FOLDER test/hl/fortran)
if (BUILD_SHARED_LIBS)
add_executable (hl_f90_tstlite-shared tstlite.F90)
add_executable (hl_f90_tstlite-shared tstlite.f90)
TARGET_NAMING (hl_f90_tstlite-shared SHARED)
TARGET_FORTRAN_PROPERTIES (hl_f90_tstlite-shared SHARED " " " ")
target_link_libraries (hl_f90_tstlite-shared ${HDF5_HL_F90_LIBSH_TARGET} ${HDF5_F90_LIBSH_TARGET})
@@ -49,7 +49,7 @@ if (BUILD_SHARED_LIBS)
endif (BUILD_SHARED_LIBS)
#-- Adding test for hl_f90_tstimage
add_executable (hl_f90_tstimage tstimage.F90)
add_executable (hl_f90_tstimage tstimage.f90)
TARGET_NAMING (hl_f90_tstimage STATIC)
TARGET_FORTRAN_PROPERTIES (hl_f90_tstimage STATIC " " " ")
target_link_libraries (hl_f90_tstimage ${HDF5_HL_F90_LIB_TARGET} ${HDF5_F90_LIB_TARGET})
@@ -57,7 +57,7 @@ target_include_directories (hl_f90_tstimage PRIVATE ${CMAKE_Fortran_MODULE_DIREC
set_target_properties (hl_f90_tstimage PROPERTIES LINKER_LANGUAGE Fortran)
set_target_properties (hl_f90_tstimage PROPERTIES FOLDER test/hl/fortran)
if (BUILD_SHARED_LIBS)
add_executable (hl_f90_tstimage-shared tstimage.F90)
add_executable (hl_f90_tstimage-shared tstimage.f90)
TARGET_NAMING (hl_f90_tstimage-shared SHARED)
TARGET_FORTRAN_PROPERTIES (hl_f90_tstimage-shared SHARED " " " ")
target_link_libraries (hl_f90_tstimage-shared ${HDF5_HL_F90_LIBSH_TARGET} ${HDF5_F90_LIBSH_TARGET})
@@ -70,7 +70,7 @@ if (BUILD_SHARED_LIBS)
endif (BUILD_SHARED_LIBS)
#-- Adding test for hl_f90_tsttable
add_executable (hl_f90_tsttable tsttable.F90)
add_executable (hl_f90_tsttable tsttable.f90)
TARGET_NAMING (hl_f90_tsttable STATIC)
TARGET_FORTRAN_PROPERTIES (hl_f90_tsttable STATIC " " " ")
target_link_libraries (hl_f90_tsttable ${HDF5_HL_F90_LIB_TARGET} ${HDF5_F90_LIB_TARGET})
@@ -78,7 +78,7 @@ target_include_directories (hl_f90_tsttable PRIVATE ${CMAKE_Fortran_MODULE_DIREC
set_target_properties (hl_f90_tsttable PROPERTIES LINKER_LANGUAGE Fortran)
set_target_properties (hl_f90_tsttable PROPERTIES FOLDER test/hl/fortran)
if (BUILD_SHARED_LIBS)
add_executable (hl_f90_tsttable-shared tsttable.F90)
add_executable (hl_f90_tsttable-shared tsttable.f90)
TARGET_NAMING (hl_f90_tsttable-shared SHARED)
TARGET_FORTRAN_PROPERTIES (hl_f90_tsttable-shared SHARED " " " ")
target_link_libraries (hl_f90_tsttable-shared ${HDF5_HL_F90_LIBSH_TARGET} ${HDF5_F90_LIBSH_TARGET})

View File

@@ -39,10 +39,10 @@ check_PROGRAMS=$(TEST_PROG)
LDADD= $(LIBH5F_HL) $(LIBH5F) $(LIBH5_HL) $(LIBHDF5)
# Source files for the programs
tstds_SOURCES=tstds.F90
tstlite_SOURCES=tstlite.F90
tstimage_SOURCES=tstimage.F90
tsttable_SOURCES=tsttable.F90
tstds_SOURCES=tstds.f90
tstlite_SOURCES=tstlite.f90
tstimage_SOURCES=tstimage.f90
tsttable_SOURCES=tsttable.f90
# Temporary files.
CHECK_CLEANFILES+=dsetf[1-5].h5 f1img.h5 f1tab.h5 tstds.h5

View File

@@ -112,8 +112,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/src/H5config.h \
$(top_builddir)/fortran/src/H5config_f.inc
CONFIG_HEADER = $(top_builddir)/src/H5config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
am__EXEEXT_1 = tstds$(EXEEXT) tstlite$(EXEEXT) tstimage$(EXEEXT) \
@@ -150,17 +149,14 @@ AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src -I$(top_builddir)/fortran/src
PPFCCOMPILE = $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS)
LTPPFCCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=FC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=compile $(FC) $(DEFS) \
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_FCFLAGS) $(FCFLAGS)
AM_V_PPFC = $(am__v_PPFC_@AM_V@)
am__v_PPFC_ = $(am__v_PPFC_@AM_DEFAULT_V@)
am__v_PPFC_0 = @echo " PPFC " $@;
am__v_PPFC_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src
FCCOMPILE = $(FC) $(AM_FCFLAGS) $(FCFLAGS)
LTFCCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=FC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=compile $(FC) $(AM_FCFLAGS) $(FCFLAGS)
AM_V_FC = $(am__v_FC_@AM_V@)
am__v_FC_ = $(am__v_FC_@AM_DEFAULT_V@)
am__v_FC_0 = @echo " FC " $@;
am__v_FC_1 =
FCLD = $(FC)
FCLINK = $(LIBTOOL) $(AM_V_lt) --tag=FC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) \
@@ -464,21 +460,14 @@ F9XMODEXT = @F9XMODEXT@
F9XMODFLAG = @F9XMODFLAG@
F9XSUFFIXFLAG = @F9XSUFFIXFLAG@
FC = @FC@
FC2003 = @FC2003@
FCFLAGS = @FCFLAGS@
FCFLAGS_f90 = @FCFLAGS_f90@
FCLIBS = @FCLIBS@
FC_VERSION = @FC_VERSION@
FGREP = @FGREP@
FORTRAN_C_LONG_DOUBLE_IS_UNIQUE = @FORTRAN_C_LONG_DOUBLE_IS_UNIQUE@
FORTRAN_HAVE_C_LONG_DOUBLE = @FORTRAN_HAVE_C_LONG_DOUBLE@
FORTRAN_SIZEOF_LONG_DOUBLE = @FORTRAN_SIZEOF_LONG_DOUBLE@
FSEARCH_DIRS = @FSEARCH_DIRS@
GREP = @GREP@
H5CONFIG_F_IKIND = @H5CONFIG_F_IKIND@
H5CONFIG_F_NUM_IKIND = @H5CONFIG_F_NUM_IKIND@
H5CONFIG_F_NUM_RKIND = @H5CONFIG_F_NUM_RKIND@
H5CONFIG_F_RKIND = @H5CONFIG_F_RKIND@
H5CONFIG_F_RKIND_SIZEOF = @H5CONFIG_F_RKIND_SIZEOF@
H5_CFLAGS = @H5_CFLAGS@
H5_CPPFLAGS = @H5_CPPFLAGS@
H5_CXXFLAGS = @H5_CXXFLAGS@
@@ -488,12 +477,13 @@ H5_LDFLAGS = @H5_LDFLAGS@
H5_VERSION = @H5_VERSION@
HADDR_T = @HADDR_T@
HAVE_DMALLOC = @HAVE_DMALLOC@
HAVE_Fortran_INTEGER_SIZEOF_16 = @HAVE_Fortran_INTEGER_SIZEOF_16@
HAVE_FORTRAN_2003 = @HAVE_FORTRAN_2003@
HAVE_PTHREAD = @HAVE_PTHREAD@
HDF5_HL = @HDF5_HL@
HDF5_INTERFACES = @HDF5_INTERFACES@
HDF_CXX = @HDF_CXX@
HDF_FORTRAN = @HDF_FORTRAN@
HDF_FORTRAN2003 = @HDF_FORTRAN2003@
HID_T = @HID_T@
HL = @HL@
HL_FOR = @HL_FOR@
@@ -535,18 +525,6 @@ PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PAC_C_MAX_REAL_PRECISION = @PAC_C_MAX_REAL_PRECISION@
PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@
PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@
PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@
PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@
PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@
PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@
PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@
PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@
PAC_FORTRAN_NATIVE_INTEGER_SIZEOF = @PAC_FORTRAN_NATIVE_INTEGER_SIZEOF@
PAC_FORTRAN_NATIVE_REAL_KIND = @PAC_FORTRAN_NATIVE_REAL_KIND@
PAC_FORTRAN_NATIVE_REAL_SIZEOF = @PAC_FORTRAN_NATIVE_REAL_SIZEOF@
PARALLEL = @PARALLEL@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
@@ -696,10 +674,10 @@ TEST_PROG = tstds tstlite tstimage tsttable
LDADD = $(LIBH5F_HL) $(LIBH5F) $(LIBH5_HL) $(LIBHDF5)
# Source files for the programs
tstds_SOURCES = tstds.F90
tstlite_SOURCES = tstlite.F90
tstimage_SOURCES = tstimage.F90
tsttable_SOURCES = tsttable.F90
tstds_SOURCES = tstds.f90
tstlite_SOURCES = tstlite.f90
tstimage_SOURCES = tstimage.f90
tsttable_SOURCES = tsttable.f90
# Mark this directory as part of the Fortran API (this affects output
# from tests in conclude.am)
@@ -727,7 +705,7 @@ TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chkexe_)
all: all-am
.SUFFIXES:
.SUFFIXES: .F90 .lo .log .o .obj .sh .sh$(EXEEXT) .trs
.SUFFIXES: .f90 .lo .log .o .obj .sh .sh$(EXEEXT) .trs
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/config/commence.am $(top_srcdir)/config/conclude.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
@@ -791,14 +769,14 @@ mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
.F90.o:
$(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ $<
.f90.o:
$(AM_V_FC)$(FCCOMPILE) -c -o $@ $(FCFLAGS_f90) $<
.F90.obj:
$(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.f90.obj:
$(AM_V_FC)$(FCCOMPILE) -c -o $@ $(FCFLAGS_f90) `$(CYGPATH_W) '$<'`
.F90.lo:
$(AM_V_PPFC)$(LTPPFCCOMPILE) -c -o $@ $<
.f90.lo:
$(AM_V_FC)$(LTFCCOMPILE) -c -o $@ $(FCFLAGS_f90) $<
mostlyclean-libtool:
-rm -f *.lo

View File

@@ -16,7 +16,6 @@
!
! This file contains the FORTRAN90 tests for H5LT
!
#include <H5config_f.inc>
PROGRAM lite_test
@@ -39,7 +38,6 @@ END PROGRAM lite_test
SUBROUTINE test_dataset1D()
USE, INTRINSIC :: ISO_C_BINDING
USE H5LT ! module of H5LT
USE HDF5 ! module of HDF5 library
@@ -57,12 +55,11 @@ INTEGER, DIMENSION(DIM1) :: buf1 ! Data buffer
INTEGER, DIMENSION(DIM1) :: bufr1 ! Data buffer
REAL, DIMENSION(DIM1) :: buf2 ! Data buffer
REAL, DIMENSION(DIM1) :: bufr2 ! Data buffer
DOUBLE PRECISION, DIMENSION(DIM1), TARGET :: buf3 ! Data buffer
DOUBLE PRECISION, DIMENSION(DIM1), TARGET :: bufr3 ! Data buffer
DOUBLE PRECISION, DIMENSION(DIM1) :: buf3 ! Data buffer
DOUBLE PRECISION, DIMENSION(DIM1) :: bufr3 ! Data buffer
INTEGER :: errcode ! Error flag
INTEGER :: i ! general purpose integer
TYPE(C_PTR) :: f_ptr
integer(HID_T) :: mytype
CALL test_begin(' Make/Read datasets (1D) ')
@@ -104,7 +101,7 @@ CALL h5ltread_dataset_f(file_id, dsetname1, H5T_NATIVE_INTEGER, bufr1, dims, err
!
DO i = 1, DIM1
IF ( buf1(i) .NE. bufr1(i) ) THEN
PRINT *, 'read buffer differs from write buffer (I)'
PRINT *, 'read buffer differs from write buffer'
PRINT *, bufr1(i), ' and ', buf1(i)
STOP
ENDIF
@@ -129,7 +126,7 @@ CALL h5ltread_dataset_f(file_id, dsetname2, H5T_NATIVE_REAL, bufr2, dims, errcod
!
DO i = 1, DIM1
IF ( buf2(i) .NE. bufr2(i) ) THEN
PRINT *, 'read buffer differs from write buffer (R)'
PRINT *, 'read buffer differs from write buffer'
PRINT *, bufr2(i), ' and ', buf2(i)
STOP
ENDIF
@@ -142,26 +139,19 @@ END DO
!
! write dataset.
!
f_ptr = C_LOC(buf3(1))
mytype = h5kind_to_type(KIND(buf3(1)), H5_REAL_KIND)
CALL h5ltmake_dataset_f(file_id, dsetname3, rank, dims, &
mytype, f_ptr, errcode)
!CALL h5ltmake_dataset_f(file_id, dsetname3, rank, dims, H5T_NATIVE_DOUBLE, buf3, errcode)
! h5kind_to_type(KIND(buf3(1)), H5_REAL_KIND)
CALL h5ltmake_dataset_f(file_id, dsetname3, rank, dims, H5T_NATIVE_DOUBLE, buf3, errcode)
!
! read dataset.
!
f_ptr = C_LOC(bufr3(1))
CALL h5ltread_dataset_f(file_id, dsetname3, &
h5kind_to_type(KIND(bufr3(1)), H5_REAL_KIND), f_ptr, errcode)
!CALL h5ltread_dataset_f(file_id, dsetname3, H5T_NATIVE_DOUBLE, bufr3, dims, errcode)
CALL h5ltread_dataset_f(file_id, dsetname3, H5T_NATIVE_DOUBLE, bufr3, dims, errcode)
!
! compare read and write buffers.
!
DO i = 1, DIM1
IF ( buf3(i) .NE. bufr3(i) ) THEN
PRINT *, 'read buffer differs from write buffer (D)'
PRINT *, 'read buffer differs from write buffer'
PRINT *, bufr3(i), ' and ', buf3(i)
STOP
ENDIF
@@ -189,7 +179,6 @@ END SUBROUTINE test_dataset1D
SUBROUTINE test_dataset2D()
USE, INTRINSIC :: ISO_C_BINDING
USE H5LT ! module of H5LT
USE HDF5 ! module of HDF5 library
@@ -210,13 +199,12 @@ INTEGER, DIMENSION(DIM1*DIM2) :: buf ! Data buffer
INTEGER, DIMENSION(DIM1*DIM2) :: bufr ! Data buffer
INTEGER, DIMENSION(DIM1,DIM2) :: buf2 ! Data buffer
INTEGER, DIMENSION(DIM1,DIM2) :: buf2r ! Data buffer
REAL, DIMENSION(DIM1,DIM2), TARGET :: buf3 ! Data buffer
REAL, DIMENSION(DIM1,DIM2), TARGET :: buf3r ! Data buffer
DOUBLE PRECISION, DIMENSION(DIM1,DIM2), TARGET :: buf4 ! Data buffer
DOUBLE PRECISION, DIMENSION(DIM1,DIM2), TARGET :: buf4r ! Data buffer
REAL, DIMENSION(DIM1,DIM2) :: buf3 ! Data buffer
REAL, DIMENSION(DIM1,DIM2) :: buf3r ! Data buffer
DOUBLE PRECISION, DIMENSION(DIM1,DIM2) :: buf4 ! Data buffer
DOUBLE PRECISION, DIMENSION(DIM1,DIM2) :: buf4r ! Data buffer
INTEGER :: errcode ! Error flag
INTEGER(HSIZE_T) :: i, j, n ! general purpose integers
TYPE(C_PTR) :: f_ptr
CALL test_begin(' Make/Read datasets (2D) ')
@@ -308,16 +296,12 @@ END DO
!
! write dataset.
!
f_ptr = C_LOC(buf3(1,1))
CALL h5ltmake_dataset_f(file_id, dsetname3, rank, dims, H5T_NATIVE_REAL, f_ptr, errcode)
!CALL h5ltmake_dataset_f(file_id, dsetname3, rank, dims, H5T_NATIVE_REAL, buf3, errcode)
CALL h5ltmake_dataset_f(file_id, dsetname3, rank, dims, H5T_NATIVE_REAL, buf3, errcode)
!
! read dataset.
!
f_ptr = C_LOC(buf3r(1,1))
CALL h5ltread_dataset_f(file_id, dsetname3, H5T_NATIVE_REAL, f_ptr, errcode)
!CALL h5ltread_dataset_f(file_id, dsetname3, H5T_NATIVE_REAL, buf3r, dims, errcode)
CALL h5ltread_dataset_f(file_id, dsetname3, H5T_NATIVE_REAL, buf3r, dims, errcode)
!
! compare read and write buffers.
@@ -339,16 +323,12 @@ END DO
!
! write dataset.
!
f_ptr = C_LOC(buf4(1,1))
CALL h5ltmake_dataset_f(file_id, dsetname4, rank, dims, H5T_NATIVE_DOUBLE, f_ptr, errcode)
!CALL h5ltmake_dataset_f(file_id, dsetname4, rank, dims, H5T_NATIVE_DOUBLE, buf4, errcode)
CALL h5ltmake_dataset_f(file_id, dsetname4, rank, dims, H5T_NATIVE_DOUBLE, buf4, errcode)
!
! read dataset.
f_ptr = C_LOC(buf4r(1,1))
CALL h5ltread_dataset_f(file_id, dsetname4, H5T_NATIVE_DOUBLE, f_ptr, errcode)
!CALL h5ltread_dataset_f(file_id, dsetname4, H5T_NATIVE_DOUBLE, buf4r, dims, errcode)
!
CALL h5ltread_dataset_f(file_id, dsetname4, H5T_NATIVE_DOUBLE, buf4r, dims, errcode)
!
! compare read and write buffers.
@@ -386,7 +366,7 @@ END SUBROUTINE test_dataset2D
SUBROUTINE test_dataset3D()
USE, INTRINSIC :: ISO_C_BINDING
USE H5LT ! module of H5LT
USE HDF5 ! module of HDF5 library
@@ -407,16 +387,16 @@ INTEGER, DIMENSION(DIM1*DIM2*DIM3) :: buf ! Data buffer
INTEGER, DIMENSION(DIM1*DIM2*DIM3) :: bufr ! Data buffer
INTEGER, DIMENSION(DIM1,DIM2,DIM3) :: buf2 ! Data buffer
INTEGER, DIMENSION(DIM1,DIM2,DIM3) :: buf2r ! Data buffer
REAL, DIMENSION(DIM1,DIM2,DIM3), TARGET :: buf3 ! Data buffer
REAL, DIMENSION(DIM1,DIM2,DIM3), TARGET :: buf3r ! Data buffer
DOUBLE PRECISION, DIMENSION(DIM1,DIM2,DIM3), TARGET :: buf4 ! Data buffer
DOUBLE PRECISION, DIMENSION(DIM1,DIM2,DIM3), TARGET :: buf4r ! Data buffer
REAL, DIMENSION(DIM1,DIM2,DIM3) :: buf3 ! Data buffer
REAL, DIMENSION(DIM1,DIM2,DIM3) :: buf3r ! Data buffer
DOUBLE PRECISION, DIMENSION(DIM1,DIM2,DIM3) :: buf4 ! Data buffer
DOUBLE PRECISION, DIMENSION(DIM1,DIM2,DIM3) :: buf4r ! Data buffer
INTEGER :: rank = 3 ! Dataset rank
INTEGER :: errcode ! Error flag
INTEGER(HSIZE_T) :: i, j, k, n ! general purpose integers
INTEGER :: type_class
INTEGER(SIZE_T) :: type_size
TYPE(C_PTR) :: f_ptr
CALL test_begin(' Make/Read datasets (3D) ')
@@ -512,16 +492,12 @@ END DO
!
! write dataset.
!
f_ptr = C_LOC(buf3(1,1,1))
CALL h5ltmake_dataset_f(file_id, dsetname3, rank, dims, H5T_NATIVE_REAL, f_ptr, errcode)
!CALL h5ltmake_dataset_f(file_id, dsetname3, rank, dims, H5T_NATIVE_REAL, buf3, errcode)
CALL h5ltmake_dataset_f(file_id, dsetname3, rank, dims, H5T_NATIVE_REAL, buf3, errcode)
!
! read dataset.
!
f_ptr = C_LOC(buf3r(1,1,1))
CALL h5ltread_dataset_f(file_id, dsetname3, H5T_NATIVE_REAL, f_ptr, errcode)
!CALL h5ltread_dataset_f(file_id, dsetname3, H5T_NATIVE_REAL, buf3r, dims, errcode)
CALL h5ltread_dataset_f(file_id, dsetname3, H5T_NATIVE_REAL, buf3r, dims, errcode)
!
! compare read and write buffers.
@@ -545,14 +521,12 @@ END DO
!
! write dataset.
!
f_ptr = C_LOC(buf4(1,1,1))
CALL h5ltmake_dataset_f(file_id, dsetname4, rank, dims, H5T_NATIVE_DOUBLE, f_ptr, errcode)
CALL h5ltmake_dataset_f(file_id, dsetname4, rank, dims, H5T_NATIVE_DOUBLE, buf4, errcode)
!
! read dataset.
!
f_ptr = C_LOC(buf4r(1,1,1))
CALL h5ltread_dataset_f(file_id, dsetname4, H5T_NATIVE_DOUBLE, f_ptr, errcode)
CALL h5ltread_dataset_f(file_id, dsetname4, H5T_NATIVE_DOUBLE, buf4r, dims, errcode)
!
! compare read and write buffers.
@@ -604,7 +578,6 @@ END SUBROUTINE test_dataset3D
SUBROUTINE test_datasetND(rank)
USE, INTRINSIC :: ISO_C_BINDING
USE H5LT ! module of H5LT
USE HDF5 ! module of HDF5 library
@@ -625,37 +598,36 @@ SUBROUTINE test_datasetND(rank)
CHARACTER(LEN=5), PARAMETER :: dsetname4 = "dset4" ! Dataset name
INTEGER(HID_T) :: file_id ! File identifier
INTEGER(HSIZE_T), DIMENSION(7) :: dims
INTEGER(HSIZE_T), DIMENSION(7) :: dimsr ! Dataset dimensions
INTEGER, ALLOCATABLE, DIMENSION(:,:,:,:) :: ibuf_4 ! Data buffer
INTEGER, ALLOCATABLE, DIMENSION(:,:,:,:) :: ibufr_4 ! Data buffer
INTEGER, ALLOCATABLE, DIMENSION(:,:,:,:,:), TARGET :: ibuf_5 ! Data buffer
INTEGER, ALLOCATABLE, DIMENSION(:,:,:,:,:), TARGET :: ibufr_5 ! Data buffer
INTEGER, ALLOCATABLE, DIMENSION(:,:,:,:,:,:) :: ibuf_6 ! Data buffer
INTEGER, ALLOCATABLE, DIMENSION(:,:,:,:,:,:) :: ibufr_6 ! Data buffer
INTEGER, ALLOCATABLE, DIMENSION(:,:,:,:,:,:,:) :: ibuf_7 ! Data buffer
INTEGER, ALLOCATABLE, DIMENSION(:,:,:,:,:,:,:) :: ibufr_7 ! Data buffer
REAL, ALLOCATABLE, DIMENSION(:,:,:,:), TARGET :: rbuf_4 ! Data buffer
REAL, ALLOCATABLE, DIMENSION(:,:,:,:), TARGET :: rbufr_4 ! Data buffer
REAL, ALLOCATABLE, DIMENSION(:,:,:,:,:), TARGET :: rbuf_5 ! Data buffer
REAL, ALLOCATABLE, DIMENSION(:,:,:,:,:), TARGET :: rbufr_5 ! Data buffer
REAL, ALLOCATABLE, DIMENSION(:,:,:,:,:,:), TARGET :: rbuf_6 ! Data buffer
REAL, ALLOCATABLE, DIMENSION(:,:,:,:,:,:), TARGET :: rbufr_6 ! Data buffer
REAL, ALLOCATABLE, DIMENSION(:,:,:,:,:,:,:), TARGET :: rbuf_7 ! Data buffer
REAL, ALLOCATABLE, DIMENSION(:,:,:,:,:,:,:), TARGET :: rbufr_7 ! Data buffer
DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:,:), TARGET :: dbuf_4 ! Data buffer
DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:,:), TARGET :: dbufr_4 ! Data buffer
DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:,:,:), TARGET :: dbuf_5 ! Data buffer
DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:,:,:), TARGET :: dbufr_5 ! Data buffer
DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:,:,:,:), TARGET :: dbuf_6 ! Data buffer
DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:,:,:,:), TARGET :: dbufr_6 ! Data buffer
DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:,:,:,:,:), TARGET :: dbuf_7 ! Data buffer
DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:,:,:,:,:), TARGET :: dbufr_7 ! Data buffer
INTEGER(HSIZE_T), DIMENSION(7) :: dimsr ! Dataset dimensions
INTEGER, ALLOCATABLE, DIMENSION(:,:,:,:) :: ibuf_4 ! Data buffer
INTEGER, ALLOCATABLE, DIMENSION(:,:,:,:) :: ibufr_4 ! Data buffer
INTEGER, ALLOCATABLE, DIMENSION(:,:,:,:,:) :: ibuf_5 ! Data buffer
INTEGER, ALLOCATABLE, DIMENSION(:,:,:,:,:) :: ibufr_5 ! Data buffer
INTEGER, ALLOCATABLE, DIMENSION(:,:,:,:,:,:) :: ibuf_6 ! Data buffer
INTEGER, ALLOCATABLE, DIMENSION(:,:,:,:,:,:) :: ibufr_6 ! Data buffer
INTEGER, ALLOCATABLE, DIMENSION(:,:,:,:,:,:,:) :: ibuf_7 ! Data buffer
INTEGER, ALLOCATABLE, DIMENSION(:,:,:,:,:,:,:) :: ibufr_7 ! Data buffer
REAL, ALLOCATABLE, DIMENSION(:,:,:,:) :: rbuf_4 ! Data buffer
REAL, ALLOCATABLE, DIMENSION(:,:,:,:) :: rbufr_4 ! Data buffer
REAL, ALLOCATABLE, DIMENSION(:,:,:,:,:) :: rbuf_5 ! Data buffer
REAL, ALLOCATABLE, DIMENSION(:,:,:,:,:) :: rbufr_5 ! Data buffer
REAL, ALLOCATABLE, DIMENSION(:,:,:,:,:,:) :: rbuf_6 ! Data buffer
REAL, ALLOCATABLE, DIMENSION(:,:,:,:,:,:) :: rbufr_6 ! Data buffer
REAL, ALLOCATABLE, DIMENSION(:,:,:,:,:,:,:) :: rbuf_7 ! Data buffer
REAL, ALLOCATABLE, DIMENSION(:,:,:,:,:,:,:) :: rbufr_7 ! Data buffer
DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:,:) :: dbuf_4 ! Data buffer
DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:,:) :: dbufr_4 ! Data buffer
DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:,:,:) :: dbuf_5 ! Data buffer
DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:,:,:) :: dbufr_5 ! Data buffer
DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:,:,:,:) :: dbuf_6 ! Data buffer
DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:,:,:,:) :: dbufr_6 ! Data buffer
DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:,:,:,:,:) :: dbuf_7 ! Data buffer
DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:,:,:,:,:) :: dbufr_7 ! Data buffer
INTEGER :: errcode ! Error flag
INTEGER(HSIZE_T) :: i, j, k, l, m, n, o, nn ! general purpose integers
INTEGER :: type_class
INTEGER(SIZE_T) :: type_size
CHARACTER(LEN=1) :: ichr1
TYPE(C_PTR) :: f_ptr
WRITE(ichr1,'(I1.1)') rank
CALL test_begin(' Make/Read datasets ('//ichr1//'D) ')
@@ -796,8 +768,7 @@ SUBROUTINE test_datasetND(rank)
IF(rank.EQ.4)THEN
CALL h5ltmake_dataset_f(file_id, dsetname2, rank, dims(1:rank), H5T_NATIVE_INTEGER, ibuf_4, errcode)
ELSE IF(rank.EQ.5)THEN
f_ptr = C_LOC(ibuf_5(1,1,1,1,1))
CALL h5ltmake_dataset_f(file_id, dsetname2, rank, dims(1:rank), H5T_NATIVE_INTEGER, f_ptr, errcode)
CALL h5ltmake_dataset_f(file_id, dsetname2, rank, dims(1:rank), H5T_NATIVE_INTEGER, ibuf_5, errcode)
ELSE IF(rank.EQ.6)THEN
CALL h5ltmake_dataset_f(file_id, dsetname2, rank, dims(1:rank), H5T_NATIVE_INTEGER, ibuf_6, errcode)
ELSE IF(rank.EQ.7)THEN
@@ -811,8 +782,7 @@ SUBROUTINE test_datasetND(rank)
IF(rank.EQ.4)THEN
CALL h5ltread_dataset_f(file_id, dsetname2, H5T_NATIVE_INTEGER, ibufr_4, dims(1:rank), errcode)
ELSE IF(rank.EQ.5)THEN
f_ptr = C_LOC(ibufr_5(1,1,1,1,1))
CALL h5ltread_dataset_f(file_id, dsetname2, H5T_NATIVE_INTEGER, f_ptr, errcode)
CALL h5ltread_dataset_f(file_id, dsetname2, H5T_NATIVE_INTEGER, ibufr_5, dims(1:rank), errcode)
ELSE IF(rank.EQ.6)THEN
CALL h5ltread_dataset_f(file_id, dsetname2, H5T_NATIVE_INTEGER, ibufr_6, dims(1:rank), errcode)
ELSE IF(rank.EQ.7)THEN
@@ -872,20 +842,13 @@ SUBROUTINE test_datasetND(rank)
! write dataset.
!
IF(rank.EQ.4)THEN
f_ptr = C_LOC(rbuf_4(1,1,1,1))
CALL h5ltmake_dataset_f(file_id, dsetname3, rank, dims(1:rank), H5T_NATIVE_REAL, f_ptr, errcode)
! CALL h5ltmake_dataset_f(file_id, dsetname3, rank, dims(1:rank), H5T_NATIVE_REAL, rbuf_4, errcode)
CALL h5ltmake_dataset_f(file_id, dsetname3, rank, dims(1:rank), H5T_NATIVE_REAL, rbuf_4, errcode)
ELSE IF(rank.EQ.5)THEN
f_ptr = C_LOC(rbuf_5(1,1,1,1,1))
CALL h5ltmake_dataset_f(file_id, dsetname3, rank, dims(1:rank), H5T_NATIVE_REAL, f_ptr, errcode)
CALL h5ltmake_dataset_f(file_id, dsetname3, rank, dims(1:rank), H5T_NATIVE_REAL, rbuf_5, errcode)
ELSE IF(rank.EQ.6)THEN
f_ptr = C_LOC(rbuf_6(1,1,1,1,1,1))
CALL h5ltmake_dataset_f(file_id, dsetname3, rank, dims(1:rank), H5T_NATIVE_REAL, f_ptr, errcode)
!CALL h5ltmake_dataset_f(file_id, dsetname3, rank, dims(1:rank), H5T_NATIVE_REAL, rbuf_6, errcode)
CALL h5ltmake_dataset_f(file_id, dsetname3, rank, dims(1:rank), H5T_NATIVE_REAL, rbuf_6, errcode)
ELSE IF(rank.EQ.7)THEN
f_ptr = C_LOC(rbuf_7(1,1,1,1,1,1,1))
CALL h5ltmake_dataset_f(file_id, dsetname3, rank, dims(1:rank), H5T_NATIVE_REAL, f_ptr, errcode)
!CALL h5ltmake_dataset_f(file_id, dsetname3, rank, dims(1:rank), H5T_NATIVE_REAL, rbuf_7, errcode)
CALL h5ltmake_dataset_f(file_id, dsetname3, rank, dims(1:rank), H5T_NATIVE_REAL, rbuf_7, errcode)
ENDIF
@@ -893,17 +856,13 @@ SUBROUTINE test_datasetND(rank)
! read dataset.
!
IF(rank.EQ.4)THEN
f_ptr = C_LOC(rbufr_4(1,1,1,1))
CALL h5ltread_dataset_f(file_id, dsetname3, H5T_NATIVE_REAL, f_ptr, errcode)
CALL h5ltread_dataset_f(file_id, dsetname3, H5T_NATIVE_REAL, rbufr_4, dims(1:rank), errcode)
ELSE IF(rank.EQ.5)THEN
f_ptr = C_LOC(rbufr_5(1,1,1,1,1))
CALL h5ltread_dataset_f(file_id, dsetname3, H5T_NATIVE_REAL, f_ptr, errcode)
CALL h5ltread_dataset_f(file_id, dsetname3, H5T_NATIVE_REAL, rbufr_5, dims(1:rank), errcode)
ELSE IF(rank.EQ.6)THEN
f_ptr = C_LOC(rbufr_6(1,1,1,1,1,1))
CALL h5ltread_dataset_f(file_id, dsetname3, H5T_NATIVE_REAL, f_ptr, errcode)
CALL h5ltread_dataset_f(file_id, dsetname3, H5T_NATIVE_REAL, rbufr_6, dims(1:rank), errcode)
ELSE IF(rank.EQ.7)THEN
f_ptr = C_LOC(rbufr_7(1,1,1,1,1,1,1))
CALL h5ltread_dataset_f(file_id, dsetname3, H5T_NATIVE_REAL, f_ptr, errcode)
CALL h5ltread_dataset_f(file_id, dsetname3, H5T_NATIVE_REAL, rbufr_7, dims(1:rank), errcode)
ENDIF
!
@@ -960,17 +919,13 @@ SUBROUTINE test_datasetND(rank)
! write dataset.
!
IF(rank.EQ.4)THEN
f_ptr = C_LOC(dbuf_4(1,1,1,1))
CALL h5ltmake_dataset_f(file_id, dsetname4, rank, dims(1:rank), H5T_NATIVE_DOUBLE, f_ptr, errcode)
CALL h5ltmake_dataset_f(file_id, dsetname4, rank, dims(1:rank), H5T_NATIVE_DOUBLE, dbuf_4, errcode)
ELSE IF(rank.EQ.5)THEN
f_ptr = C_LOC(dbuf_5(1,1,1,1,1))
CALL h5ltmake_dataset_f(file_id, dsetname4, rank, dims(1:rank), H5T_NATIVE_DOUBLE, f_ptr, errcode)
CALL h5ltmake_dataset_f(file_id, dsetname4, rank, dims(1:rank), H5T_NATIVE_DOUBLE, dbuf_5, errcode)
ELSE IF(rank.EQ.6)THEN
f_ptr = C_LOC(dbuf_6(1,1,1,1,1,1))
CALL h5ltmake_dataset_f(file_id, dsetname4, rank, dims(1:rank), H5T_NATIVE_DOUBLE, f_ptr, errcode)
CALL h5ltmake_dataset_f(file_id, dsetname4, rank, dims(1:rank), H5T_NATIVE_DOUBLE, dbuf_6, errcode)
ELSE IF(rank.EQ.7)THEN
f_ptr = C_LOC(dbuf_7(1,1,1,1,1,1,1))
CALL h5ltmake_dataset_f(file_id, dsetname4, rank, dims(1:rank), H5T_NATIVE_DOUBLE, f_ptr, errcode)
CALL h5ltmake_dataset_f(file_id, dsetname4, rank, dims(1:rank), H5T_NATIVE_DOUBLE, dbuf_7, errcode)
ENDIF
@@ -978,17 +933,13 @@ SUBROUTINE test_datasetND(rank)
! read dataset.
!
IF(rank.EQ.4)THEN
f_ptr = C_LOC(dbufr_4(1,1,1,1))
CALL h5ltread_dataset_f(file_id, dsetname4, H5T_NATIVE_DOUBLE, f_ptr, errcode)
CALL h5ltread_dataset_f(file_id, dsetname4, H5T_NATIVE_DOUBLE, dbufr_4, dims(1:rank), errcode)
ELSE IF(rank.EQ.5)THEN
f_ptr = C_LOC(dbufr_5(1,1,1,1,1))
CALL h5ltread_dataset_f(file_id, dsetname4, H5T_NATIVE_DOUBLE, f_ptr, errcode)
CALL h5ltread_dataset_f(file_id, dsetname4, H5T_NATIVE_DOUBLE, dbufr_5, dims(1:rank), errcode)
ELSE IF(rank.EQ.6)THEN
f_ptr = C_LOC(dbufr_6(1,1,1,1,1,1))
CALL h5ltread_dataset_f(file_id, dsetname4, H5T_NATIVE_DOUBLE, f_ptr, errcode)
CALL h5ltread_dataset_f(file_id, dsetname4, H5T_NATIVE_DOUBLE, dbufr_6, dims(1:rank), errcode)
ELSE IF(rank.EQ.7)THEN
f_ptr = C_LOC(dbufr_7(1,1,1,1,1,1,1))
CALL h5ltread_dataset_f(file_id, dsetname4, H5T_NATIVE_DOUBLE, f_ptr, errcode)
CALL h5ltread_dataset_f(file_id, dsetname4, H5T_NATIVE_DOUBLE, dbufr_7, dims(1:rank), errcode)
ENDIF
!
@@ -1085,7 +1036,6 @@ END SUBROUTINE test_datasetND
SUBROUTINE test_datasets()
USE, INTRINSIC :: ISO_C_BINDING
USE H5LT ! module of H5LT
USE HDF5 ! module of HDF5 library
@@ -1108,10 +1058,10 @@ SUBROUTINE test_datasets()
CHARACTER(LEN=8) :: buf1r ! Data buffer
INTEGER, DIMENSION(DIM1) :: buf2 ! Data buffer
INTEGER, DIMENSION(DIM1) :: bufr2 ! Data buffer
REAL, DIMENSION(DIM1), TARGET :: buf3 ! Data buffer
REAL, DIMENSION(DIM1) , TARGET :: bufr3 ! Data buffer
DOUBLE PRECISION, DIMENSION(DIM1), TARGET :: buf4 ! Data buffer
DOUBLE PRECISION, DIMENSION(DIM1), TARGET :: bufr4 ! Data buffer
REAL, DIMENSION(DIM1) :: buf3 ! Data buffer
REAL, DIMENSION(DIM1) :: bufr3 ! Data buffer
DOUBLE PRECISION, DIMENSION(DIM1) :: buf4 ! Data buffer
DOUBLE PRECISION, DIMENSION(DIM1) :: bufr4 ! Data buffer
INTEGER :: i, n ! general purpose integer
INTEGER :: has ! general purpose integer
INTEGER :: type_class
@@ -1119,7 +1069,6 @@ SUBROUTINE test_datasets()
LOGICAL :: path_valid ! status of the path
CHARACTER(LEN=6) :: chr_exact
CHARACTER(LEN=8) :: chr_lg
TYPE(C_PTR) :: f_ptr
!
! Initialize FORTRAN predefined datatypes.
@@ -1182,14 +1131,12 @@ SUBROUTINE test_datasets()
!
! write dataset.
!
f_ptr = C_LOC(buf3(1))
CALL h5ltmake_dataset_f(file_id, dsetname3, rank, dims, H5T_NATIVE_REAL, f_ptr, errcode)
CALL h5ltmake_dataset_float_f(file_id, dsetname3, rank, dims, buf3, errcode)
!
! read dataset.
!
f_ptr = C_LOC(bufr3(1))
CALL h5ltread_dataset_f(file_id, dsetname3, H5T_NATIVE_REAL, f_ptr, errcode)
CALL h5ltread_dataset_float_f(file_id, dsetname3, bufr3, dims, errcode)
!
! compare read and write buffers.
@@ -1214,18 +1161,13 @@ SUBROUTINE test_datasets()
!
! write dataset.
!
!f_ptr = C_LOC(buf4(1))
!CALL h5ltmake_dataset_f(file_id, dsetname4, rank, dims, H5T_NATIVE_DOUBLE, f_ptr, errcode)
CALL h5ltmake_dataset_double_f(file_id, dsetname4, rank, dims, buf4, errcode)
!
! read dataset.
!
!f_ptr = C_LOC(buf4(1))
!CALL h5ltread_dataset_f(file_id, dsetname4, H5T_NATIVE_DOUBLE, f_ptr, errcode)
CALL h5ltread_dataset_double_f(file_id, dsetname4, bufr4, dims, errcode)
!
! compare read and write buffers.
!
@@ -1393,7 +1335,6 @@ END SUBROUTINE test_datasets
SUBROUTINE test_attributes()
USE, INTRINSIC :: ISO_C_BINDING
USE H5LT ! module of H5LT
USE HDF5 ! module of HDF5 library
@@ -1417,10 +1358,10 @@ SUBROUTINE test_attributes()
! CHARACTER(LEN=18) :: bufr_c_lg ! Data buffer
INTEGER, DIMENSION(DIM1) :: buf2 ! Data buffer
INTEGER, DIMENSION(DIM1) :: bufr2 ! Data buffer
REAL, DIMENSION(DIM1), target :: buf3 ! Data buffer
REAL, DIMENSION(DIM1), target :: bufr3 ! Data buffer
DOUBLE PRECISION, DIMENSION(DIM1), TARGET :: buf4 ! Data buffer
DOUBLE PRECISION, DIMENSION(DIM1), TARGET :: bufr4 ! Data buffer
REAL, DIMENSION(DIM1) :: buf3 ! Data buffer
REAL, DIMENSION(DIM1) :: bufr3 ! Data buffer
DOUBLE PRECISION, DIMENSION(DIM1) :: buf4 ! Data buffer
DOUBLE PRECISION, DIMENSION(DIM1) :: bufr4 ! Data buffer
INTEGER :: errcode ! Error flag
INTEGER :: i, n ! general purpose integer
INTEGER(SIZE_T) size ! size of attribute array
@@ -1432,8 +1373,7 @@ SUBROUTINE test_attributes()
INTEGER :: rank = 1 ! Dataset rank
CHARACTER(LEN=5), PARAMETER :: dsetname1 = "dset1" ! Dataset name
INTEGER, DIMENSION(DIM1) :: buf ! Data buffer
INTEGER(SIZE_T) :: SizeOf_buf_type
TYPE(C_PTR) :: f_ptr
!
! Initialize FORTRAN predefined datatypes.
@@ -1501,26 +1441,11 @@ SUBROUTINE test_attributes()
!
! write attribute.
!
#ifdef H5_FORTRAN_HAVE_STORAGE_SIZE
SizeOf_buf_type = STORAGE_SIZE(buf3(1), c_size_t)/STORAGE_SIZE(c_char_'a',c_size_t)
#else
SizeOf_buf_type = SIZEOF(buf3(1))
#endif
f_ptr = C_LOC(buf3(1))
CALL h5ltset_attribute_f(file_id,dsetname1,attrname3,f_ptr,"REAL", SizeOf_buf_type, size,errcode)
!CALL h5ltset_attribute_float_f(file_id,dsetname1,attrname3,buf3,size,errcode)
CALL h5ltset_attribute_float_f(file_id,dsetname1,attrname3,buf3,size,errcode)
!
! read attribute.
!
#ifdef H5_FORTRAN_HAVE_STORAGE_SIZE
SizeOf_buf_type = STORAGE_SIZE(bufr3(1), c_size_t)/STORAGE_SIZE(c_char_'a',c_size_t)
#else
SizeOf_buf_type = SIZEOF(bufr3(1))
#endif
f_ptr = C_LOC(bufr3(1))
CALL h5ltget_attribute_f(file_id,dsetname1,attrname3,f_ptr,"REAL",SizeOf_buf_type,errcode)
!CALL h5ltget_attribute_float_f(file_id,dsetname1,attrname3,bufr3,errcode)
CALL h5ltget_attribute_float_f(file_id,dsetname1,attrname3,bufr3,errcode)
!
! compare read and write buffers.
@@ -1539,36 +1464,17 @@ SUBROUTINE test_attributes()
! double
!-------------------------------------------------------------------------
#ifdef H5_FORTRAN_HAVE_STORAGE_SIZE
SizeOf_buf_type = STORAGE_SIZE(buf4(1), c_size_t)/STORAGE_SIZE(c_char_'a',c_size_t)
#else
SizeOf_buf_type = SIZEOF(buf4(1))
#endif
IF(SizeOf_buf_type.LT.16)THEN ! MSB can't handle 16 byte reals
CALL test_begin(' Set/Get attributes double ')
!
! write attribute.
!
f_ptr = C_LOC(buf4(1))
CALL h5ltset_attribute_f(file_id,dsetname1,attrname4,f_ptr,"real", SizeOf_buf_type, size, errcode)
! CALL h5ltset_attribute_double_f(file_id,dsetname1,attrname4,buf4, size, errcode)
CALL h5ltset_attribute_double_f(file_id,dsetname1,attrname4,buf4,size,errcode)
!
! read attribute.
!
#ifdef H5_FORTRAN_HAVE_STORAGE_SIZE
SizeOf_buf_type = STORAGE_SIZE(bufr4(1), c_size_t)/STORAGE_SIZE(c_char_'a',c_size_t)
#else
SizeOf_buf_type = SIZEOF(bufr4(1))
#endif
f_ptr = C_LOC(bufr4(1))
CALL h5ltget_attribute_f(file_id,dsetname1,attrname4,f_ptr,"REAL",SizeOf_buf_type,errcode)
CALL h5ltget_attribute_double_f(file_id,dsetname1,attrname4,bufr4,errcode)
!
! compare read and write buffers.
@@ -1583,8 +1489,6 @@ SUBROUTINE test_attributes()
CALL passed()
ENDIF
!-------------------------------------------------------------------------
! string
!-------------------------------------------------------------------------
@@ -1700,6 +1604,11 @@ SUBROUTINE test_attributes()
!
END SUBROUTINE test_attributes
!-------------------------------------------------------------------------
! test_begin
!-------------------------------------------------------------------------

View File

@@ -16,12 +16,12 @@
!
! This file contains the FORTRAN90 tests for H5LT
!
#include <H5config_f.inc>
PROGRAM table_test
CALL test_table1()
END PROGRAM table_test
@@ -71,24 +71,7 @@ SUBROUTINE test_table1()
INTEGER(SIZE_T), DIMENSION(1:nfields) :: field_sizesr ! field sizes
INTEGER(SIZE_T) :: type_sizeout = 0 ! size of the datatype
INTEGER :: maxlen = 0 ! max chararter length of a field name
INTEGER :: Cs_sizeof_double = H5_SIZEOF_DOUBLE ! C's sizeof double
INTEGER :: SIZEOF_X
LOGICAL :: Exclude_double
! Find size of DOUBLE PRECISION
#ifdef H5_FORTRAN_HAVE_STORAGE_SIZE
SIZEOF_X = storage_size(bufd(1))/storage_size(c_char_'a')
#else
SIZEOF_X = SIZEOF(bufd(1))
#endif
! If Fortran DOUBLE PRECISION and C DOUBLE sizeofs don't match then disable
! creating a DOUBLE RECISION field, and instead create a REAL field. This
! is needed to handle when DOUBLE PRECISION is promoted via a compiler flag.
Exclude_double = .FALSE.
IF(Cs_sizeof_double.NE.SIZEOF_X)THEN
Exclude_double = .TRUE.
ENDIF
!
! Initialize the data arrays.
@@ -128,11 +111,7 @@ SUBROUTINE test_table1()
CALL h5tset_size_f(type_id_c, type_size, errcode)
CALL h5tget_size_f(type_id_c, type_sizec, errcode)
CALL h5tget_size_f(H5T_NATIVE_INTEGER, type_sizei, errcode)
IF(exclude_double)THEN
CALL h5tget_size_f(H5T_NATIVE_REAL, type_sized, errcode)
ELSE
CALL h5tget_size_f(H5T_NATIVE_DOUBLE, type_sized, errcode)
ENDIF
CALL h5tget_size_f(H5T_NATIVE_DOUBLE, type_sized, errcode)
CALL h5tget_size_f(H5T_NATIVE_REAL, type_sizer, errcode)
type_size = type_sizec + type_sizei + type_sized + type_sizer
@@ -141,11 +120,7 @@ SUBROUTINE test_table1()
!
field_types(1) = type_id_c
field_types(2) = H5T_NATIVE_INTEGER
IF(exclude_double)THEN
field_types(3) = H5T_NATIVE_REAL
ELSE
field_types(3) = H5T_NATIVE_DOUBLE
ENDIF
field_types(3) = H5T_NATIVE_DOUBLE
field_types(4) = H5T_NATIVE_REAL
!
@@ -193,13 +168,9 @@ SUBROUTINE test_table1()
CALL h5tbwrite_field_name_f(file_id,dsetname1,field_names(2),start,nrecords,type_sizei,&
bufi,errcode)
IF(exclude_double)THEN
CALL h5tbwrite_field_name_f(file_id,dsetname1,field_names(3),start,nrecords,type_sized,&
bufr,errcode)
ELSE
CALL h5tbwrite_field_name_f(file_id,dsetname1,field_names(3),start,nrecords,type_sized,&
bufd,errcode)
ENDIF
CALL h5tbwrite_field_name_f(file_id,dsetname1,field_names(3),start,nrecords,type_sized,&
bufd,errcode)
CALL h5tbwrite_field_name_f(file_id,dsetname1,field_names(4),start,nrecords,type_sizer,&
bufr,errcode)
@@ -243,6 +214,7 @@ SUBROUTINE test_table1()
CALL h5tbread_field_name_f(file_id,dsetname1,field_names(2),start,nrecords,type_sizei,&
bufir,errcode)
!
! compare read and write buffers.
!
@@ -254,39 +226,19 @@ SUBROUTINE test_table1()
ENDIF
END DO
IF(exclude_double)THEN
CALL h5tbread_field_name_f(file_id,dsetname1,field_names(3),start,nrecords,type_sized,&
bufrr,errcode)
CALL h5tbread_field_name_f(file_id,dsetname1,field_names(3),start,nrecords,type_sized,&
bufdr,errcode)
!
! compare read and write buffers.
!
DO i = 1, nrecords
IF ( bufrr(i) .NE. bufr(i) ) THEN
PRINT *, 'read buffer differs from write buffer'
PRINT *, bufrr(i), ' and ', bufr(i)
STOP
ENDIF
END DO
ELSE
CALL h5tbread_field_name_f(file_id,dsetname1,field_names(3),start,nrecords,type_sized,&
bufdr,errcode)
!
! compare read and write buffers.
!
DO i = 1, nrecords
IF ( bufdr(i) .NE. bufd(i) ) THEN
PRINT *, 'read buffer differs from write buffer'
PRINT *, bufdr(i), ' and ', bufd(i)
STOP
ENDIF
END DO
ENDIF
DO i = 1, nrecords
IF ( bufdr(i) .NE. bufd(i) ) THEN
PRINT *, 'read buffer differs from write buffer'
PRINT *, bufdr(i), ' and ', bufd(i)
STOP
ENDIF
END DO
CALL h5tbread_field_name_f(file_id,dsetname1,field_names(4),start,nrecords,type_sizer,&
bufrr,errcode)
@@ -302,8 +254,8 @@ SUBROUTINE test_table1()
ENDIF
END DO
CALL passed()
CALL passed()
!-------------------------------------------------------------------------
! write field
@@ -317,13 +269,8 @@ SUBROUTINE test_table1()
CALL h5tbwrite_field_index_f(file_id,dsetname1,2,start,nrecords,type_sizei,&
bufi,errcode)
IF(exclude_double)THEN
CALL h5tbwrite_field_index_f(file_id,dsetname1,3,start,nrecords,type_sized,&
bufr,errcode)
ELSE
CALL h5tbwrite_field_index_f(file_id,dsetname1,3,start,nrecords,type_sized,&
bufd,errcode)
ENDIF
CALL h5tbwrite_field_index_f(file_id,dsetname1,3,start,nrecords,type_sized,&
bufd,errcode)
CALL h5tbwrite_field_index_f(file_id,dsetname1,4,start,nrecords,type_sizer,&
bufr,errcode)
@@ -361,35 +308,20 @@ SUBROUTINE test_table1()
STOP
ENDIF
END DO
IF(exclude_double)THEN
CALL h5tbread_field_index_f(file_id,dsetname1,3,start,nrecords,type_sized,&
bufrr,errcode)
!
! compare read and write buffers.
!
DO i = 1, nrecords
IF ( bufrr(i) .NE. bufr(i) ) THEN
PRINT *, 'read buffer differs from write buffer'
PRINT *, bufrr(i), ' and ', bufr(i)
STOP
ENDIF
END DO
ELSE
CALL h5tbread_field_index_f(file_id,dsetname1,3,start,nrecords,type_sized,&
bufdr,errcode)
CALL h5tbread_field_index_f(file_id,dsetname1,3,start,nrecords,type_sized,&
bufdr,errcode)
!
! compare read and write buffers.
!
DO i = 1, nrecords
IF ( bufdr(i) .NE. bufd(i) ) THEN
PRINT *, 'read buffer differs from write buffer'
PRINT *, bufdr(i), ' and ', bufd(i)
STOP
ENDIF
END DO
ENDIF
!
! compare read and write buffers.
!
DO i = 1, nrecords
IF ( bufdr(i) .NE. bufd(i) ) THEN
PRINT *, 'read buffer differs from write buffer'
PRINT *, bufdr(i), ' and ', bufd(i)
STOP
ENDIF
END DO
CALL h5tbread_field_index_f(file_id,dsetname1,4,start,nrecords,type_sizer,&
bufrr,errcode)