diff options
author | Scot Breitenfeld <brtnfld@hdfgroup.org> | 2011-08-18 14:32:47 (GMT) |
---|---|---|
committer | Scot Breitenfeld <brtnfld@hdfgroup.org> | 2011-08-18 14:32:47 (GMT) |
commit | a9c065c5ce65bb7dca560d53642574dba608dc78 (patch) | |
tree | 2d36b7afd3f3a83314db25aba081e95254d28841 /fortran/src/H5Tff.f90 | |
parent | a968e2d409d975ac5b584680620d2589b0409f88 (diff) | |
download | hdf5-a9c065c5ce65bb7dca560d53642574dba608dc78.zip hdf5-a9c065c5ce65bb7dca560d53642574dba608dc78.tar.gz hdf5-a9c065c5ce65bb7dca560d53642574dba608dc78.tar.bz2 |
[svn-r21248] Mereged the F2003 branch into the trunk.
Items merged: fortran directory,
src/libhdf5.settings.in
configure.in configure
MANIFEST
Tested: (all platforms used by daily tests, both with --enable-fortran and --enable-fortran2003)
Diffstat (limited to 'fortran/src/H5Tff.f90')
-rw-r--r-- | fortran/src/H5Tff.f90 | 3379 |
1 files changed, 1598 insertions, 1781 deletions
diff --git a/fortran/src/H5Tff.f90 b/fortran/src/H5Tff.f90 index c6c96d0..f5369d0 100644 --- a/fortran/src/H5Tff.f90 +++ b/fortran/src/H5Tff.f90 @@ -1,3 +1,15 @@ +!****h* ROBODoc/H5T +! +! NAME +! MODULE H5T +! +! PURPOSE +! This file contains Fortran interfaces for H5T functions. It includes +! all the functions that are independent on whether the Fortran 2003 functions +! are enabled or disabled. +! +! +! COPYRIGHT ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! Copyright by The HDF Group. * ! Copyright by the Board of Trustees of the University of Illinois. * @@ -13,44 +25,51 @@ ! access to either file, you may request a copy from help@hdfgroup.org. * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! +! NOTES +! *** IMPORTANT *** +! If you add a new H5T function you must add the function name to the +! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory. +! This is needed for Windows based operating systems. ! -! This file contains FORTRAN90 interfaces for H5T functions -! +!***** + MODULE H5T USE H5GLOBAL CONTAINS -!---------------------------------------------------------------------- -! Name: h5topen_f ! -! Purpose: Opens named datatype. +!****s* H5T/h5topen_f ! -! Inputs: -! loc_id - location identifier -! name - a datatype name -! Outputs: -! type_id - datatype identifier -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! tapl_id - datatype access property list identifier. +! NAME +! h5topen_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Opens named datatype. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! loc_id - location identifier +! name - a datatype name +! OUTPUTS +! type_id - datatype identifier +! hdferr - Returns 0 if successful and -1 if fails +! OPTIONAL PARAMETERS +! tapl_id - datatype access property list identifier. ! -! Added optional parameter 'tapl_id' for compatability -! with H5Topen2. April 9, 2009. +! AUTHOR +! Elena Pourmal +! August 12, 1999 ! -! Comment: -!---------------------------------------------------------------------- - +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! +! Added optional parameter 'tapl_id' for compatability +! with H5Topen2. April 9, 2009. +! +! SOURCE SUBROUTINE h5topen_f(loc_id, name, type_id, hdferr, tapl_id) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier @@ -58,12 +77,10 @@ CONTAINS INTEGER(HID_T), INTENT(OUT) :: type_id ! Datatype identifier INTEGER, INTENT(OUT) :: hdferr ! Error code INTEGER(HID_T), OPTIONAL, INTENT(IN) :: tapl_id ! datatype access property list identifier - +!***** INTEGER :: namelen ! Name length INTEGER(HID_T) :: tapl_id_default -! -! MS FORTRAN needs explicit interface for C functions called here. -! + INTERFACE INTEGER FUNCTION h5topen_c(loc_id, name, namelen, type_id, tapl_id_default) USE H5GLOBAL @@ -86,42 +103,41 @@ CONTAINS hdferr = h5topen_c(loc_id, name, namelen, type_id, tapl_id_default) END SUBROUTINE h5topen_f - -!---------------------------------------------------------------------- -! Name: h5tcommit_f ! -! Purpose: Commits a transient datatype to a file, creating a -! new named datatype. +!****s* H5T/h5tcommit_f ! -! Inputs: -! loc_id - location identifier -! name - name of the datatype to be stored -! at the specified location -! type_id - identifier of a datatype to be stored -! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! lcpl_id - Link creation property list -! tcpl_id - Datatype creation property list -! tapl_id - Datatype access property list +! NAME +! h5tcommit_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Commits a transient datatype to a file, creating a +! new named datatype. ! -! Modifications: - Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! loc_id - location identifier +! name - name of the datatype to be stored +! at the specified location +! type_id - identifier of a datatype to be stored +! OUTPUTS +! hdferr - Returns 0 if successful and -1 if fails +! OPTIONAL PARAMETERS +! lcpl_id - Link creation property list +! tcpl_id - Datatype creation property list +! tapl_id - Datatype access property list ! -! - Added optional parameters introduced in version 1.8 -! M.S. Breitenfeld +! AUTHOR +! Elena Pourmal +! August 12, 1999 ! +! HISTORY +! - Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 ! +! - Added optional parameters introduced in version 1.8 +! M. Scot Breitenfeld ! -! Comment: -!---------------------------------------------------------------------- - +! SOURCE SUBROUTINE h5tcommit_f(loc_id, name, type_id, hdferr, & lcpl_id, tcpl_id, tapl_id ) IMPLICIT NONE @@ -133,7 +149,7 @@ CONTAINS INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lcpl_id ! Link creation property list INTEGER(HID_T), OPTIONAL, INTENT(IN) :: tcpl_id ! Datatype creation property list INTEGER(HID_T), OPTIONAL, INTENT(IN) :: tapl_id ! Datatype access property list - +!***** INTEGER :: namelen ! Name length @@ -141,8 +157,6 @@ CONTAINS INTEGER(HID_T) :: tcpl_id_default INTEGER(HID_T) :: tapl_id_default -! MS FORTRAN needs explicit interface for C functions called here. -! INTERFACE INTEGER FUNCTION h5tcommit_c(loc_id, name, namelen, type_id, & lcpl_id_default, tcpl_id_default, tapl_id_default ) @@ -175,43 +189,37 @@ CONTAINS lcpl_id_default, tcpl_id_default, tapl_id_default ) END SUBROUTINE h5tcommit_f - -!---------------------------------------------------------------------- -! Name: h5tcopy_f ! -! Purpose: iCreates a copy of exisiting datatype. +!****s* H5T/h5tcopy_f ! -! Inputs: -! type_id - datatype identifier -! Outputs: -! new_type_id - identifier of datatype's copy -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tcopy_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Creates a copy of exisiting datatype. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - datatype identifier +! OUTPUTS +! new_type_id - identifier of datatype's copy +! hdferr - Returns 0 if successful and -1 if fails +! AUTHOR +! Elena Pourmal +! August 12, 1999 ! -! Comment: -!---------------------------------------------------------------------- - - - SUBROUTINE h5tcopy_f(type_id, new_type_id, hdferr) +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! +! SOURCE + SUBROUTINE h5tcopy_f(type_id, new_type_id, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER(HID_T), INTENT(OUT) :: new_type_id ! Identifier of datatype's copy INTEGER, INTENT(OUT) :: hdferr ! Error code - -! INTEGER, EXTERNAL :: h5tcopy_c -! MS FORTRAN needs explicit interface for C functions called here. -! +!***** INTERFACE INTEGER FUNCTION h5tcopy_c(type_id, new_type_id) USE H5GLOBAL @@ -225,46 +233,41 @@ CONTAINS hdferr = h5tcopy_c(type_id, new_type_id) END SUBROUTINE h5tcopy_f - -!---------------------------------------------------------------------- -! Name: h5tequal_f -! -! Purpose: Determines whether two datatype identifiers refer -! to the same datatype. ! -! Inputs: -! type1_id - datatype identifier -! type2_id - datatype identifier -! Outputs: -! flag - TRUE/FALSE flag to indicate -! if two datatypes are equal -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE -! -! Programmer: Elena Pourmal -! August 12, 1999 -! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 -! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tequal_f(type1_id, type2_id, flag, hdferr) +!****s* H5T/h5tequal_f +! +! NAME +! h5tequal_f +! +! PURPOSE +! Determines whether two datatype identifiers refer +! to the same datatype. +! +! INPUTS +! type1_id - datatype identifier +! type2_id - datatype identifier +! OUTPUTS +! flag - TRUE/FALSE flag to indicate +! if two datatypes are equal +! 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 7, 2001 +! SOURCE + SUBROUTINE h5tequal_f(type1_id, type2_id, flag, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type1_id ! Datatype identifier INTEGER(HID_T), INTENT(IN) :: type2_id ! Datatype identifier LOGICAL, INTENT(OUT) :: flag ! TRUE/FALSE flag to indicate if two ! datatypes are equal INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** INTEGER :: c_flag - -! INTEGER, EXTERNAL :: h5tequal_c -! MS FORTRAN needs explicit interface for C functions called here INTERFACE INTEGER FUNCTION h5tequal_c(type1_id, type2_id, c_flag) USE H5GLOBAL @@ -281,40 +284,35 @@ CONTAINS hdferr = h5tequal_c(type1_id, type2_id, c_flag) if(c_flag .gt. 0) flag = .TRUE. END SUBROUTINE h5tequal_f - -!---------------------------------------------------------------------- -! Name: h5tclose_f ! -! Purpose: Releases a datatype. +!****s* H5T/h5tclose_f ! -! Inputs: -! type_id - datatype identifier -! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tclose_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Releases a datatype. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - datatype identifier +! OUTPUTS +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - - SUBROUTINE h5tclose_f(type_id, hdferr) +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! +! SOURCE + SUBROUTINE h5tclose_f(type_id, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER, INTENT(OUT) :: hdferr ! Error code - -! INTEGER, EXTERNAL :: h5tclose_c -! MS FORTRAN needs explicit interface for C functions called here. -! +!***** INTERFACE INTEGER FUNCTION h5tclose_c(type_id) USE H5GLOBAL @@ -327,44 +325,42 @@ CONTAINS hdferr = h5tclose_c(type_id) END SUBROUTINE h5tclose_f - -!---------------------------------------------------------------------- -! Name: h5tget_class_f -! -! Purpose: Returns the datatype class identifier. -! -! Inputs: -! type_id - datatype identifier -! Outputs: -! class - class, possible values are: -! H5T_NO_CLASS_F (-1) -! H5T_INTEGER_F (0) -! H5T_FLOAT_F (1) -! H5T_TIME_F (2) -! H5T_STRING_F (3) -! H5T_BITFIELD_F (4) -! H5T_OPAQUE_F (5) -! H5T_COMPOUND_F (6) -! H5T_REFERENCE_F (7) -! H5T_ENUM_F (8) -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE -! -! Programmer: Elena Pourmal -! August 12, 1999 -! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 -! -! Comment: -!---------------------------------------------------------------------- - - - SUBROUTINE h5tget_class_f(type_id, class, hdferr) +! +!****s* H5T/h5tget_class_f +! +! NAME +! h5tget_class_f +! +! PURPOSE +! Returns the datatype class identifier. +! +! INPUTS +! type_id - datatype identifier +! OUTPUTS +! class - class, possible values are: +! H5T_NO_CLASS_F (-1) +! H5T_INTEGER_F (0) +! H5T_FLOAT_F (1) +! H5T_TIME_F (2) +! H5T_STRING_F (3) +! H5T_BITFIELD_F (4) +! H5T_OPAQUE_F (5) +! H5T_COMPOUND_F (6) +! H5T_REFERENCE_F (7) +! H5T_ENUM_F (8) +! 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 7, 2001 +! +! SOURCE + SUBROUTINE h5tget_class_f(type_id, class, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER, INTENT(OUT) :: class @@ -380,10 +376,7 @@ CONTAINS ! H5T_REFERENCE_F (7) ! H5T_ENUM_F (8) INTEGER, INTENT(OUT) :: hdferr ! Error code - -! INTEGER, EXTERNAL :: h5tget_class_c -! MS FORTRAN needs explicit interface for C functions called here. -! +!***** INTERFACE INTEGER FUNCTION h5tget_class_c(type_id, class) USE H5GLOBAL @@ -397,42 +390,37 @@ CONTAINS hdferr = h5tget_class_c(type_id, class) END SUBROUTINE h5tget_class_f - -!---------------------------------------------------------------------- -! Name: h5tget_size_f ! -! Purpose: Returns the size of a datatype. +!****s* H5T/h5tget_size_f ! -! Inputs: -! type_id - datatype identifier -! Outputs: -! size - datatype size -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tget_size_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Returns the size of a datatype. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - datatype identifier +! OUTPUTS +! size - datatype size +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - - SUBROUTINE h5tget_size_f(type_id, size, hdferr) +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! +! SOURCE + SUBROUTINE h5tget_size_f(type_id, size, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER(SIZE_T), INTENT(OUT) :: size ! Datatype size INTEGER, INTENT(OUT) :: hdferr ! Error code - -! INTEGER, EXTERNAL :: h5tget_size_c -! MS FORTRAN needs explicit interface for C functions called here. -! +!***** INTERFACE INTEGER FUNCTION h5tget_size_c(type_id, size) USE H5GLOBAL @@ -447,41 +435,38 @@ CONTAINS hdferr = h5tget_size_c(type_id, size) END SUBROUTINE h5tget_size_f -!---------------------------------------------------------------------- -! Name: h5tset_size_f ! -! Purpose: Sets the total size for an atomic datatype. +!****s* H5T/h5tset_size_f ! -! Inputs: -! type_id - datatype identifier -! size - size of the datatype -! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tset_size_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Sets the total size for an atomic datatype. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - datatype identifier +! size - size of the datatype +! OUTPUTS +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - - SUBROUTINE h5tset_size_f(type_id, size, hdferr) +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! +! +! SOURCE + SUBROUTINE h5tset_size_f(type_id, size, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER(SIZE_T), INTENT(IN) :: size ! Datatype size INTEGER, INTENT(OUT) :: hdferr ! Error code - -! INTEGER, EXTERNAL :: h5tset_size_c -! MS FORTRAN needs explicit interface for C functions called here. -! +!***** INTERFACE INTEGER FUNCTION h5tset_size_c(type_id, size) USE H5GLOBAL @@ -496,155 +481,139 @@ CONTAINS hdferr = h5tset_size_c(type_id, size) END SUBROUTINE h5tset_size_f -!---------------------------------------------------------------------- -! Name: h5tget_order_f ! -! Purpose: Returns the byte order of an atomic datatype. +!****s* H5T/h5tget_order_f ! -! Inputs: -! type_id - datatype identifier -! Outputs: -! order - byte order for the datatype, possible -! values are: -! H5T_ORDER_LE_F -! H5T_ORDER_BE_F -! H5T_ORDER_VAX_F (not implemented yet) -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tget_order_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Returns the byte order of an atomic datatype. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - datatype identifier +! OUTPUTS +! order - byte order for the datatype, possible +! values are: +! H5T_ORDER_LE_F +! H5T_ORDER_BE_F +! H5T_ORDER_VAX_F (not implemented yet) +! hdferr - Returns 0 if successful and -1 if fails +! AUTHOR +! Elena Pourmal +! August 12, 1999 ! -! Comment: -!---------------------------------------------------------------------- - - - SUBROUTINE h5tget_order_f(type_id, order, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier - INTEGER, INTENT(OUT) :: order - ! Datatype byte order, bossible values are: - ! H5T_ORDER_LE_F - ! H5T_ORDER_BE_F - ! H5T_ORDER_VAX_F - INTEGER, INTENT(OUT) :: hdferr ! Error code - -! INTEGER, EXTERNAL :: h5tget_order_c -! MS FORTRAN needs explicit interface for C functions called here. +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 ! - INTERFACE - INTEGER FUNCTION h5tget_order_c(type_id, order) - USE H5GLOBAL - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_ORDER_C'::h5tget_order_c - !DEC$ENDIF - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(OUT) :: order - END FUNCTION h5tget_order_c - END INTERFACE - - hdferr = h5tget_order_c(type_id, order) - END SUBROUTINE h5tget_order_f +! SOURCE + SUBROUTINE h5tget_order_f(type_id, order, hdferr) + IMPLICIT NONE + INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier + INTEGER, INTENT(OUT) :: order + ! Datatype byte order, possible values are: + ! H5T_ORDER_LE_F + ! H5T_ORDER_BE_F + ! H5T_ORDER_VAX_F + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + INTERFACE + INTEGER FUNCTION h5tget_order_c(type_id, order) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_ORDER_C'::h5tget_order_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER, INTENT(OUT) :: order + END FUNCTION h5tget_order_c + END INTERFACE + + hdferr = h5tget_order_c(type_id, order) + END SUBROUTINE h5tget_order_f +! +!****s* H5T/h5tset_order_f +! +! NAME +! h5tset_order_f +! +! PURPOSE +! Sets the byte ordering of an atomic datatype. +! +! INPUTS +! type_id - datatype identifier +! order - datatype byte order Possible values are: +! H5T_ORDER_LE_F +! H5T_ORDER_BE_F +! H5T_ORDER_VAX_F (not implemented yet) +! 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 7, 2001 +! +! SOURCE + SUBROUTINE h5tset_order_f(type_id, order, hdferr) + IMPLICIT NONE + INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier + INTEGER, INTENT(IN) :: order ! Datatype byte order, possible values + ! are: + ! H5T_ORDER_LE_F + ! H5T_ORDER_BE_F + ! H5T_ORDER_VAX_F + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + INTERFACE + INTEGER FUNCTION h5tset_order_c(type_id, order) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TSET_ORDER_C'::h5tset_order_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER, INTENT(IN) :: order + END FUNCTION h5tset_order_c + END INTERFACE + + hdferr = h5tset_order_c(type_id, order) + END SUBROUTINE h5tset_order_f -!---------------------------------------------------------------------- -! Name: h5tset_order_f ! -! Purpose: Sets the byte ordering of an atomic datatype. +!****s* H5T/h5tget_precision_f ! -! Inputs: -! type_id - datatype identifier -! order - datatype byte order -! Possible values are: -! H5T_ORDER_LE_F -! H5T_ORDER_BE_F -! H5T_ORDER_VAX_F (not implemented yet) -! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tget_precision_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Returns the precision of an atomic datatype. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 -! -! Comment: -!---------------------------------------------------------------------- - - - SUBROUTINE h5tset_order_f(type_id, order, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier - INTEGER, INTENT(IN) :: order ! Datatype byte order, bossible values - ! are: - ! H5T_ORDER_LE_F - ! H5T_ORDER_BE_F - ! H5T_ORDER_VAX_F - INTEGER, INTENT(OUT) :: hdferr ! Error code - -! INTEGER, EXTERNAL :: h5tset_order_c -! MS FORTRAN needs explicit interface for C functions called here. +! INPUTS +! type_id - datatype identifier +! OUTPUTS +! precision - precision of the datatype +! hdferr - Returns 0 if successful and -1 if fails ! - INTERFACE - INTEGER FUNCTION h5tset_order_c(type_id, order) - USE H5GLOBAL - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TSET_ORDER_C'::h5tset_order_c - !DEC$ENDIF - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(IN) :: order - END FUNCTION h5tset_order_c - END INTERFACE - - hdferr = h5tset_order_c(type_id, order) - END SUBROUTINE h5tset_order_f - -!---------------------------------------------------------------------- -! Name: h5tget_precision_f +! AUTHOR +! Elena Pourmal +! August 12, 1999 ! -! Purpose: Returns the precision of an atomic datatype. +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 ! -! Inputs: -! type_id - datatype identifier -! Outputs: -! precision - precision of the datatype -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE -! -! Programmer: Elena Pourmal -! August 12, 1999 -! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 -! -! Comment: -!---------------------------------------------------------------------- - - - SUBROUTINE h5tget_precision_f(type_id, precision, hdferr) +! SOURCE + SUBROUTINE h5tget_precision_f(type_id, precision, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER(SIZE_T), INTENT(OUT) :: precision ! Datatype precision INTEGER, INTENT(OUT) :: hdferr ! Error code - -! INTEGER, EXTERNAL :: h5tget_precision_c -! MS FORTRAN needs explicit interface for C functions called here. -! +!***** INTERFACE INTEGER FUNCTION h5tget_precision_c (type_id, precision) USE H5GLOBAL @@ -659,40 +628,37 @@ CONTAINS hdferr = h5tget_precision_c(type_id, precision) END SUBROUTINE h5tget_precision_f -!---------------------------------------------------------------------- -! Name: h5tset_precision_f ! -! Purpose: Sets the precision of an atomic datatype. +!****s* H5T/h5tset_precision_f ! -! Inputs: -! type_id - datatype identifier -! precision - datatype precision -! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tset_precision_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Sets the precision of an atomic datatype. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - datatype identifier +! precision - datatype precision +! OUTPUTS +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tset_precision_f(type_id, precision, hdferr) +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! +! SOURCE + SUBROUTINE h5tset_precision_f(type_id, precision, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER(SIZE_T), INTENT(IN) :: precision ! Datatype precision INTEGER, INTENT(OUT) :: hdferr ! Error code - -! INTEGER, EXTERNAL :: h5tset_precision_c -! MS FORTRAN needs explicit interface for C functions called here. -! +!***** INTERFACE INTEGER FUNCTION h5tset_precision_c (type_id, precision) USE H5GLOBAL @@ -707,41 +673,37 @@ CONTAINS hdferr = h5tset_precision_c(type_id, precision) END SUBROUTINE h5tset_precision_f -!---------------------------------------------------------------------- -! Name: h5tget_offset_f ! -! Purpose: Retrieves the bit offset of the first significant bit. +!****s* H5T/h5tget_offset_f ! -! Inputs: -! type_id - datatype identifier -! Outputs: -! offset - offset value -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tget_offset_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Retrieves the bit offset of the first significant bit. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - datatype identifier +! OUTPUTS +! offset - offset value +! hdferr - Returns 0 if successful and -1 if fails +! AUTHOR +! Elena Pourmal +! August 12, 1999 ! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tget_offset_f(type_id, offset, hdferr) +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! +! SOURCE + SUBROUTINE h5tget_offset_f(type_id, offset, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER(SIZE_T), INTENT(OUT) :: offset ! Datatype bit offset of the ! first significant bit INTEGER, INTENT(OUT) :: hdferr ! Error code - -! INTEGER, EXTERNAL :: h5tget_offset_c -! MS FORTRAN needs explicit interface for C functions called here. -! +!***** INTERFACE INTEGER FUNCTION h5tget_offset_c(type_id, offset) USE H5GLOBAL @@ -756,41 +718,37 @@ CONTAINS hdferr = h5tget_offset_c(type_id, offset) END SUBROUTINE h5tget_offset_f -!---------------------------------------------------------------------- -! Name: h5tset_offset_f ! -! Purpose: Sets the bit offset of the first significant bit. +!****s* H5T/h5tset_offset_f ! -! Inputs: -! type_id - datatype identifier -! offset - offset value -! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tset_offset_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Sets the bit offset of the first significant bit. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - datatype identifier +! offset - offset value +! OUTPUTS +! hdferr - Returns 0 if successful and -1 if fails +! AUTHOR +! Elena Pourmal +! August 12, 1999 ! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tset_offset_f(type_id, offset, hdferr) +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! +! SOURCE + SUBROUTINE h5tset_offset_f(type_id, offset, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER(SIZE_T), INTENT(IN) :: offset ! Datatype bit offset of the ! first significant bit INTEGER, INTENT(OUT) :: hdferr ! Error code - -! INTEGER, EXTERNAL :: h5tset_offset_c -! MS FORTRAN needs explicit interface for C functions called here. -! +!***** INTERFACE INTEGER FUNCTION h5tset_offset_c(type_id, offset) USE H5GLOBAL @@ -805,40 +763,40 @@ CONTAINS hdferr = h5tset_offset_c(type_id, offset) END SUBROUTINE h5tset_offset_f -!---------------------------------------------------------------------- -! Name: h5tget_pad_f -! -! Purpose: Retrieves the padding type of the least and -! most-significant bit padding. -! -! Inputs: -! type_id - datatype identifier -! Outputs: -! lsbpad - least-significant bit padding type -! msbpad - most-significant bit padding type -! Possible values of padding type are: -! H5T_PAD_ERROR_F = -1 -! H5T_PAD_ZERO_F = 0 -! H5T_PAD_ONE_F = 1 -! H5T_PAD_BACKGROUND_F = 2 -! H5T_PAD_NPAD_F = 3 -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE -! -! Programmer: Elena Pourmal -! August 12, 1999 -! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 -! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tget_pad_f(type_id, lsbpad, msbpad, hdferr) +! +!****s* H5T/h5tget_pad_f +! +! NAME +! h5tget_pad_f +! +! PURPOSE +! Retrieves the padding type of the least and +! most -significant bit padding. +! +! INPUTS +! type_id - datatype identifier +! OUTPUTS +! lsbpad - least-significant bit padding type +! msbpad - most-significant bit padding type +! Possible values of padding type are: +! H5T_PAD_ERROR_F = -1 +! H5T_PAD_ZERO_F = 0 +! H5T_PAD_ONE_F = 1 +! H5T_PAD_BACKGROUND_F = 2 +! H5T_PAD_NPAD_F = 3 +! 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 7, 2001 +! SOURCE + SUBROUTINE h5tget_pad_f(type_id, lsbpad, msbpad, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER, INTENT(OUT) :: lsbpad ! padding type of the @@ -853,10 +811,7 @@ CONTAINS ! H5T_PAD_NPAD_F = 3 INTEGER, INTENT(OUT) :: hdferr ! Error code - -! INTEGER, EXTERNAL :: h5tget_pad_c -! MS FORTRAN needs explicit interface for C functions called here. -! +!***** INTERFACE INTEGER FUNCTION h5tget_pad_c(type_id, lsbpad, msbpad) USE H5GLOBAL @@ -872,39 +827,38 @@ CONTAINS hdferr = h5tget_pad_c(type_id, lsbpad, msbpad) END SUBROUTINE h5tget_pad_f -!---------------------------------------------------------------------- -! Name: h5tset_pad_f -! -! Purpose: Sets the least and most-significant bits padding types. -! -! Inputs: -! type_id - datatype identifier -! lsbpad - least-significant bit padding type -! msbpad - most-significant bit padding type -! Possible values of padding type are: -! H5T_PAD_ERROR_F = -1 -! H5T_PAD_ZERO_F = 0 -! H5T_PAD_ONE_F = 1 -! H5T_PAD_BACKGROUND_F = 2 -! H5T_PAD_NPAD_F = 3 -! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE -! -! Programmer: Elena Pourmal -! August 12, 1999 -! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 -! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tset_pad_f(type_id, lsbpad, msbpad, hdferr) +! +!****s* H5T/h5tset_pad_f +! +! NAME +! h5tset_pad_f +! +! PURPOSE +! Sets the least and most-significant bits padding types. +! +! INPUTS +! type_id - datatype identifier +! lsbpad - least-significant bit padding type +! msbpad - most-significant bit padding type +! Possible values of padding type are: +! H5T_PAD_ERROR_F = -1 +! H5T_PAD_ZERO_F = 0 +! H5T_PAD_ONE_F = 1 +! H5T_PAD_BACKGROUND_F = 2 +! H5T_PAD_NPAD_F = 3 +! 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 7, 2001 +! SOURCE + SUBROUTINE h5tset_pad_f(type_id, lsbpad, msbpad, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER, INTENT(IN) :: lsbpad ! padding type of the @@ -918,10 +872,7 @@ CONTAINS ! H5T_PAD_ERROR_F = -1 ! H5T_PAD_NPAD_F = 3 INTEGER, INTENT(OUT) :: hdferr ! Error code - -! INTEGER, EXTERNAL :: h5sget_pad_c -! MS FORTRAN needs explicit interface for C functions called here. -! +!***** INTERFACE INTEGER FUNCTION h5tset_pad_c(type_id, lsbpad, msbpad) USE H5GLOBAL @@ -937,37 +888,37 @@ CONTAINS hdferr = h5tset_pad_c(type_id, lsbpad, msbpad) END SUBROUTINE h5tset_pad_f -!---------------------------------------------------------------------- -! Name: h5tget_sign_f -! -! Purpose: Retrieves the sign type for an integer type. -! -! Inputs: -! type_id - datatype identifier -! Outputs: -! sign - sign type -! Possible values are: -! Unsigned integer type H5T_SGN_NONE_F = 0 -! Two's complement signed integer type -! H5T_SGN_2_F = 1 -! or error value: H5T_SGN_ERROR_F=-1 -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE -! -! Programmer: Elena Pourmal -! August 12, 1999 -! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 -! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tget_sign_f(type_id, sign, hdferr) +! +!****s* H5T/h5tget_sign_f +! +! NAME +! h5tget_sign_f +! +! PURPOSE +! Retrieves the sign type for an integer type. +! +! INPUTS +! type_id - datatype identifier +! OUTPUTS +! sign - sign type +! Possible values are: +! - Unsigned integer type +! H5T_SGN_NONE_F = 0 +! - Two's complement signed integer type +! H5T_SGN_2_F = 1 +! - error value: H5T_SGN_ERROR_F=-1 +! 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 7, 2001 +! SOURCE + SUBROUTINE h5tget_sign_f(type_id, sign, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER, INTENT(OUT) :: sign ! sign type for an integer type @@ -977,10 +928,8 @@ CONTAINS !H5T_SGN_2_F = 1 !or error value: H5T_SGN_ERROR_F=-1 INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** -! INTEGER, EXTERNAL :: h5tget_sign_c -! MS FORTRAN needs explicit interface for C functions called here. -! INTERFACE INTEGER FUNCTION h5tget_sign_c(type_id, sign) USE H5GLOBAL @@ -995,37 +944,37 @@ CONTAINS hdferr = h5tget_sign_c(type_id, sign) END SUBROUTINE h5tget_sign_f -!---------------------------------------------------------------------- -! Name: h5tset_sign_f -! -! Purpose: Sets the sign proprety for an integer type. -! -! Inputs: -! type_id - datatype identifier -! sign - sign type -! Possible values are: -! Unsigned integer type H5T_SGN_NONE_F = 0 -! Two's complement signed integer type -! H5T_SGN_2_F = 1 -! or error value: H5T_SGN_ERROR_F=-1 -! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE -! -! Programmer: Elena Pourmal -! August 12, 1999 -! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 -! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tset_sign_f(type_id, sign, hdferr) +! +!****s* H5T/h5tset_sign_f +! +! NAME +! h5tset_sign_f +! +! PURPOSE +! Sets the sign proprety for an integer type. +! +! INPUTS +! type_id - datatype identifier +! sign - sign type +! Possible values are: +! - Unsigned integer type +! H5T_SGN_NONE_F = 0 +! - Two's complement signed integer type +! H5T_SGN_2_F = 1 +! - error value: H5T_SGN_ERROR_F=-1 +! 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 7, 2001 +! SOURCE + SUBROUTINE h5tset_sign_f(type_id, sign, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER, INTENT(IN) :: sign !sign type for an integer type @@ -1035,10 +984,8 @@ CONTAINS !H5T_SGN_2_F = 1 !or error value: H5T_SGN_ERROR_F=-1 INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** -! INTEGER, EXTERNAL :: h5tset_sign_c -! MS FORTRAN needs explicit interface for C functions called here. -! INTERFACE INTEGER FUNCTION h5tset_sign_c(type_id, sign) USE H5GLOBAL @@ -1053,36 +1000,35 @@ CONTAINS hdferr = h5tset_sign_c(type_id, sign) END SUBROUTINE h5tset_sign_f -!---------------------------------------------------------------------- -! Name: h5tget_fields_f ! -! Purpose: Retrieves floating point datatype bit field information. +!****s* H5T/h5tget_fields_f ! -! Inputs: -! type_id - datatype identifier -! Outputs: -! spos - sign bit-position -! epos - exponent bit-position -! esize - size of exponent in bits -! mpos - mantissa position -! msize - size of mantissa in bits -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tget_fields_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Retrieves floating point datatype bit field information. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - datatype identifier +! OUTPUTS +! spos - sign bit-position +! epos - exponent bit-position +! esize - size of exponent in bits +! mpos - mantissa position +! msize - size of mantissa in bits +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tget_fields_f(type_id, spos, epos, esize, mpos, msize, hdferr) +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! SOURCE + SUBROUTINE h5tget_fields_f(type_id, spos, epos, esize, mpos, msize, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER(SIZE_T), INTENT(OUT) :: spos ! sign bit-position @@ -1091,10 +1037,8 @@ CONTAINS INTEGER(SIZE_T), INTENT(OUT) :: mpos ! mantissa bit-position INTEGER(SIZE_T), INTENT(OUT) :: msize ! size of mantissa in bits INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** -! INTEGER, EXTERNAL :: h5tget_fields_c -! MS FORTRAN needs explicit interface for C functions called here. -! INTERFACE INTEGER FUNCTION h5tget_fields_c(type_id, spos, epos, esize, mpos, msize) USE H5GLOBAL @@ -1113,37 +1057,35 @@ CONTAINS hdferr = h5tget_fields_c(type_id, spos, epos, esize, mpos, msize) END SUBROUTINE h5tget_fields_f -!---------------------------------------------------------------------- -! Name: h5tset_fields_f -! -! Purpose: Sets locations and sizes of floating point bit fields. -! -! Inputs: -! type_id - datatype identifier -! spos - sign bit-position -! epos - exponent bit-position -! esize - size of exponent in bits -! mpos - mantissa position -! msize - size of mantissa in bits -! hdferr: - error code -! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE -! -! Programmer: Elena Pourmal -! August 12, 1999 -! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 -! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tset_fields_f(type_id, spos, epos, esize, mpos, msize, hdferr) +! +!****s* H5T/h5tset_fields_f +! +! NAME +! h5tset_fields_f +! +! PURPOSE +! Sets locations and sizes of floating point bit fields. +! +! INPUTS +! type_id - datatype identifier +! spos - sign bit-position +! epos - exponent bit-position +! esize - size of exponent in bits +! mpos - mantissa position +! msize - size of mantissa in bits +! 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 7, 2001 +! SOURCE + SUBROUTINE h5tset_fields_f(type_id, spos, epos, esize, mpos, msize, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER(SIZE_T), INTENT(IN) :: spos ! sign bit-position @@ -1152,10 +1094,8 @@ CONTAINS INTEGER(SIZE_T), INTENT(IN) :: mpos ! mantissa bit-position INTEGER(SIZE_T), INTENT(IN) :: msize ! size of mantissa in bits INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** -! INTEGER, EXTERNAL :: h5tset_fields_c -! MS FORTRAN needs explicit interface for C functions called here. -! INTERFACE INTEGER FUNCTION h5tset_fields_c(type_id, spos, epos, esize, mpos, msize) USE H5GLOBAL @@ -1174,40 +1114,37 @@ CONTAINS hdferr = h5tset_fields_c(type_id, spos, epos, esize, mpos, msize) END SUBROUTINE h5tset_fields_f -!---------------------------------------------------------------------- -! Name: h5tget_ebias_f ! -! Purpose: Retrieves the exponent bias of a floating-point type. +!****s* H5T/h5tget_ebias_f ! -! Inputs: -! type_id - datatype identifier -! Outputs: -! ebias - datatype exponent bias -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tget_ebias_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Retrieves the exponent bias of a floating-point type. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - datatype identifier +! OUTPUTS +! ebias - datatype exponent bias +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tget_ebias_f(type_id, ebias, hdferr) +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! SOURCE + SUBROUTINE h5tget_ebias_f(type_id, ebias, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER(SIZE_T), INTENT(OUT) :: ebias ! Datatype exponent bias of a floating-point type INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** -! INTEGER, EXTERNAL :: h5tget_ebias_c -! MS FORTRAN needs explicit interface for C functions called here. -! INTERFACE INTEGER FUNCTION h5tget_ebias_c(type_id, ebias) USE H5GLOBAL @@ -1222,41 +1159,37 @@ CONTAINS hdferr = h5tget_ebias_c(type_id, ebias) END SUBROUTINE h5tget_ebias_f -!---------------------------------------------------------------------- -! Name: h5tset_ebias_f ! -! Purpose: Sets the exponent bias of a floating-point type. +!****s* H5T/h5tset_ebias_f ! -! Inputs: -! type_id - datatype identifier -! ebias - datatype exponent bias -! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tset_ebias_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Sets the exponent bias of a floating-point type. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - datatype identifier +! ebias - datatype exponent bias +! OUTPUTS +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - - SUBROUTINE h5tset_ebias_f(type_id, ebias, hdferr) +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! SOURCE + SUBROUTINE h5tset_ebias_f(type_id, ebias, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER(SIZE_T), INTENT(IN) :: ebias !Datatype exponent bias of a floating-point type INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** -! INTEGER, EXTERNAL :: h5tset_ebias_c -! MS FORTRAN needs explicit interface for C functions called here. -! INTERFACE INTEGER FUNCTION h5tset_ebias_c(type_id, ebias) USE H5GLOBAL @@ -1271,36 +1204,35 @@ CONTAINS hdferr = h5tset_ebias_c(type_id, ebias) END SUBROUTINE h5tset_ebias_f -!---------------------------------------------------------------------- -! Name: h5tget_norm_f ! -! Purpose: Retrieves mantissa normalization of a floating-point -! datatype. +!****s* H5T/h5tget_norm_f ! -! Inputs: -! type_id - datatype identifier -! Outputs: -! norm - normalization types, valid values are: -! H5T_NORM_IMPLIED_F(0) -! H5T_NORM_MSBSET_F(1) -! H5T_NORM_NONE_F(2) -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tget_norm_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Retrieves mantissa normalization of a floating-point +! datatype. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - datatype identifier +! OUTPUTS +! norm - normalization types, valid values are: +! H5T_NORM_IMPLIED_F(0) +! H5T_NORM_MSBSET_F(1) +! H5T_NORM_NONE_F(2) +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tget_norm_f(type_id, norm, hdferr) +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! SOURCE + SUBROUTINE h5tget_norm_f(type_id, norm, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER, INTENT(OUT) :: norm !mantissa normalization of a floating-point datatype @@ -1310,10 +1242,8 @@ CONTAINS !mantissa is always 1, H5T_NORM_NONE_F(2) !Mantissa is not normalize INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** -! INTEGER, EXTERNAL :: h5tget_norm_c -! MS FORTRAN needs explicit interface for C functions called here. -! INTERFACE INTEGER FUNCTION h5tget_norm_c(type_id, norm) USE H5GLOBAL @@ -1328,36 +1258,35 @@ CONTAINS hdferr = h5tget_norm_c(type_id, norm) END SUBROUTINE h5tget_norm_f -!---------------------------------------------------------------------- -! Name: h5tset_norm_f ! -! Purpose: Sets the mantissa normalization of a floating-point datatype. +!****s* H5T/h5tset_norm_f ! -! Inputs: -! type_id - datatype identifier -! norm - normalization types, valid values are: -! H5T_NORM_IMPLIED_F(0) -! H5T_NORM_MSBSET_F(1) -! H5T_NORM_NONE_F(2) -! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tset_norm_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Sets the mantissa normalization of a floating-point datatype. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - datatype identifier +! norm - normalization types, valid values are: +! H5T_NORM_IMPLIED_F(0) +! H5T_NORM_MSBSET_F(1) +! H5T_NORM_NONE_F(2) +! OUTPUTS +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - - SUBROUTINE h5tset_norm_f(type_id, norm, hdferr) +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! +! SOURCE + SUBROUTINE h5tset_norm_f(type_id, norm, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER, INTENT(IN) :: norm !mantissa normalization of a floating-point datatype @@ -1367,10 +1296,7 @@ CONTAINS !mantissa is always 1, H5T_NORM_NONE_F(2) !Mantissa is not normalize INTEGER, INTENT(OUT) :: hdferr ! Error code - -! INTEGER, EXTERNAL :: h5tset_norm_c -! MS FORTRAN needs explicit interface for C functions called here. -! +!***** INTERFACE INTEGER FUNCTION h5tset_norm_c(type_id, norm) USE H5GLOBAL @@ -1385,37 +1311,36 @@ CONTAINS hdferr = h5tset_norm_c(type_id, norm) END SUBROUTINE h5tset_norm_f -!---------------------------------------------------------------------- -! Name: h5tget_inpad_f -! -! Purpose: Retrieves the internal padding type for unused bits -! in floating-point datatypes. -! -! Inputs: -! type_id - datatype identifier -! Outputs: -! padtype - padding type for unused bits -! Possible values of padding type are: -! H5T_PAD_ZERO_F = 0 -! H5T_PAD_ONE_F = 1 -! H5T_PAD_BACKGROUND_F = 2 -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE -! -! Programmer: Elena Pourmal -! August 12, 1999 -! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 -! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tget_inpad_f(type_id, padtype, hdferr) +! +!****s* H5T/h5tget_inpad_f +! +! NAME +! h5tget_inpad_f +! +! PURPOSE +! Retrieves the internal padding type for unused bits +! in floating-point datatypes. +! +! INPUTS +! type_id - datatype identifier +! OUTPUTS +! padtype - padding type for unused bits +! Possible values of padding type are: +! H5T_PAD_ZERO_F = 0 +! H5T_PAD_ONE_F = 1 +! H5T_PAD_BACKGROUND_F = 2 +! 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 7, 2001 +! SOURCE + SUBROUTINE h5tget_inpad_f(type_id, padtype, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER, INTENT(OUT) :: padtype ! padding type for unused bits @@ -1426,10 +1351,7 @@ CONTAINS ! H5T__PAD_BACKGROUND_F = 2 INTEGER, INTENT(OUT) :: hdferr ! Error code - -! INTEGER, EXTERNAL :: h5tget_inpad_c -! MS FORTRAN needs explicit interface for C functions called here. -! +!***** INTERFACE INTEGER FUNCTION h5tget_inpad_c(type_id, padtype) USE H5GLOBAL @@ -1444,36 +1366,35 @@ CONTAINS hdferr = h5tget_inpad_c(type_id, padtype) END SUBROUTINE h5tget_inpad_f -!---------------------------------------------------------------------- -! Name: h5tset_inpad_f ! -! Purpose: Fills unused internal floating point bits. +!****s* H5T/h5tset_inpad_f ! -! Inputs: -! type_id - datatype identifier -! padtype - padding type for unused bits -! Possible values of padding type are: -! H5T_PAD_ZERO_F = 0 -! H5T_PAD_ONE_F = 1 -! H5T_PAD_BACKGROUND_F = 2 -! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tset_inpad_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Fills unused internal floating point bits. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - datatype identifier +! padtype - padding type for unused bits +! Possible values of padding type are: +! H5T_PAD_ZERO_F = 0 +! H5T_PAD_ONE_F = 1 +! H5T_PAD_BACKGROUND_F = 2 +! OUTPUTS +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tset_inpad_f(type_id, padtype, hdferr) +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! SOURCE + SUBROUTINE h5tset_inpad_f(type_id, padtype, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER, INTENT(IN) :: padtype ! padding type for unused bits @@ -1483,10 +1404,7 @@ CONTAINS ! H5T__PAD_ONE_F = 1 ! H5T__PAD_BACKGROUND_F = 2 INTEGER, INTENT(OUT) :: hdferr ! Error code - -! INTEGER, EXTERNAL :: h5tset_inpad_c -! MS FORTRAN needs explicit interface for C functions called here. -! +!***** INTERFACE INTEGER FUNCTION h5tset_inpad_c(type_id, padtype) USE H5GLOBAL @@ -1501,46 +1419,42 @@ CONTAINS hdferr = h5tset_inpad_c(type_id, padtype) END SUBROUTINE h5tset_inpad_f -!---------------------------------------------------------------------- -! Name: h5tget_cset_f ! -! Purpose: Retrieves the character set type of a string datatype. +!****s* H5T/h5tget_cset_f ! -! Inputs: -! type_id - datatype identifier -! Outputs: -! cset - character set type of a string datatype -! Possible values are: -! H5T_CSET_ASCII_F = 0 -! H5T_CSET_UTF8_F -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tget_cset_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Retrieves the character set type of a string datatype. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - Datatype identifier +! OUTPUTS +! cset - Character set type of a string datatype +! Possible values are: +! H5T_CSET_ASCII_F = 0 +! H5T_CSET_UTF8_F +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tget_cset_f(type_id, cset, hdferr) +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! SOURCE + SUBROUTINE h5tget_cset_f(type_id, cset, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier - INTEGER, INTENT(OUT) :: cset ! character set type of a string datatype - ! Possible values are: - ! H5T_CSET_ASCII_F = 0 - ! H5T_CSET_UTF8_F - INTEGER, INTENT(OUT) :: hdferr ! Error code - -! INTEGER, EXTERNAL :: h5tget_cset_c -! MS FORTRAN needs explicit interface for C functions called here. -! + INTEGER, INTENT(OUT) :: cset ! character set type of a string datatype + ! Possible values are: + ! H5T_CSET_ASCII_F = 0 + ! H5T_CSET_UTF8_F + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** INTERFACE INTEGER FUNCTION h5tget_cset_c(type_id, cset) USE H5GLOBAL @@ -1555,47 +1469,42 @@ CONTAINS hdferr = h5tget_cset_c(type_id, cset) END SUBROUTINE h5tget_cset_f -!---------------------------------------------------------------------- -! Name: h5tset_cset_f ! -! Purpose: Sets character set to be used. +!****s* H5T/h5tset_cset_f ! -! Inputs: -! type_id - datatype identifier -! cset - character set type of a string datatype -! Possible values are: -! H5T_CSET_ASCII_F = 0 -! H5T_CSET_UTF8_F -! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tset_cset_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Sets character set to be used. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - datatype identifier +! cset - character set type of a string datatype +! Possible values are: +! H5T_CSET_ASCII_F = 0 +! H5T_CSET_UTF8_F +! OUTPUTS +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tset_cset_f(type_id, cset, hdferr) +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! SOURCE + SUBROUTINE h5tset_cset_f(type_id, cset, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER, INTENT(IN) :: cset !character set type of a string datatype - !Possible values are: - ! H5T_CSET_ASCII_F = 0 - ! H5T_CSET_UTF8_F - + ! Possible values of padding type are: + ! H5T_CSET_ASCII_F = 0 + ! H5T_CSET_UTF8_F INTEGER, INTENT(OUT) :: hdferr ! Error code - -! INTEGER, EXTERNAL :: h5tset_cset_c -! MS FORTRAN needs explicit interface for C functions called here. -! +!***** INTERFACE INTEGER FUNCTION h5tset_cset_c(type_id, cset) USE H5GLOBAL @@ -1610,45 +1519,41 @@ CONTAINS hdferr = h5tset_cset_c(type_id, cset) END SUBROUTINE h5tset_cset_f -!---------------------------------------------------------------------- -! Name: h5tget_strpad_f -! -! Purpose: Retrieves the storage mechanism for a string datatype. -! -! Inputs: -! type_id - datatype identifier -! Outputs: -! strpad - storage method for a string datatype -! Possible values are: -! H5T_STR_NULLTERM_F, -! H5T_STR_NULLPAD_F, -! H5T_STR_SPACEPAD_F -! H5T_STR_ERROR_F -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE -! -! Programmer: Elena Pourmal -! August 12, 1999 -! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 -! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tget_strpad_f(type_id, strpad, hdferr) +! +!****s* H5T/h5tget_strpad_f +! +! NAME +! h5tget_strpad_f +! +! PURPOSE +! Retrieves the storage mechanism for a string datatype. +! +! INPUTS +! type_id - datatype identifier +! OUTPUTS +! strpad - storage method for a string datatype +! Possible values are: +! H5T_STR_NULLTERM_F, +! H5T_STR_NULLPAD_F, +! H5T_STR_SPACEPAD_F +! H5T_STR_ERROR_F +! 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 7, 2001 +! SOURCE + SUBROUTINE h5tget_strpad_f(type_id, strpad, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER, INTENT(OUT) :: strpad INTEGER, INTENT(OUT) :: hdferr ! Error code - -! INTEGER, EXTERNAL :: h5tget_strpad_c -! MS FORTRAN needs explicit interface for C functions called here. -! +!***** INTERFACE INTEGER FUNCTION h5tget_strpad_c(type_id, strpad) USE H5GLOBAL @@ -1663,45 +1568,41 @@ CONTAINS hdferr = h5tget_strpad_c(type_id, strpad) END SUBROUTINE h5tget_strpad_f -!---------------------------------------------------------------------- -! Name: h5tset_strpad_f -! -! Purpose: Defines the storage mechanism for character strings. -! -! Inputs: -! type_id - datatype identifier -! strpad - storage method for a string datatype -! Possible values are: -! H5T_STR_NULLTERM_F, -! H5T_STR_NULLPAD_F, -! H5T_STR_SPACEPAD_F -! H5T_STR_ERROR_F -! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE -! -! Programmer: Elena Pourmal -! August 12, 1999 -! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 -! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tset_strpad_f(type_id, strpad, hdferr) +! +!****s* H5T/h5tset_strpad_f +! +! NAME +! h5tset_strpad_f +! +! PURPOSE +! Defines the storage mechanism for character strings. +! +! INPUTS +! type_id - datatype identifier +! strpad - storage method for a string datatype +! Possible values are: +! H5T_STR_NULLTERM_F, +! H5T_STR_NULLPAD_F, +! H5T_STR_SPACEPAD_F +! H5T_STR_ERROR_F +! 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 7, 2001 +! SOURCE + SUBROUTINE h5tset_strpad_f(type_id, strpad, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER, INTENT(IN) :: strpad ! string padding method for a string datatype INTEGER, INTENT(OUT) :: hdferr ! Error code - -! INTEGER, EXTERNAL :: h5tset_strpad_c -! MS FORTRAN needs explicit interface for C functions called here. -! +!***** INTERFACE INTEGER FUNCTION h5tset_strpad_c(type_id, strpad) USE H5GLOBAL @@ -1716,41 +1617,38 @@ CONTAINS hdferr = h5tset_strpad_c(type_id, strpad) END SUBROUTINE h5tset_strpad_f -!---------------------------------------------------------------------- -! Name: h5tget_nmembers_f ! -! Purpose: Retrieves the number of fields in a compound datatype. +!****s* H5T/h5tget_nmembers_f ! -! Inputs: -! type_id - datatype identifier -! Outputs: -! num_members - number of members -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tget_nmembers_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Retrieves the number of fields in a compound datatype. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - datatype identifier +! OUTPUTS +! num_members - number of members +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - - SUBROUTINE h5tget_nmembers_f(type_id, num_members, hdferr) +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! +! SOURCE + SUBROUTINE h5tget_nmembers_f(type_id, num_members, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER, INTENT(OUT) :: num_members !number of fields in a compound datatype INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** -! INTEGER, EXTERNAL :: h5tget_nmembers_c -! MS FORTRAN needs explicit interface for C functions called here. -! INTERFACE INTEGER FUNCTION h5tget_nmembers_c(type_id, num_members) USE H5GLOBAL @@ -1765,34 +1663,33 @@ CONTAINS hdferr = h5tget_nmembers_c(type_id, num_members) END SUBROUTINE h5tget_nmembers_f -!---------------------------------------------------------------------- -! Name: h5tget_member_name_f ! -! Purpose: Retrieves the name of a field of a compound datatype. +!****s* H5T/h5tget_member_name_f ! -! Inputs: -! type_id - datatype identifier -! index - filed index (0-based) -! Outputs: -! member_name - buffer to hold member's name -! namelen - name length -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tget_member_name_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Retrieves the name of a field of a compound datatype. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - datatype identifier +! index - filed index (0-based) +! OUTPUTS +! member_name - buffer to hold member's name +! namelen - name length +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tget_member_name_f(type_id, index, member_name, namelen, hdferr) +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! SOURCE + SUBROUTINE h5tget_member_name_f(type_id, index, member_name, namelen, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER, INTENT(IN) :: index !Field index (0-based) of the field name to retrieve @@ -1800,10 +1697,7 @@ CONTAINS !a compound datatype INTEGER, INTENT(OUT) :: namelen ! Length of the name INTEGER, INTENT(OUT) :: hdferr ! Error code - -! INTEGER, EXTERNAL :: h5tget_member_name_c -! MS FORTRAN needs explicit interface for C functions called here. -! +!***** INTERFACE INTEGER FUNCTION h5tget_member_name_c(type_id, index, member_name, namelen) USE H5GLOBAL @@ -1821,43 +1715,39 @@ CONTAINS hdferr = h5tget_member_name_c(type_id, index, member_name, namelen) END SUBROUTINE h5tget_member_name_f -!---------------------------------------------------------------------- -! Name: h5tget_member_offset_f ! -! Purpose: Retrieves the offset of a field of a compound datatype. +!****s* H5T/h5tget_member_offset_f ! -! Inputs: -! type_id - datatype identifier -! member_no - number of the field -! Outputs: -! offset - byte offset of the requested field -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tget_member_offset_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Retrieves the offset of a field of a compound datatype. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - datatype identifier +! member_no - number of the field +! OUTPUTS +! offset - byte offset of the requested field +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tget_member_offset_f(type_id, member_no, offset, hdferr) +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! SOURCE + SUBROUTINE h5tget_member_offset_f(type_id, member_no, offset, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER, INTENT(IN) :: member_no !Number of the field !whose offset is requested INTEGER(SIZE_T), INTENT(OUT) :: offset !byte offset of the beginning of the field INTEGER, INTENT(OUT) :: hdferr ! Error code - -! INTEGER, EXTERNAL :: h5tget_member_offset_c -! MS FORTRAN needs explicit interface for C functions called here. -! +!***** INTERFACE INTEGER FUNCTION h5tget_member_offset_c(type_id, member_no, offset ) USE H5GLOBAL @@ -1872,37 +1762,35 @@ CONTAINS hdferr = h5tget_member_offset_c(type_id, member_no, offset ) END SUBROUTINE h5tget_member_offset_f -!---------------------------------------------------------------------- -! Name: h5tget_member_index_f ! -! Purpose: Retrieves the index of a compound or enumeration datatype member. +!****s* H5T/h5tget_member_index_f ! -! Inputs: -! type_id - datatype identifier -! name - name of the field or member whose index to -! to be retrieved from the datatype. -! Outputs: -! index - 0-based index of the filed or member (0 to N-1) -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tget_member_index_f ! -! Programmer: Elena Pourmal -! September 26, 2002 +! PURPOSE +! Retrieves the index of a compound or enumeration datatype member. ! -! Modifications: +! INPUTS +! type_id - datatype identifier +! name - name of the field or member whose index to +! to be retrieved from the datatype. +! OUTPUTS +! index - 0-based index of the filed or member (0 to N-1) +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tget_member_index_f(type_id, name, index, hdferr) +! AUTHOR +! Elena Pourmal +! September 26, 2002 +! +! SOURCE + SUBROUTINE h5tget_member_index_f(type_id, name, index, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier CHARACTER(LEN=*), INTENT(IN) :: name ! Field or member name INTEGER, INTENT(OUT) :: index ! Field or member index INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** INTEGER :: namelen ! Name length INTERFACE @@ -1924,83 +1812,82 @@ CONTAINS END SUBROUTINE h5tget_member_index_f -!---------------------------------------------------------------------- -! Name: h5tget_member_dim_f -! -! Purpose: This function is not supported in hdf5-1.4.* -! -! Inputs: -! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE -! -! Programmer: Elena Pourmal -! August 12, 1999 -! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 -! -! Comment: -!---------------------------------------------------------------------- - -! SUBROUTINE h5tget_member_dims_f(type_id, field_idx,dims, field_dims, perm, hdferr) -! -! IMPLICIT NONE -! INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier -! INTEGER, INTENT(IN) :: field_idx !Field index (0-based) of -! !field_dims, perm) -! INTEGER, INTENT(OUT) :: dims !number of dimensions of the field -! -! INTEGER(SIZE_T),DIMENSION(*), INTENT(OUT) :: field_dims !buffer to store the -! !dimensions of the field -! INTEGER, DIMENSION(*), INTENT(OUT) :: perm !buffer to store the -! !permutation vector of the field -! INTEGER, INTENT(OUT) :: hdferr ! Error code -! INTEGER, EXTERNAL :: h5tget_member_dims_c -! hdferr = h5tget_member_dims_c(type_id, field_idx, dims, field_dims, perm) -! -! END SUBROUTINE h5tget_member_dims_f - -!---------------------------------------------------------------------- -! Name: h5tget_array_dims_f -! -! Purpose: Returns sizes of array dimensions. -! -! Inputs: -! type_id - array datatype identifier -! Outputs: -! dims - buffer to store array datatype -! dimensions -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE -! -! Programmer: Elena Pourmal -! August 12, 1999 -! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 -! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tget_array_dims_f(type_id, dims, hdferr) +! !$! +! !$!****s* H5T/h5tget_member_dim_f +! !$! +! !$! NAME +! !$! h5tget_member_dim_f +! !$! +! !$! PURPOSE +! !$! This function is not supported in hdf5-1.4.* +! !$! +! !$! INPUTS +! !$! OUTPUTS +! !$! hdferr: - error code +! !$! Success: 0 +! !$! Failure: -1 +! !$! +! !$! AUTHOR +! !$! Elena Pourmal +! !$! August 12, 1999 +! !$! +! !$! HISTORY +! !$! Explicit Fortran interfaces were added for +! !$! called C functions (it is needed for Windows +! !$! port). March 7, 2001 +! !$! +! !$! SOURCE +! !$! SUBROUTINE h5tget_member_dims_f(type_id, field_idx,dims, field_dims, perm, hdferr) +! !$! +! !$! IMPLICIT NONE +! !$! INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier +! !$! INTEGER, INTENT(IN) :: field_idx !Field index (0-based) of +! !$! !field_dims, perm) +! !$! INTEGER, INTENT(OUT) :: dims !number of dimensions of the field +! !$! +! !$! INTEGER(SIZE_T),DIMENSION(*), INTENT(OUT) :: field_dims !buffer to store the +! !$! !dimensions of the field +! !$! INTEGER, DIMENSION(*), INTENT(OUT) :: perm !buffer to store the +! !$! !permutation vector of the field +! !$! INTEGER, INTENT(OUT) :: hdferr ! Error code +! !$!*****! +! !$! INTEGER, EXTERNAL :: h5tget_member_dims_c +! !$! hdferr = h5tget_member_dims_c(type_id, field_idx, dims, field_dims, perm) +! !$! +! !$! END SUBROUTINE h5tget_member_dims_f + + +!****s* H5T/h5tget_array_dims_f +! +! NAME +! h5tget_array_dims_f +! +! PURPOSE +! Returns sizes of array dimensions. +! +! INPUTS +! type_id - array datatype identifier +! OUTPUTS +! dims - buffer to store array datatype dimensions +! 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 7, 2001 +! SOURCE + SUBROUTINE h5tget_array_dims_f(type_id, dims, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Array datatype identifier INTEGER(HSIZE_T),DIMENSION(*), INTENT(OUT) :: dims !buffer to store array datatype ! dimensions INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** -! INTEGER, EXTERNAL :: h5tget_array_dims_c -! MS FORTRAN needs explicit interface for C functions called here. -! INTERFACE INTEGER FUNCTION h5tget_array_dims_c(type_id, dims) USE H5GLOBAL @@ -2016,40 +1903,36 @@ CONTAINS END SUBROUTINE h5tget_array_dims_f -!---------------------------------------------------------------------- -! Name: h5tget_array_ndims_f ! -! Purpose: Returns the rank of an array datatype. +!****s* H5T/h5tget_array_ndims_f ! -! Inputs: -! type_id - array datatype identifier -! Outputs: -! ndims - number of array dimensions -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tget_array_ndims_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Returns the rank of an array datatype. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - array datatype identifier +! OUTPUTS +! ndims - number of array dimensions +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tget_array_ndims_f(type_id, ndims, hdferr) +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! SOURCE + SUBROUTINE h5tget_array_ndims_f(type_id, ndims, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Array datatype identifier INTEGER, INTENT(OUT) :: ndims ! number of array dimensions INTEGER, INTENT(OUT) :: hdferr ! Error code - -! INTEGER, EXTERNAL :: h5tget_array_ndims_c -! MS FORTRAN needs explicit interface for C functions called here. -! +!***** INTERFACE INTEGER FUNCTION h5tget_array_ndims_c(type_id, ndims) USE H5GLOBAL @@ -2065,41 +1948,37 @@ CONTAINS END SUBROUTINE h5tget_array_ndims_f -!---------------------------------------------------------------------- -! Name: h5tget_super_f ! -! Purpose: Returns the base datatype from which a datatype is derived. +!****s* H5T/h5tget_super_f ! -! Inputs: -! type_id - datatype identifier -! Outputs: -! base_type_id - identifier of the base type -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tget_super_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Returns the base datatype from which a datatype is derived. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - datatype identifier +! OUTPUTS +! base_type_id - identifier of the base type +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tget_super_f(type_id, base_type_id, hdferr) +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! SOURCE + SUBROUTINE h5tget_super_f(type_id, base_type_id, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! datatype identifier INTEGER(HID_T), INTENT(OUT) :: base_type_id ! identifier of the datatype ! from which datatype (type_id) was derived INTEGER, INTENT(OUT) :: hdferr ! Error code - -! INTEGER, EXTERNAL :: h5tget_super_c -! MS FORTRAN needs explicit interface for C functions called here. -! +!***** INTERFACE INTEGER FUNCTION h5tget_super_c(type_id, base_type_id) USE H5GLOBAL @@ -2115,44 +1994,40 @@ CONTAINS END SUBROUTINE h5tget_super_f -!---------------------------------------------------------------------- -! Name: h5tget_member_type_f ! -! Purpose: Returns the datatype of the specified member. +!****s* H5T/h5tget_member_type_f ! -! Inputs: -! type_id - compound datatype identifier -! field_idx - field index (0-based) +! NAME +! h5tget_member_type_f ! -! Outputs: -! datatype - idnetifier of the member's datatype -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! PURPOSE +! Returns the datatype of the specified member. ! -! Programmer: Elena Pourmal -! August 12, 1999 +! INPUTS +! type_id - compound datatype identifier +! field_idx - field index (0-based) ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! OUTPUTS +! datatype - idnetifier of the member's datatype +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tget_member_type_f(type_id, field_idx, datatype, hdferr) +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! SOURCE + SUBROUTINE h5tget_member_type_f(type_id, field_idx, datatype, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER, INTENT(IN) :: field_idx !Field index (0-based) of the field type to retrieve INTEGER(HID_T), INTENT(OUT) :: datatype !identifier of a copy of !the datatype of the field INTEGER, INTENT(OUT) :: hdferr ! Error code - -! INTEGER, EXTERNAL :: h5tget_member_type_c -! MS FORTRAN needs explicit interface for C functions called here. -! +!***** INTERFACE INTEGER FUNCTION h5tget_member_type_c(type_id, field_idx , datatype) USE H5GLOBAL @@ -2168,37 +2043,35 @@ CONTAINS hdferr = h5tget_member_type_c(type_id, field_idx , datatype) END SUBROUTINE h5tget_member_type_f -!---------------------------------------------------------------------- -! Name: h5tcreate_f ! -! Purpose: Creates a new dataype +!****s* H5T/h5tcreate_f ! -! Inputs: -! class - datatype class, possible values are: -! H5T_COMPOUND_F -! H5T_ENUM_F -! H5T_OPAQUE_F -! size - datattype size -! Outputs: -! type_id - datatype identifier -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tcreate_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Creates a new dataype ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! class - datatype class, possible values are: +! H5T_COMPOUND_F +! H5T_ENUM_F +! H5T_OPAQUE_F +! size - datattype size +! OUTPUTS +! type_id - datatype identifier +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - - SUBROUTINE h5tcreate_f(class, size, type_id, hdferr) +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! SOURCE + SUBROUTINE h5tcreate_f(class, size, type_id, hdferr) IMPLICIT NONE INTEGER, INTENT(IN) :: class ! Datatype class can be one of ! H5T_COMPOUND_F @@ -2207,10 +2080,7 @@ CONTAINS INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the datatype INTEGER(HID_T), INTENT(OUT) :: type_id ! Datatype identifier INTEGER, INTENT(OUT) :: hdferr ! Error code - -! INTEGER, EXTERNAL :: h5tcreate_c -! MS FORTRAN needs explicit interface for C functions called here. -! +!***** INTERFACE INTEGER FUNCTION h5tcreate_c(class, size, type_id) USE H5GLOBAL @@ -2226,35 +2096,34 @@ CONTAINS hdferr = h5tcreate_c(class, size, type_id) END SUBROUTINE h5tcreate_f -!---------------------------------------------------------------------- -! Name: h5tinsert_f ! -! Purpose: Adds a new member to a compound datatype. +!****s* H5T/h5tinsert_f ! -! Inputs: -! type_id - compound dattype identifier -! name - name of the field to insert -! offset - start of the member in an instance of -! the compound datatype -! field_id - datatype identifier of the field to insert -! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tinsert_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Adds a new member to a compound datatype. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - compound dattype identifier +! name - name of the field to insert +! offset - start of the member in an instance of +! the compound datatype +! field_id - datatype identifier of the field to insert +! OUTPUTS +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tinsert_f(type_id, name, offset, field_id, hdferr) +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! SOURCE + SUBROUTINE h5tinsert_f(type_id, name, offset, field_id, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier CHARACTER(LEN=*), INTENT(IN) :: name !Name of the field to insert @@ -2263,11 +2132,9 @@ CONTAINS INTEGER(HID_T), INTENT(IN) :: field_id !datatype identifier of the new member INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** INTEGER :: namelen -! INTEGER, EXTERNAL :: h5tinsert_c -! MS FORTRAN needs explicit interface for C functions called here. -! INTERFACE INTEGER FUNCTION h5tinsert_c(type_id, name, namelen, offset, field_id) USE H5GLOBAL @@ -2287,38 +2154,35 @@ CONTAINS hdferr = h5tinsert_c(type_id, name, namelen, offset, field_id ) END SUBROUTINE h5tinsert_f -!---------------------------------------------------------------------- -! Name: h5tpack_f ! -! Purpose: Recursively removes padding from within a compound datatype. +!****s* H5T/h5tpack_f ! -! Inputs: -! type_id - compound datatype identifier -! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tpack_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Recursively removes padding from within a compound datatype. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - compound datatype identifier +! OUTPUTS +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tpack_f(type_id, hdferr) +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! SOURCE + SUBROUTINE h5tpack_f(type_id, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** -! INTEGER, EXTERNAL :: h5tpack_c -! MS FORTRAN needs explicit interface for C functions called here. -! INTERFACE INTEGER FUNCTION h5tpack_c(type_id) USE H5GLOBAL @@ -2332,95 +2196,91 @@ CONTAINS hdferr = h5tpack_c(type_id) END SUBROUTINE h5tpack_f -!---------------------------------------------------------------------- -! Name: h5tinsert_array_f -! -! Purpose: This function is not available on hdf5-1.4.* -! -! Inputs: -! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE -! -! Programmer: Elena Pourmal -! August 12, 1999 -! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 -! -! Comment: -!---------------------------------------------------------------------- - -! SUBROUTINE h5tinsert_array_f(parent_id,name,offset, ndims, dims, member_id, hdferr, perm) -! IMPLICIT NONE -! INTEGER(HID_T), INTENT(IN) :: parent_id ! identifier of the parent compound datatype -! CHARACTER(LEN=*), INTENT(IN) :: name !Name of the new member -! INTEGER(SIZE_T), INTENT(IN) :: offset !Offset to start of new member -! !within compound datatype -! INTEGER, INTENT(IN) :: ndims !Dimensionality of new member. -! !Valid values are 0 (zero) through 4 (four) -! INTEGER(SIZE_T), DIMENSION(*), INTENT(IN) :: dims !Size of new member array -! INTEGER(HID_T), INTENT(IN) :: member_id ! identifier of the datatype of the new member -! INTEGER, INTENT(OUT) :: hdferr ! Error code -! -! INTEGER, DIMENSION(*), OPTIONAL, INTENT(IN) :: perm -! !Pointer to buffer to store -! !the permutation vector of the field -! INTEGER :: namelen, sizeofperm -! INTEGER, EXTERNAL :: h5tinsert_array_c, h5tinsert_array_c2 -! namelen = LEN(name) -! if (present(perm)) then -! hdferr = h5tinsert_array_c(parent_id, name, namelen, offset, ndims,dims, member_id, perm) -! else -! hdferr = h5tinsert_array_c2(parent_id, name, namelen, offset, ndims,dims, member_id) -! end if -! -! END SUBROUTINE h5tinsert_array_f - -!---------------------------------------------------------------------- -! Name: h5tarray_create_f -! -! Purpose: Creates an array datatype object. -! -! Inputs: -! base_id - datatype identifier for the array -! base datatype -! rank - rank of the array -! dims - array dimension sizes -! Outputs: -! type_id - array datatype identifier -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE -! -! Programmer: Elena Pourmal -! August 12, 1999 -! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 -! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tarray_create_f(base_id, rank, dims, type_id, hdferr) +! !$! +! !$!****s* H5T/h5tinsert_array_f +! !$! +! !$! NAME +! !$! h5tinsert_array_f +! !$! +! !$! PURPOSE +! !$! This function is not available on hdf5-1.4.* +! !$! +! !$! INPUTS +! !$! OUTPUTS +! !$! hdferr: - error code +! !$! Success: 0 +! !$! Failure: -1 +! !$! +! !$! AUTHOR +! !$! Elena Pourmal +! !$! August 12, 1999 +! !$! +! !$! HISTORY +! !$! Explicit Fortran interfaces were added for +! !$! called C functions (it is needed for Windows +! !$! port). March 7, 2001 +! !$! SOURCE +! SUBROUTINE h5tinsert_array_f(parent_id,name,offset, ndims, dims, member_id, hdferr, perm) +! IMPLICIT NONE +! INTEGER(HID_T), INTENT(IN) :: parent_id ! identifier of the parent compound datatype +! CHARACTER(LEN=*), INTENT(IN) :: name !Name of the new member +! INTEGER(SIZE_T), INTENT(IN) :: offset !Offset to start of new member +! !within compound datatype +! INTEGER, INTENT(IN) :: ndims !Dimensionality of new member. +! !Valid values are 0 (zero) through 4 (four) +! INTEGER(SIZE_T), DIMENSION(*), INTENT(IN) :: dims !Size of new member array +! INTEGER(HID_T), INTENT(IN) :: member_id ! identifier of the datatype of the new member +! INTEGER, INTENT(OUT) :: hdferr ! Error code +! !*****! +! INTEGER, DIMENSION(*), OPTIONAL, INTENT(IN) :: perm +! !Pointer to buffer to store +! !the permutation vector of the field +! INTEGER :: namelen, sizeofperm +! INTEGER, EXTERNAL :: h5tinsert_array_c, h5tinsert_array_c2 +! namelen = LEN(name) +! if (present(perm)) then +! hdferr = h5tinsert_array_c(parent_id, name, namelen, offset, ndims,dims, member_id, perm) +! else +! hdferr = h5tinsert_array_c2(parent_id, name, namelen, offset, ndims,dims, member_id) +! end if +! +! END SUBROUTINE h5tinsert_array_f + +! +!****s* H5T/h5tarray_create_f +! +! NAME +! h5tarray_create_f +! +! PURPOSE +! Creates an array datatype object. +! +! INPUTS +! base_id - datatype identifier for the array +! base datatype +! rank - rank of the array +! dims - array dimension sizes +! OUTPUTS +! type_id - array datatype identifier +! 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 7, 2001 +! SOURCE + SUBROUTINE h5tarray_create_f(base_id, rank, dims, type_id, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: base_id ! identifier of array base datatype INTEGER, INTENT(IN) :: rank ! Rank of the array INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: dims !Sizes of each array dimension INTEGER(HID_T), INTENT(OUT) :: type_id ! identifier of the array datatype INTEGER, INTENT(OUT) :: hdferr ! Error code - - -! INTEGER, EXTERNAL :: h5tarray_create_c -! MS FORTRAN needs explicit interface for C functions called here. -! +!***** INTERFACE INTEGER FUNCTION h5tarray_create_c(base_id, rank, dims, type_id) USE H5GLOBAL @@ -2438,33 +2298,31 @@ CONTAINS END SUBROUTINE h5tarray_create_f -!---------------------------------------------------------------------- -! Name: h5tenum_create_f ! -! Purpose: Creates a new enumeration datatype. +!****s* H5T/h5tenum_create_f ! -! Inputs: -! parent_id - datatype identifier for base datatype -! Outputs: -! new_type_id - datatype identifier for the enumeration -! datatype -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tenum_create_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Creates a new enumeration datatype. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! parent_id - datatype identifier for base datatype +! OUTPUTS +! new_type_id - datatype identifier for the enumeration datatype +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tenum_create_f(parent_id, new_type_id, hdferr) +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! SOURCE + SUBROUTINE h5tenum_create_f(parent_id, new_type_id, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: parent_id ! Datatype identifier for ! the base datatype @@ -2472,10 +2330,8 @@ CONTAINS !datatype identifier for the ! new enumeration datatype INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** -! INTEGER, EXTERNAL :: h5tenum_create_c -! MS FORTRAN needs explicit interface for C functions called here. -! INTERFACE INTEGER FUNCTION h5tenum_create_c(parent_id, new_type_id) USE H5GLOBAL @@ -2490,41 +2346,38 @@ CONTAINS hdferr = h5tenum_create_c(parent_id, new_type_id) END SUBROUTINE h5tenum_create_f -!---------------------------------------------------------------------- -! Name: h5tenaum_insert_f ! -! Purpose: Inserts a new enumeration datatype member. +!****s* H5T/h5tenaum_insert_f ! -! Inputs: -! type_id - datatype identifier -! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tenaum_insert_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Inserts a new enumeration datatype member. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - datatype identifier +! OUTPUTS +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tenum_insert_f(type_id, name, value, hdferr) +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! SOURCE + SUBROUTINE h5tenum_insert_f(type_id, name, value, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier CHARACTER(LEN=*), INTENT(IN) :: name !Name of the new member INTEGER, INTENT(IN) :: value !value of the new member INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** INTEGER :: namelen -! INTEGER, EXTERNAL :: h5tenum_insert_c -! MS FORTRAN needs explicit interface for C functions called here. -! INTERFACE INTEGER FUNCTION h5tenum_insert_c(type_id, name, namelen, value) USE H5GLOBAL @@ -2543,45 +2396,48 @@ CONTAINS hdferr = h5tenum_insert_c(type_id, name, namelen, value) END SUBROUTINE h5tenum_insert_f -!---------------------------------------------------------------------- -! Name: h5tenum_nameof_f ! -! Purpose: Returns the symbol name corresponding to a specified -! member of an enumeration datatype. +!****s* H5T/h5tenum_nameof_f ! -! Inputs: -! type_id - datatype identifier -! value - value of the enumeration datatype -! namelen - name buffer size -! Outputs: -! name - buffer to hold symbol name -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tenum_nameof_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Returns the symbol name corresponding to a specified +! member of an enumeration datatype. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - datatype identifier +! value - value of the enumeration datatype +! namelen - name buffer size +! OUTPUTS +! name - buffer to hold symbol name +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tenum_nameof_f(type_id, value, namelen, name, hdferr) +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! +! NOTE +! According to the standard: Because an INTENT(OUT) variable is considered undefined +! on entry to the procedure, any default initialization specified for its type will +! be applied. So we need to blank out the "name" to be portable and eliminate any +! characters the "name' may contain upon entry, depending on compiler implementation. +! SOURCE + SUBROUTINE h5tenum_nameof_f(type_id, value, namelen, name, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier CHARACTER(LEN=*), INTENT(OUT) :: name !Name of the enumeration datatype. INTEGER(SIZE_T), INTENT(IN) :: namelen !length of the name INTEGER, INTENT(IN) :: value !value of the enumeration datatype. INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** -! INTEGER, EXTERNAL :: h5tenum_nameof_c -! MS FORTRAN needs explicit interface for C functions called here. -! INTERFACE INTEGER FUNCTION h5tenum_nameof_c(type_id, value, name, namelen) USE H5GLOBAL @@ -2596,47 +2452,47 @@ CONTAINS END FUNCTION h5tenum_nameof_c END INTERFACE + name(1:LEN(name)) = ' ' + hdferr = h5tenum_nameof_c(type_id, value, name, namelen) END SUBROUTINE h5tenum_nameof_f -!---------------------------------------------------------------------- -! Name: h5tenum_valuof_f ! -! Purpose: Returns the value corresponding to a specified -! member of an enumeration datatype. +!****s* H5T/h5tenum_valuof_f ! -! Inputs: -! type_id - datatype identifier -! name - symbol name -! Outputs: -! value - value of the enumeration datatype -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tenum_valuof_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Returns the value corresponding to a specified +! member of an enumeration datatype. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - datatype identifier +! name - symbol name +! OUTPUTS +! value - value of the enumeration datatype +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tenum_valueof_f(type_id, name, value, hdferr) +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! +! SOURCE + SUBROUTINE h5tenum_valueof_f(type_id, name, value, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier CHARACTER(LEN=*), INTENT(IN) :: name !Name of the enumeration datatype. INTEGER, INTENT(OUT) :: value !value of the enumeration datatype. INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** INTEGER :: namelen -! INTEGER, EXTERNAL :: h5tenum_valueof_c -! MS FORTRAN needs explicit interface for C functions called here. -! INTERFACE INTEGER FUNCTION h5tenum_valueof_c(type_id, name, namelen, value) USE H5GLOBAL @@ -2655,42 +2511,39 @@ CONTAINS hdferr = h5tenum_valueof_c(type_id, name, namelen, value) END SUBROUTINE h5tenum_valueof_f -!---------------------------------------------------------------------- -! Name: h5tget_member_value_f ! -! Purpose: Returns the value of an enumeration datatype member. +!****s* H5T/h5tget_member_value_f ! -! Inputs: -! type_id - datatype identifier -! member_no - number of the enumeration datatype member -! Outputs: -! value - value of the enumeration datatype -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tget_member_value_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Returns the value of an enumeration datatype member. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - datatype identifier +! member_no - number of the enumeration datatype member +! OUTPUTS +! value - value of the enumeration datatype +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tget_member_value_f(type_id, member_no, value, hdferr) +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! SOURCE + SUBROUTINE h5tget_member_value_f(type_id, member_no, value, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER, INTENT(IN) :: member_no !Number of the enumeration datatype member INTEGER, INTENT(OUT) :: value !value of the enumeration datatype. INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** -! INTEGER, EXTERNAL :: h5tget_member_value_c -! MS FORTRAN needs explicit interface for C functions called here. -! INTERFACE INTEGER FUNCTION h5tget_member_value_c(type_id, member_no, value) USE H5GLOBAL @@ -2706,43 +2559,40 @@ CONTAINS hdferr = h5tget_member_value_c(type_id, member_no, value) END SUBROUTINE h5tget_member_value_f -!---------------------------------------------------------------------- -! Name: h5tset_tag_f ! -! Purpose: Tags an opaque datatype. +!****s* H5T/h5tset_tag_f ! -! Inputs: -! type_id - identifier for opaque datatype -! tag - unique ASCII string with which the opaque -! datatype is to be tagged. -! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tset_tag_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Tags an opaque datatype. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - identifier for opaque datatype +! tag - unique ASCII string with which the opaque +! datatype is to be tagged. +! OUTPUTS +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tset_tag_f(type_id, tag, hdferr) +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! SOURCE + SUBROUTINE h5tset_tag_f(type_id, tag, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier CHARACTER(LEN=*), INTENT(IN) :: tag !Unique ASCII string with which !the opaque datatype is to be tagged INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** INTEGER :: taglen -! INTEGER, EXTERNAL :: h5tset_tag_c -! MS FORTRAN needs explicit interface for C functions called here. -! INTERFACE INTEGER FUNCTION h5tset_tag_c(type_id, tag, taglen) USE H5GLOBAL @@ -2760,45 +2610,42 @@ CONTAINS hdferr = h5tset_tag_c(type_id, tag, taglen) END SUBROUTINE h5tset_tag_f -!---------------------------------------------------------------------- -! Name: h5tget_tag_f ! -! Purpose: Gets the tag associated with an opaque datatype. +!****s* H5T/h5tget_tag_f ! -! Inputs: -! type_id - identifier for opaque datatype -! Outputs: -! tag - unique ASCII string associated with opaque -! datatype -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tget_tag_f ! -! Programmer: Elena Pourmal -! August 12, 1999 +! PURPOSE +! Gets the tag associated with an opaque datatype. ! -! Modifications: Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 +! INPUTS +! type_id - identifier for opaque datatype +! OUTPUTS +! tag - unique ASCII string associated with opaque +! datatype +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tget_tag_f(type_id, tag,taglen, hdferr) +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! SOURCE + SUBROUTINE h5tget_tag_f(type_id, tag,taglen, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier - CHARACTER(LEN=*), INTENT(OUT) :: tag !Unique ASCII string with which - !the opaque datatype is to be tagged - INTEGER, INTENT(OUT) :: taglen !length of tag + CHARACTER(LEN=*), INTENT(OUT) :: tag ! Unique ASCII string with which + ! the opaque datatype is to be tagged + INTEGER, INTENT(OUT) :: taglen ! Length of tag + INTEGER(SIZE_T) :: tag_size ! Declared character length of tab INTEGER, INTENT(OUT) :: hdferr ! Error code - -! INTEGER, EXTERNAL :: h5tget_tag_c -! MS FORTRAN needs explicit interface for C functions called here. -! +!***** INTERFACE - INTEGER FUNCTION h5tget_tag_c(type_id, tag, taglen) + INTEGER FUNCTION h5tget_tag_c(type_id, tag, tag_size, taglen) USE H5GLOBAL !DEC$IF DEFINED(HDF5F90_WINDOWS) !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_TAG_C'::h5tget_tag_c @@ -2806,42 +2653,45 @@ CONTAINS !DEC$ATTRIBUTES reference :: tag INTEGER(HID_T), INTENT(IN) :: type_id CHARACTER(LEN=*), INTENT(OUT) :: tag + INTEGER(SIZE_T), INTENT(IN) :: tag_size INTEGER, INTENT(OUT) :: taglen END FUNCTION h5tget_tag_c END INTERFACE - hdferr = h5tget_tag_c(type_id, tag, taglen) + tag_size = LEN(tag) + + hdferr = h5tget_tag_c(type_id, tag, tag_size, taglen ) END SUBROUTINE h5tget_tag_f -!---------------------------------------------------------------------- -! Name: h5tvlen_create_f ! -! Purpose: Creates a new variable-length datatype. +!****s* H5T/h5tvlen_create_f ! -! Inputs: -! type_id - identifier iof base datatype -! Outputs: -! vltype_id - identifier for VL datatype -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tvlen_create_f ! -! Programmer: Elena Pourmal -! Wednesday, October 23, 2002 +! PURPOSE +! Creates a new variable-length datatype. ! -! Modifications: +! INPUTS +! type_id - identifier iof base datatype +! OUTPUTS +! vltype_id - identifier for VL datatype +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: Only basic Fortran base datatypes are supported -!---------------------------------------------------------------------- - - SUBROUTINE h5tvlen_create_f(type_id, vltype_id, hdferr) +! AUTHOR +! Elena Pourmal +! Wednesday, October 23, 2002 +! +! NOTES +! Only basic Fortran base datatypes are supported +! +! SOURCE + SUBROUTINE h5tvlen_create_f(type_id, vltype_id, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER(HID_T), INTENT(OUT) :: vltype_id ! VL datatype identifier INTEGER, INTENT(OUT) :: hdferr ! Error code - +!***** INTERFACE INTEGER FUNCTION h5tvlen_create_c(type_id, vltype_id) USE H5GLOBAL @@ -2856,42 +2706,37 @@ CONTAINS hdferr = h5tvlen_create_c(type_id, vltype_id) END SUBROUTINE h5tvlen_create_f -!---------------------------------------------------------------------- -! Name: h5tis_variable_str_f ! -! Purpose: Determines whether a dattype is a variable string. +!****s* H5T/h5tis_variable_str_f ! -! Inputs: -! type_id - - datartpe identifier -! Outputs: -! status - flag to indicate if datatype -! is a variable string -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tis_variable_str_f ! -! Programmer: Elena Pourmal -! March 12, 2003 +! PURPOSE +! Determines whether a dattype is a variable string. ! -! Modifications: +! INPUTS +! type_id - datartpe identifier +! OUTPUTS +! status - flag to indicate if datatype +! is a variable string +! hdferr - Returns 0 if successful and -1 if fails ! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tis_variable_str_f(type_id, status, hdferr) +! AUTHOR +! Elena Pourmal +! March 12, 2003 +! +! SOURCE + SUBROUTINE h5tis_variable_str_f(type_id, status, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier LOGICAL, INTENT(OUT) :: status ! Flag, idicates if datatype ! is a variable string or not ( TRUE or ! FALSE) INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** INTEGER :: flag ! "TRUE/FALSE/ERROR from C" -! INTEGER, EXTERNAL :: h5tis_variable_str_c -! MS FORTRAN needs explicit interface for C functions called here. -! INTERFACE INTEGER FUNCTION h5tis_variable_str_c(type_id, flag) USE H5GLOBAL @@ -2909,52 +2754,47 @@ CONTAINS END SUBROUTINE h5tis_variable_str_f -!---------------------------------------------------------------------- -! Name: h5tget_member_class_f -! -! Purpose: Returns datatype class of compound datatype member. -! -! Inputs: -! type_id - - datartpe identifier -! member_no - index of compound datatype member -! Outputs: -! class - class type for compound dadtype member -! Can be one of the follwoing classes: -! H5T_NO_CLASS_F (error) -! H5T_INTEGER_F -! H5T_FLOAT_F -! H5T_TIME_F -! H5T_STRING_F -! H5T_BITFIELD_F -! H5T_OPAQUE_F -! H5T_COMPOUND_F -! H5T_REFERENCE_F -! H5T_ENUM_F -! H5T_VLEN_F -! H5T_ARRAY_F -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE -! -! Programmer: Elena Pourmal -! April 6, 2005 -! -! Modifications: -! -! Comment: -!---------------------------------------------------------------------- - - SUBROUTINE h5tget_member_class_f(type_id, member_no, class, hdferr) +! +!****s* H5T/h5tget_member_class_f +! +! NAME +! h5tget_member_class_f +! +! PURPOSE +! Returns datatype class of compound datatype member. +! +! INPUTS +! type_id - datartpe identifier +! member_no - index of compound datatype member +! OUTPUTS +! class - class type for compound dadtype member +! Valid classes: +! H5T_NO_CLASS_F (error) +! H5T_INTEGER_F +! H5T_FLOAT_F +! H5T_TIME_F +! H5T_STRING_F +! H5T_BITFIELD_F +! H5T_OPAQUE_F +! H5T_COMPOUND_F +! H5T_REFERENCE_F +! H5T_ENUM_F +! H5T_VLEN_F +! H5T_ARRAY_F +! hdferr - Returns 0 if successful and -1 if fails +! +! AUTHOR +! Elena Pourmal +! April 6, 2005 +! +! SOURCE + SUBROUTINE h5tget_member_class_f(type_id, member_no, class, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier INTEGER, INTENT(IN) :: member_no ! Member number INTEGER, INTENT(OUT) :: class ! Member class INTEGER, INTENT(OUT) :: hdferr ! Error code - -! MS FORTRAN needs explicit interface for C functions called here. -! +!***** INTERFACE INTEGER FUNCTION h5tget_member_class_c(type_id, member_no, class) USE H5GLOBAL @@ -2971,36 +2811,35 @@ CONTAINS END SUBROUTINE h5tget_member_class_f -!---------------------------------------------------------------------- -! Name: h5tcommit_anon_f ! -! Purpose: Commits a transient datatype to a file, -! creating a new named datatype, -! but does not link it into the file structure. +!****s* H5T/h5tcommit_anon_f ! -! Inputs: -! loc_id - A file or group identifier specifying the file -! in which the new named datatype is to be created. -! dtype_id - A datatype identifier. +! NAME +! h5tcommit_anon_f ! -! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! tcpl_id - A datatype creation property list identifier. -! (H5P_DEFAULT_F for the default property list.) -! tapl_id - A datatype access property list identifier. -! should always be passed as the value H5P_DEFAULT_F. +! PURPOSE +! Commits a transient datatype to a file, +! creating a new named datatype, +! but does not link it into the file structure. ! -! Programmer: M.S. Breitenfeld -! February 25, 2008 +! INPUTS +! loc_id - A file or group identifier specifying the file +! in which the new named datatype is to be created. +! dtype_id - A datatype identifier. ! -! Modifications: +! OUTPUTS +! hdferr - Returns 0 if successful and -1 if fails +! OPTIONAL PARAMETERS +! tcpl_id - A datatype creation property list identifier. +! (H5P_DEFAULT_F for the default property list.) +! tapl_id - A datatype access property list identifier. +! should always be passed as the value H5P_DEFAULT_F. ! -! Comment: -!---------------------------------------------------------------------- - +! AUTHOR +! M. Scot Breitenfeld +! February 25, 2008 +! +! SOURCE SUBROUTINE h5tcommit_anon_f(loc_id, dtype_id, hdferr, tcpl_id, tapl_id) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: loc_id ! A file or group identifier specifying @@ -3013,11 +2852,10 @@ CONTAINS ! (H5P_DEFAULT_F for the default property list.) INTEGER(HID_T), OPTIONAL, INTENT(IN) :: tapl_id ! A datatype access property list identifier. ! should always be passed as the value H5P_DEFAULT_F. +!***** INTEGER(HID_T) :: tcpl_id_default INTEGER(HID_T) :: tapl_id_default -! MS FORTRAN needs explicit interface for C functions called here. -! INTERFACE INTEGER FUNCTION h5tcommit_anon_c(loc_id, dtype_id, & tcpl_id_default, tapl_id_default) @@ -3043,41 +2881,36 @@ CONTAINS END SUBROUTINE h5tcommit_anon_f -!---------------------------------------------------------------------- -! Name: h5tcommitted_f ! -! Purpose: Determines whether a datatype is a named type or a transient type. +!****s* H5T/h5tcommitted_f ! -! Inputs: -! dtype_id - A datatype identifier. +! NAME +! h5tcommitted_f ! -! Outputs: -! committed - .TRUE., if the datatype has been committed -! .FALSE., if the datatype has not been committed. -! hdferr: - error code -! Success: 0 -! Failure: -1 -! Optional parameters: None +! PURPOSE +! Determines whether a datatype is a named type or a transient type. ! -! Programmer: M.S. Breitenfeld -! February 25, 2008 +! INPUTS +! dtype_id - A datatype identifier. ! -! Modifications: +! OUTPUTS +! committed - .TRUE., if the datatype has been committed +! .FALSE., if the datatype has not been committed. +! hdferr - Returns 0 if successful and -1 if fails +! AUTHOR +! M. Scot Breitenfeld +! February 25, 2008 ! -! Comment: -!---------------------------------------------------------------------- - +! SOURCE SUBROUTINE h5tcommitted_f(dtype_id, committed, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dtype_id ! A datatype identifier LOGICAL, INTENT(OUT) :: committed ! .TRUE., if the datatype has been committed !.FALSE., if the datatype has not been committed. INTEGER, INTENT(OUT) :: hdferr ! Error code: -! Success: 0 -! Failure: -1 - -! MS FORTRAN needs explicit interface for C functions called here. -! +! Success: 0 +! Failure: -1 +!***** INTERFACE INTEGER FUNCTION h5tcommitted_c(dtype_id) USE H5GLOBAL @@ -3103,34 +2936,31 @@ CONTAINS END SUBROUTINE h5tcommitted_f -!---------------------------------------------------------------------- -! Name: H5Tdecode_f ! -! Purpose: Decode a binary object description of data type and return a new object handle. -! Inputs: -! buf - Buffer for the data space object to be decoded. -! obj_id - Object ID -! Outputs: -! hdferr: - error code -! Success: 0 -! Failure: -1 +!****s* H5T/H5Tdecode_f ! -! Optional parameters: - NONE +! NAME +! H5Tdecode_f ! -! Programmer: M.S. Breitenfeld -! April 9, 2008 +! PURPOSE +! Decode a binary object description of data type and return a new object handle. +! INPUTS +! buf - Buffer for the data space object to be decoded. +! obj_id - Object ID +! OUTPUTS +! hdferr - Returns 0 if successful and -1 if fails ! -! Modifications: +! AUTHOR +! M. Scot Breitenfeld +! April 9, 2008 ! -! Comment: -!---------------------------------------------------------------------- - +! SOURCE SUBROUTINE h5tdecode_f(buf, obj_id, hdferr) IMPLICIT NONE CHARACTER(LEN=*), INTENT(IN) :: buf ! Buffer for the data space object to be decoded. INTEGER(HID_T), INTENT(OUT) :: obj_id ! Object ID INTEGER, INTENT(OUT) :: hdferr ! Error code - +!***** INTERFACE INTEGER FUNCTION h5tdecode_c(buf, obj_id) USE H5GLOBAL @@ -3147,38 +2977,34 @@ CONTAINS END SUBROUTINE h5tdecode_f -!---------------------------------------------------------------------- -! Name: H5Tencode_f -! -! Purpose: Encode a data type object description into a binary buffer. ! -! Inputs: -! obj_id - Identifier of the object to be encoded. -! buf - Buffer for the object to be encoded into. -! nalloc - The size of the allocated buffer. -! Outputs: -! nalloc - The size of the buffer needed. -! hdferr: - error code -! Success: 0 -! Failure: -1 +!****s* H5T/H5Tencode_f ! -! Optional parameters: - NONE +! NAME +! H5Tencode_f ! -! Programmer: M.S. Breitenfeld -! April 9, 2008 +! PURPOSE +! Encode a data type object description into a binary buffer. ! -! Modifications: +! INPUTS +! obj_id - Identifier of the object to be encoded. +! buf - Buffer for the object to be encoded into. +! nalloc - The size of the allocated buffer. +! OUTPUTS +! nalloc - The size of the buffer needed. +! hdferr - Returns 0 if successful and -1 if fails. ! -! Comment: -!---------------------------------------------------------------------- - +! AUTHOR +! M. Scot Breitenfeld +! April 9, 2008 +! SOURCE SUBROUTINE h5tencode_f(obj_id, buf, nalloc, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: obj_id ! Identifier of the object to be encoded. CHARACTER(LEN=*), INTENT(OUT) :: buf ! Buffer for the object to be encoded into. INTEGER(SIZE_T), INTENT(INOUT) :: nalloc ! The size of the allocated buffer. INTEGER, INTENT(OUT) :: hdferr ! Error code - +!***** INTERFACE INTEGER FUNCTION h5tencode_c(buf, obj_id, nalloc) @@ -3197,37 +3023,33 @@ CONTAINS END SUBROUTINE h5tencode_f -!---------------------------------------------------------------------- -! Name: h5tget_create_plist_f ! -! Purpose: Returns a copy of a datatype creation property list. +!****s* H5T/h5tget_create_plist_f ! -! Inputs: -! dtype_id - Datatype identifier -! Outputs: -! dtpl_id - Datatype property list identifier -! hdferr: - Error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tget_create_plist_f ! -! Programmer: M.S. Breitenfeld -! April 9, 2008 +! PURPOSE +! Returns a copy of a datatype creation property list. ! -! Modifications: N/A +! INPUTS +! dtype_id - Datatype identifier +! OUTPUTS +! dtpl_id - Datatype property list identifier +! hdferr - Returns 0 if successful and -1 if fails ! -!---------------------------------------------------------------------- - +! AUTHOR +! M. Scot Breitenfeld +! April 9, 2008 +! +! SOURCE SUBROUTINE h5tget_create_plist_f(dtype_id, dtpl_id, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dtype_id ! Datatype identifier INTEGER(HID_T), INTENT(OUT) :: dtpl_id ! Datatype property list identifier. INTEGER, INTENT(OUT) :: hdferr ! Error code: ! 0 on success and -1 on failure - -! MS FORTRAN needs explicit interface for C functions called here. -! +!***** INTERFACE INTEGER FUNCTION h5tget_create_plist_c(dtype_id, dtpl_id) USE H5GLOBAL @@ -3242,29 +3064,26 @@ CONTAINS hdferr = h5tget_create_plist_c(dtype_id, dtpl_id) END SUBROUTINE h5tget_create_plist_f -!---------------------------------------------------------------------- -! Name: h5tcompiler_conv_f ! -! Purpose: Check whether the library’s default conversion is hard conversion.R +!****s* H5T/h5tcompiler_conv_f ! -! Inputs: -! src_id - Identifier for the source datatype. -! dst_id - Identifier for the destination datatype. -! Outputs: -! flag - TRUE for compiler conversion, FALSE for library conversion -! hdferr: - Error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! NAME +! h5tcompiler_conv_f ! -! Programmer: M.S. Breitenfeld -! April 9, 2008 +! PURPOSE +! Check whether the library’s default conversion is hard conversion.R ! -! Modifications: N/A +! INPUTS +! src_id - Identifier for the source datatype. +! dst_id - Identifier for the destination datatype. +! OUTPUTS +! flag - TRUE for compiler conversion, FALSE for library conversion +! hdferr - Returns 0 if successful and -1 if fails ! -!---------------------------------------------------------------------- - +! AUTHOR +! M. Scot Breitenfeld +! April 9, 2008 +! SOURCE SUBROUTINE h5tcompiler_conv_f( src_id, dst_id, flag, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: src_id ! Identifier for the source datatype. @@ -3272,6 +3091,7 @@ CONTAINS LOGICAL, INTENT(OUT) :: flag ! .TRUE. for compiler conversion, .FALSE. for library conversion INTEGER, INTENT(OUT) :: hdferr ! Error code: ! 0 on success and -1 on failure +!***** INTEGER :: c_flag INTERFACE @@ -3293,35 +3113,31 @@ CONTAINS END SUBROUTINE h5tcompiler_conv_f -!---------------------------------------------------------------------- -! Name: h5tget_native_type_f ! -! Purpose: Returns the native datatype of a specified datatype. +!****s* H5T/h5tget_native_type_f ! -! Inputs: -! dtype_id - Datatype identifier for the dataset datatype. -! * -! direction - Direction of search: -! H5T_DIR_DEFAULT = 0, /*default direction is inscendent */ -! H5T_DIR_ASCEND = 1, /*in inscendent order */ -! H5T_DIR_DESCEND = 2 /*in descendent order */ -! * NOTE: In C it is defined as a structure: H5T_direction_t +! NAME +! h5tget_native_type_f ! -! Outputs: -! native_dtype_id - The native datatype identifier for the specified dataset datatype -! hdferr: - Error code -! Success: 0 -! Failure: -1 -! Optional parameters: -! NONE +! PURPOSE +! Returns the native datatype of a specified datatype. ! -! Programmer: M.S. Breitenfeld -! June 18, 2008 +! INPUTS +! dtype_id - Datatype identifier for the dataset datatype. +! +! direction - Direction of search: +! H5T_DIR_DEFAULT = 0, /*default direction is inscendent */ +! H5T_DIR_ASCEND = 1, /*in inscendent order */ +! H5T_DIR_DESCEND = 2 /*in descendent order */ +! * NOTE: In C it is defined as a structure: H5T_direction_t ! -! Modifications: N/A -! -!---------------------------------------------------------------------- - +! OUTPUTS +! native_dtype_id - The native datatype identifier for the specified dataset datatype +! hdferr - Returns 0 if successful and -1 if fails +! AUTHOR +! M. Scot Breitenfeld +! June 18, 2008 +! SOURCE SUBROUTINE h5tget_native_type_f(dtype_id, direction, native_dtype_id, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dtype_id ! Datatype identifier @@ -3331,6 +3147,7 @@ CONTAINS INTEGER(HID_T), INTENT(OUT) :: native_dtype_id ! The native datatype identifier INTEGER, INTENT(OUT) :: hdferr ! Error code: ! 0 on success and -1 on failure +!***** INTERFACE INTEGER FUNCTION h5tget_native_type_c(dtype_id, direction, native_dtype_id) USE H5GLOBAL |