mit-crpg/openmc — pull request #201 by bhermanmit (2013-07-23 22:38:35+00:00)
Title: New XML interface and Library

The XML reader currently in OpenMC (xml-fortran) is replaced in this pull request with a new XML library, FoX DOM. A new xml_interface module is added so that developers do not have to directly interact with FoX DOM. The only data that the developer needs from FoX DOM is the Node type pointer, which points to various parts of an XML file. All routines that interact with XML input files have now been converted over to xml interface / FoX DOM syntax.

The main motivation for changing XML libraries is to conform more with the XML standard and to reduce limitations on buffer sizes that existed in xml-fortran.

The structure of the XML input files from the user's perspective is not affected by these changes except for `````` element in settings.xml file. This will be updated in the documentation.

Limited testing has been performed and I would like other developers/users to run their XML input files with the develop branch and the xml branch to find bugs. Please post all bugs in the comments section of this pull request. If there is a bug in the CMFD XML files, let me know and I will eventually fix it in the cmfd_clean branch once this is merged into develop.

I also tried to scope out some limitations. Currently, I succeeded in reading in data that was on 16,000 consecutive lines. I also was able to read in a single line that was 10,000 characters long.

Please also comment on the xml_interface module itself if you think there are better ways for developers to interact with FoX DOM.

This pull request should not be merged into develop branch yet. More tasks need to still be performed:
- [ ] Update documentation with new `````` structure
- [ ] Run valgrind on these modules to find memory leaks
- [ ] Allocation/Deallocation of XML Node for a document needs to be slightly changed
- [ ] Test my various XML files w/ difference compiler options
- [ ] Scope out any limitations when reading large amount of data