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

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

Fortran interfaces:

+) Adding Fortran interfaces of transformation

Test
+) Only complilation on Curie

File size: 18.4 KB
RevLine 
[576]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
[886]9USE idata, ONLY : xios(send_field_r8_0d), xios(send_field_r8_1d), xios(send_field_r8_2d), xios(send_field_r8_3d), &
[932]10                  xios(send_field_r8_4d), xios(send_field_r8_5d), xios(send_field_r8_6d), xios(send_field_r8_7d), &
[886]11                  xios(send_field_r4_0d), xios(send_field_r4_1d), xios(send_field_r4_2d), xios(send_field_r4_3d), &
[932]12                  xios(send_field_r4_4d), xios(send_field_r4_5d), xios(send_field_r4_6d), xios(send_field_r4_7d), &
[961]13                  xios(recv_field_r8_0d), xios(recv_field_r8_1d), xios(recv_field_r8_2d), xios(recv_field_r8_3d), &
[932]14                  xios(recv_field_r8_4d), xios(recv_field_r8_5d), xios(recv_field_r8_6d), xios(recv_field_r8_7d), &
[961]15                  xios(recv_field_r4_0d), xios(recv_field_r4_1d), xios(recv_field_r4_2d), xios(recv_field_r4_3d), &
[932]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),      &
[576]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
[943]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)
[576]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
[577]38USE ivariablegroup_attr, ONLY : xios(set_variablegroup_attr_hdl), xios(get_variablegroup_attr_hdl), &
39                                xios(is_defined_variablegroup_attr_hdl)
[576]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
[891]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
[981]65!-------------------------------------------------------------------------------
66!!! Transformation INTERFACES
67!-------------------------------------------------------------------------------
68!!! DOMAIN TRANSFORMATIONS
[784]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
[786]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)
[981]83
[934]84USE icompute_connectivity_domain, ONLY : xios(get_compute_connectivity_domain_handle)
[786]85
[934]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
[981]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
[891]128USE ireduce_axis_to_scalar, ONLY : xios(get_reduce_axis_to_scalar_handle)
129
[903]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)
[891]133
[981]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
[576]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),    &
[836]150                      xios(add_variablegrouptofield), xios(add_axistogrid), xios(add_domaintogrid),        &
151                      xios(add_zoomdomaintodomain), xios(add_interpolatedomaintodomain),                   &
152                      xios(add_generatedomaintodomain), xios(add_zoomaxistoaxis),                          &
[891]153                      xios(add_interpolateaxistoaxis), xios(add_inverseaxistoaxis), xios(add_scalar),      &
[934]154                      xios(add_scalargroup), xios(add_scalartogrid), xios(add_reduceaxistoscalartoscalar), &
[981]155                      xios(add_computeconnectivitydomaintodomain), xios(add_reducedomaintoaxistoaxis),     &
156                      xios(add_extractdomaintoaxistoaxis), xios(add_reducedomaintoscalartoscalar),         &
157                      xios(add_extractaxistoscalartoscalar), xios(add_expanddomaintodomain)
[576]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) ,          &
[784]166                   xios(set_axisgroup_attr_hdl), xios(set_context_attr_hdl), xios(set_zoom_axis_attr_hdl),   &
[786]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),                   &
[891]169                   xios(set_generate_rectilinear_domain_attr_hdl), xios(set_scalar_attr_hdl),                &
[934]170                   xios(set_scalargroup_attr_hdl), xios(set_reduce_axis_to_scalar_attr_hdl),                 &
[981]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)
[576]174END INTERFACE xios(set_attr)
175
[981]176
[576]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) ,          &
[784]182                   xios(get_axisgroup_attr_hdl), xios(get_context_attr_hdl), xios(get_zoom_axis_attr_hdl),   &
[786]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),                   &
[891]185                   xios(get_generate_rectilinear_domain_attr_hdl), xios(get_scalar_attr_hdl),                &
[934]186                   xios(get_scalargroup_attr_hdl), xios(get_reduce_axis_to_scalar_attr_hdl),                 &
[981]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)
[576]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) ,          &
[784]197                   xios(is_defined_axisgroup_attr_hdl), xios(is_defined_context_attr_hdl),                                        &
[786]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),                      &
[891]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),                                       &
[981]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)
[576]206END INTERFACE xios(is_defined_attr)
207
208INTERFACE xios(get_handle)
[981]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)
[576]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),            &
[835]227                   xios(add_fieldgrouptofile), xios(add_variablegrouptofile),xios(add_variablegrouptofield),         &
[836]228                   xios(add_axistogrid), xios(add_domaintogrid), xios(add_zoomdomaintodomain),                       &
229                   xios(add_interpolatedomaintodomain), xios(add_generatedomaintodomain),                            &
[891]230                   xios(add_zoomaxistoaxis), xios(add_interpolateaxistoaxis), xios(add_inverseaxistoaxis),           &
[934]231                   xios(add_scalar), xios(add_scalartogrid), xios(add_reduceaxistoscalartoscalar),                   &
[981]232                   xios(add_computeconnectivitydomaintodomain), xios(add_reducedomaintoscalartoscalar),              &
233                   xios(add_reducedomaintoaxistoaxis), xios(add_extractdomaintoaxistoaxis),                          &
234                   xios(add_extractaxistoscalartoscalar), xios(add_expanddomaintodomain)
[576]235END INTERFACE xios(add_child)
236
237INTERFACE xios(send_field)
[932]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)
[576]242END INTERFACE xios(send_field)
243
[593]244INTERFACE xios(recv_field)
[961]245  MODULE PROCEDURE xios(recv_field_r8_0d), xios(recv_field_r8_1d), xios(recv_field_r8_2d), xios(recv_field_r8_3d), &
[932]246                   xios(recv_field_r8_4d), xios(recv_field_r8_5d), xios(recv_field_r8_6d), xios(recv_field_r8_7d), &
[961]247                   xios(recv_field_r4_0d), xios(recv_field_r4_1d), xios(recv_field_r4_2d), xios(recv_field_r4_3d), &
[932]248                   xios(recv_field_r4_4d), xios(recv_field_r4_5d), xios(recv_field_r4_6d), xios(recv_field_r4_7d)
[593]249END INTERFACE xios(recv_field)
250
[576]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
[943]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
[576]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
[593]275PUBLIC :: xios(set_attr), xios(get_attr), xios(is_defined_attr), xios(get_handle), xios(add_child), &
[943]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)
[576]278
279END MODULE XIOS_INTERFACES
Note: See TracBrowser for help on using the repository browser.