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

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

Exposing some functions to Fortran interface

+) Allow add axis and domain into grid with Fortran interface
+) Remove some redundant code

Test
+) On Curie
+) test_client 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: 18.4 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
12   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99
13
14      SUBROUTINE cxios_xml_tree_add_field(parent_, child_, child_id, child_id_size) BIND(C)
15         USE ISO_C_BINDING
16         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
17         INTEGER  (kind = C_INTPTR_T)               :: child_
18         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
19         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
20      END SUBROUTINE cxios_xml_tree_add_field
21
22      SUBROUTINE cxios_xml_tree_add_grid(parent_, child_, child_id, child_id_size) BIND(C)
23         USE ISO_C_BINDING
24         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
25         INTEGER  (kind = C_INTPTR_T)               :: child_
26         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
27         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
28      END SUBROUTINE cxios_xml_tree_add_grid
29
30      SUBROUTINE cxios_xml_tree_add_file(parent_, child_, child_id, child_id_size) BIND(C)
31         USE ISO_C_BINDING
32         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
33         INTEGER  (kind = C_INTPTR_T)               :: child_
34         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
35         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
36      END SUBROUTINE cxios_xml_tree_add_file
37
38      SUBROUTINE cxios_xml_tree_add_axis(parent_, child_, child_id, child_id_size) BIND(C)
39         USE ISO_C_BINDING
40         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
41         INTEGER  (kind = C_INTPTR_T)               :: child_
42         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
43         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
44      END SUBROUTINE cxios_xml_tree_add_axis
45
46      SUBROUTINE cxios_xml_tree_add_domain(parent_, child_, child_id, child_id_size) BIND(C)
47         USE ISO_C_BINDING
48         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
49         INTEGER  (kind = C_INTPTR_T)               :: child_
50         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
51         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
52      END SUBROUTINE cxios_xml_tree_add_domain
53
54      SUBROUTINE cxios_xml_tree_add_fieldtofile(parent_, child_, child_id, child_id_size) BIND(C)
55         USE ISO_C_BINDING
56         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
57         INTEGER  (kind = C_INTPTR_T)               :: child_
58         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
59         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
60      END SUBROUTINE cxios_xml_tree_add_fieldtofile
61
62      SUBROUTINE cxios_xml_tree_add_variabletofile(parent_, child_, child_id, child_id_size) BIND(C)
63         USE ISO_C_BINDING
64         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
65         INTEGER  (kind = C_INTPTR_T)               :: child_
66         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
67         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
68      END SUBROUTINE cxios_xml_tree_add_variabletofile
69
70
71      SUBROUTINE cxios_xml_tree_add_variabletofield(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_variabletofield
78
79
80      SUBROUTINE cxios_xml_tree_add_fieldgroup(parent_, child_, child_id, child_id_size) BIND(C)
81         USE ISO_C_BINDING
82         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
83         INTEGER  (kind = C_INTPTR_T)               :: child_
84         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
85         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
86      END SUBROUTINE cxios_xml_tree_add_fieldgroup
87
88      SUBROUTINE cxios_xml_tree_add_gridgroup(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_gridgroup
95
96      SUBROUTINE cxios_xml_tree_add_filegroup(parent_, child_, child_id, child_id_size) BIND(C)
97         USE ISO_C_BINDING
98         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
99         INTEGER  (kind = C_INTPTR_T)               :: child_
100         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
101         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
102      END SUBROUTINE cxios_xml_tree_add_filegroup
103
104      SUBROUTINE cxios_xml_tree_add_axisgroup(parent_, child_, child_id, child_id_size) BIND(C)
105         USE ISO_C_BINDING
106         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
107         INTEGER  (kind = C_INTPTR_T)               :: child_
108         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
109         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
110      END SUBROUTINE cxios_xml_tree_add_axisgroup
111
112      SUBROUTINE cxios_xml_tree_add_domaingroup(parent_, child_, child_id, child_id_size) BIND(C)
113         USE ISO_C_BINDING
114         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
115         INTEGER  (kind = C_INTPTR_T)               :: child_
116         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
117         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
118      END SUBROUTINE cxios_xml_tree_add_domaingroup
119
120      SUBROUTINE cxios_xml_tree_add_fieldgrouptofile(parent_, child_, child_id, child_id_size) BIND(C)
121         USE ISO_C_BINDING
122         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
123         INTEGER  (kind = C_INTPTR_T)               :: child_
124         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
125         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
126      END SUBROUTINE cxios_xml_tree_add_fieldgrouptofile
127
128      SUBROUTINE cxios_xml_tree_add_variablegrouptofile(parent_, child_, child_id, child_id_size) BIND(C)
129         USE ISO_C_BINDING
130         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
131         INTEGER  (kind = C_INTPTR_T)               :: child_
132         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
133         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
134      END SUBROUTINE cxios_xml_tree_add_variablegrouptofile
135
136      SUBROUTINE cxios_xml_tree_add_variablegrouptofield(parent_, child_, child_id, child_id_size) BIND(C)
137         USE ISO_C_BINDING
138         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
139         INTEGER  (kind = C_INTPTR_T)               :: child_
140         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
141         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
142      END SUBROUTINE cxios_xml_tree_add_variablegrouptofield
143
144      SUBROUTINE cxios_xml_tree_add_axistogrid(parent_, child_, child_id, child_id_size) BIND(C)
145         USE ISO_C_BINDING
146         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
147         INTEGER  (kind = C_INTPTR_T)               :: child_
148         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
149         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
150      END SUBROUTINE cxios_xml_tree_add_axistogrid
151
152      SUBROUTINE cxios_xml_tree_add_domaintogrid(parent_, child_, child_id, child_id_size) BIND(C)
153         USE ISO_C_BINDING
154         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
155         INTEGER  (kind = C_INTPTR_T)               :: child_
156         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
157         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
158      END SUBROUTINE cxios_xml_tree_add_domaintogrid
159
160      SUBROUTINE cxios_xml_tree_show(filename, filename_size) BIND(C)
161         USE ISO_C_BINDING
162         CHARACTER(kind = C_CHAR), DIMENSION(*) :: filename
163         INTEGER  (kind = C_INT) , VALUE        :: filename_size
164      END SUBROUTINE cxios_xml_tree_show
165
166      SUBROUTINE cxios_xml_parse_file(filename, filename_size) BIND(C)
167         USE ISO_C_BINDING
168         CHARACTER(kind = C_CHAR), DIMENSION(*) :: filename
169         INTEGER  (kind = C_INT) , VALUE        :: filename_size
170      END SUBROUTINE cxios_xml_parse_file
171
172      SUBROUTINE cxios_xml_parse_string(xmlcontent, xmlcontent_size) BIND(C)
173         USE ISO_C_BINDING
174         CHARACTER(kind = C_CHAR), DIMENSION(*) :: xmlcontent
175         INTEGER  (kind = C_INT) , VALUE        :: xmlcontent_size
176      END SUBROUTINE cxios_xml_parse_string
177
178   END INTERFACE
179
180
181   CONTAINS ! Fonctions disponibles pour les utilisateurs.
182
183
184   SUBROUTINE xios(add_axis)(parent_hdl, child_hdl, child_id)
185      TYPE(txios(axisgroup))     , INTENT(IN) :: parent_hdl
186      TYPE(txios(axis))          , INTENT(OUT):: child_hdl
187      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
188
189      IF (PRESENT(child_id)) THEN
190         CALL cxios_xml_tree_add_axis(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
191      ELSE
192         CALL cxios_xml_tree_add_axis(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
193      END IF
194
195   END SUBROUTINE xios(add_axis)
196
197   SUBROUTINE xios(add_file)(parent_hdl, child_hdl, child_id)
198      TYPE(txios(filegroup))      , INTENT(IN) :: parent_hdl
199      TYPE(txios(file))           , INTENT(OUT):: child_hdl
200      CHARACTER(len = *), OPTIONAL, INTENT(IN)  :: child_id
201
202      IF (PRESENT(child_id)) THEN
203         CALL cxios_xml_tree_add_file(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
204      ELSE
205         CALL cxios_xml_tree_add_file(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
206      END IF
207
208   END SUBROUTINE xios(add_file)
209
210   SUBROUTINE xios(add_grid)(parent_hdl, child_hdl, child_id)
211      TYPE(txios(gridgroup))     , INTENT(IN) :: parent_hdl
212      TYPE(txios(grid))          , INTENT(OUT):: child_hdl
213      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
214      IF (PRESENT(child_id)) THEN
215         CALL cxios_xml_tree_add_grid(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
216      ELSE
217         CALL cxios_xml_tree_add_grid(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
218      END IF
219
220   END SUBROUTINE xios(add_grid)
221
222
223   SUBROUTINE xios(add_field)(parent_hdl, child_hdl, child_id)
224      TYPE(txios(fieldgroup))     , INTENT(IN) :: parent_hdl
225      TYPE(txios(field))          , INTENT(OUT):: child_hdl
226      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
227
228      IF (PRESENT(child_id)) THEN
229         CALL cxios_xml_tree_add_field(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
230      ELSE
231         CALL cxios_xml_tree_add_field(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
232      END IF
233
234   END SUBROUTINE xios(add_field)
235
236
237   SUBROUTINE xios(add_domain)(parent_hdl, child_hdl, child_id)
238      TYPE(txios(domaingroup))     , INTENT(IN) :: parent_hdl
239      TYPE(txios(domain))     , INTENT(OUT):: child_hdl
240      CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id
241
242      IF (PRESENT(child_id)) THEN
243         CALL cxios_xml_tree_add_domain(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
244      ELSE
245         CALL cxios_xml_tree_add_domain(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
246      END IF
247
248   END SUBROUTINE xios(add_domain)
249
250   SUBROUTINE xios(add_fieldtofile)(parent_hdl, child_hdl, child_id)
251      TYPE(txios(file))            , INTENT(IN) :: parent_hdl
252      TYPE(txios(field))           , INTENT(OUT):: child_hdl
253      CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id
254
255      IF (PRESENT(child_id)) THEN
256         CALL cxios_xml_tree_add_fieldtofile(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
257      ELSE
258         CALL cxios_xml_tree_add_fieldtofile(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
259      END IF
260
261   END SUBROUTINE xios(add_fieldtofile)
262
263   SUBROUTINE xios(add_variabletofile)(parent_hdl, child_hdl, child_id)
264      TYPE(txios(file))            , INTENT(IN) :: parent_hdl
265      TYPE(txios(variable))           , INTENT(OUT):: child_hdl
266      CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id
267
268      IF (PRESENT(child_id)) THEN
269         CALL cxios_xml_tree_add_variabletofile(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
270      ELSE
271         CALL cxios_xml_tree_add_variabletofile(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
272      END IF
273
274   END SUBROUTINE xios(add_variabletofile)
275
276   SUBROUTINE xios(add_variabletofield)(parent_hdl, child_hdl, child_id)
277      TYPE(txios(field))            , INTENT(IN) :: parent_hdl
278      TYPE(txios(variable))           , INTENT(OUT):: child_hdl
279      CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id
280
281      IF (PRESENT(child_id)) THEN
282         CALL cxios_xml_tree_add_variabletofield(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
283      ELSE
284         CALL cxios_xml_tree_add_variabletofield(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
285      END IF
286
287   END SUBROUTINE xios(add_variabletofield)
288
289
290   SUBROUTINE xios(add_axisgroup)(parent_hdl, child_hdl, child_id)
291      TYPE(txios(axisgroup))      , INTENT(IN) :: parent_hdl
292      TYPE(txios(axisgroup))      , INTENT(OUT):: child_hdl
293      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
294
295      IF (PRESENT(child_id)) THEN
296         CALL cxios_xml_tree_add_axisgroup(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
297      ELSE
298         CALL cxios_xml_tree_add_axisgroup(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
299      END IF
300
301   END SUBROUTINE xios(add_axisgroup)
302
303
304   SUBROUTINE xios(add_filegroup)(parent_hdl, child_hdl, child_id)
305      TYPE(txios(filegroup))      , INTENT(IN) :: parent_hdl
306      TYPE(txios(filegroup))      , 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_filegroup(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
311      ELSE
312         CALL cxios_xml_tree_add_filegroup(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
313      END IF
314
315   END SUBROUTINE xios(add_filegroup)
316
317   SUBROUTINE xios(add_gridgroup)(parent_hdl, child_hdl, child_id)
318      TYPE(txios(gridgroup))      , INTENT(IN) :: parent_hdl
319      TYPE(txios(gridgroup))      , 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_gridgroup(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
324      ELSE
325         CALL cxios_xml_tree_add_gridgroup(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
326      END IF
327
328   END SUBROUTINE xios(add_gridgroup)
329
330
331   SUBROUTINE xios(add_fieldgroup)(parent_hdl, child_hdl, child_id)
332      TYPE(txios(fieldgroup))     , INTENT(IN) :: parent_hdl
333      TYPE(txios(fieldgroup))     , INTENT(OUT):: child_hdl
334      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
335      IF (PRESENT(child_id)) THEN
336         CALL cxios_xml_tree_add_fieldgroup(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
337      ELSE
338         CALL cxios_xml_tree_add_fieldgroup(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
339      END IF
340   END SUBROUTINE xios(add_fieldgroup)
341
342   SUBROUTINE xios(add_domaingroup)(parent_hdl, child_hdl, child_id)
343      TYPE(txios(domaingroup))     , INTENT(IN) :: parent_hdl
344      TYPE(txios(domaingroup))     , INTENT(OUT):: child_hdl
345      CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id
346
347      IF (PRESENT(child_id)) THEN
348         CALL cxios_xml_tree_add_domaingroup(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
349      ELSE
350         CALL cxios_xml_tree_add_domaingroup(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
351      END IF
352
353   END SUBROUTINE xios(add_domaingroup)
354
355   SUBROUTINE xios(add_fieldgrouptofile)(parent_hdl, child_hdl, child_id)
356      TYPE(txios(file))            , INTENT(IN) :: parent_hdl
357      TYPE(txios(fieldgroup))     , INTENT(OUT):: child_hdl
358      CHARACTER(len = *), OPTIONAL  , INTENT(IN) :: child_id
359
360      IF (PRESENT(child_id)) THEN
361         CALL cxios_xml_tree_add_fieldgrouptofile(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
362      ELSE
363         CALL cxios_xml_tree_add_fieldgrouptofile(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
364      END IF
365
366   END SUBROUTINE xios(add_fieldgrouptofile)
367
368   SUBROUTINE xios(add_variablegrouptofile)(parent_hdl, child_hdl, child_id)
369      TYPE(txios(file))            , INTENT(IN) :: parent_hdl
370      TYPE(txios(variablegroup))     , INTENT(OUT):: child_hdl
371      CHARACTER(len = *), OPTIONAL  , INTENT(IN) :: child_id
372
373      IF (PRESENT(child_id)) THEN
374         CALL cxios_xml_tree_add_variablegrouptofile(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
375      ELSE
376         CALL cxios_xml_tree_add_variablegrouptofile(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
377      END IF
378
379   END SUBROUTINE xios(add_variablegrouptofile)
380
381   SUBROUTINE xios(add_variablegrouptofield)(parent_hdl, child_hdl, child_id)
382      TYPE(txios(field))            , INTENT(IN) :: parent_hdl
383      TYPE(txios(variablegroup))     , INTENT(OUT):: child_hdl
384      CHARACTER(len = *), OPTIONAL  , INTENT(IN) :: child_id
385
386      IF (PRESENT(child_id)) THEN
387         CALL cxios_xml_tree_add_variablegrouptofield(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
388      ELSE
389         CALL cxios_xml_tree_add_variablegrouptofield(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
390      END IF
391
392   END SUBROUTINE xios(add_variablegrouptofield)
393
394   SUBROUTINE xios(add_axistogrid)(parent_hdl, child_hdl, child_id)
395      TYPE(txios(grid))             , INTENT(IN) :: parent_hdl
396      TYPE(txios(axis))             , INTENT(OUT):: child_hdl
397      CHARACTER(len = *), OPTIONAL  , INTENT(IN) :: child_id
398
399      IF (PRESENT(child_id)) THEN
400         CALL cxios_xml_tree_add_axistogrid(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
401      ELSE
402         CALL cxios_xml_tree_add_axistogrid(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
403      END IF
404
405   END SUBROUTINE xios(add_axistogrid)
406
407   SUBROUTINE xios(add_domaintogrid)(parent_hdl, child_hdl, child_id)
408      TYPE(txios(grid))             , INTENT(IN) :: parent_hdl
409      TYPE(txios(domain))           , INTENT(OUT):: child_hdl
410      CHARACTER(len = *), OPTIONAL  , INTENT(IN) :: child_id
411
412      IF (PRESENT(child_id)) THEN
413         CALL cxios_xml_tree_add_domaintogrid(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
414      ELSE
415         CALL cxios_xml_tree_add_domaintogrid(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
416      END IF
417
418   END SUBROUTINE xios(add_domaintogrid)
419END MODULE IXML_TREE
Note: See TracBrowser for help on using the repository browser.