ComIn
0.5.1
ICON Community Interface
Loading...
Searching...
No Matches
comin_keyval_ifc.F90
Go to the documentation of this file.
1
!> @file comin_keyval_ifc.F90
2
!! @brief Interfaces for key-value maps based on std::unordered_map.
3
!
4
! @authors 06/2025 :: ICON Community Interface <icon@dwd.de>
5
!
6
! SPDX-License-Identifier: BSD-3-Clause
7
!
8
! See LICENSES for license information.
9
! Where software is supplied by third parties, it is indicated in the
10
! headers of the routines.
11
!
12
MODULE
comin_keyval_ifc
13
use,
INTRINSIC
:: iso_c_binding, only: c_int, c_ptr, c_bool, c_double
14
15
PRIVATE
16
17
PUBLIC
::
comin_keyval_create_c
18
PUBLIC
::
comin_keyval_delete_c
19
PUBLIC
::
comin_keyval_query_c
20
PUBLIC
::
comin_keyval_set_int_c
21
PUBLIC
::
comin_keyval_get_int_c
22
PUBLIC
::
comin_keyval_set_double_c
23
PUBLIC
::
comin_keyval_get_double_c
24
PUBLIC
::
comin_keyval_set_char_c
25
PUBLIC
::
comin_keyval_get_char_c
26
PUBLIC
::
comin_keyval_set_bool_c
27
PUBLIC
::
comin_keyval_get_bool_c
28
PUBLIC
::
comin_keyval_iterator_begin_c
29
PUBLIC
::
comin_keyval_iterator_end_c
30
PUBLIC
::
comin_keyval_iterator_get_key_c
31
PUBLIC
::
comin_keyval_iterator_next_c
32
PUBLIC
::
comin_keyval_iterator_delete_c
33
PUBLIC
::
comin_keyval_iterator_compare_c
34
35
INTERFACE
36
SUBROUTINE
comin_keyval_create_c
(comin_keyval_c)
BIND(C)
37
IMPORT
c_ptr
38
TYPE
(c_ptr) :: comin_keyval_c
39
END SUBROUTINE
comin_keyval_create_c
40
41
SUBROUTINE
comin_keyval_delete_c
(comin_keyval_c)
BIND(C)
42
IMPORT
c_ptr
43
TYPE
(c_ptr),
VALUE
,
INTENT(in)
:: comin_keyval_c
44
END SUBROUTINE
comin_keyval_delete_c
45
46
SUBROUTINE
comin_keyval_query_c
(ckey, idx, keyval_c)
BIND(C)
47
IMPORT
c_ptr, c_int
48
TYPE
(c_ptr),
VALUE
,
INTENT(in)
:: ckey
49
INTEGER(KIND=c_int)
,
INTENT(out)
:: idx
50
TYPE
(c_ptr),
VALUE
,
INTENT(in)
:: keyval_c
51
END SUBROUTINE
comin_keyval_query_c
52
53
SUBROUTINE
comin_keyval_set_int_c
(ckey, val, keyval_c)
BIND(C)
54
IMPORT
c_ptr, c_int
55
TYPE
(c_ptr),
VALUE
,
INTENT(in)
:: ckey
56
INTEGER(KIND=c_int)
,
VALUE
,
INTENT(in)
:: val
57
TYPE
(c_ptr),
VALUE
,
INTENT(in)
:: keyval_c
58
END SUBROUTINE
comin_keyval_set_int_c
59
60
SUBROUTINE
comin_keyval_get_int_c
(ckey, val, keyval_c)
BIND(C)
61
IMPORT
c_ptr, c_int
62
TYPE
(c_ptr),
VALUE
,
INTENT(in)
:: ckey
63
INTEGER(KIND=c_int)
,
INTENT(out)
:: val
64
TYPE
(c_ptr),
VALUE
,
INTENT(in)
:: keyval_c
65
END SUBROUTINE
comin_keyval_get_int_c
66
67
SUBROUTINE
comin_keyval_set_double_c
(ckey, val, keyval_c)
BIND(C)
68
IMPORT
c_ptr, c_double
69
TYPE
(c_ptr),
VALUE
,
INTENT(in)
:: ckey
70
REAL
(KIND=c_double),
VALUE
,
INTENT(in)
:: val
71
TYPE
(c_ptr),
VALUE
,
INTENT(in)
:: keyval_c
72
END SUBROUTINE
comin_keyval_set_double_c
73
74
SUBROUTINE
comin_keyval_get_double_c
(ckey, val, keyval_c)
BIND(C)
75
IMPORT
c_ptr, c_double
76
TYPE
(c_ptr),
VALUE
,
INTENT(in)
:: ckey
77
REAL
(KIND=c_double),
INTENT(out)
:: val
78
TYPE
(c_ptr),
VALUE
,
INTENT(in)
:: keyval_c
79
END SUBROUTINE
comin_keyval_get_double_c
80
81
SUBROUTINE
comin_keyval_set_char_c
(ckey, cval, keyval_c)
BIND(C)
82
IMPORT
c_ptr
83
TYPE
(c_ptr),
VALUE
,
INTENT(in)
:: ckey
84
TYPE
(c_ptr),
VALUE
,
INTENT(in)
:: cval
85
TYPE
(c_ptr),
VALUE
,
INTENT(in)
:: keyval_c
86
END SUBROUTINE
comin_keyval_set_char_c
87
88
SUBROUTINE
comin_keyval_get_char_c
(ckey, cval, keyval_c)
BIND(C)
89
IMPORT
c_ptr
90
TYPE
(c_ptr),
VALUE
,
INTENT(in)
:: ckey
91
TYPE
(c_ptr) :: cval
92
TYPE
(c_ptr),
VALUE
,
INTENT(in)
:: keyval_c
93
END SUBROUTINE
comin_keyval_get_char_c
94
95
SUBROUTINE
comin_keyval_set_bool_c
(ckey, val, keyval_c)
BIND(C)
96
IMPORT
c_ptr, c_bool
97
TYPE
(c_ptr),
VALUE
,
INTENT(in)
:: ckey
98
LOGICAL(KIND=c_bool)
,
VALUE
,
INTENT(in)
:: val
99
TYPE
(c_ptr),
VALUE
,
INTENT(in)
:: keyval_c
100
END SUBROUTINE
comin_keyval_set_bool_c
101
102
SUBROUTINE
comin_keyval_get_bool_c
(ckey, val, keyval_c)
BIND(C)
103
IMPORT
c_ptr, c_bool
104
TYPE
(c_ptr),
VALUE
,
INTENT(in)
:: ckey
105
LOGICAL(KIND=c_bool)
,
INTENT(out)
:: val
106
TYPE
(c_ptr),
VALUE
,
INTENT(in)
:: keyval_c
107
END SUBROUTINE
comin_keyval_get_bool_c
108
109
SUBROUTINE
comin_keyval_iterator_begin_c
(keyval_c, iterator)
BIND(C)
110
IMPORT
c_ptr
111
TYPE
(c_ptr),
VALUE
,
INTENT(in)
:: keyval_c
112
TYPE
(c_ptr) :: iterator
113
END SUBROUTINE
comin_keyval_iterator_begin_c
114
115
SUBROUTINE
comin_keyval_iterator_end_c
(keyval_c, iterator)
BIND(C)
116
IMPORT
c_ptr
117
TYPE
(c_ptr),
VALUE
,
INTENT(in)
:: keyval_c
118
TYPE
(c_ptr) :: iterator
119
END SUBROUTINE
comin_keyval_iterator_end_c
120
121
FUNCTION
comin_keyval_iterator_get_key_c
(iterator)
RESULT
(ckey)
BIND(C)
122
IMPORT
c_ptr
123
TYPE
(c_ptr),
VALUE
,
INTENT(in)
:: iterator
124
TYPE
(c_ptr) :: ckey
125
END FUNCTION
comin_keyval_iterator_get_key_c
126
127
SUBROUTINE
comin_keyval_iterator_next_c
(iterator)
BIND(C)
128
IMPORT
c_ptr
129
TYPE
(c_ptr),
VALUE
,
INTENT(in)
:: iterator
130
END SUBROUTINE
comin_keyval_iterator_next_c
131
132
SUBROUTINE
comin_keyval_iterator_delete_c
(iterator)
BIND(C)
133
IMPORT
c_ptr
134
TYPE
(c_ptr),
VALUE
,
INTENT(in)
:: iterator
135
END SUBROUTINE
comin_keyval_iterator_delete_c
136
137
FUNCTION
comin_keyval_iterator_compare_c
(iterator1, iterator2)
BIND(C)
138
IMPORT
c_ptr, c_bool
139
TYPE
(c_ptr),
VALUE
,
INTENT(in)
:: iterator1, iterator2
140
LOGICAL(KIND=c_bool)
::
comin_keyval_iterator_compare_c
141
END FUNCTION
comin_keyval_iterator_compare_c
142
END INTERFACE
143
144
END MODULE
comin_keyval_ifc::comin_keyval_create_c
Definition
comin_keyval_ifc.F90:36
comin_keyval_ifc::comin_keyval_delete_c
Definition
comin_keyval_ifc.F90:41
comin_keyval_ifc::comin_keyval_get_bool_c
Definition
comin_keyval_ifc.F90:102
comin_keyval_ifc::comin_keyval_get_char_c
Definition
comin_keyval_ifc.F90:88
comin_keyval_ifc::comin_keyval_get_double_c
Definition
comin_keyval_ifc.F90:74
comin_keyval_ifc::comin_keyval_get_int_c
Definition
comin_keyval_ifc.F90:60
comin_keyval_ifc::comin_keyval_iterator_begin_c
Definition
comin_keyval_ifc.F90:109
comin_keyval_ifc::comin_keyval_iterator_compare_c
Definition
comin_keyval_ifc.F90:137
comin_keyval_ifc::comin_keyval_iterator_delete_c
Definition
comin_keyval_ifc.F90:132
comin_keyval_ifc::comin_keyval_iterator_end_c
Definition
comin_keyval_ifc.F90:115
comin_keyval_ifc::comin_keyval_iterator_get_key_c
Definition
comin_keyval_ifc.F90:121
comin_keyval_ifc::comin_keyval_iterator_next_c
Definition
comin_keyval_ifc.F90:127
comin_keyval_ifc::comin_keyval_query_c
Definition
comin_keyval_ifc.F90:46
comin_keyval_ifc::comin_keyval_set_bool_c
Definition
comin_keyval_ifc.F90:95
comin_keyval_ifc::comin_keyval_set_char_c
Definition
comin_keyval_ifc.F90:81
comin_keyval_ifc::comin_keyval_set_double_c
Definition
comin_keyval_ifc.F90:67
comin_keyval_ifc::comin_keyval_set_int_c
Definition
comin_keyval_ifc.F90:53
comin_keyval_ifc
Definition
comin_keyval_ifc.F90:12
src
comin_keyval_ifc.F90
Generated by
1.13.2