source: XIOS2/trunk/src/interface/fortran_attr/igrid_attr.F90

Last change on this file was 2623, checked in by jderouillat, 5 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
RevLine 
[326]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
[2623]10  USE LOGICAL_BOOL_CONVERSION
[581]11
[326]12CONTAINS
[581]13
[326]14  SUBROUTINE xios(set_grid_attr)  &
[1492]15    ( grid_id, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  &
16    , mask_7d, name )
[581]17
[326]18    IMPLICIT NONE
19      TYPE(txios(grid))  :: grid_hdl
20      CHARACTER(LEN=*), INTENT(IN) ::grid_id
[1492]21      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment
[326]22      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description
[1492]23      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_0d(:)
24      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d_tmp(:)
[817]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(:,:,:)
[932]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(:,:,:,:,:,:,:)
[326]39      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
[581]40
[966]41      CALL xios(get_grid_handle) &
42      (grid_id,grid_hdl)
[326]43      CALL xios(set_grid_attr_hdl_)   &
[1492]44      ( grid_hdl, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  &
45      , mask_7d, name )
[581]46
[326]47  END SUBROUTINE xios(set_grid_attr)
[581]48
[326]49  SUBROUTINE xios(set_grid_attr_hdl)  &
[1492]50    ( grid_hdl, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  &
51    , mask_7d, name )
[581]52
[326]53    IMPLICIT NONE
54      TYPE(txios(grid)) , INTENT(IN) :: grid_hdl
[1492]55      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment
[326]56      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description
[1492]57      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_0d(:)
58      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d_tmp(:)
[817]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(:,:,:)
[932]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(:,:,:,:,:,:,:)
[326]73      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
[581]74
[326]75      CALL xios(set_grid_attr_hdl_)  &
[1492]76      ( grid_hdl, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  &
77      , mask_7d, name )
[581]78
[326]79  END SUBROUTINE xios(set_grid_attr_hdl)
[581]80
[326]81  SUBROUTINE xios(set_grid_attr_hdl_)   &
[1492]82    ( grid_hdl, comment_, description_, mask_0d_, mask_1d_, mask_2d_, mask_3d_, mask_4d_, mask_5d_  &
83    , mask_6d_, mask_7d_, name_ )
[581]84
[326]85    IMPLICIT NONE
86      TYPE(txios(grid)) , INTENT(IN) :: grid_hdl
[1492]87      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment_
[326]88      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description_
[1492]89      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_0d_(:)
90      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d__tmp(:)
[817]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(:,:,:)
[932]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(:,:,:,:,:,:,:)
[326]105      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_
[581]106
[1492]107      IF (PRESENT(comment_)) THEN
108        CALL cxios_set_grid_comment &
109      (grid_hdl%daddr, comment_, len(comment_))
110      ENDIF
111
[326]112      IF (PRESENT(description_)) THEN
[966]113        CALL cxios_set_grid_description &
114      (grid_hdl%daddr, description_, len(description_))
[326]115      ENDIF
[581]116
[1492]117      IF (PRESENT(mask_0d_)) THEN
118        ALLOCATE(mask_0d__tmp(SIZE(mask_0d_,1)))
119        mask_0d__tmp = mask_0d_
[2623]120        CALL xios_logical_to_bool_1d(mask_0d__tmp, SHAPE(mask_0d__tmp))
[1492]121        CALL cxios_set_grid_mask_0d &
122      (grid_hdl%daddr, mask_0d__tmp, SHAPE(mask_0d_))
123      ENDIF
124
[817]125      IF (PRESENT(mask_1d_)) THEN
126        ALLOCATE(mask_1d__tmp(SIZE(mask_1d_,1)))
127        mask_1d__tmp = mask_1d_
[2623]128        CALL xios_logical_to_bool_1d(mask_1d__tmp, SHAPE(mask_1d__tmp))
[966]129        CALL cxios_set_grid_mask_1d &
130      (grid_hdl%daddr, mask_1d__tmp, SHAPE(mask_1d_))
[415]131      ENDIF
[581]132
[817]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_
[2623]136        CALL xios_logical_to_bool_2d(mask_2d__tmp, SHAPE(mask_2d__tmp))
[966]137        CALL cxios_set_grid_mask_2d &
138      (grid_hdl%daddr, mask_2d__tmp, SHAPE(mask_2d_))
[567]139      ENDIF
[581]140
[817]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_
[2623]144        CALL xios_logical_to_bool_3d(mask_3d__tmp, SHAPE(mask_3d__tmp))
[966]145        CALL cxios_set_grid_mask_3d &
146      (grid_hdl%daddr, mask_3d__tmp, SHAPE(mask_3d_))
[567]147      ENDIF
[581]148
[932]149      IF (PRESENT(mask_4d_)) THEN
[966]150        ALLOCATE(mask_4d__tmp(SIZE(mask_4d_,1), SIZE(mask_4d_,2), SIZE(mask_4d_,3), &
151       SIZE(mask_4d_,4)))
[932]152        mask_4d__tmp = mask_4d_
[2623]153        CALL xios_logical_to_bool_4d(mask_4d__tmp, SHAPE(mask_4d__tmp))
[966]154        CALL cxios_set_grid_mask_4d &
155      (grid_hdl%daddr, mask_4d__tmp, SHAPE(mask_4d_))
[932]156      ENDIF
157
158      IF (PRESENT(mask_5d_)) THEN
[966]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)))
[932]161        mask_5d__tmp = mask_5d_
[2623]162        CALL xios_logical_to_bool_5d(mask_5d__tmp, SHAPE(mask_5d__tmp))
[966]163        CALL cxios_set_grid_mask_5d &
164      (grid_hdl%daddr, mask_5d__tmp, SHAPE(mask_5d_))
[932]165      ENDIF
166
167      IF (PRESENT(mask_6d_)) THEN
[966]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)))
[932]170        mask_6d__tmp = mask_6d_
[2623]171        CALL xios_logical_to_bool_6d(mask_6d__tmp, SHAPE(mask_6d__tmp))
[966]172        CALL cxios_set_grid_mask_6d &
173      (grid_hdl%daddr, mask_6d__tmp, SHAPE(mask_6d_))
[932]174      ENDIF
175
176      IF (PRESENT(mask_7d_)) THEN
[966]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)))
[932]180        mask_7d__tmp = mask_7d_
[2623]181        CALL xios_logical_to_bool_7d(mask_7d__tmp, SHAPE(mask_7d__tmp))
[966]182        CALL cxios_set_grid_mask_7d &
183      (grid_hdl%daddr, mask_7d__tmp, SHAPE(mask_7d_))
[932]184      ENDIF
185
[326]186      IF (PRESENT(name_)) THEN
[966]187        CALL cxios_set_grid_name &
188      (grid_hdl%daddr, name_, len(name_))
[326]189      ENDIF
[581]190
[326]191  END SUBROUTINE xios(set_grid_attr_hdl_)
[581]192
[326]193  SUBROUTINE xios(get_grid_attr)  &
[1492]194    ( grid_id, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  &
195    , mask_7d, name )
[581]196
[326]197    IMPLICIT NONE
198      TYPE(txios(grid))  :: grid_hdl
199      CHARACTER(LEN=*), INTENT(IN) ::grid_id
[1492]200      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment
[326]201      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description
[1492]202      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_0d(:)
203      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d_tmp(:)
[817]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(:,:,:)
[932]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(:,:,:,:,:,:,:)
[326]218      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
[581]219
[966]220      CALL xios(get_grid_handle) &
221      (grid_id,grid_hdl)
[326]222      CALL xios(get_grid_attr_hdl_)   &
[1492]223      ( grid_hdl, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  &
224      , mask_7d, name )
[581]225
[326]226  END SUBROUTINE xios(get_grid_attr)
[581]227
[326]228  SUBROUTINE xios(get_grid_attr_hdl)  &
[1492]229    ( grid_hdl, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  &
230    , mask_7d, name )
[581]231
[326]232    IMPLICIT NONE
233      TYPE(txios(grid)) , INTENT(IN) :: grid_hdl
[1492]234      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment
[326]235      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description
[1492]236      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_0d(:)
237      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d_tmp(:)
[817]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(:,:,:)
[932]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(:,:,:,:,:,:,:)
[326]252      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
[581]253
[326]254      CALL xios(get_grid_attr_hdl_)  &
[1492]255      ( grid_hdl, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  &
256      , mask_7d, name )
[581]257
[326]258  END SUBROUTINE xios(get_grid_attr_hdl)
[581]259
[326]260  SUBROUTINE xios(get_grid_attr_hdl_)   &
[1492]261    ( grid_hdl, comment_, description_, mask_0d_, mask_1d_, mask_2d_, mask_3d_, mask_4d_, mask_5d_  &
262    , mask_6d_, mask_7d_, name_ )
[581]263
[326]264    IMPLICIT NONE
265      TYPE(txios(grid)) , INTENT(IN) :: grid_hdl
[1492]266      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment_
[326]267      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description_
[1492]268      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_0d_(:)
269      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d__tmp(:)
[817]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(:,:,:)
[932]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(:,:,:,:,:,:,:)
[326]284      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_
[581]285
[1492]286      IF (PRESENT(comment_)) THEN
287        CALL cxios_get_grid_comment &
288      (grid_hdl%daddr, comment_, len(comment_))
289      ENDIF
290
[326]291      IF (PRESENT(description_)) THEN
[966]292        CALL cxios_get_grid_description &
293      (grid_hdl%daddr, description_, len(description_))
[326]294      ENDIF
[581]295
[1492]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_))
[2623]300        CALL xios_bool_to_logical_1d(mask_0d__tmp, SHAPE(mask_0d__tmp))
[1492]301        mask_0d_ = mask_0d__tmp
302      ENDIF
303
[817]304      IF (PRESENT(mask_1d_)) THEN
305        ALLOCATE(mask_1d__tmp(SIZE(mask_1d_,1)))
[966]306        CALL cxios_get_grid_mask_1d &
307      (grid_hdl%daddr, mask_1d__tmp, SHAPE(mask_1d_))
[2623]308        CALL xios_bool_to_logical_1d(mask_1d__tmp, SHAPE(mask_1d__tmp))
[817]309        mask_1d_ = mask_1d__tmp
[415]310      ENDIF
[581]311
[817]312      IF (PRESENT(mask_2d_)) THEN
313        ALLOCATE(mask_2d__tmp(SIZE(mask_2d_,1), SIZE(mask_2d_,2)))
[966]314        CALL cxios_get_grid_mask_2d &
315      (grid_hdl%daddr, mask_2d__tmp, SHAPE(mask_2d_))
[2623]316        CALL xios_bool_to_logical_2d(mask_2d__tmp, SHAPE(mask_2d__tmp))
[817]317        mask_2d_ = mask_2d__tmp
[567]318      ENDIF
[581]319
[817]320      IF (PRESENT(mask_3d_)) THEN
321        ALLOCATE(mask_3d__tmp(SIZE(mask_3d_,1), SIZE(mask_3d_,2), SIZE(mask_3d_,3)))
[966]322        CALL cxios_get_grid_mask_3d &
323      (grid_hdl%daddr, mask_3d__tmp, SHAPE(mask_3d_))
[2623]324        CALL xios_bool_to_logical_3d(mask_3d__tmp, SHAPE(mask_3d__tmp))
[817]325        mask_3d_ = mask_3d__tmp
[567]326      ENDIF
[581]327
[932]328      IF (PRESENT(mask_4d_)) THEN
[966]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_))
[2623]333        CALL xios_bool_to_logical_4d(mask_4d__tmp, SHAPE(mask_4d__tmp))
[932]334        mask_4d_ = mask_4d__tmp
335      ENDIF
336
337      IF (PRESENT(mask_5d_)) THEN
[966]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_))
[2623]342        CALL xios_bool_to_logical_5d(mask_5d__tmp, SHAPE(mask_5d__tmp))
[932]343        mask_5d_ = mask_5d__tmp
344      ENDIF
345
346      IF (PRESENT(mask_6d_)) THEN
[966]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_))
[2623]351        CALL xios_bool_to_logical_6d(mask_6d__tmp, SHAPE(mask_6d__tmp))
[932]352        mask_6d_ = mask_6d__tmp
353      ENDIF
354
355      IF (PRESENT(mask_7d_)) THEN
[966]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_))
[2623]361        CALL xios_bool_to_logical_7d(mask_7d__tmp, SHAPE(mask_7d__tmp))
[932]362        mask_7d_ = mask_7d__tmp
363      ENDIF
364
[326]365      IF (PRESENT(name_)) THEN
[966]366        CALL cxios_get_grid_name &
367      (grid_hdl%daddr, name_, len(name_))
[326]368      ENDIF
[581]369
[326]370  END SUBROUTINE xios(get_grid_attr_hdl_)
[581]371
[432]372  SUBROUTINE xios(is_defined_grid_attr)  &
[1492]373    ( grid_id, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  &
374    , mask_7d, name )
[581]375
[432]376    IMPLICIT NONE
377      TYPE(txios(grid))  :: grid_hdl
378      CHARACTER(LEN=*), INTENT(IN) ::grid_id
[1492]379      LOGICAL, OPTIONAL, INTENT(OUT) :: comment
380      LOGICAL(KIND=C_BOOL) :: comment_tmp
[432]381      LOGICAL, OPTIONAL, INTENT(OUT) :: description
382      LOGICAL(KIND=C_BOOL) :: description_tmp
[1492]383      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_0d
384      LOGICAL(KIND=C_BOOL) :: mask_0d_tmp
[817]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
[932]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
[432]399      LOGICAL, OPTIONAL, INTENT(OUT) :: name
400      LOGICAL(KIND=C_BOOL) :: name_tmp
[581]401
[966]402      CALL xios(get_grid_handle) &
403      (grid_id,grid_hdl)
[432]404      CALL xios(is_defined_grid_attr_hdl_)   &
[1492]405      ( grid_hdl, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  &
406      , mask_7d, name )
[581]407
[432]408  END SUBROUTINE xios(is_defined_grid_attr)
[581]409
[432]410  SUBROUTINE xios(is_defined_grid_attr_hdl)  &
[1492]411    ( grid_hdl, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  &
412    , mask_7d, name )
[581]413
[432]414    IMPLICIT NONE
415      TYPE(txios(grid)) , INTENT(IN) :: grid_hdl
[1492]416      LOGICAL, OPTIONAL, INTENT(OUT) :: comment
417      LOGICAL(KIND=C_BOOL) :: comment_tmp
[432]418      LOGICAL, OPTIONAL, INTENT(OUT) :: description
419      LOGICAL(KIND=C_BOOL) :: description_tmp
[1492]420      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_0d
421      LOGICAL(KIND=C_BOOL) :: mask_0d_tmp
[817]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
[932]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
[432]436      LOGICAL, OPTIONAL, INTENT(OUT) :: name
437      LOGICAL(KIND=C_BOOL) :: name_tmp
[581]438
[432]439      CALL xios(is_defined_grid_attr_hdl_)  &
[1492]440      ( grid_hdl, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  &
441      , mask_7d, name )
[581]442
[432]443  END SUBROUTINE xios(is_defined_grid_attr_hdl)
[581]444
[432]445  SUBROUTINE xios(is_defined_grid_attr_hdl_)   &
[1492]446    ( grid_hdl, comment_, description_, mask_0d_, mask_1d_, mask_2d_, mask_3d_, mask_4d_, mask_5d_  &
447    , mask_6d_, mask_7d_, name_ )
[581]448
[432]449    IMPLICIT NONE
450      TYPE(txios(grid)) , INTENT(IN) :: grid_hdl
[1492]451      LOGICAL, OPTIONAL, INTENT(OUT) :: comment_
452      LOGICAL(KIND=C_BOOL) :: comment__tmp
[432]453      LOGICAL, OPTIONAL, INTENT(OUT) :: description_
454      LOGICAL(KIND=C_BOOL) :: description__tmp
[1492]455      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_0d_
456      LOGICAL(KIND=C_BOOL) :: mask_0d__tmp
[817]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
[932]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
[432]471      LOGICAL, OPTIONAL, INTENT(OUT) :: name_
472      LOGICAL(KIND=C_BOOL) :: name__tmp
[581]473
[1492]474      IF (PRESENT(comment_)) THEN
475        comment__tmp = cxios_is_defined_grid_comment &
476      (grid_hdl%daddr)
477        comment_ = comment__tmp
478      ENDIF
479
[432]480      IF (PRESENT(description_)) THEN
[966]481        description__tmp = cxios_is_defined_grid_description &
482      (grid_hdl%daddr)
[581]483        description_ = description__tmp
[432]484      ENDIF
[581]485
[1492]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
[817]492      IF (PRESENT(mask_1d_)) THEN
[966]493        mask_1d__tmp = cxios_is_defined_grid_mask_1d &
494      (grid_hdl%daddr)
[817]495        mask_1d_ = mask_1d__tmp
[432]496      ENDIF
[581]497
[817]498      IF (PRESENT(mask_2d_)) THEN
[966]499        mask_2d__tmp = cxios_is_defined_grid_mask_2d &
500      (grid_hdl%daddr)
[817]501        mask_2d_ = mask_2d__tmp
[567]502      ENDIF
[581]503
[817]504      IF (PRESENT(mask_3d_)) THEN
[966]505        mask_3d__tmp = cxios_is_defined_grid_mask_3d &
506      (grid_hdl%daddr)
[817]507        mask_3d_ = mask_3d__tmp
[567]508      ENDIF
[581]509
[932]510      IF (PRESENT(mask_4d_)) THEN
[966]511        mask_4d__tmp = cxios_is_defined_grid_mask_4d &
512      (grid_hdl%daddr)
[932]513        mask_4d_ = mask_4d__tmp
514      ENDIF
515
516      IF (PRESENT(mask_5d_)) THEN
[966]517        mask_5d__tmp = cxios_is_defined_grid_mask_5d &
518      (grid_hdl%daddr)
[932]519        mask_5d_ = mask_5d__tmp
520      ENDIF
521
522      IF (PRESENT(mask_6d_)) THEN
[966]523        mask_6d__tmp = cxios_is_defined_grid_mask_6d &
524      (grid_hdl%daddr)
[932]525        mask_6d_ = mask_6d__tmp
526      ENDIF
527
528      IF (PRESENT(mask_7d_)) THEN
[966]529        mask_7d__tmp = cxios_is_defined_grid_mask_7d &
530      (grid_hdl%daddr)
[932]531        mask_7d_ = mask_7d__tmp
532      ENDIF
533
[432]534      IF (PRESENT(name_)) THEN
[966]535        name__tmp = cxios_is_defined_grid_name &
536      (grid_hdl%daddr)
[581]537        name_ = name__tmp
[432]538      ENDIF
[581]539
[432]540  END SUBROUTINE xios(is_defined_grid_attr_hdl_)
[581]541
[326]542END MODULE igrid_attr
Note: See TracBrowser for help on using the repository browser.