mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-01-30 15:32:37 +08:00
[svn-r27355] added generation of HL Fortran Interfaces for REALs
This commit is contained in:
parent
5ed3e8a4a7
commit
b0afa2ab61
1
MANIFEST
1
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
|
||||
|
681
hl/fortran/src/H5HL_buildiface.F90
Normal file
681
hl/fortran/src/H5HL_buildiface.F90
Normal file
@ -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 <H5config_f.inc>
|
||||
|
||||
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
|
||||
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
!-------------------------------------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user