From b0afa2ab6157cf9519ce3fffccd40770157de214 Mon Sep 17 00:00:00 2001 From: Scot Breitenfeld Date: Wed, 8 Jul 2015 17:09:50 -0500 Subject: [svn-r27355] added generation of HL Fortran Interfaces for REALs --- MANIFEST | 1 + hl/fortran/src/H5HL_buildiface.F90 | 681 ++++++++ hl/fortran/src/H5LTff.F90 | 2670 +++--------------------------- hl/fortran/src/H5TBff.F90 | 499 +----- hl/fortran/src/Makefile.am | 28 +- hl/fortran/src/Makefile.in | 58 +- hl/fortran/src/hdf5_hl_fortrandll.def.in | 219 +-- hl/fortran/test/tstlite.F90 | 13 +- 8 files changed, 1032 insertions(+), 3137 deletions(-) create mode 100644 hl/fortran/src/H5HL_buildiface.F90 diff --git a/MANIFEST b/MANIFEST index 673025e..a21cf9a 100644 --- a/MANIFEST +++ b/MANIFEST @@ -2334,6 +2334,7 @@ ./hl/fortran/src/H5IMcc.h ./hl/fortran/src/H5IMfc.c ./hl/fortran/src/H5IMff.F90 +./hl/fortran/src/H5HL_buildiface.F90 ./hl/fortran/src/H5LTf90proto.h ./hl/fortran/src/H5LTfc.c ./hl/fortran/src/H5LTff.F90 diff --git a/hl/fortran/src/H5HL_buildiface.F90 b/hl/fortran/src/H5HL_buildiface.F90 new file mode 100644 index 0000000..1f5e278 --- /dev/null +++ b/hl/fortran/src/H5HL_buildiface.F90 @@ -0,0 +1,681 @@ +!****p* Program/H5test_kind +! +! NAME +! Executable: H5test_kind +! +! FILE +! fortran/src/H5test_kind.f90 +! +! PURPOSE +! This stand alone program is used at build time to generate the program +! H5fortran_detect.f90. It cycles through all the available KIND parameters for +! integers and reals. The appropriate program and subroutines are then generated +! depending on which of the KIND values are found. +! +! NOTES +! This program uses the Fortran 2008 intrinsic function STORAGE_SIZE or SIZEOF +! depending on availablity.It generates code that makes use of +! STORAGE_SIZE/SIZEOF in H5fortran_detect.f90. STORAGE_SIZE is standard +! compliant and should always be chosen over SIZEOF. +! +! The availability of STORAGE_SIZE/SIZEOF is checked at configure time and the TRUE/FALSE +! condition is set in the configure variable "FORTRAN_HAVE_STORAGE_SIZE" or +! "FORTRAN_HAVE_SIZEOF". +! +! The use of C_SIZOF(X) is not used since the argument X must be an interoperable +! data entity. +! +! COPYRIGHT +! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +! Copyright by The HDF Group. * +! Copyright by the Board of Trustees of the University of Illinois. * +! 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 files COPYING and Copyright.html. COPYING can be found at the root * +! of the source code distribution tree; Copyright.html can be found at the * +! root level of an installed copy of the electronic HDF5 document set and * +! 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. * +! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +! +! AUTHOR +! M. Scot Breitenfeld +! +!***** + +#include + +PROGRAM test_kind + USE, INTRINSIC :: ISO_C_BINDING + IMPLICIT NONE + +! These values are valid REAL KINDs (with corresponding C float) found during configure + H5_H5CONFIG_F_NUM_RKIND + H5_H5CONFIG_F_RKIND +! These values are valid INTEGER KINDs (with corresponding C float) found during configure + H5_H5CONFIG_F_NUM_IKIND + H5_H5CONFIG_F_IKIND + + INTEGER :: i, j, k + INTEGER :: ji, jr, jd +#ifdef H5_FORTRAN_HAVE_C_LONG_DOUBLE + REAL(KIND=C_LONG_DOUBLE) :: c_longdble +#endif + REAL(KIND=C_DOUBLE) :: c_dble + REAL(KIND=C_FLOAT) :: c_flt + INTEGER :: sizeof_var + CHARACTER(LEN=2) :: chr2 +! subroutine rank of array being passed in + CHARACTER(LEN=2), DIMENSION(1:8), PARAMETER :: chr_rank=(/"_0","_1","_2","_3","_4","_5","_6","_7"/) +! rank definitions + CHARACTER(LEN=70), DIMENSION(1:8), PARAMETER :: rank_dim_line=(/ & + ' ', & + ', DIMENSION(dims(1)) ', & + ', DIMENSION(dims(1),dims(2)) ', & + ', DIMENSION(dims(1),dims(2),dims(3)) ', & + ', DIMENSION(dims(1),dims(2),dims(3),dims(4)) ', & + ', DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) ', & + ', DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) ', & + ', DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7))' & + /) +! pointer to the buffer + CHARACTER(LEN=37), DIMENSION(1:8), PARAMETER :: f_ptr_line=(/ & + ' f_ptr = C_LOC(buf) ', & + ' f_ptr = C_LOC(buf(1)) ', & + ' f_ptr = C_LOC(buf(1,1)) ', & + ' f_ptr = C_LOC(buf(1,1,1)) ', & + ' f_ptr = C_LOC(buf(1,1,1,1)) ', & + ' f_ptr = C_LOC(buf(1,1,1,1,1)) ', & + ' f_ptr = C_LOC(buf(1,1,1,1,1,1)) ', & + ' f_ptr = C_LOC(buf(1,1,1,1,1,1,1))' & + /) + +! Generate Fortran H5LT* interfaces having multiple KIND interfaces. +! +! Developer's notes: +! +! Only interfaces with arrays of rank 7 and less are provided. Even-though the F2008 +! standard extended the maximum rank to 15, it was decided that they should use the +! new APIs to handle those use cases. Handling rank 7 and less is for backward compatibility +! with the Fortran 90/95 APIs codes which could never handle rank 8-15 array sizes. + + OPEN(11,FILE='H5LTff_gen.F90') + WRITE(11,'(40(A,/))') & +'!****h* ROBODoc/H5_KINDff.F90',& +'!',& +'! NAME',& +'! H5_KIND',& +'! ',& +'! PURPOSE',& +'! This module is generated at build by H5make_HLinterfaces.F90 to handle all the',& +'! detected REAL KINDs for APIs being passed REAL KINDs. Currently these ',& +'! are H5LT APIs',& +'!',& +'! COPYRIGHT',& +'! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *',& +'! 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 files COPYING and Copyright.html. COPYING can be found at the root *',& +'! of the source code distribution tree; Copyright.html can be found at the *',& +'! root level of an installed copy of the electronic HDF5 document set and *',& +'! 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. *',& +'! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *',& +'!',& +'! AUTHOR',& +'! H5make_HLinterfaces.F90',& +'!',& +'!*****' + + WRITE(11,'(a)') "MODULE H5LT" + + WRITE(11,'(A)') ' USE, INTRINSIC :: ISO_C_BINDING' + WRITE(11,'(A)') ' USE h5fortran_types' + WRITE(11,'(A)') ' USE H5LT_CONST' + WRITE(11,'(A)') ' IMPLICIT NONE' +!*************** +! H5LT INTERFACES +!*************** +! +! H5LTmake_dataset_f +! + WRITE(11,'(A)') " INTERFACE h5ltmake_dataset_f" + DO i = 1, num_rkinds + j = rkind(i) + WRITE(chr2,'(I2)') j + DO k = 1, 8 + WRITE(11,'(A)') " MODULE PROCEDURE h5ltmake_dataset_real_kind_"//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(k) + ENDDO + END DO + WRITE(11,'(A)') " END INTERFACE" + +! h5ltread_dataset_f + WRITE(11,'(A)') " INTERFACE h5ltread_dataset_f" + DO i = 1, num_rkinds + j = rkind(i) + WRITE(chr2,'(I2)') j + DO k = 1, 8 + WRITE(11,'(A)') " MODULE PROCEDURE h5ltread_dataset_real_kind_"//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(k) + ENDDO + END DO + WRITE(11,'(A)') " END INTERFACE" + +! h5ltmake_dataset_float_f + WRITE(11,'(A)') " INTERFACE h5ltmake_dataset_float_f" + DO i = 1, num_rkinds + j = rkind(i) + WRITE(chr2,'(I2)') j + DO k = 1, 8 + WRITE(11,'(A)') " MODULE PROCEDURE h5ltmake_dataset_float_kind_"//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(k) + ENDDO + END DO + WRITE(11,'(A)') " END INTERFACE" + +! h5ltmake_dataset_double_f + WRITE(11,'(A)') " INTERFACE h5ltmake_dataset_double_f" + DO i = 1, num_rkinds + j = rkind(i) + WRITE(chr2,'(I2)') j + DO k = 1, 8 + WRITE(11,'(A)') " MODULE PROCEDURE h5ltmake_dataset_double_kind_"//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(k) + ENDDO + END DO + WRITE(11,'(A)') " END INTERFACE" + +! h5ltread_dataset_float_f + WRITE(11,'(A)') " INTERFACE h5ltread_dataset_float_f" + DO i = 1, num_rkinds + j = rkind(i) + WRITE(chr2,'(I2)') j + DO k = 1, 8 + WRITE(11,'(A)') " MODULE PROCEDURE h5ltread_dataset_float_kind_"//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(k) + ENDDO + END DO + WRITE(11,'(A)') " END INTERFACE" + +! h5ltread_dataset_double_f + WRITE(11,'(A)') " INTERFACE h5ltread_dataset_double_f" + DO i = 1, num_rkinds + j = rkind(i) + WRITE(chr2,'(I2)') j + DO k = 1, 8 + WRITE(11,'(A)') " MODULE PROCEDURE h5ltread_dataset_double_kind_"//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(k) + ENDDO + END DO + WRITE(11,'(A)') " END INTERFACE" + + WRITE(11,'(A)') 'CONTAINS' + +!********************** +! H5LT APIs +!********************** +! +! h5ltmake_dataset_f + DO i = 1, num_rkinds + k = rkind(i) + WRITE(chr2,'(I2)') k + DO j = 1, 8 + +! DLL definitions for windows + WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' + WRITE(11,'(A)') '!DEC$attributes dllexport :: h5ltmake_dataset_real_kind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) + WRITE(11,'(A)') '!DEC$endif' + +! Subroutine API + WRITE(11,'(A)') ' SUBROUTINE h5ltmake_dataset_real_kind_'//TRIM(ADJUSTL(chr2))& + &//'_rank'//chr_rank(j)//'(loc_id,dset_name,rank,dims,type_id,buf,errcode)' + WRITE(11,'(A)') ' IMPLICIT NONE' + WRITE(11,'(A)') ' INTEGER(hid_t) , INTENT(IN) :: loc_id' + WRITE(11,'(A)') ' CHARACTER(LEN=*), INTENT(IN) :: dset_name' + WRITE(11,'(A)') ' INTEGER, INTENT(IN) :: rank' + WRITE(11,'(A)') ' INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims' + WRITE(11,'(A)') ' INTEGER(hid_t), INTENT(in) :: type_id' + WRITE(11,'(A)') ' REAL(KIND='//TRIM(ADJUSTL(chr2))//'),INTENT(IN)'//TRIM(rank_dim_line(j))//', TARGET :: buf' + WRITE(11,'(A)') ' INTEGER :: errcode ' + WRITE(11,'(A)') ' TYPE(C_PTR) :: f_ptr' + WRITE(11,'(A)') ' INTEGER(size_t) :: namelen' + + WRITE(11,'(A)') f_ptr_line(j) + WRITE(11,'(A)') ' namelen = LEN(dset_name)' + WRITE(11,'(A)') ' errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr)' + WRITE(11,'(A)') ' END SUBROUTINE h5ltmake_dataset_real_kind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) + ENDDO + ENDDO + +! h5ltread_dataset_f + DO i = 1, num_rkinds + k = rkind(i) + WRITE(chr2,'(I2)') k + DO j = 1, 8 + +! DLL definitions for windows + WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' + WRITE(11,'(A)') '!DEC$attributes dllexport :: h5ltread_dataset_real_kind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) + WRITE(11,'(A)') '!DEC$endif' + +! Subroutine API + WRITE(11,'(A)') ' SUBROUTINE h5ltread_dataset_real_kind_'//TRIM(ADJUSTL(chr2))& + &//'_rank'//chr_rank(j)//'(loc_id,dset_name,type_id,buf,dims,errcode)' + WRITE(11,'(A)') ' IMPLICIT NONE' + WRITE(11,'(A)') ' INTEGER(hid_t) , INTENT(IN) :: loc_id' + WRITE(11,'(A)') ' CHARACTER(LEN=*), INTENT(IN) :: dset_name' + WRITE(11,'(A)') ' INTEGER(hid_t), INTENT(in) :: type_id' + WRITE(11,'(A)') ' INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims' + WRITE(11,'(A)') ' REAL(KIND='//TRIM(ADJUSTL(chr2))//'),INTENT(IN)'//TRIM(rank_dim_line(j))//', TARGET :: buf' + WRITE(11,'(A)') ' INTEGER :: errcode ' + WRITE(11,'(A)') ' TYPE(C_PTR) :: f_ptr' + WRITE(11,'(A)') ' INTEGER(size_t) :: namelen' + + WRITE(11,'(A)') f_ptr_line(j) + WRITE(11,'(A)') ' namelen = LEN(dset_name)' + WRITE(11,'(A)') ' errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr)' + WRITE(11,'(A)') ' END SUBROUTINE h5ltread_dataset_real_kind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) + ENDDO + ENDDO + +! h5ltmake_dataset_float_f + DO i = 1, num_rkinds + k = rkind(i) + WRITE(chr2,'(I2)') k + DO j = 1, 8 + +! DLL definitions for windows + WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' + WRITE(11,'(A)') '!DEC$attributes dllexport :: h5ltmake_dataset_float_kind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) + WRITE(11,'(A)') '!DEC$endif' + +! Subroutine API + WRITE(11,'(A)') ' SUBROUTINE h5ltmake_dataset_float_kind_'//TRIM(ADJUSTL(chr2))& + &//'_rank'//chr_rank(j)//'(loc_id,dset_name,rank,dims,buf,errcode)' + WRITE(11,'(A)') ' IMPLICIT NONE' + WRITE(11,'(A)') ' INTEGER(hid_t) , INTENT(IN) :: loc_id' + WRITE(11,'(A)') ' CHARACTER(LEN=*), INTENT(IN) :: dset_name' + WRITE(11,'(A)') ' INTEGER, INTENT(IN) :: rank' + WRITE(11,'(A)') ' INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims' + WRITE(11,'(A)') ' REAL(KIND='//TRIM(ADJUSTL(chr2))//'),INTENT(IN)'//TRIM(rank_dim_line(j))//', TARGET :: buf' + WRITE(11,'(A)') ' INTEGER :: errcode ' + WRITE(11,'(A)') ' TYPE(C_PTR) :: f_ptr' + WRITE(11,'(A)') ' INTEGER(size_t) :: namelen' + + WRITE(11,'(A)') f_ptr_line(j) + WRITE(11,'(A)') ' namelen = LEN(dset_name)' + WRITE(11,'(A)') ' errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,f_ptr)' + WRITE(11,'(A)') ' END SUBROUTINE h5ltmake_dataset_float_kind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) + ENDDO + ENDDO + +! h5ltread_dataset_float_f + DO i = 1, num_rkinds + k = rkind(i) + WRITE(chr2,'(I2)') k + DO j = 1, 8 + +! DLL definitions for windows + WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' + WRITE(11,'(A)') '!DEC$attributes dllexport :: h5ltread_dataset_float_kind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) + WRITE(11,'(A)') '!DEC$endif' + +! Subroutine API + WRITE(11,'(A)') ' SUBROUTINE h5ltread_dataset_float_kind_'//TRIM(ADJUSTL(chr2))& + &//'_rank'//chr_rank(j)//'(loc_id,dset_name,buf,dims,errcode)' + WRITE(11,'(A)') ' IMPLICIT NONE' + WRITE(11,'(A)') ' INTEGER(hid_t) , INTENT(IN) :: loc_id' + WRITE(11,'(A)') ' CHARACTER(LEN=*), INTENT(IN) :: dset_name' + WRITE(11,'(A)') ' INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims' + WRITE(11,'(A)') ' REAL(KIND='//TRIM(ADJUSTL(chr2))//'),INTENT(IN)'//TRIM(rank_dim_line(j))//', TARGET :: buf' + WRITE(11,'(A)') ' INTEGER :: errcode ' + WRITE(11,'(A)') ' TYPE(C_PTR) :: f_ptr' + WRITE(11,'(A)') ' INTEGER(size_t) :: namelen' + + WRITE(11,'(A)') f_ptr_line(j) + WRITE(11,'(A)') ' namelen = LEN(dset_name)' + WRITE(11,'(A)') ' errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,f_ptr)' + WRITE(11,'(A)') ' END SUBROUTINE h5ltread_dataset_float_kind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) + ENDDO + ENDDO + +! h5ltmake_dataset_double_f + DO i = 1, num_rkinds + k = rkind(i) + WRITE(chr2,'(I2)') k + DO j = 1, 8 + +! DLL definitions for windows + WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' + WRITE(11,'(A)') '!DEC$attributes dllexport :: h5ltmake_dataset_double_kind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) + WRITE(11,'(A)') '!DEC$endif' + +! Subroutine API + WRITE(11,'(A)') ' SUBROUTINE h5ltmake_dataset_double_kind_'//TRIM(ADJUSTL(chr2))& + &//'_rank'//chr_rank(j)//'(loc_id,dset_name,rank,dims,buf,errcode)' + WRITE(11,'(A)') ' IMPLICIT NONE' + WRITE(11,'(A)') ' INTEGER(hid_t) , INTENT(IN) :: loc_id' + WRITE(11,'(A)') ' CHARACTER(LEN=*), INTENT(IN) :: dset_name' + WRITE(11,'(A)') ' INTEGER, INTENT(IN) :: rank' + WRITE(11,'(A)') ' INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims' + WRITE(11,'(A)') ' REAL(KIND='//TRIM(ADJUSTL(chr2))//'),INTENT(IN)'//TRIM(rank_dim_line(j))//', TARGET :: buf' + WRITE(11,'(A)') ' INTEGER :: errcode ' + WRITE(11,'(A)') ' TYPE(C_PTR) :: f_ptr' + WRITE(11,'(A)') ' INTEGER(size_t) :: namelen' + + WRITE(11,'(A)') f_ptr_line(j) + WRITE(11,'(A)') ' namelen = LEN(dset_name)' + WRITE(11,'(A)') ' errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,f_ptr)' + WRITE(11,'(A)') ' END SUBROUTINE h5ltmake_dataset_double_kind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) + ENDDO + ENDDO + +! h5ltread_dataset_double_f + DO i = 1, num_rkinds + k = rkind(i) + WRITE(chr2,'(I2)') k + DO j = 1, 8 + +! DLL definitions for windows + WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' + WRITE(11,'(A)') '!DEC$attributes dllexport :: h5ltread_dataset_double_kind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) + WRITE(11,'(A)') '!DEC$endif' + +! Subroutine API + WRITE(11,'(A)') ' SUBROUTINE h5ltread_dataset_double_kind_'//TRIM(ADJUSTL(chr2))& + &//'_rank'//chr_rank(j)//'(loc_id,dset_name,buf,dims,errcode)' + WRITE(11,'(A)') ' IMPLICIT NONE' + WRITE(11,'(A)') ' INTEGER(hid_t) , INTENT(IN) :: loc_id' + WRITE(11,'(A)') ' CHARACTER(LEN=*), INTENT(IN) :: dset_name' + WRITE(11,'(A)') ' INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims' + WRITE(11,'(A)') ' REAL(KIND='//TRIM(ADJUSTL(chr2))//'),INTENT(IN)'//TRIM(rank_dim_line(j))//', TARGET :: buf' + WRITE(11,'(A)') ' INTEGER :: errcode ' + WRITE(11,'(A)') ' TYPE(C_PTR) :: f_ptr' + WRITE(11,'(A)') ' INTEGER(size_t) :: namelen' + + WRITE(11,'(A)') f_ptr_line(j) + WRITE(11,'(A)') ' namelen = LEN(dset_name)' + WRITE(11,'(A)') ' errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr)' + WRITE(11,'(A)') ' END SUBROUTINE h5ltread_dataset_double_kind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) + ENDDO + ENDDO + + WRITE(11,'(A)') 'END MODULE H5LT' ! change this to be generic MSB + + CLOSE(11) + + + OPEN(11,FILE='H5TBff_gen.F90') + WRITE(11,'(40(A,/))') & +'!****h* ROBODoc/H5TBff_gen.F90',& +'!',& +'! NAME',& +'! H5_KIND',& +'! ',& +'! PURPOSE',& +'! This module is generated at build by H5make_HLinterfaces.F90 to handle all the',& +'! detected REAL KINDs for APIs being passed REAL KINDs. Currently these ',& +'! are H5LT APIs',& +'!',& +'! COPYRIGHT',& +'! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *',& +'! 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 files COPYING and Copyright.html. COPYING can be found at the root *',& +'! of the source code distribution tree; Copyright.html can be found at the *',& +'! root level of an installed copy of the electronic HDF5 document set and *',& +'! 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. *',& +'! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *',& +'!',& +'! AUTHOR',& +'! H5make_HLinterfaces.F90',& +'!',& +'!*****' + + WRITE(11,'(a)') "MODULE H5TB" + + WRITE(11,'(A)') ' USE, INTRINSIC :: ISO_C_BINDING' + WRITE(11,'(A)') ' USE h5fortran_types' + WRITE(11,'(A)') ' USE H5TB_CONST' + WRITE(11,'(A)') ' IMPLICIT NONE' + +!*************** +! H5TB INTERFACES +!*************** + +! h5tbwrite_field_name_f + WRITE(11,'(A)') " INTERFACE h5tbwrite_field_name_f" + DO i = 1, num_rkinds + j = rkind(i) + WRITE(chr2,'(I2)') j + k =2 + WRITE(11,'(A)') " MODULE PROCEDURE h5tbwrite_field_name_kind_"//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(k) + END DO + WRITE(11,'(A)') " END INTERFACE" + +! h5tbread_field_name_f + WRITE(11,'(A)') " INTERFACE h5tbread_field_name_f" + DO i = 1, num_rkinds + j = rkind(i) + WRITE(chr2,'(I2)') j + k = 2 + WRITE(11,'(A)') " MODULE PROCEDURE h5tbread_field_name_kind_"//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(k) + END DO + WRITE(11,'(A)') " END INTERFACE" + +! h5tbwrite_field_index_f + WRITE(11,'(A)') " INTERFACE h5tbwrite_field_index_f" + DO i = 1, num_rkinds + j = rkind(i) + WRITE(chr2,'(I2)') j + k = 2 + WRITE(11,'(A)') " MODULE PROCEDURE h5tbwrite_field_index_kind_"//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(k) + END DO + WRITE(11,'(A)') " END INTERFACE" + +! h5tbread_field_index_f + WRITE(11,'(A)') " INTERFACE h5tbread_field_index_f" + DO i = 1, num_rkinds + j = rkind(i) + WRITE(chr2,'(I2)') j + k = 2 + WRITE(11,'(A)') " MODULE PROCEDURE h5tbread_field_index_kind_"//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(k) + END DO + WRITE(11,'(A)') " END INTERFACE" + +! h5tbinsert_field_f + WRITE(11,'(A)') " INTERFACE h5tbinsert_field_f" + DO i = 1, num_rkinds + j = rkind(i) + WRITE(chr2,'(I2)') j + k = 2 + WRITE(11,'(A)') " MODULE PROCEDURE h5tbinsert_field_kind_"//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(k) + END DO + WRITE(11,'(A)') " END INTERFACE" + + WRITE(11,'(A)') 'CONTAINS' + + !********************** + ! H5TB APIs + !********************** + + ! h5tbwrite_field_name_f + DO i = 1, num_rkinds + k = rkind(i) + WRITE(chr2,'(I2)') k + j = 2 +! DLL definitions for windows + WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' + WRITE(11,'(A)') '!DEC$attributes dllexport :: h5tbwrite_field_name_kind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) + WRITE(11,'(A)') '!DEC$endif' + +! Subroutine API + WRITE(11,'(A)') ' SUBROUTINE h5tbwrite_field_name_kind_'//TRIM(ADJUSTL(chr2))& + &//'_rank'//chr_rank(j)//'(loc_id,dset_name,field_name,start, nrecords,type_size,buf,errcode)' + WRITE(11,'(A)') ' IMPLICIT NONE' + WRITE(11,'(A)') ' INTEGER(hid_t) , INTENT(IN) :: loc_id' + WRITE(11,'(A)') ' CHARACTER(LEN=*), INTENT(IN) :: dset_name' + WRITE(11,'(A)') ' CHARACTER(LEN=*), INTENT(in) :: field_name' + WRITE(11,'(A)') ' INTEGER(hsize_t), INTENT(in) :: start' + WRITE(11,'(A)') ' INTEGER(hsize_t), INTENT(in) :: nrecords' + WRITE(11,'(A)') ' INTEGER(size_t), INTENT(in) :: type_size' + WRITE(11,'(A)') ' REAL(KIND='//TRIM(ADJUSTL(chr2))//'),INTENT(IN), DIMENSION(*), TARGET :: buf' + WRITE(11,'(A)') ' INTEGER :: errcode ' + WRITE(11,'(A)') ' INTEGER(size_t) :: namelen' + WRITE(11,'(A)') ' INTEGER(size_t) :: namelen1' + WRITE(11,'(A)') ' TYPE(C_PTR) :: f_ptr' + + WRITE(11,'(A)') f_ptr_line(j) + WRITE(11,'(A)') ' namelen = LEN(dset_name)' + WRITE(11,'(A)') ' namelen1 = LEN(field_name)' + WRITE(11,'(A)') & + ' errcode = h5tbwrite_field_name_c(loc_id,namelen,dset_name,namelen1,field_name,start,nrecords,type_size,f_ptr)' + WRITE(11,'(A)') ' END SUBROUTINE h5tbwrite_field_name_kind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) + ENDDO + + ! h5tbread_field_name_f + DO i = 1, num_rkinds + k = rkind(i) + WRITE(chr2,'(I2)') k + j = 2 +! DLL definitions for windows + WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' + WRITE(11,'(A)') '!DEC$attributes dllexport :: h5tbread_field_name_kind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) + WRITE(11,'(A)') '!DEC$endif' + +! Subroutine API + WRITE(11,'(A)') ' SUBROUTINE h5tbread_field_name_kind_'//TRIM(ADJUSTL(chr2))& + &//'_rank'//chr_rank(j)//'(loc_id,dset_name,field_name,start, nrecords,type_size,buf,errcode)' + WRITE(11,'(A)') ' IMPLICIT NONE' + WRITE(11,'(A)') ' INTEGER(hid_t) , INTENT(IN) :: loc_id' + WRITE(11,'(A)') ' CHARACTER(LEN=*), INTENT(IN) :: dset_name' + WRITE(11,'(A)') ' CHARACTER(LEN=*), INTENT(in) :: field_name' + WRITE(11,'(A)') ' INTEGER(hsize_t), INTENT(in) :: start' + WRITE(11,'(A)') ' INTEGER(hsize_t), INTENT(in) :: nrecords' + WRITE(11,'(A)') ' INTEGER(size_t), INTENT(in) :: type_size' + WRITE(11,'(A)') ' REAL(KIND='//TRIM(ADJUSTL(chr2))//'),INTENT(IN), DIMENSION(*), TARGET :: buf' + WRITE(11,'(A)') ' INTEGER :: errcode ' + WRITE(11,'(A)') ' INTEGER(size_t) :: namelen' + WRITE(11,'(A)') ' INTEGER(size_t) :: namelen1' + WRITE(11,'(A)') ' TYPE(C_PTR) :: f_ptr' + + WRITE(11,'(A)') f_ptr_line(j) + WRITE(11,'(A)') ' namelen = LEN(dset_name)' + WRITE(11,'(A)') ' namelen1 = LEN(field_name)' + WRITE(11,'(A)') & + ' errcode = h5tbread_field_name_c(loc_id,namelen,dset_name,namelen1,field_name,start,nrecords,type_size,f_ptr)' + WRITE(11,'(A)') ' END SUBROUTINE h5tbread_field_name_kind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) + ENDDO + + ! h5tbwrite_field_index_f + DO i = 1, num_rkinds + k = rkind(i) + WRITE(chr2,'(I2)') k + j = 2 +! DLL definitions for windows + WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' + WRITE(11,'(A)') '!DEC$attributes dllexport :: h5tbwrite_field_index_kind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) + WRITE(11,'(A)') '!DEC$endif' + +! Subroutine API + WRITE(11,'(A)') ' SUBROUTINE h5tbwrite_field_index_kind_'//TRIM(ADJUSTL(chr2))& + &//'_rank'//chr_rank(j)//'(loc_id,dset_name,field_index,start, nrecords,type_size,buf,errcode)' + WRITE(11,'(A)') ' IMPLICIT NONE' + WRITE(11,'(A)') ' INTEGER(hid_t) , INTENT(IN) :: loc_id' + WRITE(11,'(A)') ' CHARACTER(LEN=*), INTENT(IN) :: dset_name' + WRITE(11,'(A)') ' INTEGER, INTENT(in) :: field_index' + WRITE(11,'(A)') ' INTEGER(hsize_t), INTENT(in) :: start' + WRITE(11,'(A)') ' INTEGER(hsize_t), INTENT(in) :: nrecords' + WRITE(11,'(A)') ' INTEGER(size_t), INTENT(in) :: type_size' + WRITE(11,'(A)') ' REAL(KIND='//TRIM(ADJUSTL(chr2))//'),INTENT(IN), DIMENSION(*), TARGET :: buf' + WRITE(11,'(A)') ' INTEGER :: errcode ' + WRITE(11,'(A)') ' INTEGER(size_t) :: namelen' + WRITE(11,'(A)') ' TYPE(C_PTR) :: f_ptr' + + WRITE(11,'(A)') f_ptr_line(j) + WRITE(11,'(A)') ' namelen = LEN(dset_name)' + WRITE(11,'(A)') & + ' errcode = h5tbwrite_field_index_c(loc_id,namelen,dset_name,field_index,start,nrecords,type_size,f_ptr)' + WRITE(11,'(A)') ' END SUBROUTINE h5tbwrite_field_index_kind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) + ENDDO + + ! h5tbread_field_index_f + DO i = 1, num_rkinds + k = rkind(i) + WRITE(chr2,'(I2)') k + j = 2 +! DLL definitions for windows + WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' + WRITE(11,'(A)') '!DEC$attributes dllexport :: h5tbread_field_index_kind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) + WRITE(11,'(A)') '!DEC$endif' + +! Subroutine API + WRITE(11,'(A)') ' SUBROUTINE h5tbread_field_index_kind_'//TRIM(ADJUSTL(chr2))& + &//'_rank'//chr_rank(j)//'(loc_id,dset_name,field_index,start, nrecords,type_size,buf,errcode)' + WRITE(11,'(A)') ' IMPLICIT NONE' + WRITE(11,'(A)') ' INTEGER(hid_t) , INTENT(IN) :: loc_id' + WRITE(11,'(A)') ' CHARACTER(LEN=*), INTENT(IN) :: dset_name' + WRITE(11,'(A)') ' INTEGER, INTENT(in) :: field_index' + WRITE(11,'(A)') ' INTEGER(hsize_t), INTENT(in) :: start' + WRITE(11,'(A)') ' INTEGER(hsize_t), INTENT(in) :: nrecords' + WRITE(11,'(A)') ' INTEGER(size_t), INTENT(in) :: type_size' + WRITE(11,'(A)') ' REAL(KIND='//TRIM(ADJUSTL(chr2))//'),INTENT(IN), DIMENSION(*), TARGET :: buf' + WRITE(11,'(A)') ' INTEGER :: errcode ' + WRITE(11,'(A)') ' INTEGER(size_t) :: namelen' + WRITE(11,'(A)') ' TYPE(C_PTR) :: f_ptr' + + WRITE(11,'(A)') f_ptr_line(j) + WRITE(11,'(A)') ' namelen = LEN(dset_name)' + WRITE(11,'(A)') & + ' errcode = h5tbread_field_index_c(loc_id,namelen,dset_name,field_index,start,nrecords,type_size,f_ptr)' + WRITE(11,'(A)') ' END SUBROUTINE h5tbread_field_index_kind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) + ENDDO + + ! h5tbinsert_field_f + DO i = 1, num_rkinds + k = rkind(i) + WRITE(chr2,'(I2)') k + j = 2 +! DLL definitions for windows + WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' + WRITE(11,'(A)') '!DEC$attributes dllexport :: h5tbinsert_field_kind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) + WRITE(11,'(A)') '!DEC$endif' + +! Subroutine API + WRITE(11,'(A)') ' SUBROUTINE h5tbinsert_field_kind_'//TRIM(ADJUSTL(chr2))& + &//'_rank'//chr_rank(j)//'(loc_id,dset_name,field_name,field_type,field_index,buf,errcode)' + WRITE(11,'(A)') ' IMPLICIT NONE' + WRITE(11,'(A)') ' INTEGER(hid_t), INTENT(in) :: loc_id' + WRITE(11,'(A)') ' CHARACTER(LEN=*), INTENT(in) :: dset_name' + WRITE(11,'(A)') ' CHARACTER(LEN=*), INTENT(in) :: field_name' + WRITE(11,'(A)') ' INTEGER(hid_t), INTENT(in) :: field_type' + WRITE(11,'(A)') ' INTEGER, INTENT(in) :: field_index' + WRITE(11,'(A)') ' REAL(KIND='//TRIM(ADJUSTL(chr2))//'), INTENT(in), DIMENSION(*), TARGET :: buf' + WRITE(11,'(A)') ' INTEGER(size_t) :: namelen' + WRITE(11,'(A)') ' INTEGER(size_t) :: namelen1' + WRITE(11,'(A)') ' INTEGER :: errcode' + WRITE(11,'(A)') ' TYPE(C_PTR) :: f_ptr' + + WRITE(11,'(A)') f_ptr_line(j) + WRITE(11,'(A)') ' namelen = LEN(dset_name)' + WRITE(11,'(A)') ' namelen1 = LEN(field_name)' + WRITE(11,'(A)') & + ' errcode = h5tbinsert_field_c(loc_id,namelen,dset_name,namelen1,field_name,field_type,field_index,f_ptr)' + WRITE(11,'(A)') ' END SUBROUTINE h5tbinsert_field_kind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) + ENDDO + + WRITE(11,'(A)') 'END MODULE H5TB' ! change this to be generic MSB + + CLOSE(11) + +END PROGRAM test_kind + + + diff --git a/hl/fortran/src/H5LTff.F90 b/hl/fortran/src/H5LTff.F90 index 092cdd9..ffc7ab5 100644 --- a/hl/fortran/src/H5LTff.F90 +++ b/hl/fortran/src/H5LTff.F90 @@ -32,7 +32,7 @@ #include -MODULE h5lt +MODULE H5LT_CONST USE, INTRINSIC :: ISO_C_BINDING USE h5fortran_types USE hdf5 @@ -45,29 +45,6 @@ MODULE h5lt MODULE PROCEDURE h5ltmake_dataset_f_int5 MODULE PROCEDURE h5ltmake_dataset_f_int6 MODULE PROCEDURE h5ltmake_dataset_f_int7 - MODULE PROCEDURE h5ltmake_dataset_f_c_float1 - MODULE PROCEDURE h5ltmake_dataset_f_c_float2 - MODULE PROCEDURE h5ltmake_dataset_f_c_float3 - MODULE PROCEDURE h5ltmake_dataset_f_c_float4 - MODULE PROCEDURE h5ltmake_dataset_f_c_float5 - MODULE PROCEDURE h5ltmake_dataset_f_c_float6 - MODULE PROCEDURE h5ltmake_dataset_f_c_float7 - MODULE PROCEDURE h5ltmake_dataset_f_c_double1 - MODULE PROCEDURE h5ltmake_dataset_f_c_double2 - MODULE PROCEDURE h5ltmake_dataset_f_c_double3 - MODULE PROCEDURE h5ltmake_dataset_f_c_double4 - MODULE PROCEDURE h5ltmake_dataset_f_c_double5 - MODULE PROCEDURE h5ltmake_dataset_f_c_double6 - MODULE PROCEDURE h5ltmake_dataset_f_c_double7 -#if FORTRAN_C_LONG_DOUBLE_IS_UNIQUE!=0 - MODULE PROCEDURE h5ltmake_dataset_f_c_long_double1 - MODULE PROCEDURE h5ltmake_dataset_f_c_long_double2 - MODULE PROCEDURE h5ltmake_dataset_f_c_long_double3 - MODULE PROCEDURE h5ltmake_dataset_f_c_long_double4 - MODULE PROCEDURE h5ltmake_dataset_f_c_long_double5 - MODULE PROCEDURE h5ltmake_dataset_f_c_long_double6 - MODULE PROCEDURE h5ltmake_dataset_f_c_long_double7 -#endif MODULE PROCEDURE h5ltmake_dataset_f_ptr END INTERFACE @@ -79,29 +56,6 @@ MODULE h5lt MODULE PROCEDURE h5ltread_dataset_f_int5 MODULE PROCEDURE h5ltread_dataset_f_int6 MODULE PROCEDURE h5ltread_dataset_f_int7 - MODULE PROCEDURE h5ltread_dataset_f_c_float1 - MODULE PROCEDURE h5ltread_dataset_f_c_float2 - MODULE PROCEDURE h5ltread_dataset_f_c_float3 - MODULE PROCEDURE h5ltread_dataset_f_c_float4 - MODULE PROCEDURE h5ltread_dataset_f_c_float5 - MODULE PROCEDURE h5ltread_dataset_f_c_float6 - MODULE PROCEDURE h5ltread_dataset_f_c_float7 - MODULE PROCEDURE h5ltread_dataset_f_c_double1 - MODULE PROCEDURE h5ltread_dataset_f_c_double2 - MODULE PROCEDURE h5ltread_dataset_f_c_double3 - MODULE PROCEDURE h5ltread_dataset_f_c_double4 - MODULE PROCEDURE h5ltread_dataset_f_c_double5 - MODULE PROCEDURE h5ltread_dataset_f_c_double6 - MODULE PROCEDURE h5ltread_dataset_f_c_double7 -#if FORTRAN_C_LONG_DOUBLE_IS_UNIQUE!=0 - MODULE PROCEDURE h5ltread_dataset_f_c_long_double1 - MODULE PROCEDURE h5ltread_dataset_f_c_long_double2 - MODULE PROCEDURE h5ltread_dataset_f_c_long_double3 - MODULE PROCEDURE h5ltread_dataset_f_c_long_double4 - MODULE PROCEDURE h5ltread_dataset_f_c_long_double5 - MODULE PROCEDURE h5ltread_dataset_f_c_long_double6 - MODULE PROCEDURE h5ltread_dataset_f_c_long_double7 -#endif MODULE PROCEDURE h5ltread_dataset_f_ptr END INTERFACE @@ -115,58 +69,6 @@ MODULE h5lt MODULE PROCEDURE h5ltmake_dataset_int_f_7 END INTERFACE - INTERFACE h5ltmake_dataset_float_f - MODULE PROCEDURE h5ltmake_dataset_c_float_f_1 - MODULE PROCEDURE h5ltmake_dataset_c_float_f_2 - MODULE PROCEDURE h5ltmake_dataset_c_float_f_3 - MODULE PROCEDURE h5ltmake_dataset_c_float_f_4 - MODULE PROCEDURE h5ltmake_dataset_c_float_f_5 - MODULE PROCEDURE h5ltmake_dataset_c_float_f_6 - MODULE PROCEDURE h5ltmake_dataset_c_float_f_7 - MODULE PROCEDURE h5ltmake_dataset_c_double_f_1 - MODULE PROCEDURE h5ltmake_dataset_c_double_f_2 - MODULE PROCEDURE h5ltmake_dataset_c_double_f_3 - MODULE PROCEDURE h5ltmake_dataset_c_double_f_4 - MODULE PROCEDURE h5ltmake_dataset_c_double_f_5 - MODULE PROCEDURE h5ltmake_dataset_c_double_f_6 - MODULE PROCEDURE h5ltmake_dataset_c_double_f_7 -#if FORTRAN_C_LONG_DOUBLE_IS_UNIQUE!=0 - MODULE PROCEDURE h5ltmake_dataset_c_long_double_f_1 - MODULE PROCEDURE h5ltmake_dataset_c_long_double_f_2 - MODULE PROCEDURE h5ltmake_dataset_c_long_double_f_3 - MODULE PROCEDURE h5ltmake_dataset_c_long_double_f_4 - MODULE PROCEDURE h5ltmake_dataset_c_long_double_f_5 - MODULE PROCEDURE h5ltmake_dataset_c_long_double_f_6 - MODULE PROCEDURE h5ltmake_dataset_c_long_double_f_7 -#endif - END INTERFACE - - INTERFACE h5ltmake_dataset_double_f - MODULE PROCEDURE h5ltmake_dataset_c_float_f_1 - MODULE PROCEDURE h5ltmake_dataset_c_float_f_2 - MODULE PROCEDURE h5ltmake_dataset_c_float_f_3 - MODULE PROCEDURE h5ltmake_dataset_c_float_f_4 - MODULE PROCEDURE h5ltmake_dataset_c_float_f_5 - MODULE PROCEDURE h5ltmake_dataset_c_float_f_6 - MODULE PROCEDURE h5ltmake_dataset_c_float_f_7 - MODULE PROCEDURE h5ltmake_dataset_c_double_f_1 - MODULE PROCEDURE h5ltmake_dataset_c_double_f_2 - MODULE PROCEDURE h5ltmake_dataset_c_double_f_3 - MODULE PROCEDURE h5ltmake_dataset_c_double_f_4 - MODULE PROCEDURE h5ltmake_dataset_c_double_f_5 - MODULE PROCEDURE h5ltmake_dataset_c_double_f_6 - MODULE PROCEDURE h5ltmake_dataset_c_double_f_7 -#if FORTRAN_C_LONG_DOUBLE_IS_UNIQUE!=0 - MODULE PROCEDURE h5ltmake_dataset_c_long_double_f_1 - MODULE PROCEDURE h5ltmake_dataset_c_long_double_f_2 - MODULE PROCEDURE h5ltmake_dataset_c_long_double_f_3 - MODULE PROCEDURE h5ltmake_dataset_c_long_double_f_4 - MODULE PROCEDURE h5ltmake_dataset_c_long_double_f_5 - MODULE PROCEDURE h5ltmake_dataset_c_long_double_f_6 - MODULE PROCEDURE h5ltmake_dataset_c_long_double_f_7 -#endif - END INTERFACE - INTERFACE h5ltread_dataset_int_f MODULE PROCEDURE h5ltread_dataset_int_f_1 MODULE PROCEDURE h5ltread_dataset_int_f_2 @@ -177,58 +79,6 @@ MODULE h5lt MODULE PROCEDURE h5ltread_dataset_int_f_7 END INTERFACE - INTERFACE h5ltread_dataset_float_f - MODULE PROCEDURE h5ltread_dataset_c_float_f_1 - MODULE PROCEDURE h5ltread_dataset_c_float_f_2 - MODULE PROCEDURE h5ltread_dataset_c_float_f_3 - MODULE PROCEDURE h5ltread_dataset_c_float_f_4 - MODULE PROCEDURE h5ltread_dataset_c_float_f_5 - MODULE PROCEDURE h5ltread_dataset_c_float_f_6 - MODULE PROCEDURE h5ltread_dataset_c_float_f_7 - MODULE PROCEDURE h5ltread_dataset_c_double_f_1 - MODULE PROCEDURE h5ltread_dataset_c_double_f_2 - MODULE PROCEDURE h5ltread_dataset_c_double_f_3 - MODULE PROCEDURE h5ltread_dataset_c_double_f_4 - MODULE PROCEDURE h5ltread_dataset_c_double_f_5 - MODULE PROCEDURE h5ltread_dataset_c_double_f_6 - MODULE PROCEDURE h5ltread_dataset_c_double_f_7 -#if FORTRAN_C_LONG_DOUBLE_IS_UNIQUE!=0 - MODULE PROCEDURE h5ltread_dataset_c_long_double_f_1 - MODULE PROCEDURE h5ltread_dataset_c_long_double_f_2 - MODULE PROCEDURE h5ltread_dataset_c_long_double_f_3 - MODULE PROCEDURE h5ltread_dataset_c_long_double_f_4 - MODULE PROCEDURE h5ltread_dataset_c_long_double_f_5 - MODULE PROCEDURE h5ltread_dataset_c_long_double_f_6 - MODULE PROCEDURE h5ltread_dataset_c_long_double_f_7 -#endif - END INTERFACE - - INTERFACE h5ltread_dataset_double_f - MODULE PROCEDURE h5ltread_dataset_c_float_f_1 - MODULE PROCEDURE h5ltread_dataset_c_float_f_2 - MODULE PROCEDURE h5ltread_dataset_c_float_f_3 - MODULE PROCEDURE h5ltread_dataset_c_float_f_4 - MODULE PROCEDURE h5ltread_dataset_c_float_f_5 - MODULE PROCEDURE h5ltread_dataset_c_float_f_6 - MODULE PROCEDURE h5ltread_dataset_c_float_f_7 - MODULE PROCEDURE h5ltread_dataset_c_double_f_1 - MODULE PROCEDURE h5ltread_dataset_c_double_f_2 - MODULE PROCEDURE h5ltread_dataset_c_double_f_3 - MODULE PROCEDURE h5ltread_dataset_c_double_f_4 - MODULE PROCEDURE h5ltread_dataset_c_double_f_5 - MODULE PROCEDURE h5ltread_dataset_c_double_f_6 - MODULE PROCEDURE h5ltread_dataset_c_double_f_7 -#if FORTRAN_C_LONG_DOUBLE_IS_UNIQUE!=0 - MODULE PROCEDURE h5ltread_dataset_c_long_double_f_1 - MODULE PROCEDURE h5ltread_dataset_c_long_double_f_2 - MODULE PROCEDURE h5ltread_dataset_c_long_double_f_3 - MODULE PROCEDURE h5ltread_dataset_c_long_double_f_4 - MODULE PROCEDURE h5ltread_dataset_c_long_double_f_5 - MODULE PROCEDURE h5ltread_dataset_c_long_double_f_6 - MODULE PROCEDURE h5ltread_dataset_c_long_double_f_7 -#endif - END INTERFACE - INTERFACE INTEGER FUNCTION h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & BIND(C,NAME='h5ltmake_dataset_c') @@ -527,16 +377,53 @@ CONTAINS END SUBROUTINE h5ltmake_dataset_f_int7 + !------------------------------------------------------------------------- - ! Function(s): h5ltmake_dataset_f_c_float(1-7) + ! Function(s): h5ltread_dataset_f_ptr ! - ! Purpose: Creates and writes a dataset of a type TYPE_ID + ! Purpose: Read a dataset of a type TYPE_ID + ! + ! Return: Success: 0, Failure: -1 + ! + ! Programmer: M. Scot Breitenfeld + ! + ! Date: Apr 29, 2015 + ! + ! Comments: + ! + ! Modifications: + ! + !------------------------------------------------------------------------- + + SUBROUTINE h5ltread_dataset_f_ptr(loc_id,& + dset_name,& + type_id,& + buf,& + errcode ) + + IMPLICIT NONE + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset + INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier + TYPE(C_PTR) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen + + namelen = LEN(dset_name) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id, buf) + + END SUBROUTINE h5ltread_dataset_f_ptr + + !------------------------------------------------------------------------- + ! Function(s): h5ltread_dataset_f_int(1-7) + ! + ! Purpose: Read a dataset of a type TYPE_ID ! ! Return: Success: 0, Failure: -1 ! ! Programmer: pvn@ncsa.uiuc.edu ! - ! Date: September 1, 2004 + ! Date: September 22, 2004 ! ! Comments: ! @@ -544,184 +431,209 @@ CONTAINS ! !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_f_c_float1(loc_id,& + SUBROUTINE h5ltread_dataset_f_int1(loc_id,& dset_name,& - rank,& - dims,& type_id,& buf,& + dims,& errcode ) IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - REAL(KIND=C_FLOAT), INTENT(in), DIMENSION(*), TARGET :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset + INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier + INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf + INTEGER, INTENT(inout), DIMENSION(*), TARGET :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen TYPE(C_PTR) :: f_ptr f_ptr = C_LOC(buf(1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - END SUBROUTINE h5ltmake_dataset_f_c_float1 + END SUBROUTINE h5ltread_dataset_f_int1 + + !------------------------------------------------------------------------- + ! Function: h5ltread_dataset_f_int2 + ! + ! Purpose: Read a dataset of a type TYPE_ID + ! + ! Return: Success: 0, Failure: -1 + ! + ! Programmer: pvn@ncsa.uiuc.edu + ! + ! Date: September 22, 2004 + ! + ! Comments: + ! + ! Modifications: + ! + !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_f_c_float2(loc_id,& + SUBROUTINE h5ltread_dataset_f_int2(loc_id,& dset_name,& - rank,& - dims,& type_id,& buf,& + dims,& errcode ) IMPLICIT NONE INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier + INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_FLOAT), INTENT(in), & - DIMENSION(dims(1),dims(2)), TARGET :: buf ! data buffer + INTEGER, INTENT(inout), & + DIMENSION(dims(1),dims(2)), TARGET :: buf TYPE(C_PTR) :: f_ptr f_ptr = C_LOC(buf(1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - END SUBROUTINE h5ltmake_dataset_f_c_float2 + END SUBROUTINE h5ltread_dataset_f_int2 - SUBROUTINE h5ltmake_dataset_f_c_float3(loc_id,& + SUBROUTINE h5ltread_dataset_f_int3(loc_id,& dset_name,& - rank,& - dims,& type_id,& buf,& + dims,& errcode ) IMPLICIT NONE INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier + INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_FLOAT), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf ! data buffer + INTEGER, INTENT(inout), & + DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf TYPE(C_PTR) :: f_ptr f_ptr = C_LOC(buf(1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - END SUBROUTINE h5ltmake_dataset_f_c_float3 + END SUBROUTINE h5ltread_dataset_f_int3 - SUBROUTINE h5ltmake_dataset_f_c_float4(loc_id, dset_name, rank, dims,& - type_id, buf, errcode ) + SUBROUTINE h5ltread_dataset_f_int4(loc_id, dset_name, type_id, buf, & + dims, errcode ) IMPLICIT NONE INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier + INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_FLOAT), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf ! data buffer + INTEGER, INTENT(inout), & + DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf TYPE(C_PTR) :: f_ptr f_ptr = C_LOC(buf(1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - END SUBROUTINE h5ltmake_dataset_f_c_float4 + END SUBROUTINE h5ltread_dataset_f_int4 - SUBROUTINE h5ltmake_dataset_f_c_float5(loc_id, dset_name, rank, dims,& - type_id, buf, errcode ) + SUBROUTINE h5ltread_dataset_f_int5(loc_id, dset_name, type_id, buf, & + dims, errcode ) IMPLICIT NONE INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier + INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_FLOAT), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf ! data buffer + INTEGER, INTENT(inout), & + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf TYPE(C_PTR) :: f_ptr f_ptr = C_LOC(buf(1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - END SUBROUTINE h5ltmake_dataset_f_c_float5 + END SUBROUTINE h5ltread_dataset_f_int5 - SUBROUTINE h5ltmake_dataset_f_c_float6(loc_id, dset_name, rank, dims,& - type_id, buf, errcode ) + !------------------------------------------------------------------------- + ! Function: h5ltread_dataset_f_int6 + ! + ! Purpose: Read a dataset of a type TYPE_ID + ! + ! Return: Success: 0, Failure: -1 + ! + ! Programmer: M. Scot Breitenfeld + ! + ! Date: March 12, 2011 + ! + ! Comments: + ! + ! Modifications: + ! + !------------------------------------------------------------------------- + + SUBROUTINE h5ltread_dataset_f_int6(loc_id, dset_name, type_id, buf, & + dims, errcode ) IMPLICIT NONE INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier + INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_FLOAT), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf ! data buffer + INTEGER, INTENT(inout), & + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf TYPE(C_PTR) :: f_ptr f_ptr = C_LOC(buf(1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - END SUBROUTINE h5ltmake_dataset_f_c_float6 + END SUBROUTINE h5ltread_dataset_f_int6 - SUBROUTINE h5ltmake_dataset_f_c_float7(loc_id, dset_name, rank, dims,& - type_id, buf, errcode ) + SUBROUTINE h5ltread_dataset_f_int7(loc_id, dset_name, type_id, buf, & + dims, errcode ) IMPLICIT NONE INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier + INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_FLOAT), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf ! data buffer + INTEGER, INTENT(inout), & + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf TYPE(C_PTR) :: f_ptr f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) + + END SUBROUTINE h5ltread_dataset_f_int7 - END SUBROUTINE h5ltmake_dataset_f_c_float7 !------------------------------------------------------------------------- - ! Function(s): h5ltmake_dataset_f_c_double(1-7) + ! Function: h5ltmake_dataset_int_f_1 ! - ! Purpose: Creates and writes a dataset of a type TYPE_ID + ! Purpose: Creates and writes a dataset of H5T_NATIVE_INT type ! ! Return: Success: 0, Failure: -1 ! ! Programmer: pvn@ncsa.uiuc.edu ! - ! Date: September 1, 2004 + ! Date: September 22, 2004 ! ! Comments: ! @@ -729,11 +641,10 @@ CONTAINS ! !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_f_c_double1(loc_id,& + SUBROUTINE h5ltmake_dataset_int_f_1 (loc_id,& dset_name,& rank,& dims,& - type_id,& buf,& errcode ) @@ -742,24 +653,22 @@ CONTAINS CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset INTEGER, INTENT(in) :: rank ! rank INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - REAL(KIND=C_DOUBLE), INTENT(in), DIMENSION(*), TARGET :: buf ! data buffer + INTEGER, INTENT(in), DIMENSION(*), TARGET :: buf ! data buffer INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen ! name length TYPE(C_PTR) :: f_ptr - + f_ptr = C_LOC(buf(1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,h5t_native_integer,f_ptr) - END SUBROUTINE h5ltmake_dataset_f_c_double1 + END SUBROUTINE h5ltmake_dataset_int_f_1 - SUBROUTINE h5ltmake_dataset_f_c_double2(loc_id,& + SUBROUTINE h5ltmake_dataset_int_f_2 (loc_id,& dset_name,& rank,& dims,& - type_id,& buf,& errcode ) @@ -768,25 +677,23 @@ CONTAINS CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset INTEGER, INTENT(in) :: rank ! rank INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2)), TARGET :: buf ! data buffer + INTEGER, INTENT(in), & + DIMENSION(dims(1),dims(2)), TARGET :: buf TYPE(C_PTR) :: f_ptr f_ptr = C_LOC(buf(1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,f_ptr) - END SUBROUTINE h5ltmake_dataset_f_c_double2 + END SUBROUTINE h5ltmake_dataset_int_f_2 - SUBROUTINE h5ltmake_dataset_f_c_double3(loc_id,& + SUBROUTINE h5ltmake_dataset_int_f_3 (loc_id,& dset_name,& rank,& dims,& - type_id,& buf,& errcode ) @@ -795,2105 +702,107 @@ CONTAINS CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset INTEGER, INTENT(in) :: rank ! rank INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_DOUBLE), INTENT(in), & + INTEGER, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf TYPE(C_PTR) :: f_ptr f_ptr = C_LOC(buf(1,1,1)) + namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,f_ptr) - END SUBROUTINE h5ltmake_dataset_f_c_double3 + END SUBROUTINE h5ltmake_dataset_int_f_3 - SUBROUTINE h5ltmake_dataset_f_c_double4(loc_id, dset_name, rank, dims, & - type_id, buf, errcode ) + SUBROUTINE h5ltmake_dataset_int_f_4(loc_id, dset_name, rank, dims, & + buf, errcode ) IMPLICIT NONE INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset INTEGER, INTENT(in) :: rank ! rank INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3), dims(4)), TARGET :: buf + INTEGER, INTENT(in), & + DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf TYPE(C_PTR) :: f_ptr f_ptr = C_LOC(buf(1,1,1,1)) + namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,f_ptr) - END SUBROUTINE h5ltmake_dataset_f_c_double4 + END SUBROUTINE h5ltmake_dataset_int_f_4 - SUBROUTINE h5ltmake_dataset_f_c_double5(loc_id, dset_name, rank, dims, & - type_id, buf, errcode ) + SUBROUTINE h5ltmake_dataset_int_f_5(loc_id, dset_name, rank, dims, & + buf, errcode ) IMPLICIT NONE INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset INTEGER, INTENT(in) :: rank ! rank INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_DOUBLE), INTENT(in), & + INTEGER, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf TYPE(C_PTR) :: f_ptr f_ptr = C_LOC(buf(1,1,1,1,1)) + namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,f_ptr) - END SUBROUTINE h5ltmake_dataset_f_c_double5 + END SUBROUTINE h5ltmake_dataset_int_f_5 + + SUBROUTINE h5ltmake_dataset_int_f_6(loc_id, dset_name, rank, dims, & + buf, errcode ) - SUBROUTINE h5ltmake_dataset_f_c_double6(loc_id, dset_name, rank, dims, & - type_id, buf, errcode ) - IMPLICIT NONE INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset INTEGER, INTENT(in) :: rank ! rank INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_DOUBLE), INTENT(in), & + INTEGER, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf TYPE(C_PTR) :: f_ptr f_ptr = C_LOC(buf(1,1,1,1,1,1)) + namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,f_ptr) - END SUBROUTINE h5ltmake_dataset_f_c_double6 + END SUBROUTINE h5ltmake_dataset_int_f_6 - SUBROUTINE h5ltmake_dataset_f_c_double7(loc_id, dset_name, rank, dims, & - type_id, buf, errcode ) + SUBROUTINE h5ltmake_dataset_int_f_7(loc_id, dset_name, rank, dims, & + buf, errcode ) IMPLICIT NONE INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset INTEGER, INTENT(in) :: rank ! rank INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_DOUBLE), INTENT(in), & + INTEGER(size_t) :: namelen ! name length + INTEGER, INTENT(in), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf TYPE(C_PTR) :: f_ptr f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) + namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,f_ptr) - END SUBROUTINE h5ltmake_dataset_f_c_double7 + END SUBROUTINE h5ltmake_dataset_int_f_7 -#if FORTRAN_C_LONG_DOUBLE_IS_UNIQUE!=0 !------------------------------------------------------------------------- - ! Function(s): h5ltmake_dataset_f_c_long_double(1-7) + ! Function(s): h5ltread_dataset_int_f_(1-7) ! - ! Purpose: Creates and writes a dataset of a type TYPE_ID - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: pvn@ncsa.uiuc.edu - ! - ! Date: September 1, 2004 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - - SUBROUTINE h5ltmake_dataset_f_c_long_double1(loc_id,& - dset_name,& - rank,& - dims,& - type_id,& - buf,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - REAL(KIND=C_LONG_DOUBLE), INTENT(in), DIMENSION(*), TARGET :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1)) - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) - - END SUBROUTINE h5ltmake_dataset_f_c_long_double1 - - SUBROUTINE h5ltmake_dataset_f_c_long_double2(loc_id,& - dset_name,& - rank,& - dims,& - type_id,& - buf,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1)) - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) - - END SUBROUTINE h5ltmake_dataset_f_c_long_double2 - - SUBROUTINE h5ltmake_dataset_f_c_long_double3(loc_id,& - dset_name,& - rank,& - dims,& - type_id,& - buf,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1)) - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) - - END SUBROUTINE h5ltmake_dataset_f_c_long_double3 - - SUBROUTINE h5ltmake_dataset_f_c_long_double4(loc_id, dset_name, rank, dims, & - type_id, buf, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3), dims(4)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1)) - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) - - END SUBROUTINE h5ltmake_dataset_f_c_long_double4 - - SUBROUTINE h5ltmake_dataset_f_c_long_double5(loc_id, dset_name, rank, dims, & - type_id, buf, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1)) - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) - - END SUBROUTINE h5ltmake_dataset_f_c_long_double5 - SUBROUTINE h5ltmake_dataset_f_c_long_double6(loc_id, dset_name, rank, dims, & - type_id, buf, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1,1)) - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) - - END SUBROUTINE h5ltmake_dataset_f_c_long_double6 - - SUBROUTINE h5ltmake_dataset_f_c_long_double7(loc_id, dset_name, rank, dims, & - type_id, buf, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) - - END SUBROUTINE h5ltmake_dataset_f_c_long_double7 - -#endif - !------------------------------------------------------------------------- - ! Function(s): h5ltread_dataset_f_ptr - ! - ! Purpose: Read a dataset of a type TYPE_ID - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: Apr 29, 2015 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - - SUBROUTINE h5ltread_dataset_f_ptr(loc_id,& - dset_name,& - type_id,& - buf,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - TYPE(C_PTR) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id, buf) - - END SUBROUTINE h5ltread_dataset_f_ptr - - !------------------------------------------------------------------------- - ! Function(s): h5ltread_dataset_f_int(1-7) - ! - ! Purpose: Read a dataset of a type TYPE_ID - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: pvn@ncsa.uiuc.edu - ! - ! Date: September 22, 2004 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - - SUBROUTINE h5ltread_dataset_f_int1(loc_id,& - dset_name,& - type_id,& - buf,& - dims,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER, INTENT(inout), DIMENSION(*), TARGET :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - - END SUBROUTINE h5ltread_dataset_f_int1 - - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_f_int2 - ! - ! Purpose: Read a dataset of a type TYPE_ID - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: pvn@ncsa.uiuc.edu - ! - ! Date: September 22, 2004 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - - SUBROUTINE h5ltread_dataset_f_int2(loc_id,& - dset_name,& - type_id,& - buf,& - dims,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER, INTENT(inout), & - DIMENSION(dims(1),dims(2)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - - END SUBROUTINE h5ltread_dataset_f_int2 - - SUBROUTINE h5ltread_dataset_f_int3(loc_id,& - dset_name,& - type_id,& - buf,& - dims,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER, INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - - END SUBROUTINE h5ltread_dataset_f_int3 - - SUBROUTINE h5ltread_dataset_f_int4(loc_id, dset_name, type_id, buf, & - dims, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER, INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - - END SUBROUTINE h5ltread_dataset_f_int4 - - SUBROUTINE h5ltread_dataset_f_int5(loc_id, dset_name, type_id, buf, & - dims, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER, INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - - END SUBROUTINE h5ltread_dataset_f_int5 - - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_f_int6 - ! - ! Purpose: Read a dataset of a type TYPE_ID - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 12, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - - SUBROUTINE h5ltread_dataset_f_int6(loc_id, dset_name, type_id, buf, & - dims, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER, INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - - END SUBROUTINE h5ltread_dataset_f_int6 - - SUBROUTINE h5ltread_dataset_f_int7(loc_id, dset_name, type_id, buf, & - dims, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER, INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - - END SUBROUTINE h5ltread_dataset_f_int7 - - - !------------------------------------------------------------------------- - ! Function(s): h5ltread_dataset_f_c_float(1-7) - ! - ! Purpose: Read a dataset of a type TYPE_ID - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: pvn@ncsa.uiuc.edu - ! - ! Date: September 22, 2004 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - - SUBROUTINE h5ltread_dataset_f_c_float1(loc_id,& - dset_name,& - type_id,& - buf,& - dims,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_FLOAT), INTENT(inout), DIMENSION(*), TARGET :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - - END SUBROUTINE h5ltread_dataset_f_c_float1 - - SUBROUTINE h5ltread_dataset_f_c_float2(loc_id,& - dset_name,& - type_id,& - buf,& - dims,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_FLOAT), INTENT(inout), & - DIMENSION(dims(1),dims(2)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - - END SUBROUTINE h5ltread_dataset_f_c_float2 - - SUBROUTINE h5ltread_dataset_f_c_float3(loc_id,& - dset_name,& - type_id,& - buf,& - dims,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_FLOAT), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - - END SUBROUTINE h5ltread_dataset_f_c_float3 - - SUBROUTINE h5ltread_dataset_f_c_float4(loc_id, dset_name, type_id, buf, & - dims, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_FLOAT), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - - END SUBROUTINE h5ltread_dataset_f_c_float4 - - SUBROUTINE h5ltread_dataset_f_c_float5(loc_id, dset_name, type_id, buf, & - dims, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_FLOAT), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - - END SUBROUTINE h5ltread_dataset_f_c_float5 - - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_f_c_float6 - ! - ! Purpose: Read a dataset of a type TYPE_ID - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - - SUBROUTINE h5ltread_dataset_f_c_float6(loc_id, dset_name, type_id, buf, & - dims, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_FLOAT), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - - END SUBROUTINE h5ltread_dataset_f_c_float6 - - SUBROUTINE h5ltread_dataset_f_c_float7(loc_id, dset_name, type_id, buf, & - dims, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_FLOAT), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - - END SUBROUTINE h5ltread_dataset_f_c_float7 - - - !------------------------------------------------------------------------- - ! Function(s): h5ltread_dataset_f_c_double(1-7) - ! - ! Purpose: Read a dataset of a type TYPE_ID - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: pvn@ncsa.uiuc.edu - ! - ! Date: September 22, 2004 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - - SUBROUTINE h5ltread_dataset_f_c_double1(loc_id,& - dset_name,& - type_id,& - buf,& - dims,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_DOUBLE), INTENT(inout), DIMENSION(*), TARGET :: buf! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - - END SUBROUTINE h5ltread_dataset_f_c_double1 - - SUBROUTINE h5ltread_dataset_f_c_double2(loc_id,& - dset_name,& - type_id,& - buf,& - dims,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - - END SUBROUTINE h5ltread_dataset_f_c_double2 - - SUBROUTINE h5ltread_dataset_f_c_double3(loc_id,& - dset_name,& - type_id,& - buf,& - dims,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - - END SUBROUTINE h5ltread_dataset_f_c_double3 - - SUBROUTINE h5ltread_dataset_f_c_double4(loc_id, dset_name, type_id, buf, & - dims, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - - END SUBROUTINE h5ltread_dataset_f_c_double4 - - SUBROUTINE h5ltread_dataset_f_c_double5(loc_id, dset_name, type_id, buf, & - dims, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - - END SUBROUTINE h5ltread_dataset_f_c_double5 - - SUBROUTINE h5ltread_dataset_f_c_double6(loc_id, dset_name, type_id, buf, & - dims, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - - END SUBROUTINE h5ltread_dataset_f_c_double6 - - SUBROUTINE h5ltread_dataset_f_c_double7(loc_id, dset_name, type_id, buf, & - dims, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - - END SUBROUTINE h5ltread_dataset_f_c_double7 -#if FORTRAN_C_LONG_DOUBLE_IS_UNIQUE!=0 - !------------------------------------------------------------------------- - ! Function(s): h5ltread_dataset_f_c_long_double(1-7) - ! - ! Purpose: Read a dataset of a type TYPE_ID - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: pvn@ncsa.uiuc.edu - ! - ! Date: September 22, 2004 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - - SUBROUTINE h5ltread_dataset_f_c_long_double1(loc_id,& - dset_name,& - type_id,& - buf,& - dims,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_LONG_DOUBLE), INTENT(inout), DIMENSION(*), TARGET :: buf! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - - END SUBROUTINE h5ltread_dataset_f_c_long_double1 - - SUBROUTINE h5ltread_dataset_f_c_long_double2(loc_id,& - dset_name,& - type_id,& - buf,& - dims,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_LONG_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - - END SUBROUTINE h5ltread_dataset_f_c_long_double2 - - SUBROUTINE h5ltread_dataset_f_c_long_double3(loc_id,& - dset_name,& - type_id,& - buf,& - dims,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_LONG_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - - END SUBROUTINE h5ltread_dataset_f_c_long_double3 - - SUBROUTINE h5ltread_dataset_f_c_long_double4(loc_id, dset_name, type_id, buf, & - dims, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_LONG_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - - END SUBROUTINE h5ltread_dataset_f_c_long_double4 - - SUBROUTINE h5ltread_dataset_f_c_long_double5(loc_id, dset_name, type_id, buf, & - dims, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_LONG_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - - END SUBROUTINE h5ltread_dataset_f_c_long_double5 - - SUBROUTINE h5ltread_dataset_f_c_long_double6(loc_id, dset_name, type_id, buf, & - dims, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_LONG_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - - END SUBROUTINE h5ltread_dataset_f_c_long_double6 - - SUBROUTINE h5ltread_dataset_f_c_long_double7(loc_id, dset_name, type_id, buf, & - dims, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_LONG_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr) - - END SUBROUTINE h5ltread_dataset_f_c_long_double7 -#endif - - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_int_f_1 - ! - ! Purpose: Creates and writes a dataset of H5T_NATIVE_INT type - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: pvn@ncsa.uiuc.edu - ! - ! Date: September 22, 2004 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - - SUBROUTINE h5ltmake_dataset_int_f_1 (loc_id,& - dset_name,& - rank,& - dims,& - buf,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER, INTENT(in), DIMENSION(*), TARGET :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1)) - - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,h5t_native_integer,f_ptr) - - END SUBROUTINE h5ltmake_dataset_int_f_1 - - SUBROUTINE h5ltmake_dataset_int_f_2 (loc_id,& - dset_name,& - rank,& - dims,& - buf,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER, INTENT(in), & - DIMENSION(dims(1),dims(2)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1)) - - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,f_ptr) - - END SUBROUTINE h5ltmake_dataset_int_f_2 - - SUBROUTINE h5ltmake_dataset_int_f_3 (loc_id,& - dset_name,& - rank,& - dims,& - buf,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER, INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,f_ptr) - - END SUBROUTINE h5ltmake_dataset_int_f_3 - - SUBROUTINE h5ltmake_dataset_int_f_4(loc_id, dset_name, rank, dims, & - buf, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER, INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,f_ptr) - - END SUBROUTINE h5ltmake_dataset_int_f_4 - - SUBROUTINE h5ltmake_dataset_int_f_5(loc_id, dset_name, rank, dims, & - buf, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER, INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,f_ptr) - - END SUBROUTINE h5ltmake_dataset_int_f_5 - - SUBROUTINE h5ltmake_dataset_int_f_6(loc_id, dset_name, rank, dims, & - buf, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER, INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,f_ptr) - - END SUBROUTINE h5ltmake_dataset_int_f_6 - - SUBROUTINE h5ltmake_dataset_int_f_7(loc_id, dset_name, rank, dims, & - buf, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER, INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,f_ptr) - - END SUBROUTINE h5ltmake_dataset_int_f_7 - - !------------------------------------------------------------------------- - ! Function(s): h5ltmake_dataset_c_float_f_(1-7) - ! - ! Purpose: Creates and writes a dataset of H5T_NATIVE_REAL type - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: pvn@ncsa.uiuc.edu - ! - ! Date: September 22, 2004 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - - SUBROUTINE h5ltmake_dataset_c_float_f_1 (loc_id,& - dset_name,& - rank,& - dims,& - buf,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_FLOAT), INTENT(in), DIMENSION(*), TARGET :: buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1)) - - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,f_ptr) - - END SUBROUTINE h5ltmake_dataset_c_float_f_1 - - SUBROUTINE h5ltmake_dataset_c_float_f_2 (loc_id,& - dset_name,& - rank,& - dims,& - buf,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_FLOAT), INTENT(in), & - DIMENSION(dims(1),dims(2)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1)) - - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,f_ptr) - - END SUBROUTINE h5ltmake_dataset_c_float_f_2 - - SUBROUTINE h5ltmake_dataset_c_float_f_3 (loc_id,& - dset_name,& - rank,& - dims,& - buf,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_FLOAT), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,f_ptr) - - END SUBROUTINE h5ltmake_dataset_c_float_f_3 - - SUBROUTINE h5ltmake_dataset_c_float_f_4 (loc_id, dset_name, rank, dims, & - buf, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_FLOAT), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,f_ptr) - - END SUBROUTINE h5ltmake_dataset_c_float_f_4 - - SUBROUTINE h5ltmake_dataset_c_float_f_5 (loc_id, dset_name, rank, dims, & - buf, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_FLOAT), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,f_ptr) - - END SUBROUTINE h5ltmake_dataset_c_float_f_5 - - SUBROUTINE h5ltmake_dataset_c_float_f_6 (loc_id, dset_name, rank, dims, & - buf, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_FLOAT), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,f_ptr) - - END SUBROUTINE h5ltmake_dataset_c_float_f_6 - - SUBROUTINE h5ltmake_dataset_c_float_f_7 (loc_id, dset_name, rank, dims, & - buf, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_FLOAT), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,f_ptr) - - END SUBROUTINE h5ltmake_dataset_c_float_f_7 - - !------------------------------------------------------------------------- - ! Function9s): h5ltmake_dataset_c_double_f_(1-7) - ! - ! Purpose: Creates and writes a dataset of H5T_NATIVE_DOUBLE type - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: pvn@ncsa.uiuc.edu - ! - ! Date: September 22, 2004 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - - SUBROUTINE h5ltmake_dataset_c_double_f_1 (loc_id,& - dset_name,& - rank,& - dims,& - buf,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_DOUBLE), INTENT(in), & - DIMENSION(dims(1)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1)) - - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,f_ptr) - - END SUBROUTINE h5ltmake_dataset_c_double_f_1 - - SUBROUTINE h5ltmake_dataset_c_double_f_2 (loc_id,& - dset_name,& - rank,& - dims,& - buf,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1)) - - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,f_ptr) - - END SUBROUTINE h5ltmake_dataset_c_double_f_2 - - SUBROUTINE h5ltmake_dataset_c_double_f_3 (loc_id,& - dset_name,& - rank,& - dims,& - buf,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,f_ptr) - - END SUBROUTINE h5ltmake_dataset_c_double_f_3 - - SUBROUTINE h5ltmake_dataset_c_double_f_4 (loc_id, dset_name, rank, dims,& - buf, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,f_ptr) - - END SUBROUTINE h5ltmake_dataset_c_double_f_4 - - SUBROUTINE h5ltmake_dataset_c_double_f_5 (loc_id, dset_name, rank, dims,& - buf, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,f_ptr) - - END SUBROUTINE h5ltmake_dataset_c_double_f_5 - - SUBROUTINE h5ltmake_dataset_c_double_f_6 (loc_id, dset_name, rank, dims,& - buf, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,f_ptr) - - END SUBROUTINE h5ltmake_dataset_c_double_f_6 - - SUBROUTINE h5ltmake_dataset_c_double_f_7 (loc_id, dset_name, rank, dims,& - buf, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,f_ptr) - - END SUBROUTINE h5ltmake_dataset_c_double_f_7 - -#if FORTRAN_C_LONG_DOUBLE_IS_UNIQUE!=0 - !------------------------------------------------------------------------- - ! Function(s): h5ltmake_dataset_c_long_double_f_(1-7) - ! - ! Purpose: Creates and writes a dataset of H5T_NATIVE_DOUBLE type - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: pvn@ncsa.uiuc.edu - ! - ! Date: September 22, 2004 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - - SUBROUTINE h5ltmake_dataset_c_long_double_f_1 (loc_id,& - dset_name,& - rank,& - dims,& - buf,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1)) - - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,f_ptr) - - END SUBROUTINE h5ltmake_dataset_c_long_double_f_1 - - SUBROUTINE h5ltmake_dataset_c_long_double_f_2 (loc_id,& - dset_name,& - rank,& - dims,& - buf,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1)) - - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,f_ptr) - - END SUBROUTINE h5ltmake_dataset_c_long_double_f_2 - - SUBROUTINE h5ltmake_dataset_c_long_double_f_3 (loc_id,& - dset_name,& - rank,& - dims,& - buf,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,f_ptr) - - END SUBROUTINE h5ltmake_dataset_c_long_double_f_3 - - SUBROUTINE h5ltmake_dataset_c_long_double_f_4 (loc_id, dset_name, rank, dims,& - buf, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,f_ptr) - - END SUBROUTINE h5ltmake_dataset_c_long_double_f_4 - - SUBROUTINE h5ltmake_dataset_c_long_double_f_5 (loc_id, dset_name, rank, dims,& - buf, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,f_ptr) - - END SUBROUTINE h5ltmake_dataset_c_long_double_f_5 - - SUBROUTINE h5ltmake_dataset_c_long_double_f_6 (loc_id, dset_name, rank, dims,& - buf, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,f_ptr) - - END SUBROUTINE h5ltmake_dataset_c_long_double_f_6 - - SUBROUTINE h5ltmake_dataset_c_long_double_f_7 (loc_id, dset_name, rank, dims,& - buf, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: rank ! rank - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,f_ptr) - - END SUBROUTINE h5ltmake_dataset_c_long_double_f_7 -#endif - - !------------------------------------------------------------------------- - ! Function(s): h5ltread_dataset_int_f_(1-7) - ! - ! Purpose: Read a dataset - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: pvn@ncsa.uiuc.edu - ! - ! Date: September 22, 2004 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - - SUBROUTINE h5ltread_dataset_int_f_1(loc_id,& - dset_name,& - buf,& - dims,& - errcode ) - - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER, INTENT(inout), & - DIMENSION(dims(1)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,f_ptr) - - END SUBROUTINE h5ltread_dataset_int_f_1 - - SUBROUTINE h5ltread_dataset_int_f_2(loc_id,& - dset_name,& - buf,& - dims,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER, INTENT(inout), & - DIMENSION(dims(1),dims(2)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,f_ptr) - - END SUBROUTINE h5ltread_dataset_int_f_2 - - SUBROUTINE h5ltread_dataset_int_f_3(loc_id,& - dset_name,& - buf,& - dims,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER, INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,f_ptr) - - END SUBROUTINE h5ltread_dataset_int_f_3 - - SUBROUTINE h5ltread_dataset_int_f_4(loc_id, dset_name, buf, dims, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER, INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,f_ptr) - - END SUBROUTINE h5ltread_dataset_int_f_4 - - SUBROUTINE h5ltread_dataset_int_f_5(loc_id, dset_name, buf, dims, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER, INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,f_ptr) - - END SUBROUTINE h5ltread_dataset_int_f_5 - - SUBROUTINE h5ltread_dataset_int_f_6(loc_id, dset_name, buf, dims, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER, INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,f_ptr) - - END SUBROUTINE h5ltread_dataset_int_f_6 - - SUBROUTINE h5ltread_dataset_int_f_7(loc_id, dset_name, buf, dims, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER, INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,f_ptr) - - END SUBROUTINE h5ltread_dataset_int_f_7 - - - !------------------------------------------------------------------------- - ! Function(s): h5ltread_dataset_c_float_f_(1-7) - ! - ! Purpose: Read a dataset - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: pvn@ncsa.uiuc.edu - ! - ! Date: September 22, 2004 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - - SUBROUTINE h5ltread_dataset_c_float_f_1(loc_id,& - dset_name,& - buf,& - dims,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_FLOAT), INTENT(inout), & - DIMENSION(dims(1)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,f_ptr) - - END SUBROUTINE h5ltread_dataset_c_float_f_1 - - SUBROUTINE h5ltread_dataset_c_float_f_2(loc_id,& - dset_name,& - buf,& - dims,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_FLOAT), INTENT(inout), & - DIMENSION(dims(1),dims(2)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,f_ptr) - - END SUBROUTINE h5ltread_dataset_c_float_f_2 - - SUBROUTINE h5ltread_dataset_c_float_f_3(loc_id,& - dset_name,& - buf,& - dims,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_FLOAT), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,f_ptr) - - END SUBROUTINE h5ltread_dataset_c_float_f_3 - - SUBROUTINE h5ltread_dataset_c_float_f_4(loc_id, dset_name, buf, dims, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_FLOAT), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,f_ptr) - - END SUBROUTINE h5ltread_dataset_c_float_f_4 - - SUBROUTINE h5ltread_dataset_c_float_f_5(loc_id, dset_name, buf, dims, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_FLOAT), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,f_ptr) - - END SUBROUTINE h5ltread_dataset_c_float_f_5 - - SUBROUTINE h5ltread_dataset_c_float_f_6(loc_id, dset_name, buf, dims, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_FLOAT), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,f_ptr) - - END SUBROUTINE h5ltread_dataset_c_float_f_6 - - SUBROUTINE h5ltread_dataset_c_float_f_7(loc_id, dset_name, buf, dims, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_FLOAT), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,f_ptr) - - END SUBROUTINE h5ltread_dataset_c_float_f_7 - - !------------------------------------------------------------------------- - ! Function(s): h5ltread_dataset_c_double_f_(1-7) - ! - ! Purpose: Read a dataset + ! Purpose: Read a dataset ! ! Return: Success: 0, Failure: -1 ! @@ -2907,30 +816,30 @@ CONTAINS ! !------------------------------------------------------------------------- - SUBROUTINE h5ltread_dataset_c_double_f_1(loc_id,& + SUBROUTINE h5ltread_dataset_int_f_1(loc_id,& dset_name,& buf,& dims,& errcode ) IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + INTEGER(HID_T), INTENT(IN) :: loc_id ! file or group identifier CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_DOUBLE), INTENT(inout), & + INTEGER, INTENT(inout), & DIMENSION(dims(1)), TARGET :: buf TYPE(C_PTR) :: f_ptr f_ptr = C_LOC(buf(1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,f_ptr) - END SUBROUTINE h5ltread_dataset_c_double_f_1 + END SUBROUTINE h5ltread_dataset_int_f_1 - SUBROUTINE h5ltread_dataset_c_double_f_2(loc_id,& + SUBROUTINE h5ltread_dataset_int_f_2(loc_id,& dset_name,& buf,& dims,& @@ -2942,18 +851,18 @@ CONTAINS INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_DOUBLE), INTENT(inout), & + INTEGER, INTENT(inout), & DIMENSION(dims(1),dims(2)), TARGET :: buf TYPE(C_PTR) :: f_ptr f_ptr = C_LOC(buf(1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,f_ptr) - END SUBROUTINE h5ltread_dataset_c_double_f_2 + END SUBROUTINE h5ltread_dataset_int_f_2 - SUBROUTINE h5ltread_dataset_c_double_f_3(loc_id,& + SUBROUTINE h5ltread_dataset_int_f_3(loc_id,& dset_name,& buf,& dims,& @@ -2965,18 +874,18 @@ CONTAINS INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_DOUBLE), INTENT(inout), & + INTEGER, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf TYPE(C_PTR) :: f_ptr f_ptr = C_LOC(buf(1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,f_ptr) - END SUBROUTINE h5ltread_dataset_c_double_f_3 + END SUBROUTINE h5ltread_dataset_int_f_3 - SUBROUTINE h5ltread_dataset_c_double_f_4(loc_id, dset_name, buf, dims, errcode ) + SUBROUTINE h5ltread_dataset_int_f_4(loc_id, dset_name, buf, dims, errcode ) IMPLICIT NONE INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier @@ -2984,18 +893,18 @@ CONTAINS INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_DOUBLE), INTENT(inout), & + INTEGER, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf TYPE(C_PTR) :: f_ptr f_ptr = C_LOC(buf(1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,f_ptr) - END SUBROUTINE h5ltread_dataset_c_double_f_4 + END SUBROUTINE h5ltread_dataset_int_f_4 - SUBROUTINE h5ltread_dataset_c_double_f_5(loc_id, dset_name, buf, dims, errcode ) + SUBROUTINE h5ltread_dataset_int_f_5(loc_id, dset_name, buf, dims, errcode ) IMPLICIT NONE INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier @@ -3003,18 +912,18 @@ CONTAINS INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_DOUBLE), INTENT(inout), & + INTEGER, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf TYPE(C_PTR) :: f_ptr f_ptr = C_LOC(buf(1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,f_ptr) - END SUBROUTINE h5ltread_dataset_c_double_f_5 + END SUBROUTINE h5ltread_dataset_int_f_5 - SUBROUTINE h5ltread_dataset_c_double_f_6(loc_id, dset_name, buf, dims, errcode ) + SUBROUTINE h5ltread_dataset_int_f_6(loc_id, dset_name, buf, dims, errcode ) IMPLICIT NONE INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier @@ -3022,162 +931,18 @@ CONTAINS INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_DOUBLE), INTENT(inout), & + INTEGER, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf TYPE(C_PTR) :: f_ptr f_ptr = C_LOC(buf(1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr) - - END SUBROUTINE h5ltread_dataset_c_double_f_6 - - SUBROUTINE h5ltread_dataset_c_double_f_7(loc_id, dset_name, buf, dims, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr) - - END SUBROUTINE h5ltread_dataset_c_double_f_7 - -#if FORTRAN_C_LONG_DOUBLE_IS_UNIQUE!=0 - !------------------------------------------------------------------------- - ! Function9s): h5ltread_dataset_c_long_double_f_(1-7) - ! - ! Purpose: Read a dataset - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: pvn@ncsa.uiuc.edu - ! - ! Date: September 22, 2004 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - - SUBROUTINE h5ltread_dataset_c_long_double_f_1(loc_id,& - dset_name,& - buf,& - dims,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_LONG_DOUBLE), INTENT(inout), & - DIMENSION(dims(1)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr) - - END SUBROUTINE h5ltread_dataset_c_long_double_f_1 - - SUBROUTINE h5ltread_dataset_c_long_double_f_2(loc_id,& - dset_name,& - buf,& - dims,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_LONG_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr) - - END SUBROUTINE h5ltread_dataset_c_long_double_f_2 - - SUBROUTINE h5ltread_dataset_c_long_double_f_3(loc_id,& - dset_name,& - buf,& - dims,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_LONG_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr) - - END SUBROUTINE h5ltread_dataset_c_long_double_f_3 - - SUBROUTINE h5ltread_dataset_c_long_double_f_4(loc_id, dset_name, buf, dims, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_LONG_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr) - - END SUBROUTINE h5ltread_dataset_c_long_double_f_4 - - SUBROUTINE h5ltread_dataset_c_long_double_f_5(loc_id, dset_name, buf, dims, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_LONG_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,f_ptr) - END SUBROUTINE h5ltread_dataset_c_long_double_f_5 + END SUBROUTINE h5ltread_dataset_int_f_6 - SUBROUTINE h5ltread_dataset_c_long_double_f_6(loc_id, dset_name, buf, dims, errcode ) + SUBROUTINE h5ltread_dataset_int_f_7(loc_id, dset_name, buf, dims, errcode ) IMPLICIT NONE INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier @@ -3185,36 +950,17 @@ CONTAINS INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_LONG_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1,1,1,1,1,1)) - - namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr) - - END SUBROUTINE h5ltread_dataset_c_long_double_f_6 - - SUBROUTINE h5ltread_dataset_c_long_double_f_7(loc_id, dset_name, buf, dims, errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - REAL(KIND=C_LONG_DOUBLE), INTENT(inout), & + INTEGER, INTENT(inout), & DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf TYPE(C_PTR) :: f_ptr f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,f_ptr) + + END SUBROUTINE h5ltread_dataset_int_f_7 - END SUBROUTINE h5ltread_dataset_c_long_double_f_7 -#endif !------------------------------------------------------------------------- ! Function: h5ltmake_dataset_string_f @@ -4157,7 +1903,7 @@ CONTAINS END SUBROUTINE h5ltpath_valid_f -END MODULE H5LT +END MODULE H5LT_CONST diff --git a/hl/fortran/src/H5TBff.F90 b/hl/fortran/src/H5TBff.F90 index 50eab2d..448d607 100644 --- a/hl/fortran/src/H5TBff.F90 +++ b/hl/fortran/src/H5TBff.F90 @@ -32,7 +32,7 @@ ! #include "H5config_f.inc" -MODULE h5tb +MODULE h5tb_CONST USE, INTRINSIC :: ISO_C_BINDING USE h5fortran_types @@ -40,51 +40,26 @@ MODULE h5tb INTERFACE h5tbwrite_field_name_f MODULE PROCEDURE h5tbwrite_field_name_f_int - MODULE PROCEDURE h5tbwrite_field_name_f_c_float - MODULE PROCEDURE h5tbwrite_field_name_f_c_double -#if FORTRAN_C_LONG_DOUBLE_IS_UNIQUE!=0 - MODULE PROCEDURE h5tbwrite_field_name_f_c_long_double -#endif MODULE PROCEDURE h5tbwrite_field_name_f_string END INTERFACE INTERFACE h5tbread_field_name_f MODULE PROCEDURE h5tbread_field_name_f_int - MODULE PROCEDURE h5tbread_field_name_f_c_float - MODULE PROCEDURE h5tbread_field_name_f_c_double -#if FORTRAN_C_LONG_DOUBLE_IS_UNIQUE!=0 - MODULE PROCEDURE h5tbread_field_name_f_c_long_double -#endif MODULE PROCEDURE h5tbread_field_name_f_string END INTERFACE INTERFACE h5tbwrite_field_index_f MODULE PROCEDURE h5tbwrite_field_index_f_int - MODULE PROCEDURE h5tbwrite_field_index_f_c_float - MODULE PROCEDURE h5tbwrite_field_index_f_c_double -#if FORTRAN_C_LONG_DOUBLE_IS_UNIQUE!=0 - MODULE PROCEDURE h5tbwrite_field_index_f_c_long_double -#endif MODULE PROCEDURE h5tbwrite_field_index_f_string END INTERFACE INTERFACE h5tbread_field_index_f MODULE PROCEDURE h5tbread_field_index_f_int - MODULE PROCEDURE h5tbread_field_index_f_c_float - MODULE PROCEDURE h5tbread_field_index_f_c_double -#if FORTRAN_C_LONG_DOUBLE_IS_UNIQUE!=0 - MODULE PROCEDURE h5tbread_field_index_f_c_long_double -#endif MODULE PROCEDURE h5tbread_field_index_f_string END INTERFACE INTERFACE h5tbinsert_field_f MODULE PROCEDURE h5tbinsert_field_f_int - MODULE PROCEDURE h5tbinsert_field_f_c_float - MODULE PROCEDURE h5tbinsert_field_f_c_double -#if FORTRAN_C_LONG_DOUBLE_IS_UNIQUE!=0 - MODULE PROCEDURE h5tbinsert_field_f_c_long_double -#endif MODULE PROCEDURE h5tbinsert_field_f_string END INTERFACE @@ -348,105 +323,6 @@ CONTAINS END SUBROUTINE h5tbwrite_field_name_f_int - SUBROUTINE h5tbwrite_field_name_f_c_float(loc_id,& - dset_name,& - field_name,& - start,& - nrecords,& - type_size,& - buf,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - REAL(KIND=C_FLOAT), INTENT(in), DIMENSION(*), TARGET :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1)) - - namelen = LEN(dset_name) - namelen1 = LEN(field_name) - - errcode = h5tbwrite_field_name_c(loc_id,namelen,dset_name,namelen1,field_name,& - start,nrecords,type_size,f_ptr) - - END SUBROUTINE h5tbwrite_field_name_f_c_float - - SUBROUTINE h5tbwrite_field_name_f_c_double(loc_id,& - dset_name,& - field_name,& - start,& - nrecords,& - type_size,& - buf,& - errcode ) - - IMPLICIT NONE - - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - REAL(KIND=C_DOUBLE), INTENT(in), DIMENSION(*), TARGET :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1)) - - namelen = LEN(dset_name) - namelen1 = LEN(field_name) - - errcode = h5tbwrite_field_name_c(loc_id,namelen,dset_name,namelen1,field_name,& - start,nrecords,type_size,f_ptr) - - END SUBROUTINE h5tbwrite_field_name_f_c_double - -#if FORTRAN_C_LONG_DOUBLE_IS_UNIQUE!=0 - SUBROUTINE h5tbwrite_field_name_f_c_long_double(loc_id,& - dset_name,& - field_name,& - start,& - nrecords,& - type_size,& - buf,& - errcode ) - - IMPLICIT NONE - - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - REAL(KIND=C_LONG_DOUBLE), INTENT(in), DIMENSION(*), TARGET :: buf! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1)) - - namelen = LEN(dset_name) - namelen1 = LEN(field_name) - - errcode = h5tbwrite_field_name_c(loc_id,namelen,dset_name,namelen1,field_name,& - start,nrecords,type_size,f_ptr) - - END SUBROUTINE h5tbwrite_field_name_f_c_long_double -#endif SUBROUTINE h5tbwrite_field_name_f_string(loc_id,& dset_name,& @@ -530,104 +406,6 @@ CONTAINS END SUBROUTINE h5tbread_field_name_f_int - SUBROUTINE h5tbread_field_name_f_c_float(loc_id,& - dset_name,& - field_name,& - start,& - nrecords,& - type_size,& - buf,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - REAL(KIND=C_FLOAT), INTENT(in), DIMENSION(*), TARGET :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1)) - - namelen = LEN(dset_name) - namelen1 = LEN(field_name) - - errcode = h5tbread_field_name_c(loc_id,namelen,dset_name,namelen1,field_name,& - start,nrecords,type_size,f_ptr) - - END SUBROUTINE h5tbread_field_name_f_c_float - - SUBROUTINE h5tbread_field_name_f_c_double(loc_id,& - dset_name,& - field_name,& - start,& - nrecords,& - type_size,& - buf,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - REAL(KIND=C_DOUBLE), INTENT(in), DIMENSION(*), TARGET :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1)) - - namelen = LEN(dset_name) - namelen1 = LEN(field_name) - - errcode = h5tbread_field_name_c(loc_id,namelen,dset_name,namelen1,field_name,& - start,nrecords,type_size,f_ptr) - - END SUBROUTINE h5tbread_field_name_f_c_double - -#if FORTRAN_C_LONG_DOUBLE_IS_UNIQUE!=0 - SUBROUTINE h5tbread_field_name_f_c_long_double(loc_id,& - dset_name,& - field_name,& - start,& - nrecords,& - type_size,& - buf,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - REAL(KIND=C_LONG_DOUBLE), INTENT(in), DIMENSION(*), TARGET :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1)) - - namelen = LEN(dset_name) - namelen1 = LEN(field_name) - - errcode = h5tbread_field_name_c(loc_id,namelen,dset_name,namelen1,field_name,& - start,nrecords,type_size,f_ptr) - - END SUBROUTINE h5tbread_field_name_f_c_long_double -#endif - SUBROUTINE h5tbread_field_name_f_string(loc_id,& dset_name,& field_name,& @@ -706,98 +484,6 @@ CONTAINS END SUBROUTINE h5tbwrite_field_index_f_int - SUBROUTINE h5tbwrite_field_index_f_c_float(loc_id,& - dset_name,& - field_index,& - start,& - nrecords,& - type_size,& - buf,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: field_index ! index - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - REAL(KIND=C_FLOAT), INTENT(in), DIMENSION(*), TARGET :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1)) - - namelen = LEN(dset_name) - - errcode = h5tbwrite_field_index_c(loc_id,namelen,dset_name,field_index,& - start,nrecords,type_size,f_ptr) - - END SUBROUTINE h5tbwrite_field_index_f_c_float - - SUBROUTINE h5tbwrite_field_index_f_c_double(loc_id,& - dset_name,& - field_index,& - start,& - nrecords,& - type_size,& - buf,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: field_index ! index - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - REAL(KIND=C_DOUBLE), INTENT(in), DIMENSION(*), TARGET :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1)) - - namelen = LEN(dset_name) - - errcode = h5tbwrite_field_index_c(loc_id,namelen,dset_name,field_index,& - start,nrecords,type_size,f_ptr) - - END SUBROUTINE h5tbwrite_field_index_f_c_double - -#if FORTRAN_C_LONG_DOUBLE_IS_UNIQUE!=0 - SUBROUTINE h5tbwrite_field_index_f_c_long_double(loc_id,& - dset_name,& - field_index,& - start,& - nrecords,& - type_size,& - buf,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: field_index ! index - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - REAL(KIND=C_LONG_DOUBLE), INTENT(in), DIMENSION(*), TARGET :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1)) - - namelen = LEN(dset_name) - - errcode = h5tbwrite_field_index_c(loc_id,namelen,dset_name,field_index,& - start,nrecords,type_size,f_ptr) - - END SUBROUTINE h5tbwrite_field_index_f_c_long_double -#endif - SUBROUTINE h5tbwrite_field_index_f_string(loc_id,& dset_name,& field_index,& @@ -872,96 +558,6 @@ CONTAINS END SUBROUTINE h5tbread_field_index_f_int - SUBROUTINE h5tbread_field_index_f_c_float(loc_id,& - dset_name,& - field_index,& - start,& - nrecords,& - type_size,& - buf,& - errcode ) - - IMPLICIT NONE - - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: field_index ! index - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - REAL(KIND=C_FLOAT), INTENT(in), DIMENSION(*), TARGET :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1)) - namelen = LEN(dset_name) - - errcode = h5tbread_field_index_c(loc_id,namelen,dset_name,field_index,& - start,nrecords,type_size,f_ptr) - - END SUBROUTINE h5tbread_field_index_f_c_float - - SUBROUTINE h5tbread_field_index_f_c_double(loc_id,& - dset_name,& - field_index,& - start,& - nrecords,& - type_size,& - buf,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: field_index ! index - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - REAL(KIND=C_DOUBLE), INTENT(in), DIMENSION(*), TARGET :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1)) - namelen = LEN(dset_name) - - errcode = h5tbread_field_index_c(loc_id,namelen,dset_name,field_index,& - start,nrecords,type_size,f_ptr) - - END SUBROUTINE h5tbread_field_index_f_c_double - -#if FORTRAN_C_LONG_DOUBLE_IS_UNIQUE!=0 - SUBROUTINE h5tbread_field_index_f_c_long_double(loc_id,& - dset_name,& - field_index,& - start,& - nrecords,& - type_size,& - buf,& - errcode ) - - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: field_index ! index - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - REAL(KIND=C_LONG_DOUBLE), INTENT(in), DIMENSION(*), TARGET :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1)) - namelen = LEN(dset_name) - - errcode = h5tbread_field_index_c(loc_id,namelen,dset_name,field_index,& - start,nrecords,type_size,f_ptr) - - END SUBROUTINE h5tbread_field_index_f_c_long_double -#endif - SUBROUTINE h5tbread_field_index_f_string(loc_id,& dset_name,& field_index,& @@ -1035,95 +631,6 @@ CONTAINS END SUBROUTINE h5tbinsert_field_f_int - SUBROUTINE h5tbinsert_field_f_c_float(loc_id,& - dset_name,& - field_name,& - field_type,& - field_index,& - buf,& - errcode ) - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hid_t), INTENT(in) :: field_type ! field type - INTEGER, INTENT(in) :: field_index ! field_index - REAL(KIND=C_FLOAT), INTENT(in), DIMENSION(*), TARGET :: buf ! data buffer - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - INTEGER :: errcode ! error code - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1)) - - namelen = LEN(dset_name) - namelen1 = LEN(field_name) - - errcode = h5tbinsert_field_c(loc_id,namelen,dset_name,namelen1,field_name,& - field_type,field_index,f_ptr) - - END SUBROUTINE h5tbinsert_field_f_c_float - - SUBROUTINE h5tbinsert_field_f_c_double(loc_id,& - dset_name,& - field_name,& - field_type,& - field_index,& - buf,& - errcode ) - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hid_t), INTENT(in) :: field_type ! field type - INTEGER, INTENT(in) :: field_index ! field_index - REAL(KIND=C_DOUBLE), INTENT(in), DIMENSION(*), TARGET :: buf ! data buffer - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - INTEGER :: errcode ! error code - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1)) - - namelen = LEN(dset_name) - namelen1 = LEN(field_name) - - errcode = h5tbinsert_field_c(loc_id,namelen,dset_name,namelen1,field_name,& - field_type,field_index,f_ptr) - - END SUBROUTINE h5tbinsert_field_f_c_double - -#if FORTRAN_C_LONG_DOUBLE_IS_UNIQUE!=0 - SUBROUTINE h5tbinsert_field_f_c_long_double(loc_id,& - dset_name,& - field_name,& - field_type,& - field_index,& - buf,& - errcode ) - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hid_t), INTENT(in) :: field_type ! field type - INTEGER, INTENT(in) :: field_index ! field_index - REAL(KIND=C_LONG_DOUBLE), INTENT(in), DIMENSION(*), TARGET :: buf ! data buffer - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - INTEGER :: errcode ! error code - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1)) - - namelen = LEN(dset_name) - namelen1 = LEN(field_name) - - errcode = h5tbinsert_field_c(loc_id,namelen,dset_name,namelen1,field_name,& - field_type,field_index,f_ptr) - - END SUBROUTINE h5tbinsert_field_f_c_long_double -#endif - SUBROUTINE h5tbinsert_field_f_string(loc_id,& dset_name,& field_name,& @@ -1202,8 +709,6 @@ CONTAINS END SUBROUTINE h5tbdelete_field_f - - !------------------------------------------------------------------------- ! Function: h5tbget_table_info_f ! @@ -1334,7 +839,7 @@ CONTAINS END SUBROUTINE h5tbget_field_info_f -END MODULE H5TB +END MODULE H5TB_CONST diff --git a/hl/fortran/src/Makefile.am b/hl/fortran/src/Makefile.am index 0668230..bbb6c6b 100644 --- a/hl/fortran/src/Makefile.am +++ b/hl/fortran/src/Makefile.am @@ -46,8 +46,10 @@ endif #endif # List sources to include in the HDF5 HL Fortran library. -libhdf5hl_fortran_la_SOURCES=H5DSfc.c H5LTfc.c H5IMfc.c H5IMcc.c H5TBfc.c \ - H5DSff.F90 H5LTff.F90 H5IMff.F90 H5TBff.F90 +libhdf5hl_fortran_la_SOURCES=H5DSfc.c H5LTfc.c H5IMfc.c H5IMcc.c H5TBfc.c \ + H5DSff.F90 H5LTff.F90 H5IMff.F90 H5TBff.F90 H5LTff_gen.F90 H5TBff_gen.F90 + +#H5LTff_gen.F90 H5TBff_gen.F90 # HDF5 HL Fortran library depends on HDF5 Library. libhdf5hl_fortran_la_LIBADD=$(LIBH5_HL) $(LIBH5F) @@ -60,7 +62,7 @@ maintainer-clean-local: clean-local distclean-local: clean-local clean-local: @if test -n "$(F9XMODEXT)" && test "X$(F9XMODEXT)" != "Xo"; then \ - $(RM) *.$(F9XMODEXT); \ + $(RM) *.$(F9XMODEXT) H5LTff_gen.F90 H5TBff_gen.F90; \ fi install-data-local: @@ -75,6 +77,23 @@ uninstall-local: fi; \ fi +# These are the helper programs we need to build. +noinst_PROGRAMS = H5HL_buildiface + +# H5HL_buildiface.F90 generates all the APIs that have a KIND type associated +# with them. + +H5LTff_gen.F90: H5HL_buildiface$(EXEEXT) + $(RUNSERIAL) ./H5HL_buildiface$(EXEEXT) + +H5TBff_gen.F90: H5HL_buildiface$(EXEEXT) + +#H5TBff_gen.F90: H5HL_buildiface$(EXEEXT) + +# H5HL_buildiface.F90 is included in the distribution, and Automake knows +# how to compile a fortran program given its sources. + +H5HL_buildiface_SOURCES = H5HL_buildiface.F90 # Hardcode the dependencies of these files. There isn't a known way of # determining this automagically (like we do with the C files). So, when # doing a parallel make, some modules could be made way before the @@ -83,5 +102,6 @@ H5DSff.lo: $(srcdir)/H5DSff.F90 H5LTff.lo: $(srcdir)/H5LTff.F90 H5IMff.lo: $(srcdir)/H5IMff.F90 H5TBff.lo: $(srcdir)/H5TBff.F90 - +H5LTff_gen.lo: H5LTff_gen.F90 +H5TBff_gen.lo: H5LTff_gen.F90 H5TBff_gen.F90 include $(top_srcdir)/config/conclude.am diff --git a/hl/fortran/src/Makefile.in b/hl/fortran/src/Makefile.in index 7328e76..11d53ff 100644 --- a/hl/fortran/src/Makefile.in +++ b/hl/fortran/src/Makefile.in @@ -31,6 +31,7 @@ # # HDF5 High-Level Fortran Makefile(.in) + VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ @@ -105,6 +106,7 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ # want to build a shared C library and a static Fortran library. If so, # pass the -static flag to the library linker. @FORTRAN_SHARED_CONDITIONAL_FALSE@am__append_1 = -static +noinst_PROGRAMS = H5HL_buildiface$(EXEEXT) TESTS = subdir = hl/fortran/src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 @@ -148,7 +150,8 @@ am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) libhdf5hl_fortran_la_DEPENDENCIES = $(LIBH5_HL) $(LIBH5F) am_libhdf5hl_fortran_la_OBJECTS = H5DSfc.lo H5LTfc.lo H5IMfc.lo \ - H5IMcc.lo H5TBfc.lo H5DSff.lo H5LTff.lo H5IMff.lo H5TBff.lo + H5IMcc.lo H5TBfc.lo H5DSff.lo H5LTff.lo H5IMff.lo H5TBff.lo \ + H5LTff_gen.lo H5TBff_gen.lo libhdf5hl_fortran_la_OBJECTS = $(am_libhdf5hl_fortran_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -158,6 +161,10 @@ libhdf5hl_fortran_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=FC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(FCLD) \ $(AM_FCFLAGS) $(FCFLAGS) $(libhdf5hl_fortran_la_LDFLAGS) \ $(LDFLAGS) -o $@ +PROGRAMS = $(noinst_PROGRAMS) +am_H5HL_buildiface_OBJECTS = H5HL_buildiface.$(OBJEXT) +H5HL_buildiface_OBJECTS = $(am_H5HL_buildiface_OBJECTS) +H5HL_buildiface_LDADD = $(LDADD) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -210,8 +217,9 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = -SOURCES = $(libhdf5hl_fortran_la_SOURCES) -DIST_SOURCES = $(libhdf5hl_fortran_la_SOURCES) +SOURCES = $(libhdf5hl_fortran_la_SOURCES) $(H5HL_buildiface_SOURCES) +DIST_SOURCES = $(libhdf5hl_fortran_la_SOURCES) \ + $(H5HL_buildiface_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -717,13 +725,21 @@ libhdf5hl_fortran_la_LDFLAGS = -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVI #endif # List sources to include in the HDF5 HL Fortran library. -libhdf5hl_fortran_la_SOURCES = H5DSfc.c H5LTfc.c H5IMfc.c H5IMcc.c H5TBfc.c \ - H5DSff.F90 H5LTff.F90 H5IMff.F90 H5TBff.F90 +libhdf5hl_fortran_la_SOURCES = H5DSfc.c H5LTfc.c H5IMfc.c H5IMcc.c H5TBfc.c \ + H5DSff.F90 H5LTff.F90 H5IMff.F90 H5TBff.F90 H5LTff_gen.F90 H5TBff_gen.F90 + +#H5LTff_gen.F90 H5TBff_gen.F90 # HDF5 HL Fortran library depends on HDF5 Library. libhdf5hl_fortran_la_LIBADD = $(LIBH5_HL) $(LIBH5F) +#H5TBff_gen.F90: H5HL_buildiface$(EXEEXT) + +# H5HL_buildiface.F90 is included in the distribution, and Automake knows +# how to compile a fortran program given its sources. +H5HL_buildiface_SOURCES = H5HL_buildiface.F90 + # Automake needs to be taught how to build lib, progs, and tests targets. # These will be filled in automatically for the most part (e.g., # lib_LIBRARIES are built for lib target), but EXTRA_LIB, EXTRA_PROG, and @@ -817,6 +833,19 @@ clean-libLTLIBRARIES: libhdf5hl_fortran.la: $(libhdf5hl_fortran_la_OBJECTS) $(libhdf5hl_fortran_la_DEPENDENCIES) $(EXTRA_libhdf5hl_fortran_la_DEPENDENCIES) $(AM_V_FCLD)$(libhdf5hl_fortran_la_LINK) -rpath $(libdir) $(libhdf5hl_fortran_la_OBJECTS) $(libhdf5hl_fortran_la_LIBADD) $(LIBS) +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list + +H5HL_buildiface$(EXEEXT): $(H5HL_buildiface_OBJECTS) $(H5HL_buildiface_DEPENDENCIES) $(EXTRA_H5HL_buildiface_DEPENDENCIES) + @rm -f H5HL_buildiface$(EXEEXT) + $(AM_V_FCLD)$(FCLINK) $(H5HL_buildiface_OBJECTS) $(H5HL_buildiface_LDADD) $(LIBS) + mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -1095,7 +1124,7 @@ distdir: $(DISTFILES) check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am -all-am: Makefile $(LTLIBRARIES) all-local +all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) all-local installdirs: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ @@ -1136,7 +1165,7 @@ maintainer-clean-generic: clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool clean-local \ - mostlyclean-am + clean-noinstPROGRAMS mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) @@ -1209,8 +1238,8 @@ uninstall-am: uninstall-libLTLIBRARIES uninstall-local .PHONY: CTAGS GTAGS TAGS all all-am all-local check check-TESTS \ check-am clean clean-generic clean-libLTLIBRARIES \ - clean-libtool clean-local cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ + clean-libtool clean-local clean-noinstPROGRAMS cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-local distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-data-local install-dvi \ @@ -1258,7 +1287,7 @@ maintainer-clean-local: clean-local distclean-local: clean-local clean-local: @if test -n "$(F9XMODEXT)" && test "X$(F9XMODEXT)" != "Xo"; then \ - $(RM) *.$(F9XMODEXT); \ + $(RM) *.$(F9XMODEXT) H5LTff_gen.F90 H5TBff_gen.F90; \ fi install-data-local: @@ -1273,6 +1302,13 @@ uninstall-local: fi; \ fi +# H5HL_buildiface.F90 generates all the APIs that have a KIND type associated +# with them. + +H5LTff_gen.F90: H5HL_buildiface$(EXEEXT) + $(RUNSERIAL) ./H5HL_buildiface$(EXEEXT) + +H5TBff_gen.F90: H5HL_buildiface$(EXEEXT) # Hardcode the dependencies of these files. There isn't a known way of # determining this automagically (like we do with the C files). So, when # doing a parallel make, some modules could be made way before the @@ -1281,6 +1317,8 @@ H5DSff.lo: $(srcdir)/H5DSff.F90 H5LTff.lo: $(srcdir)/H5LTff.F90 H5IMff.lo: $(srcdir)/H5IMff.F90 H5TBff.lo: $(srcdir)/H5TBff.F90 +H5LTff_gen.lo: H5LTff_gen.F90 +H5TBff_gen.lo: H5LTff_gen.F90 H5TBff_gen.F90 # lib/progs/tests targets recurse into subdirectories. build-* targets # build files in this directory. diff --git a/hl/fortran/src/hdf5_hl_fortrandll.def.in b/hl/fortran/src/hdf5_hl_fortrandll.def.in index d294ad7..eb07316 100644 --- a/hl/fortran/src/hdf5_hl_fortrandll.def.in +++ b/hl/fortran/src/hdf5_hl_fortrandll.def.in @@ -23,163 +23,64 @@ H5IM_mp_H5IMGET_PALETTE_INFO_F H5IM_mp_H5IMGET_PALETTE_F H5IM_mp_H5IMIS_PALETTE_F ; H5LT -H5LT_mp_H5LTMAKE_DATASET_F_PTR -H5LT_mp_H5LTMAKE_DATASET_F_INT1 -H5LT_mp_H5LTMAKE_DATASET_F_INT2 -H5LT_mp_H5LTMAKE_DATASET_F_INT3 -H5LT_mp_H5LTMAKE_DATASET_F_INT4 -H5LT_mp_H5LTMAKE_DATASET_F_INT5 -H5LT_mp_H5LTMAKE_DATASET_F_INT6 -H5LT_mp_H5LTMAKE_DATASET_F_INT7 -H5LT_mp_H5LTMAKE_DATASET_F_C_FLOAT1 -H5LT_mp_H5LTMAKE_DATASET_F_C_FLOAT2 -H5LT_mp_H5LTMAKE_DATASET_F_C_FLOAT3 -H5LT_mp_H5LTMAKE_DATASET_F_C_FLOAT4 -H5LT_mp_H5LTMAKE_DATASET_F_C_FLOAT5 -H5LT_mp_H5LTMAKE_DATASET_F_C_FLOAT6 -H5LT_mp_H5LTMAKE_DATASET_F_C_FLOAT7 -H5LT_mp_H5LTMAKE_DATASET_F_C_DOUBLE1 -H5LT_mp_H5LTMAKE_DATASET_F_C_DOUBLE2 -H5LT_mp_H5LTMAKE_DATASET_F_C_DOUBLE3 -H5LT_mp_H5LTMAKE_DATASET_F_C_DOUBLE4 -H5LT_mp_H5LTMAKE_DATASET_F_C_DOUBLE5 -H5LT_mp_H5LTMAKE_DATASET_F_C_DOUBLE6 -H5LT_mp_H5LTMAKE_DATASET_F_C_DOUBLE7 -H5LT_mp_H5LTMAKE_DATASET_F_C_LONG_DOUBLE1 -H5LT_mp_H5LTMAKE_DATASET_F_C_LONG_DOUBLE2 -H5LT_mp_H5LTMAKE_DATASET_F_C_LONG_DOUBLE3 -H5LT_mp_H5LTMAKE_DATASET_F_C_LONG_DOUBLE4 -H5LT_mp_H5LTMAKE_DATASET_F_C_LONG_DOUBLE5 -H5LT_mp_H5LTMAKE_DATASET_F_C_LONG_DOUBLE6 -H5LT_mp_H5LTMAKE_DATASET_F_C_LONG_DOUBLE7 -H5LT_mp_H5LTREAD_DATASET_F_PTR -H5LT_mp_H5LTREAD_DATASET_F_INT1 -H5LT_mp_H5LTREAD_DATASET_F_INT2 -H5LT_mp_H5LTREAD_DATASET_F_INT3 -H5LT_mp_H5LTREAD_DATASET_F_INT4 -H5LT_mp_H5LTREAD_DATASET_F_INT5 -H5LT_mp_H5LTREAD_DATASET_F_INT6 -H5LT_mp_H5LTREAD_DATASET_F_INT7 -H5LT_mp_H5LTREAD_DATASET_F_C_FLOAT1 -H5LT_mp_H5LTREAD_DATASET_F_C_FLOAT2 -H5LT_mp_H5LTREAD_DATASET_F_C_FLOAT3 -H5LT_mp_H5LTREAD_DATASET_F_C_FLOAT4 -H5LT_mp_H5LTREAD_DATASET_F_C_FLOAT5 -H5LT_mp_H5LTREAD_DATASET_F_C_FLOAT6 -H5LT_mp_H5LTREAD_DATASET_F_C_FLOAT7 -H5LT_mp_H5LTREAD_DATASET_F_C_DOUBLE1 -H5LT_mp_H5LTREAD_DATASET_F_C_DOUBLE2 -H5LT_mp_H5LTREAD_DATASET_F_C_DOUBLE3 -H5LT_mp_H5LTREAD_DATASET_F_C_DOUBLE4 -H5LT_mp_H5LTREAD_DATASET_F_C_DOUBLE5 -H5LT_mp_H5LTREAD_DATASET_F_C_DOUBLE6 -H5LT_mp_H5LTREAD_DATASET_F_C_DOUBLE7 -H5LT_mp_H5LTREAD_DATASET_F_C_LONG_DOUBLE1 -H5LT_mp_H5LTREAD_DATASET_F_C_LONG_DOUBLE2 -H5LT_mp_H5LTREAD_DATASET_F_C_LONG_DOUBLE3 -H5LT_mp_H5LTREAD_DATASET_F_C_LONG_DOUBLE4 -H5LT_mp_H5LTREAD_DATASET_F_C_LONG_DOUBLE5 -H5LT_mp_H5LTREAD_DATASET_F_C_LONG_DOUBLE6 -H5LT_mp_H5LTREAD_DATASET_F_C_LONG_DOUBLE7 -H5LT_mp_H5LTMAKE_DATASET_INT_F_1 -H5LT_mp_H5LTMAKE_DATASET_INT_F_2 -H5LT_mp_H5LTMAKE_DATASET_INT_F_3 -H5LT_mp_H5LTMAKE_DATASET_INT_F_4 -H5LT_mp_H5LTMAKE_DATASET_INT_F_5 -H5LT_mp_H5LTMAKE_DATASET_INT_F_6 -H5LT_mp_H5LTMAKE_DATASET_INT_F_7 -H5LT_mp_H5LTMAKE_DATASET_C_FLOAT_F_1 -H5LT_mp_H5LTMAKE_DATASET_C_FLOAT_F_2 -H5LT_mp_H5LTMAKE_DATASET_C_FLOAT_F_3 -H5LT_mp_H5LTMAKE_DATASET_C_FLOAT_F_4 -H5LT_mp_H5LTMAKE_DATASET_C_FLOAT_F_5 -H5LT_mp_H5LTMAKE_DATASET_C_FLOAT_F_6 -H5LT_mp_H5LTMAKE_DATASET_C_FLOAT_F_7 -H5LT_mp_H5LTMAKE_DATASET_C_DOUBLE_F_1 -H5LT_mp_H5LTMAKE_DATASET_C_DOUBLE_F_2 -H5LT_mp_H5LTMAKE_DATASET_C_DOUBLE_F_3 -H5LT_mp_H5LTMAKE_DATASET_C_DOUBLE_F_4 -H5LT_mp_H5LTMAKE_DATASET_C_DOUBLE_F_5 -H5LT_mp_H5LTMAKE_DATASET_C_DOUBLE_F_5 -H5LT_mp_H5LTMAKE_DATASET_C_DOUBLE_F_5 -H5LT_mp_H5LTMAKE_DATASET_C_LONG_DOUBLE_F_1 -H5LT_mp_H5LTMAKE_DATASET_C_LONG_DOUBLE_F_2 -H5LT_mp_H5LTMAKE_DATASET_C_LONG_DOUBLE_F_3 -H5LT_mp_H5LTMAKE_DATASET_C_LONG_DOUBLE_F_4 -H5LT_mp_H5LTMAKE_DATASET_C_LONG_DOUBLE_F_5 -H5LT_mp_H5LTMAKE_DATASET_C_LONG_DOUBLE_F_5 -H5LT_mp_H5LTMAKE_DATASET_C_LONG_DOUBLE_F_5 -H5LT_mp_H5LTREAD_DATASET_INT_F_1 -H5LT_mp_H5LTREAD_DATASET_INT_F_2 -H5LT_mp_H5LTREAD_DATASET_INT_F_3 -H5LT_mp_H5LTREAD_DATASET_INT_F_4 -H5LT_mp_H5LTREAD_DATASET_INT_F_5 -H5LT_mp_H5LTREAD_DATASET_INT_F_6 -H5LT_mp_H5LTREAD_DATASET_INT_F_7 -H5LT_mp_H5LTREAD_DATASET_C_FLOAT_F_1 -H5LT_mp_H5LTREAD_DATASET_C_FLOAT_F_2 -H5LT_mp_H5LTREAD_DATASET_C_FLOAT_F_3 -H5LT_mp_H5LTREAD_DATASET_C_FLOAT_F_4 -H5LT_mp_H5LTREAD_DATASET_C_FLOAT_F_5 -H5LT_mp_H5LTREAD_DATASET_C_FLOAT_F_6 -H5LT_mp_H5LTREAD_DATASET_C_FLOAT_F_7 -H5LT_mp_H5LTREAD_DATASET_C_DOUBLE_F_1 -H5LT_mp_H5LTREAD_DATASET_C_DOUBLE_F_2 -H5LT_mp_H5LTREAD_DATASET_C_DOUBLE_F_3 -H5LT_mp_H5LTREAD_DATASET_C_DOUBLE_F_4 -H5LT_mp_H5LTREAD_DATASET_C_DOUBLE_F_5 -H5LT_mp_H5LTREAD_DATASET_C_DOUBLE_F_6 -H5LT_mp_H5LTREAD_DATASET_C_LONG_DOUBLE_F_7 -H5LT_mp_H5LTREAD_DATASET_C_LONG_DOUBLE_F_1 -H5LT_mp_H5LTREAD_DATASET_C_LONG_DOUBLE_F_2 -H5LT_mp_H5LTREAD_DATASET_C_LONG_DOUBLE_F_3 -H5LT_mp_H5LTREAD_DATASET_C_LONG_DOUBLE_F_4 -H5LT_mp_H5LTREAD_DATASET_C_LONG_DOUBLE_F_5 -H5LT_mp_H5LTREAD_DATASET_C_LONG_DOUBLE_F_6 -H5LT_mp_H5LTREAD_DATASET_C_LONG_DOUBLE_F_7 -H5LT_mp_H5LTMAKE_DATASET_STRING_F -H5LT_mp_H5LTREAD_DATASET_STRING_F -H5LT_mp_H5LTSET_ATTRIBUTE_INT_F -H5LT_mp_H5LTSET_ATTRIBUTE_FLOAT_F -H5LT_mp_H5LTSET_ATTRIBUTE_DOUBLE_F -H5LT_mp_H5LTSET_ATTRIBUTE_STRING_F -H5LT_mp_H5LTGET_ATTRIBUTE_INT_F -H5LT_mp_H5LTGET_ATTRIBUTE_FLOAT_F -H5LT_mp_H5LTGET_ATTRIBUTE_DOUBLE_F -H5LT_mp_H5LTGET_ATTRIBUTE_STRING_F -H5LT_mp_H5LTGET_DATASET_NDIMS_F -H5LT_mp_H5LTFIND_DATASET_F -H5LT_mp_H5LTGET_DATASET_INFO_F -H5LT_mp_H5LTGET_ATTRIBUTE_NDIMS_F -H5LT_mp_H5LTGET_ATTRIBUTE_INFO_F -H5LT_mp_H5LTPATH_VALID_F +H5LT_CONST_mp_H5LTMAKE_DATASET_F_PTR +H5LT_CONST_mp_H5LTMAKE_DATASET_F_INT1 +H5LT_CONST_mp_H5LTMAKE_DATASET_F_INT2 +H5LT_CONST_mp_H5LTMAKE_DATASET_F_INT3 +H5LT_CONST_mp_H5LTMAKE_DATASET_F_INT4 +H5LT_CONST_mp_H5LTMAKE_DATASET_F_INT5 +H5LT_CONST_mp_H5LTMAKE_DATASET_F_INT6 +H5LT_CONST_mp_H5LTMAKE_DATASET_F_INT7 +H5LT_CONST_mp_H5LTREAD_DATASET_F_PTR +H5LT_CONST_mp_H5LTREAD_DATASET_F_INT1 +H5LT_CONST_mp_H5LTREAD_DATASET_F_INT2 +H5LT_CONST_mp_H5LTREAD_DATASET_F_INT3 +H5LT_CONST_mp_H5LTREAD_DATASET_F_INT4 +H5LT_CONST_mp_H5LTREAD_DATASET_F_INT5 +H5LT_CONST_mp_H5LTREAD_DATASET_F_INT6 +H5LT_CONST_mp_H5LTREAD_DATASET_F_INT7 +H5LT_CONST_mp_H5LTMAKE_DATASET_INT_F_1 +H5LT_CONST_mp_H5LTMAKE_DATASET_INT_F_2 +H5LT_CONST_mp_H5LTMAKE_DATASET_INT_F_3 +H5LT_CONST_mp_H5LTMAKE_DATASET_INT_F_4 +H5LT_CONST_mp_H5LTMAKE_DATASET_INT_F_5 +H5LT_CONST_mp_H5LTMAKE_DATASET_INT_F_6 +H5LT_CONST_mp_H5LTMAKE_DATASET_INT_F_7 +H5LT_CONST_mp_H5LTREAD_DATASET_INT_F_1 +H5LT_CONST_mp_H5LTREAD_DATASET_INT_F_2 +H5LT_CONST_mp_H5LTREAD_DATASET_INT_F_3 +H5LT_CONST_mp_H5LTREAD_DATASET_INT_F_4 +H5LT_CONST_mp_H5LTREAD_DATASET_INT_F_5 +H5LT_CONST_mp_H5LTREAD_DATASET_INT_F_6 +H5LT_CONST_mp_H5LTREAD_DATASET_INT_F_7 +H5LT_CONST_mp_H5LTMAKE_DATASET_STRING_F +H5LT_CONST_mp_H5LTREAD_DATASET_STRING_F +H5LT_CONST_mp_H5LTSET_ATTRIBUTE_INT_F +H5LT_CONST_mp_H5LTSET_ATTRIBUTE_FLOAT_F +H5LT_CONST_mp_H5LTSET_ATTRIBUTE_DOUBLE_F +H5LT_CONST_mp_H5LTSET_ATTRIBUTE_STRING_F +H5LT_CONST_mp_H5LTGET_ATTRIBUTE_INT_F +H5LT_CONST_mp_H5LTGET_ATTRIBUTE_FLOAT_F +H5LT_CONST_mp_H5LTGET_ATTRIBUTE_DOUBLE_F +H5LT_CONST_mp_H5LTGET_ATTRIBUTE_STRING_F +H5LT_CONST_mp_H5LTGET_DATASET_NDIMS_F +H5LT_CONST_mp_H5LTFIND_DATASET_F +H5LT_CONST_mp_H5LTGET_DATASET_INFO_F +H5LT_CONST_mp_H5LTGET_ATTRIBUTE_NDIMS_F +H5LT_CONST_mp_H5LTGET_ATTRIBUTE_INFO_F +H5LT_CONST_mp_H5LTPATH_VALID_F ; H5TB -H5TB_mp_H5TBMAKE_TABLE_F -H5TB_mp_H5TBWRITE_FIELD_NAME_F_INT -H5TB_mp_H5TBWRITE_FIELD_NAME_F_C_FLOAT -H5TB_mp_H5TBWRITE_FIELD_NAME_F_C_DOUBLE -H5TB_mp_H5TBWRITE_FIELD_NAME_F_C_LONG_DOUBLE -H5TB_mp_H5TBWRITE_FIELD_NAME_F_STRING -H5TB_mp_H5TBREAD_FIELD_NAME_F_INT -H5TB_mp_H5TBREAD_FIELD_NAME_F_C_FLOAT -H5TB_mp_H5TBREAD_FIELD_NAME_F_C_DOUBLE -H5TB_mp_H5TBREAD_FIELD_NAME_F_C_LONG_DOUBLE -H5TB_mp_H5TBREAD_FIELD_NAME_F_STRING -H5TB_mp_H5TBWRITE_FIELD_INDEX_F_INT -H5TB_mp_H5TBWRITE_FIELD_INDEX_F_C_FLOAT -H5TB_mp_H5TBWRITE_FIELD_INDEX_F_C_DOUBLE -H5TB_mp_H5TBWRITE_FIELD_INDEX_F_C_LONG_DOUBLE -H5TB_mp_H5TBWRITE_FIELD_INDEX_F_STRING -H5TB_mp_H5TBREAD_FIELD_INDEX_F_INT -H5TB_mp_H5TBREAD_FIELD_INDEX_F_C_FLOAT -H5TB_mp_H5TBREAD_FIELD_INDEX_F_C_DOUBLE -H5TB_mp_H5TBREAD_FIELD_INDEX_F_C_LONG_DOUBLE -H5TB_mp_H5TBREAD_FIELD_INDEX_F_STRING -H5TB_mp_H5TBINSERT_FIELD_F_INT -H5TB_mp_H5TBINSERT_FIELD_F_C_FLOAT -H5TB_mp_H5TBINSERT_FIELD_F_C_DOUBLE -H5TB_mp_H5TBINSERT_FIELD_F_C_LONG_DOUBLE -H5TB_mp_H5TBINSERT_FIELD_F_STRING -H5TB_mp_H5TBDELETE_FIELD_F -H5TB_mp_H5TBGET_TABLE_INFO_F -H5TB_mp_H5TBGET_FIELD_INFO_F +H5TB_CONST_mp_H5TBMAKE_TABLE_F +H5TB_CONST_mp_H5TBWRITE_FIELD_NAME_F_INT +H5TB_CONST_mp_H5TBWRITE_FIELD_NAME_F_STRING +H5TB_CONST_mp_H5TBREAD_FIELD_NAME_F_INT +H5TB_CONST_mp_H5TBREAD_FIELD_NAME_F_STRING +H5TB_CONST_mp_H5TBWRITE_FIELD_INDEX_F_INT +H5TB_CONST_mp_H5TBWRITE_FIELD_INDEX_F_STRING +H5TB_CONST_mp_H5TBREAD_FIELD_INDEX_F_INT +H5TB_CONST_mp_H5TBREAD_FIELD_INDEX_F_STRING +H5TB_CONST_mp_H5TBINSERT_FIELD_F_INT +H5TB_CONST_mp_H5TBINSERT_FIELD_F_STRING +H5TB_CONST_mp_H5TBDELETE_FIELD_F +H5TB_CONST_mp_H5TBGET_TABLE_INFO_F +H5TB_CONST_mp_H5TBGET_FIELD_INFO_F diff --git a/hl/fortran/test/tstlite.F90 b/hl/fortran/test/tstlite.F90 index 4c1ca14..0eb005b 100644 --- a/hl/fortran/test/tstlite.F90 +++ b/hl/fortran/test/tstlite.F90 @@ -1539,20 +1539,23 @@ SUBROUTINE test_attributes() ! double !------------------------------------------------------------------------- - CALL test_begin(' Set/Get 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,f_ptr,"Real", SizeOf_buf_type, size, errcode) +! CALL h5ltset_attribute_double_f(file_id,dsetname1,attrname4,buf4, size, errcode) ! ! read attribute. @@ -1567,8 +1570,6 @@ SUBROUTINE test_attributes() 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. ! @@ -1582,6 +1583,8 @@ SUBROUTINE test_attributes() CALL passed() + ENDIF + !------------------------------------------------------------------------- ! string !------------------------------------------------------------------------- -- cgit v0.12