diff options
-rw-r--r-- | fortran/src/H5Aff_F03.f90 | 186 | ||||
-rw-r--r-- | fortran/src/H5Dff_F03.f90 | 227 | ||||
-rw-r--r-- | fortran/src/H5Pff_F03.f90 | 673 | ||||
-rw-r--r-- | fortran/src/H5Tff_F03.f90 | 18 | ||||
-rw-r--r-- | fortran/src/H5_ff.f90 | 76 | ||||
-rw-r--r-- | fortran/src/H5_ff_F03.f90 | 4 |
6 files changed, 711 insertions, 473 deletions
diff --git a/fortran/src/H5Aff_F03.f90 b/fortran/src/H5Aff_F03.f90 index 387dbae..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 @@ -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 @@ -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 a703a14..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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -2073,13 +2073,49 @@ CONTAINS 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/H5Pff_F03.f90 b/fortran/src/H5Pff_F03.f90 index 8fa88e7..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 @@ -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 @@ -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 @@ -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 @@ -824,40 +891,45 @@ CONTAINS 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 @@ -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.f90 b/fortran/src/H5_ff.f90 index fdb8748..99a82bd 100644 --- a/fortran/src/H5_ff.f90 +++ b/fortran/src/H5_ff.f90 @@ -41,6 +41,7 @@ MODULE H5LIB ! pre-Fortran 2003 - empty module ! Forttran 2003 - contains functions USE H5GLOBAL + CONTAINS !****s* H5LIB/h5open_f ! @@ -50,10 +51,9 @@ CONTAINS ! PURPOSE ! Initializes the HDF5 library and Fortran90 interface. ! -! OUTPUTS -! error - error code -! Success: 0 -! Failure: -1 +! Outputs: +! error - Returns 0 if successful and -1 if fails +! ! AUTHOR ! Elena Pourmal ! August 12, 1999 @@ -63,7 +63,7 @@ CONTAINS ! called C functions (it is needed for Windows ! port). February 28, 2001 ! -! SOURCE +! Fortran90 Interface: SUBROUTINE h5open_f(error) USE H5GLOBAL IMPLICIT NONE @@ -175,22 +175,19 @@ CONTAINS ! PURPOSE ! Closes the HDF5 library and Fortran90 interface. ! -! OUTPUTS -! error - error code -! Success: 0 -! Failure: -1 +! Outputs: +! error - 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). February 28, 2001 ! -! SOURCE +! Fortran90 Interface: SUBROUTINE h5close_f(error) USE H5GLOBAL IMPLICIT NONE @@ -237,19 +234,17 @@ CONTAINS ! PURPOSE ! Returns the HDF5 LIbrary release number ! -! OUTPUTS -! majnum - major version of the library -! minum - minor version of the library -! relnum - release version of the library -! error - error code -! Success: 0 -! Failure: -1 +! Outputs: +! majnum - major version of the library +! minum - minor version of the library +! relnum - release version of the library +! error - Returns 0 if successful and -1 if fails ! ! AUTHOR ! Elena Pourmal ! September 24, 2002 ! -! SOURCE +! Fortran90 Interface: SUBROUTINE h5get_libversion_f(majnum, minnum, relnum, error) USE H5GLOBAL IMPLICIT NONE @@ -276,24 +271,23 @@ CONTAINS ! PURPOSE ! Verifies that library versions are consistent. ! -! INPUTS -! majnum - major version of the library -! minum - minor version of the library -! relnum - release version of the library -! OUTPUTS -! error - error code -! Success: 0 -! Failure: application aborts +! Inputs: +! majnum - major version of the library +! minum - minor version of the library +! relnum - release version of the library +! +! Outputs: +! error - Returns 0 if successful and -1 if fails ! ! AUTHOR ! Elena Pourmal ! September 24, 2002 ! -! SOURCE +! Fortran90 Interface: SUBROUTINE h5check_version_f(majnum, minnum, relnum, error) USE H5GLOBAL IMPLICIT NONE - INTEGER, INTENT(IN) :: majnum, minnum, relnum + INTEGER, INTENT(IN) :: majnum, minnum, relnum INTEGER, INTENT(OUT) :: error !***** INTERFACE @@ -316,16 +310,14 @@ CONTAINS ! PURPOSE ! Garbage collects on all free-lists of all types. ! -! OUTPUTS -! error - error code -! Success: 0 -! Failure: -1 +! Outputs: +! error - Returns 0 if successful and -1 if fails ! ! AUTHOR ! Elena Pourmal ! September 24, 2002 ! -! SOURCE +! Fortran90 Interface: SUBROUTINE h5garbage_collect_f(error) USE H5GLOBAL IMPLICIT NONE @@ -350,16 +342,14 @@ CONTAINS ! PURPOSE ! Instructs library not to install atexit cleanup routine. ! -! OUTPUTS -! error - error code -! Success: 0 -! Failure: -1 +! Outputs: +! error - Returns 0 if successful and -1 if fails ! ! AUTHOR ! Elena Pourmal ! September 24, 2002 ! -! SOURCE +! Fortran90 Interface: SUBROUTINE h5dont_atexit_f(error) USE H5GLOBAL IMPLICIT NONE @@ -385,19 +375,19 @@ CONTAINS ! PURPOSE ! Converts the KIND to the correct HDF type ! -! INPUTS +! Inputs: ! kind - Fortran KIND parameter ! flag - whether KIND is of type INTEGER or REAL: ! H5_INTEGER_KIND - integer ! H5_REAL_KIND - real -! OUTPUTS +! Outputs: ! h5_type - returns the type ! ! AUTHOR ! M. Scot Breitenfeld -! Augest 25, 2008 +! August 25, 2008 ! -! SOURCE +! Fortran90 Interface: INTEGER(HID_T) FUNCTION h5kind_to_type(kind, flag) RESULT(h5_type) USE H5GLOBAL IMPLICIT NONE 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 |