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

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

Exposing transformation to Fortran interface

+) Export zoom and axis transformation to Fortran interface

Test
+) On Curie
+) All work

  • 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: 24.8 KB
Line 
1#include "xios_fortran_prefix.hpp"
2
3MODULE IXML_TREE
4   USE, INTRINSIC :: ISO_C_BINDING
5   USE IAXIS
6   USE IFILE
7   USE IFIELD
8   USE IGRID
9   USE IDOMAIN
10   USE IVARIABLE
11   USE IZOOM_DOMAIN
12   USE IINTERPOLATE_DOMAIN
13   USE IGENERATE_RECTILINEAR_DOMAIN
14   USE IZOOM_AXIS
15   USE IINTERPOLATE_AXIS
16   USE IINVERSE_AXIS
17
18   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99
19
20      SUBROUTINE cxios_xml_tree_add_field(parent_, child_, child_id, child_id_size) BIND(C)
21         USE ISO_C_BINDING
22         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
23         INTEGER  (kind = C_INTPTR_T)               :: child_
24         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
25         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
26      END SUBROUTINE cxios_xml_tree_add_field
27
28      SUBROUTINE cxios_xml_tree_add_grid(parent_, child_, child_id, child_id_size) BIND(C)
29         USE ISO_C_BINDING
30         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
31         INTEGER  (kind = C_INTPTR_T)               :: child_
32         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
33         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
34      END SUBROUTINE cxios_xml_tree_add_grid
35
36      SUBROUTINE cxios_xml_tree_add_file(parent_, child_, child_id, child_id_size) BIND(C)
37         USE ISO_C_BINDING
38         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
39         INTEGER  (kind = C_INTPTR_T)               :: child_
40         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
41         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
42      END SUBROUTINE cxios_xml_tree_add_file
43
44      SUBROUTINE cxios_xml_tree_add_axis(parent_, child_, child_id, child_id_size) BIND(C)
45         USE ISO_C_BINDING
46         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
47         INTEGER  (kind = C_INTPTR_T)               :: child_
48         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
49         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
50      END SUBROUTINE cxios_xml_tree_add_axis
51
52      SUBROUTINE cxios_xml_tree_add_domain(parent_, child_, child_id, child_id_size) BIND(C)
53         USE ISO_C_BINDING
54         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
55         INTEGER  (kind = C_INTPTR_T)               :: child_
56         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
57         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
58      END SUBROUTINE cxios_xml_tree_add_domain
59
60      SUBROUTINE cxios_xml_tree_add_fieldtofile(parent_, child_, child_id, child_id_size) BIND(C)
61         USE ISO_C_BINDING
62         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
63         INTEGER  (kind = C_INTPTR_T)               :: child_
64         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
65         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
66      END SUBROUTINE cxios_xml_tree_add_fieldtofile
67
68      SUBROUTINE cxios_xml_tree_add_variabletofile(parent_, child_, child_id, child_id_size) BIND(C)
69         USE ISO_C_BINDING
70         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
71         INTEGER  (kind = C_INTPTR_T)               :: child_
72         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
73         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
74      END SUBROUTINE cxios_xml_tree_add_variabletofile
75
76
77      SUBROUTINE cxios_xml_tree_add_variabletofield(parent_, child_, child_id, child_id_size) BIND(C)
78         USE ISO_C_BINDING
79         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
80         INTEGER  (kind = C_INTPTR_T)               :: child_
81         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
82         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
83      END SUBROUTINE cxios_xml_tree_add_variabletofield
84
85
86      SUBROUTINE cxios_xml_tree_add_fieldgroup(parent_, child_, child_id, child_id_size) BIND(C)
87         USE ISO_C_BINDING
88         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
89         INTEGER  (kind = C_INTPTR_T)               :: child_
90         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
91         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
92      END SUBROUTINE cxios_xml_tree_add_fieldgroup
93
94      SUBROUTINE cxios_xml_tree_add_gridgroup(parent_, child_, child_id, child_id_size) BIND(C)
95         USE ISO_C_BINDING
96         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
97         INTEGER  (kind = C_INTPTR_T)               :: child_
98         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
99         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
100      END SUBROUTINE cxios_xml_tree_add_gridgroup
101
102      SUBROUTINE cxios_xml_tree_add_filegroup(parent_, child_, child_id, child_id_size) BIND(C)
103         USE ISO_C_BINDING
104         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
105         INTEGER  (kind = C_INTPTR_T)               :: child_
106         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
107         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
108      END SUBROUTINE cxios_xml_tree_add_filegroup
109
110      SUBROUTINE cxios_xml_tree_add_axisgroup(parent_, child_, child_id, child_id_size) BIND(C)
111         USE ISO_C_BINDING
112         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
113         INTEGER  (kind = C_INTPTR_T)               :: child_
114         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
115         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
116      END SUBROUTINE cxios_xml_tree_add_axisgroup
117
118      SUBROUTINE cxios_xml_tree_add_domaingroup(parent_, child_, child_id, child_id_size) BIND(C)
119         USE ISO_C_BINDING
120         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
121         INTEGER  (kind = C_INTPTR_T)               :: child_
122         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
123         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
124      END SUBROUTINE cxios_xml_tree_add_domaingroup
125
126      SUBROUTINE cxios_xml_tree_add_fieldgrouptofile(parent_, child_, child_id, child_id_size) BIND(C)
127         USE ISO_C_BINDING
128         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
129         INTEGER  (kind = C_INTPTR_T)               :: child_
130         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
131         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
132      END SUBROUTINE cxios_xml_tree_add_fieldgrouptofile
133
134      SUBROUTINE cxios_xml_tree_add_variablegrouptofile(parent_, child_, child_id, child_id_size) BIND(C)
135         USE ISO_C_BINDING
136         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
137         INTEGER  (kind = C_INTPTR_T)               :: child_
138         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
139         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
140      END SUBROUTINE cxios_xml_tree_add_variablegrouptofile
141
142      SUBROUTINE cxios_xml_tree_add_variablegrouptofield(parent_, child_, child_id, child_id_size) BIND(C)
143         USE ISO_C_BINDING
144         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
145         INTEGER  (kind = C_INTPTR_T)               :: child_
146         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
147         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
148      END SUBROUTINE cxios_xml_tree_add_variablegrouptofield
149
150      SUBROUTINE cxios_xml_tree_add_axistogrid(parent_, child_, child_id, child_id_size) BIND(C)
151         USE ISO_C_BINDING
152         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
153         INTEGER  (kind = C_INTPTR_T)               :: child_
154         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
155         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
156      END SUBROUTINE cxios_xml_tree_add_axistogrid
157
158      SUBROUTINE cxios_xml_tree_add_domaintogrid(parent_, child_, child_id, child_id_size) BIND(C)
159         USE ISO_C_BINDING
160         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
161         INTEGER  (kind = C_INTPTR_T)               :: child_
162         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
163         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
164      END SUBROUTINE cxios_xml_tree_add_domaintogrid
165
166      SUBROUTINE cxios_xml_tree_add_zoomdomaintodomain(parent_, child_, child_id, child_id_size) BIND(C)
167         USE ISO_C_BINDING
168         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
169         INTEGER  (kind = C_INTPTR_T)               :: child_
170         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
171         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
172      END SUBROUTINE cxios_xml_tree_add_zoomdomaintodomain
173
174      SUBROUTINE cxios_xml_tree_add_interpolatedomaintodomain(parent_, child_, child_id, child_id_size) BIND(C)
175         USE ISO_C_BINDING
176         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
177         INTEGER  (kind = C_INTPTR_T)               :: child_
178         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
179         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
180      END SUBROUTINE cxios_xml_tree_add_interpolatedomaintodomain
181
182      SUBROUTINE cxios_xml_tree_add_generatedomaintodomain(parent_, child_, child_id, child_id_size) BIND(C)
183         USE ISO_C_BINDING
184         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
185         INTEGER  (kind = C_INTPTR_T)               :: child_
186         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
187         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
188      END SUBROUTINE cxios_xml_tree_add_generatedomaintodomain
189
190      SUBROUTINE cxios_xml_tree_add_zoomaxistoaxis(parent_, child_, child_id, child_id_size) BIND(C)
191         USE ISO_C_BINDING
192         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
193         INTEGER  (kind = C_INTPTR_T)               :: child_
194         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
195         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
196      END SUBROUTINE cxios_xml_tree_add_zoomaxistoaxis
197
198      SUBROUTINE cxios_xml_tree_add_interpolateaxistoaxis(parent_, child_, child_id, child_id_size) BIND(C)
199         USE ISO_C_BINDING
200         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
201         INTEGER  (kind = C_INTPTR_T)               :: child_
202         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
203         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
204      END SUBROUTINE cxios_xml_tree_add_interpolateaxistoaxis
205
206      SUBROUTINE cxios_xml_tree_add_inverseaxistoaxis(parent_, child_, child_id, child_id_size) BIND(C)
207         USE ISO_C_BINDING
208         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
209         INTEGER  (kind = C_INTPTR_T)               :: child_
210         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
211         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
212      END SUBROUTINE cxios_xml_tree_add_inverseaxistoaxis
213
214      SUBROUTINE cxios_xml_tree_show(filename, filename_size) BIND(C)
215         USE ISO_C_BINDING
216         CHARACTER(kind = C_CHAR), DIMENSION(*) :: filename
217         INTEGER  (kind = C_INT) , VALUE        :: filename_size
218      END SUBROUTINE cxios_xml_tree_show
219
220      SUBROUTINE cxios_xml_parse_file(filename, filename_size) BIND(C)
221         USE ISO_C_BINDING
222         CHARACTER(kind = C_CHAR), DIMENSION(*) :: filename
223         INTEGER  (kind = C_INT) , VALUE        :: filename_size
224      END SUBROUTINE cxios_xml_parse_file
225
226      SUBROUTINE cxios_xml_parse_string(xmlcontent, xmlcontent_size) BIND(C)
227         USE ISO_C_BINDING
228         CHARACTER(kind = C_CHAR), DIMENSION(*) :: xmlcontent
229         INTEGER  (kind = C_INT) , VALUE        :: xmlcontent_size
230      END SUBROUTINE cxios_xml_parse_string
231
232   END INTERFACE
233
234
235   CONTAINS ! Fonctions disponibles pour les utilisateurs.
236
237
238   SUBROUTINE xios(add_axis)(parent_hdl, child_hdl, child_id)
239      TYPE(txios(axisgroup))     , INTENT(IN) :: parent_hdl
240      TYPE(txios(axis))          , INTENT(OUT):: child_hdl
241      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
242
243      IF (PRESENT(child_id)) THEN
244         CALL cxios_xml_tree_add_axis(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
245      ELSE
246         CALL cxios_xml_tree_add_axis(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
247      END IF
248
249   END SUBROUTINE xios(add_axis)
250
251   SUBROUTINE xios(add_file)(parent_hdl, child_hdl, child_id)
252      TYPE(txios(filegroup))      , INTENT(IN) :: parent_hdl
253      TYPE(txios(file))           , INTENT(OUT):: child_hdl
254      CHARACTER(len = *), OPTIONAL, INTENT(IN)  :: child_id
255
256      IF (PRESENT(child_id)) THEN
257         CALL cxios_xml_tree_add_file(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
258      ELSE
259         CALL cxios_xml_tree_add_file(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
260      END IF
261
262   END SUBROUTINE xios(add_file)
263
264   SUBROUTINE xios(add_grid)(parent_hdl, child_hdl, child_id)
265      TYPE(txios(gridgroup))     , INTENT(IN) :: parent_hdl
266      TYPE(txios(grid))          , INTENT(OUT):: child_hdl
267      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
268      IF (PRESENT(child_id)) THEN
269         CALL cxios_xml_tree_add_grid(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
270      ELSE
271         CALL cxios_xml_tree_add_grid(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
272      END IF
273
274   END SUBROUTINE xios(add_grid)
275
276
277   SUBROUTINE xios(add_field)(parent_hdl, child_hdl, child_id)
278      TYPE(txios(fieldgroup))     , INTENT(IN) :: parent_hdl
279      TYPE(txios(field))          , INTENT(OUT):: child_hdl
280      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
281
282      IF (PRESENT(child_id)) THEN
283         CALL cxios_xml_tree_add_field(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
284      ELSE
285         CALL cxios_xml_tree_add_field(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
286      END IF
287
288   END SUBROUTINE xios(add_field)
289
290
291   SUBROUTINE xios(add_domain)(parent_hdl, child_hdl, child_id)
292      TYPE(txios(domaingroup))     , INTENT(IN) :: parent_hdl
293      TYPE(txios(domain))     , INTENT(OUT):: child_hdl
294      CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id
295
296      IF (PRESENT(child_id)) THEN
297         CALL cxios_xml_tree_add_domain(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
298      ELSE
299         CALL cxios_xml_tree_add_domain(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
300      END IF
301
302   END SUBROUTINE xios(add_domain)
303
304   SUBROUTINE xios(add_fieldtofile)(parent_hdl, child_hdl, child_id)
305      TYPE(txios(file))            , INTENT(IN) :: parent_hdl
306      TYPE(txios(field))           , INTENT(OUT):: child_hdl
307      CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id
308
309      IF (PRESENT(child_id)) THEN
310         CALL cxios_xml_tree_add_fieldtofile(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
311      ELSE
312         CALL cxios_xml_tree_add_fieldtofile(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
313      END IF
314
315   END SUBROUTINE xios(add_fieldtofile)
316
317   SUBROUTINE xios(add_variabletofile)(parent_hdl, child_hdl, child_id)
318      TYPE(txios(file))            , INTENT(IN) :: parent_hdl
319      TYPE(txios(variable))           , INTENT(OUT):: child_hdl
320      CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id
321
322      IF (PRESENT(child_id)) THEN
323         CALL cxios_xml_tree_add_variabletofile(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
324      ELSE
325         CALL cxios_xml_tree_add_variabletofile(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
326      END IF
327
328   END SUBROUTINE xios(add_variabletofile)
329
330   SUBROUTINE xios(add_variabletofield)(parent_hdl, child_hdl, child_id)
331      TYPE(txios(field))            , INTENT(IN) :: parent_hdl
332      TYPE(txios(variable))           , INTENT(OUT):: child_hdl
333      CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id
334
335      IF (PRESENT(child_id)) THEN
336         CALL cxios_xml_tree_add_variabletofield(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
337      ELSE
338         CALL cxios_xml_tree_add_variabletofield(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
339      END IF
340
341   END SUBROUTINE xios(add_variabletofield)
342
343
344   SUBROUTINE xios(add_axisgroup)(parent_hdl, child_hdl, child_id)
345      TYPE(txios(axisgroup))      , INTENT(IN) :: parent_hdl
346      TYPE(txios(axisgroup))      , INTENT(OUT):: child_hdl
347      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
348
349      IF (PRESENT(child_id)) THEN
350         CALL cxios_xml_tree_add_axisgroup(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
351      ELSE
352         CALL cxios_xml_tree_add_axisgroup(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
353      END IF
354
355   END SUBROUTINE xios(add_axisgroup)
356
357
358   SUBROUTINE xios(add_filegroup)(parent_hdl, child_hdl, child_id)
359      TYPE(txios(filegroup))      , INTENT(IN) :: parent_hdl
360      TYPE(txios(filegroup))      , INTENT(OUT):: child_hdl
361      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
362
363      IF (PRESENT(child_id)) THEN
364         CALL cxios_xml_tree_add_filegroup(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
365      ELSE
366         CALL cxios_xml_tree_add_filegroup(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
367      END IF
368
369   END SUBROUTINE xios(add_filegroup)
370
371   SUBROUTINE xios(add_gridgroup)(parent_hdl, child_hdl, child_id)
372      TYPE(txios(gridgroup))      , INTENT(IN) :: parent_hdl
373      TYPE(txios(gridgroup))      , INTENT(OUT):: child_hdl
374      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
375
376      IF (PRESENT(child_id)) THEN
377         CALL cxios_xml_tree_add_gridgroup(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
378      ELSE
379         CALL cxios_xml_tree_add_gridgroup(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
380      END IF
381
382   END SUBROUTINE xios(add_gridgroup)
383
384
385   SUBROUTINE xios(add_fieldgroup)(parent_hdl, child_hdl, child_id)
386      TYPE(txios(fieldgroup))     , INTENT(IN) :: parent_hdl
387      TYPE(txios(fieldgroup))     , INTENT(OUT):: child_hdl
388      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
389      IF (PRESENT(child_id)) THEN
390         CALL cxios_xml_tree_add_fieldgroup(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
391      ELSE
392         CALL cxios_xml_tree_add_fieldgroup(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
393      END IF
394   END SUBROUTINE xios(add_fieldgroup)
395
396   SUBROUTINE xios(add_domaingroup)(parent_hdl, child_hdl, child_id)
397      TYPE(txios(domaingroup))     , INTENT(IN) :: parent_hdl
398      TYPE(txios(domaingroup))     , INTENT(OUT):: child_hdl
399      CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id
400
401      IF (PRESENT(child_id)) THEN
402         CALL cxios_xml_tree_add_domaingroup(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
403      ELSE
404         CALL cxios_xml_tree_add_domaingroup(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
405      END IF
406
407   END SUBROUTINE xios(add_domaingroup)
408
409   SUBROUTINE xios(add_fieldgrouptofile)(parent_hdl, child_hdl, child_id)
410      TYPE(txios(file))            , INTENT(IN) :: parent_hdl
411      TYPE(txios(fieldgroup))     , INTENT(OUT):: child_hdl
412      CHARACTER(len = *), OPTIONAL  , INTENT(IN) :: child_id
413
414      IF (PRESENT(child_id)) THEN
415         CALL cxios_xml_tree_add_fieldgrouptofile(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
416      ELSE
417         CALL cxios_xml_tree_add_fieldgrouptofile(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
418      END IF
419
420   END SUBROUTINE xios(add_fieldgrouptofile)
421
422   SUBROUTINE xios(add_variablegrouptofile)(parent_hdl, child_hdl, child_id)
423      TYPE(txios(file))            , INTENT(IN) :: parent_hdl
424      TYPE(txios(variablegroup))     , INTENT(OUT):: child_hdl
425      CHARACTER(len = *), OPTIONAL  , INTENT(IN) :: child_id
426
427      IF (PRESENT(child_id)) THEN
428         CALL cxios_xml_tree_add_variablegrouptofile(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
429      ELSE
430         CALL cxios_xml_tree_add_variablegrouptofile(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
431      END IF
432
433   END SUBROUTINE xios(add_variablegrouptofile)
434
435   SUBROUTINE xios(add_variablegrouptofield)(parent_hdl, child_hdl, child_id)
436      TYPE(txios(field))            , INTENT(IN) :: parent_hdl
437      TYPE(txios(variablegroup))     , INTENT(OUT):: child_hdl
438      CHARACTER(len = *), OPTIONAL  , INTENT(IN) :: child_id
439
440      IF (PRESENT(child_id)) THEN
441         CALL cxios_xml_tree_add_variablegrouptofield(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
442      ELSE
443         CALL cxios_xml_tree_add_variablegrouptofield(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
444      END IF
445
446   END SUBROUTINE xios(add_variablegrouptofield)
447
448   SUBROUTINE xios(add_axistogrid)(parent_hdl, child_hdl, child_id)
449      TYPE(txios(grid))             , INTENT(IN) :: parent_hdl
450      TYPE(txios(axis))             , INTENT(OUT):: child_hdl
451      CHARACTER(len = *), OPTIONAL  , INTENT(IN) :: child_id
452
453      IF (PRESENT(child_id)) THEN
454         CALL cxios_xml_tree_add_axistogrid(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
455      ELSE
456         CALL cxios_xml_tree_add_axistogrid(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
457      END IF
458
459   END SUBROUTINE xios(add_axistogrid)
460
461   SUBROUTINE xios(add_domaintogrid)(parent_hdl, child_hdl, child_id)
462      TYPE(txios(grid))             , INTENT(IN) :: parent_hdl
463      TYPE(txios(domain))           , INTENT(OUT):: child_hdl
464      CHARACTER(len = *), OPTIONAL  , INTENT(IN) :: child_id
465
466      IF (PRESENT(child_id)) THEN
467         CALL cxios_xml_tree_add_domaintogrid(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
468      ELSE
469         CALL cxios_xml_tree_add_domaintogrid(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
470      END IF
471
472   END SUBROUTINE xios(add_domaintogrid)
473
474   SUBROUTINE xios(add_zoomdomaintodomain)(parent_hdl, child_hdl, child_id)
475      TYPE(txios(domain))           , INTENT(IN) :: parent_hdl
476      TYPE(txios(zoom_domain))      , INTENT(OUT):: child_hdl
477      CHARACTER(len = *), OPTIONAL  , INTENT(IN) :: child_id
478
479      IF (PRESENT(child_id)) THEN
480         CALL cxios_xml_tree_add_zoomdomaintodomain(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
481      ELSE
482         CALL cxios_xml_tree_add_zoomdomaintodomain(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
483      END IF
484
485   END SUBROUTINE xios(add_zoomdomaintodomain)
486
487   SUBROUTINE xios(add_interpolatedomaintodomain)(parent_hdl, child_hdl, child_id)
488      TYPE(txios(domain))             , INTENT(IN) :: parent_hdl
489      TYPE(txios(interpolate_domain)) , INTENT(OUT):: child_hdl
490      CHARACTER(len = *), OPTIONAL    , INTENT(IN) :: child_id
491
492      IF (PRESENT(child_id)) THEN
493         CALL cxios_xml_tree_add_interpolatedomaintodomain(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
494      ELSE
495         CALL cxios_xml_tree_add_interpolatedomaintodomain(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
496      END IF
497
498   END SUBROUTINE xios(add_interpolatedomaintodomain)
499
500   SUBROUTINE xios(add_generatedomaintodomain)(parent_hdl, child_hdl, child_id)
501      TYPE(txios(domain))                      , INTENT(IN) :: parent_hdl
502      TYPE(txios(generate_rectilinear_domain)) , INTENT(OUT):: child_hdl
503      CHARACTER(len = *), OPTIONAL             , INTENT(IN) :: child_id
504
505      IF (PRESENT(child_id)) THEN
506         CALL cxios_xml_tree_add_generatedomaintodomain(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
507      ELSE
508         CALL cxios_xml_tree_add_generatedomaintodomain(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
509      END IF
510
511   END SUBROUTINE xios(add_generatedomaintodomain)
512
513   SUBROUTINE xios(add_zoomaxistoaxis)(parent_hdl, child_hdl, child_id)
514      TYPE(txios(axis))                      , INTENT(IN) :: parent_hdl
515      TYPE(txios(zoom_axis))                 , INTENT(OUT):: child_hdl
516      CHARACTER(len = *), OPTIONAL           , INTENT(IN) :: child_id
517
518      IF (PRESENT(child_id)) THEN
519         CALL cxios_xml_tree_add_zoomaxistoaxis(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
520      ELSE
521         CALL cxios_xml_tree_add_zoomaxistoaxis(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
522      END IF
523
524   END SUBROUTINE xios(add_zoomaxistoaxis)
525
526   SUBROUTINE xios(add_interpolateaxistoaxis)(parent_hdl, child_hdl, child_id)
527      TYPE(txios(axis))                      , INTENT(IN) :: parent_hdl
528      TYPE(txios(interpolate_axis))          , INTENT(OUT):: child_hdl
529      CHARACTER(len = *), OPTIONAL           , INTENT(IN) :: child_id
530
531      IF (PRESENT(child_id)) THEN
532         CALL cxios_xml_tree_add_interpolateaxistoaxis(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
533      ELSE
534         CALL cxios_xml_tree_add_interpolateaxistoaxis(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
535      END IF
536
537   END SUBROUTINE xios(add_interpolateaxistoaxis)
538
539      SUBROUTINE xios(add_inverseaxistoaxis)(parent_hdl, child_hdl, child_id)
540      TYPE(txios(axis))                      , INTENT(IN) :: parent_hdl
541      TYPE(txios(zoom_axis))                 , INTENT(OUT):: child_hdl
542      CHARACTER(len = *), OPTIONAL           , INTENT(IN) :: child_id
543
544      IF (PRESENT(child_id)) THEN
545         CALL cxios_xml_tree_add_inverseaxistoaxis(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
546      ELSE
547         CALL cxios_xml_tree_add_inverseaxistoaxis(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
548      END IF
549
550   END SUBROUTINE xios(add_inverseaxistoaxis)
551END MODULE IXML_TREE
Note: See TracBrowser for help on using the repository browser.