summaryrefslogtreecommitdiffstats
path: root/fortran/src/H5_ff.F90
diff options
context:
space:
mode:
authorScot Breitenfeld <brtnfld@hdfgroup.org>2015-08-11 01:22:33 (GMT)
committerScot Breitenfeld <brtnfld@hdfgroup.org>2015-08-11 01:22:33 (GMT)
commit3b4696ccd16c2b98e2700a46bf7a5c76ef4a9764 (patch)
treef301ab5333168d7bfa691bee703dd076f569fc46 /fortran/src/H5_ff.F90
parent415eb5512b0726716b5f8f72de3dda11ecff8091 (diff)
downloadhdf5-3b4696ccd16c2b98e2700a46bf7a5c76ef4a9764.zip
hdf5-3b4696ccd16c2b98e2700a46bf7a5c76ef4a9764.tar.gz
hdf5-3b4696ccd16c2b98e2700a46bf7a5c76ef4a9764.tar.bz2
[svn-r27489] reverted merge of branch
Diffstat (limited to 'fortran/src/H5_ff.F90')
-rw-r--r--fortran/src/H5_ff.F90451
1 files changed, 0 insertions, 451 deletions
diff --git a/fortran/src/H5_ff.F90 b/fortran/src/H5_ff.F90
deleted file mode 100644
index 39e23a7..0000000
--- a/fortran/src/H5_ff.F90
+++ /dev/null
@@ -1,451 +0,0 @@
-!****h* ROBODoc/H5LIB
-!
-! NAME
-! MODULE H5LIB
-!
-! PURPOSE
-! This module provides fortran specific helper functions for the HDF library
-!
-! COPYRIGHT
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!
-! NOTES
-! _____ __ __ _____ ____ _____ _______ _ _ _______
-! |_ _| \/ | __ \ / __ \| __ \__ __|/\ | \ | |__ __|
-! **** | | | \ / | |__) | | | | |__) | | | / \ | \| | | | ****
-! **** | | | |\/| | ___/| | | | _ / | | / /\ \ | . ` | | | ****
-! **** _| |_| | | | | | |__| | | \ \ | |/ ____ \| |\ | | | ****
-! |_____|_| |_|_| \____/|_| \_\ |_/_/ \_\_| \_| |_|
-!
-! If you add a new function you must add the function name to the
-! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory.
-! This is needed for Windows based operating systems.
-!
-!*****
-
-#include <H5config_f.inc>
-
-MODULE H5LIB
-
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr, C_INTPTR_T
- USE H5GLOBAL
- IMPLICIT NONE
-
-CONTAINS
-!****s* H5LIB/h5open_f
-!
-! NAME
-! h5open_f
-!
-! PURPOSE
-! Initializes HDF5 Fortran interface.
-!
-! Outputs:
-! error - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! Removed call to h5open_c since this may cause a problem for an
-! application that uses HDF5 library outside HDF5 Fortran APIs.
-! October 13, 2011
-! Fortran90 Interface:
- SUBROUTINE h5open_f(error)
- IMPLICIT NONE
- INTEGER, INTENT(OUT) :: error
-!*****
- INTEGER :: error_1, error_2, error_3
-
- INTERFACE
- INTEGER FUNCTION h5init_types_c(p_types, f_types, i_types) &
- BIND(C,NAME='h5init_types_c')
- IMPORT :: HID_T
- IMPORT :: PREDEF_TYPES_LEN, FLOATING_TYPES_LEN, INTEGER_TYPES_LEN
- IMPLICIT NONE
- INTEGER(HID_T), DIMENSION(PREDEF_TYPES_LEN) :: p_types
- INTEGER(HID_T), DIMENSION(FLOATING_TYPES_LEN) :: f_types
- INTEGER(HID_T), DIMENSION(INTEGER_TYPES_LEN) :: i_types
- END FUNCTION h5init_types_c
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION h5init_flags_c(i_H5D_flags, &
- i_H5D_size_flags,&
- i_H5E_flags, &
- i_H5E_hid_flags, &
- i_H5F_flags, &
- i_H5FD_flags, &
- i_H5FD_hid_flags, &
- i_H5G_flags, &
- i_H5I_flags, &
- i_H5L_flags, &
- i_H5O_flags, &
- i_H5P_flags, &
- i_H5P_flags_int, &
- i_H5R_flags, &
- i_H5S_flags, &
- i_H5S_hsize_flags, &
- i_H5T_flags, &
- i_H5Z_flags, &
- i_H5generic_flags) &
- BIND(C,NAME='h5init_flags_c')
- IMPORT :: HID_T, SIZE_T, HSIZE_T
- IMPORT :: H5D_FLAGS_LEN, H5D_SIZE_FLAGS_LEN, &
- H5E_FLAGS_LEN, H5E_HID_FLAGS_LEN, &
- H5F_FLAGS_LEN, H5G_FLAGS_LEN, H5FD_FLAGS_LEN, &
- H5FD_HID_FLAGS_LEN, H5I_FLAGS_LEN, H5L_FLAGS_LEN, &
- H5O_FLAGS_LEN, H5P_FLAGS_LEN, H5P_FLAGS_INT_LEN, &
- H5R_FLAGS_LEN, H5S_FLAGS_LEN, H5S_HSIZE_FLAGS_LEN, &
- H5T_FLAGS_LEN, H5Z_FLAGS_LEN, H5generic_FLAGS_LEN
- IMPLICIT NONE
- INTEGER i_H5D_flags(H5D_FLAGS_LEN)
- INTEGER(SIZE_T) i_H5D_size_flags(H5D_SIZE_FLAGS_LEN)
- INTEGER i_H5E_flags(H5E_FLAGS_LEN)
- INTEGER(HID_T) i_H5E_hid_flags(H5E_HID_FLAGS_LEN)
- INTEGER i_H5F_flags(H5F_FLAGS_LEN)
- INTEGER i_H5G_flags(H5G_FLAGS_LEN)
- INTEGER i_H5FD_flags(H5FD_FLAGS_LEN)
- INTEGER(HID_T) i_H5FD_hid_flags(H5FD_HID_FLAGS_LEN)
- INTEGER i_H5I_flags(H5I_FLAGS_LEN)
- INTEGER i_H5L_flags(H5L_FLAGS_LEN)
- INTEGER i_H5O_flags(H5O_FLAGS_LEN)
- INTEGER(HID_T) i_H5P_flags(H5P_FLAGS_LEN)
- INTEGER i_H5P_flags_int(H5P_FLAGS_INT_LEN)
- INTEGER i_H5R_flags(H5R_FLAGS_LEN)
- INTEGER i_H5S_flags(H5S_FLAGS_LEN)
- INTEGER(HSIZE_T) i_H5S_hsize_flags(H5S_HSIZE_FLAGS_LEN)
- INTEGER i_H5T_flags(H5T_FLAGS_LEN)
- INTEGER i_H5Z_flags(H5Z_FLAGS_LEN)
- INTEGER i_H5generic_flags(H5generic_FLAGS_LEN)
- END FUNCTION h5init_flags_c
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION h5init1_flags_c( i_H5LIB_flags ) &
- BIND(C,NAME='h5init1_flags_c')
- IMPORT :: H5LIB_FLAGS_LEN
- IMPLICIT NONE
- INTEGER i_H5LIB_flags(H5LIB_FLAGS_LEN)
- END FUNCTION h5init1_flags_c
- END INTERFACE
- error_1 = h5init_types_c(predef_types, floating_types, integer_types)
- error_2 = h5init_flags_c(H5D_flags, &
- H5D_size_flags, &
- H5E_flags, &
- H5E_hid_flags, &
- H5F_flags, &
- H5FD_flags, &
- H5FD_hid_flags, &
- H5G_flags, &
- H5I_flags, &
- H5L_flags, &
- H5O_flags, &
- H5P_flags, &
- H5P_flags_int, &
- H5R_flags, &
- H5S_flags, &
- H5S_hsize_flags, &
- H5T_flags, &
- H5Z_flags, &
- H5generic_flags)
- error_3 = h5init1_flags_c(H5LIB_flags )
- error = error_1 + error_2 + error_3
- END SUBROUTINE h5open_f
-
-!****s* H5LIB/h5close_f
-!
-! NAME
-! h5close_f
-!
-! PURPOSE
-! Closes HDF5 Fortran interface.
-!
-! Outputs:
-! error - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! Removed call to h5close_c since this may cause a problem for an
-! application that uses HDF5 library outside HDF5 Fortran APIs.
-! October 13, 2011
-! Fortran90 Interface:
- SUBROUTINE h5close_f(error)
- IMPLICIT NONE
- INTEGER, INTENT(OUT) :: error
-!*****
- INTEGER :: error_1
- INTERFACE
- INTEGER FUNCTION h5close_types_c(p_types, P_TYPES_LEN, &
- f_types, F_TYPES_LEN, &
- i_types, I_TYPES_LEN ) &
- BIND(C,NAME='h5close_types_c')
- IMPORT :: HID_T
- INTEGER P_TYPES_LEN
- INTEGER F_TYPES_LEN
- INTEGER I_TYPES_LEN
- INTEGER(HID_T), DIMENSION(P_TYPES_LEN) :: p_types
- INTEGER(HID_T), DIMENSION(F_TYPES_LEN) :: f_types
- INTEGER(HID_T), DIMENSION(I_TYPES_LEN) :: i_types
- END FUNCTION h5close_types_c
- END INTERFACE
- error_1 = h5close_types_c(predef_types, PREDEF_TYPES_LEN, &
- floating_types, FLOATING_TYPES_LEN, &
- integer_types, INTEGER_TYPES_LEN )
- error = error_1
-
- END SUBROUTINE h5close_f
-
-!****s* H5LIB/h5get_libversion_f
-!
-! NAME
-! h5get_libversion_f
-!
-! PURPOSE
-! Returns the HDF5 LIbrary release number
-!
-! Outputs:
-! majnum - major version of the library
-! minum - minor version of the library
-! relnum - release version of the library
-! error - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! September 24, 2002
-!
-! Fortran90 Interface:
- SUBROUTINE h5get_libversion_f(majnum, minnum, relnum, error)
- IMPLICIT NONE
- INTEGER, INTENT(OUT) :: majnum, minnum, relnum, error
-!*****
- INTERFACE
- INTEGER FUNCTION h5get_libversion_c(majnum, minnum, relnum) &
- BIND(C,NAME='h5get_libversion_c')
- IMPLICIT NONE
- INTEGER, INTENT(OUT) :: majnum, minnum, relnum
- END FUNCTION h5get_libversion_c
- END INTERFACE
-
- error = h5get_libversion_c(majnum, minnum, relnum)
-
- END SUBROUTINE h5get_libversion_f
-
-!****s* H5LIB/h5check_version_f
-!
-! NAME
-! h5check_version_f
-!
-! PURPOSE
-! Verifies that library versions are consistent.
-!
-! Inputs:
-! majnum - major version of the library
-! minum - minor version of the library
-! relnum - release version of the library
-!
-! Outputs:
-! error - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! September 24, 2002
-!
-! Fortran90 Interface:
- SUBROUTINE h5check_version_f(majnum, minnum, relnum, error)
- IMPLICIT NONE
- INTEGER, INTENT(IN) :: majnum, minnum, relnum
- INTEGER, INTENT(OUT) :: error
-!*****
- INTERFACE
- INTEGER FUNCTION h5check_version_c(majnum, minnum, relnum) &
- BIND(C,NAME='h5check_version_c')
- IMPLICIT NONE
- INTEGER, INTENT(IN) :: majnum, minnum, relnum
- END FUNCTION h5check_version_c
- END INTERFACE
-
- error = h5check_version_c(majnum, minnum, relnum)
-
- END SUBROUTINE h5check_version_f
-!****s* H5LIB/h5garbage_collect_f
-!
-! NAME
-! h5garbage_collect_f
-!
-! PURPOSE
-! Garbage collects on all free-lists of all types.
-!
-! Outputs:
-! error - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! September 24, 2002
-!
-! Fortran90 Interface:
- SUBROUTINE h5garbage_collect_f(error)
- IMPLICIT NONE
- INTEGER, INTENT(OUT) :: error
-!*****
- INTERFACE
- INTEGER FUNCTION h5garbage_collect_c() &
- BIND(C,NAME='h5garbage_collect_c')
- END FUNCTION h5garbage_collect_c
- END INTERFACE
-
- error = h5garbage_collect_c()
-
- END SUBROUTINE h5garbage_collect_f
-!****s* H5LIB/h5dont_atexit_f
-!
-! NAME
-! h5dont_atexit_f
-!
-! PURPOSE
-! Instructs library not to install atexit cleanup routine.
-!
-! Outputs:
-! error - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! September 24, 2002
-!
-! Fortran90 Interface:
- SUBROUTINE h5dont_atexit_f(error)
- IMPLICIT NONE
- INTEGER, INTENT(OUT) :: error
-!*****
- INTERFACE
- INTEGER FUNCTION h5dont_atexit_c() &
- BIND(C,NAME='h5dont_atexit_c')
- END FUNCTION h5dont_atexit_c
- END INTERFACE
-
- error = h5dont_atexit_c()
-
- END SUBROUTINE h5dont_atexit_f
-
-!****f* H5LIB/h5kind_to_type
-!
-! NAME
-! h5kind_to_type
-!
-! PURPOSE
-! Converts the KIND to the correct HDF type
-!
-! Inputs:
-! kind - Fortran KIND parameter
-! flag - Whether KIND is of type INTEGER or REAL:
-! H5_INTEGER_KIND - integer
-! H5_REAL_KIND - real
-! Outputs:
-! h5_type - Returns the type
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! August 25, 2008
-!
-! Fortran90 Interface:
- INTEGER(HID_T) FUNCTION h5kind_to_type(kind, flag) RESULT(h5_type)
- IMPLICIT NONE
- INTEGER, INTENT(IN) :: kind
- INTEGER, INTENT(IN) :: flag
-!*****
- IF(flag.EQ.H5_INTEGER_KIND)THEN
- IF(kind.EQ.Fortran_INTEGER_1)THEN
- h5_type = H5T_NATIVE_INTEGER_1
- ELSE IF(kind.EQ.Fortran_INTEGER_2)THEN
- h5_type = H5T_NATIVE_INTEGER_2
- ELSE IF(kind.EQ.Fortran_INTEGER_4)THEN
- h5_type = H5T_NATIVE_INTEGER_4
- ELSE IF(kind.EQ.Fortran_INTEGER_8)THEN
- h5_type = H5T_NATIVE_INTEGER_8
-#if H5_HAVE_Fortran_INTEGER_SIZEOF_16!=0
- ELSE IF(kind.EQ.Fortran_INTEGER_16)THEN
- h5_type = H5T_NATIVE_INTEGER_16
-#endif
- ENDIF
- ELSE IF(flag.EQ.H5_REAL_KIND)THEN
- IF(kind.EQ.Fortran_REAL_C_FLOAT)THEN
- h5_type = H5T_NATIVE_REAL_C_FLOAT
- ELSE IF(kind.EQ.Fortran_REAL_C_DOUBLE)THEN
- h5_type = H5T_NATIVE_REAL_C_DOUBLE
-#if H5_FORTRAN_C_LONG_DOUBLE_IS_UNIQUE!=0
- ELSE IF(kind.EQ.Fortran_REAL_C_LONG_DOUBLE)THEN
- h5_type = H5T_NATIVE_REAL_C_LONG_DOUBLE
-#endif
-#if H5_PAC_FC_MAX_REAL_PRECISION > 28
-#if H5_HAVE_FLOAT128 == 1
- ELSE IF(kind.EQ.Fortran_REAL_C_FLOAT128)THEN
- h5_type = H5T_NATIVE_FLOAT_128
-#endif
-#endif
- ELSE
- h5_type = -1
- ENDIF
- ENDIF
-
- END FUNCTION h5kind_to_type
-
-!****f* H5LIB_PROVISIONAL/h5offsetof
-!
-! NAME
-! h5offsetof
-!
-! PURPOSE
-! Computes the offset in memory
-!
-! Inputs:
-! start - starting pointer address
-! end - ending pointer address
-!
-! Outputs:
-! offset - offset of a member within the derived type
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! Augest 25, 2008
-!
-! ACKNOWLEDGEMENTS
-! Joe Krahn
-!
-! Fortran2003 Interface:
- FUNCTION h5offsetof(start,end) RESULT(offset)
- IMPLICIT NONE
- INTEGER(SIZE_T) :: offset
- TYPE(C_PTR), VALUE, INTENT(IN) :: start, end
-!*****
- INTEGER(C_INTPTR_T) :: int_address_start, int_address_end
- int_address_start = TRANSFER(start, int_address_start)
- int_address_end = TRANSFER(end , int_address_end )
-
- offset = int_address_end - int_address_start
-
- END FUNCTION h5offsetof
-
-END MODULE H5LIB