diff options
author | Scot Breitenfeld <brtnfld@hdfgroup.org> | 2011-10-14 18:39:47 (GMT) |
---|---|---|
committer | Scot Breitenfeld <brtnfld@hdfgroup.org> | 2011-10-14 18:39:47 (GMT) |
commit | 76e215174ab2afc3612e92b719d788b7d6c7f26f (patch) | |
tree | 00e1b9e99a8b1c30ad46f2f2543e2627020f5854 /fortran/src | |
parent | b92a7abb344f9965853464697c64503c5953ee49 (diff) | |
download | hdf5-76e215174ab2afc3612e92b719d788b7d6c7f26f.zip hdf5-76e215174ab2afc3612e92b719d788b7d6c7f26f.tar.gz hdf5-76e215174ab2afc3612e92b719d788b7d6c7f26f.tar.bz2 |
[svn-r21568] Description:
Merged robodoc headers from trunk in the 1.8 branch, remove functions that should have not been merged into the 1.8 branch, removed the robodoc docomentation.
Tested: jam (gnu, intel, pgi)
Diffstat (limited to 'fortran/src')
-rw-r--r-- | fortran/src/H5Aff_F03.f90 | 242 | ||||
-rw-r--r-- | fortran/src/H5Dff_F03.f90 | 283 | ||||
-rw-r--r-- | fortran/src/H5Ef.c | 160 | ||||
-rw-r--r-- | fortran/src/H5Eff_F03.f90 | 138 | ||||
-rw-r--r-- | fortran/src/H5Pff_F03.f90 | 683 | ||||
-rw-r--r-- | fortran/src/H5Tff_F03.f90 | 18 | ||||
-rw-r--r-- | fortran/src/H5_ff_F03.f90 | 4 | ||||
-rw-r--r-- | fortran/src/H5f90proto.h | 4 |
8 files changed, 739 insertions, 793 deletions
diff --git a/fortran/src/H5Aff_F03.f90 b/fortran/src/H5Aff_F03.f90 index e43e457..b9e6c92 100644 --- a/fortran/src/H5Aff_F03.f90 +++ b/fortran/src/H5Aff_F03.f90 @@ -173,6 +173,57 @@ MODULE H5A_PROVISIONAL CONTAINS +!****s* H5A (F03)/h5awrite_f_F90 +! +! NAME +! h5awrite_f_F90 +! +! PURPOSE +! Writes an attribute. +! +! Inputs: +! attr_id - Attribute identifier +! memtype_id - Attribute datatype identifier (in memory) +! dims - Array to hold corresponding dimension sizes of data buffer buf; +! dim(k) has value of the k-th dimension of buffer buf; +! values are ignored if buf is a scalar +! buf - Data buffer; may be a scalar or an array +! +! Outputs: +! hdferr - Returns 0 if successful and -1 if fails +! +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces are added for +! called C functions (it is needed for Windows +! port). February 27, 2001 +! +! dims parameter was added to make code portable; +! Aprile 4, 2001 +! +! Changed buf intent to INOUT to be consistant +! with how the C functions handles it. The pg +! compiler will return 0 if a buf value is not set. +! February, 2008 +! +! NOTES +! This function is overloaded to write INTEGER, +! REAL, DOUBLE PRECISION and CHARACTER buffers +! up to 7 dimensions. +! +! Fortran90 Interface: +!! SUBROUTINE h5awrite_f(attr_id, memtype_id, buf, dims, hdferr) +!! INTEGER(HID_T) , INTENT(IN) :: attr_id +!! INTEGER(HID_T) , INTENT(IN) :: memtype_id +!! TYPE , INTENT(IN) :: buf +!! INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims +!! INTEGER , INTENT(OUT) :: hdferr +!***** + + SUBROUTINE h5awrite_integer_scalar(attr_id, memtype_id, buf, dims, hdferr) USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE @@ -201,8 +252,8 @@ CONTAINS DIMENSION(dims(1)), TARGET :: buf ! Attribute data INTEGER, INTENT(OUT) :: hdferr ! Error code TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf) + + f_ptr = C_LOC(buf(1)) hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr) END SUBROUTINE h5awrite_integer_1 @@ -221,7 +272,7 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code TYPE(C_PTR) :: f_ptr - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1)) hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr) @@ -238,7 +289,7 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code TYPE(C_PTR) :: f_ptr - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1)) hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr) @@ -257,7 +308,7 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code TYPE(C_PTR) :: f_ptr - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1)) hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr) @@ -276,7 +327,7 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code TYPE(C_PTR) :: f_ptr - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1,1)) hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr) @@ -295,7 +346,7 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code TYPE(C_PTR) :: f_ptr - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1,1,1)) hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr) END SUBROUTINE h5awrite_integer_6 @@ -313,7 +364,7 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code TYPE(C_PTR) :: f_ptr - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr) @@ -348,7 +399,7 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code TYPE(C_PTR) :: f_ptr - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1)) hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr) @@ -368,7 +419,7 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code TYPE(C_PTR) :: f_ptr - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1)) hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr) @@ -388,7 +439,7 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code TYPE(C_PTR) :: f_ptr - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1)) hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr) END SUBROUTINE h5awrite_real_3 @@ -407,7 +458,7 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code TYPE(C_PTR) :: f_ptr - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1)) hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr) END SUBROUTINE h5awrite_real_4 @@ -445,7 +496,7 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code TYPE(C_PTR) :: f_ptr - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1,1,1)) hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr) END SUBROUTINE h5awrite_real_6 @@ -463,7 +514,7 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code TYPE(C_PTR) :: f_ptr - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr) END SUBROUTINE h5awrite_real_7 @@ -500,8 +551,6 @@ CONTAINS END SUBROUTINE h5awrite_char_scalar_fix - - SUBROUTINE h5awrite_char_1(attr_id, memtype_id, buf, dims, hdferr) USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE @@ -626,22 +675,75 @@ CONTAINS END SUBROUTINE h5awrite_char_7 -!****s* H5A (F03)/h5aread_f +!****s* H5A (F03)/h5awrite_f_F03 ! ! NAME -! h5aread_f +! h5awrite_f_F03 +! +! PURPOSE +! Writes an attribute. +! +! Inputs: +! attr_id - Attribute identifier +! memtype_id - Attribute datatype identifier (in memory) +! buf - Data buffer; may be a scalar or an array +! +! Outputs: +! hdferr - Returns 0 if successful and -1 if fails +! +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces are added for +! called C functions (it is needed for Windows +! port). February 27, 2001 +! +! NOTES +! This function is overloaded to write INTEGER, +! REAL, DOUBLE PRECISION and CHARACTER buffers +! up to 7 dimensions. +! +! Fortran2003 Interface: +!! SUBROUTINE h5awrite_f(attr_id, memtype_id, buf, hdferr) +!! INTEGER(HID_T) , INTENT(IN) :: attr_id +!! INTEGER(HID_T) , INTENT(IN) :: memtype_id +!! TYPE(C_PTR) , INTENT(IN) :: buf +!! INTEGER , INTENT(OUT) :: hdferr +!***** + + SUBROUTINE h5awrite_ptr(attr_id, mem_type_id, buf, hdferr) + USE, INTRINSIC :: ISO_C_BINDING + IMPLICIT NONE + INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier + INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier + TYPE(C_PTR), INTENT(IN), TARGET :: buf + INTEGER, INTENT(OUT) :: hdferr ! Error code + + hdferr = h5awrite_f_c(attr_id, mem_type_id, buf) + + END SUBROUTINE h5awrite_ptr + +!****s* H5A (F03)/h5aread_f_F90 +! +! NAME +! h5aread_f_F90 ! ! PURPOSE ! Reads an attribute. ! ! Inputs: -! attr_id - attribute identifier -! memtype_id - attribute memory type identifier -! dims - 1D array of size 7, stores sizes of the -! - buf array dimensions. +! attr_id - Attribute identifier +! memtype_id - Attribute datatype identifier (in memory) +! dims - Array to hold corresponding dimension sizes of data buffer buf; +! dim(k) has value of the k-th dimension of buffer buf; +! values are ignored if buf is a scalar +! ! Outputs: -! buf - buffer to read attribute data in -! hdferr - Returns 0 if successful and -1 if fails +! buf - Data buffer; may be a scalar or an array +! hdferr - Returns 0 if successful and -1 if fails +! ! AUTHOR ! Elena Pourmal ! August 12, 1999 @@ -663,7 +765,13 @@ CONTAINS ! This function is overloaded to write INTEGER, ! REAL, DOUBLE PRECISION and CHARACTER buffers ! up to 7 dimensions. -! +! Fortran90 Interface: +!! SUBROUTINE h5aread_f(attr_id, memtype_id, buf, dims, hdferr) +!! INTEGER(HID_T) , INTENT(IN) :: attr_id +!! INTEGER(HID_T) , INTENT(IN) :: memtype_id +!! TYPE , INTENT(INOUT) :: buf +!! INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims +!! INTEGER , INTENT(OUT) :: hdferr !***** SUBROUTINE h5aread_integer_scalar(attr_id, memtype_id, buf, dims, hdferr) USE, INTRINSIC :: ISO_C_BINDING @@ -692,7 +800,7 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code TYPE(C_PTR) :: f_ptr - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1)) hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr) END SUBROUTINE h5aread_integer_1 @@ -709,7 +817,7 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code TYPE(C_PTR) :: f_ptr - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1)) hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr) END SUBROUTINE h5aread_integer_2 @@ -727,7 +835,7 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code TYPE(C_PTR) :: f_ptr - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1)) hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr) END SUBROUTINE h5aread_integer_3 @@ -745,7 +853,7 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code TYPE(C_PTR) :: f_ptr - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1)) hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr) END SUBROUTINE h5aread_integer_4 @@ -763,7 +871,7 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code TYPE(C_PTR) :: f_ptr - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1,1)) hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr) END SUBROUTINE h5aread_integer_5 @@ -781,7 +889,7 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code TYPE(C_PTR) :: f_ptr - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1,1,1)) hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr) END SUBROUTINE h5aread_integer_6 @@ -799,7 +907,7 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code TYPE(C_PTR) :: f_ptr - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr) END SUBROUTINE h5aread_integer_7 @@ -833,7 +941,7 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code TYPE(C_PTR) :: f_ptr - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1)) hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr) END SUBROUTINE h5aread_real_1 @@ -851,7 +959,7 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code TYPE(C_PTR) :: f_ptr - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1)) hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr) END SUBROUTINE h5aread_real_2 @@ -870,7 +978,7 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code TYPE(C_PTR) :: f_ptr - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1)) hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr) END SUBROUTINE h5aread_real_3 @@ -888,7 +996,7 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code TYPE(C_PTR) :: f_ptr - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1)) hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr) END SUBROUTINE h5aread_real_4 @@ -906,7 +1014,7 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code TYPE(C_PTR) :: f_ptr - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1,1)) hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr) END SUBROUTINE h5aread_real_5 @@ -924,7 +1032,7 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code TYPE(C_PTR) :: f_ptr - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1,1,1)) hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr) END SUBROUTINE h5aread_real_6 @@ -942,7 +1050,7 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code TYPE(C_PTR) :: f_ptr - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr) END SUBROUTINE h5aread_real_7 @@ -1103,24 +1211,58 @@ CONTAINS END SUBROUTINE h5aread_char_7 - SUBROUTINE h5awrite_ptr(attr_id, mem_type_id, buf, hdferr) - USE, INTRINSIC :: ISO_C_BINDING - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier - INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier - TYPE(C_PTR), INTENT(IN), TARGET :: buf - INTEGER, INTENT(OUT) :: hdferr ! Error code - hdferr = h5awrite_f_c(attr_id, mem_type_id, buf) - - END SUBROUTINE h5awrite_ptr +!****s* H5A (F03)/h5aread_f_F03 +! +! NAME +! h5aread_f_F03 +! +! PURPOSE +! Reads an attribute. +! +! Inputs: +! attr_id - Attribute identifier +! memtype_id - Attribute datatype identifier (in memory) +! +! Outputs: +! buf - Data buffer; may be a scalar or an array +! hdferr - Returns 0 if successful and -1 if fails +! +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces are added for +! called C functions (it is needed for Windows +! port). February 27, 2001 +! +! dims parameter was added to make code portable; +! Aprile 4, 2001 +! +! Changed buf intent to INOUT to be consistant +! with how the C functions handles it. The pg +! compiler will return 0 if a buf value is not set. +! February, 2008 +! +! NOTES +! This function is overloaded to write INTEGER, +! REAL, DOUBLE PRECISION and CHARACTER buffers +! up to 7 dimensions. +! Fortran2003 Interface: +!! SUBROUTINE h5aread_f(attr_id, memtype_id, buf, hdferr) +!! INTEGER(HID_T) , INTENT(IN) :: attr_id +!! INTEGER(HID_T) , INTENT(IN) :: memtype_id +!! TYPE(C_PTR) , INTENT(INOUT) :: buf +!! INTEGER , INTENT(OUT) :: hdferr +!***** SUBROUTINE h5aread_ptr(attr_id, mem_type_id, buf, hdferr) USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier - TYPE(C_PTR), INTENT(IN), TARGET :: buf + TYPE(C_PTR), INTENT(INOUT), TARGET :: buf INTEGER, INTENT(OUT) :: hdferr ! Error code hdferr = h5aread_f_c(attr_id, mem_type_id, buf) diff --git a/fortran/src/H5Dff_F03.f90 b/fortran/src/H5Dff_F03.f90 index d99d31b..61d5dfc 100644 --- a/fortran/src/H5Dff_F03.f90 +++ b/fortran/src/H5Dff_F03.f90 @@ -5,9 +5,9 @@ ! ! PURPOSE ! This file contains Fortran 90 and Fortran 2003 interfaces for H5D functions. -! It contains the same functions as H5Dff_DEPRECIATE.f90 but includes the +! It contains the same functions as H5Dff_F90.f90 but includes the ! Fortran 2003 functions and the interface listings. This file will be compiled -! instead of H5Dff_DEPRECIATE.f90 if Fortran 2003 functions are enabled. +! instead of H5Dff_F90.f90 if Fortran 2003 functions are enabled. ! ! COPYRIGHT ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * @@ -37,8 +37,8 @@ ! (i.e. integer, dimension(*) :: ... ) ! (i.e. real , dimension(*) :: ... ) etc... ! -! (3) Could not place the USE ISO_C_BINDING in the module header because it may -! conflict with the USE ISO_C_BINDING included in the user's program. Moved +! (3) Could not place the USE, INTRINSIC :: ISO_C_BINDING in the module header because it may +! conflict with the USE, INTRINSIC :: ISO_C_BINDING included in the user's program. Moved ! the statement instead to each subroutine. ! ! @@ -71,7 +71,7 @@ ! CHARACTER(LEN=1), TARGET :: chr ! or ! CHARACTER, TARGET :: chr -! (B) +! ! *** IMPORTANT *** ! If you add a new H5D function you must add the function name to the ! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory. @@ -225,7 +225,7 @@ CONTAINS SUBROUTINE h5dwrite_reference_obj(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -258,7 +258,7 @@ CONTAINS SUBROUTINE h5dwrite_reference_dsetreg(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -321,7 +321,7 @@ CONTAINS SUBROUTINE h5dwrite_integer_scalar(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -352,7 +352,7 @@ CONTAINS SUBROUTINE h5dwrite_integer_1(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -376,7 +376,7 @@ CONTAINS IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id IF(PRESENT(file_space_id)) file_space_id_default = file_space_id - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1)) hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, & file_space_id_default, xfer_prp_default, f_ptr) @@ -385,7 +385,7 @@ CONTAINS SUBROUTINE h5dwrite_integer_2(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -408,7 +408,7 @@ CONTAINS IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id IF(PRESENT(file_space_id)) file_space_id_default = file_space_id - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1)) hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, & file_space_id_default, xfer_prp_default, f_ptr) @@ -417,7 +417,7 @@ CONTAINS SUBROUTINE h5dwrite_integer_3(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -440,7 +440,7 @@ CONTAINS IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id IF(PRESENT(file_space_id)) file_space_id_default = file_space_id - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1)) hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, & file_space_id_default, xfer_prp_default, f_ptr) @@ -449,7 +449,7 @@ CONTAINS SUBROUTINE h5dwrite_integer_4(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -472,7 +472,7 @@ CONTAINS IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id IF(PRESENT(file_space_id)) file_space_id_default = file_space_id - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1)) hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, & file_space_id_default, xfer_prp_default, f_ptr) @@ -481,7 +481,7 @@ CONTAINS SUBROUTINE h5dwrite_integer_5(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -505,7 +505,7 @@ CONTAINS IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id IF(PRESENT(file_space_id)) file_space_id_default = file_space_id - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1,1)) hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, & file_space_id_default, xfer_prp_default, f_ptr) @@ -514,7 +514,7 @@ CONTAINS SUBROUTINE h5dwrite_integer_6(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -538,7 +538,7 @@ CONTAINS IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id IF(PRESENT(file_space_id)) file_space_id_default = file_space_id - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1,1,1)) hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, & file_space_id_default, xfer_prp_default, f_ptr) @@ -547,7 +547,7 @@ CONTAINS SUBROUTINE h5dwrite_integer_7(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -571,7 +571,7 @@ CONTAINS IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id IF(PRESENT(file_space_id)) file_space_id_default = file_space_id - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, & file_space_id_default, xfer_prp_default, f_ptr) @@ -580,7 +580,7 @@ CONTAINS SUBROUTINE h5dwrite_char_scalar(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -598,7 +598,7 @@ CONTAINS SUBROUTINE h5dwrite_char_scalar_fix(dset_id, mem_type_id, buf, buf_len, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -631,7 +631,7 @@ CONTAINS SUBROUTINE h5dwrite_char_1(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -664,7 +664,7 @@ CONTAINS SUBROUTINE h5dwrite_char_2(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -698,7 +698,7 @@ CONTAINS SUBROUTINE h5dwrite_char_3(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -732,7 +732,7 @@ CONTAINS SUBROUTINE h5dwrite_char_4(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -765,7 +765,7 @@ CONTAINS SUBROUTINE h5dwrite_char_5(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -797,7 +797,7 @@ CONTAINS SUBROUTINE h5dwrite_char_6(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -831,7 +831,7 @@ CONTAINS SUBROUTINE h5dwrite_char_7(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -866,7 +866,7 @@ CONTAINS SUBROUTINE h5dwrite_real_scalar(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -897,7 +897,7 @@ CONTAINS SUBROUTINE h5dwrite_real_1(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -920,7 +920,7 @@ CONTAINS IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id IF(PRESENT(file_space_id)) file_space_id_default = file_space_id - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1)) hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, & file_space_id_default, xfer_prp_default, f_ptr) @@ -929,7 +929,7 @@ CONTAINS SUBROUTINE h5dwrite_real_2(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -953,7 +953,7 @@ CONTAINS IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id IF(PRESENT(file_space_id)) file_space_id_default = file_space_id - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1)) hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, & file_space_id_default, xfer_prp_default, f_ptr) @@ -962,7 +962,7 @@ CONTAINS SUBROUTINE h5dwrite_real_3(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -985,7 +985,7 @@ CONTAINS IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id IF(PRESENT(file_space_id)) file_space_id_default = file_space_id - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1)) hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, & file_space_id_default, xfer_prp_default, f_ptr) @@ -994,7 +994,7 @@ CONTAINS SUBROUTINE h5dwrite_real_4(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -1017,7 +1017,7 @@ CONTAINS IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id IF(PRESENT(file_space_id)) file_space_id_default = file_space_id - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1)) hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, & file_space_id_default, xfer_prp_default, f_ptr) @@ -1026,7 +1026,7 @@ CONTAINS SUBROUTINE h5dwrite_real_5(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -1049,7 +1049,7 @@ CONTAINS IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id IF(PRESENT(file_space_id)) file_space_id_default = file_space_id - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1,1)) hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, & file_space_id_default, xfer_prp_default, f_ptr) @@ -1058,7 +1058,7 @@ CONTAINS SUBROUTINE h5dwrite_real_6(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -1081,7 +1081,7 @@ CONTAINS IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id IF(PRESENT(file_space_id)) file_space_id_default = file_space_id - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1,1,1)) hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, & file_space_id_default, xfer_prp_default, f_ptr) @@ -1090,7 +1090,7 @@ CONTAINS SUBROUTINE h5dwrite_real_7(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -1113,7 +1113,7 @@ CONTAINS IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id IF(PRESENT(file_space_id)) file_space_id_default = file_space_id - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, & file_space_id_default, xfer_prp_default, f_ptr) @@ -1167,7 +1167,7 @@ CONTAINS ! SUBROUTINE h5dread_reference_obj(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -1200,7 +1200,7 @@ CONTAINS SUBROUTINE h5dread_reference_dsetreg(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -1265,7 +1265,7 @@ CONTAINS SUBROUTINE h5dread_integer_scalar(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -1297,7 +1297,7 @@ CONTAINS SUBROUTINE h5dread_integer_1(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -1320,7 +1320,7 @@ CONTAINS IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id IF(PRESENT(file_space_id)) file_space_id_default = file_space_id - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1)) hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, & file_space_id_default, xfer_prp_default, f_ptr) @@ -1329,7 +1329,7 @@ CONTAINS SUBROUTINE h5dread_integer_2(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -1352,7 +1352,7 @@ CONTAINS IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id IF(PRESENT(file_space_id)) file_space_id_default = file_space_id - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1)) hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, & file_space_id_default, xfer_prp_default, f_ptr) @@ -1361,7 +1361,7 @@ CONTAINS SUBROUTINE h5dread_integer_3(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -1385,7 +1385,7 @@ CONTAINS IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id IF(PRESENT(file_space_id)) file_space_id_default = file_space_id - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1)) hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, & file_space_id_default, xfer_prp_default, f_ptr) @@ -1394,7 +1394,7 @@ CONTAINS SUBROUTINE h5dread_integer_4(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -1417,7 +1417,7 @@ CONTAINS IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id IF(PRESENT(file_space_id)) file_space_id_default = file_space_id - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1)) hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, & file_space_id_default, xfer_prp_default, f_ptr) @@ -1426,7 +1426,7 @@ CONTAINS SUBROUTINE h5dread_integer_5(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -1450,7 +1450,7 @@ CONTAINS IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id IF(PRESENT(file_space_id)) file_space_id_default = file_space_id - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1,1)) hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, & file_space_id_default, xfer_prp_default, f_ptr) @@ -1459,7 +1459,7 @@ CONTAINS SUBROUTINE h5dread_integer_6(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -1482,7 +1482,7 @@ CONTAINS IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id IF(PRESENT(file_space_id)) file_space_id_default = file_space_id - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1,1,1)) hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, & file_space_id_default, xfer_prp_default, f_ptr) @@ -1491,7 +1491,7 @@ CONTAINS SUBROUTINE h5dread_integer_7(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -1514,7 +1514,7 @@ CONTAINS IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id IF(PRESENT(file_space_id)) file_space_id_default = file_space_id - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, & file_space_id_default, xfer_prp_default, f_ptr) @@ -1523,7 +1523,7 @@ CONTAINS SUBROUTINE h5dread_char_scalar(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -1545,7 +1545,7 @@ CONTAINS SUBROUTINE h5dread_char_scalar_fix(dset_id, mem_type_id, buf, buf_len, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -1579,7 +1579,7 @@ CONTAINS SUBROUTINE h5dread_char_1(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -1612,7 +1612,7 @@ CONTAINS SUBROUTINE h5dread_char_2(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -1646,7 +1646,7 @@ CONTAINS SUBROUTINE h5dread_char_3(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -1679,7 +1679,7 @@ CONTAINS SUBROUTINE h5dread_char_4(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -1714,7 +1714,7 @@ CONTAINS SUBROUTINE h5dread_char_5(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -1748,7 +1748,7 @@ CONTAINS SUBROUTINE h5dread_char_6(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -1783,7 +1783,7 @@ CONTAINS SUBROUTINE h5dread_char_7(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -1818,7 +1818,7 @@ CONTAINS SUBROUTINE h5dread_real_scalar(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -1849,7 +1849,7 @@ CONTAINS SUBROUTINE h5dread_real_1(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -1872,7 +1872,7 @@ CONTAINS IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id IF(PRESENT(file_space_id)) file_space_id_default = file_space_id - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1)) hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, & file_space_id_default, xfer_prp_default, f_ptr) @@ -1881,7 +1881,7 @@ CONTAINS SUBROUTINE h5dread_real_2(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -1904,7 +1904,7 @@ CONTAINS IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id IF(PRESENT(file_space_id)) file_space_id_default = file_space_id - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1)) hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, & file_space_id_default, xfer_prp_default, f_ptr) @@ -1913,7 +1913,7 @@ CONTAINS SUBROUTINE h5dread_real_3(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -1936,7 +1936,7 @@ CONTAINS IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id IF(PRESENT(file_space_id)) file_space_id_default = file_space_id - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1)) hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, & file_space_id_default, xfer_prp_default, f_ptr) @@ -1945,7 +1945,7 @@ CONTAINS SUBROUTINE h5dread_real_4(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -1968,7 +1968,7 @@ CONTAINS IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id IF(PRESENT(file_space_id)) file_space_id_default = file_space_id - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1)) hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, & file_space_id_default, xfer_prp_default, f_ptr) @@ -1977,7 +1977,7 @@ CONTAINS SUBROUTINE h5dread_real_5(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -2000,7 +2000,7 @@ CONTAINS IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id IF(PRESENT(file_space_id)) file_space_id_default = file_space_id - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1,1)) hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, & file_space_id_default, xfer_prp_default, f_ptr) @@ -2010,7 +2010,7 @@ CONTAINS SUBROUTINE h5dread_real_6(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -2033,7 +2033,7 @@ CONTAINS IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id IF(PRESENT(file_space_id)) file_space_id_default = file_space_id - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1,1,1)) hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, & file_space_id_default, xfer_prp_default, f_ptr) @@ -2042,7 +2042,7 @@ CONTAINS SUBROUTINE h5dread_real_7(dset_id, mem_type_id, buf, dims, hdferr, & mem_space_id, file_space_id, xfer_prp) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier @@ -2066,20 +2066,56 @@ CONTAINS IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id IF(PRESENT(file_space_id)) file_space_id_default = file_space_id - f_ptr = C_LOC(buf) + f_ptr = C_LOC(buf(1,1,1,1,1,1,1)) hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, & file_space_id_default, xfer_prp_default, f_ptr) END SUBROUTINE h5dread_real_7 +!****s* H5D (F03)/h5dwrite_f_F03 +! +! NAME +! h5dwrite_f_F03 +! +! PURPOSE +! Writes raw data from a dataset into a buffer. +! +! Inputs: +! dset_id - Identifier of the dataset to write to. +! mem_type_id - Identifier of the memory datatype. +! buf - Buffer with data to be written to the file. +! +! Outputs: +! hdferr - Returns 0 if successful and -1 if fails +! +! Optional parameters: +! mem_space_id - Identifier of the memory dataspace. +! file_space_id - Identifier of the dataset's dataspace in the file. +! xfer_prp - Identifier of a transfer property list for this I/O operation. +! +! AUTHOR +! M. Scot Breitenfeld +! September 17, 2011 +! +! Fortran2003 Interface: +!! SUBROUTINE h5dwrite_f(dset_id, mem_type_id, buf, hdferr, & +!! mem_space_id, file_space_id, xfer_prp) +!! INTEGER(HID_T), INTENT(IN) :: dset_id +!! INTEGER(HID_T), INTENT(IN) :: mem_type_id +!! TYPE(C_PTR) , INTENT(IN) :: buf +!! INTEGER , INTENT(OUT) :: hdferr +!! INTEGER(HID_T), INTENT(IN) , OPTIONAL :: mem_space_id +!! INTEGER(HID_T), INTENT(IN) , OPTIONAL :: file_space_id +!! INTEGER(HID_T), INTENT(IN) , OPTIONAL :: xfer_prp +!***** SUBROUTINE h5dwrite_ptr(dset_id, mem_type_id, buf, hdferr, & mem_space_id, file_space_id, xfer_prp) USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier - TYPE(C_PTR), INTENT(INOUT) :: buf + TYPE(C_PTR), INTENT(IN) :: buf INTEGER, INTENT(OUT) :: hdferr ! Error code INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier @@ -2101,7 +2137,42 @@ CONTAINS file_space_id_default, xfer_prp_default, buf) END SUBROUTINE h5dwrite_ptr - +!****s* H5D (F03)/h5dread_f_F03 +! +! NAME +! h5dread_f_F03 +! +! PURPOSE +! Reads raw data from a dataset into a buffer. +! +! Inputs: +! dset_id - Identifier of the dataset read from. +! mem_type_id - Identifier of the memory datatype. +! +! Outputs: +! buf - Buffer to receive data read from file. +! hdferr - Returns 0 if successful and -1 if fails +! +! Optional parameters: +! mem_space_id - Identifier of the memory dataspace. +! file_space_id - Identifier of the dataset's dataspace in the file. +! xfer_prp - Identifier of a transfer property list for this I/O operation. +! +! AUTHOR +! M. Scot Breitenfeld +! September 17, 2011 +! +! Fortran2003 Interface: +!! SUBROUTINE h5dread_f(dset_id, mem_type_id, buf, hdferr, & +!! mem_space_id, file_space_id, xfer_prp) +!! INTEGER(HID_T), INTENT(IN) :: dset_id +!! INTEGER(HID_T), INTENT(IN) :: mem_type_id +!! TYPE(C_PTR) , INTENT(INOUT) :: buf +!! INTEGER , INTENT(OUT) :: hdferr +!! INTEGER(HID_T), INTENT(IN) , OPTIONAL :: mem_space_id +!! INTEGER(HID_T), INTENT(IN) , OPTIONAL :: file_space_id +!! INTEGER(HID_T), INTENT(IN) , OPTIONAL :: xfer_prp +!***** SUBROUTINE h5dread_ptr(dset_id, mem_type_id, buf, hdferr, & mem_space_id, file_space_id, xfer_prp) USE, INTRINSIC :: ISO_C_BINDING @@ -2158,7 +2229,7 @@ CONTAINS ! SUBROUTINE h5dfill_integer(fill_value, space_id, buf, hdferr) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER, INTENT(IN), TARGET :: fill_value ! Fill value INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier @@ -2208,7 +2279,7 @@ CONTAINS ! March 12, 2003 ! SUBROUTINE h5dfill_real(fill_valuer, space_id, buf, hdferr) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE REAL, INTENT(IN), TARGET :: fill_valuer ! Fill value INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier @@ -2257,7 +2328,7 @@ CONTAINS ! March 12, 2003 ! SUBROUTINE h5dfill_char(fill_value, space_id, buf, hdferr) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE CHARACTER, INTENT(IN), TARGET :: fill_value ! Fill value INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier @@ -2278,9 +2349,9 @@ CONTAINS END SUBROUTINE h5dfill_char ! -!****s* H5D/h5dvlen_reclaim +!****s* H5D (F03)/h5dvlen_reclaim_f ! NAME -! h5dvlen_reclaim +! h5dvlen_reclaim_f ! ! PURPOSE ! Reclaims VL datatype memory buffers. @@ -2290,28 +2361,24 @@ CONTAINS ! type_id - Identifier of the datatype. ! space_id - Identifier of the dataspace. ! plist_id - Identifier of the property list used to create the buffer. -! buf - Pointer to the buffer to be reclaimed. +! buf - Pointer to the buffer to be reclaimed. ! ! Outputs: -! hdferr - error code -! Success: 0 -! Failure: -1 +! hdferr - Returns 0 if successful and -1 if fails ! ! AUTHOR ! M. Scot Breitenfeld ! January 11, 2011 ! -! Signature: - SUBROUTINE H5Dvlen_reclaim_f(type_id, space_id, plist_id, buf, hdferr) - - USE ISO_C_BINDING +! Fortran2003 Interface: + SUBROUTINE h5dvlen_reclaim_f(type_id, space_id, plist_id, buf, hdferr) + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE - - INTEGER(HID_T), INTENT(IN) :: type_id ! Identifier of the datatype. - INTEGER(HID_T), INTENT(IN) :: space_id ! Identifier of the dataspace. - INTEGER(HID_T), INTENT(IN) :: plist_id ! Identifier of the property list used to create the buffer. - TYPE(C_PTR), INTENT(INOUT) :: buf ! Pointer to the buffer to be reclaimed. - INTEGER, INTENT(OUT) :: hdferr ! Error code. + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER(HID_T), INTENT(IN) :: space_id + INTEGER(HID_T), INTENT(IN) :: plist_id + TYPE(C_PTR) , INTENT(INOUT) :: buf + INTEGER , INTENT(OUT) :: hdferr !***** INTERFACE diff --git a/fortran/src/H5Ef.c b/fortran/src/H5Ef.c index 875b59f..64ecdc4 100644 --- a/fortran/src/H5Ef.c +++ b/fortran/src/H5Ef.c @@ -289,17 +289,6 @@ done: * July 22, 2009 * SOURCE */ -/* int_f */ -/* nh5eset_auto2_c(hid_t_f *estack_id, H5E_auto2_t *func, void *client_data) */ -/* /\******\/ */ -/* { */ -/* int ret_val = -1; */ -/* herr_t status = -1; */ - -/* status = H5Eset_auto2((hid_t)*estack_id, *func, client_data); */ -/* if (status >= 0) ret_val = 0; */ -/* return ret_val; */ -/* } */ int_f nh5eset_auto2_c(int_f *printflag, hid_t_f *estack_id, H5E_auto2_t func, void *client_data) @@ -318,152 +307,3 @@ nh5eset_auto2_c(int_f *printflag, hid_t_f *estack_id, H5E_auto2_t func, void *cl return ret_val; } - - -int_f -H5Eget_auto3(void **client_data) -{ - int *i; - - i = (int*)client_data; - - *i = 1000; - printf(" Buffer In (C) = %d \n", *i); - - return 0; - -} - -int_f nprocess_buffer(hid_t_f *estack_id, void **buffer) -{ - int status; - int *i; - H5E_auto2_t func_c; - - status = H5Eget_auto2((hid_t)*estack_id, &func_c, buffer); -/* status = H5Eget_auto3(buffer); */ - - i = (int*)buffer; - - printf(" Buffer In (C) = %d \n", *i); - return; -} -/****if* H5Ef/h5eget_auto_c - * NAME - * h5eget_auto_c - * PURPOSE - * Calls H5Eget_auto2 - * INPUTS - * estack_id - Error stack identifier - * OUTPUTS - * func - The function currently set to be called upon an error condition. - * client_data - Data currently set to be passed to the error function. - * RETURNS - * 0 on success, -1 on failure - * AUTHOR - * M. Scot Breitenfeld - * July 10, 2009 - * NOTE - * if func is the default H5Eprint or H5Eprint2 then need to use the Fortran callback function - * associated with H5Eprint*. - * SOURCE -*/ -int_f -nh5eget_auto_c(hid_t_f *estack_id, H5E_auto2_t *func, void **client_data, int_f *ret_func) -/******/ -{ - int ret_val = -1; - herr_t status = -1; - hid_t dataset; - H5E_auto2_t func_c; - void *client_data_c=NULL; - void **data_c; - int *i; - -/* status = H5Eget_auto3(client_data); */ -/* i = (int*)client_data; */ - -/* printf(" Buffer In (C3) = %d \n", *i); */ - -/* return 0; */ - -/* *ret_func = -1; */ - - status = H5Eget_auto2((hid_t)*estack_id, &func_c, &client_data_c); - -/* status = H5Eget_auto2((hid_t)*estack_id, &func_c, client_data); */ - - i = (int*)*client_data; - -/* *i = 1000; */ - - -/* i = (int*)client_data_c; */ -/* *i = 100; */ - -/* *client_data = client_data_c; */ -/* *data_c = client_data_c; */ - - printf("aa %d \n",*((int*)client_data_c)); -/* printf("bb %d \n",**((int**)client_data)); */ -/* printf("cc %d \n",**((int**)data_c)); */ - -/* printf("a %p \n",client_data_c); */ -/* printf("b %p \n",*client_data); */ -/* printf("c %p \n",*data_c); */ - -/* i = (int*)client_data_c; */ -/* **client_data = *((int*)client_data_c);*/ - -/* *i = 200; */ - -/* if(client_data == NULL) */ -/* printf("error \n"); */ - -/* if(func == NULL) */ -/* printf("error \n"); */ - -/* #ifdef H5_USE_16_API */ -/* if (func == (H5E_auto_t)H5Eprint) */ -/* *ret_func = 0; */ -/* #else /\* H5_USE_16_API *\/ */ -/* if (func == (H5E_auto2_t)H5Eprint2) */ -/* *ret_func = 0; */ -/* #endif /\* H5_USE_16_API *\/ */ - -/* #ifdef H5_USE_16_API */ -/* if (func == (H5E_auto_t)H5Eprint) */ -/* *ret_func = 0; */ -/* #else /\* H5_USE_16_API *\/ */ -/* if (func == (H5E_auto2_t)H5Eprint2) */ -/* *ret_func = 0; */ /* printf("%p %p \n",func,(H5E_auto2_t)H5Eprint2); */ -/* #endif /\* H5_USE_16_API *\/ */ - -/* printf(" ret %d \n", ret_val); */ - if (status >= 0) ret_val = 0; - ret_func = 0; - return ret_val; -} - -void* -nh5eget_auto_c2(hid_t_f *estack_id, H5E_auto2_t *func, int_f *ret_func) -/******/ -{ - int ret_val = -1; - herr_t status = -1; - hid_t dataset; - H5E_auto2_t func_c; - void *client_data_c=NULL; - void **data_c; - int *i; - - status = H5Eget_auto2((hid_t)*estack_id, &func_c, &client_data_c); - - printf("a %p \n",client_data_c); - - - if (status >= 0) ret_val = 0; - ret_func = 0; - return client_data_c; -} - diff --git a/fortran/src/H5Eff_F03.f90 b/fortran/src/H5Eff_F03.f90 index bf4797f..3a40a55 100644 --- a/fortran/src/H5Eff_F03.f90 +++ b/fortran/src/H5Eff_F03.f90 @@ -44,20 +44,6 @@ MODULE H5E_PROVISIONAL CONTAINS - INTEGER FUNCTION h5eprint_def() bind(C) - - USE ISO_C_BINDING - IMPLICIT NONE - INTEGER :: hdferr - - PRINT*,'Inside h5eprint_def' -! STOP - -!!$ CALL h5eprint_f(hdferr) -!!$ h5eprint_def = hdferr - - END FUNCTION h5eprint_def - !****s* H5E/h5eset_auto2_f ! ! NAME @@ -121,128 +107,4 @@ CONTAINS hdferr = h5eset_auto2_c(printflag, estack_id_default, func_default, client_data_default) END SUBROUTINE h5eset_auto_f -!****s* H5E/h5eget_auto_f -! -! NAME -! h5eget_auto_f -! -! PURPOSE -! Returns the settings for the automatic error stack traversal function and its data. -! -! Inputs: -! estack_id - Error stack identifier. H5E_DEFAULT_F indicates the current stack. -! Outputs: -! func - The function currently set to be called upon an error condition. -! client_data - Data currently set to be passed to the error function. -! hdferr - Returns 0 if successful and -1 if fails. -! -! AUTHOR -! M. Scot Breitenfeld -! July 10, 2009 -! -! Signature: - SUBROUTINE h5eget_auto_f(estack_id, op, client_data, hdferr) - USE ISO_C_BINDING - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: estack_id -!!$ TYPE(C_FUNPTR) :: op_f -!!$ TYPE(C_PTR) :: client_data_f - TYPE(C_FUNPTR) :: op - TYPE(C_PTR), VALUE :: client_data - INTEGER, INTENT(OUT) :: hdferr -!***** - INTEGER :: ret_func2 - !INTEGER(C_INT), DIMENSION(:), POINTER :: ptr_data - INTEGER, DIMENSION(1:1) :: array_shape - TYPE(C_PTR), TARGET :: f_ptr1 - INTEGER(C_INT) :: ptr_data - INTEGER(C_INT) :: i - TYPE(C_PTR) :: test - INTEGER, POINTER :: a - - INTEGER, TARGET :: j - TYPE(C_PTR) :: f_ptr2 - - INTERFACE - INTEGER FUNCTION h5eget_auto_c(estack_id, op, client_data, ret_func2) - USE ISO_C_BINDING - USE H5GLOBAL - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5EGET_AUTO_C'::h5eget_auto_c - !DEC$ENDIF - INTEGER(HID_T) :: estack_id - TYPE(C_FUNPTR) :: op - TYPE(C_PTR) :: client_data - INTEGER :: ret_func2 - END FUNCTION h5eget_auto_c - -!!$ TYPE(C_PTR) FUNCTION h5eget_auto_c2(estack_id, op, ret_func2) -!!$ USE ISO_C_BINDING -!!$ USE H5GLOBAL -!!$ IMPLICIT NONE -!!$ !DEC$IF DEFINED(HDF5F90_WINDOWS) -!!$ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5EGET_AUTO_C'::h5eget_auto_c -!!$ !DEC$ENDIF -!!$ INTEGER(HID_T) :: estack_id -!!$ TYPE(C_FUNPTR) :: op -!!$ INTEGER :: ret_func2 -!!$ END FUNCTION h5eget_auto_c2 - -!!$ SUBROUTINE process_buffer(estack_id, buffer) -!!$ USE, INTRINSIC :: ISO_C_BINDING -!!$ USE H5GLOBAL -!!$ INTEGER(HID_T) :: estack_id -!!$ TYPE(C_PTR) :: buffer -!!$ END SUBROUTINE process_buffer - - END INTERFACE - -! j = -9999 - - - f_ptr2 = c_loc(j) -! CALL process_buffer(estack_id,f_ptr2) - - hdferr = h5eget_auto_c(estack_id, op, f_ptr2, ret_func2) - -!!!!! PRINT*,c_associated(f_ptr2) -!!$ hdferr = h5eget_auto_c(estack_id, op, client_data, ret_func2) - - PRINT*,'fortran',j - stop - -! client_data = h5eget_auto_c2(estack_id, op, ret_func2) - -! PRINT*,'Is client_data associated',C_associated(client_data) -! PRINT*,'Is op_data associated',C_associated(op) - -! ALLOCATE(i(1:1)) -! CALL c_f_pointer(f_ptr2,a,[1]) -! CALL c_f_pointer(f_ptr2,i) -! PRINT*,i -! PRINT*,"Buffer in (F) = ", a(1) - -! stop - -! ALLOCATE(ptr_data(1:2)) -! ptr_data = 0 -! array_shape(1) = 1 -! CALL C_F_POINTER(client_data, ptr_data, array_shape) -! CALL C_F_POINTER(f_ptr2, i,(/ 1 /)) - -! ptr_data => f_ptr1(1) - -! PRINT*,'value in fortran',i - - -! Check to see if the user created their own function, -! otherwise we have to create a fortran version of the default - -!!$ IF(ret_func2.EQ.0)THEN -!!$ op = c_funloc(h5eprint_def) -!!$ END IF - - END SUBROUTINE h5eget_auto_f - END MODULE H5E_PROVISIONAL diff --git a/fortran/src/H5Pff_F03.f90 b/fortran/src/H5Pff_F03.f90 index cd635bc..b601e69 100644 --- a/fortran/src/H5Pff_F03.f90 +++ b/fortran/src/H5Pff_F03.f90 @@ -5,9 +5,9 @@ ! ! PURPOSE ! This file contains Fortran 90 and Fortran 2003 interfaces for H5P functions. -! It contains the same functions as H5Pff_DEPRECIATE.f90 but includes the +! It contains the same functions as H5Pff_F90.f90 but includes the ! Fortran 2003 functions and the interface listings. This file will be compiled -! instead of H5Pff_DEPRECIATE.f90 if Fortran 2003 functions are enabled. +! instead of H5Pff_F90.f90 if Fortran 2003 functions are enabled. ! ! COPYRIGHT ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * @@ -41,7 +41,6 @@ MODULE H5P_PROVISIONAL MODULE PROCEDURE h5pset_fill_value_integer MODULE PROCEDURE h5pset_fill_value_real MODULE PROCEDURE h5pset_fill_value_char - ! Recommended procedure: MODULE PROCEDURE h5pset_fill_value_ptr @@ -51,7 +50,6 @@ MODULE H5P_PROVISIONAL MODULE PROCEDURE h5pget_fill_value_integer MODULE PROCEDURE h5pget_fill_value_real MODULE PROCEDURE h5pget_fill_value_char - ! Recommended procedure: MODULE PROCEDURE h5pget_fill_value_ptr @@ -136,7 +134,7 @@ MODULE H5P_PROVISIONAL INTERFACE INTEGER FUNCTION h5pget_c(prp_id, name, name_len, value) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING USE H5GLOBAL !DEC$IF DEFINED(HDF5F90_WINDOWS) !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_C'::h5pget_c @@ -183,24 +181,22 @@ MODULE H5P_PROVISIONAL CONTAINS ! -!****s* H5P (F03)/h5pset(get)fill_value_f +!****s* H5P (F03)/h5pset_fill_value_f_F90 ! ! NAME -! h5pset(get)fill_value_f +! h5pset_fill_value_f ! ! PURPOSE -! Sets(gets) fill value for a dataset creation property list +! Sets fill value for a dataset creation property list ! ! Inputs: -! prp_id - dataset creation property list identifier -! type_id - datatype identifier for fill value -! fillvalue - fill value +! prp_id - Property list identifier +! type_id - Datatype identifier of fill value datatype (in memory) +! fillvalue - Fillvalue +! ! Outputs: -! type_id - datatype identifier for fill value -! fillvalue - fill value -! hdferr: - error code -! Success: 0 -! Failure: -1 +! hdferr - Returns 0 if successful and -1 if fails +! ! AUTHOR ! Elena Pourmal ! August 12, 1999 @@ -219,7 +215,16 @@ CONTAINS ! h5pset(get)fill_value_f function is overloaded to support ! INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes. ! -! Signature: +! Fortran90 Interface: +!! SUBROUTINE h5pset_fill_value_f(prp_id, type_id, fillvalue, hdferr) +!! IMPLICIT NONE +!! INTEGER(HID_T), INTENT(IN) :: prp_id +!! INTEGER(HID_T), INTENT(IN) :: type_id +!! TYPE(VOID) , INTENT(IN) :: fillvalue +!! INTEGER , INTENT(OUT) :: hdferr +!***** + + SUBROUTINE h5pset_fill_value_integer(prp_id, type_id, fillvalue, hdferr) USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE @@ -229,7 +234,6 @@ CONTAINS ! (in memory) INTEGER, INTENT(IN), TARGET :: fillvalue ! Fillvalue INTEGER, INTENT(OUT) :: hdferr ! Error code -!***** TYPE(C_PTR) :: f_ptr ! C address f_ptr = C_LOC(fillvalue) @@ -237,6 +241,48 @@ CONTAINS hdferr = h5pset_fill_value_c(prp_id, type_id, f_ptr) END SUBROUTINE h5pset_fill_value_integer +! +!****s* H5P (F03)/h5pget_fill_value_f_F90 +! +! NAME +! h5pget_fill_value_f +! +! PURPOSE +! Gets fill value for a dataset creation property list +! +! Inputs: +! prp_id - Property list identifier +! type_id - Datatype identifier of fill value datatype (in memory) +! +! Outputs: +! fillvalue - Fillvalue +! hdferr - Returns 0 if successful and -1 if fails +! +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 14, 2001 +! +! Added the recommended way of passing fillvalue +! and that is by passing the C address, all other +! ways are obsolete and should be avoided. June, 2008 MSB +! +! NOTES +! h5pget(get)fill_value_f function is overloaded to support +! INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes. +! +! Fortran90 Interface: +!! SUBROUTINE h5pget_fill_value_f(prp_id, type_id, fillvalue, hdferr) +!! INTEGER(HID_T), INTENT(IN) :: prp_id +!! INTEGER(HID_T), INTENT(IN) :: type_id +!! TYPE(VOID) , INTENT(OUT) :: fillvalue +!! INTEGER , INTENT(OUT) :: hdferr +!***** SUBROUTINE h5pget_fill_value_integer(prp_id, type_id, fillvalue, hdferr) USE, INTRINSIC :: ISO_C_BINDING @@ -333,7 +379,7 @@ CONTAINS RETURN ENDIF - f_ptr = C_LOC(chr) + f_ptr = C_LOC(chr(1)(1:1)) hdferr = h5pget_fill_value_c(prp_id, type_id, f_ptr) @@ -342,23 +388,107 @@ CONTAINS ENDDO DEALLOCATE(chr) - END SUBROUTINE h5pget_fill_value_char +! +!****s* H5P (F03)/h5pset_fill_value_f_F03 +! +! NAME +! h5pset_fill_value_f +! +! PURPOSE +! Sets fill value for a dataset creation property list +! +! Inputs: +! prp_id - Property list identifier +! type_id - Datatype identifier of fill value datatype (in memory) +! fillvalue - Fillvalue +! +! Outputs: +! hdferr - Returns 0 if successful and -1 if fails +! +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 14, 2001 +! +! Added the recommended way of passing fillvalue +! and that is by passing the C address, all other +! ways are obsolete and should be avoided. June, 2008 MSB +! +! NOTES +! h5pset(get)fill_value_f function is overloaded to support +! INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes. +! +! Fortran2003 Interface: +!! SUBROUTINE h5pset_fill_value_f(prp_id, type_id, fillvalue, hdferr) +!! INTEGER(HID_T), INTENT(IN) :: prp_id +!! INTEGER(HID_T), INTENT(IN) :: type_id +!! TYPE(C_PTR) , INTENT(IN) :: fillvalue +!! INTEGER , INTENT(OUT) :: hdferr +!***** SUBROUTINE h5pset_fill_value_ptr(prp_id, type_id, fillvalue, hdferr) USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier - INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of - ! of fillvalue datatype - ! (in memory) - TYPE(C_PTR), VALUE :: fillvalue ! Fillvalue - INTEGER, INTENT(OUT) :: hdferr ! Error code + INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier + INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of + ! of fillvalue datatype + ! (in memory) + TYPE(C_PTR), INTENT(IN) :: fillvalue ! Fillvalue + INTEGER, INTENT(OUT) :: hdferr ! Error code hdferr = h5pset_fill_value_c(prp_id, type_id, fillvalue) END SUBROUTINE h5pset_fill_value_ptr +! +!****s* H5P (F03)/h5pget_fill_value_f_F03 +! +! NAME +! h5pget_fill_value_f +! +! PURPOSE +! Gets fill value for a dataset creation property list +! +! Inputs: +! prp_id - Property list identifier +! type_id - Datatype identifier of fill value datatype (in memory) +! +! Outputs: +! fillvalue - Fillvalue +! hdferr - Returns 0 if successful and -1 if fails +! +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 14, 2001 +! +! Added the recommended way of passing fillvalue +! and that is by passing the C address, all other +! ways are obsolete and should be avoided. June, 2008 MSB +! +! NOTES +! h5pget(get)fill_value_f function is overloaded to support +! INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes. +! +! Fortran2003 Interface: +!! SUBROUTINE h5pget_fill_value_f(prp_id, type_id, fillvalue, hdferr) +!! INTEGER(HID_T), INTENT(IN) :: prp_id +!! INTEGER(HID_T), INTENT(IN) :: type_id +!! TYPE(C_PTR) , INTENT(OUT) :: fillvalue +!! INTEGER , INTENT(OUT) :: hdferr +!***** + SUBROUTINE h5pget_fill_value_ptr(prp_id, type_id, fillvalue, hdferr) USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE @@ -374,26 +504,36 @@ CONTAINS END SUBROUTINE h5pget_fill_value_ptr ! -!****s* H5P (F03)/h5pset_integer +!****s* H5P (F03)/h5pset_f_F90 ! ! NAME -! h5pset_integer +! h5pset_f ! ! PURPOSE ! Sets a property list value ! ! Inputs: -! prp_id - iproperty list identifier to modify -! name - name of property to modify -! value - value to set property to +! prp_id - Property list identifier to modify +! name - Name of property to modify +! value - Property value, supported types are: +! INTEGER +! REAL +! DOUBLE PRECISION +! CHARACTER(LEN=*) ! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 +! hdferr - Returns 0 if successful and -1 if fails +! ! AUTHOR ! Elena Pourmal ! October 9, 2002 -! Signature: +! +! Fortran90 Interface: +!! SUBROUTINE h5pset_f(plid, name, value, hdferr) +!! INTEGER(HID_T) , INTENT(IN) :: plid +!! CHARACTER(LEN=*), INTENT(IN) :: name +!! TYPE , INTENT(IN) :: value +!! INTEGER , INTENT(OUT) :: hdferr +!***** SUBROUTINE h5pset_integer(prp_id, name, value, hdferr) USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE @@ -401,7 +541,7 @@ CONTAINS CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify INTEGER, INTENT(IN), TARGET :: value ! Property value INTEGER, INTENT(OUT) :: hdferr ! Error code -!***** + INTEGER :: name_len TYPE(C_PTR) :: f_ptr @@ -412,27 +552,6 @@ CONTAINS END SUBROUTINE h5pset_integer -! -!****s* H5P (F03)/h5pset_real -! -! NAME -! h5pset_real -! -! PURPOSE -! Sets a property list value -! -! Inputs: -! prp_id - iproperty list identifier to modify -! name - name of property to modify -! value - value to set property to -! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 -! AUTHOR -! Elena Pourmal -! October 9, 2002 -! Signature: SUBROUTINE h5pset_real(prp_id, name, value, hdferr) USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE @@ -440,7 +559,6 @@ CONTAINS CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify REAL, INTENT(IN), TARGET :: value ! Property value INTEGER, INTENT(OUT) :: hdferr ! Error code -!***** INTEGER :: name_len TYPE(C_PTR) :: f_ptr @@ -451,30 +569,6 @@ CONTAINS END SUBROUTINE h5pset_real -! -!****s* H5P (F03)/h5pset_char -! -! NAME -! h5pset_char -! -! PURPOSE -! Sets a property list value -! -! Inputs: -! prp_id - iproperty list identifier to modify -! name - name of property to modify -! value - value to set property to -! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE -! -! AUTHOR -! Elena Pourmal -! October 9, 2002 -! Signature: SUBROUTINE h5pset_char(prp_id, name, value, hdferr) USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE @@ -482,7 +576,6 @@ CONTAINS CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify CHARACTER(LEN=*), INTENT(IN) :: value ! Property value INTEGER, INTENT(OUT) :: hdferr ! Error code -!***** INTEGER :: name_len INTEGER :: i @@ -504,7 +597,7 @@ CONTAINS chr(i) = value(i:i) ENDDO - f_ptr = C_LOC(chr) + f_ptr = C_LOC(chr(1)(1:1)) name_len = LEN(name) hdferr = h5pget_c(prp_id, name, name_len, f_ptr) @@ -512,28 +605,38 @@ CONTAINS DEALLOCATE(chr) END SUBROUTINE h5pset_char - ! -!****s* H5P (F03)/h5pget_integer +!****s* H5P (F03)/h5pget_f_F90 ! ! NAME -! h5pget_integer +! h5pget_f ! ! PURPOSE -! Gets a property list value +! Queries the value of a property. ! ! Inputs: -! prp_id - iproperty list identifier to modify -! name - name of property to modify +! prp_id - Property list identifier to modify +! name - Name of property to get +! value - Property value, supported types are: +! INTEGER +! REAL +! DOUBLE PRECISION +! CHARACTER(LEN=*) ! Outputs: -! value - value of property -! hdferr: - error code -! Success: 0 -! Failure: -1 +! hdferr - Returns 0 if successful and -1 if fails +! ! AUTHOR ! Elena Pourmal ! October 9, 2002 -! Signature: +! +! Fortran90 Interface: +!! SUBROUTINE h5pget_f(plid, name, value, hdferr) +!! INTEGER(HID_T) , INTENT(IN) :: plid +!! CHARACTER(LEN=*), INTENT(IN) :: name +!! TYPE , INTENT(OUT) :: value +!! INTEGER , INTENT(OUT) :: hdferr +!***** + SUBROUTINE h5pget_integer(prp_id, name, value, hdferr) USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE @@ -541,7 +644,6 @@ CONTAINS CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify INTEGER, INTENT(OUT), TARGET :: value ! Property value INTEGER, INTENT(OUT) :: hdferr ! Error code -!***** INTEGER :: name_len TYPE(C_PTR) :: f_ptr @@ -552,28 +654,6 @@ CONTAINS END SUBROUTINE h5pget_integer -! -!****s* H5P (F03)/h5pget_real -! -! NAME -! h5pget_real -! -! PURPOSE -! Gets a property list value -! -! Inputs: -! prp_id - iproperty list identifier to modify -! name - name of property to modify -! Outputs: -! value - value of property -! hdferr: - error code -! Success: 0 -! Failure: -1 -! -! AUTHOR -! Elena Pourmal -! October 9, 2002 -! Signature: SUBROUTINE h5pget_real(prp_id, name, value, hdferr) USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE @@ -581,7 +661,6 @@ CONTAINS CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify REAL, INTENT(OUT), TARGET :: value ! Property value INTEGER, INTENT(OUT) :: hdferr ! Error code -!***** INTEGER :: name_len TYPE(C_PTR) :: f_ptr @@ -591,28 +670,6 @@ CONTAINS hdferr = h5pget_c(prp_id, name, name_len, f_ptr) END SUBROUTINE h5pget_real -! -!****s* H5P (F03)/h5pget_char -! -! NAME -! h5pget_char -! -! PURPOSE -! Gets a property list value -! -! Inputs: -! prp_id - iproperty list identifier to modify -! name - name of property to modify -! Outputs: -! value - value of property -! hdferr: - error code -! Success: 0 -! Failure: -1 -! AUTHOR -! -! Elena Pourmal -! October 9, 2002 -! Signature: SUBROUTINE h5pget_char(prp_id, name, value, hdferr) USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE @@ -620,7 +677,6 @@ CONTAINS CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify CHARACTER(LEN=*), INTENT(OUT) :: value ! Property value INTEGER, INTENT(OUT) :: hdferr ! Error code -!***** INTEGER :: name_len INTEGER :: i @@ -634,7 +690,7 @@ CONTAINS hdferr = -1 RETURN ENDIF - f_ptr = C_LOC(chr) + f_ptr = C_LOC(chr(1)(1:1)) name_len = LEN(name) hdferr = h5pget_c(prp_id, name, name_len, f_ptr) @@ -647,12 +703,40 @@ CONTAINS END SUBROUTINE h5pget_char + +! +!****s* H5P (F03)/h5pset_f_F03 +! +! NAME +! h5pset_f +! +! PURPOSE +! Sets a property list value +! +! Inputs: +! prp_id - Property list identifier to modify +! name - Name of property to modify +! value - Pointer to value to set the property to +! Outputs: +! hdferr - Returns 0 if successful and -1 if fails +! +! AUTHOR +! Elena Pourmal +! October 9, 2002 +! +! Fortran2003 Interface: +!! SUBROUTINE h5pset_f(plid, name, value, hdferr) +!! INTEGER(HID_T) , INTENT(IN) :: plid +!! CHARACTER(LEN=*), INTENT(IN) :: name +!! TYPE(C_PTR) , INTENT(IN) :: value +!! INTEGER , INTENT(OUT) :: hdferr +!***** SUBROUTINE h5pset_ptr(prp_id, name, value, hdferr) USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify - TYPE(C_PTR), INTENT(OUT) :: value ! Property value + TYPE(C_PTR), INTENT(IN) :: value ! Property value INTEGER, INTENT(OUT) :: hdferr ! Error code INTEGER :: name_len @@ -660,7 +744,33 @@ CONTAINS hdferr = h5pset_c(prp_id, name, name_len, value) END SUBROUTINE h5pset_ptr - +! +!****s* H5P (F03)/h5pget_f_F03 +! +! NAME +! h5pget_f (F03) +! +! PURPOSE +! Queries the value of a property. +! +! Inputs: +! prp_id - Property list identifier to modify +! name - Name of property to get +! value - Pointer to a location to which to copy the value of of the property +! Outputs: +! hdferr - Returns 0 if successful and -1 if fails +! +! AUTHOR +! Elena Pourmal +! October 9, 2002 +! +! Fortran2003 Interface: +!! SUBROUTINE h5pget_f(plid, name, value, hdferr) +!! INTEGER(HID_T) , INTENT(IN) :: plid +!! CHARACTER(LEN=*), INTENT(IN) :: name +!! TYPE(C_PTR) , INTENT(OUT) :: value +!! INTEGER , INTENT(OUT) :: hdferr +!***** SUBROUTINE h5pget_ptr(prp_id, name, value, hdferr) USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE @@ -677,39 +787,47 @@ CONTAINS ! -!****s* H5P (F03)/h5pregister_integer +!****s* H5P (F03)/h5pregister_f_F90 ! ! NAME -! h5pregister_integer +! h5pregister ! ! PURPOSE ! Registers a permanent property with a property list class. ! ! Inputs: -! class - property list class to register -! permanent property within -! name - name of property to register -! size - size of property in bytes -! value - default value for property in newly -! created property lists +! class - Property list class identifier +! name - Name of property to register +! size - Size of the property value +! value - Property value, supported types are: +! INTEGER +! REAL +! DOUBLE PRECISION +! CHARACTER(LEN=*) +! ! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 +! hdferr - Returns 0 if successful and -1 if fails +! ! AUTHOR ! Elena Pourmal ! October 10, 2002 ! -! Signature: +! Fortran90 Interface: +!! SUBROUTINE h5pregister_f(class, name, size, value, hdferr) +!! INTEGER(HID_T) , INTENT(IN) :: class +!! CHARACTER(LEN=*), INTENT(IN) :: name +!! INTEGER(SIZE_T) , INTENT(IN) :: size +!! TYPE , INTENT(IN) :: value +!! INTEGER , INTENT(OUT) :: hdferr +!***** SUBROUTINE h5pregister_integer(class, name, size, value, hdferr) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value INTEGER, INTENT(IN), TARGET :: value ! Property value INTEGER, INTENT(OUT) :: hdferr ! Error code -!***** INTEGER :: name_len TYPE(C_PTR) :: f_ptr @@ -720,39 +838,14 @@ CONTAINS END SUBROUTINE h5pregister_integer -! -!****s* H5P (F03)/h5pregister_real -! -! NAME -! h5pregister_real -! -! PURPOSE -! Registers a permanent property with a property list class. -! -! Inputs: -! class - property list class to register -! permanent property within -! name - name of property to register -! size - size of property in bytes -! value - default value for property in newly -! created property lists -! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 -! AUTHOR -! Elena Pourmal -! October 10, 2002 -! Signature: SUBROUTINE h5pregister_real(class, name, size, value, hdferr) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register INTEGER(SIZE_T), INTENT(IN) :: size ! size of the property value REAL, INTENT(IN), TARGET :: value ! Property value INTEGER, INTENT(OUT) :: hdferr ! Error code -!***** INTEGER :: name_len TYPE(C_PTR) :: f_ptr @@ -763,40 +856,14 @@ CONTAINS END SUBROUTINE h5pregister_real -! -!****s* H5P (F03)/h5pregister_char -! -! NAME -! h5pregister_char -! -! PURPOSE -! Registers a permanent property with a property list class. -! -! Inputs: -! class - property list class to register -! permanent property within -! name - name of property to register -! size - size of property in bytes -! value - default value for property in newly -! created property lists -! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 -! AUTHOR -! Elena Pourmal -! October 10, 2002 -! -! Signature: SUBROUTINE h5pregister_char(class, name, size, value, hdferr) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register INTEGER(SIZE_T), INTENT(IN) :: size ! size of the property value CHARACTER(LEN=*), INTENT(IN) :: value ! Property value INTEGER, INTENT(OUT) :: hdferr ! Error code -!***** INTEGER :: name_len INTEGER :: i @@ -818,46 +885,51 @@ CONTAINS chr(i) = value(i:i) ENDDO - f_ptr = C_LOC(chr) + f_ptr = C_LOC(chr(1)(1:1)) name_len = LEN(name) hdferr = h5pregister_c(class, name, name_len, size, f_ptr) DEALLOCATE(chr) END SUBROUTINE h5pregister_char - ! -!****s* H5P (F03)/h5pregister_ptr +!****s* H5P (F03)/h5pregister_f_F03 ! ! NAME -! h5pregister_ptr +! h5pregister (F03) ! ! PURPOSE ! Registers a permanent property with a property list class. ! ! Inputs: -! class - property list class to register -! permanent property within -! name - name of property to register -! size - size of property in bytes -! value - default value for property in newly -! created property lists +! class - Property list class identifier +! name - Name of property to register +! size - Size of the property value +! value - Pointer to value to set the property to +! ! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 +! hdferr - Returns 0 if successful and -1 if fails +! ! AUTHOR ! M. Scot Breitenfeld ! June 24, 2008 -! Signature: +! +! Fortran2003 Interface: +!! SUBROUTINE h5pregister_f(class, name, size, value, hdferr) +!! INTEGER(HID_T) , INTENT(IN) :: class +!! CHARACTER(LEN=*), INTENT(IN) :: name +!! INTEGER(SIZE_T) , INTENT(IN) :: size +!! TYPE(C_PTR) , INTENT(IN) :: value +!! INTEGER , INTENT(OUT) :: hdferr +!***** + SUBROUTINE h5pregister_ptr(class, name, size, value, hdferr) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value TYPE(C_PTR), INTENT(IN) :: value ! Property value INTEGER, INTENT(OUT) :: hdferr ! Error code -!***** INTEGER :: name_len name_len = LEN(name) @@ -865,28 +937,37 @@ CONTAINS END SUBROUTINE h5pregister_ptr ! -!****s* H5P (F03)/h5pinsert_integer +!****s* H5P (F03)/h5pinsert_f_F90 ! ! NAME -! h5pinsert_integer +! h5pinsert (f90) ! ! PURPOSE ! Registers a temporary property with a property list class. ! ! Inputs: -! plist - property list identifier -! name - name of property to insert -! size - size of property in bytes -! value - initial value for the property +! plist - Property list class identifier +! name - Name of property to insert +! size - Size of the property value +! value - Property value, supported types are: +! INTEGER +! REAL +! DOUBLE PRECISION +! CHARACTER(LEN=*) ! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 +! hdferr - Returns 0 if successful and -1 if fails ! AUTHOR ! Elena Pourmal ! October 10, 2002 ! -! Signature: +! Fortran90 Interface: +!! SUBROUTINE h5pinsert_f +!! INTEGER(HID_T) , INTENT(IN) :: plist +!! CHARACTER(LEN=*), INTENT(IN) :: name +!! INTEGER(SIZE_T) , INTENT(IN) :: size +!! TYPE , INTENT(IN) :: value +!! INTEGER , INTENT(OUT) :: hdferr +!***** SUBROUTINE h5pinsert_integer(plist, name, size, value, hdferr) USE iso_c_binding IMPLICIT NONE @@ -895,7 +976,6 @@ CONTAINS INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value INTEGER, INTENT(IN), TARGET :: value ! Property value INTEGER, INTENT(OUT) :: hdferr ! Error code -!***** INTEGER :: name_len TYPE(c_ptr) :: f_ptr @@ -905,29 +985,6 @@ CONTAINS hdferr = h5pinsert_c(plist, name , name_len, size, f_ptr) END SUBROUTINE h5pinsert_integer -! -!****s* H5P (F03)/h5pinsert_real -! -! NAME -! h5pinsert_real -! -! PURPOSE -! Registers a temporary property with a property list class. -! -! Inputs: -! plist - property list identifier -! permanent property within -! name - name of property to insert -! size - size of property in bytes -! value - initial value for the property -! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 -! AUTHOR -! Elena Pourmal -! October 10, 2002 -! Signature: SUBROUTINE h5pinsert_real(plist, name, size, value, hdferr) USE iso_c_binding IMPLICIT NONE @@ -936,7 +993,6 @@ CONTAINS INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value REAL, INTENT(IN), TARGET :: value ! Property value INTEGER, INTENT(OUT) :: hdferr ! Error code -!***** INTEGER :: name_len TYPE(c_ptr) :: f_ptr @@ -947,29 +1003,6 @@ CONTAINS END SUBROUTINE h5pinsert_real -! -!****s* H5P (F03)/h5pinsert_char -! -! NAME -! h5pinsert_char -! -! PURPOSE -! Registers a temporary property with a property list class. -! -! Inputs: -! plist - property list identifier -! permanent property within -! name - name of property to insert -! size - size of property in bytes -! value - initial value for the property -! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 -! AUTHOR -! Elena Pourmal -! October 10, 2002 -! Signature: SUBROUTINE h5pinsert_char(plist, name, size, value, hdferr) USE iso_c_binding IMPLICIT NONE @@ -978,7 +1011,6 @@ CONTAINS INTEGER(SIZE_T), INTENT(IN) :: size ! Size of property value CHARACTER(LEN=*), INTENT(IN) :: value ! Property value INTEGER, INTENT(OUT) :: hdferr ! Error code -!***** INTEGER :: name_len INTEGER :: i @@ -1000,7 +1032,7 @@ CONTAINS chr(i) = value(i:i) ENDDO - f_ptr = C_LOC(chr) + f_ptr = C_LOC(chr(1)(1:1)) name_len = LEN(name) hdferr = h5pinsert_c(plist, name , name_len, size, f_ptr) @@ -1010,28 +1042,35 @@ CONTAINS END SUBROUTINE h5pinsert_char ! -!****s* H5P (F03)/h5pinsert_ptr +!****s* H5P (F03)/h5pinsert_f_F03 ! ! NAME -! h5pinsert_ptr +! h5pinsert (f03) ! ! PURPOSE ! Registers a temporary property with a property list class. ! ! Inputs: -! plist - property list identifier -! permanent property within -! name - name of property to insert -! size - size of property in bytes -! value - initial value for the property +! plist - Property list class identifier +! name - Name of property to insert +! size - Size of the property value +! value - Pointer to new value pointer for the property being modified +! ! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 -! AUTHOR +! hdferr - Returns 0 if successful and -1 if fails +! +! AUTHOR ! M. Scot Breitenfeld ! June 24, 2008 -! Signature: +! +! Fortran90 Interface: +!! SUBROUTINE h5pinsert_f +!! INTEGER(HID_T) , INTENT(IN) :: plist +!! CHARACTER(LEN=*), INTENT(IN) :: name +!! INTEGER(SIZE_T) , INTENT(IN) :: size +!! TYPE(C_PTR) , INTENT(IN) :: value +!! INTEGER , INTENT(OUT) :: hdferr +!***** SUBROUTINE h5pinsert_ptr(plist, name, size, value, hdferr) USE iso_c_binding IMPLICIT NONE @@ -1040,15 +1079,13 @@ CONTAINS INTEGER(SIZE_T), INTENT(IN) :: size ! Size of property value TYPE(c_ptr), INTENT(IN) :: value ! Property value INTEGER, INTENT(OUT) :: hdferr ! Error code -!***** INTEGER :: name_len name_len = LEN(name) hdferr = h5pinsert_c(plist, name , name_len, size, value) END SUBROUTINE h5pinsert_ptr - ! -!****s* H5P (F03)/h5pcreate_class_f +!****s* H5P (F03)/h5pcreate_class_f_F03 ! ! NAME ! h5pcreate_class_f @@ -1057,21 +1094,20 @@ CONTAINS ! Create a new property list class ! ! Inputs: -! parent - Property list identifier of the parent class -! Possible values include: -! H5P_ROOT_F -! H5P_FILE_CREATE_F -! H5P_FILE_ACCESS_F -! H5P_DATASET_CREATE_F -! H5P_DATASET_XFER_F -! H5P_FILE_MOUNT_F -! name - name of the class we are creating +! parent - Parent property list class identifier +! Possible values include: +! H5P_ROOT_F +! H5P_FILE_CREATE_F +! H5P_FILE_ACCESS_F +! H5P_DATASET_CREATE_F +! H5P_DATASET_XFER_F +! H5P_FILE_MOUNT_F +! name - Name of property to create +! ! Outputs: -! class - porperty list class identifier -! hdferr: - error code +! class - Property list class identifier +! hdferr - Returns 0 if successful and -1 if fails ! -! Success: 0 -! Failure: -1 ! Optional parameters: ! H5P_cls_create_func_t (create) - Callback routine called when a property list is created ! create_data - User pointer to any class creation information needed @@ -1088,16 +1124,16 @@ CONTAINS ! Added callback arguments ! M. Scot Breitenfeld, July 3, 2008 ! -! Signature: +! Fortran2003 Interface: SUBROUTINE h5pcreate_class_f(parent, name, class, hdferr, create, create_data, copy, copy_data, close, close_data) USE iso_c_binding IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: parent ! parent property list class identifier - CHARACTER(LEN=*), INTENT(IN) :: name ! name of property tocreate - INTEGER(HID_T), INTENT(OUT) :: class ! property list class identifier - INTEGER, INTENT(OUT) :: hdferr ! Error code - TYPE(C_PTR), OPTIONAL :: create_data, copy_data, close_data - TYPE(C_FUNPTR), OPTIONAL :: create, copy, close + INTEGER(HID_T) , INTENT(IN) :: parent + CHARACTER(LEN=*), INTENT(IN) :: name + INTEGER(HID_T) , INTENT(OUT) :: class + INTEGER , INTENT(OUT) :: hdferr + TYPE(C_PTR) , OPTIONAL :: create_data, copy_data, close_data + TYPE(C_FUNPTR) , OPTIONAL :: create, copy, close !***** INTEGER :: name_len TYPE(C_PTR) :: create_data_default, copy_data_default, close_data_default @@ -1143,7 +1179,6 @@ CONTAINS copy_default, copy_data_default, & close_default, close_data_default) - END SUBROUTINE h5pcreate_class_f END MODULE H5P_PROVISIONAL diff --git a/fortran/src/H5Tff_F03.f90 b/fortran/src/H5Tff_F03.f90 index 01600a0..902e2ac 100644 --- a/fortran/src/H5Tff_F03.f90 +++ b/fortran/src/H5Tff_F03.f90 @@ -5,9 +5,9 @@ ! ! PURPOSE ! This file contains Fortran 90 and Fortran 2003 interfaces for H5T functions. -! It contains the same functions as H5Tff_DEPRECIATE.f90 but includes the +! It contains the same functions as H5Tff_F90.f90 but includes the ! Fortran 2003 functions and the interface listings. This file will be compiled -! instead of H5Tff_DEPRECIATE.f90 if Fortran 2003 functions are enabled. +! instead of H5Tff_F90.f90 if Fortran 2003 functions are enabled. ! ! COPYRIGHT ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * @@ -36,16 +36,20 @@ MODULE H5T_PROVISIONAL USE H5GLOBAL - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING +!****t* H5T (F03)/hvl_t +! Fortran2003 Derived Type: TYPE hvl_t INTEGER(size_t) :: len ! Length of VL data (in base type units) TYPE(C_PTR) :: p ! Pointer to VL data END TYPE hvl_t +!***** + CONTAINS -!****s* H5T (F03)/H5Tconvert_f +!****s* H5T (F03)/H5Tconvert_f_F03 ! ! NAME ! H5Tconvert_f @@ -69,9 +73,9 @@ CONTAINS ! M. Scot Breitenfeld ! Decemember 8, 2008 ! -! Signature: +! Fortran2003 Interface: SUBROUTINE h5tconvert_f(src_id, dst_id, nelmts, buf, hdferr, background, plist_id) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T) , INTENT(IN) :: src_id INTEGER(HID_T) , INTENT(IN) :: dst_id @@ -86,7 +90,7 @@ CONTAINS INTERFACE INTEGER FUNCTION h5tconvert_c(src_id, dst_id, nelmts, buf, background, plist_id) - USE ISO_C_BINDING + USE, INTRINSIC :: ISO_C_BINDING USE H5GLOBAL !DEC$IF DEFINED(HDF5F90_WINDOWS) !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TCONVERT_C'::H5Tconvert_c diff --git a/fortran/src/H5_ff_F03.f90 b/fortran/src/H5_ff_F03.f90 index 3a1bc59..504f385 100644 --- a/fortran/src/H5_ff_F03.f90 +++ b/fortran/src/H5_ff_F03.f90 @@ -47,13 +47,13 @@ CONTAINS ! end - ending pointer address ! ! Outputs: -! offset - offset +! offset - offset of a member within the derived type ! ! AUTHOR ! M. Scot Breitenfeld ! Augest 25, 2008 ! -! Signature: +! Fortran2003 Interface: FUNCTION h5offsetof(start,end) RESULT(offset) USE, INTRINSIC :: ISO_C_BINDING USE H5GLOBAL diff --git a/fortran/src/H5f90proto.h b/fortran/src/H5f90proto.h index 7f45ff9..c9319d5 100644 --- a/fortran/src/H5f90proto.h +++ b/fortran/src/H5f90proto.h @@ -1144,8 +1144,6 @@ H5_FCDLL int_f nh5iis_valid_c(hid_t_f *obj_id, int_f *c_valid); #define nh5eget_minor_c H5_FC_FUNC_(h5eget_minor_c, H5EGET_MINOR_C) #define nh5eset_auto_c H5_FC_FUNC_(h5eset_auto_c, H5ESET_AUTO_C) #define nh5eset_auto2_c H5_FC_FUNC_(h5eset_auto2_c, H5ESET_AUTO2_C) -#define nh5eget_auto_c H5_FC_FUNC_(h5eget_auto_c, H5EGET_AUTO_C) -#define nh5eget_auto_c2 H5_FC_FUNC_(h5eget_auto_c2, H5EGET_AUTO_C2) #define nprocess_buffer H5_FC_FUNC_(process_buffer, PROCESS_BUFFER) @@ -1156,8 +1154,6 @@ H5_FCDLL int_f nh5eget_major_c(int_f* error_no, _fcd name, size_t_f* namelen); H5_FCDLL int_f nh5eget_minor_c(int_f* error_no, _fcd name, size_t_f* namelen); H5_FCDLL int_f nh5eset_auto_c(int_f* printflag); H5_FCDLL int_f nh5eset_auto2_c(int_f* printflag, hid_t_f *estack_id, H5E_auto2_t func, void *client_data); -H5_FCDLL int_f nh5eget_auto_c(hid_t_f *estack_id, H5E_auto2_t *func, void **client_data, int_f* ret_func); -H5_FCDLL void* nh5eget_auto_c2(hid_t_f *estack_id, H5E_auto2_t *func, int_f* ret_func); H5_FCDLL int_f nprocess_buffer(hid_t_f *estack_id,void **buffer); /* |