diff options
author | Scot Breitenfeld <brtnfld@hdfgroup.org> | 2015-04-23 20:12:13 (GMT) |
---|---|---|
committer | Scot Breitenfeld <brtnfld@hdfgroup.org> | 2015-04-23 20:12:13 (GMT) |
commit | f0c4d55f914d3d7ee27703fbeb54c99ffa1603eb (patch) | |
tree | 8ab3347ac0b507ebaac505a015b6f24198d2b08c /hl/fortran/src/H5LTff.F90 | |
parent | 05a320e9eb464e7b905fcfd4fc3bb4f4d83793ed (diff) | |
download | hdf5-f0c4d55f914d3d7ee27703fbeb54c99ffa1603eb.zip hdf5-f0c4d55f914d3d7ee27703fbeb54c99ffa1603eb.tar.gz hdf5-f0c4d55f914d3d7ee27703fbeb54c99ffa1603eb.tar.bz2 |
[svn-r26908] Added missing c_long_double interfaces, now handles promotion of reals and integers to 8 bytes, added C wrappers that take pointers from Fortran.
Diffstat (limited to 'hl/fortran/src/H5LTff.F90')
-rw-r--r-- | hl/fortran/src/H5LTff.F90 | 5390 |
1 files changed, 615 insertions, 4775 deletions
diff --git a/hl/fortran/src/H5LTff.F90 b/hl/fortran/src/H5LTff.F90 index 92f067d..0d05a36 100644 --- a/hl/fortran/src/H5LTff.F90 +++ b/hl/fortran/src/H5LTff.F90 @@ -14,11 +14,24 @@ ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! ! -! This file contains FORTRAN90 interfaces for H5LT functions +! This file contains FORTRAN interfaces for H5LT functions +! +! NOTES +! +! _____ __ __ _____ ____ _____ _______ _ _ _______ +! |_ _| \/ | __ \ / __ \| __ \__ __|/\ | \ | |__ __| +! **** | | | \ / | |__) | | | | |__) | | | / \ | \| | | | **** +! **** | | | |\/| | ___/| | | | _ / | | / /\ \ | . ` | | | **** +! **** _| |_| | | | | | |__| | | \ \ | |/ ____ \| |\ | | | **** +! |_____|_| |_|_| \____/|_| \_\ |_/_/ \_\_| \_| |_| +! +! If you add a new function here then you MUST add the function name to the +! Windows dll file 'hdf5_hl_fortrandll.def.in' in the hl/fortran/src directory. +! This is needed for Windows based operating systems. ! MODULE h5lt - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING USE h5fortran_types USE hdf5 @@ -200,13 +213,81 @@ MODULE h5lt MODULE PROCEDURE h5ltread_dataset_c_long_double_f_7 END INTERFACE + INTERFACE + INTEGER FUNCTION h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & + BIND(C,NAME='h5ltmake_dataset_c') + IMPORT :: C_CHAR, C_PTR + IMPORT :: HID_T, SIZE_T, HSIZE_T + IMPLICIT NONE + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier + INTEGER(size_t) :: namelen ! length of name buffer + CHARACTER(KIND=C_CHAR), DIMENSION(*), 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 + TYPE(C_PTR), VALUE :: buf ! data buffer + END FUNCTION h5ltmake_dataset_c + END INTERFACE + + INTERFACE + INTEGER FUNCTION h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,buf,dims) & + BIND(C,NAME='h5ltread_dataset_c') + IMPORT :: C_CHAR, C_PTR + IMPORT :: HID_T, SIZE_T, HSIZE_T + IMPLICIT NONE + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier + INTEGER(size_t) :: namelen ! length of name buffer + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset + INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf + TYPE(C_PTR), VALUE :: buf ! data buffer + END FUNCTION h5ltread_dataset_c + END INTERFACE + + INTERFACE + INTEGER FUNCTION h5ltset_attribute_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf,dtype) & + BIND(C,NAME='h5ltset_attribute_c') + IMPORT :: C_CHAR, C_PTR + IMPORT :: HID_T, SIZE_T, HSIZE_T + IMPLICIT NONE + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + INTEGER(size_t) :: namelen ! length of name buffer + INTEGER(size_t) :: attrlen ! length of attr name buffer + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: attr_name ! name of the attribute + INTEGER(size_t), INTENT(in) :: size ! size of attribute array + TYPE(C_PTR), VALUE :: buf ! data buffer + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dtype ! flag indicating the datatype of the + ! the buffer: + ! R=Real, D=DOUBLE, I=Interger, C=Character + END FUNCTION h5ltset_attribute_c + END INTERFACE + + INTERFACE + INTEGER FUNCTION h5ltget_attribute_c(loc_id,namelen,dset_name,attrlen,attr_name,buf,dtype) & + BIND(C,NAME='h5ltget_attribute_c') + IMPORT :: C_CHAR, C_PTR + IMPORT :: HID_T, SIZE_T, HSIZE_T + IMPLICIT NONE + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + INTEGER(size_t) :: namelen ! length of name buffer + INTEGER(size_t) :: attrlen ! length of attr name buffer + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: attr_name ! name of the attribute + TYPE(C_PTR), VALUE :: buf ! data buffer + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dtype ! flag indicating the datatype of the + ! the buffer: + ! R=Real, D=DOUBLE, I=Interger, C=Character + END FUNCTION h5ltget_attribute_c + END INTERFACE + CONTAINS !------------------------------------------------------------------------- ! Make/Read dataset functions !------------------------------------------------------------------------- !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_f_int1 + ! Function(s): h5ltmake_dataset_f_int(1-7) ! ! Purpose: Creates and writes a dataset of a type TYPE_ID ! @@ -218,7 +299,7 @@ CONTAINS ! ! Comments: ! - ! Modifications: + ! Modifications: Changed to passing C_PTR. ! !------------------------------------------------------------------------- @@ -231,61 +312,22 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_f_int1 - !DEC$endif - ! - 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, INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER, INTENT(in), DIMENSION(*), TARGET :: buf ! data buffer INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_int1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_int1_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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(*) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_int1_c - END INTERFACE - + f_ptr = C_LOC(buf(1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_int1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) END SUBROUTINE h5ltmake_dataset_f_int1 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_f_int2 - ! - ! 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_int2(loc_id,& dset_name,& rank,& @@ -295,63 +337,24 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_f_int2 - !DEC$endif - ! - 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 + INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(in), & - DIMENSION(dims(1),dims(2)) :: buf ! data buffer + DIMENSION(dims(1),dims(2)), TARGET :: buf ! data buffer + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_int2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_int2_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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(dims(1),dims(2)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_int2_c - END INTERFACE + f_ptr = C_LOC(buf(1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_int2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) END SUBROUTINE h5ltmake_dataset_f_int2 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_f_int3 - ! - ! 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_int3(loc_id,& dset_name,& rank,& @@ -361,14 +364,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_f_int3 - !DEC$endif - ! - 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 @@ -377,59 +372,20 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf ! data buffer + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_int3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_int3_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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(dims(1),dims(2),dims(3)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_int3_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_int3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) END SUBROUTINE h5ltmake_dataset_f_int3 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_f_int4 - ! - ! Purpose: Creates and writes a dataset of a type TYPE_ID - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 7, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_f_int4(loc_id, dset_name, rank, dims, & type_id, buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_f_int4 - !DEC$endif - ! - 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 @@ -438,59 +394,20 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf ! data buffer + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_int4_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_int4_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_int4_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_int4_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) END SUBROUTINE h5ltmake_dataset_f_int4 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_f_int5 - ! - ! Purpose: Creates and writes a dataset of a type TYPE_ID - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 7, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_f_int5(loc_id, dset_name, rank, dims, & type_id, buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_f_int5 - !DEC$endif - ! - 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 @@ -499,59 +416,20 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf ! data buffer + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_int5_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_int5_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_int5_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_int5_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) END SUBROUTINE h5ltmake_dataset_f_int5 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_f_int6 - ! - ! Purpose: Creates and writes a dataset of a type TYPE_ID - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 7, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_f_int6(loc_id, dset_name, rank, dims, & type_id, buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_f_int6 - !DEC$endif - ! - 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 @@ -560,59 +438,20 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf ! data buffer + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_int6_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_int6_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_int6_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_int6_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) END SUBROUTINE h5ltmake_dataset_f_int6 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_f_int7 - ! - ! Purpose: Creates and writes a dataset of a type TYPE_ID - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 7, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_f_int7(loc_id, dset_name, rank, dims, & type_id, buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_f_int7 - !DEC$endif - ! - 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 @@ -621,33 +460,18 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf ! data buffer + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_int7_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_int7_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_int7_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_int7_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) END SUBROUTINE h5ltmake_dataset_f_int7 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_f_c_float1 + ! Function(s): h5ltmake_dataset_f_c_float(1-7) ! ! Purpose: Creates and writes a dataset of a type TYPE_ID ! @@ -672,61 +496,23 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_f_c_float1 - !DEC$endif - ! - 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(*) :: buf ! data buffer + REAL(KIND=C_FLOAT), 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 - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_fl1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_fl1_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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(*) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_fl1_c - END INTERFACE + f_ptr = C_LOC(buf(1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_fl1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) END SUBROUTINE h5ltmake_dataset_f_c_float1 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_f_c_float2 - ! - ! 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_float2(loc_id,& dset_name,& rank,& @@ -736,14 +522,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_f_c_float2 - !DEC$endif - ! - 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 @@ -752,47 +530,16 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length REAL(KIND=C_FLOAT), INTENT(in), & - DIMENSION(dims(1),dims(2)) :: buf ! data buffer + DIMENSION(dims(1),dims(2)), TARGET :: buf ! data buffer + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_fl2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_fl2_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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(dims(1),dims(2)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_fl2_c - END INTERFACE + f_ptr = C_LOC(buf(1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_fl2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) END SUBROUTINE h5ltmake_dataset_f_c_float2 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_f_c_float3 - ! - ! 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_float3(loc_id,& dset_name,& rank,& @@ -802,14 +549,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_f_c_float3 - !DEC$endif - ! - 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 @@ -818,63 +557,20 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length REAL(KIND=C_FLOAT), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf ! data buffer + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_fl3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_fl3_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_FL3_C'::h5ltmake_dataset_fl3_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: dset_name - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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(dims(1),dims(2),dims(3)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_fl3_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_fl3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) END SUBROUTINE h5ltmake_dataset_f_c_float3 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_f_c_float4 - ! - ! Purpose: Creates and writes a dataset of a type TYPE_ID - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 7, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_f_c_float4(loc_id, dset_name, rank, dims,& type_id, buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_f_c_float4 - !DEC$endif - ! - 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 @@ -883,59 +579,20 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf ! data buffer + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_fl4_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_fl4_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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(dims(1),dims(2),dims(3), dims(4)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_fl4_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_fl4_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) END SUBROUTINE h5ltmake_dataset_f_c_float4 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_f_c_float5 - ! - ! Purpose: Creates and writes a dataset of a type TYPE_ID - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 7, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_f_c_float5(loc_id, dset_name, rank, dims,& type_id, buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_f_c_float5 - !DEC$endif - ! - 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 @@ -944,59 +601,20 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf ! data buffer + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_fl5_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_fl5_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_fl5_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_fl5_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) END SUBROUTINE h5ltmake_dataset_f_c_float5 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_f_c_float6 - ! - ! Purpose: Creates and writes a dataset of a type TYPE_ID - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 7, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_f_c_float6(loc_id, dset_name, rank, dims,& type_id, buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_f_c_float6 - !DEC$endif - ! - 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 @@ -1005,59 +623,20 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf ! data buffer + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_fl6_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_fl6_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_fl6_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_fl6_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) END SUBROUTINE h5ltmake_dataset_f_c_float6 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_f_c_float7 - ! - ! Purpose: Creates and writes a dataset of a type TYPE_ID - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 7, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_f_c_float7(loc_id, dset_name, rank, dims,& type_id, buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_f_c_float7 - !DEC$endif - ! - 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 @@ -1066,32 +645,18 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf ! data buffer + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_fl7_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_fl7_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_fl7_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_fl7_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) END SUBROUTINE h5ltmake_dataset_f_c_float7 !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_f_c_double1 + ! Function(s): h5ltmake_dataset_f_c_double(1-7) ! ! Purpose: Creates and writes a dataset of a type TYPE_ID ! @@ -1116,65 +681,23 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_f_c_double1 - !DEC$endif - ! - 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_DOUBLE), INTENT(in), DIMENSION(*) :: buf ! data buffer + 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 - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_dl1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_dl1_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_DL1_C'::h5ltmake_dataset_dl1_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: dset_name - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_DOUBLE), INTENT(in), DIMENSION(*) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_dl1_c - END INTERFACE + f_ptr = C_LOC(buf(1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_dl1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) END SUBROUTINE h5ltmake_dataset_f_c_double1 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_f_c_double2 - ! - ! 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_double2(loc_id,& dset_name,& rank,& @@ -1184,14 +707,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_f_c_double2 - !DEC$endif - ! - 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 @@ -1200,47 +715,16 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length REAL(KIND=C_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2)) :: buf ! data buffer + DIMENSION(dims(1),dims(2)), TARGET :: buf ! data buffer + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_dl2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_dl2_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_dl2_c - END INTERFACE + f_ptr = C_LOC(buf(1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_dl2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) END SUBROUTINE h5ltmake_dataset_f_c_double2 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_f_c_double3 - ! - ! 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_double3(loc_id,& dset_name,& rank,& @@ -1250,14 +734,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_f_c_double3 - !DEC$endif - ! - 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 @@ -1266,59 +742,19 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length REAL(KIND=C_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer - - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_dl3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_dl3_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_dl3_c - END INTERFACE + 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_dl3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) END SUBROUTINE h5ltmake_dataset_f_c_double3 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_f_c_double4 - ! - ! Purpose: Creates and writes a dataset of a type TYPE_ID - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 7, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_f_c_double4(loc_id, dset_name, rank, dims, & type_id, buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_f_c_double4 - !DEC$endif - ! - 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 @@ -1327,59 +763,19 @@ CONTAINS 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)) :: buf ! data buffer - - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_dl4_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_dl4_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_dl4_c - END INTERFACE + 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_dl4_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) END SUBROUTINE h5ltmake_dataset_f_c_double4 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_f_c_double5 - ! - ! Purpose: Creates and writes a dataset of a type TYPE_ID - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 7, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_f_c_double5(loc_id, dset_name, rank, dims, & type_id, buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_f_c_double5 - !DEC$endif - ! - 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 @@ -1388,59 +784,19 @@ CONTAINS 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)) :: buf ! data buffer - - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_dl5_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_dl5_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_dl5_c - END INTERFACE + 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_dl5_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) END SUBROUTINE h5ltmake_dataset_f_c_double5 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_f_c_double6 - ! - ! Purpose: Creates and writes a dataset of a type TYPE_ID - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 7, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_f_c_double6(loc_id, dset_name, rank, dims, & type_id, buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_f_c_double6 - !DEC$endif - ! - 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 @@ -1449,59 +805,19 @@ CONTAINS 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)) :: buf ! data buffer - - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_dl6_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_dl6_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_dl6_c - END INTERFACE + 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_dl6_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) END SUBROUTINE h5ltmake_dataset_f_c_double6 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_f_c_double7 - ! - ! Purpose: Creates and writes a dataset of a type TYPE_ID - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 7, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_f_c_double7(loc_id, dset_name, rank, dims, & type_id, buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_f_c_double7 - !DEC$endif - ! - 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 @@ -1510,32 +826,17 @@ CONTAINS 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)) :: buf ! data buffer - - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_dl7_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_dl7_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_dl7_c - END INTERFACE + 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_dl7_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) END SUBROUTINE h5ltmake_dataset_f_c_double7 !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_f_c_long_double1 + ! Function(s): h5ltmake_dataset_f_c_long_double(1-7) ! ! Purpose: Creates and writes a dataset of a type TYPE_ID ! @@ -1560,65 +861,22 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_f_c_long_double1 - !DEC$endif - ! - 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(*) :: buf ! data buffer + REAL(KIND=C_LONG_DOUBLE), INTENT(in), DIMENSION(*), TARGET :: buf ! data buffer INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_dl1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_dl1_c') - IMPORT :: C_CHAR, C_LONG_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_DL1_C'::h5ltmake_dataset_dl1_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: dset_name - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_LONG_DOUBLE), INTENT(in), DIMENSION(*) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_dl1_c - END INTERFACE + INTEGER(size_t) :: namelen ! name length + TYPE(C_PTR) :: f_ptr + f_ptr = C_LOC(buf(1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_dl1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) END SUBROUTINE h5ltmake_dataset_f_c_long_double1 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_f_c_long_double2 - ! - ! 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_double2(loc_id,& dset_name,& rank,& @@ -1628,14 +886,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_f_c_long_double2 - !DEC$endif - ! - 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 @@ -1644,47 +894,15 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length REAL(KIND=C_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2)) :: buf ! data buffer - - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_dl2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_dl2_c') - IMPORT :: C_CHAR, C_LONG_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_dl2_c - END INTERFACE + 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_dl2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) END SUBROUTINE h5ltmake_dataset_f_c_long_double2 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_f_c_long_double3 - ! - ! 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_double3(loc_id,& dset_name,& rank,& @@ -1694,14 +912,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_f_c_long_double3 - !DEC$endif - ! - 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 @@ -1710,59 +920,19 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length REAL(KIND=C_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer - - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_dl3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_dl3_c') - IMPORT :: C_CHAR, C_LONG_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_dl3_c - END INTERFACE + 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_dl3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) END SUBROUTINE h5ltmake_dataset_f_c_long_double3 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_f_c_long_double4 - ! - ! Purpose: Creates and writes a dataset of a type TYPE_ID - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 7, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_f_c_long_double4(loc_id, dset_name, rank, dims, & type_id, buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_f_c_long_double4 - !DEC$endif - ! - 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 @@ -1771,59 +941,19 @@ CONTAINS 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)) :: buf ! data buffer - - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_dl4_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_dl4_c') - IMPORT :: C_CHAR, C_LONG_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_dl4_c - END INTERFACE + 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_dl4_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) END SUBROUTINE h5ltmake_dataset_f_c_long_double4 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_f_c_long_double5 - ! - ! Purpose: Creates and writes a dataset of a type TYPE_ID - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 7, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_f_c_long_double5(loc_id, dset_name, rank, dims, & type_id, buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_f_c_long_double5 - !DEC$endif - ! - 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 @@ -1832,59 +962,18 @@ CONTAINS 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)) :: buf ! data buffer - - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_dl5_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_dl5_c') - IMPORT :: C_CHAR, C_LONG_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_dl5_c - END INTERFACE + 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_dl5_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) END SUBROUTINE h5ltmake_dataset_f_c_long_double5 - - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_f_c_long_double6 - ! - ! Purpose: Creates and writes a dataset of a type TYPE_ID - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 7, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_f_c_long_double6(loc_id, dset_name, rank, dims, & type_id, buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_f_c_long_double6 - !DEC$endif - ! - 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 @@ -1893,59 +982,19 @@ CONTAINS 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)) :: buf ! data buffer - - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_dl6_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_dl6_c') - IMPORT :: C_CHAR, C_LONG_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_dl6_c - END INTERFACE + 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_dl6_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) END SUBROUTINE h5ltmake_dataset_f_c_long_double6 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_f_c_long_double7 - ! - ! Purpose: Creates and writes a dataset of a type TYPE_ID - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 7, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_f_c_long_double7(loc_id, dset_name, rank, dims, & type_id, buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_f_c_long_double7 - !DEC$endif - ! - 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 @@ -1954,32 +1003,17 @@ CONTAINS 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)) :: buf ! data buffer - - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_dl7_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_dl7_c') - IMPORT :: C_CHAR, C_LONG_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_dl7_c - END INTERFACE + 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_dl7_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,f_ptr) END SUBROUTINE h5ltmake_dataset_f_c_long_double7 !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_f_int1 + ! Function(s): h5ltread_dataset_f_int(1-7) ! ! Purpose: Read a dataset of a type TYPE_ID ! @@ -2003,39 +1037,19 @@ CONTAINS 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 - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_f_int1 - !DEC$endif - ! - - 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(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - - INTERFACE - INTEGER FUNCTION h5ltread_dataset_int1_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_int1_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: loc_id ! file or group identifier - INTEGER(HID_T), INTENT(IN) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: dset_name ! name of the dataset - INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: dims ! size of the buffer buf - INTEGER, INTENT(IN), DIMENSION(*) :: buf ! data buffer - END FUNCTION h5ltread_dataset_int1_c - END INTERFACE + f_ptr = C_LOC(buf(1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_int1_c(loc_id,namelen,dset_name,type_id,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr,dims) END SUBROUTINE h5ltread_dataset_f_int1 @@ -2064,14 +1078,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_f_int2 - !DEC$endif - ! - 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 @@ -2079,46 +1085,16 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(inout), & - DIMENSION(dims(1),dims(2)) :: buf ! data buffer + DIMENSION(dims(1),dims(2)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_int2_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_int2_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER, INTENT(in), & - DIMENSION(dims(1),dims(2)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_int2_c - END INTERFACE + f_ptr = C_LOC(buf(1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_int2_c(loc_id,namelen,dset_name,type_id,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr,dims) END SUBROUTINE h5ltread_dataset_f_int2 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_f_int3 - ! - ! 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_int3(loc_id,& dset_name,& type_id,& @@ -2127,14 +1103,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_f_int3 - !DEC$endif - ! - 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 @@ -2142,58 +1110,20 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_int3_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_int3_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER, INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_int3_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_int3_c(loc_id,namelen,dset_name,type_id,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr,dims) END SUBROUTINE h5ltread_dataset_f_int3 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_f_int4 - ! - ! 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_int4(loc_id, dset_name, type_id, buf, & dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_f_int4 - !DEC$endif - ! - 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 @@ -2201,58 +1131,20 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_int4_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_int4_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER, INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_int4_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_int4_c(loc_id,namelen,dset_name,type_id,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr,dims) END SUBROUTINE h5ltread_dataset_f_int4 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_f_int5 - ! - ! 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_int5(loc_id, dset_name, type_id, buf, & dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_f_int5 - !DEC$endif - ! - 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 @@ -2260,26 +1152,13 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_int5_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_int5_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER, INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_int5_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_int5_c(loc_id,namelen,dset_name,type_id,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr,dims) END SUBROUTINE h5ltread_dataset_f_int5 @@ -2304,14 +1183,6 @@ CONTAINS dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_f_int6 - !DEC$endif - ! - 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 @@ -2319,58 +1190,20 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_int6_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_int6_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER, INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_int6_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_int6_c(loc_id,namelen,dset_name,type_id,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr,dims) END SUBROUTINE h5ltread_dataset_f_int6 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_f_int7 - ! - ! 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_int7(loc_id, dset_name, type_id, buf, & dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_f_int7 - !DEC$endif - ! - 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 @@ -2378,32 +1211,19 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_int7_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_int7_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER, INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_int7_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_int7_c(loc_id,namelen,dset_name,type_id,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr,dims) END SUBROUTINE h5ltread_dataset_f_int7 !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_f_c_float1 + ! Function(s): h5ltread_dataset_f_c_float(1-7) ! ! Purpose: Read a dataset of a type TYPE_ID ! @@ -2427,59 +1247,22 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_f_c_float1 - !DEC$endif - ! - 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(*) :: buf ! data buffer + REAL(KIND=C_FLOAT), INTENT(inout), 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 - INTERFACE - INTEGER FUNCTION h5ltread_dataset_fl1_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_fl1_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_FLOAT), INTENT(in), DIMENSION(*) :: buf ! data buffer - END FUNCTION h5ltread_dataset_fl1_c - END INTERFACE + f_ptr = C_LOC(buf(1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_fl1_c(loc_id,namelen,dset_name,type_id,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr,dims) END SUBROUTINE h5ltread_dataset_f_c_float1 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_f_c_float2 - ! - ! 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_float2(loc_id,& dset_name,& type_id,& @@ -2488,15 +1271,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_f_c_float2 - !DEC$endif - ! - - 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 @@ -2504,46 +1278,16 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length REAL(KIND=C_FLOAT), INTENT(inout), & - DIMENSION(dims(1),dims(2)) :: buf ! data buffer + DIMENSION(dims(1),dims(2)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_fl2_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_fl2_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_FLOAT), INTENT(in), & - DIMENSION(dims(1),dims(2)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_fl2_c - END INTERFACE + f_ptr = C_LOC(buf(1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_fl2_c(loc_id,namelen,dset_name,type_id,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr,dims) END SUBROUTINE h5ltread_dataset_f_c_float2 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_f_c_float3 - ! - ! 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_float3(loc_id,& dset_name,& type_id,& @@ -2552,14 +1296,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_f_c_float3 - !DEC$endif - ! - 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 @@ -2567,58 +1303,20 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length REAL(KIND=C_FLOAT), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_fl3_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_fl3_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_FLOAT), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_fl3_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_fl3_c(loc_id,namelen,dset_name,type_id,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr,dims) END SUBROUTINE h5ltread_dataset_f_c_float3 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_f_c_float4 - ! - ! 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_float4(loc_id, dset_name, type_id, buf, & dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_f_c_float4 - !DEC$endif - ! - 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 @@ -2626,58 +1324,20 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_fl4_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_fl4_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_FLOAT), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_fl4_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_fl4_c(loc_id,namelen,dset_name,type_id,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr,dims) END SUBROUTINE h5ltread_dataset_f_c_float4 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_f_c_float5 - ! - ! 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_float5(loc_id, dset_name, type_id, buf, & dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_f_c_float5 - !DEC$endif - ! - 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 @@ -2685,26 +1345,13 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_fl5_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_fl5_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_FLOAT), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_fl5_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_fl5_c(loc_id,namelen,dset_name,type_id,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr,dims) END SUBROUTINE h5ltread_dataset_f_c_float5 @@ -2729,14 +1376,6 @@ CONTAINS dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_f_c_float6 - !DEC$endif - ! - 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 @@ -2744,58 +1383,20 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_fl6_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_fl6_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_FLOAT), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_fl6_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_fl6_c(loc_id,namelen,dset_name,type_id,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr,dims) END SUBROUTINE h5ltread_dataset_f_c_float6 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_f_c_float7 - ! - ! 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_float7(loc_id, dset_name, type_id, buf, & dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_f_c_float7 - !DEC$endif - ! - 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 @@ -2803,32 +1404,19 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_fl7_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_fl7_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_FLOAT), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_fl7_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_fl7_c(loc_id,namelen,dset_name,type_id,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr,dims) END SUBROUTINE h5ltread_dataset_f_c_float7 !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_f_c_double1 + ! Function(s): h5ltread_dataset_f_c_double(1-7) ! ! Purpose: Read a dataset of a type TYPE_ID ! @@ -2852,59 +1440,22 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport ::h5ltread_dataset_f_c_double1 - !DEC$endif - ! - 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(*) :: buf ! data buffer + REAL(KIND=C_DOUBLE), INTENT(inout), 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 - INTERFACE - INTEGER FUNCTION h5ltread_dataset_dl1_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_dl1_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_DOUBLE), INTENT(in), DIMENSION(*) :: buf ! data buffer - END FUNCTION h5ltread_dataset_dl1_c - END INTERFACE + f_ptr = C_LOC(buf(1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_dl1_c(loc_id,namelen,dset_name,type_id,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr,dims) END SUBROUTINE h5ltread_dataset_f_c_double1 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_f_c_double2 - ! - ! 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_double2(loc_id,& dset_name,& type_id,& @@ -2913,14 +1464,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_f_c_double2 - !DEC$endif - ! - 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 @@ -2928,46 +1471,16 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length REAL(KIND=C_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2)) :: buf ! data buffer + DIMENSION(dims(1),dims(2)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_dl2_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_dl2_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_dl2_c - END INTERFACE + f_ptr = C_LOC(buf(1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_dl2_c(loc_id,namelen,dset_name,type_id,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr,dims) END SUBROUTINE h5ltread_dataset_f_c_double2 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_f_c_double3 - ! - ! 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_double3(loc_id,& dset_name,& type_id,& @@ -2976,14 +1489,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_f_c_double3 - !DEC$endif - ! - 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 @@ -2991,58 +1496,20 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length REAL(KIND=C_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_dl3_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_dl3_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_dl3_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_dl3_c(loc_id,namelen,dset_name,type_id,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr,dims) END SUBROUTINE h5ltread_dataset_f_c_double3 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_f_c_double4 - ! - ! 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_double4(loc_id, dset_name, type_id, buf, & dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_f_c_double4 - !DEC$endif - ! - 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 @@ -3050,58 +1517,20 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_dl4_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_dl4_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_dl4_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_dl4_c(loc_id,namelen,dset_name,type_id,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr,dims) END SUBROUTINE h5ltread_dataset_f_c_double4 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_f_c_double5 - ! - ! 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_double5(loc_id, dset_name, type_id, buf, & dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_f_c_double5 - !DEC$endif - ! - 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 @@ -3109,58 +1538,20 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_dl5_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_dl5_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_dl5_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_dl5_c(loc_id,namelen,dset_name,type_id,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr,dims) END SUBROUTINE h5ltread_dataset_f_c_double5 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_f_c_double6 - ! - ! 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_double6(loc_id, dset_name, type_id, buf, & dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_f_c_double6 - !DEC$endif - ! - 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 @@ -3168,58 +1559,20 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_dl6_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_dl6_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_dl6_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_dl6_c(loc_id,namelen,dset_name,type_id,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr,dims) END SUBROUTINE h5ltread_dataset_f_c_double6 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_f_c_double7 - ! - ! 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_double7(loc_id, dset_name, type_id, buf, & dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_f_c_double7 - !DEC$endif - ! - 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 @@ -3227,31 +1580,18 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_dl7_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_dl7_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_dl7_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_dl7_c(loc_id,namelen,dset_name,type_id,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr,dims) END SUBROUTINE h5ltread_dataset_f_c_double7 !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_f_c_long_double1 + ! Function(s): h5ltread_dataset_f_c_long_double(1-7) ! ! Purpose: Read a dataset of a type TYPE_ID ! @@ -3275,59 +1615,22 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport ::h5ltread_dataset_f_c_long_double1 - !DEC$endif - ! - 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(*) :: buf ! data buffer + REAL(KIND=C_LONG_DOUBLE), INTENT(inout), 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 - INTERFACE - INTEGER FUNCTION h5ltread_dataset_dl1_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_dl1_c') - IMPORT :: C_CHAR, C_LONG_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_LONG_DOUBLE), INTENT(in), DIMENSION(*) :: buf ! data buffer - END FUNCTION h5ltread_dataset_dl1_c - END INTERFACE + f_ptr = C_LOC(buf(1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_dl1_c(loc_id,namelen,dset_name,type_id,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr,dims) END SUBROUTINE h5ltread_dataset_f_c_long_double1 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_f_c_long_double2 - ! - ! 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_double2(loc_id,& dset_name,& type_id,& @@ -3336,14 +1639,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_f_c_long_double2 - !DEC$endif - ! - 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 @@ -3351,46 +1646,16 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length REAL(KIND=C_LONG_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2)) :: buf ! data buffer + DIMENSION(dims(1),dims(2)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_dl2_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_dl2_c') - IMPORT :: C_CHAR, C_LONG_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_dl2_c - END INTERFACE + f_ptr = C_LOC(buf(1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_dl2_c(loc_id,namelen,dset_name,type_id,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr,dims) END SUBROUTINE h5ltread_dataset_f_c_long_double2 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_f_c_long_double3 - ! - ! 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_double3(loc_id,& dset_name,& type_id,& @@ -3399,14 +1664,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_f_c_long_double3 - !DEC$endif - ! - 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 @@ -3414,58 +1671,20 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length REAL(KIND=C_LONG_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_dl3_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_dl3_c') - IMPORT :: C_CHAR, C_LONG_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_dl3_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_dl3_c(loc_id,namelen,dset_name,type_id,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr,dims) END SUBROUTINE h5ltread_dataset_f_c_long_double3 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_f_c_long_double4 - ! - ! 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_long_double4(loc_id, dset_name, type_id, buf, & dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_f_c_long_double4 - !DEC$endif - ! - 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 @@ -3473,58 +1692,20 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_dl4_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_dl4_c') - IMPORT :: C_CHAR, C_LONG_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_dl4_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_dl4_c(loc_id,namelen,dset_name,type_id,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr,dims) END SUBROUTINE h5ltread_dataset_f_c_long_double4 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_f_c_long_double5 - ! - ! 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_long_double5(loc_id, dset_name, type_id, buf, & dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_f_c_long_double5 - !DEC$endif - ! - 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 @@ -3532,58 +1713,20 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_dl5_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_dl5_c') - IMPORT :: C_CHAR, C_LONG_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_dl5_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_dl5_c(loc_id,namelen,dset_name,type_id,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr,dims) END SUBROUTINE h5ltread_dataset_f_c_long_double5 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_f_c_long_double6 - ! - ! 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_long_double6(loc_id, dset_name, type_id, buf, & dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_f_c_long_double6 - !DEC$endif - ! - 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 @@ -3591,58 +1734,20 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_dl6_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_dl6_c') - IMPORT :: C_CHAR, C_LONG_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_dl6_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_dl6_c(loc_id,namelen,dset_name,type_id,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr,dims) END SUBROUTINE h5ltread_dataset_f_c_long_double6 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_f_c_long_double7 - ! - ! 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_long_double7(loc_id, dset_name, type_id, buf, & dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_f_c_long_double7 - !DEC$endif - ! - 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 @@ -3650,26 +1755,13 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_dl7_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_dl7_c') - IMPORT :: C_CHAR, C_LONG_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_dl7_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_dl7_c(loc_id,namelen,dset_name,type_id,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,f_ptr,dims) END SUBROUTINE h5ltread_dataset_f_c_long_double7 @@ -3698,60 +1790,22 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_int_f_1 - !DEC$endif - ! - 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(*) :: buf ! data buffer + INTEGER, INTENT(in), DIMENSION(*), TARGET :: buf ! data buffer INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_nint1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_nint1_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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(*) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_nint1_c - END INTERFACE + INTEGER(size_t) :: namelen ! name length + TYPE(C_PTR) :: f_ptr + + f_ptr = C_LOC(buf(1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_nint1_c(loc_id,namelen,dset_name,rank,dims,h5t_native_integer,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,h5t_native_integer,f_ptr) END SUBROUTINE h5ltmake_dataset_int_f_1 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_int_f_2 - ! - ! 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_2 (loc_id,& dset_name,& rank,& @@ -3760,14 +1814,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_int_f_2 - !DEC$endif - ! - 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 @@ -3775,49 +1821,16 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(in), & - DIMENSION(dims(1),dims(2)) :: buf ! data buffer + DIMENSION(dims(1),dims(2)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_nint2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_nint2_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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(dims(1),dims(2)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_nint2_c - END INTERFACE + f_ptr = C_LOC(buf(1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_nint2_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,f_ptr) END SUBROUTINE h5ltmake_dataset_int_f_2 - - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_int_f_3 - ! - ! 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_3 (loc_id,& dset_name,& rank,& @@ -3826,14 +1839,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_int_f_3 - !DEC$endif - ! - 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 @@ -3841,60 +1846,20 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_nint3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_nint3_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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(dims(1),dims(2),dims(3)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_nint3_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_nint3_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,f_ptr) END SUBROUTINE h5ltmake_dataset_int_f_3 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_int_f_4 - ! - ! Purpose: Creates and writes a dataset of H5T_NATIVE_INT type - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_int_f_4(loc_id, dset_name, rank, dims, & buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_int_f_4 - !DEC$endif - ! - 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 @@ -3902,60 +1867,20 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_nint4_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_nint4_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_nint4_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_nint4_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,f_ptr) END SUBROUTINE h5ltmake_dataset_int_f_4 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_int_f_5 - ! - ! Purpose: Creates and writes a dataset of H5T_NATIVE_INT type - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_int_f_5(loc_id, dset_name, rank, dims, & buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_int_f_5 - !DEC$endif - ! - 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 @@ -3963,60 +1888,20 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length INTEGER, INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_nint5_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_nint5_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_nint5_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_nint5_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,f_ptr) END SUBROUTINE h5ltmake_dataset_int_f_5 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_int_f_6 - ! - ! Purpose: Creates and writes a dataset of H5T_NATIVE_INT type - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_int_f_6(loc_id, dset_name, rank, dims, & buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_int_f_6 - !DEC$endif - ! - 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 @@ -4024,96 +1909,41 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_nint6_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_nint6_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_nint6_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_nint6_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,f_ptr) END SUBROUTINE h5ltmake_dataset_int_f_6 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_int_f_7 - ! - ! Purpose: Creates and writes a dataset of H5T_NATIVE_INT type - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_int_f_7(loc_id, dset_name, rank, dims, & buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_int_f_7 - !DEC$endif - ! - 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(size_t) :: namelen ! name length INTEGER, INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_nint7_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_nint7_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_nint7_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_nint7_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,f_ptr) END SUBROUTINE h5ltmake_dataset_int_f_7 !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_c_float_f_1 + ! Function(s): h5ltmake_dataset_c_float_f_(1-7) ! - ! Purpose: Creates and writes a dataset of H5T_NATIVE_C_FLOAT type + ! Purpose: Creates and writes a dataset of H5T_NATIVE_REAL type ! ! Return: Success: 0, Failure: -1 ! @@ -4135,64 +1965,22 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_c_float_f_1 - !DEC$endif - ! - 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(*) :: buf ! data buffer + REAL(KIND=C_FLOAT), INTENT(in), DIMENSION(*), TARGET :: buf INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen ! name length + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_nfl1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_nfl1_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NFL1_C'::h5ltmake_dataset_nfl1_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: dset_name - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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(*) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_nfl1_c - END INTERFACE + f_ptr = C_LOC(buf(1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_nfl1_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,f_ptr) END SUBROUTINE h5ltmake_dataset_c_float_f_1 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_c_float_f_2 - ! - ! Purpose: Creates and writes a dataset of H5T_NATIVE_C_FLOAT type - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: pvn@ncsa.uiuc.edu - ! - ! Date: September 22, 2004 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_c_float_f_2 (loc_id,& dset_name,& rank,& @@ -4201,14 +1989,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_c_float_f_2 - !DEC$endif - ! - 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 @@ -4216,47 +1996,16 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length REAL(KIND=C_FLOAT), INTENT(in), & - DIMENSION(dims(1),dims(2)) :: buf ! data buffer + DIMENSION(dims(1),dims(2)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_nfl2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_nfl2_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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(dims(1),dims(2)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_nfl2_c - END INTERFACE + f_ptr = C_LOC(buf(1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_nfl2_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,f_ptr) END SUBROUTINE h5ltmake_dataset_c_float_f_2 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_c_float_f_3 - ! - ! Purpose: Creates and writes a dataset of H5T_NATIVE_C_FLOAT type - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: pvn@ncsa.uiuc.edu - ! - ! Date: September 22, 2004 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_c_float_f_3 (loc_id,& dset_name,& rank,& @@ -4265,14 +2014,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_c_float_f_3 - !DEC$endif - ! - 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 @@ -4280,59 +2021,20 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length REAL(KIND=C_FLOAT), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_nfl3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_nfl3_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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(dims(1),dims(2),dims(3)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_nfl3_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_nfl3_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,f_ptr) END SUBROUTINE h5ltmake_dataset_c_float_f_3 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_c_float_f_4 - ! - ! Purpose: Creates and writes a dataset of H5T_NATIVE_C_FLOAT type - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_c_float_f_4 (loc_id, dset_name, rank, dims, & buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_c_float_f_4 - !DEC$endif - ! - 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 @@ -4340,59 +2042,20 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_nfl4_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_nfl4_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_nfl4_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_nfl4_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,f_ptr) END SUBROUTINE h5ltmake_dataset_c_float_f_4 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_c_float_f_5 - ! - ! Purpose: Creates and writes a dataset of H5T_NATIVE_C_FLOAT type - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_c_float_f_5 (loc_id, dset_name, rank, dims, & buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_c_float_f_5 - !DEC$endif - ! - 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 @@ -4400,59 +2063,20 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_nfl5_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_nfl5_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_nfl5_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_nfl5_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,f_ptr) END SUBROUTINE h5ltmake_dataset_c_float_f_5 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_c_float_f_6 - ! - ! Purpose: Creates and writes a dataset of H5T_NATIVE_C_FLOAT type - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_c_float_f_6 (loc_id, dset_name, rank, dims, & buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_c_float_f_6 - !DEC$endif - ! - 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 @@ -4460,59 +2084,20 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_nfl6_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_nfl6_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_nfl6_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_nfl6_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,f_ptr) END SUBROUTINE h5ltmake_dataset_c_float_f_6 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_c_float_f_7 - ! - ! Purpose: Creates and writes a dataset of H5T_NATIVE_C_FLOAT type - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_c_float_f_7 (loc_id, dset_name, rank, dims, & buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_c_float_f_7 - !DEC$endif - ! - 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 @@ -4520,32 +2105,18 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_nfl7_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_nfl7_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_nfl7_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_nfl7_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,f_ptr) END SUBROUTINE h5ltmake_dataset_c_float_f_7 !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_c_double_f_1 + ! Function9s): h5ltmake_dataset_c_double_f_(1-7) ! ! Purpose: Creates and writes a dataset of H5T_NATIVE_DOUBLE type ! @@ -4569,14 +2140,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_c_double_f_1 - !DEC$endif - ! - 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 @@ -4584,48 +2147,16 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length REAL(KIND=C_DOUBLE), INTENT(in), & - DIMENSION(dims(1)) :: buf ! data buffer + DIMENSION(dims(1)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_ndl1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_ndl1_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_DOUBLE), INTENT(in), & - DIMENSION(dims(1)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_ndl1_c - END INTERFACE + f_ptr = C_LOC(buf(1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_ndl1_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,f_ptr) END SUBROUTINE h5ltmake_dataset_c_double_f_1 - - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_c_double_f_2 - ! - ! 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_2 (loc_id,& dset_name,& rank,& @@ -4634,14 +2165,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_c_double_f_2 - !DEC$endif - ! - 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 @@ -4649,47 +2172,16 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length REAL(KIND=C_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2)) :: buf ! data buffer + DIMENSION(dims(1),dims(2)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_ndl2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_ndl2_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_ndl2_c - END INTERFACE + f_ptr = C_LOC(buf(1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_ndl2_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,f_ptr) END SUBROUTINE h5ltmake_dataset_c_double_f_2 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_c_double_f_3 - ! - ! 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_3 (loc_id,& dset_name,& rank,& @@ -4698,14 +2190,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_c_double_f_3 - !DEC$endif - ! - 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 @@ -4713,59 +2197,20 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length REAL(KIND=C_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_ndl3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_ndl3_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_ndl3_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_ndl3_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,f_ptr) END SUBROUTINE h5ltmake_dataset_c_double_f_3 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_c_double_f_4 - ! - ! Purpose: Creates and writes a dataset of H5T_NATIVE_DOUBLE type - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_c_double_f_4 (loc_id, dset_name, rank, dims,& buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_c_double_f_4 - !DEC$endif - ! - 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 @@ -4773,59 +2218,20 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_ndl4_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_ndl4_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_ndl4_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_ndl4_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,f_ptr) END SUBROUTINE h5ltmake_dataset_c_double_f_4 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_c_double_f_5 - ! - ! Purpose: Creates and writes a dataset of H5T_NATIVE_DOUBLE type - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_c_double_f_5 (loc_id, dset_name, rank, dims,& buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_c_double_f_5 - !DEC$endif - ! - 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 @@ -4833,59 +2239,20 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_ndl5_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_ndl5_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_ndl5_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_ndl5_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,f_ptr) END SUBROUTINE h5ltmake_dataset_c_double_f_5 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_c_double_f_6 - ! - ! Purpose: Creates and writes a dataset of H5T_NATIVE_DOUBLE type - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_c_double_f_6 (loc_id, dset_name, rank, dims,& buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_c_double_f_5 - !DEC$endif - ! - 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 @@ -4893,59 +2260,20 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_ndl6_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_ndl6_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_ndl6_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_ndl6_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,f_ptr) END SUBROUTINE h5ltmake_dataset_c_double_f_6 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_c_double_f_7 - ! - ! Purpose: Creates and writes a dataset of H5T_NATIVE_DOUBLE type - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_c_double_f_7 (loc_id, dset_name, rank, dims,& buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_c_double_f_5 - !DEC$endif - ! - 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 @@ -4953,32 +2281,18 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_ndl7_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_ndl7_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_ndl7_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_ndl7_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,buf) + errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,f_ptr) END SUBROUTINE h5ltmake_dataset_c_double_f_7 !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_c_long_double_f_1 + ! Function(s): h5ltmake_dataset_c_long_double_f_(1-7) ! ! Purpose: Creates and writes a dataset of H5T_NATIVE_DOUBLE type ! @@ -5002,14 +2316,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_c_long_double_f_1 - !DEC$endif - ! - 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 @@ -5017,48 +2323,16 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length REAL(KIND=C_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1)) :: buf ! data buffer + DIMENSION(dims(1)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_ndl1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_ndl1_c') - IMPORT :: C_CHAR, C_LONG_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_ndl1_c - END INTERFACE + f_ptr = C_LOC(buf(1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_ndl1_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,buf) + 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 - - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_c_long_double_f_2 - ! - ! 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_2 (loc_id,& dset_name,& rank,& @@ -5067,14 +2341,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_c_long_double_f_2 - !DEC$endif - ! - 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 @@ -5082,47 +2348,16 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length REAL(KIND=C_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2)) :: buf ! data buffer + DIMENSION(dims(1),dims(2)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_ndl2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_ndl2_c') - IMPORT :: C_CHAR, C_LONG_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_ndl2_c - END INTERFACE + f_ptr = C_LOC(buf(1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_ndl2_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,buf) + 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 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_c_long_double_f_3 - ! - ! 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_3 (loc_id,& dset_name,& rank,& @@ -5131,14 +2366,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_c_long_double_f_3 - !DEC$endif - ! - 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 @@ -5146,59 +2373,20 @@ CONTAINS INTEGER :: errcode ! error code INTEGER(size_t) :: namelen ! name length REAL(KIND=C_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_ndl3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_ndl3_c') - IMPORT :: C_CHAR, C_LONG_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_ndl3_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_ndl3_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,buf) + 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 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_c_long_double_f_4 - ! - ! Purpose: Creates and writes a dataset of H5T_NATIVE_DOUBLE type - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_c_long_double_f_4 (loc_id, dset_name, rank, dims,& buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_c_long_double_f_4 - !DEC$endif - ! - 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 @@ -5206,59 +2394,20 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_ndl4_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_ndl4_c') - IMPORT :: C_CHAR, C_LONG_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_ndl4_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_ndl4_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,buf) + 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 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_c_long_double_f_5 - ! - ! Purpose: Creates and writes a dataset of H5T_NATIVE_DOUBLE type - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_c_long_double_f_5 (loc_id, dset_name, rank, dims,& buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_c_long_double_f_5 - !DEC$endif - ! - 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 @@ -5266,59 +2415,20 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_ndl5_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_ndl5_c') - IMPORT :: C_CHAR, C_LONG_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_ndl5_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_ndl5_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,buf) + 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 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_c_long_double_f_6 - ! - ! Purpose: Creates and writes a dataset of H5T_NATIVE_DOUBLE type - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_c_long_double_f_6 (loc_id, dset_name, rank, dims,& buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_c_long_double_f_5 - !DEC$endif - ! - 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 @@ -5326,59 +2436,20 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_ndl6_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_ndl6_c') - IMPORT :: C_CHAR, C_LONG_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_ndl6_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_ndl6_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,buf) + 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 - !------------------------------------------------------------------------- - ! Function: h5ltmake_dataset_c_long_double_f_7 - ! - ! Purpose: Creates and writes a dataset of H5T_NATIVE_DOUBLE type - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltmake_dataset_c_long_double_f_7 (loc_id, dset_name, rank, dims,& buf, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_c_long_double_f_5 - !DEC$endif - ! - 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 @@ -5386,32 +2457,18 @@ CONTAINS 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltmake_dataset_ndl7_c(loc_id,namelen,dset_name,rank,dims,type_id,buf) & - BIND(C,NAME='h5ltmake_dataset_ndl7_c') - IMPORT :: C_CHAR, C_LONG_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_LONG_DOUBLE), INTENT(in), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer - END FUNCTION h5ltmake_dataset_ndl7_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltmake_dataset_ndl7_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,buf) + 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 !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_int_f_1 + ! Function(s): h5ltread_dataset_int_f_(1-7) ! ! Purpose: Read a dataset ! @@ -5434,61 +2491,22 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_int_f_1 - !DEC$endif - ! - 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)) :: buf ! data buffer + DIMENSION(dims(1)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_nint1_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_nint1_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER, INTENT(inout), & - DIMENSION(dims(1)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_nint1_c - END INTERFACE + f_ptr = C_LOC(buf(1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_nint1_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,f_ptr,dims) END SUBROUTINE h5ltread_dataset_int_f_1 - - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_int_f_2 - ! - ! 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_2(loc_id,& dset_name,& buf,& @@ -5496,60 +2514,22 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_int_f_2 - !DEC$endif - ! - 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_nint2_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_nint2_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER, INTENT(inout), & - DIMENSION(dims(1),dims(2)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_nint2_c - END INTERFACE + f_ptr = C_LOC(buf(1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_nint2_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,f_ptr,dims) END SUBROUTINE h5ltread_dataset_int_f_2 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_int_f_3 - ! - ! 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_3(loc_id,& dset_name,& buf,& @@ -5557,274 +2537,101 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_int_f_3 - !DEC$endif - ! - 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_nint3_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_nint3_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER, INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_nint3_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_nint3_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,f_ptr,dims) END SUBROUTINE h5ltread_dataset_int_f_3 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_int_f_4 - ! - ! Purpose: Read a dataset - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltread_dataset_int_f_4(loc_id, dset_name, buf, dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_int_f_4 - !DEC$endif - ! - 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_nint4_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_nint4_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER, INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_nint4_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_nint4_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,f_ptr,dims) END SUBROUTINE h5ltread_dataset_int_f_4 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_int_f_5 - ! - ! Purpose: Read a dataset - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltread_dataset_int_f_5(loc_id, dset_name, buf, dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_int_f_5 - !DEC$endif - ! - 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_nint5_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_nint5_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER, INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_nint5_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_nint5_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,f_ptr,dims) END SUBROUTINE h5ltread_dataset_int_f_5 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_int_f_6 - ! - ! Purpose: Read a dataset - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltread_dataset_int_f_6(loc_id, dset_name, buf, dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_int_f_6 - !DEC$endif - ! - 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_nint6_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_nint6_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER, INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_nint6_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_nint6_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,f_ptr,dims) END SUBROUTINE h5ltread_dataset_int_f_6 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_int_f_7 - ! - ! Purpose: Read a dataset - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltread_dataset_int_f_7(loc_id, dset_name, buf, dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_int_f_7 - !DEC$endif - ! - 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_nint7_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_nint7_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - INTEGER, INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_nint7_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_nint7_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,f_ptr,dims) END SUBROUTINE h5ltread_dataset_int_f_7 !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_c_float_f_1 + ! Function(s): h5ltread_dataset_c_float_f_(1-7) ! ! Purpose: Read a dataset ! @@ -5847,61 +2654,22 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_c_float_f_1 - !DEC$endif - ! - 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)) :: buf ! data buffer + DIMENSION(dims(1)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_nfl1_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_nfl1_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_FLOAT), INTENT(inout), & - DIMENSION(dims(1)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_nfl1_c - END INTERFACE + f_ptr = C_LOC(buf(1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_nfl1_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,f_ptr,dims) END SUBROUTINE h5ltread_dataset_c_float_f_1 - - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_c_float_f_2 - ! - ! 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_2(loc_id,& dset_name,& buf,& @@ -5909,60 +2677,22 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_c_float_f_2 - !DEC$endif - ! - 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_nfl2_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_nfl2_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_FLOAT), INTENT(inout), & - DIMENSION(dims(1),dims(2)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_nfl2_c - END INTERFACE + f_ptr = C_LOC(buf(1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_nfl2_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,f_ptr,dims) END SUBROUTINE h5ltread_dataset_c_float_f_2 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_c_float_f_3 - ! - ! 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_3(loc_id,& dset_name,& buf,& @@ -5970,273 +2700,100 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_c_float_f_3 - !DEC$endif - ! - 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_nfl3_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_nfl3_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_FLOAT), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_nfl3_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_nfl3_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,f_ptr,dims) END SUBROUTINE h5ltread_dataset_c_float_f_3 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_c_float_f_4 - ! - ! Purpose: Read a dataset - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltread_dataset_c_float_f_4(loc_id, dset_name, buf, dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_c_float_f_4 - !DEC$endif - ! - 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_nfl4_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_nfl4_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_FLOAT), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_nfl4_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_nfl4_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,f_ptr,dims) END SUBROUTINE h5ltread_dataset_c_float_f_4 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_c_float_f_5 - ! - ! Purpose: Read a dataset - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltread_dataset_c_float_f_5(loc_id, dset_name, buf, dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_c_float_f_5 - !DEC$endif - ! - 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_nfl5_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_nfl5_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_FLOAT), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_nfl5_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_nfl5_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,f_ptr,dims) END SUBROUTINE h5ltread_dataset_c_float_f_5 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_c_float_f_6 - ! - ! Purpose: Read a dataset - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltread_dataset_c_float_f_6(loc_id, dset_name, buf, dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_c_float_f_6 - !DEC$endif - ! - 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_nfl6_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_nfl6_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_FLOAT), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_nfl6_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_nfl6_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,f_ptr,dims) END SUBROUTINE h5ltread_dataset_c_float_f_6 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_c_float_f_7 - ! - ! Purpose: Read a dataset - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltread_dataset_c_float_f_7(loc_id, dset_name, buf, dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_c_float_f_7 - !DEC$endif - ! - 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_nfl7_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_nfl7_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_FLOAT), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_nfl7_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_nfl7_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,f_ptr,dims) END SUBROUTINE h5ltread_dataset_c_float_f_7 !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_c_double_f_1 + ! Function(s): h5ltread_dataset_c_double_f_(1-7) ! ! Purpose: Read a dataset ! @@ -6259,61 +2816,22 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_c_double_f_1 - !DEC$endif - ! - 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)) :: buf ! data buffer + DIMENSION(dims(1)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_ndl1_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_ndl1_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_DOUBLE), INTENT(inout), & - DIMENSION(dims(1)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_ndl1_c - END INTERFACE + f_ptr = C_LOC(buf(1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_ndl1_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr,dims) END SUBROUTINE h5ltread_dataset_c_double_f_1 - - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_c_double_f_2 - ! - ! Purpose: Read a dataset - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: pvn@ncsa.uiuc.edu - ! - ! Date: September 22, 2004 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltread_dataset_c_double_f_2(loc_id,& dset_name,& buf,& @@ -6321,60 +2839,22 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_c_double_f_2 - !DEC$endif - ! - 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_ndl2_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_ndl2_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_ndl2_c - END INTERFACE + f_ptr = C_LOC(buf(1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_ndl2_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr,dims) END SUBROUTINE h5ltread_dataset_c_double_f_2 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_c_double_f_3 - ! - ! Purpose: Read a dataset - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: pvn@ncsa.uiuc.edu - ! - ! Date: September 22, 2004 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltread_dataset_c_double_f_3(loc_id,& dset_name,& buf,& @@ -6382,273 +2862,100 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_c_double_f_3 - !DEC$endif - ! - 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_ndl3_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_ndl3_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_ndl3_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_ndl3_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr,dims) END SUBROUTINE h5ltread_dataset_c_double_f_3 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_c_double_f_4 - ! - ! Purpose: Read a dataset - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltread_dataset_c_double_f_4(loc_id, dset_name, buf, dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_c_double_f_4 - !DEC$endif - ! - 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_ndl4_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_ndl4_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_ndl4_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_ndl4_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr,dims) END SUBROUTINE h5ltread_dataset_c_double_f_4 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_c_double_f_5 - ! - ! Purpose: Read a dataset - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltread_dataset_c_double_f_5(loc_id, dset_name, buf, dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_c_double_f_5 - !DEC$endif - ! - 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_ndl5_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_ndl5_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_ndl5_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_ndl5_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr,dims) END SUBROUTINE h5ltread_dataset_c_double_f_5 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_c_double_f_6 - ! - ! Purpose: Read a dataset - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltread_dataset_c_double_f_6(loc_id, dset_name, buf, dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_c_double_f_6 - !DEC$endif - ! - 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_ndl6_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_ndl6_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_ndl6_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_ndl6_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr,dims) END SUBROUTINE h5ltread_dataset_c_double_f_6 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_c_double_f_7 - ! - ! Purpose: Read a dataset - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltread_dataset_c_double_f_7(loc_id, dset_name, buf, dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_c_double_f_7 - !DEC$endif - ! - 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_ndl7_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_ndl7_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_ndl7_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_ndl7_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr,dims) END SUBROUTINE h5ltread_dataset_c_double_f_7 !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_c_long_double_f_1 + ! Function9s): h5ltread_dataset_c_long_double_f_(1-7) ! ! Purpose: Read a dataset ! @@ -6671,61 +2978,22 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_c_long_double_f_1 - !DEC$endif - ! - 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)) :: buf ! data buffer + DIMENSION(dims(1)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_ndl1_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_ndl1_c') - IMPORT :: C_CHAR, C_LONG_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_LONG_DOUBLE), INTENT(inout), & - DIMENSION(dims(1)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_ndl1_c - END INTERFACE + f_ptr = C_LOC(buf(1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_ndl1_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr,dims) END SUBROUTINE h5ltread_dataset_c_long_double_f_1 - - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_c_long_double_f_2 - ! - ! 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_2(loc_id,& dset_name,& buf,& @@ -6733,60 +3001,22 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_c_long_double_f_2 - !DEC$endif - ! - 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_ndl2_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_ndl2_c') - IMPORT :: C_CHAR, C_LONG_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_LONG_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_ndl2_c - END INTERFACE + f_ptr = C_LOC(buf(1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_ndl2_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr,dims) END SUBROUTINE h5ltread_dataset_c_long_double_f_2 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_c_long_double_f_3 - ! - ! 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_3(loc_id,& dset_name,& buf,& @@ -6794,268 +3024,95 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_c_long_double_f_3 - !DEC$endif - ! - 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_ndl3_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_ndl3_c') - IMPORT :: C_CHAR, C_LONG_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_LONG_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_ndl3_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_ndl3_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr,dims) END SUBROUTINE h5ltread_dataset_c_long_double_f_3 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_c_long_double_f_4 - ! - ! Purpose: Read a dataset - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltread_dataset_c_long_double_f_4(loc_id, dset_name, buf, dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_c_long_double_f_4 - !DEC$endif - ! - 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_ndl4_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_ndl4_c') - IMPORT :: C_CHAR, C_LONG_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_LONG_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_ndl4_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_ndl4_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr,dims) END SUBROUTINE h5ltread_dataset_c_long_double_f_4 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_c_long_double_f_5 - ! - ! Purpose: Read a dataset - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltread_dataset_c_long_double_f_5(loc_id, dset_name, buf, dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_c_long_double_f_5 - !DEC$endif - ! - 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)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_ndl5_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_ndl5_c') - IMPORT :: C_CHAR, C_LONG_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_LONG_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_ndl5_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_ndl5_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr,dims) END SUBROUTINE h5ltread_dataset_c_long_double_f_5 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_c_long_double_f_6 - ! - ! Purpose: Read a dataset - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltread_dataset_c_long_double_f_6(loc_id, dset_name, buf, dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_c_long_double_f_6 - !DEC$endif - ! - 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),dims(6)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_ndl6_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_ndl6_c') - IMPORT :: C_CHAR, C_LONG_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_LONG_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_ndl6_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_ndl6_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr,dims) END SUBROUTINE h5ltread_dataset_c_long_double_f_6 - !------------------------------------------------------------------------- - ! Function: h5ltread_dataset_c_long_double_f_7 - ! - ! Purpose: Read a dataset - ! - ! Return: Success: 0, Failure: -1 - ! - ! Programmer: M. Scot Breitenfeld - ! - ! Date: March 8, 2011 - ! - ! Comments: - ! - ! Modifications: - ! - !------------------------------------------------------------------------- - SUBROUTINE h5ltread_dataset_c_long_double_f_7(loc_id, dset_name, buf, dims, errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_c_long_double_f_7 - !DEC$endif - ! - 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),dims(6),dims(7)) :: buf ! data buffer + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltread_dataset_ndl7_c(loc_id,namelen,dset_name,type_id,buf,dims) & - BIND(C,NAME='h5ltread_dataset_ndl7_c') - IMPORT :: C_CHAR, C_LONG_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(hid_t), INTENT(in) :: type_id ! datatype identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf - REAL(KIND=C_LONG_DOUBLE), INTENT(inout), & - DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer - END FUNCTION h5ltread_dataset_ndl7_c - END INTERFACE + f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) namelen = LEN(dset_name) - errcode = h5ltread_dataset_ndl7_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,buf,dims) + errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,f_ptr,dims) END SUBROUTINE h5ltread_dataset_c_long_double_f_7 @@ -7083,12 +3140,6 @@ CONTAINS errcode ) IMPLICIT NONE - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltmake_dataset_string_f - !DEC$endif - ! 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) :: buf ! data buffer @@ -7102,11 +3153,11 @@ CONTAINS IMPORT :: C_CHAR IMPORT :: HID_T, SIZE_T, HSIZE_T IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(size_t) :: namelen ! length of name buffer - INTEGER(size_t) :: buflen ! length of data buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: buf ! data buffer + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + INTEGER(size_t) :: namelen ! length of name buffer + INTEGER(size_t) :: buflen ! length of data buffer + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: buf ! data buffer END FUNCTION h5ltmake_dataset_string_c END INTERFACE @@ -7139,19 +3190,11 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltread_dataset_string_f - !DEC$endif - ! - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset CHARACTER(LEN=*), INTENT(inout) :: buf ! data buffer INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen ! name length INTERFACE INTEGER FUNCTION h5ltread_dataset_string_c(loc_id,namelen,dset_name,buf) & @@ -7159,10 +3202,10 @@ CONTAINS IMPORT :: C_CHAR IMPORT :: HID_T, SIZE_T, HSIZE_T IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(size_t) :: namelen ! length of name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(inout) :: buf ! data buffer + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + INTEGER(size_t) :: namelen ! length of name buffer + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(inout) :: buf ! data buffer END FUNCTION h5ltread_dataset_string_c END INTERFACE @@ -7171,9 +3214,6 @@ CONTAINS END SUBROUTINE h5ltread_dataset_string_f - - - !------------------------------------------------------------------------- ! Make/Read attribute functions !------------------------------------------------------------------------- @@ -7204,42 +3244,21 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltset_attribute_int_f - !DEC$endif - ! - 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) :: attr_name ! name of the attribute INTEGER(size_t), INTENT(in) :: size ! size of attribute array INTEGER :: errcode ! error code - INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER, DIMENSION(*), TARGET :: buf ! data buffer INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: attrlen ! name length + INTEGER(size_t) :: attrlen ! name length + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltset_attribute_int_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf) & - BIND(C,NAME='h5ltset_attribute_int_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(size_t) :: namelen ! length of name buffer - INTEGER(size_t) :: attrlen ! length of attr name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: attr_name ! name of the attribute - INTEGER(size_t), INTENT(in) :: size ! size of attribute array - INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer - END FUNCTION h5ltset_attribute_int_c - END INTERFACE + f_ptr = C_LOC(buf(1:1)) namelen = LEN(dset_name) attrlen = LEN(attr_name) - errcode = h5ltset_attribute_int_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf) + errcode = h5ltset_attribute_c(loc_id,namelen,dset_name,attrlen,attr_name,size,f_ptr,'I'//C_NULL_CHAR) END SUBROUTINE h5ltset_attribute_int_f @@ -7268,42 +3287,21 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltset_attribute_c_float_f - !DEC$endif - ! - 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) :: attr_name ! name of the attribute INTEGER(size_t), INTENT(in) :: size ! size of attribute array INTEGER :: errcode ! error code - REAL(KIND=C_FLOAT), INTENT(in), DIMENSION(*) :: buf ! data buffer + REAL(KIND=C_FLOAT), INTENT(in), DIMENSION(*), TARGET :: buf ! data buffer INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: attrlen ! name length + INTEGER(size_t) :: attrlen ! name length + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltset_attribute_float_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf) & - BIND(C,NAME='h5ltset_attribute_float_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(size_t) :: namelen ! length of name buffer - INTEGER(size_t) :: attrlen ! length of attr name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: attr_name ! name of the attribute - INTEGER(size_t), INTENT(in) :: size ! size of attribute array - REAL(KIND=C_FLOAT), INTENT(in), DIMENSION(*) :: buf ! data buffer - END FUNCTION h5ltset_attribute_float_c - END INTERFACE + f_ptr = C_LOC(buf(1)) namelen = LEN(dset_name) attrlen = LEN(attr_name) - errcode = h5ltset_attribute_float_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf) + errcode = h5ltset_attribute_c(loc_id,namelen,dset_name,attrlen,attr_name,size,f_ptr,'R'//C_NULL_CHAR) END SUBROUTINE h5ltset_attribute_float_f @@ -7332,42 +3330,21 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltset_attribute_double_f - !DEC$endif - ! - 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) :: attr_name ! name of the attribute INTEGER(size_t), INTENT(in) :: size ! size of attribute array INTEGER :: errcode ! error code - REAL(KIND=C_DOUBLE), INTENT(in), DIMENSION(*) :: buf ! data buffer + REAL(KIND=C_DOUBLE), INTENT(in), DIMENSION(*), TARGET :: buf ! data buffer INTEGER(size_t) :: namelen ! name length INTEGER(size_t) :: attrlen ! name length + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltset_attribute_double_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf) & - BIND(C,NAME='h5ltset_attribute_double_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(size_t) :: namelen ! length of name buffer - INTEGER(size_t) :: attrlen ! length of attr name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: attr_name ! name of the attribute - INTEGER(size_t), INTENT(in) :: size ! size of attribute array - REAL(KIND=C_DOUBLE), INTENT(in), DIMENSION(*) :: buf ! data buffer - END FUNCTION h5ltset_attribute_double_c - END INTERFACE + f_ptr = C_LOC(buf(1)) namelen = LEN(dset_name) attrlen = LEN(attr_name) - errcode = h5ltset_attribute_double_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf) + errcode = h5ltset_attribute_c(loc_id,namelen,dset_name,attrlen,attr_name,size,f_ptr,'D'//C_NULL_CHAR) END SUBROUTINE h5ltset_attribute_double_f @@ -7396,48 +3373,25 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltset_attribute_string_f - !DEC$endif - ! - 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) :: attr_name ! name of the attribute INTEGER :: errcode ! error code - CHARACTER(LEN=*), DIMENSION(*), INTENT(in) :: buf ! data buffer + CHARACTER(LEN=*), DIMENSION(*), INTENT(in), TARGET :: buf ! data buffer INTEGER(size_t) :: namelen ! name length INTEGER(size_t) :: attrlen ! name length - INTEGER(size_t) :: buflen ! data buffer length + INTEGER(size_t) :: buflen ! data buffer length + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltset_attribute_string_c(loc_id,namelen,dset_name,attrlen,attr_name,buflen,buf) & - BIND(C,NAME='h5ltset_attribute_string_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(size_t) :: namelen ! length of name buffer - INTEGER(size_t) :: attrlen ! length of attr name buffer - INTEGER(size_t) :: buflen ! data buffer length - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: attr_name ! name of the attribute - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: buf ! data buffer - END FUNCTION h5ltset_attribute_string_c - END INTERFACE + f_ptr = C_LOC(buf(1)(1:1)) namelen = LEN(dset_name) attrlen = LEN(attr_name) buflen = LEN(buf) - errcode = h5ltset_attribute_string_c(loc_id,namelen,dset_name,attrlen,attr_name,buflen,buf) + errcode = h5ltset_attribute_c(loc_id,namelen,dset_name,attrlen,attr_name,buflen,f_ptr,'C'//C_NULL_CHAR) END SUBROUTINE h5ltset_attribute_string_f - - !------------------------------------------------------------------------- ! Function: h5ltget_attribute_int_f ! @@ -7462,46 +3416,26 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltget_attribute_int_f - !DEC$endif - ! - 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) :: attr_name ! name of the attribute INTEGER :: errcode ! error code - INTEGER, INTENT(inout), DIMENSION(*) :: buf ! data buffer + INTEGER, INTENT(inout), DIMENSION(*), TARGET :: buf! data buffer INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: attrlen ! name length + INTEGER(size_t) :: attrlen ! name length + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltget_attribute_int_c(loc_id,namelen,dset_name,attrlen,attr_name,buf) & - BIND(C,NAME='h5ltget_attribute_int_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(size_t) :: namelen ! length of name buffer - INTEGER(size_t) :: attrlen ! length of attr name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: attr_name ! name of the attribute - INTEGER, INTENT(inout), DIMENSION(*) :: buf ! data buffer - END FUNCTION h5ltget_attribute_int_c - END INTERFACE + f_ptr = C_LOC(buf(1)) namelen = LEN(dset_name) attrlen = LEN(attr_name) - errcode = h5ltget_attribute_int_c(loc_id,namelen,dset_name,attrlen,attr_name,buf) + errcode = h5ltget_attribute_c(loc_id,namelen,dset_name,attrlen,attr_name,f_ptr,'I'//C_NULL_CHAR) END SUBROUTINE h5ltget_attribute_int_f !------------------------------------------------------------------------- - ! Function: h5ltget_attribute_c_float_f + ! Function: h5ltget_attribute_float_f ! ! Purpose: Reads an attribute named ATTR_NAME ! @@ -7524,40 +3458,20 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltget_attribute_float_f - !DEC$endif - ! - 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) :: attr_name ! name of the attribute INTEGER :: errcode ! error code - REAL(KIND=C_FLOAT), INTENT(inout), DIMENSION(*) :: buf ! data buffer + REAL(KIND=C_FLOAT), INTENT(inout), DIMENSION(*), TARGET :: buf INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: attrlen ! name length + INTEGER(size_t) :: attrlen ! name length + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltget_attribute_float_c(loc_id,namelen,dset_name,attrlen,attr_name,buf) & - BIND(C,NAME='h5ltget_attribute_float_c') - IMPORT :: C_CHAR, C_FLOAT - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(size_t) :: namelen ! length of name buffer - INTEGER(size_t) :: attrlen ! length of attr name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: attr_name ! name of the attribute - REAL(KIND=C_FLOAT), INTENT(inout), DIMENSION(*) :: buf ! data buffer - END FUNCTION h5ltget_attribute_float_c - END INTERFACE + f_ptr = C_LOC(buf(1)) namelen = LEN(dset_name) attrlen = LEN(attr_name) - errcode = h5ltget_attribute_float_c(loc_id,namelen,dset_name,attrlen,attr_name,buf) + errcode = h5ltget_attribute_c(loc_id,namelen,dset_name,attrlen,attr_name,f_ptr,'R'//C_NULL_CHAR) END SUBROUTINE h5ltget_attribute_float_f @@ -7585,40 +3499,20 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltget_attribute_double_f - !DEC$endif - ! - 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) :: attr_name ! name of the attribute INTEGER :: errcode ! error code - REAL(KIND=C_DOUBLE),INTENT(inout),DIMENSION(*) :: buf ! data buffer + REAL(KIND=C_DOUBLE),INTENT(inout),DIMENSION(*), TARGET :: buf INTEGER(size_t) :: namelen ! name length INTEGER(size_t) :: attrlen ! name length + TYPE(C_PTR) :: f_ptr - INTERFACE - INTEGER FUNCTION h5ltget_attribute_double_c(loc_id,namelen,dset_name,attrlen,attr_name,buf) & - BIND(C,NAME='h5ltget_attribute_double_c') - IMPORT :: C_CHAR, C_DOUBLE - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - INTEGER(size_t) :: namelen ! length of name buffer - INTEGER(size_t) :: attrlen ! length of attr name buffer - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: attr_name ! name of the attribute - REAL(KIND=C_DOUBLE), INTENT(inout), DIMENSION(*) :: buf ! data buffer - END FUNCTION h5ltget_attribute_double_c - END INTERFACE + f_ptr = C_LOC(buf(1)) namelen = LEN(dset_name) attrlen = LEN(attr_name) - errcode = h5ltget_attribute_double_c(loc_id,namelen,dset_name,attrlen,attr_name,buf) + errcode = h5ltget_attribute_c(loc_id,namelen,dset_name,attrlen,attr_name,f_ptr,'D'//C_NULL_CHAR) END SUBROUTINE h5ltget_attribute_double_f @@ -7646,24 +3540,16 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltget_attribute_string_f - !DEC$endif - ! - 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) :: attr_name ! name of the attribute INTEGER :: errcode ! error code - CHARACTER(LEN=*), INTENT(inout) :: buf ! data buffer - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: attrlen ! name length - INTEGER(size_t) :: buf_size ! buf size + CHARACTER(LEN=*), INTENT(inout) :: buf + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: attrlen ! name length + INTEGER(size_t) :: buf_size ! buf size - INTERFACE + INTERFACE INTEGER FUNCTION h5ltget_attribute_string_c(loc_id,namelen,dset_name,attrlen,attr_name,buf,buf_size) & BIND(C,NAME='h5ltget_attribute_string_c') IMPORT :: C_CHAR @@ -7679,8 +3565,8 @@ CONTAINS END FUNCTION h5ltget_attribute_string_c END INTERFACE - namelen = LEN(dset_name) - attrlen = LEN(attr_name) + namelen = LEN(dset_name) + attrlen = LEN(attr_name) buf_size = LEN(buf) errcode = h5ltget_attribute_string_c(loc_id,namelen,dset_name,attrlen,attr_name,buf,buf_size) @@ -7714,14 +3600,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltget_dataset_ndims_f - !DEC$endif - ! - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset INTEGER, INTENT(inout) :: rank ! rank @@ -7769,14 +3647,6 @@ CONTAINS dset_name) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltfind_dataset_f - !DEC$endif - ! - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset INTEGER :: errcode ! error code @@ -7825,14 +3695,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltget_dataset_info_f - !DEC$endif - ! - 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(inout):: dims ! dimensions @@ -7891,14 +3753,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltget_attribute_ndims_f - !DEC$endif - ! - 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) :: attr_name ! name of the attribute @@ -7955,14 +3809,6 @@ CONTAINS errcode ) IMPLICIT NONE - - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltget_attribute_info_f - !DEC$endif - ! - 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) :: attr_name ! name of the attribute @@ -8016,12 +3862,6 @@ CONTAINS SUBROUTINE h5ltpath_valid_f(loc_id, path, check_object_valid, path_valid, errcode) IMPLICIT NONE - ! - !This definition is needed for Windows DLLs - !DEC$if defined(BUILD_HDF5_HL_DLL) - !DEC$attributes dllexport :: h5ltpath_valid_f - !DEC$endif - ! INTEGER(hid_t) , INTENT(IN) :: loc_id ! An identifier of an object in the file. CHARACTER(LEN=*), INTENT(IN) :: path ! Path to the object to check, relative to loc_id. LOGICAL , INTENT(IN) :: check_object_valid ! Indicates whether to check if the final component |