1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
!****h* ROBODoc/H5E (F03)
!
! NAME
! H5E_PROVISIONAL
!
! FILE
! src/fortran/src/H5Eff_F03.f90
!
! PURPOSE
!
! This file contains Fortran 90 and Fortran 2003 interfaces for H5E functions.
! It contains the same functions as H5Eff_F90.f90 but includes the
! Fortran 2003 functions and the interface listings. This file will be compiled
! instead of H5Eff_F90.f90 if Fortran 2003 functions are enabled.
!
!
! 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
! *** IMPORTANT ***
! If you add a new H5E function to the module 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.
!
!*****
MODULE H5E_PROVISIONAL
USE H5GLOBAL
CONTAINS
!****s* H5E/h5eset_auto_f
!
! NAME
! h5eset_auto_f
!
! PURPOSE
! Returns settings for automatic error stack traversal function and its data.
!
! Inputs:
! printflag - Flag to turn automatic error printing on or off;
! possible values are:
! printon (1)
! printoff(0)
! estack_id - Error stack identifier.
! func - Function to be called upon an error condition.
! client_data - Data passed to the error function
!
! Outputs:
! hdferr - Returns 0 if successful and -1 if fails
!
! AUTHOR
! M. Scot Breitenfeld
! July 10, 2009
!
! Fortran2003 Interface:
SUBROUTINE h5eset_auto_f(printflag, hdferr, estack_id, func, client_data)
USE, INTRINSIC :: ISO_C_BINDING
INTEGER , INTENT(IN) :: printflag
INTEGER , INTENT(OUT) :: hdferr
INTEGER(HID_T), INTENT(IN) , OPTIONAL :: estack_id
TYPE(C_FUNPTR), INTENT(IN) , OPTIONAL :: func
TYPE(C_PTR) , INTENT(IN) , OPTIONAL :: client_data
!*****
INTEGER(HID_T) :: estack_id_default
TYPE(C_FUNPTR) :: func_default
TYPE(C_PTR) :: client_data_default
INTERFACE
INTEGER FUNCTION h5eset_auto2_c(printflag, estack_id, func, client_data) &
BIND(C, NAME='h5eset_auto2_c')
USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr, c_funptr
USE H5GLOBAL
INTEGER :: printflag
INTEGER(HID_T) :: estack_id
!!$ TYPE(C_FUNPTR) :: func
!!$ TYPE(C_PTR), VALUE :: client_data
TYPE(C_FUNPTR), VALUE :: func
TYPE(C_PTR), VALUE :: client_data
END FUNCTION h5eset_auto2_c
END INTERFACE
estack_id_default = -1
func_default = C_NULL_FUNPTR
client_data_default = C_NULL_PTR
IF(PRESENT(estack_id)) estack_id_default = estack_id
IF(PRESENT(func)) func_default = func
IF(PRESENT(client_data)) client_data_default = client_data
hdferr = h5eset_auto2_c(printflag, estack_id_default, func_default, client_data_default)
END SUBROUTINE h5eset_auto_f
END MODULE H5E_PROVISIONAL
|