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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
!> @defgroup FH5Z Fortran Filter (H5Z) Interface
!!
!! @see H5Z, C-API
!!
!! @see @ref H5Z_UG, User Guide
!!
!> @ingroup FH5Z
!!
!! @brief This module contains Fortran interfaces for H5Z functions.
!
! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! 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 COPYING file, which can be found at the root of the source code *
! distribution tree, or in https://www.hdfgroup.org/licenses. *
! If you do not have access to either file, you may request a copy from *
! help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
! NOTES!
! _____ __ __ _____ ____ _____ _______ _ _ _______
! |_ _| \/ | __ \ / __ \| __ \__ __|/\ | \ | |__ __|
! **** | | | \ / | |__) | | | | |__) | | | / \ | \| | | | ****
! **** | | | |\/| | ___/| | | | _ / | | / /\ \ | . ` | | | ****
! **** _| |_| | | | | | |__| | | \ \ | |/ ____ \| |\ | | | ****
! |_____|_| |_|_| \____/|_| \_\ |_/_/ \_\_| \_| |_|
!
! If you add a new H5Z 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.
!
MODULE H5Z
USE H5GLOBAL
IMPLICIT NONE
CONTAINS
!>
!! \ingroup FH5Z
!!
!! \brief Unregisters specified filters.
!!
!! \param filter Filter; may have one of the following values:
!! \li H5Z_FILTER_DEFLATE_F
!! \li H5Z_FILTER_SZIP_F
!! \li H5Z_FILTER_NBIT_F
!! \li H5Z_FILTER_SCALEOFFSET_F
!! \li H5Z_FILTER_SHUFFLE_F
!! \li H5Z_FILTER_FLETCHER32_F
!! \param hdferr \fortran_error
!!
!! See C API: @ref H5Zunregister()
!!
SUBROUTINE h5zunregister_f(filter, hdferr)
IMPLICIT NONE
INTEGER, INTENT(IN) :: filter
INTEGER, INTENT(OUT) :: hdferr
INTERFACE
INTEGER FUNCTION h5zunregister_c(filter) BIND(C,NAME='h5zunregister_c')
INTEGER, INTENT(IN) :: filter
END FUNCTION h5zunregister_c
END INTERFACE
hdferr = h5zunregister_c(filter)
END SUBROUTINE h5zunregister_f
!>
!! \ingroup FH5Z
!!
!! \brief Queries if filter is available
!!
!! \param filter Filter; may be one of the following:
!! \li H5Z_FILTER_DEFLATE_F
!! \li H5Z_FILTER_SZIP_F
!! \li H5Z_FILTER_NBIT_F
!! \li H5Z_FILTER_SCALEOFFSET_F
!! \li H5Z_FILTER_SHUFFLE_F
!! \li H5Z_FILTER_FLETCHER32_F
!! \param status Flag; .TRUE. if filter is available, .FALSE. otherwise.
!! \param hdferr \fortran_error
!!
!! See C API: @ref H5Zfilter_avail()
!!
SUBROUTINE h5zfilter_avail_f(filter, status, hdferr)
IMPLICIT NONE
INTEGER, INTENT(IN) :: filter
LOGICAL, INTENT(OUT) :: status
INTEGER, INTENT(OUT) :: hdferr
INTEGER :: flag ! "TRUE/FALSE/ERROR from C"
INTERFACE
INTEGER FUNCTION h5zfilter_avail_c(filter, flag) BIND(C,NAME='h5zfilter_avail_c')
IMPLICIT NONE
INTEGER, INTENT(IN) :: filter
INTEGER :: flag
END FUNCTION h5zfilter_avail_c
END INTERFACE
hdferr = h5zfilter_avail_c(filter, flag)
status = .TRUE.
IF (flag .EQ. 0) status = .FALSE.
END SUBROUTINE h5zfilter_avail_f
!>
!! \ingroup FH5Z
!!
!! \brief Queries if filter has its encoder and/or decoder available.
!!
!! \param filter Filter; may be one of the following:
!! \li H5Z_FILTER_DEFLATE_F
!! \li H5Z_FILTER_SZIP_F
!! \li H5Z_FILTER_NBIT_F
!! \li H5Z_FILTER_SCALEOFFSET_F
!! \li H5Z_FILTER_SHUFFLE_F
!! \li H5Z_FILTER_FLETCHER32_Ffilter
!! \param config_flags Flag, indicates if filter has its encoder and/or decoder available, possible values:
!! \li H5Z_FILTER_ENCODE_ENABLED_F
!! \li H5Z_FILTER_DECODE_ENABLED_F
!! \param hdferr \fortran_error
!!
!! See C API: @ref H5Zget_filter_info()
!!
SUBROUTINE h5zget_filter_info_f(filter, config_flags, hdferr)
IMPLICIT NONE
INTEGER, INTENT(IN) :: filter
INTEGER, INTENT(OUT) :: config_flags
INTEGER, INTENT(OUT) :: hdferr
INTERFACE
INTEGER FUNCTION h5zget_filter_info_c(filter, config_flags) BIND(C,NAME='h5zget_filter_info_c')
IMPLICIT NONE
INTEGER, INTENT(IN) :: filter
INTEGER, INTENT(OUT) :: config_flags
END FUNCTION h5zget_filter_info_c
END INTERFACE
hdferr = h5zget_filter_info_c(filter, config_flags)
END SUBROUTINE h5zget_filter_info_f
END MODULE H5Z
|