source: XIOS/dev/dev_oa/src/interface/fortran/ixios_interfaces.F90 @ 1963

Last change on this file since 1963 was 1963, checked in by oabramkina, 4 years ago

dev_oa: adding interface to xios_send permitting sending a tile

File size: 19.5 KB
Line 
1#include "xios_fortran_prefix.hpp"
2
3MODULE XIOS_INTERFACES
4
5USE icontext, ONLY : xios(get_context_handle)
6
7USE icontext_attr, ONLY : xios(set_context_attr_hdl), xios(get_context_attr_hdl), xios(is_defined_context_attr_hdl)
8
9USE idata, ONLY : xios(send_field_r8_0d), xios(send_field_r8_1d), xios(send_field_r8_2d), xios(send_field_r8_3d), &
10                  xios(send_field_r8_4d), xios(send_field_r8_5d), xios(send_field_r8_6d), xios(send_field_r8_7d), &
11                  xios(send_field_r4_0d), xios(send_field_r4_1d), xios(send_field_r4_2d), xios(send_field_r4_3d), &
12                  xios(send_field_r4_4d), xios(send_field_r4_5d), xios(send_field_r4_6d), xios(send_field_r4_7d), &
13                  xios(send_field_tiled_r8_1d), xios(send_field_tiled_r8_2d), &
14                  xios(send_field_tiled_r8_3d), xios(send_field_tiled_r8_4d), &
15                  xios(send_field_tiled_r8_5d), xios(send_field_tiled_r8_6d), xios(send_field_tiled_r8_7d), &
16                  xios(send_field_tiled_r4_1d), xios(send_field_tiled_r4_2d), &
17                  xios(send_field_tiled_r4_3d), xios(send_field_tiled_r4_4d), &
18                  xios(send_field_tiled_r4_5d), xios(send_field_tiled_r4_6d), xios(send_field_tiled_r4_7d), &
19                  xios(recv_field_r8_0d), xios(recv_field_r8_1d), xios(recv_field_r8_2d), xios(recv_field_r8_3d), &
20                  xios(recv_field_r8_4d), xios(recv_field_r8_5d), xios(recv_field_r8_6d), xios(recv_field_r8_7d), &
21                  xios(recv_field_r4_0d), xios(recv_field_r4_1d), xios(recv_field_r4_2d), xios(recv_field_r4_3d), &
22                  xios(recv_field_r4_4d), xios(recv_field_r4_5d), xios(recv_field_r4_6d), xios(recv_field_r4_7d), &
23                  xios(getVar_k8), xios(getVar_k4), xios(getVar_int), xios(getVar_logic), xios(getVar_char),      &
24                  xios(setVar_k8), xios(setVar_k4), xios(setVar_int), xios(setVar_logic), xios(setVar_char)
25
26USE idomain, ONLY : xios(get_domain_handle), xios(get_domaingroup_handle)
27
28USE idomain_attr, ONLY : xios(set_domain_attr_hdl), xios(get_domain_attr_hdl), xios(is_defined_domain_attr_hdl)
29
30USE idomaingroup_attr, ONLY : xios(set_domaingroup_attr_hdl), xios(get_domaingroup_attr_hdl), xios(is_defined_domaingroup_attr_hdl)
31
32USE ifield, ONLY : xios(get_field_handle), xios(get_fieldgroup_handle), xios(field_is_active_id), xios(field_is_active_hdl), &
33                   xios(field_get_domain_handle), xios(field_get_axis_handle), xios(field_get_scalar_handle), &
34                   xios(field_id_get_domain_handle), xios(field_id_get_axis_handle), xios(field_id_get_scalar_handle)
35
36USE ifield_attr, ONLY : xios(set_field_attr_hdl), xios(get_field_attr_hdl), xios(is_defined_field_attr_hdl)
37
38USE ifieldgroup_attr, ONLY : xios(set_fieldgroup_attr_hdl), xios(get_fieldgroup_attr_hdl), xios(is_defined_fieldgroup_attr_hdl)
39
40USE ivariable, ONLY : xios(get_variable_handle), xios(get_variablegroup_handle)
41
42USE ivariable_attr, ONLY : xios(set_variable_attr_hdl), xios(get_variable_attr_hdl), xios(is_defined_variable_attr_hdl)
43
44USE ivariablegroup_attr, ONLY : xios(set_variablegroup_attr_hdl), xios(get_variablegroup_attr_hdl), &
45                                xios(is_defined_variablegroup_attr_hdl)
46
47USE ifile, ONLY : xios(get_file_handle), xios(get_filegroup_handle)
48
49USE ifile_attr, ONLY : xios(set_file_attr_hdl), xios(get_file_attr_hdl), xios(is_defined_file_attr_hdl)
50
51USE ifilegroup_attr, ONLY : xios(set_filegroup_attr_hdl), xios(get_filegroup_attr_hdl), xios(is_defined_filegroup_attr_hdl)
52
53USE igrid, ONLY : xios(get_grid_handle), xios(get_gridgroup_handle)
54
55USE igrid_attr, ONLY : xios(set_grid_attr_hdl), xios(get_grid_attr_hdl), xios(is_defined_grid_attr_hdl)
56
57USE igridgroup_attr, ONLY : xios(set_gridgroup_attr_hdl), xios(get_gridgroup_attr_hdl), xios(is_defined_gridgroup_attr_hdl)
58
59USE iaxis, ONLY : xios(get_axis_handle), xios(get_axisgroup_handle)
60
61USE iaxis_attr, ONLY : xios(set_axis_attr_hdl), xios(get_axis_attr_hdl), xios(is_defined_axis_attr_hdl)
62
63USE iaxisgroup_attr, ONLY : xios(set_axisgroup_attr_hdl), xios(get_axisgroup_attr_hdl), xios(is_defined_axisgroup_attr_hdl)
64
65USE iscalar, ONLY : xios(get_scalar_handle), xios(get_scalargroup_handle)
66
67USE iscalar_attr, ONLY : xios(set_scalar_attr_hdl), xios(get_scalar_attr_hdl), xios(is_defined_scalar_attr_hdl)
68
69USE iscalargroup_attr, ONLY : xios(set_scalargroup_attr_hdl), xios(get_scalargroup_attr_hdl), xios(is_defined_scalargroup_attr_hdl)
70
71!-------------------------------------------------------------------------------
72!!! Transformation INTERFACES
73!-------------------------------------------------------------------------------
74!!! DOMAIN TRANSFORMATIONS
75USE izoom_domain, ONLY : xios(get_zoom_domain_handle)
76
77USE izoom_domain_attr, ONLY : xios(set_zoom_domain_attr_hdl), xios(get_zoom_domain_attr_hdl), xios(is_defined_zoom_domain_attr_hdl)
78
79USE iinterpolate_domain, ONLY : xios(get_interpolate_domain_handle)
80
81USE iinterpolate_domain_attr, ONLY : xios(set_interpolate_domain_attr_hdl), xios(get_interpolate_domain_attr_hdl), &
82                                     xios(is_defined_interpolate_domain_attr_hdl)
83
84USE igenerate_rectilinear_domain, ONLY : xios(get_generate_rectilinear_domain_handle)
85
86USE igenerate_rectilinear_domain_attr, ONLY : xios(set_generate_rectilinear_domain_attr_hdl), &
87                                              xios(get_generate_rectilinear_domain_attr_hdl), &
88                                              xios(is_defined_generate_rectilinear_domain_attr_hdl)
89
90USE icompute_connectivity_domain, ONLY : xios(get_compute_connectivity_domain_handle)
91
92USE icompute_connectivity_domain_attr, ONLY : xios(set_compute_connectivity_domain_attr_hdl), &
93                                              xios(get_compute_connectivity_domain_attr_hdl), &
94                                              xios(is_defined_compute_connectivity_domain_attr_hdl)
95
96USE iexpand_domain, ONLY : xios(get_expand_domain_handle)
97
98USE iexpand_domain_attr, ONLY : xios(set_expand_domain_attr_hdl), &
99                                xios(get_expand_domain_attr_hdl), &
100                                xios(is_defined_expand_domain_attr_hdl)
101
102!!! AXIS TRANSFORMATIONS
103USE izoom_axis, ONLY : xios(get_zoom_axis_handle)
104
105USE izoom_axis_attr, ONLY : xios(set_zoom_axis_attr_hdl), xios(get_zoom_axis_attr_hdl), xios(is_defined_zoom_axis_attr_hdl)
106
107USE iinterpolate_axis, ONLY : xios(get_interpolate_axis_handle)
108
109USE iinterpolate_axis_attr, ONLY : xios(set_interpolate_axis_attr_hdl), &
110                                   xios(get_interpolate_axis_attr_hdl), &
111                                   xios(is_defined_interpolate_axis_attr_hdl)
112
113USE iinverse_axis, ONLY : xios(get_inverse_axis_handle)
114
115USE iinverse_axis_attr, ONLY : xios(set_inverse_axis_attr_hdl), &
116                               xios(get_inverse_axis_attr_hdl), &
117                               xios(is_defined_inverse_axis_attr_hdl)
118
119USE ireduce_domain_to_axis, ONLY : xios(get_reduce_domain_to_axis_handle)
120
121USE ireduce_domain_to_axis_attr, ONLY : xios(set_reduce_domain_to_axis_attr_hdl), &
122                                        xios(get_reduce_domain_to_axis_attr_hdl), &
123                                        xios(is_defined_reduce_domain_to_axis_attr_hdl)
124
125USE iextract_domain_to_axis, ONLY : xios(get_extract_domain_to_axis_handle)
126
127USE iextract_domain_to_axis_attr, ONLY : xios(set_extract_domain_to_axis_attr_hdl), &
128                                         xios(get_extract_domain_to_axis_attr_hdl), &
129                                         xios(is_defined_extract_domain_to_axis_attr_hdl)
130
131!!! SCALAR TRANSFORMATIONS
132
133
134USE ireduce_axis_to_scalar, ONLY : xios(get_reduce_axis_to_scalar_handle)
135
136USE ireduce_axis_to_scalar_attr, ONLY : xios(set_reduce_axis_to_scalar_attr_hdl), &
137                                        xios(get_reduce_axis_to_scalar_attr_hdl), &
138                                        xios(is_defined_reduce_axis_to_scalar_attr_hdl)
139
140USE ireduce_domain_to_scalar, ONLY : xios(get_reduce_domain_to_scalar_handle)
141
142USE ireduce_domain_to_scalar_attr, ONLY : xios(set_reduce_domain_to_scalar_attr_hdl), &
143                                          xios(get_reduce_domain_to_scalar_attr_hdl), &
144                                          xios(is_defined_reduce_domain_to_scalar_attr_hdl)
145
146USE iextract_axis_to_scalar, ONLY : xios(get_extract_axis_to_scalar_handle)
147
148USE iextract_axis_to_scalar_attr, ONLY : xios(set_extract_axis_to_scalar_attr_hdl), &
149                                         xios(get_extract_axis_to_scalar_attr_hdl), &
150                                         xios(is_defined_extract_axis_to_scalar_attr_hdl)
151
152USE ixml_tree, ONLY : xios(add_axis), xios(add_file), xios(add_grid), xios(add_field), xios(add_domain),   &
153                      xios(add_fieldtofile), xios(add_variabletofile), xios(add_variabletofield),          &
154                      xios(add_axisgroup), xios(add_filegroup), xios(add_gridgroup), xios(add_fieldgroup), &
155                      xios(add_domaingroup), xios(add_fieldgrouptofile), xios(add_variablegrouptofile),    &
156                      xios(add_variablegrouptofield), xios(add_axistogrid), xios(add_domaintogrid),        &
157                      xios(add_zoomdomaintodomain), xios(add_interpolatedomaintodomain),                   &
158                      xios(add_generatedomaintodomain), xios(add_zoomaxistoaxis),                          &
159                      xios(add_interpolateaxistoaxis), xios(add_inverseaxistoaxis), xios(add_scalar),      &
160                      xios(add_scalargroup), xios(add_scalartogrid), xios(add_reduceaxistoscalartoscalar), &
161                      xios(add_computeconnectivitydomaintodomain), xios(add_reducedomaintoaxistoaxis),     &
162                      xios(add_extractdomaintoaxistoaxis), xios(add_reducedomaintoscalartoscalar),         &
163                      xios(add_extractaxistoscalartoscalar), xios(add_expanddomaintodomain)
164
165PRIVATE
166
167INTERFACE xios(set_attr)
168  MODULE PROCEDURE xios(set_domaingroup_attr_hdl), xios(set_domain_attr_hdl), xios(set_fieldgroup_attr_hdl), &
169                   xios(set_field_attr_hdl),xios(set_variable_attr_hdl), xios(set_variablegroup_attr_hdl),   &
170                   xios(set_file_attr_hdl), xios(set_filegroup_attr_hdl),                                    &
171                   xios(set_grid_attr_hdl), xios(set_gridgroup_attr_hdl), xios(set_axis_attr_hdl) ,          &
172                   xios(set_axisgroup_attr_hdl), xios(set_context_attr_hdl), xios(set_zoom_axis_attr_hdl),   &
173                   xios(set_zoom_domain_attr_hdl), xios(set_interpolate_axis_attr_hdl),                      &
174                   xios(set_interpolate_domain_attr_hdl), xios(set_inverse_axis_attr_hdl),                   &
175                   xios(set_generate_rectilinear_domain_attr_hdl), xios(set_scalar_attr_hdl),                &
176                   xios(set_scalargroup_attr_hdl), xios(set_reduce_axis_to_scalar_attr_hdl),                 &
177                   xios(set_compute_connectivity_domain_attr_hdl), xios(set_reduce_domain_to_scalar_attr_hdl), &
178                   xios(set_reduce_domain_to_axis_attr_hdl), xios(set_extract_domain_to_axis_attr_hdl),        &
179                   xios(set_extract_axis_to_scalar_attr_hdl), xios(set_expand_domain_attr_hdl)
180END INTERFACE xios(set_attr)
181
182
183INTERFACE xios(get_attr)
184  MODULE PROCEDURE xios(get_domaingroup_attr_hdl), xios(get_domain_attr_hdl), xios(get_fieldgroup_attr_hdl), &
185                   xios(get_field_attr_hdl), xios(get_variable_attr_hdl), xios(get_variablegroup_attr_hdl),  &
186                   xios(get_file_attr_hdl), xios(get_filegroup_attr_hdl),                                    &
187                   xios(get_grid_attr_hdl), xios(get_gridgroup_attr_hdl), xios(get_axis_attr_hdl) ,          &
188                   xios(get_axisgroup_attr_hdl), xios(get_context_attr_hdl), xios(get_zoom_axis_attr_hdl),   &
189                   xios(get_zoom_domain_attr_hdl), xios(get_interpolate_axis_attr_hdl),                      &
190                   xios(get_interpolate_domain_attr_hdl), xios(get_inverse_axis_attr_hdl),                   &
191                   xios(get_generate_rectilinear_domain_attr_hdl), xios(get_scalar_attr_hdl),                &
192                   xios(get_scalargroup_attr_hdl), xios(get_reduce_axis_to_scalar_attr_hdl),                 &
193                   xios(get_compute_connectivity_domain_attr_hdl), xios(get_reduce_domain_to_scalar_attr_hdl), &
194                   xios(get_reduce_domain_to_axis_attr_hdl), xios(get_extract_domain_to_axis_attr_hdl),        &
195                   xios(get_extract_axis_to_scalar_attr_hdl), xios(get_expand_domain_attr_hdl)
196END INTERFACE xios(get_attr)
197
198INTERFACE xios(is_defined_attr)
199  MODULE PROCEDURE xios(is_defined_domaingroup_attr_hdl), xios(is_defined_domain_attr_hdl), xios(is_defined_fieldgroup_attr_hdl), &
200                   xios(is_defined_field_attr_hdl), xios(is_defined_variable_attr_hdl), xios(is_defined_variablegroup_attr_hdl),  &
201                   xios(is_defined_file_attr_hdl), xios(is_defined_filegroup_attr_hdl),                                           &
202                   xios(is_defined_grid_attr_hdl), xios(is_defined_gridgroup_attr_hdl), xios(is_defined_axis_attr_hdl) ,          &
203                   xios(is_defined_axisgroup_attr_hdl), xios(is_defined_context_attr_hdl),                                        &
204                   xios(is_defined_zoom_axis_attr_hdl), xios(is_defined_zoom_domain_attr_hdl),                                    &
205                   xios(is_defined_interpolate_axis_attr_hdl), xios(is_defined_interpolate_domain_attr_hdl),                      &
206                   xios(is_defined_inverse_axis_attr_hdl), xios(is_defined_generate_rectilinear_domain_attr_hdl),                 &
207                   xios(is_defined_scalar_attr_hdl), xios(is_defined_scalargroup_attr_hdl),                                       &
208                   xios(is_defined_reduce_axis_to_scalar_attr_hdl), xios(is_defined_compute_connectivity_domain_attr_hdl),        &
209                   xios(is_defined_reduce_domain_to_scalar_attr_hdl), xios(is_defined_reduce_domain_to_axis_attr_hdl),            &
210                   xios(is_defined_extract_domain_to_axis_attr_hdl), xios(is_defined_extract_axis_to_scalar_attr_hdl),            &
211                   xios(is_defined_expand_domain_attr_hdl)
212END INTERFACE xios(is_defined_attr)
213
214INTERFACE xios(get_handle)
215  MODULE PROCEDURE xios(get_context_handle), xios(get_domain_handle), xios(get_domaingroup_handle),                  &
216                   xios(get_file_handle), xios(get_filegroup_handle), xios(get_grid_handle),                         &
217                   xios(get_gridgroup_handle), xios(get_axis_handle), xios(get_axisgroup_handle),                    &
218                   xios(get_field_handle), xios(get_fieldgroup_handle),xios(get_variable_handle),                    &
219                   xios(get_variablegroup_handle), xios(get_zoom_axis_handle),                                       &
220                   xios(get_zoom_domain_handle), xios(get_interpolate_axis_handle),                                  &
221                   xios(get_interpolate_domain_handle), xios(get_inverse_axis_handle),                               &
222                   xios(get_generate_rectilinear_domain_handle), xios(get_scalar_handle),                            &
223                   xios(get_scalargroup_handle), xios(get_reduce_axis_to_scalar_handle),                             &
224                   xios(get_compute_connectivity_domain_handle), xios(get_reduce_domain_to_scalar_handle),           &
225                   xios(get_reduce_domain_to_axis_handle), xios(get_extract_domain_to_axis_handle),                  &
226                   xios(get_extract_axis_to_scalar_handle), xios(get_expand_domain_handle)
227END INTERFACE xios(get_handle)
228
229INTERFACE xios(add_child)
230  MODULE PROCEDURE xios(add_axis), xios(add_file), xios(add_grid), xios(add_field), xios(add_domain),                &
231                   xios(add_fieldtofile), xios(add_variabletofile), xios(add_variabletofield), xios(add_axisgroup),  &
232                   xios(add_filegroup), xios(add_gridgroup), xios(add_fieldgroup), xios(add_domaingroup),            &
233                   xios(add_fieldgrouptofile), xios(add_variablegrouptofile),xios(add_variablegrouptofield),         &
234                   xios(add_axistogrid), xios(add_domaintogrid), xios(add_zoomdomaintodomain),                       &
235                   xios(add_interpolatedomaintodomain), xios(add_generatedomaintodomain),                            &
236                   xios(add_zoomaxistoaxis), xios(add_interpolateaxistoaxis), xios(add_inverseaxistoaxis),           &
237                   xios(add_scalar), xios(add_scalartogrid), xios(add_reduceaxistoscalartoscalar),                   &
238                   xios(add_computeconnectivitydomaintodomain), xios(add_reducedomaintoscalartoscalar),              &
239                   xios(add_reducedomaintoaxistoaxis), xios(add_extractdomaintoaxistoaxis),                          &
240                   xios(add_extractaxistoscalartoscalar), xios(add_expanddomaintodomain)
241END INTERFACE xios(add_child)
242
243INTERFACE xios(send_field)
244  MODULE PROCEDURE xios(send_field_r8_0d), xios(send_field_r8_1d), xios(send_field_r8_2d), xios(send_field_r8_3d), &
245                   xios(send_field_r8_4d), xios(send_field_r8_5d), xios(send_field_r8_6d), xios(send_field_r8_7d), &
246                   xios(send_field_r4_0d), xios(send_field_r4_1d), xios(send_field_r4_2d), xios(send_field_r4_3d), &
247                   xios(send_field_r4_4d), xios(send_field_r4_5d), xios(send_field_r4_6d), xios(send_field_r4_7d), &
248                   xios(send_field_tiled_r8_1d), xios(send_field_tiled_r8_2d), &
249                   xios(send_field_tiled_r8_3d), xios(send_field_tiled_r8_4d), &
250                   xios(send_field_tiled_r8_5d), xios(send_field_tiled_r8_6d), xios(send_field_tiled_r8_7d), &
251                   xios(send_field_tiled_r4_1d), xios(send_field_tiled_r4_2d), &
252                   xios(send_field_tiled_r4_3d), xios(send_field_tiled_r4_4d), &
253                   xios(send_field_tiled_r4_5d), xios(send_field_tiled_r4_6d), xios(send_field_tiled_r4_7d)
254END INTERFACE xios(send_field)
255
256INTERFACE xios(recv_field)
257  MODULE PROCEDURE xios(recv_field_r8_0d), xios(recv_field_r8_1d), xios(recv_field_r8_2d), xios(recv_field_r8_3d), &
258                   xios(recv_field_r8_4d), xios(recv_field_r8_5d), xios(recv_field_r8_6d), xios(recv_field_r8_7d), &
259                   xios(recv_field_r4_0d), xios(recv_field_r4_1d), xios(recv_field_r4_2d), xios(recv_field_r4_3d), &
260                   xios(recv_field_r4_4d), xios(recv_field_r4_5d), xios(recv_field_r4_6d), xios(recv_field_r4_7d)
261END INTERFACE xios(recv_field)
262
263INTERFACE xios(field_is_active)
264  MODULE PROCEDURE xios(field_is_active_id),xios(field_is_active_hdl)
265END INTERFACE xios(field_is_active)
266
267INTERFACE xios(field_get_domain)
268  MODULE PROCEDURE xios(field_get_domain_handle), xios(field_id_get_domain_handle)
269END INTERFACE xios(field_get_domain)
270
271INTERFACE xios(field_get_axis)
272  MODULE PROCEDURE xios(field_get_axis_handle),xios(field_id_get_axis_handle)
273END INTERFACE xios(field_get_axis)
274
275INTERFACE xios(field_get_scalar)
276  MODULE PROCEDURE xios(field_get_scalar_handle),xios(field_id_get_scalar_handle)
277END INTERFACE xios(field_get_scalar)
278
279INTERFACE xios(getVar)
280  MODULE PROCEDURE xios(getVar_k8), xios(getVar_k4), xios(getVar_int), xios(getVar_logic), xios(getVar_char)
281END INTERFACE xios(getVar)
282
283INTERFACE xios(setVar)
284  MODULE PROCEDURE xios(setVar_k8), xios(setVar_k4), xios(setVar_int), xios(setVar_logic), xios(setVar_char)
285END INTERFACE xios(setVar)
286
287PUBLIC :: xios(set_attr), xios(get_attr), xios(is_defined_attr), xios(get_handle), xios(add_child), &
288          xios(send_field), xios(recv_field), xios(field_is_active), xios(getVar), xios(setVar), &
289          xios(field_get_domain),xios(field_get_axis),xios(field_get_scalar)
290
291END MODULE XIOS_INTERFACES
Note: See TracBrowser for help on using the repository browser.