mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-11-21 01:04:10 +08:00
[svn-r3531]
Purpose: Windows port and maintenance Description: Windows Fortran requires interface bocks for each C function called from F90 stub. I also added comment blocks for each F90 API. Solution: Added interface blocks. Platforms tested: Linux (eirene) to test that things are still working on UNIX.
This commit is contained in:
parent
e18749d7ac
commit
0cb43aefd9
@ -1,12 +1,79 @@
|
||||
|
||||
!----------------------------------------------------------------------
|
||||
! Name: h5open_f
|
||||
!
|
||||
! Purpose: Initializes the HDF5 library and Fortran90 interface.
|
||||
!
|
||||
! Inputs:
|
||||
! Outputs:
|
||||
! error: - 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). February 28, 2001
|
||||
!
|
||||
! Comment:
|
||||
!----------------------------------------------------------------------
|
||||
SUBROUTINE h5open_f(error)
|
||||
USE H5GLOBAL
|
||||
|
||||
IMPLICIT NONE
|
||||
INTEGER, INTENT(OUT) :: error
|
||||
INTEGER :: error_0, error_1, error_2
|
||||
INTEGER, EXTERNAL :: h5init_types_c
|
||||
INTEGER, EXTERNAL :: h5init_flags_c
|
||||
INTEGER, EXTERNAL :: h5open_c
|
||||
! INTEGER, EXTERNAL :: h5init_types_c
|
||||
! INTEGER, EXTERNAL :: h5init_flags_c
|
||||
! INTEGER, EXTERNAL :: h5open_c
|
||||
|
||||
!
|
||||
! MS FORTRAN needs explicit interfaces for C functions called here.
|
||||
!
|
||||
INTERFACE
|
||||
INTEGER FUNCTION h5open_c()
|
||||
!MS$ATTRIBUTES C,reference,alias:'_H5OPEN_C'::h5dopen_c
|
||||
END FUNCTION h5open_c
|
||||
END INTERFACE
|
||||
INTERFACE
|
||||
INTEGER FUNCTION h5init_types_c(predef_types, floating_types, integer_types)
|
||||
USE H5GLOBAL
|
||||
INTEGER(HID_T), DIMENSION(PREDEF_TYPES_LEN) :: predef_types
|
||||
INTEGER(HID_T), DIMENSION(FLOATING_TYPES_LEN) :: floating_types
|
||||
INTEGER(HID_T), DIMENSION(INTEGER_TYPES_LEN) :: integer_types
|
||||
!MS$ATTRIBUTES C,reference,alias:'_H5INIT_TYPES_C'::h5init_types_c
|
||||
END FUNCTION h5init_types_c
|
||||
END INTERFACE
|
||||
INTERFACE
|
||||
INTEGER FUNCTION h5init_flags_c(H5D_flags, &
|
||||
H5E_flags, &
|
||||
H5F_flags, &
|
||||
H5FD_flags, &
|
||||
H5G_flags, &
|
||||
H5I_flags, &
|
||||
H5P_flags, &
|
||||
H5R_flags, &
|
||||
H5S_flags, &
|
||||
H5T_flags )
|
||||
USE H5GLOBAL
|
||||
INTEGER H5F_flags(H5F_FLAGS_LEN)
|
||||
INTEGER H5G_flags(H5G_FLAGS_LEN)
|
||||
INTEGER H5D_flags(H5D_FLAGS_LEN)
|
||||
INTEGER H5FD_flags(H5FD_FLAGS_LEN)
|
||||
INTEGER H5E_flags(H5E_FLAGS_LEN)
|
||||
INTEGER H5I_flags(H5I_FLAGS_LEN)
|
||||
INTEGER H5P_flags(H5P_FLAGS_LEN)
|
||||
INTEGER H5R_flags(H5R_FLAGS_LEN)
|
||||
INTEGER H5S_flags(H5S_FLAGS_LEN)
|
||||
INTEGER H5T_flags(H5T_FLAGS_LEN)
|
||||
|
||||
!MS$ATTRIBUTES C,reference,alias:'_H5INIT_FLAGS_C'::h5init_flags_c
|
||||
END FUNCTION h5init_flags_c
|
||||
END INTERFACE
|
||||
error_0 = h5open_c()
|
||||
error_1 = h5init_types_c(predef_types, floating_types, integer_types)
|
||||
error_2 = h5init_flags_c(H5D_flags, &
|
||||
@ -23,13 +90,55 @@
|
||||
|
||||
END SUBROUTINE h5open_f
|
||||
|
||||
!----------------------------------------------------------------------
|
||||
! Name: h5close_f
|
||||
!
|
||||
! Purpose: Closes the HDF5 library and Fortran90 interface.
|
||||
!
|
||||
! Inputs:
|
||||
! Outputs:
|
||||
! error: - 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). February 28, 2001
|
||||
!
|
||||
! Comment:
|
||||
!----------------------------------------------------------------------
|
||||
|
||||
SUBROUTINE h5close_f(error)
|
||||
USE H5GLOBAL
|
||||
|
||||
IMPLICIT NONE
|
||||
INTEGER :: error_1, error_2
|
||||
INTEGER, INTENT(OUT) :: error
|
||||
INTEGER, EXTERNAL :: h5close_types_c, h5close_c
|
||||
! INTEGER, EXTERNAL :: h5close_types_c, h5close_c
|
||||
INTERFACE
|
||||
INTEGER FUNCTION h5close_c()
|
||||
!MS$ATTRIBUTES C,reference,alias:'_H5CLOSE_C'::h5close_c
|
||||
END FUNCTION h5close_c
|
||||
END INTERFACE
|
||||
INTERFACE
|
||||
INTEGER FUNCTION h5close_types_c(predef_types, PREDEF_TYPES_LEN, &
|
||||
floating_types, FLOATING_TYPES_LEN, &
|
||||
integer_types, INTEGER_TYPES_LEN )
|
||||
USE H5GLOBAL
|
||||
INTEGER PREDEF_TYPES_LEN
|
||||
INTEGER FLOATING_TYPES_LEN
|
||||
INTEGER INTEGER_TYPES_LEN
|
||||
INTEGER(HID_T), DIMENSION(PREDEF_TYPES_LEN) :: predef_types
|
||||
INTEGER(HID_T), DIMENSION(FLOATING_TYPES_LEN) :: floating_types
|
||||
INTEGER(HID_T), DIMENSION(INTEGER_TYPES_LEN) :: integer_types
|
||||
!MS$ATTRIBUTES C,reference,alias:'_H5CLOSE_TYPES_C'::h5close_types_c
|
||||
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 )
|
||||
|
Loading…
Reference in New Issue
Block a user