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

Last change on this file since 903 was 903, checked in by mhnguyen, 5 years ago

Fixing error with gfortran because of length of line

+) Break long line into smaller ones

Test
+) Local machine with gfortran
+) Compilation ok

  • 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: 28.7 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 IZOOM_AXIS
16   USE IINTERPOLATE_AXIS
17   USE IINVERSE_AXIS
18   USE IREDUCE_AXIS_TO_SCALAR
19
20   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99
21
22      SUBROUTINE cxios_xml_tree_add_field(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_field
29
30      SUBROUTINE cxios_xml_tree_add_grid(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_grid
37
38      SUBROUTINE cxios_xml_tree_add_file(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_file
45
46      SUBROUTINE cxios_xml_tree_add_scalar(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_scalar
53
54      SUBROUTINE cxios_xml_tree_add_axis(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_axis
61
62      SUBROUTINE cxios_xml_tree_add_domain(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_domain
69
70      SUBROUTINE cxios_xml_tree_add_fieldtofile(parent_, child_, child_id, child_id_size) BIND(C)
71         USE ISO_C_BINDING
72         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
73         INTEGER  (kind = C_INTPTR_T)               :: child_
74         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
75         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
76      END SUBROUTINE cxios_xml_tree_add_fieldtofile
77
78      SUBROUTINE cxios_xml_tree_add_variabletofile(parent_, child_, child_id, child_id_size) BIND(C)
79         USE ISO_C_BINDING
80         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
81         INTEGER  (kind = C_INTPTR_T)               :: child_
82         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
83         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
84      END SUBROUTINE cxios_xml_tree_add_variabletofile
85
86
87      SUBROUTINE cxios_xml_tree_add_variabletofield(parent_, child_, child_id, child_id_size) BIND(C)
88         USE ISO_C_BINDING
89         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
90         INTEGER  (kind = C_INTPTR_T)               :: child_
91         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
92         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
93      END SUBROUTINE cxios_xml_tree_add_variabletofield
94
95
96      SUBROUTINE cxios_xml_tree_add_fieldgroup(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_fieldgroup
103
104      SUBROUTINE cxios_xml_tree_add_gridgroup(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_gridgroup
111
112      SUBROUTINE cxios_xml_tree_add_filegroup(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_filegroup
119
120      SUBROUTINE cxios_xml_tree_add_scalargroup(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_scalargroup
127
128      SUBROUTINE cxios_xml_tree_add_axisgroup(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_axisgroup
135
136      SUBROUTINE cxios_xml_tree_add_domaingroup(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_domaingroup
143
144      SUBROUTINE cxios_xml_tree_add_fieldgrouptofile(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_fieldgrouptofile
151
152      SUBROUTINE cxios_xml_tree_add_variablegrouptofile(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_variablegrouptofile
159
160      SUBROUTINE cxios_xml_tree_add_variablegrouptofield(parent_, child_, child_id, child_id_size) BIND(C)
161         USE ISO_C_BINDING
162         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
163         INTEGER  (kind = C_INTPTR_T)               :: child_
164         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
165         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
166      END SUBROUTINE cxios_xml_tree_add_variablegrouptofield
167
168      SUBROUTINE cxios_xml_tree_add_scalartogrid(parent_, child_, child_id, child_id_size) BIND(C)
169         USE ISO_C_BINDING
170         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
171         INTEGER  (kind = C_INTPTR_T)               :: child_
172         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
173         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
174      END SUBROUTINE cxios_xml_tree_add_scalartogrid
175
176      SUBROUTINE cxios_xml_tree_add_axistogrid(parent_, child_, child_id, child_id_size) BIND(C)
177         USE ISO_C_BINDING
178         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
179         INTEGER  (kind = C_INTPTR_T)               :: child_
180         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
181         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
182      END SUBROUTINE cxios_xml_tree_add_axistogrid
183
184      SUBROUTINE cxios_xml_tree_add_domaintogrid(parent_, child_, child_id, child_id_size) BIND(C)
185         USE ISO_C_BINDING
186         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
187         INTEGER  (kind = C_INTPTR_T)               :: child_
188         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
189         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
190      END SUBROUTINE cxios_xml_tree_add_domaintogrid
191
192      SUBROUTINE cxios_xml_tree_add_zoomdomaintodomain(parent_, child_, child_id, child_id_size) BIND(C)
193         USE ISO_C_BINDING
194         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
195         INTEGER  (kind = C_INTPTR_T)               :: child_
196         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
197         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
198      END SUBROUTINE cxios_xml_tree_add_zoomdomaintodomain
199
200      SUBROUTINE cxios_xml_tree_add_interpolatedomaintodomain(parent_, child_, child_id, child_id_size) BIND(C)
201         USE ISO_C_BINDING
202         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
203         INTEGER  (kind = C_INTPTR_T)               :: child_
204         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
205         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
206      END SUBROUTINE cxios_xml_tree_add_interpolatedomaintodomain
207
208      SUBROUTINE cxios_xml_tree_add_generatedomaintodomain(parent_, child_, child_id, child_id_size) BIND(C)
209         USE ISO_C_BINDING
210         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
211         INTEGER  (kind = C_INTPTR_T)               :: child_
212         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
213         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
214      END SUBROUTINE cxios_xml_tree_add_generatedomaintodomain
215
216      SUBROUTINE cxios_xml_tree_add_zoomaxistoaxis(parent_, child_, child_id, child_id_size) BIND(C)
217         USE ISO_C_BINDING
218         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
219         INTEGER  (kind = C_INTPTR_T)               :: child_
220         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
221         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
222      END SUBROUTINE cxios_xml_tree_add_zoomaxistoaxis
223
224      SUBROUTINE cxios_xml_tree_add_interpolateaxistoaxis(parent_, child_, child_id, child_id_size) BIND(C)
225         USE ISO_C_BINDING
226         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
227         INTEGER  (kind = C_INTPTR_T)               :: child_
228         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
229         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
230      END SUBROUTINE cxios_xml_tree_add_interpolateaxistoaxis
231
232      SUBROUTINE cxios_xml_tree_add_inverseaxistoaxis(parent_, child_, child_id, child_id_size) BIND(C)
233         USE ISO_C_BINDING
234         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
235         INTEGER  (kind = C_INTPTR_T)               :: child_
236         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
237         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
238      END SUBROUTINE cxios_xml_tree_add_inverseaxistoaxis
239
240      SUBROUTINE cxios_xml_tree_add_reduceaxistoscalartoscalar(parent_, child_, child_id, child_id_size) BIND(C)
241         USE ISO_C_BINDING
242         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
243         INTEGER  (kind = C_INTPTR_T)               :: child_
244         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id
245         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size
246      END SUBROUTINE cxios_xml_tree_add_reduceaxistoscalartoscalar
247
248      SUBROUTINE cxios_xml_tree_show(filename, filename_size) BIND(C)
249         USE ISO_C_BINDING
250         CHARACTER(kind = C_CHAR), DIMENSION(*) :: filename
251         INTEGER  (kind = C_INT) , VALUE        :: filename_size
252      END SUBROUTINE cxios_xml_tree_show
253
254      SUBROUTINE cxios_xml_parse_file(filename, filename_size) BIND(C)
255         USE ISO_C_BINDING
256         CHARACTER(kind = C_CHAR), DIMENSION(*) :: filename
257         INTEGER  (kind = C_INT) , VALUE        :: filename_size
258      END SUBROUTINE cxios_xml_parse_file
259
260      SUBROUTINE cxios_xml_parse_string(xmlcontent, xmlcontent_size) BIND(C)
261         USE ISO_C_BINDING
262         CHARACTER(kind = C_CHAR), DIMENSION(*) :: xmlcontent
263         INTEGER  (kind = C_INT) , VALUE        :: xmlcontent_size
264      END SUBROUTINE cxios_xml_parse_string
265
266   END INTERFACE
267
268
269   CONTAINS ! Fonctions disponibles pour les utilisateurs.
270
271   SUBROUTINE xios(add_scalar)(parent_hdl, child_hdl, child_id)
272      TYPE(txios(scalargroup))     , INTENT(IN) :: parent_hdl
273      TYPE(txios(scalar))          , INTENT(OUT):: child_hdl
274      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
275
276      IF (PRESENT(child_id)) THEN
277         CALL cxios_xml_tree_add_scalar(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
278      ELSE
279         CALL cxios_xml_tree_add_scalar(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
280      END IF
281
282   END SUBROUTINE xios(add_scalar)
283
284   SUBROUTINE xios(add_axis)(parent_hdl, child_hdl, child_id)
285      TYPE(txios(axisgroup))     , INTENT(IN) :: parent_hdl
286      TYPE(txios(axis))          , INTENT(OUT):: child_hdl
287      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
288
289      IF (PRESENT(child_id)) THEN
290         CALL cxios_xml_tree_add_axis(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
291      ELSE
292         CALL cxios_xml_tree_add_axis(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
293      END IF
294
295   END SUBROUTINE xios(add_axis)
296
297   SUBROUTINE xios(add_file)(parent_hdl, child_hdl, child_id)
298      TYPE(txios(filegroup))      , INTENT(IN) :: parent_hdl
299      TYPE(txios(file))           , INTENT(OUT):: child_hdl
300      CHARACTER(len = *), OPTIONAL, INTENT(IN)  :: child_id
301
302      IF (PRESENT(child_id)) THEN
303         CALL cxios_xml_tree_add_file(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
304      ELSE
305         CALL cxios_xml_tree_add_file(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
306      END IF
307
308   END SUBROUTINE xios(add_file)
309
310   SUBROUTINE xios(add_grid)(parent_hdl, child_hdl, child_id)
311      TYPE(txios(gridgroup))     , INTENT(IN) :: parent_hdl
312      TYPE(txios(grid))          , INTENT(OUT):: child_hdl
313      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
314      IF (PRESENT(child_id)) THEN
315         CALL cxios_xml_tree_add_grid(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
316      ELSE
317         CALL cxios_xml_tree_add_grid(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
318      END IF
319
320   END SUBROUTINE xios(add_grid)
321
322
323   SUBROUTINE xios(add_field)(parent_hdl, child_hdl, child_id)
324      TYPE(txios(fieldgroup))     , INTENT(IN) :: parent_hdl
325      TYPE(txios(field))          , INTENT(OUT):: child_hdl
326      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
327
328      IF (PRESENT(child_id)) THEN
329         CALL cxios_xml_tree_add_field(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
330      ELSE
331         CALL cxios_xml_tree_add_field(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
332      END IF
333
334   END SUBROUTINE xios(add_field)
335
336
337   SUBROUTINE xios(add_domain)(parent_hdl, child_hdl, child_id)
338      TYPE(txios(domaingroup))     , INTENT(IN) :: parent_hdl
339      TYPE(txios(domain))     , INTENT(OUT):: child_hdl
340      CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id
341
342      IF (PRESENT(child_id)) THEN
343         CALL cxios_xml_tree_add_domain(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
344      ELSE
345         CALL cxios_xml_tree_add_domain(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
346      END IF
347
348   END SUBROUTINE xios(add_domain)
349
350   SUBROUTINE xios(add_fieldtofile)(parent_hdl, child_hdl, child_id)
351      TYPE(txios(file))            , INTENT(IN) :: parent_hdl
352      TYPE(txios(field))           , INTENT(OUT):: child_hdl
353      CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id
354
355      IF (PRESENT(child_id)) THEN
356         CALL cxios_xml_tree_add_fieldtofile(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
357      ELSE
358         CALL cxios_xml_tree_add_fieldtofile(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
359      END IF
360
361   END SUBROUTINE xios(add_fieldtofile)
362
363   SUBROUTINE xios(add_variabletofile)(parent_hdl, child_hdl, child_id)
364      TYPE(txios(file))            , INTENT(IN) :: parent_hdl
365      TYPE(txios(variable))        , INTENT(OUT):: child_hdl
366      CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id
367
368      IF (PRESENT(child_id)) THEN
369         CALL cxios_xml_tree_add_variabletofile(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
370      ELSE
371         CALL cxios_xml_tree_add_variabletofile(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
372      END IF
373
374   END SUBROUTINE xios(add_variabletofile)
375
376   SUBROUTINE xios(add_variabletofield)(parent_hdl, child_hdl, child_id)
377      TYPE(txios(field))            , INTENT(IN) :: parent_hdl
378      TYPE(txios(variable))         , INTENT(OUT):: child_hdl
379      CHARACTER(len = *), OPTIONAL  , INTENT(IN) :: child_id
380
381      IF (PRESENT(child_id)) THEN
382         CALL cxios_xml_tree_add_variabletofield(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
383      ELSE
384         CALL cxios_xml_tree_add_variabletofield(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
385      END IF
386
387   END SUBROUTINE xios(add_variabletofield)
388
389   SUBROUTINE xios(add_scalargroup)(parent_hdl, child_hdl, child_id)
390      TYPE(txios(scalargroup))      , INTENT(IN) :: parent_hdl
391      TYPE(txios(scalargroup))      , INTENT(OUT):: child_hdl
392      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
393
394      IF (PRESENT(child_id)) THEN
395         CALL cxios_xml_tree_add_scalargroup(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
396      ELSE
397         CALL cxios_xml_tree_add_scalargroup(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
398      END IF
399
400   END SUBROUTINE xios(add_scalargroup)
401
402   SUBROUTINE xios(add_axisgroup)(parent_hdl, child_hdl, child_id)
403      TYPE(txios(axisgroup))      , INTENT(IN) :: parent_hdl
404      TYPE(txios(axisgroup))      , INTENT(OUT):: child_hdl
405      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
406
407      IF (PRESENT(child_id)) THEN
408         CALL cxios_xml_tree_add_axisgroup(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
409      ELSE
410         CALL cxios_xml_tree_add_axisgroup(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
411      END IF
412
413   END SUBROUTINE xios(add_axisgroup)
414
415
416   SUBROUTINE xios(add_filegroup)(parent_hdl, child_hdl, child_id)
417      TYPE(txios(filegroup))      , INTENT(IN) :: parent_hdl
418      TYPE(txios(filegroup))      , INTENT(OUT):: child_hdl
419      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
420
421      IF (PRESENT(child_id)) THEN
422         CALL cxios_xml_tree_add_filegroup(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
423      ELSE
424         CALL cxios_xml_tree_add_filegroup(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
425      END IF
426
427   END SUBROUTINE xios(add_filegroup)
428
429   SUBROUTINE xios(add_gridgroup)(parent_hdl, child_hdl, child_id)
430      TYPE(txios(gridgroup))      , INTENT(IN) :: parent_hdl
431      TYPE(txios(gridgroup))      , INTENT(OUT):: child_hdl
432      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
433
434      IF (PRESENT(child_id)) THEN
435         CALL cxios_xml_tree_add_gridgroup(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
436      ELSE
437         CALL cxios_xml_tree_add_gridgroup(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
438      END IF
439
440   END SUBROUTINE xios(add_gridgroup)
441
442
443   SUBROUTINE xios(add_fieldgroup)(parent_hdl, child_hdl, child_id)
444      TYPE(txios(fieldgroup))     , INTENT(IN) :: parent_hdl
445      TYPE(txios(fieldgroup))     , INTENT(OUT):: child_hdl
446      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
447      IF (PRESENT(child_id)) THEN
448         CALL cxios_xml_tree_add_fieldgroup(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
449      ELSE
450         CALL cxios_xml_tree_add_fieldgroup(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
451      END IF
452   END SUBROUTINE xios(add_fieldgroup)
453
454   SUBROUTINE xios(add_domaingroup)(parent_hdl, child_hdl, child_id)
455      TYPE(txios(domaingroup))     , INTENT(IN) :: parent_hdl
456      TYPE(txios(domaingroup))     , INTENT(OUT):: child_hdl
457      CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id
458
459      IF (PRESENT(child_id)) THEN
460         CALL cxios_xml_tree_add_domaingroup(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
461      ELSE
462         CALL cxios_xml_tree_add_domaingroup(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
463      END IF
464
465   END SUBROUTINE xios(add_domaingroup)
466
467   SUBROUTINE xios(add_fieldgrouptofile)(parent_hdl, child_hdl, child_id)
468      TYPE(txios(file))            , INTENT(IN) :: parent_hdl
469      TYPE(txios(fieldgroup))      , INTENT(OUT):: child_hdl
470      CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id
471
472      IF (PRESENT(child_id)) THEN
473         CALL cxios_xml_tree_add_fieldgrouptofile(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
474      ELSE
475         CALL cxios_xml_tree_add_fieldgrouptofile(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
476      END IF
477
478   END SUBROUTINE xios(add_fieldgrouptofile)
479
480   SUBROUTINE xios(add_variablegrouptofile)(parent_hdl, child_hdl, child_id)
481      TYPE(txios(file))            , INTENT(IN) :: parent_hdl
482      TYPE(txios(variablegroup))   , INTENT(OUT):: child_hdl
483      CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id
484
485      IF (PRESENT(child_id)) THEN
486         CALL cxios_xml_tree_add_variablegrouptofile(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
487      ELSE
488         CALL cxios_xml_tree_add_variablegrouptofile(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
489      END IF
490
491   END SUBROUTINE xios(add_variablegrouptofile)
492
493   SUBROUTINE xios(add_variablegrouptofield)(parent_hdl, child_hdl, child_id)
494      TYPE(txios(field))            , INTENT(IN) :: parent_hdl
495      TYPE(txios(variablegroup))    , INTENT(OUT):: child_hdl
496      CHARACTER(len = *), OPTIONAL  , INTENT(IN) :: child_id
497
498      IF (PRESENT(child_id)) THEN
499         CALL cxios_xml_tree_add_variablegrouptofield(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
500      ELSE
501         CALL cxios_xml_tree_add_variablegrouptofield(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
502      END IF
503
504   END SUBROUTINE xios(add_variablegrouptofield)
505
506   SUBROUTINE xios(add_scalartogrid)(parent_hdl, child_hdl, child_id)
507      TYPE(txios(grid))             , INTENT(IN) :: parent_hdl
508      TYPE(txios(scalar))           , INTENT(OUT):: child_hdl
509      CHARACTER(len = *), OPTIONAL  , INTENT(IN) :: child_id
510
511      IF (PRESENT(child_id)) THEN
512         CALL cxios_xml_tree_add_scalartogrid(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
513      ELSE
514         CALL cxios_xml_tree_add_scalartogrid(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
515      END IF
516
517   END SUBROUTINE xios(add_scalartogrid)
518
519   SUBROUTINE xios(add_axistogrid)(parent_hdl, child_hdl, child_id)
520      TYPE(txios(grid))             , INTENT(IN) :: parent_hdl
521      TYPE(txios(axis))             , INTENT(OUT):: child_hdl
522      CHARACTER(len = *), OPTIONAL  , INTENT(IN) :: child_id
523
524      IF (PRESENT(child_id)) THEN
525         CALL cxios_xml_tree_add_axistogrid(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
526      ELSE
527         CALL cxios_xml_tree_add_axistogrid(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
528      END IF
529
530   END SUBROUTINE xios(add_axistogrid)
531
532   SUBROUTINE xios(add_domaintogrid)(parent_hdl, child_hdl, child_id)
533      TYPE(txios(grid))             , INTENT(IN) :: parent_hdl
534      TYPE(txios(domain))           , INTENT(OUT):: child_hdl
535      CHARACTER(len = *), OPTIONAL  , INTENT(IN) :: child_id
536
537      IF (PRESENT(child_id)) THEN
538         CALL cxios_xml_tree_add_domaintogrid(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
539      ELSE
540         CALL cxios_xml_tree_add_domaintogrid(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
541      END IF
542
543   END SUBROUTINE xios(add_domaintogrid)
544
545   SUBROUTINE xios(add_zoomdomaintodomain)(parent_hdl, child_hdl, child_id)
546      TYPE(txios(domain))           , INTENT(IN) :: parent_hdl
547      TYPE(txios(zoom_domain))      , INTENT(OUT):: child_hdl
548      CHARACTER(len = *), OPTIONAL  , INTENT(IN) :: child_id
549
550      IF (PRESENT(child_id)) THEN
551         CALL cxios_xml_tree_add_zoomdomaintodomain(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
552      ELSE
553         CALL cxios_xml_tree_add_zoomdomaintodomain(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
554      END IF
555
556   END SUBROUTINE xios(add_zoomdomaintodomain)
557
558   SUBROUTINE xios(add_interpolatedomaintodomain)(parent_hdl, child_hdl, child_id)
559      TYPE(txios(domain))             , INTENT(IN) :: parent_hdl
560      TYPE(txios(interpolate_domain)) , INTENT(OUT):: child_hdl
561      CHARACTER(len = *), OPTIONAL    , INTENT(IN) :: child_id
562
563      IF (PRESENT(child_id)) THEN
564         CALL cxios_xml_tree_add_interpolatedomaintodomain(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
565      ELSE
566         CALL cxios_xml_tree_add_interpolatedomaintodomain(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
567      END IF
568
569   END SUBROUTINE xios(add_interpolatedomaintodomain)
570
571   SUBROUTINE xios(add_generatedomaintodomain)(parent_hdl, child_hdl, child_id)
572      TYPE(txios(domain))                      , INTENT(IN) :: parent_hdl
573      TYPE(txios(generate_rectilinear_domain)) , INTENT(OUT):: child_hdl
574      CHARACTER(len = *), OPTIONAL             , INTENT(IN) :: child_id
575
576      IF (PRESENT(child_id)) THEN
577         CALL cxios_xml_tree_add_generatedomaintodomain(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
578      ELSE
579         CALL cxios_xml_tree_add_generatedomaintodomain(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
580      END IF
581
582   END SUBROUTINE xios(add_generatedomaintodomain)
583
584   SUBROUTINE xios(add_zoomaxistoaxis)(parent_hdl, child_hdl, child_id)
585      TYPE(txios(axis))                      , INTENT(IN) :: parent_hdl
586      TYPE(txios(zoom_axis))                 , INTENT(OUT):: child_hdl
587      CHARACTER(len = *), OPTIONAL           , INTENT(IN) :: child_id
588
589      IF (PRESENT(child_id)) THEN
590         CALL cxios_xml_tree_add_zoomaxistoaxis(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
591      ELSE
592         CALL cxios_xml_tree_add_zoomaxistoaxis(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
593      END IF
594
595   END SUBROUTINE xios(add_zoomaxistoaxis)
596
597   SUBROUTINE xios(add_interpolateaxistoaxis)(parent_hdl, child_hdl, child_id)
598      TYPE(txios(axis))                      , INTENT(IN) :: parent_hdl
599      TYPE(txios(interpolate_axis))          , INTENT(OUT):: child_hdl
600      CHARACTER(len = *), OPTIONAL           , INTENT(IN) :: child_id
601
602      IF (PRESENT(child_id)) THEN
603         CALL cxios_xml_tree_add_interpolateaxistoaxis(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
604      ELSE
605         CALL cxios_xml_tree_add_interpolateaxistoaxis(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
606      END IF
607
608   END SUBROUTINE xios(add_interpolateaxistoaxis)
609
610   SUBROUTINE xios(add_inverseaxistoaxis)(parent_hdl, child_hdl, child_id)
611      TYPE(txios(axis))                      , INTENT(IN) :: parent_hdl
612      TYPE(txios(inverse_axis))              , INTENT(OUT):: child_hdl
613      CHARACTER(len = *), OPTIONAL           , INTENT(IN) :: child_id
614
615      IF (PRESENT(child_id)) THEN
616         CALL cxios_xml_tree_add_inverseaxistoaxis(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
617      ELSE
618         CALL cxios_xml_tree_add_inverseaxistoaxis(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
619      END IF
620
621   END SUBROUTINE xios(add_inverseaxistoaxis)
622
623   SUBROUTINE xios(add_reduceaxistoscalartoscalar)(parent_hdl, child_hdl, child_id)
624      TYPE(txios(axis))                      , INTENT(IN) :: parent_hdl
625      TYPE(txios(reduce_axis_to_scalar))     , INTENT(OUT):: child_hdl
626      CHARACTER(len = *), OPTIONAL           , INTENT(IN) :: child_id
627
628      IF (PRESENT(child_id)) THEN
629         CALL cxios_xml_tree_add_reduceaxistoscalartoscalar(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))
630      ELSE
631         CALL cxios_xml_tree_add_reduceaxistoscalartoscalar(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)
632      END IF
633
634   END SUBROUTINE xios(add_reduceaxistoscalartoscalar)
635END MODULE IXML_TREE
Note: See TracBrowser for help on using the repository browser.