source: XIOS/trunk/src/interface/fortran/ixml_tree.F90 @ 934

Last change on this file since 934 was 934, checked in by mhnguyen, 4 years ago

Adding new transformation: Compute_connectivity_domain

Test
+) On Curie
+) Test passes

  • Property copyright set to
    Software name : XIOS (Xml I/O Server)
    http://forge.ipsl.jussieu.fr/ioserver
    Creation date : January 2009
    Licence : CeCCIL version2
    see license file in root directory : Licence_CeCILL_V2-en.txt
    or http://www.cecill.info/licences/Licence_CeCILL_V2-en.html
    Holder : CEA/LSCE (Laboratoire des Sciences du CLimat et de l'Environnement)
    CNRS/IPSL (Institut Pierre Simon Laplace)
    Project Manager : Yann Meurdesoif
    yann.meurdesoif@cea.fr
File size: 29.9 KB
Line 
1#include "xios_fortran_prefix.hpp"
2
3MODULE IXML_TREE
4   USE, INTRINSIC :: ISO_C_BINDING
5   USE ISCALAR
6   USE IAXIS
7   USE IFILE
8   USE IFIELD
9   USE IGRID
10   USE IDOMAIN
11   USE IVARIABLE
12   USE IZOOM_DOMAIN
13   USE IINTERPOLATE_DOMAIN
14   USE IGENERATE_RECTILINEAR_DOMAIN
15   USE ICOMPUTE_CONNECTIVITY_DOMAIN
16   USE IZOOM_AXIS
17   USE IINTERPOLATE_AXIS
18   USE IINVERSE_AXIS
19   USE IREDUCE_AXIS_TO_SCALAR
20
21   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99
22
23      SUBROUTINE cxios_xml_tree_add_field(parent_, child_, child_id, child_id_size) BIND(C)
24         USE ISO_C_BINDING
25         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
26         INTEGER  (kind = C_INTPTR_T)               :: child_
27         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
28         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
29      END SUBROUTINE cxios_xml_tree_add_field
30
31      SUBROUTINE cxios_xml_tree_add_grid(parent_, child_, child_id, child_id_size) BIND(C)
32         USE ISO_C_BINDING
33         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
34         INTEGER  (kind = C_INTPTR_T)               :: child_
35         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
36         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
37      END SUBROUTINE cxios_xml_tree_add_grid
38
39      SUBROUTINE cxios_xml_tree_add_file(parent_, child_, child_id, child_id_size) BIND(C)
40         USE ISO_C_BINDING
41         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
42         INTEGER  (kind = C_INTPTR_T)               :: child_
43         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
44         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
45      END SUBROUTINE cxios_xml_tree_add_file
46
47      SUBROUTINE cxios_xml_tree_add_scalar(parent_, child_, child_id, child_id_size) BIND(C)
48         USE ISO_C_BINDING
49         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
50         INTEGER  (kind = C_INTPTR_T)               :: child_
51         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
52         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
53      END SUBROUTINE cxios_xml_tree_add_scalar
54
55      SUBROUTINE cxios_xml_tree_add_axis(parent_, child_, child_id, child_id_size) BIND(C)
56         USE ISO_C_BINDING
57         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
58         INTEGER  (kind = C_INTPTR_T)               :: child_
59         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
60         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
61      END SUBROUTINE cxios_xml_tree_add_axis
62
63      SUBROUTINE cxios_xml_tree_add_domain(parent_, child_, child_id, child_id_size) BIND(C)
64         USE ISO_C_BINDING
65         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
66         INTEGER  (kind = C_INTPTR_T)               :: child_
67         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
68         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
69      END SUBROUTINE cxios_xml_tree_add_domain
70
71      SUBROUTINE cxios_xml_tree_add_fieldtofile(parent_, child_, child_id, child_id_size) BIND(C)
72         USE ISO_C_BINDING
73         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
74         INTEGER  (kind = C_INTPTR_T)               :: child_
75         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
76         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
77      END SUBROUTINE cxios_xml_tree_add_fieldtofile
78
79      SUBROUTINE cxios_xml_tree_add_variabletofile(parent_, child_, child_id, child_id_size) BIND(C)
80         USE ISO_C_BINDING
81         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
82         INTEGER  (kind = C_INTPTR_T)               :: child_
83         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
84         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
85      END SUBROUTINE cxios_xml_tree_add_variabletofile
86
87
88      SUBROUTINE cxios_xml_tree_add_variabletofield(parent_, child_, child_id, child_id_size) BIND(C)
89         USE ISO_C_BINDING
90         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
91         INTEGER  (kind = C_INTPTR_T)               :: child_
92         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
93         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
94      END SUBROUTINE cxios_xml_tree_add_variabletofield
95
96
97      SUBROUTINE cxios_xml_tree_add_fieldgroup(parent_, child_, child_id, child_id_size) BIND(C)
98         USE ISO_C_BINDING
99         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
100         INTEGER  (kind = C_INTPTR_T)               :: child_
101         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
102         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
103      END SUBROUTINE cxios_xml_tree_add_fieldgroup
104
105      SUBROUTINE cxios_xml_tree_add_gridgroup(parent_, child_, child_id, child_id_size) BIND(C)
106         USE ISO_C_BINDING
107         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
108         INTEGER  (kind = C_INTPTR_T)               :: child_
109         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
110         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
111      END SUBROUTINE cxios_xml_tree_add_gridgroup
112
113      SUBROUTINE cxios_xml_tree_add_filegroup(parent_, child_, child_id, child_id_size) BIND(C)
114         USE ISO_C_BINDING
115         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
116         INTEGER  (kind = C_INTPTR_T)               :: child_
117         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
118         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
119      END SUBROUTINE cxios_xml_tree_add_filegroup
120
121      SUBROUTINE cxios_xml_tree_add_scalargroup(parent_, child_, child_id, child_id_size) BIND(C)
122         USE ISO_C_BINDING
123         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
124         INTEGER  (kind = C_INTPTR_T)               :: child_
125         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
126         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
127      END SUBROUTINE cxios_xml_tree_add_scalargroup
128
129      SUBROUTINE cxios_xml_tree_add_axisgroup(parent_, child_, child_id, child_id_size) BIND(C)
130         USE ISO_C_BINDING
131         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
132         INTEGER  (kind = C_INTPTR_T)               :: child_
133         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
134         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
135      END SUBROUTINE cxios_xml_tree_add_axisgroup
136
137      SUBROUTINE cxios_xml_tree_add_domaingroup(parent_, child_, child_id, child_id_size) BIND(C)
138         USE ISO_C_BINDING
139         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
140         INTEGER  (kind = C_INTPTR_T)               :: child_
141         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
142         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
143      END SUBROUTINE cxios_xml_tree_add_domaingroup
144
145      SUBROUTINE cxios_xml_tree_add_fieldgrouptofile(parent_, child_, child_id, child_id_size) BIND(C)
146         USE ISO_C_BINDING
147         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
148         INTEGER  (kind = C_INTPTR_T)               :: child_
149         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
150         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
151      END SUBROUTINE cxios_xml_tree_add_fieldgrouptofile
152
153      SUBROUTINE cxios_xml_tree_add_variablegrouptofile(parent_, child_, child_id, child_id_size) BIND(C)
154         USE ISO_C_BINDING
155         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
156         INTEGER  (kind = C_INTPTR_T)               :: child_
157         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
158         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
159      END SUBROUTINE cxios_xml_tree_add_variablegrouptofile
160
161      SUBROUTINE cxios_xml_tree_add_variablegrouptofield(parent_, child_, child_id, child_id_size) BIND(C)
162         USE ISO_C_BINDING
163         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
164         INTEGER  (kind = C_INTPTR_T)               :: child_
165         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
166         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
167      END SUBROUTINE cxios_xml_tree_add_variablegrouptofield
168
169      SUBROUTINE cxios_xml_tree_add_scalartogrid(parent_, child_, child_id, child_id_size) BIND(C)
170         USE ISO_C_BINDING
171         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
172         INTEGER  (kind = C_INTPTR_T)               :: child_
173         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
174         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
175      END SUBROUTINE cxios_xml_tree_add_scalartogrid
176
177      SUBROUTINE cxios_xml_tree_add_axistogrid(parent_, child_, child_id, child_id_size) BIND(C)
178         USE ISO_C_BINDING
179         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
180         INTEGER  (kind = C_INTPTR_T)               :: child_
181         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
182         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
183      END SUBROUTINE cxios_xml_tree_add_axistogrid
184
185      SUBROUTINE cxios_xml_tree_add_domaintogrid(parent_, child_, child_id, child_id_size) BIND(C)
186         USE ISO_C_BINDING
187         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
188         INTEGER  (kind = C_INTPTR_T)               :: child_
189         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
190         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
191      END SUBROUTINE cxios_xml_tree_add_domaintogrid
192
193      SUBROUTINE cxios_xml_tree_add_zoomdomaintodomain(parent_, child_, child_id, child_id_size) BIND(C)
194         USE ISO_C_BINDING
195         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
196         INTEGER  (kind = C_INTPTR_T)               :: child_
197         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
198         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
199      END SUBROUTINE cxios_xml_tree_add_zoomdomaintodomain
200
201      SUBROUTINE cxios_xml_tree_add_interpolatedomaintodomain(parent_, child_, child_id, child_id_size) BIND(C)
202         USE ISO_C_BINDING
203         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
204         INTEGER  (kind = C_INTPTR_T)               :: child_
205         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
206         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
207      END SUBROUTINE cxios_xml_tree_add_interpolatedomaintodomain
208
209      SUBROUTINE cxios_xml_tree_add_generatedomaintodomain(parent_, child_, child_id, child_id_size) BIND(C)
210         USE ISO_C_BINDING
211         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
212         INTEGER  (kind = C_INTPTR_T)               :: child_
213         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
214         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
215      END SUBROUTINE cxios_xml_tree_add_generatedomaintodomain
216
217      SUBROUTINE cxios_xml_tree_add_computeconnectivitydomaintodomain(parent_, child_, child_id, child_id_size) BIND(C)
218         USE ISO_C_BINDING
219         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
220         INTEGER  (kind = C_INTPTR_T)               :: child_
221         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
222         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
223      END SUBROUTINE cxios_xml_tree_add_computeconnectivitydomaintodomain
224
225      SUBROUTINE cxios_xml_tree_add_zoomaxistoaxis(parent_, child_, child_id, child_id_size) BIND(C)
226         USE ISO_C_BINDING
227         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
228         INTEGER  (kind = C_INTPTR_T)               :: child_
229         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
230         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
231      END SUBROUTINE cxios_xml_tree_add_zoomaxistoaxis
232
233      SUBROUTINE cxios_xml_tree_add_interpolateaxistoaxis(parent_, child_, child_id, child_id_size) BIND(C)
234         USE ISO_C_BINDING
235         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
236         INTEGER  (kind = C_INTPTR_T)               :: child_
237         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
238         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
239      END SUBROUTINE cxios_xml_tree_add_interpolateaxistoaxis
240
241      SUBROUTINE cxios_xml_tree_add_inverseaxistoaxis(parent_, child_, child_id, child_id_size) BIND(C)
242         USE ISO_C_BINDING
243         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
244         INTEGER  (kind = C_INTPTR_T)               :: child_
245         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
246         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
247      END SUBROUTINE cxios_xml_tree_add_inverseaxistoaxis
248
249      SUBROUTINE cxios_xml_tree_add_reduceaxistoscalartoscalar(parent_, child_, child_id, child_id_size) BIND(C)
250         USE ISO_C_BINDING
251         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
252         INTEGER  (kind = C_INTPTR_T)               :: child_
253         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
254         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
255      END SUBROUTINE cxios_xml_tree_add_reduceaxistoscalartoscalar
256
257      SUBROUTINE cxios_xml_tree_show(filename, filename_size) BIND(C)
258         USE ISO_C_BINDING
259         CHARACTER(kind = C_CHAR), DIMENSION(*) :: filename
260         INTEGER  (kind = C_INT) , VALUE        :: filename_size
261      END SUBROUTINE cxios_xml_tree_show
262
263      SUBROUTINE cxios_xml_parse_file(filename, filename_size) BIND(C)
264         USE ISO_C_BINDING
265         CHARACTER(kind = C_CHAR), DIMENSION(*) :: filename
266         INTEGER  (kind = C_INT) , VALUE        :: filename_size
267      END SUBROUTINE cxios_xml_parse_file
268
269      SUBROUTINE cxios_xml_parse_string(xmlcontent, xmlcontent_size) BIND(C)
270         USE ISO_C_BINDING
271         CHARACTER(kind = C_CHAR), DIMENSION(*) :: xmlcontent
272         INTEGER  (kind = C_INT) , VALUE        :: xmlcontent_size
273      END SUBROUTINE cxios_xml_parse_string
274
275   END INTERFACE
276
277
278   CONTAINS ! Fonctions disponibles pour les utilisateurs.
279
280   SUBROUTINE xios(add_scalar)(parent_hdl, child_hdl, child_id)
281      TYPE(txios(scalargroup))     , INTENT(IN) :: parent_hdl
282      TYPE(txios(scalar))          , INTENT(OUT):: child_hdl
283      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
284
285      IF (PRESENT(child_id)) THEN
286         CALL cxios_xml_tree_add_scalar(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
287      ELSE
288         CALL cxios_xml_tree_add_scalar(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
289      END IF
290
291   END SUBROUTINE xios(add_scalar)
292
293   SUBROUTINE xios(add_axis)(parent_hdl, child_hdl, child_id)
294      TYPE(txios(axisgroup))     , INTENT(IN) :: parent_hdl
295      TYPE(txios(axis))          , INTENT(OUT):: child_hdl
296      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
297
298      IF (PRESENT(child_id)) THEN
299         CALL cxios_xml_tree_add_axis(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
300      ELSE
301         CALL cxios_xml_tree_add_axis(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
302      END IF
303
304   END SUBROUTINE xios(add_axis)
305
306   SUBROUTINE xios(add_file)(parent_hdl, child_hdl, child_id)
307      TYPE(txios(filegroup))      , INTENT(IN) :: parent_hdl
308      TYPE(txios(file))           , INTENT(OUT):: child_hdl
309      CHARACTER(len = *), OPTIONAL, INTENT(IN)  :: child_id
310
311      IF (PRESENT(child_id)) THEN
312         CALL cxios_xml_tree_add_file(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
313      ELSE
314         CALL cxios_xml_tree_add_file(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
315      END IF
316
317   END SUBROUTINE xios(add_file)
318
319   SUBROUTINE xios(add_grid)(parent_hdl, child_hdl, child_id)
320      TYPE(txios(gridgroup))     , INTENT(IN) :: parent_hdl
321      TYPE(txios(grid))          , INTENT(OUT):: child_hdl
322      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
323      IF (PRESENT(child_id)) THEN
324         CALL cxios_xml_tree_add_grid(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
325      ELSE
326         CALL cxios_xml_tree_add_grid(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
327      END IF
328
329   END SUBROUTINE xios(add_grid)
330
331
332   SUBROUTINE xios(add_field)(parent_hdl, child_hdl, child_id)
333      TYPE(txios(fieldgroup))     , INTENT(IN) :: parent_hdl
334      TYPE(txios(field))          , INTENT(OUT):: child_hdl
335      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
336
337      IF (PRESENT(child_id)) THEN
338         CALL cxios_xml_tree_add_field(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
339      ELSE
340         CALL cxios_xml_tree_add_field(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
341      END IF
342
343   END SUBROUTINE xios(add_field)
344
345
346   SUBROUTINE xios(add_domain)(parent_hdl, child_hdl, child_id)
347      TYPE(txios(domaingroup))     , INTENT(IN) :: parent_hdl
348      TYPE(txios(domain))     , INTENT(OUT):: child_hdl
349      CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id
350
351      IF (PRESENT(child_id)) THEN
352         CALL cxios_xml_tree_add_domain(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
353      ELSE
354         CALL cxios_xml_tree_add_domain(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
355      END IF
356
357   END SUBROUTINE xios(add_domain)
358
359   SUBROUTINE xios(add_fieldtofile)(parent_hdl, child_hdl, child_id)
360      TYPE(txios(file))            , INTENT(IN) :: parent_hdl
361      TYPE(txios(field))           , INTENT(OUT):: child_hdl
362      CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id
363
364      IF (PRESENT(child_id)) THEN
365         CALL cxios_xml_tree_add_fieldtofile(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
366      ELSE
367         CALL cxios_xml_tree_add_fieldtofile(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
368      END IF
369
370   END SUBROUTINE xios(add_fieldtofile)
371
372   SUBROUTINE xios(add_variabletofile)(parent_hdl, child_hdl, child_id)
373      TYPE(txios(file))            , INTENT(IN) :: parent_hdl
374      TYPE(txios(variable))        , INTENT(OUT):: child_hdl
375      CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id
376
377      IF (PRESENT(child_id)) THEN
378         CALL cxios_xml_tree_add_variabletofile(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
379      ELSE
380         CALL cxios_xml_tree_add_variabletofile(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
381      END IF
382
383   END SUBROUTINE xios(add_variabletofile)
384
385   SUBROUTINE xios(add_variabletofield)(parent_hdl, child_hdl, child_id)
386      TYPE(txios(field))            , INTENT(IN) :: parent_hdl
387      TYPE(txios(variable))         , INTENT(OUT):: child_hdl
388      CHARACTER(len = *), OPTIONAL  , INTENT(IN) :: child_id
389
390      IF (PRESENT(child_id)) THEN
391         CALL cxios_xml_tree_add_variabletofield(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
392      ELSE
393         CALL cxios_xml_tree_add_variabletofield(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
394      END IF
395
396   END SUBROUTINE xios(add_variabletofield)
397
398   SUBROUTINE xios(add_scalargroup)(parent_hdl, child_hdl, child_id)
399      TYPE(txios(scalargroup))      , INTENT(IN) :: parent_hdl
400      TYPE(txios(scalargroup))      , INTENT(OUT):: child_hdl
401      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
402
403      IF (PRESENT(child_id)) THEN
404         CALL cxios_xml_tree_add_scalargroup(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
405      ELSE
406         CALL cxios_xml_tree_add_scalargroup(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
407      END IF
408
409   END SUBROUTINE xios(add_scalargroup)
410
411   SUBROUTINE xios(add_axisgroup)(parent_hdl, child_hdl, child_id)
412      TYPE(txios(axisgroup))      , INTENT(IN) :: parent_hdl
413      TYPE(txios(axisgroup))      , INTENT(OUT):: child_hdl
414      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
415
416      IF (PRESENT(child_id)) THEN
417         CALL cxios_xml_tree_add_axisgroup(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
418      ELSE
419         CALL cxios_xml_tree_add_axisgroup(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
420      END IF
421
422   END SUBROUTINE xios(add_axisgroup)
423
424
425   SUBROUTINE xios(add_filegroup)(parent_hdl, child_hdl, child_id)
426      TYPE(txios(filegroup))      , INTENT(IN) :: parent_hdl
427      TYPE(txios(filegroup))      , INTENT(OUT):: child_hdl
428      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
429
430      IF (PRESENT(child_id)) THEN
431         CALL cxios_xml_tree_add_filegroup(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
432      ELSE
433         CALL cxios_xml_tree_add_filegroup(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
434      END IF
435
436   END SUBROUTINE xios(add_filegroup)
437
438   SUBROUTINE xios(add_gridgroup)(parent_hdl, child_hdl, child_id)
439      TYPE(txios(gridgroup))      , INTENT(IN) :: parent_hdl
440      TYPE(txios(gridgroup))      , INTENT(OUT):: child_hdl
441      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
442
443      IF (PRESENT(child_id)) THEN
444         CALL cxios_xml_tree_add_gridgroup(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
445      ELSE
446         CALL cxios_xml_tree_add_gridgroup(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
447      END IF
448
449   END SUBROUTINE xios(add_gridgroup)
450
451
452   SUBROUTINE xios(add_fieldgroup)(parent_hdl, child_hdl, child_id)
453      TYPE(txios(fieldgroup))     , INTENT(IN) :: parent_hdl
454      TYPE(txios(fieldgroup))     , INTENT(OUT):: child_hdl
455      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
456      IF (PRESENT(child_id)) THEN
457         CALL cxios_xml_tree_add_fieldgroup(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
458      ELSE
459         CALL cxios_xml_tree_add_fieldgroup(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
460      END IF
461   END SUBROUTINE xios(add_fieldgroup)
462
463   SUBROUTINE xios(add_domaingroup)(parent_hdl, child_hdl, child_id)
464      TYPE(txios(domaingroup))     , INTENT(IN) :: parent_hdl
465      TYPE(txios(domaingroup))     , INTENT(OUT):: child_hdl
466      CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id
467
468      IF (PRESENT(child_id)) THEN
469         CALL cxios_xml_tree_add_domaingroup(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
470      ELSE
471         CALL cxios_xml_tree_add_domaingroup(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
472      END IF
473
474   END SUBROUTINE xios(add_domaingroup)
475
476   SUBROUTINE xios(add_fieldgrouptofile)(parent_hdl, child_hdl, child_id)
477      TYPE(txios(file))            , INTENT(IN) :: parent_hdl
478      TYPE(txios(fieldgroup))      , INTENT(OUT):: child_hdl
479      CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id
480
481      IF (PRESENT(child_id)) THEN
482         CALL cxios_xml_tree_add_fieldgrouptofile(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
483      ELSE
484         CALL cxios_xml_tree_add_fieldgrouptofile(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
485      END IF
486
487   END SUBROUTINE xios(add_fieldgrouptofile)
488
489   SUBROUTINE xios(add_variablegrouptofile)(parent_hdl, child_hdl, child_id)
490      TYPE(txios(file))            , INTENT(IN) :: parent_hdl
491      TYPE(txios(variablegroup))   , INTENT(OUT):: child_hdl
492      CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id
493
494      IF (PRESENT(child_id)) THEN
495         CALL cxios_xml_tree_add_variablegrouptofile(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
496      ELSE
497         CALL cxios_xml_tree_add_variablegrouptofile(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
498      END IF
499
500   END SUBROUTINE xios(add_variablegrouptofile)
501
502   SUBROUTINE xios(add_variablegrouptofield)(parent_hdl, child_hdl, child_id)
503      TYPE(txios(field))            , INTENT(IN) :: parent_hdl
504      TYPE(txios(variablegroup))    , INTENT(OUT):: child_hdl
505      CHARACTER(len = *), OPTIONAL  , INTENT(IN) :: child_id
506
507      IF (PRESENT(child_id)) THEN
508         CALL cxios_xml_tree_add_variablegrouptofield(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
509      ELSE
510         CALL cxios_xml_tree_add_variablegrouptofield(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
511      END IF
512
513   END SUBROUTINE xios(add_variablegrouptofield)
514
515   SUBROUTINE xios(add_scalartogrid)(parent_hdl, child_hdl, child_id)
516      TYPE(txios(grid))             , INTENT(IN) :: parent_hdl
517      TYPE(txios(scalar))           , INTENT(OUT):: child_hdl
518      CHARACTER(len = *), OPTIONAL  , INTENT(IN) :: child_id
519
520      IF (PRESENT(child_id)) THEN
521         CALL cxios_xml_tree_add_scalartogrid(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
522      ELSE
523         CALL cxios_xml_tree_add_scalartogrid(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
524      END IF
525
526   END SUBROUTINE xios(add_scalartogrid)
527
528   SUBROUTINE xios(add_axistogrid)(parent_hdl, child_hdl, child_id)
529      TYPE(txios(grid))             , INTENT(IN) :: parent_hdl
530      TYPE(txios(axis))             , INTENT(OUT):: child_hdl
531      CHARACTER(len = *), OPTIONAL  , INTENT(IN) :: child_id
532
533      IF (PRESENT(child_id)) THEN
534         CALL cxios_xml_tree_add_axistogrid(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
535      ELSE
536         CALL cxios_xml_tree_add_axistogrid(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
537      END IF
538
539   END SUBROUTINE xios(add_axistogrid)
540
541   SUBROUTINE xios(add_domaintogrid)(parent_hdl, child_hdl, child_id)
542      TYPE(txios(grid))             , INTENT(IN) :: parent_hdl
543      TYPE(txios(domain))           , INTENT(OUT):: child_hdl
544      CHARACTER(len = *), OPTIONAL  , INTENT(IN) :: child_id
545
546      IF (PRESENT(child_id)) THEN
547         CALL cxios_xml_tree_add_domaintogrid(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
548      ELSE
549         CALL cxios_xml_tree_add_domaintogrid(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
550      END IF
551
552   END SUBROUTINE xios(add_domaintogrid)
553
554   SUBROUTINE xios(add_zoomdomaintodomain)(parent_hdl, child_hdl, child_id)
555      TYPE(txios(domain))           , INTENT(IN) :: parent_hdl
556      TYPE(txios(zoom_domain))      , INTENT(OUT):: child_hdl
557      CHARACTER(len = *), OPTIONAL  , INTENT(IN) :: child_id
558
559      IF (PRESENT(child_id)) THEN
560         CALL cxios_xml_tree_add_zoomdomaintodomain(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
561      ELSE
562         CALL cxios_xml_tree_add_zoomdomaintodomain(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
563      END IF
564
565   END SUBROUTINE xios(add_zoomdomaintodomain)
566
567   SUBROUTINE xios(add_interpolatedomaintodomain)(parent_hdl, child_hdl, child_id)
568      TYPE(txios(domain))             , INTENT(IN) :: parent_hdl
569      TYPE(txios(interpolate_domain)) , INTENT(OUT):: child_hdl
570      CHARACTER(len = *), OPTIONAL    , INTENT(IN) :: child_id
571
572      IF (PRESENT(child_id)) THEN
573         CALL cxios_xml_tree_add_interpolatedomaintodomain(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
574      ELSE
575         CALL cxios_xml_tree_add_interpolatedomaintodomain(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
576      END IF
577
578   END SUBROUTINE xios(add_interpolatedomaintodomain)
579
580   SUBROUTINE xios(add_generatedomaintodomain)(parent_hdl, child_hdl, child_id)
581      TYPE(txios(domain))                      , INTENT(IN) :: parent_hdl
582      TYPE(txios(generate_rectilinear_domain)) , INTENT(OUT):: child_hdl
583      CHARACTER(len = *), OPTIONAL             , INTENT(IN) :: child_id
584
585      IF (PRESENT(child_id)) THEN
586         CALL cxios_xml_tree_add_generatedomaintodomain(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
587      ELSE
588         CALL cxios_xml_tree_add_generatedomaintodomain(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
589      END IF
590
591   END SUBROUTINE xios(add_generatedomaintodomain)
592
593   SUBROUTINE xios(add_computeconnectivitydomaintodomain)(parent_hdl, child_hdl, child_id)
594      TYPE(txios(domain))                      , INTENT(IN) :: parent_hdl
595      TYPE(txios(compute_connectivity_domain)) , INTENT(OUT):: child_hdl
596      CHARACTER(len = *), OPTIONAL             , INTENT(IN) :: child_id
597
598      IF (PRESENT(child_id)) THEN
599         CALL cxios_xml_tree_add_computeconnectivitydomaintodomain(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
600      ELSE
601         CALL cxios_xml_tree_add_computeconnectivitydomaintodomain(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
602      END IF
603
604   END SUBROUTINE xios(add_computeconnectivitydomaintodomain)
605
606   SUBROUTINE xios(add_zoomaxistoaxis)(parent_hdl, child_hdl, child_id)
607      TYPE(txios(axis))                      , INTENT(IN) :: parent_hdl
608      TYPE(txios(zoom_axis))                 , INTENT(OUT):: child_hdl
609      CHARACTER(len = *), OPTIONAL           , INTENT(IN) :: child_id
610
611      IF (PRESENT(child_id)) THEN
612         CALL cxios_xml_tree_add_zoomaxistoaxis(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
613      ELSE
614         CALL cxios_xml_tree_add_zoomaxistoaxis(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
615      END IF
616
617   END SUBROUTINE xios(add_zoomaxistoaxis)
618
619   SUBROUTINE xios(add_interpolateaxistoaxis)(parent_hdl, child_hdl, child_id)
620      TYPE(txios(axis))                      , INTENT(IN) :: parent_hdl
621      TYPE(txios(interpolate_axis))          , INTENT(OUT):: child_hdl
622      CHARACTER(len = *), OPTIONAL           , INTENT(IN) :: child_id
623
624      IF (PRESENT(child_id)) THEN
625         CALL cxios_xml_tree_add_interpolateaxistoaxis(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
626      ELSE
627         CALL cxios_xml_tree_add_interpolateaxistoaxis(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
628      END IF
629
630   END SUBROUTINE xios(add_interpolateaxistoaxis)
631
632   SUBROUTINE xios(add_inverseaxistoaxis)(parent_hdl, child_hdl, child_id)
633      TYPE(txios(axis))                      , INTENT(IN) :: parent_hdl
634      TYPE(txios(inverse_axis))              , INTENT(OUT):: child_hdl
635      CHARACTER(len = *), OPTIONAL           , INTENT(IN) :: child_id
636
637      IF (PRESENT(child_id)) THEN
638         CALL cxios_xml_tree_add_inverseaxistoaxis(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
639      ELSE
640         CALL cxios_xml_tree_add_inverseaxistoaxis(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
641      END IF
642
643   END SUBROUTINE xios(add_inverseaxistoaxis)
644
645   SUBROUTINE xios(add_reduceaxistoscalartoscalar)(parent_hdl, child_hdl, child_id)
646      TYPE(txios(axis))                      , INTENT(IN) :: parent_hdl
647      TYPE(txios(reduce_axis_to_scalar))     , INTENT(OUT):: child_hdl
648      CHARACTER(len = *), OPTIONAL           , INTENT(IN) :: child_id
649
650      IF (PRESENT(child_id)) THEN
651         CALL cxios_xml_tree_add_reduceaxistoscalartoscalar(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
652      ELSE
653         CALL cxios_xml_tree_add_reduceaxistoscalartoscalar(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
654      END IF
655
656   END SUBROUTINE xios(add_reduceaxistoscalartoscalar)
657END MODULE IXML_TREE
Note: See TracBrowser for help on using the repository browser.