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

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

Adding Fortran interfaces for retrieving domains, axis, scalars of a field

+) Add some functions in Grid to get its domain, axis, scalar

Test
+) On Curie
+) Work

File size: 14.7 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_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_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
65USE izoom_axis, ONLY : xios(get_zoom_axis_handle)
66
67USE izoom_axis_attr, ONLY : xios(set_zoom_axis_attr_hdl), xios(get_zoom_axis_attr_hdl), xios(is_defined_zoom_axis_attr_hdl)
68
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_axis, ONLY : xios(get_interpolate_axis_handle)
74
75USE iinterpolate_axis_attr, ONLY : xios(set_interpolate_axis_attr_hdl), xios(get_interpolate_axis_attr_hdl), &
76                                   xios(is_defined_interpolate_axis_attr_hdl)
77
78USE iinterpolate_domain, ONLY : xios(get_interpolate_domain_handle)
79
80USE iinterpolate_domain_attr, ONLY : xios(set_interpolate_domain_attr_hdl), xios(get_interpolate_domain_attr_hdl), &
81                                     xios(is_defined_interpolate_domain_attr_hdl)
82
83USE iinverse_axis, ONLY : xios(get_inverse_axis_handle)
84
85USE iinverse_axis_attr, ONLY : xios(set_inverse_axis_attr_hdl), xios(get_inverse_axis_attr_hdl), xios(is_defined_inverse_axis_attr_hdl)
86
87USE igenerate_rectilinear_domain, ONLY : xios(get_generate_rectilinear_domain_handle)
88
89USE igenerate_rectilinear_domain_attr, ONLY : xios(set_generate_rectilinear_domain_attr_hdl), &
90                                              xios(get_generate_rectilinear_domain_attr_hdl), &
91                                              xios(is_defined_generate_rectilinear_domain_attr_hdl)
92USE icompute_connectivity_domain, ONLY : xios(get_compute_connectivity_domain_handle)
93
94USE icompute_connectivity_domain_attr, ONLY : xios(set_compute_connectivity_domain_attr_hdl), &
95                                              xios(get_compute_connectivity_domain_attr_hdl), &
96                                              xios(is_defined_compute_connectivity_domain_attr_hdl)
97
98USE ireduce_axis_to_scalar, ONLY : xios(get_reduce_axis_to_scalar_handle)
99
100USE ireduce_axis_to_scalar_attr, ONLY : xios(set_reduce_axis_to_scalar_attr_hdl), &
101                                        xios(get_reduce_axis_to_scalar_attr_hdl), &
102                                        xios(is_defined_reduce_axis_to_scalar_attr_hdl)
103
104USE ixml_tree, ONLY : xios(add_axis), xios(add_file), xios(add_grid), xios(add_field), xios(add_domain),   &
105                      xios(add_fieldtofile), xios(add_variabletofile), xios(add_variabletofield),          &
106                      xios(add_axisgroup), xios(add_filegroup), xios(add_gridgroup), xios(add_fieldgroup), &
107                      xios(add_domaingroup), xios(add_fieldgrouptofile), xios(add_variablegrouptofile),    &
108                      xios(add_variablegrouptofield), xios(add_axistogrid), xios(add_domaintogrid),        &
109                      xios(add_zoomdomaintodomain), xios(add_interpolatedomaintodomain),                   &
110                      xios(add_generatedomaintodomain), xios(add_zoomaxistoaxis),                          &
111                      xios(add_interpolateaxistoaxis), xios(add_inverseaxistoaxis), xios(add_scalar),      &
112                      xios(add_scalargroup), xios(add_scalartogrid), xios(add_reduceaxistoscalartoscalar), &
113                      xios(add_computeconnectivitydomaintodomain)
114
115PRIVATE
116
117INTERFACE xios(set_attr)
118  MODULE PROCEDURE xios(set_domaingroup_attr_hdl), xios(set_domain_attr_hdl), xios(set_fieldgroup_attr_hdl), &
119                   xios(set_field_attr_hdl),xios(set_variable_attr_hdl), xios(set_variablegroup_attr_hdl),   &
120                   xios(set_file_attr_hdl), xios(set_filegroup_attr_hdl),                                    &
121                   xios(set_grid_attr_hdl), xios(set_gridgroup_attr_hdl), xios(set_axis_attr_hdl) ,          &
122                   xios(set_axisgroup_attr_hdl), xios(set_context_attr_hdl), xios(set_zoom_axis_attr_hdl),   &
123                   xios(set_zoom_domain_attr_hdl), xios(set_interpolate_axis_attr_hdl),                      &
124                   xios(set_interpolate_domain_attr_hdl), xios(set_inverse_axis_attr_hdl),                   &
125                   xios(set_generate_rectilinear_domain_attr_hdl), xios(set_scalar_attr_hdl),                &
126                   xios(set_scalargroup_attr_hdl), xios(set_reduce_axis_to_scalar_attr_hdl),                 &
127                   xios(set_compute_connectivity_domain_attr_hdl)
128END INTERFACE xios(set_attr)
129
130INTERFACE xios(get_attr)
131  MODULE PROCEDURE xios(get_domaingroup_attr_hdl), xios(get_domain_attr_hdl), xios(get_fieldgroup_attr_hdl), &
132                   xios(get_field_attr_hdl), xios(get_variable_attr_hdl), xios(get_variablegroup_attr_hdl),  &
133                   xios(get_file_attr_hdl), xios(get_filegroup_attr_hdl),                                    &
134                   xios(get_grid_attr_hdl), xios(get_gridgroup_attr_hdl), xios(get_axis_attr_hdl) ,          &
135                   xios(get_axisgroup_attr_hdl), xios(get_context_attr_hdl), xios(get_zoom_axis_attr_hdl),   &
136                   xios(get_zoom_domain_attr_hdl), xios(get_interpolate_axis_attr_hdl),                      &
137                   xios(get_interpolate_domain_attr_hdl), xios(get_inverse_axis_attr_hdl),                   &
138                   xios(get_generate_rectilinear_domain_attr_hdl), xios(get_scalar_attr_hdl),                &
139                   xios(get_scalargroup_attr_hdl), xios(get_reduce_axis_to_scalar_attr_hdl),                 &
140                   xios(get_compute_connectivity_domain_attr_hdl)
141END INTERFACE xios(get_attr)
142
143INTERFACE xios(is_defined_attr)
144  MODULE PROCEDURE xios(is_defined_domaingroup_attr_hdl), xios(is_defined_domain_attr_hdl), xios(is_defined_fieldgroup_attr_hdl), &
145                   xios(is_defined_field_attr_hdl), xios(is_defined_variable_attr_hdl), xios(is_defined_variablegroup_attr_hdl),  &
146                   xios(is_defined_file_attr_hdl), xios(is_defined_filegroup_attr_hdl),                                           &
147                   xios(is_defined_grid_attr_hdl), xios(is_defined_gridgroup_attr_hdl), xios(is_defined_axis_attr_hdl) ,          &
148                   xios(is_defined_axisgroup_attr_hdl), xios(is_defined_context_attr_hdl),                                        &
149                   xios(is_defined_zoom_axis_attr_hdl), xios(is_defined_zoom_domain_attr_hdl),                                    &
150                   xios(is_defined_interpolate_axis_attr_hdl), xios(is_defined_interpolate_domain_attr_hdl),                      &
151                   xios(is_defined_inverse_axis_attr_hdl), xios(is_defined_generate_rectilinear_domain_attr_hdl),                 &
152                   xios(is_defined_scalar_attr_hdl), xios(is_defined_scalargroup_attr_hdl),                                       &
153                   xios(is_defined_reduce_axis_to_scalar_attr_hdl), xios(is_defined_compute_connectivity_domain_attr_hdl)
154END INTERFACE xios(is_defined_attr)
155
156INTERFACE xios(get_handle)
157  MODULE PROCEDURE xios(get_context_handle), xios(get_domain_handle), xios(get_domaingroup_handle), &
158                   xios(get_file_handle), xios(get_filegroup_handle), xios(get_grid_handle),        &
159                   xios(get_gridgroup_handle), xios(get_axis_handle), xios(get_axisgroup_handle),   &
160                   xios(get_field_handle), xios(get_fieldgroup_handle),xios(get_variable_handle),   &
161                   xios(get_variablegroup_handle), xios(get_zoom_axis_handle),                      &
162                   xios(get_zoom_domain_handle), xios(get_interpolate_axis_handle),                 &
163                   xios(get_interpolate_domain_handle), xios(get_inverse_axis_handle),              &
164                   xios(get_generate_rectilinear_domain_handle), xios(get_scalar_handle),           &
165                   xios(get_scalargroup_handle), xios(get_reduce_axis_to_scalar_handle),            &
166                   xios(get_compute_connectivity_domain_handle)
167END INTERFACE xios(get_handle)
168
169INTERFACE xios(add_child)
170  MODULE PROCEDURE xios(add_axis), xios(add_file), xios(add_grid), xios(add_field), xios(add_domain),                &
171                   xios(add_fieldtofile), xios(add_variabletofile), xios(add_variabletofield), xios(add_axisgroup),  &
172                   xios(add_filegroup), xios(add_gridgroup), xios(add_fieldgroup), xios(add_domaingroup),            &
173                   xios(add_fieldgrouptofile), xios(add_variablegrouptofile),xios(add_variablegrouptofield),         &
174                   xios(add_axistogrid), xios(add_domaintogrid), xios(add_zoomdomaintodomain),                       &
175                   xios(add_interpolatedomaintodomain), xios(add_generatedomaintodomain),                            &
176                   xios(add_zoomaxistoaxis), xios(add_interpolateaxistoaxis), xios(add_inverseaxistoaxis),           &
177                   xios(add_scalar), xios(add_scalartogrid), xios(add_reduceaxistoscalartoscalar),                   &
178                   xios(add_computeconnectivitydomaintodomain)
179END INTERFACE xios(add_child)
180
181INTERFACE xios(send_field)
182  MODULE PROCEDURE xios(send_field_r8_0d), xios(send_field_r8_1d), xios(send_field_r8_2d), xios(send_field_r8_3d), &
183                   xios(send_field_r8_4d), xios(send_field_r8_5d), xios(send_field_r8_6d), xios(send_field_r8_7d), &
184                   xios(send_field_r4_0d), xios(send_field_r4_1d), xios(send_field_r4_2d), xios(send_field_r4_3d), &
185                   xios(send_field_r4_4d), xios(send_field_r4_5d), xios(send_field_r4_6d), xios(send_field_r4_7d)
186END INTERFACE xios(send_field)
187
188INTERFACE xios(recv_field)
189  MODULE PROCEDURE xios(recv_field_r8_1d), xios(recv_field_r8_2d), xios(recv_field_r8_3d), &
190                   xios(recv_field_r8_4d), xios(recv_field_r8_5d), xios(recv_field_r8_6d), xios(recv_field_r8_7d), &
191                   xios(recv_field_r4_1d), xios(recv_field_r4_2d), xios(recv_field_r4_3d), &
192                   xios(recv_field_r4_4d), xios(recv_field_r4_5d), xios(recv_field_r4_6d), xios(recv_field_r4_7d)
193END INTERFACE xios(recv_field)
194
195INTERFACE xios(field_is_active)
196  MODULE PROCEDURE xios(field_is_active_id),xios(field_is_active_hdl)
197END INTERFACE xios(field_is_active)
198
199INTERFACE xios(field_get_domain)
200  MODULE PROCEDURE xios(field_get_domain_handle), xios(field_id_get_domain_handle)
201END INTERFACE xios(field_get_domain)
202
203INTERFACE xios(field_get_axis)
204  MODULE PROCEDURE xios(field_get_axis_handle),xios(field_id_get_axis_handle)
205END INTERFACE xios(field_get_axis)
206
207INTERFACE xios(field_get_scalar)
208  MODULE PROCEDURE xios(field_get_scalar_handle),xios(field_id_get_scalar_handle)
209END INTERFACE xios(field_get_scalar)
210
211INTERFACE xios(getVar)
212  MODULE PROCEDURE xios(getVar_k8), xios(getVar_k4), xios(getVar_int), xios(getVar_logic), xios(getVar_char)
213END INTERFACE xios(getVar)
214
215INTERFACE xios(setVar)
216  MODULE PROCEDURE xios(setVar_k8), xios(setVar_k4), xios(setVar_int), xios(setVar_logic), xios(setVar_char)
217END INTERFACE xios(setVar)
218
219PUBLIC :: xios(set_attr), xios(get_attr), xios(is_defined_attr), xios(get_handle), xios(add_child), &
220          xios(send_field), xios(recv_field), xios(field_is_active), xios(getVar), xios(setVar), &
221          xios(field_get_domain),xios(field_get_axis),xios(field_get_scalar)
222
223END MODULE XIOS_INTERFACES
Note: See TracBrowser for help on using the repository browser.