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

Last change on this file since 445 was 445, checked in by ymipsl, 11 years ago

Add possibility to make inheritance of attributes and reference before closing the context definition.
New fortran fonction : xios_solve inheritance()
After this call, the value of attribute have the inherited value of their parent.

YM

File size: 9.4 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(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 ifile, ONLY : txios(file), txios(filegroup), xios(get_file_handle),    & 
46                  xios(get_filegroup_handle), xios(is_valid_file), xios(is_valid_filegroup)
47
48USE ifile_attr, ONLY : xios(set_file_attr),xios(set_file_attr_hdl), &
49                       xios(get_file_attr),xios(get_file_attr_hdl), &
50                       xios(is_defined_file_attr),xios(is_defined_file_attr_hdl)
51
52USE ifilegroup_attr, ONLY : xios(set_filegroup_attr), xios(set_filegroup_attr_hdl), &
53                            xios(get_filegroup_attr), xios(get_filegroup_attr_hdl), &
54                            xios(is_defined_filegroup_attr), xios(is_defined_filegroup_attr_hdl)
55                 
56USE igrid, ONLY : txios(grid), txios(gridgroup), xios(get_grid_handle),     &
57                  xios(get_gridgroup_handle), xios(is_valid_grid), xios(is_valid_gridgroup) 
58
59USE igrid_attr, ONLY : xios(set_grid_attr_hdl), xios(set_grid_attr), &
60                       xios(get_grid_attr_hdl), xios(get_grid_attr), &
61                       xios(is_defined_grid_attr_hdl), xios(is_defined_grid_attr)
62
63USE igridgroup_attr, ONLY : xios(set_gridgroup_attr), xios(set_gridgroup_attr_hdl),  &
64                            xios(get_gridgroup_attr), xios(get_gridgroup_attr_hdl), &
65                            xios(is_defined_gridgroup_attr), xios(is_defined_gridgroup_attr_hdl)
66
67USE iaxis, ONLY : txios(axis), txios(axisgroup), xios(get_axis_handle),     &
68                  xios(get_axisgroup_handle), xios(is_valid_axis), xios(is_valid_axisgroup) 
69
70USE iaxis_attr, ONLY :  xios(set_axis_attr), xios(set_axis_attr_hdl), &
71                        xios(get_axis_attr), xios(get_axis_attr_hdl), &
72                        xios(is_defined_axis_attr), xios(is_defined_axis_attr_hdl)
73
74USE iaxisgroup_attr, ONLY : xios(set_axisgroup_attr), xios(set_axisgroup_attr_hdl), &
75                            xios(get_axisgroup_attr), xios(get_axisgroup_attr_hdl), &
76                            xios(is_defined_axisgroup_attr), xios(is_defined_axisgroup_attr_hdl)
77
78USE ixml_tree, ONLY : xios(add_axis), xios(add_file), xios(add_grid), xios(add_field), xios(add_domain),          &
79                     xios(add_fieldtofile), xios(add_axisgroup), xios(add_filegroup), xios(add_gridgroup), &
80                     xios(add_fieldgroup), xios(add_domaingroup), xios(add_fieldgrouptofile)
81                 
82
83PRIVATE
84
85
86INTERFACE xios(set_attr)
87  MODULE PROCEDURE xios(set_domaingroup_attr_hdl), xios(set_domain_attr_hdl), xios(set_fieldgroup_attr_hdl), &
88                   xios(set_field_attr_hdl), xios(set_file_attr_hdl), xios(set_filegroup_attr_hdl),          &
89                   xios(set_grid_attr_hdl), xios(set_gridgroup_attr_hdl), xios(set_axis_attr_hdl) ,          &
90                   xios(set_axisgroup_attr_hdl), xios(set_context_attr_hdl)
91END INTERFACE xios(set_attr)
92
93INTERFACE xios(get_attr)
94  MODULE PROCEDURE xios(get_domaingroup_attr_hdl), xios(get_domain_attr_hdl), xios(get_fieldgroup_attr_hdl), &
95                   xios(get_field_attr_hdl), xios(get_file_attr_hdl), xios(get_filegroup_attr_hdl),          &
96                   xios(get_grid_attr_hdl), xios(get_gridgroup_attr_hdl), xios(get_axis_attr_hdl) ,          &
97                   xios(get_axisgroup_attr_hdl), xios(get_context_attr_hdl)
98END INTERFACE xios(get_attr)
99
100INTERFACE xios(is_defined_attr)
101  MODULE PROCEDURE xios(is_defined_domaingroup_attr_hdl), xios(is_defined_domain_attr_hdl), xios(is_defined_fieldgroup_attr_hdl), &
102                   xios(is_defined_field_attr_hdl), xios(is_defined_file_attr_hdl), xios(is_defined_filegroup_attr_hdl),          &
103                   xios(is_defined_grid_attr_hdl), xios(is_defined_gridgroup_attr_hdl), xios(is_defined_axis_attr_hdl) ,          &
104                   xios(is_defined_axisgroup_attr_hdl), xios(is_defined_context_attr_hdl)
105END INTERFACE xios(is_defined_attr)
106
107INTERFACE xios(get_handle)
108  MODULE PROCEDURE  xios(get_context_handle), xios(get_domain_handle), xios(get_domaingroup_handle),        &
109                    xios(get_file_handle), xios(get_filegroup_handle), xios(get_grid_handle),               &
110                    xios(get_gridgroup_handle), xios(get_axis_handle), xios(get_axisgroup_handle),          &
111                    xios(get_field_handle), xios(get_fieldgroup_handle)
112END INTERFACE xios(get_handle) 
113
114INTERFACE xios(add_child)
115  MODULE PROCEDURE xios(add_axis), xios(add_file), xios(add_grid), xios(add_field), xios(add_domain),    &
116                   xios(add_fieldtofile), xios(add_axisgroup), xios(add_filegroup), xios(add_gridgroup), &
117                   xios(add_fieldgroup), xios(add_domaingroup), xios(add_fieldgrouptofile)
118END INTERFACE xios(add_child)
119
120
121INTERFACE xios(send_field)
122  MODULE PROCEDURE  xios(send_field_r8_1d), xios(send_field_r8_2d), xios(send_field_r8_3d),              &
123                    xios(send_field_r4_1d), xios(send_field_r4_2d), xios(send_field_r4_3d)
124END INTERFACE xios(send_field)
125
126INTERFACE xios(field_is_active)
127  MODULE PROCEDURE xios(field_is_active_id),xios(field_is_active_hdl)
128END INTERFACE
129 
130 PUBLIC :: txios(domain), txios(domaingroup),txios(field), txios(fieldgroup),txios(file), txios(filegroup), &
131          txios(grid), txios(gridgroup), txios(axis), txios(axisgroup),txios(context), txios(date),txios(time) 
132
133 PUBLIC :: xios(set_attr), xios(set_domain_attr), xios(set_domaingroup_attr), xios(set_fieldgroup_attr), &
134          xios(set_field_attr), xios(set_file_attr), xios(set_filegroup_attr),          &
135          xios(set_grid_attr), xios(set_gridgroup_attr), xios(set_axis_attr) ,          &
136          xios(set_axisgroup_attr), xios(set_context_attr)
137
138 PUBLIC :: xios(get_attr), xios(get_domain_attr), xios(get_domaingroup_attr), xios(get_fieldgroup_attr), &
139          xios(get_field_attr), xios(get_file_attr), xios(get_filegroup_attr),          &
140          xios(get_grid_attr), xios(get_gridgroup_attr), xios(get_axis_attr) ,          &
141          xios(get_axisgroup_attr), xios(get_context_attr)
142
143PUBLIC :: xios(is_defined_attr), xios(is_defined_domain_attr), xios(is_defined_domaingroup_attr), xios(is_defined_fieldgroup_attr), &
144          xios(is_defined_field_attr), xios(is_defined_file_attr), xios(is_defined_filegroup_attr),          &
145          xios(is_defined_grid_attr), xios(is_defined_gridgroup_attr), xios(is_defined_axis_attr) ,          &
146          xios(is_defined_axisgroup_attr), xios(is_defined_context_attr)
147
148 PUBLIC :: xios(get_handle) 
149 PUBLIC :: xios(add_child) 
150
151 PUBLIC :: xios(is_valid_context),xios(is_valid_domain), xios(is_valid_domaingroup),xios(is_valid_field),        &
152          xios(is_valid_fieldgroup), xios(is_valid_file), xios(is_valid_filegroup), xios(is_valid_grid),         &
153          xios(is_valid_gridgroup), xios(is_valid_axis), xios(is_valid_axisgroup)
154         
155 PUBLIC :: xios(set_current_context) 
156 PUBLIC :: xios(set_timestep),xios(update_calendar)
157 PUBLIC :: xios(initialize), xios(init_server), xios(finalize), xios(context_initialize),xios(solve_inheritance), &
158           xios(close_context_definition), xios(context_finalize), xios(send_field),xios(field_is_active)
159
160END MODULE XIOS
Note: See TracBrowser for help on using the repository browser.