MODULE XML_TREE USE, INTRINSIC :: ISO_C_BINDING INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 SUBROUTINE xios_xml_tree_add_field(parent_, child_, child_id, child_id_size) BIND(C) import C_CHAR, C_INT, C_INTPTR_T INTEGER (kind = C_INTPTR_T), VALUE :: parent_ INTEGER (kind = C_INTPTR_T) :: child_ CHARACTER(kind = C_CHAR) , DIMENSION(*) :: child_id INTEGER (kind = C_INT) , VALUE :: child_id_size END SUBROUTINE xios_xml_tree_add_field SUBROUTINE xios_xml_tree_add_grid(parent_, child_, child_id, child_id_size) BIND(C) import C_CHAR, C_INT, C_INTPTR_T INTEGER (kind = C_INTPTR_T), VALUE :: parent_ INTEGER (kind = C_INTPTR_T) :: child_ CHARACTER(kind = C_CHAR) , DIMENSION(*) :: child_id INTEGER (kind = C_INT) , VALUE :: child_id_size END SUBROUTINE xios_xml_tree_add_grid SUBROUTINE xios_xml_tree_add_file(parent_, child_, child_id, child_id_size) BIND(C) import C_CHAR, C_INT, C_INTPTR_T INTEGER (kind = C_INTPTR_T), VALUE :: parent_ INTEGER (kind = C_INTPTR_T) :: child_ CHARACTER(kind = C_CHAR) , DIMENSION(*) :: child_id INTEGER (kind = C_INT) , VALUE :: child_id_size END SUBROUTINE xios_xml_tree_add_file SUBROUTINE xios_xml_tree_add_axis(parent_, child_, child_id, child_id_size) BIND(C) import C_CHAR, C_INT, C_INTPTR_T INTEGER (kind = C_INTPTR_T), VALUE :: parent_ INTEGER (kind = C_INTPTR_T) :: child_ CHARACTER(kind = C_CHAR) , DIMENSION(*) :: child_id INTEGER (kind = C_INT) , VALUE :: child_id_size END SUBROUTINE xios_xml_tree_add_axis SUBROUTINE xios_xml_tree_add_domain(parent_, child_, child_id, child_id_size) BIND(C) import C_CHAR, C_INT, C_INTPTR_T INTEGER (kind = C_INTPTR_T), VALUE :: parent_ INTEGER (kind = C_INTPTR_T) :: child_ CHARACTER(kind = C_CHAR) , DIMENSION(*) :: child_id INTEGER (kind = C_INT) , VALUE :: child_id_size END SUBROUTINE xios_xml_tree_add_domain SUBROUTINE xios_xml_tree_add_fieldtofile(parent_, child_, child_id, child_id_size) BIND(C) import C_CHAR, C_INT, C_INTPTR_T INTEGER (kind = C_INTPTR_T), VALUE :: parent_ INTEGER (kind = C_INTPTR_T) :: child_ CHARACTER(kind = C_CHAR) , DIMENSION(*) :: child_id INTEGER (kind = C_INT) , VALUE :: child_id_size END SUBROUTINE xios_xml_tree_add_fieldtofile SUBROUTINE xios_xml_tree_show(filename, filename_size) BIND(C) import C_CHAR, C_INT CHARACTER(kind = C_CHAR), DIMENSION(*) :: filename INTEGER (kind = C_INT) , VALUE :: filename_size END SUBROUTINE xios_xml_tree_show SUBROUTINE xios_xml_parse_file(filename, filename_size) BIND(C) import C_CHAR, C_INT CHARACTER(kind = C_CHAR), DIMENSION(*) :: filename INTEGER (kind = C_INT) , VALUE :: filename_size END SUBROUTINE xios_xml_parse_file SUBROUTINE xios_xml_parse_string(xmlcontent, xmlcontent_size) BIND(C) import C_CHAR, C_INT CHARACTER(kind = C_CHAR), DIMENSION(*) :: xmlcontent INTEGER (kind = C_INT) , VALUE :: xmlcontent_size END SUBROUTINE xios_xml_parse_string END INTERFACE CONTAINS ! Fonctions disponibles pour les utilisateurs. SUBROUTINE xml_tree_show(filename) CHARACTER(len = *), OPTIONAL, INTENT(IN) :: filename IF (PRESENT(filename)) THEN CALL xios_xml_tree_show(filename, len(filename)) ELSE CALL xios_xml_tree_show("NONE", -1) END IF END SUBROUTINE xml_tree_show SUBROUTINE xml_parse_file(filename) CHARACTER(len = *), INTENT(IN) :: filename CALL xios_xml_parse_file(filename, len(filename)) END SUBROUTINE xml_Parse_File SUBROUTINE xml_parse_string(xmlcontent) CHARACTER(len = *), INTENT(IN) :: xmlcontent CALL xios_xml_parse_string(xmlcontent, len(xmlcontent)) END SUBROUTINE xml_Parse_String END MODULE XML_TREE