source: XIOS/trunk/src/interface/fortran/ixios_interfaces.F90 @ 981

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

Fortran interfaces:

+) Adding Fortran interfaces of transformation

Test
+) Only complilation on Curie

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