source: XIOS/trunk/src/interface/fortran/ixios.F90 @ 472

Last change on this file since 472 was 472, checked in by ymipsl, 7 years ago

Enhancement : user defined global and field attribute can be output in the netcdfcf file.
A variable child element inclosed into a file element will be output as a global file attribute.
A variable child element inclosed into a field element will be output as a field attribute.

+ variable fortran interface added

YM

File size: 11.0 KB
Line 
1#include "xios_fortran_prefix.hpp"
2
3MODULE XIOS
4
5
6USE icontext, ONLY : txios(context), xios(get_context_handle), xios(set_current_context),    &
7                     xios(is_valid_context)
8
9USE icontext_attr, ONLY : xios(set_context_attr), xios(set_context_attr_hdl), &
10                          xios(get_context_attr), xios(get_context_attr_hdl), &
11                          xios(is_defined_context_attr), xios(is_defined_context_attr_hdl)
12                                               
13USE idata, ONLY : xios(initialize),xios(init_server), xios(finalize), xios(context_initialize),  &
14                  xios(context_is_initialized), xios(close_context_definition),xios(solve_inheritance),       &
15                  xios(context_finalize), xios(send_field_r8_1d), xios(send_field_r8_2d), &
16                  xios(send_field_r8_3d), xios(send_field_r4_1d), xios(send_field_r4_2d), &
17                  xios(send_field_r4_3d)
18
19USE idate, ONLY : txios(date),txios(time), xios(set_timestep),xios(update_calendar)
20
21USE idomain, ONLY : txios(domain), txios(domaingroup), xios(get_domain_handle),  &
22                    xios(get_domaingroup_handle),xios(is_valid_domain),     &
23                    xios(is_valid_domaingroup)
24
25USE idomain_attr, ONLY :  xios(set_domain_attr), xios(set_domain_attr_hdl),  &
26                          xios(get_domain_attr), xios(get_domain_attr_hdl), &
27                          xios(is_defined_domain_attr), xios(is_defined_domain_attr_hdl)
28
29USE idomaingroup_attr, ONLY : xios(set_domaingroup_attr), xios(set_domaingroup_attr_hdl),  & 
30                              xios(get_domaingroup_attr), xios(get_domaingroup_attr_hdl), & 
31                              xios(is_defined_domaingroup_attr), xios(is_defined_domaingroup_attr_hdl) 
32                   
33USE ifield, ONLY : txios(field), txios(fieldgroup), xios(get_field_handle),  &
34                   xios(get_fieldgroup_handle), xios(is_valid_field),        &
35                   xios(is_valid_fieldgroup),xios(field_is_active_id),xios(field_is_active_hdl) 
36
37USE ifield_attr, ONLY : xios(set_field_attr),xios(set_field_attr_hdl),    &
38                        xios(get_field_attr),xios(get_field_attr_hdl), &
39                        xios(is_defined_field_attr),xios(is_defined_field_attr_hdl)
40 
41USE ifieldgroup_attr, ONLY : xios(set_fieldgroup_attr), xios(set_fieldgroup_attr_hdl),  &
42                             xios(get_fieldgroup_attr), xios(get_fieldgroup_attr_hdl), &
43                             xios(is_defined_fieldgroup_attr), xios(is_defined_fieldgroup_attr_hdl)
44
45USE ivariable, ONLY : txios(variable), txios(variablegroup), xios(get_variable_handle),  &
46                   xios(get_variablegroup_handle), xios(is_valid_variable),        &
47                   xios(is_valid_variablegroup)
48
49USE ivariable_attr, ONLY : xios(set_variable_attr),xios(set_variable_attr_hdl),    &
50                        xios(get_variable_attr),xios(get_variable_attr_hdl), &
51                        xios(is_defined_variable_attr),xios(is_defined_variable_attr_hdl)
52 
53USE ivariablegroup_attr, ONLY : xios(set_variablegroup_attr), xios(set_variablegroup_attr_hdl),  &
54                             xios(get_variablegroup_attr), xios(get_variablegroup_attr_hdl), &
55                             xios(is_defined_variablegroup_attr), xios(is_defined_variablegroup_attr_hdl)
56                             
57USE ifile, ONLY : txios(file), txios(filegroup), xios(get_file_handle),    & 
58                  xios(get_filegroup_handle), xios(is_valid_file), xios(is_valid_filegroup)
59
60USE ifile_attr, ONLY : xios(set_file_attr),xios(set_file_attr_hdl), &
61                       xios(get_file_attr),xios(get_file_attr_hdl), &
62                       xios(is_defined_file_attr),xios(is_defined_file_attr_hdl)
63
64USE ifilegroup_attr, ONLY : xios(set_filegroup_attr), xios(set_filegroup_attr_hdl), &
65                            xios(get_filegroup_attr), xios(get_filegroup_attr_hdl), &
66                            xios(is_defined_filegroup_attr), xios(is_defined_filegroup_attr_hdl)
67                 
68USE igrid, ONLY : txios(grid), txios(gridgroup), xios(get_grid_handle),     &
69                  xios(get_gridgroup_handle), xios(is_valid_grid), xios(is_valid_gridgroup) 
70
71USE igrid_attr, ONLY : xios(set_grid_attr_hdl), xios(set_grid_attr), &
72                       xios(get_grid_attr_hdl), xios(get_grid_attr), &
73                       xios(is_defined_grid_attr_hdl), xios(is_defined_grid_attr)
74
75USE igridgroup_attr, ONLY : xios(set_gridgroup_attr), xios(set_gridgroup_attr_hdl),  &
76                            xios(get_gridgroup_attr), xios(get_gridgroup_attr_hdl), &
77                            xios(is_defined_gridgroup_attr), xios(is_defined_gridgroup_attr_hdl)
78
79USE iaxis, ONLY : txios(axis), txios(axisgroup), xios(get_axis_handle),     &
80                  xios(get_axisgroup_handle), xios(is_valid_axis), xios(is_valid_axisgroup) 
81
82USE iaxis_attr, ONLY :  xios(set_axis_attr), xios(set_axis_attr_hdl), &
83                        xios(get_axis_attr), xios(get_axis_attr_hdl), &
84                        xios(is_defined_axis_attr), xios(is_defined_axis_attr_hdl)
85
86USE iaxisgroup_attr, ONLY : xios(set_axisgroup_attr), xios(set_axisgroup_attr_hdl), &
87                            xios(get_axisgroup_attr), xios(get_axisgroup_attr_hdl), &
88                            xios(is_defined_axisgroup_attr), xios(is_defined_axisgroup_attr_hdl)
89
90USE ixml_tree, ONLY : xios(add_axis), xios(add_file), xios(add_grid), xios(add_field), xios(add_domain),          &
91                     xios(add_fieldtofile), xios(add_variabletofile), xios(add_variabletofield),                  &
92                     xios(add_axisgroup), xios(add_filegroup), xios(add_gridgroup), xios(add_fieldgroup),         & 
93                     xios(add_domaingroup), xios(add_fieldgrouptofile), xios(add_variablegrouptofile),            &
94                     xios(add_variablegrouptofield)
95
96PRIVATE
97
98
99INTERFACE xios(set_attr)
100  MODULE PROCEDURE xios(set_domaingroup_attr_hdl), xios(set_domain_attr_hdl), xios(set_fieldgroup_attr_hdl), &
101                   xios(set_field_attr_hdl),xios(set_variable_attr_hdl), xios(set_variablegroup_attr_hdl),   &
102                   xios(set_file_attr_hdl), xios(set_filegroup_attr_hdl),                                    &
103                   xios(set_grid_attr_hdl), xios(set_gridgroup_attr_hdl), xios(set_axis_attr_hdl) ,          &
104                   xios(set_axisgroup_attr_hdl), xios(set_context_attr_hdl)
105END INTERFACE xios(set_attr)
106
107INTERFACE xios(get_attr)
108  MODULE PROCEDURE xios(get_domaingroup_attr_hdl), xios(get_domain_attr_hdl), xios(get_fieldgroup_attr_hdl), &
109                   xios(get_field_attr_hdl), xios(get_variable_attr_hdl), xios(get_variablegroup_attr_hdl),  &
110                   xios(get_file_attr_hdl), xios(get_filegroup_attr_hdl),                                    &
111                   xios(get_grid_attr_hdl), xios(get_gridgroup_attr_hdl), xios(get_axis_attr_hdl) ,          &
112                   xios(get_axisgroup_attr_hdl), xios(get_context_attr_hdl)
113END INTERFACE xios(get_attr)
114
115INTERFACE xios(is_defined_attr)
116  MODULE PROCEDURE xios(is_defined_domaingroup_attr_hdl), xios(is_defined_domain_attr_hdl), xios(is_defined_fieldgroup_attr_hdl), &
117                   xios(is_defined_field_attr_hdl), xios(is_defined_variable_attr_hdl), xios(is_defined_variablegroup_attr_hdl),  &
118                   xios(is_defined_file_attr_hdl), xios(is_defined_filegroup_attr_hdl),                                           &
119                   xios(is_defined_grid_attr_hdl), xios(is_defined_gridgroup_attr_hdl), xios(is_defined_axis_attr_hdl) ,          &
120                   xios(is_defined_axisgroup_attr_hdl), xios(is_defined_context_attr_hdl)
121END INTERFACE xios(is_defined_attr)
122
123INTERFACE xios(get_handle)
124  MODULE PROCEDURE  xios(get_context_handle), xios(get_domain_handle), xios(get_domaingroup_handle),        &
125                    xios(get_file_handle), xios(get_filegroup_handle), xios(get_grid_handle),               &
126                    xios(get_gridgroup_handle), xios(get_axis_handle), xios(get_axisgroup_handle),          &
127                    xios(get_field_handle), xios(get_fieldgroup_handle),xios(get_variable_handle),          &
128                    xios(get_variablegroup_handle)
129END INTERFACE xios(get_handle) 
130
131INTERFACE xios(add_child)
132  MODULE PROCEDURE xios(add_axis), xios(add_file), xios(add_grid), xios(add_field), xios(add_domain),                &
133                   xios(add_fieldtofile), xios(add_variabletofile), xios(add_variabletofield), xios(add_axisgroup),  &
134                   xios(add_filegroup), xios(add_gridgroup), xios(add_fieldgroup), xios(add_domaingroup),            &
135                   xios(add_fieldgrouptofile), xios(add_variablegrouptofile),xios(add_variablegrouptofield) 
136END INTERFACE xios(add_child)
137
138
139INTERFACE xios(send_field)
140  MODULE PROCEDURE  xios(send_field_r8_1d), xios(send_field_r8_2d), xios(send_field_r8_3d),              &
141                    xios(send_field_r4_1d), xios(send_field_r4_2d), xios(send_field_r4_3d)
142END INTERFACE xios(send_field)
143
144INTERFACE xios(field_is_active)
145  MODULE PROCEDURE xios(field_is_active_id),xios(field_is_active_hdl)
146END INTERFACE
147 
148 PUBLIC :: txios(domain), txios(domaingroup),txios(field), txios(fieldgroup),txios(file), txios(filegroup), &
149          txios(grid), txios(gridgroup), txios(axis), txios(axisgroup),txios(context), txios(date),txios(time) 
150
151 PUBLIC :: xios(set_attr), xios(set_domain_attr), xios(set_domaingroup_attr), xios(set_fieldgroup_attr), &
152          xios(set_field_attr), xios(set_file_attr), xios(set_filegroup_attr),          &
153          xios(set_grid_attr), xios(set_gridgroup_attr), xios(set_axis_attr) ,          &
154          xios(set_axisgroup_attr), xios(set_context_attr)
155
156 PUBLIC :: xios(get_attr), xios(get_domain_attr), xios(get_domaingroup_attr), xios(get_fieldgroup_attr), &
157          xios(get_field_attr), xios(get_file_attr), xios(get_filegroup_attr),          &
158          xios(get_grid_attr), xios(get_gridgroup_attr), xios(get_axis_attr) ,          &
159          xios(get_axisgroup_attr), xios(get_context_attr)
160
161PUBLIC :: xios(is_defined_attr), xios(is_defined_domain_attr), xios(is_defined_domaingroup_attr), xios(is_defined_fieldgroup_attr), &
162          xios(is_defined_field_attr), xios(is_defined_file_attr), xios(is_defined_filegroup_attr),          &
163          xios(is_defined_grid_attr), xios(is_defined_gridgroup_attr), xios(is_defined_axis_attr) ,          &
164          xios(is_defined_axisgroup_attr), xios(is_defined_context_attr)
165
166 PUBLIC :: xios(get_handle) 
167 PUBLIC :: xios(add_child) 
168
169 PUBLIC :: xios(is_valid_context),xios(is_valid_domain), xios(is_valid_domaingroup),xios(is_valid_field),        &
170          xios(is_valid_fieldgroup), xios(is_valid_file), xios(is_valid_filegroup), xios(is_valid_grid),         &
171          xios(is_valid_gridgroup), xios(is_valid_axis), xios(is_valid_axisgroup)
172         
173 PUBLIC :: xios(set_current_context) 
174 PUBLIC :: xios(set_timestep),xios(update_calendar)
175 PUBLIC :: xios(initialize), xios(init_server), xios(finalize), xios(context_initialize),xios(context_is_initialized), &
176           xios(solve_inheritance), xios(close_context_definition), xios(context_finalize), xios(send_field),          &
177           xios(field_is_active)
178
179END MODULE XIOS
Note: See TracBrowser for help on using the repository browser.