source: XIOS/trunk/src/interface/fortran_attr/iexpand_domain_attr.F90 @ 1078

Last change on this file since 1078 was 1078, checked in by mhnguyen, 5 years ago

Adding rectilinear and curvilinear domain for expand_domain transformation
-) Rectilinear/curvilinear is expanded not only locally but also globally, its global size ni_glo, nj_glo become ni_glo+2 and nj_glo+2
-) Two attributes i_periodic, j_periodic are only used for rectilinear/curvilinear to process priodic condition

+) Do some minor modification

Test
+) Add test_connectivity_expand
+) On Curie
+) Work (but need more real tests)

File size: 8.5 KB
Line 
1! * ************************************************************************** *
2! *               Interface auto generated - do not modify                     *
3! * ************************************************************************** *
4#include "xios_fortran_prefix.hpp"
5
6MODULE iexpand_domain_attr
7  USE, INTRINSIC :: ISO_C_BINDING
8  USE iexpand_domain
9  USE expand_domain_interface_attr
10
11CONTAINS
12
13  SUBROUTINE xios(set_expand_domain_attr)  &
14    ( expand_domain_id, i_periodic, j_periodic, order, type )
15
16    IMPLICIT NONE
17      TYPE(txios(expand_domain))  :: expand_domain_hdl
18      CHARACTER(LEN=*), INTENT(IN) ::expand_domain_id
19      LOGICAL  , OPTIONAL, INTENT(IN) :: i_periodic
20      LOGICAL (KIND=C_BOOL) :: i_periodic_tmp
21      LOGICAL  , OPTIONAL, INTENT(IN) :: j_periodic
22      LOGICAL (KIND=C_BOOL) :: j_periodic_tmp
23      INTEGER  , OPTIONAL, INTENT(IN) :: order
24      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type
25
26      CALL xios(get_expand_domain_handle) &
27      (expand_domain_id,expand_domain_hdl)
28      CALL xios(set_expand_domain_attr_hdl_)   &
29      ( expand_domain_hdl, i_periodic, j_periodic, order, type )
30
31  END SUBROUTINE xios(set_expand_domain_attr)
32
33  SUBROUTINE xios(set_expand_domain_attr_hdl)  &
34    ( expand_domain_hdl, i_periodic, j_periodic, order, type )
35
36    IMPLICIT NONE
37      TYPE(txios(expand_domain)) , INTENT(IN) :: expand_domain_hdl
38      LOGICAL  , OPTIONAL, INTENT(IN) :: i_periodic
39      LOGICAL (KIND=C_BOOL) :: i_periodic_tmp
40      LOGICAL  , OPTIONAL, INTENT(IN) :: j_periodic
41      LOGICAL (KIND=C_BOOL) :: j_periodic_tmp
42      INTEGER  , OPTIONAL, INTENT(IN) :: order
43      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type
44
45      CALL xios(set_expand_domain_attr_hdl_)  &
46      ( expand_domain_hdl, i_periodic, j_periodic, order, type )
47
48  END SUBROUTINE xios(set_expand_domain_attr_hdl)
49
50  SUBROUTINE xios(set_expand_domain_attr_hdl_)   &
51    ( expand_domain_hdl, i_periodic_, j_periodic_, order_, type_ )
52
53    IMPLICIT NONE
54      TYPE(txios(expand_domain)) , INTENT(IN) :: expand_domain_hdl
55      LOGICAL  , OPTIONAL, INTENT(IN) :: i_periodic_
56      LOGICAL (KIND=C_BOOL) :: i_periodic__tmp
57      LOGICAL  , OPTIONAL, INTENT(IN) :: j_periodic_
58      LOGICAL (KIND=C_BOOL) :: j_periodic__tmp
59      INTEGER  , OPTIONAL, INTENT(IN) :: order_
60      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type_
61
62      IF (PRESENT(i_periodic_)) THEN
63        i_periodic__tmp = i_periodic_
64        CALL cxios_set_expand_domain_i_periodic &
65      (expand_domain_hdl%daddr, i_periodic__tmp)
66      ENDIF
67
68      IF (PRESENT(j_periodic_)) THEN
69        j_periodic__tmp = j_periodic_
70        CALL cxios_set_expand_domain_j_periodic &
71      (expand_domain_hdl%daddr, j_periodic__tmp)
72      ENDIF
73
74      IF (PRESENT(order_)) THEN
75        CALL cxios_set_expand_domain_order &
76      (expand_domain_hdl%daddr, order_)
77      ENDIF
78
79      IF (PRESENT(type_)) THEN
80        CALL cxios_set_expand_domain_type &
81      (expand_domain_hdl%daddr, type_, len(type_))
82      ENDIF
83
84  END SUBROUTINE xios(set_expand_domain_attr_hdl_)
85
86  SUBROUTINE xios(get_expand_domain_attr)  &
87    ( expand_domain_id, i_periodic, j_periodic, order, type )
88
89    IMPLICIT NONE
90      TYPE(txios(expand_domain))  :: expand_domain_hdl
91      CHARACTER(LEN=*), INTENT(IN) ::expand_domain_id
92      LOGICAL  , OPTIONAL, INTENT(OUT) :: i_periodic
93      LOGICAL (KIND=C_BOOL) :: i_periodic_tmp
94      LOGICAL  , OPTIONAL, INTENT(OUT) :: j_periodic
95      LOGICAL (KIND=C_BOOL) :: j_periodic_tmp
96      INTEGER  , OPTIONAL, INTENT(OUT) :: order
97      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type
98
99      CALL xios(get_expand_domain_handle) &
100      (expand_domain_id,expand_domain_hdl)
101      CALL xios(get_expand_domain_attr_hdl_)   &
102      ( expand_domain_hdl, i_periodic, j_periodic, order, type )
103
104  END SUBROUTINE xios(get_expand_domain_attr)
105
106  SUBROUTINE xios(get_expand_domain_attr_hdl)  &
107    ( expand_domain_hdl, i_periodic, j_periodic, order, type )
108
109    IMPLICIT NONE
110      TYPE(txios(expand_domain)) , INTENT(IN) :: expand_domain_hdl
111      LOGICAL  , OPTIONAL, INTENT(OUT) :: i_periodic
112      LOGICAL (KIND=C_BOOL) :: i_periodic_tmp
113      LOGICAL  , OPTIONAL, INTENT(OUT) :: j_periodic
114      LOGICAL (KIND=C_BOOL) :: j_periodic_tmp
115      INTEGER  , OPTIONAL, INTENT(OUT) :: order
116      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type
117
118      CALL xios(get_expand_domain_attr_hdl_)  &
119      ( expand_domain_hdl, i_periodic, j_periodic, order, type )
120
121  END SUBROUTINE xios(get_expand_domain_attr_hdl)
122
123  SUBROUTINE xios(get_expand_domain_attr_hdl_)   &
124    ( expand_domain_hdl, i_periodic_, j_periodic_, order_, type_ )
125
126    IMPLICIT NONE
127      TYPE(txios(expand_domain)) , INTENT(IN) :: expand_domain_hdl
128      LOGICAL  , OPTIONAL, INTENT(OUT) :: i_periodic_
129      LOGICAL (KIND=C_BOOL) :: i_periodic__tmp
130      LOGICAL  , OPTIONAL, INTENT(OUT) :: j_periodic_
131      LOGICAL (KIND=C_BOOL) :: j_periodic__tmp
132      INTEGER  , OPTIONAL, INTENT(OUT) :: order_
133      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type_
134
135      IF (PRESENT(i_periodic_)) THEN
136        CALL cxios_get_expand_domain_i_periodic &
137      (expand_domain_hdl%daddr, i_periodic__tmp)
138        i_periodic_ = i_periodic__tmp
139      ENDIF
140
141      IF (PRESENT(j_periodic_)) THEN
142        CALL cxios_get_expand_domain_j_periodic &
143      (expand_domain_hdl%daddr, j_periodic__tmp)
144        j_periodic_ = j_periodic__tmp
145      ENDIF
146
147      IF (PRESENT(order_)) THEN
148        CALL cxios_get_expand_domain_order &
149      (expand_domain_hdl%daddr, order_)
150      ENDIF
151
152      IF (PRESENT(type_)) THEN
153        CALL cxios_get_expand_domain_type &
154      (expand_domain_hdl%daddr, type_, len(type_))
155      ENDIF
156
157  END SUBROUTINE xios(get_expand_domain_attr_hdl_)
158
159  SUBROUTINE xios(is_defined_expand_domain_attr)  &
160    ( expand_domain_id, i_periodic, j_periodic, order, type )
161
162    IMPLICIT NONE
163      TYPE(txios(expand_domain))  :: expand_domain_hdl
164      CHARACTER(LEN=*), INTENT(IN) ::expand_domain_id
165      LOGICAL, OPTIONAL, INTENT(OUT) :: i_periodic
166      LOGICAL(KIND=C_BOOL) :: i_periodic_tmp
167      LOGICAL, OPTIONAL, INTENT(OUT) :: j_periodic
168      LOGICAL(KIND=C_BOOL) :: j_periodic_tmp
169      LOGICAL, OPTIONAL, INTENT(OUT) :: order
170      LOGICAL(KIND=C_BOOL) :: order_tmp
171      LOGICAL, OPTIONAL, INTENT(OUT) :: type
172      LOGICAL(KIND=C_BOOL) :: type_tmp
173
174      CALL xios(get_expand_domain_handle) &
175      (expand_domain_id,expand_domain_hdl)
176      CALL xios(is_defined_expand_domain_attr_hdl_)   &
177      ( expand_domain_hdl, i_periodic, j_periodic, order, type )
178
179  END SUBROUTINE xios(is_defined_expand_domain_attr)
180
181  SUBROUTINE xios(is_defined_expand_domain_attr_hdl)  &
182    ( expand_domain_hdl, i_periodic, j_periodic, order, type )
183
184    IMPLICIT NONE
185      TYPE(txios(expand_domain)) , INTENT(IN) :: expand_domain_hdl
186      LOGICAL, OPTIONAL, INTENT(OUT) :: i_periodic
187      LOGICAL(KIND=C_BOOL) :: i_periodic_tmp
188      LOGICAL, OPTIONAL, INTENT(OUT) :: j_periodic
189      LOGICAL(KIND=C_BOOL) :: j_periodic_tmp
190      LOGICAL, OPTIONAL, INTENT(OUT) :: order
191      LOGICAL(KIND=C_BOOL) :: order_tmp
192      LOGICAL, OPTIONAL, INTENT(OUT) :: type
193      LOGICAL(KIND=C_BOOL) :: type_tmp
194
195      CALL xios(is_defined_expand_domain_attr_hdl_)  &
196      ( expand_domain_hdl, i_periodic, j_periodic, order, type )
197
198  END SUBROUTINE xios(is_defined_expand_domain_attr_hdl)
199
200  SUBROUTINE xios(is_defined_expand_domain_attr_hdl_)   &
201    ( expand_domain_hdl, i_periodic_, j_periodic_, order_, type_ )
202
203    IMPLICIT NONE
204      TYPE(txios(expand_domain)) , INTENT(IN) :: expand_domain_hdl
205      LOGICAL, OPTIONAL, INTENT(OUT) :: i_periodic_
206      LOGICAL(KIND=C_BOOL) :: i_periodic__tmp
207      LOGICAL, OPTIONAL, INTENT(OUT) :: j_periodic_
208      LOGICAL(KIND=C_BOOL) :: j_periodic__tmp
209      LOGICAL, OPTIONAL, INTENT(OUT) :: order_
210      LOGICAL(KIND=C_BOOL) :: order__tmp
211      LOGICAL, OPTIONAL, INTENT(OUT) :: type_
212      LOGICAL(KIND=C_BOOL) :: type__tmp
213
214      IF (PRESENT(i_periodic_)) THEN
215        i_periodic__tmp = cxios_is_defined_expand_domain_i_periodic &
216      (expand_domain_hdl%daddr)
217        i_periodic_ = i_periodic__tmp
218      ENDIF
219
220      IF (PRESENT(j_periodic_)) THEN
221        j_periodic__tmp = cxios_is_defined_expand_domain_j_periodic &
222      (expand_domain_hdl%daddr)
223        j_periodic_ = j_periodic__tmp
224      ENDIF
225
226      IF (PRESENT(order_)) THEN
227        order__tmp = cxios_is_defined_expand_domain_order &
228      (expand_domain_hdl%daddr)
229        order_ = order__tmp
230      ENDIF
231
232      IF (PRESENT(type_)) THEN
233        type__tmp = cxios_is_defined_expand_domain_type &
234      (expand_domain_hdl%daddr)
235        type_ = type__tmp
236      ENDIF
237
238  END SUBROUTINE xios(is_defined_expand_domain_attr_hdl_)
239
240END MODULE iexpand_domain_attr
Note: See TracBrowser for help on using the repository browser.