source: XIOS3/trunk/src/interface/fortran_attr/igrid_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.

  • Property copyright set to
    Software name : XIOS (Xml I/O Server)
    http://forge.ipsl.jussieu.fr/ioserver
    Creation date : January 2009
    Licence : CeCCIL version2
    see license file in root directory : Licence_CeCILL_V2-en.txt
    or http://www.cecill.info/licences/Licence_CeCILL_V2-en.html
    Holder : CEA/LSCE (Laboratoire des Sciences du CLimat et de l'Environnement)
    CNRS/IPSL (Institut Pierre Simon Laplace)
    Project Manager : Yann Meurdesoif
    yann.meurdesoif@cea.fr
File size: 21.8 KB
Line 
1! * ************************************************************************** *
2! *               Interface auto generated - do not modify                     *
3! * ************************************************************************** *
4#include "xios_fortran_prefix.hpp"
5
6MODULE igrid_attr
7  USE, INTRINSIC :: ISO_C_BINDING
8  USE igrid
9  USE grid_interface_attr
10  USE LOGICAL_BOOL_CONVERSION
11
12CONTAINS
13
14  SUBROUTINE xios(set_grid_attr)  &
15    ( grid_id, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  &
16    , mask_7d, name )
17
18    IMPLICIT NONE
19      TYPE(txios(grid))  :: grid_hdl
20      CHARACTER(LEN=*), INTENT(IN) ::grid_id
21      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment
22      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description
23      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_0d(:)
24      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d_tmp(:)
25      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_1d(:)
26      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d_tmp(:)
27      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_2d(:,:)
28      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_2d_tmp(:,:)
29      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_3d(:,:,:)
30      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d_tmp(:,:,:)
31      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_4d(:,:,:,:)
32      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d_tmp(:,:,:,:)
33      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_5d(:,:,:,:,:)
34      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d_tmp(:,:,:,:,:)
35      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_6d(:,:,:,:,:,:)
36      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d_tmp(:,:,:,:,:,:)
37      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_7d(:,:,:,:,:,:,:)
38      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d_tmp(:,:,:,:,:,:,:)
39      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
40
41      CALL xios(get_grid_handle) &
42      (grid_id,grid_hdl)
43      CALL xios(set_grid_attr_hdl_)   &
44      ( grid_hdl, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  &
45      , mask_7d, name )
46
47  END SUBROUTINE xios(set_grid_attr)
48
49  SUBROUTINE xios(set_grid_attr_hdl)  &
50    ( grid_hdl, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  &
51    , mask_7d, name )
52
53    IMPLICIT NONE
54      TYPE(txios(grid)) , INTENT(IN) :: grid_hdl
55      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment
56      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description
57      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_0d(:)
58      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d_tmp(:)
59      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_1d(:)
60      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d_tmp(:)
61      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_2d(:,:)
62      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_2d_tmp(:,:)
63      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_3d(:,:,:)
64      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d_tmp(:,:,:)
65      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_4d(:,:,:,:)
66      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d_tmp(:,:,:,:)
67      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_5d(:,:,:,:,:)
68      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d_tmp(:,:,:,:,:)
69      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_6d(:,:,:,:,:,:)
70      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d_tmp(:,:,:,:,:,:)
71      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_7d(:,:,:,:,:,:,:)
72      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d_tmp(:,:,:,:,:,:,:)
73      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
74
75      CALL xios(set_grid_attr_hdl_)  &
76      ( grid_hdl, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  &
77      , mask_7d, name )
78
79  END SUBROUTINE xios(set_grid_attr_hdl)
80
81  SUBROUTINE xios(set_grid_attr_hdl_)   &
82    ( grid_hdl, comment_, description_, mask_0d_, mask_1d_, mask_2d_, mask_3d_, mask_4d_, mask_5d_  &
83    , mask_6d_, mask_7d_, name_ )
84
85    IMPLICIT NONE
86      TYPE(txios(grid)) , INTENT(IN) :: grid_hdl
87      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment_
88      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description_
89      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_0d_(:)
90      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d__tmp(:)
91      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_1d_(:)
92      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d__tmp(:)
93      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_2d_(:,:)
94      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_2d__tmp(:,:)
95      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_3d_(:,:,:)
96      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d__tmp(:,:,:)
97      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_4d_(:,:,:,:)
98      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d__tmp(:,:,:,:)
99      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_5d_(:,:,:,:,:)
100      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d__tmp(:,:,:,:,:)
101      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_6d_(:,:,:,:,:,:)
102      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d__tmp(:,:,:,:,:,:)
103      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_7d_(:,:,:,:,:,:,:)
104      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d__tmp(:,:,:,:,:,:,:)
105      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_
106
107      IF (PRESENT(comment_)) THEN
108        CALL cxios_set_grid_comment &
109      (grid_hdl%daddr, comment_, len(comment_))
110      ENDIF
111
112      IF (PRESENT(description_)) THEN
113        CALL cxios_set_grid_description &
114      (grid_hdl%daddr, description_, len(description_))
115      ENDIF
116
117      IF (PRESENT(mask_0d_)) THEN
118        ALLOCATE(mask_0d__tmp(SIZE(mask_0d_,1)))
119        mask_0d__tmp = mask_0d_
120        CALL xios_logical_to_bool_1d(mask_0d__tmp, SHAPE(mask_0d__tmp))
121        CALL cxios_set_grid_mask_0d &
122      (grid_hdl%daddr, mask_0d__tmp, SHAPE(mask_0d_))
123      ENDIF
124
125      IF (PRESENT(mask_1d_)) THEN
126        ALLOCATE(mask_1d__tmp(SIZE(mask_1d_,1)))
127        mask_1d__tmp = mask_1d_
128        CALL xios_logical_to_bool_1d(mask_1d__tmp, SHAPE(mask_1d__tmp))
129        CALL cxios_set_grid_mask_1d &
130      (grid_hdl%daddr, mask_1d__tmp, SHAPE(mask_1d_))
131      ENDIF
132
133      IF (PRESENT(mask_2d_)) THEN
134        ALLOCATE(mask_2d__tmp(SIZE(mask_2d_,1), SIZE(mask_2d_,2)))
135        mask_2d__tmp = mask_2d_
136        CALL xios_logical_to_bool_2d(mask_2d__tmp, SHAPE(mask_2d__tmp))
137        CALL cxios_set_grid_mask_2d &
138      (grid_hdl%daddr, mask_2d__tmp, SHAPE(mask_2d_))
139      ENDIF
140
141      IF (PRESENT(mask_3d_)) THEN
142        ALLOCATE(mask_3d__tmp(SIZE(mask_3d_,1), SIZE(mask_3d_,2), SIZE(mask_3d_,3)))
143        mask_3d__tmp = mask_3d_
144        CALL xios_logical_to_bool_3d(mask_3d__tmp, SHAPE(mask_3d__tmp))
145        CALL cxios_set_grid_mask_3d &
146      (grid_hdl%daddr, mask_3d__tmp, SHAPE(mask_3d_))
147      ENDIF
148
149      IF (PRESENT(mask_4d_)) THEN
150        ALLOCATE(mask_4d__tmp(SIZE(mask_4d_,1), SIZE(mask_4d_,2), SIZE(mask_4d_,3), &
151       SIZE(mask_4d_,4)))
152        mask_4d__tmp = mask_4d_
153        CALL xios_logical_to_bool_4d(mask_4d__tmp, SHAPE(mask_4d__tmp))
154        CALL cxios_set_grid_mask_4d &
155      (grid_hdl%daddr, mask_4d__tmp, SHAPE(mask_4d_))
156      ENDIF
157
158      IF (PRESENT(mask_5d_)) THEN
159        ALLOCATE(mask_5d__tmp(SIZE(mask_5d_,1), SIZE(mask_5d_,2), SIZE(mask_5d_,3), &
160       SIZE(mask_5d_,4), SIZE(mask_5d_,5)))
161        mask_5d__tmp = mask_5d_
162        CALL xios_logical_to_bool_5d(mask_5d__tmp, SHAPE(mask_5d__tmp))
163        CALL cxios_set_grid_mask_5d &
164      (grid_hdl%daddr, mask_5d__tmp, SHAPE(mask_5d_))
165      ENDIF
166
167      IF (PRESENT(mask_6d_)) THEN
168        ALLOCATE(mask_6d__tmp(SIZE(mask_6d_,1), SIZE(mask_6d_,2), SIZE(mask_6d_,3), &
169       SIZE(mask_6d_,4), SIZE(mask_6d_,5), SIZE(mask_6d_,6)))
170        mask_6d__tmp = mask_6d_
171        CALL xios_logical_to_bool_6d(mask_6d__tmp, SHAPE(mask_6d__tmp))
172        CALL cxios_set_grid_mask_6d &
173      (grid_hdl%daddr, mask_6d__tmp, SHAPE(mask_6d_))
174      ENDIF
175
176      IF (PRESENT(mask_7d_)) THEN
177        ALLOCATE(mask_7d__tmp(SIZE(mask_7d_,1), SIZE(mask_7d_,2), SIZE(mask_7d_,3), &
178       SIZE(mask_7d_,4), SIZE(mask_7d_,5), SIZE(mask_7d_,6), &
179       SIZE(mask_7d_,7)))
180        mask_7d__tmp = mask_7d_
181        CALL xios_logical_to_bool_7d(mask_7d__tmp, SHAPE(mask_7d__tmp))
182        CALL cxios_set_grid_mask_7d &
183      (grid_hdl%daddr, mask_7d__tmp, SHAPE(mask_7d_))
184      ENDIF
185
186      IF (PRESENT(name_)) THEN
187        CALL cxios_set_grid_name &
188      (grid_hdl%daddr, name_, len(name_))
189      ENDIF
190
191  END SUBROUTINE xios(set_grid_attr_hdl_)
192
193  SUBROUTINE xios(get_grid_attr)  &
194    ( grid_id, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  &
195    , mask_7d, name )
196
197    IMPLICIT NONE
198      TYPE(txios(grid))  :: grid_hdl
199      CHARACTER(LEN=*), INTENT(IN) ::grid_id
200      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment
201      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description
202      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_0d(:)
203      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d_tmp(:)
204      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_1d(:)
205      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d_tmp(:)
206      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_2d(:,:)
207      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_2d_tmp(:,:)
208      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_3d(:,:,:)
209      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d_tmp(:,:,:)
210      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_4d(:,:,:,:)
211      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d_tmp(:,:,:,:)
212      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_5d(:,:,:,:,:)
213      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d_tmp(:,:,:,:,:)
214      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_6d(:,:,:,:,:,:)
215      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d_tmp(:,:,:,:,:,:)
216      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_7d(:,:,:,:,:,:,:)
217      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d_tmp(:,:,:,:,:,:,:)
218      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
219
220      CALL xios(get_grid_handle) &
221      (grid_id,grid_hdl)
222      CALL xios(get_grid_attr_hdl_)   &
223      ( grid_hdl, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  &
224      , mask_7d, name )
225
226  END SUBROUTINE xios(get_grid_attr)
227
228  SUBROUTINE xios(get_grid_attr_hdl)  &
229    ( grid_hdl, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  &
230    , mask_7d, name )
231
232    IMPLICIT NONE
233      TYPE(txios(grid)) , INTENT(IN) :: grid_hdl
234      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment
235      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description
236      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_0d(:)
237      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d_tmp(:)
238      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_1d(:)
239      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d_tmp(:)
240      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_2d(:,:)
241      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_2d_tmp(:,:)
242      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_3d(:,:,:)
243      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d_tmp(:,:,:)
244      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_4d(:,:,:,:)
245      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d_tmp(:,:,:,:)
246      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_5d(:,:,:,:,:)
247      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d_tmp(:,:,:,:,:)
248      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_6d(:,:,:,:,:,:)
249      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d_tmp(:,:,:,:,:,:)
250      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_7d(:,:,:,:,:,:,:)
251      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d_tmp(:,:,:,:,:,:,:)
252      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
253
254      CALL xios(get_grid_attr_hdl_)  &
255      ( grid_hdl, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  &
256      , mask_7d, name )
257
258  END SUBROUTINE xios(get_grid_attr_hdl)
259
260  SUBROUTINE xios(get_grid_attr_hdl_)   &
261    ( grid_hdl, comment_, description_, mask_0d_, mask_1d_, mask_2d_, mask_3d_, mask_4d_, mask_5d_  &
262    , mask_6d_, mask_7d_, name_ )
263
264    IMPLICIT NONE
265      TYPE(txios(grid)) , INTENT(IN) :: grid_hdl
266      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment_
267      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description_
268      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_0d_(:)
269      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d__tmp(:)
270      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_1d_(:)
271      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d__tmp(:)
272      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_2d_(:,:)
273      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_2d__tmp(:,:)
274      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_3d_(:,:,:)
275      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d__tmp(:,:,:)
276      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_4d_(:,:,:,:)
277      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d__tmp(:,:,:,:)
278      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_5d_(:,:,:,:,:)
279      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d__tmp(:,:,:,:,:)
280      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_6d_(:,:,:,:,:,:)
281      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d__tmp(:,:,:,:,:,:)
282      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_7d_(:,:,:,:,:,:,:)
283      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d__tmp(:,:,:,:,:,:,:)
284      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_
285
286      IF (PRESENT(comment_)) THEN
287        CALL cxios_get_grid_comment &
288      (grid_hdl%daddr, comment_, len(comment_))
289      ENDIF
290
291      IF (PRESENT(description_)) THEN
292        CALL cxios_get_grid_description &
293      (grid_hdl%daddr, description_, len(description_))
294      ENDIF
295
296      IF (PRESENT(mask_0d_)) THEN
297        ALLOCATE(mask_0d__tmp(SIZE(mask_0d_,1)))
298        CALL cxios_get_grid_mask_0d &
299      (grid_hdl%daddr, mask_0d__tmp, SHAPE(mask_0d_))
300        CALL xios_bool_to_logical_1d(mask_0d__tmp, SHAPE(mask_0d__tmp))
301        mask_0d_ = mask_0d__tmp
302      ENDIF
303
304      IF (PRESENT(mask_1d_)) THEN
305        ALLOCATE(mask_1d__tmp(SIZE(mask_1d_,1)))
306        CALL cxios_get_grid_mask_1d &
307      (grid_hdl%daddr, mask_1d__tmp, SHAPE(mask_1d_))
308        CALL xios_bool_to_logical_1d(mask_1d__tmp, SHAPE(mask_1d__tmp))
309        mask_1d_ = mask_1d__tmp
310      ENDIF
311
312      IF (PRESENT(mask_2d_)) THEN
313        ALLOCATE(mask_2d__tmp(SIZE(mask_2d_,1), SIZE(mask_2d_,2)))
314        CALL cxios_get_grid_mask_2d &
315      (grid_hdl%daddr, mask_2d__tmp, SHAPE(mask_2d_))
316        CALL xios_bool_to_logical_2d(mask_2d__tmp, SHAPE(mask_2d__tmp))
317        mask_2d_ = mask_2d__tmp
318      ENDIF
319
320      IF (PRESENT(mask_3d_)) THEN
321        ALLOCATE(mask_3d__tmp(SIZE(mask_3d_,1), SIZE(mask_3d_,2), SIZE(mask_3d_,3)))
322        CALL cxios_get_grid_mask_3d &
323      (grid_hdl%daddr, mask_3d__tmp, SHAPE(mask_3d_))
324        CALL xios_bool_to_logical_3d(mask_3d__tmp, SHAPE(mask_3d__tmp))
325        mask_3d_ = mask_3d__tmp
326      ENDIF
327
328      IF (PRESENT(mask_4d_)) THEN
329        ALLOCATE(mask_4d__tmp(SIZE(mask_4d_,1), SIZE(mask_4d_,2), SIZE(mask_4d_,3), &
330       SIZE(mask_4d_,4)))
331        CALL cxios_get_grid_mask_4d &
332      (grid_hdl%daddr, mask_4d__tmp, SHAPE(mask_4d_))
333        CALL xios_bool_to_logical_4d(mask_4d__tmp, SHAPE(mask_4d__tmp))
334        mask_4d_ = mask_4d__tmp
335      ENDIF
336
337      IF (PRESENT(mask_5d_)) THEN
338        ALLOCATE(mask_5d__tmp(SIZE(mask_5d_,1), SIZE(mask_5d_,2), SIZE(mask_5d_,3), &
339       SIZE(mask_5d_,4), SIZE(mask_5d_,5)))
340        CALL cxios_get_grid_mask_5d &
341      (grid_hdl%daddr, mask_5d__tmp, SHAPE(mask_5d_))
342        CALL xios_bool_to_logical_5d(mask_5d__tmp, SHAPE(mask_5d__tmp))
343        mask_5d_ = mask_5d__tmp
344      ENDIF
345
346      IF (PRESENT(mask_6d_)) THEN
347        ALLOCATE(mask_6d__tmp(SIZE(mask_6d_,1), SIZE(mask_6d_,2), SIZE(mask_6d_,3), &
348       SIZE(mask_6d_,4), SIZE(mask_6d_,5), SIZE(mask_6d_,6)))
349        CALL cxios_get_grid_mask_6d &
350      (grid_hdl%daddr, mask_6d__tmp, SHAPE(mask_6d_))
351        CALL xios_bool_to_logical_6d(mask_6d__tmp, SHAPE(mask_6d__tmp))
352        mask_6d_ = mask_6d__tmp
353      ENDIF
354
355      IF (PRESENT(mask_7d_)) THEN
356        ALLOCATE(mask_7d__tmp(SIZE(mask_7d_,1), SIZE(mask_7d_,2), SIZE(mask_7d_,3), &
357       SIZE(mask_7d_,4), SIZE(mask_7d_,5), SIZE(mask_7d_,6), &
358       SIZE(mask_7d_,7)))
359        CALL cxios_get_grid_mask_7d &
360      (grid_hdl%daddr, mask_7d__tmp, SHAPE(mask_7d_))
361        CALL xios_bool_to_logical_7d(mask_7d__tmp, SHAPE(mask_7d__tmp))
362        mask_7d_ = mask_7d__tmp
363      ENDIF
364
365      IF (PRESENT(name_)) THEN
366        CALL cxios_get_grid_name &
367      (grid_hdl%daddr, name_, len(name_))
368      ENDIF
369
370  END SUBROUTINE xios(get_grid_attr_hdl_)
371
372  SUBROUTINE xios(is_defined_grid_attr)  &
373    ( grid_id, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  &
374    , mask_7d, name )
375
376    IMPLICIT NONE
377      TYPE(txios(grid))  :: grid_hdl
378      CHARACTER(LEN=*), INTENT(IN) ::grid_id
379      LOGICAL, OPTIONAL, INTENT(OUT) :: comment
380      LOGICAL(KIND=C_BOOL) :: comment_tmp
381      LOGICAL, OPTIONAL, INTENT(OUT) :: description
382      LOGICAL(KIND=C_BOOL) :: description_tmp
383      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_0d
384      LOGICAL(KIND=C_BOOL) :: mask_0d_tmp
385      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_1d
386      LOGICAL(KIND=C_BOOL) :: mask_1d_tmp
387      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_2d
388      LOGICAL(KIND=C_BOOL) :: mask_2d_tmp
389      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_3d
390      LOGICAL(KIND=C_BOOL) :: mask_3d_tmp
391      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_4d
392      LOGICAL(KIND=C_BOOL) :: mask_4d_tmp
393      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_5d
394      LOGICAL(KIND=C_BOOL) :: mask_5d_tmp
395      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_6d
396      LOGICAL(KIND=C_BOOL) :: mask_6d_tmp
397      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_7d
398      LOGICAL(KIND=C_BOOL) :: mask_7d_tmp
399      LOGICAL, OPTIONAL, INTENT(OUT) :: name
400      LOGICAL(KIND=C_BOOL) :: name_tmp
401
402      CALL xios(get_grid_handle) &
403      (grid_id,grid_hdl)
404      CALL xios(is_defined_grid_attr_hdl_)   &
405      ( grid_hdl, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  &
406      , mask_7d, name )
407
408  END SUBROUTINE xios(is_defined_grid_attr)
409
410  SUBROUTINE xios(is_defined_grid_attr_hdl)  &
411    ( grid_hdl, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  &
412    , mask_7d, name )
413
414    IMPLICIT NONE
415      TYPE(txios(grid)) , INTENT(IN) :: grid_hdl
416      LOGICAL, OPTIONAL, INTENT(OUT) :: comment
417      LOGICAL(KIND=C_BOOL) :: comment_tmp
418      LOGICAL, OPTIONAL, INTENT(OUT) :: description
419      LOGICAL(KIND=C_BOOL) :: description_tmp
420      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_0d
421      LOGICAL(KIND=C_BOOL) :: mask_0d_tmp
422      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_1d
423      LOGICAL(KIND=C_BOOL) :: mask_1d_tmp
424      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_2d
425      LOGICAL(KIND=C_BOOL) :: mask_2d_tmp
426      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_3d
427      LOGICAL(KIND=C_BOOL) :: mask_3d_tmp
428      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_4d
429      LOGICAL(KIND=C_BOOL) :: mask_4d_tmp
430      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_5d
431      LOGICAL(KIND=C_BOOL) :: mask_5d_tmp
432      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_6d
433      LOGICAL(KIND=C_BOOL) :: mask_6d_tmp
434      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_7d
435      LOGICAL(KIND=C_BOOL) :: mask_7d_tmp
436      LOGICAL, OPTIONAL, INTENT(OUT) :: name
437      LOGICAL(KIND=C_BOOL) :: name_tmp
438
439      CALL xios(is_defined_grid_attr_hdl_)  &
440      ( grid_hdl, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  &
441      , mask_7d, name )
442
443  END SUBROUTINE xios(is_defined_grid_attr_hdl)
444
445  SUBROUTINE xios(is_defined_grid_attr_hdl_)   &
446    ( grid_hdl, comment_, description_, mask_0d_, mask_1d_, mask_2d_, mask_3d_, mask_4d_, mask_5d_  &
447    , mask_6d_, mask_7d_, name_ )
448
449    IMPLICIT NONE
450      TYPE(txios(grid)) , INTENT(IN) :: grid_hdl
451      LOGICAL, OPTIONAL, INTENT(OUT) :: comment_
452      LOGICAL(KIND=C_BOOL) :: comment__tmp
453      LOGICAL, OPTIONAL, INTENT(OUT) :: description_
454      LOGICAL(KIND=C_BOOL) :: description__tmp
455      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_0d_
456      LOGICAL(KIND=C_BOOL) :: mask_0d__tmp
457      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_1d_
458      LOGICAL(KIND=C_BOOL) :: mask_1d__tmp
459      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_2d_
460      LOGICAL(KIND=C_BOOL) :: mask_2d__tmp
461      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_3d_
462      LOGICAL(KIND=C_BOOL) :: mask_3d__tmp
463      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_4d_
464      LOGICAL(KIND=C_BOOL) :: mask_4d__tmp
465      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_5d_
466      LOGICAL(KIND=C_BOOL) :: mask_5d__tmp
467      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_6d_
468      LOGICAL(KIND=C_BOOL) :: mask_6d__tmp
469      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_7d_
470      LOGICAL(KIND=C_BOOL) :: mask_7d__tmp
471      LOGICAL, OPTIONAL, INTENT(OUT) :: name_
472      LOGICAL(KIND=C_BOOL) :: name__tmp
473
474      IF (PRESENT(comment_)) THEN
475        comment__tmp = cxios_is_defined_grid_comment &
476      (grid_hdl%daddr)
477        comment_ = comment__tmp
478      ENDIF
479
480      IF (PRESENT(description_)) THEN
481        description__tmp = cxios_is_defined_grid_description &
482      (grid_hdl%daddr)
483        description_ = description__tmp
484      ENDIF
485
486      IF (PRESENT(mask_0d_)) THEN
487        mask_0d__tmp = cxios_is_defined_grid_mask_0d &
488      (grid_hdl%daddr)
489        mask_0d_ = mask_0d__tmp
490      ENDIF
491
492      IF (PRESENT(mask_1d_)) THEN
493        mask_1d__tmp = cxios_is_defined_grid_mask_1d &
494      (grid_hdl%daddr)
495        mask_1d_ = mask_1d__tmp
496      ENDIF
497
498      IF (PRESENT(mask_2d_)) THEN
499        mask_2d__tmp = cxios_is_defined_grid_mask_2d &
500      (grid_hdl%daddr)
501        mask_2d_ = mask_2d__tmp
502      ENDIF
503
504      IF (PRESENT(mask_3d_)) THEN
505        mask_3d__tmp = cxios_is_defined_grid_mask_3d &
506      (grid_hdl%daddr)
507        mask_3d_ = mask_3d__tmp
508      ENDIF
509
510      IF (PRESENT(mask_4d_)) THEN
511        mask_4d__tmp = cxios_is_defined_grid_mask_4d &
512      (grid_hdl%daddr)
513        mask_4d_ = mask_4d__tmp
514      ENDIF
515
516      IF (PRESENT(mask_5d_)) THEN
517        mask_5d__tmp = cxios_is_defined_grid_mask_5d &
518      (grid_hdl%daddr)
519        mask_5d_ = mask_5d__tmp
520      ENDIF
521
522      IF (PRESENT(mask_6d_)) THEN
523        mask_6d__tmp = cxios_is_defined_grid_mask_6d &
524      (grid_hdl%daddr)
525        mask_6d_ = mask_6d__tmp
526      ENDIF
527
528      IF (PRESENT(mask_7d_)) THEN
529        mask_7d__tmp = cxios_is_defined_grid_mask_7d &
530      (grid_hdl%daddr)
531        mask_7d_ = mask_7d__tmp
532      ENDIF
533
534      IF (PRESENT(name_)) THEN
535        name__tmp = cxios_is_defined_grid_name &
536      (grid_hdl%daddr)
537        name_ = name__tmp
538      ENDIF
539
540  END SUBROUTINE xios(is_defined_grid_attr_hdl_)
541
542END MODULE igrid_attr
Note: See TracBrowser for help on using the repository browser.