source: XIOS3/trunk/src/interface/fortran_attr/iredistribute_axis_attr.F90 @ 2620

Last change on this file since 2620 was 2620, checked in by jderouillat, 4 months ago

Modify fortran-C interfaces to manage logical-bool conversion, the optimizations of OneAPI could produce bugs regarding the logical-bool encodings.

File size: 7.4 KB
Line 
1! * ************************************************************************** *
2! *               Interface auto generated - do not modify                     *
3! * ************************************************************************** *
4#include "xios_fortran_prefix.hpp"
5
6MODULE iredistribute_axis_attr
7  USE, INTRINSIC :: ISO_C_BINDING
8  USE iredistribute_axis
9  USE redistribute_axis_interface_attr
10  USE LOGICAL_BOOL_CONVERSION
11
12CONTAINS
13
14  SUBROUTINE xios(set_redistribute_axis_attr)  &
15    ( redistribute_axis_id, index, mask, type )
16
17    IMPLICIT NONE
18      TYPE(txios(redistribute_axis))  :: redistribute_axis_hdl
19      CHARACTER(LEN=*), INTENT(IN) ::redistribute_axis_id
20      INTEGER  , OPTIONAL, INTENT(IN) :: index(:)
21      LOGICAL  , OPTIONAL, INTENT(IN) :: mask(:)
22      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_tmp(:)
23      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type
24
25      CALL xios(get_redistribute_axis_handle) &
26      (redistribute_axis_id,redistribute_axis_hdl)
27      CALL xios(set_redistribute_axis_attr_hdl_)   &
28      ( redistribute_axis_hdl, index, mask, type )
29
30  END SUBROUTINE xios(set_redistribute_axis_attr)
31
32  SUBROUTINE xios(set_redistribute_axis_attr_hdl)  &
33    ( redistribute_axis_hdl, index, mask, type )
34
35    IMPLICIT NONE
36      TYPE(txios(redistribute_axis)) , INTENT(IN) :: redistribute_axis_hdl
37      INTEGER  , OPTIONAL, INTENT(IN) :: index(:)
38      LOGICAL  , OPTIONAL, INTENT(IN) :: mask(:)
39      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_tmp(:)
40      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type
41
42      CALL xios(set_redistribute_axis_attr_hdl_)  &
43      ( redistribute_axis_hdl, index, mask, type )
44
45  END SUBROUTINE xios(set_redistribute_axis_attr_hdl)
46
47  SUBROUTINE xios(set_redistribute_axis_attr_hdl_)   &
48    ( redistribute_axis_hdl, index_, mask_, type_ )
49
50    IMPLICIT NONE
51      TYPE(txios(redistribute_axis)) , INTENT(IN) :: redistribute_axis_hdl
52      INTEGER  , OPTIONAL, INTENT(IN) :: index_(:)
53      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_(:)
54      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask__tmp(:)
55      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type_
56
57      IF (PRESENT(index_)) THEN
58        CALL cxios_set_redistribute_axis_index &
59      (redistribute_axis_hdl%daddr, index_, SHAPE(index_))
60      ENDIF
61
62      IF (PRESENT(mask_)) THEN
63        ALLOCATE(mask__tmp(SIZE(mask_,1)))
64        mask__tmp = mask_
65        CALL xios_logical_to_bool_1d(mask__tmp, SHAPE(mask__tmp))
66        CALL cxios_set_redistribute_axis_mask &
67      (redistribute_axis_hdl%daddr, mask__tmp, SHAPE(mask_))
68      ENDIF
69
70      IF (PRESENT(type_)) THEN
71        CALL cxios_set_redistribute_axis_type &
72      (redistribute_axis_hdl%daddr, type_, len(type_))
73      ENDIF
74
75  END SUBROUTINE xios(set_redistribute_axis_attr_hdl_)
76
77  SUBROUTINE xios(get_redistribute_axis_attr)  &
78    ( redistribute_axis_id, index, mask, type )
79
80    IMPLICIT NONE
81      TYPE(txios(redistribute_axis))  :: redistribute_axis_hdl
82      CHARACTER(LEN=*), INTENT(IN) ::redistribute_axis_id
83      INTEGER  , OPTIONAL, INTENT(OUT) :: index(:)
84      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask(:)
85      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_tmp(:)
86      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type
87
88      CALL xios(get_redistribute_axis_handle) &
89      (redistribute_axis_id,redistribute_axis_hdl)
90      CALL xios(get_redistribute_axis_attr_hdl_)   &
91      ( redistribute_axis_hdl, index, mask, type )
92
93  END SUBROUTINE xios(get_redistribute_axis_attr)
94
95  SUBROUTINE xios(get_redistribute_axis_attr_hdl)  &
96    ( redistribute_axis_hdl, index, mask, type )
97
98    IMPLICIT NONE
99      TYPE(txios(redistribute_axis)) , INTENT(IN) :: redistribute_axis_hdl
100      INTEGER  , OPTIONAL, INTENT(OUT) :: index(:)
101      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask(:)
102      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_tmp(:)
103      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type
104
105      CALL xios(get_redistribute_axis_attr_hdl_)  &
106      ( redistribute_axis_hdl, index, mask, type )
107
108  END SUBROUTINE xios(get_redistribute_axis_attr_hdl)
109
110  SUBROUTINE xios(get_redistribute_axis_attr_hdl_)   &
111    ( redistribute_axis_hdl, index_, mask_, type_ )
112
113    IMPLICIT NONE
114      TYPE(txios(redistribute_axis)) , INTENT(IN) :: redistribute_axis_hdl
115      INTEGER  , OPTIONAL, INTENT(OUT) :: index_(:)
116      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_(:)
117      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask__tmp(:)
118      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type_
119
120      IF (PRESENT(index_)) THEN
121        CALL cxios_get_redistribute_axis_index &
122      (redistribute_axis_hdl%daddr, index_, SHAPE(index_))
123      ENDIF
124
125      IF (PRESENT(mask_)) THEN
126        ALLOCATE(mask__tmp(SIZE(mask_,1)))
127        CALL cxios_get_redistribute_axis_mask &
128      (redistribute_axis_hdl%daddr, mask__tmp, SHAPE(mask_))
129        CALL xios_bool_to_logical_1d(mask__tmp, SHAPE(mask__tmp))
130        mask_ = mask__tmp
131      ENDIF
132
133      IF (PRESENT(type_)) THEN
134        CALL cxios_get_redistribute_axis_type &
135      (redistribute_axis_hdl%daddr, type_, len(type_))
136      ENDIF
137
138  END SUBROUTINE xios(get_redistribute_axis_attr_hdl_)
139
140  SUBROUTINE xios(is_defined_redistribute_axis_attr)  &
141    ( redistribute_axis_id, index, mask, type )
142
143    IMPLICIT NONE
144      TYPE(txios(redistribute_axis))  :: redistribute_axis_hdl
145      CHARACTER(LEN=*), INTENT(IN) ::redistribute_axis_id
146      LOGICAL, OPTIONAL, INTENT(OUT) :: index
147      LOGICAL(KIND=C_BOOL) :: index_tmp
148      LOGICAL, OPTIONAL, INTENT(OUT) :: mask
149      LOGICAL(KIND=C_BOOL) :: mask_tmp
150      LOGICAL, OPTIONAL, INTENT(OUT) :: type
151      LOGICAL(KIND=C_BOOL) :: type_tmp
152
153      CALL xios(get_redistribute_axis_handle) &
154      (redistribute_axis_id,redistribute_axis_hdl)
155      CALL xios(is_defined_redistribute_axis_attr_hdl_)   &
156      ( redistribute_axis_hdl, index, mask, type )
157
158  END SUBROUTINE xios(is_defined_redistribute_axis_attr)
159
160  SUBROUTINE xios(is_defined_redistribute_axis_attr_hdl)  &
161    ( redistribute_axis_hdl, index, mask, type )
162
163    IMPLICIT NONE
164      TYPE(txios(redistribute_axis)) , INTENT(IN) :: redistribute_axis_hdl
165      LOGICAL, OPTIONAL, INTENT(OUT) :: index
166      LOGICAL(KIND=C_BOOL) :: index_tmp
167      LOGICAL, OPTIONAL, INTENT(OUT) :: mask
168      LOGICAL(KIND=C_BOOL) :: mask_tmp
169      LOGICAL, OPTIONAL, INTENT(OUT) :: type
170      LOGICAL(KIND=C_BOOL) :: type_tmp
171
172      CALL xios(is_defined_redistribute_axis_attr_hdl_)  &
173      ( redistribute_axis_hdl, index, mask, type )
174
175  END SUBROUTINE xios(is_defined_redistribute_axis_attr_hdl)
176
177  SUBROUTINE xios(is_defined_redistribute_axis_attr_hdl_)   &
178    ( redistribute_axis_hdl, index_, mask_, type_ )
179
180    IMPLICIT NONE
181      TYPE(txios(redistribute_axis)) , INTENT(IN) :: redistribute_axis_hdl
182      LOGICAL, OPTIONAL, INTENT(OUT) :: index_
183      LOGICAL(KIND=C_BOOL) :: index__tmp
184      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_
185      LOGICAL(KIND=C_BOOL) :: mask__tmp
186      LOGICAL, OPTIONAL, INTENT(OUT) :: type_
187      LOGICAL(KIND=C_BOOL) :: type__tmp
188
189      IF (PRESENT(index_)) THEN
190        index__tmp = cxios_is_defined_redistribute_axis_index &
191      (redistribute_axis_hdl%daddr)
192        index_ = index__tmp
193      ENDIF
194
195      IF (PRESENT(mask_)) THEN
196        mask__tmp = cxios_is_defined_redistribute_axis_mask &
197      (redistribute_axis_hdl%daddr)
198        mask_ = mask__tmp
199      ENDIF
200
201      IF (PRESENT(type_)) THEN
202        type__tmp = cxios_is_defined_redistribute_axis_type &
203      (redistribute_axis_hdl%daddr)
204        type_ = type__tmp
205      ENDIF
206
207  END SUBROUTINE xios(is_defined_redistribute_axis_attr_hdl_)
208
209END MODULE iredistribute_axis_attr
Note: See TracBrowser for help on using the repository browser.