<?xml version="1.0" encoding="UTF-8"?>
<!--This is the document type definition for the output format file, which is
included as part of the parameter file for setting up the rundata file.-->
<!--Type definition-->
<!ENTITY % ou_type "seed | seedling | sapling | adult | snag | woody_debris">
<!--Root element-->
<!ELEMENT output (ou_filename, ou_treeInfo*, ou_gridInfo*)>

<!--This is the filename for the rundata file-->
<!ELEMENT ou_filename (#PCDATA)>

<!--******************************************
  Tree output information
*********************************************-->
<!--Type structure - for each one of the tree types one of these should be saved to define the type of output to save.
If one is ommitted for a tree type, no biggie - output is not saved.  The two attributes are type (tp), according to the
entity list above, and species (sp), which should match the species name in the par file.-->
<!ELEMENT ou_treeInfo (ou_saveFreq, ou_int*, ou_float*, ou_char*, ou_bool*)>
<!ATTLIST ou_treeInfo
	type (%ou_type;) #REQUIRED  
	species IDREF #REQUIRED>   


<!--******************************************
  Grid output information
  One ou_gridInfo is created for each grid layer to save
*********************************************-->
<!ELEMENT ou_gridInfo (ou_saveFreq, ou_int*, ou_float*, ou_char*, ou_bool*,
                       ou_cohortInt*, ou_cohortFloat*, ou_cohortChar*, ou_cohortBool*)>
<!--The name of the grid - must match the namestring in the code-->
<!ATTLIST ou_gridInfo gridName CDATA #REQUIRED>

<!--A list of data members to save - not all must be saved.  The members
are identified by their text labels - the same way they're identified
in the code.  The reason there are separate package tags is because it's easier
to parse and separate these out in the code.-->
<!ELEMENT ou_int (#PCDATA)>
<!ELEMENT ou_float (#PCDATA)>
<!ELEMENT ou_char (#PCDATA)>
<!ELEMENT ou_bool (#PCDATA)>
<!ELEMENT ou_packageInt (#PCDATA)>
<!ELEMENT ou_packageFloat (#PCDATA)>
<!ELEMENT ou_packageChar (#PCDATA)>
<!ELEMENT ou_packageBool (#PCDATA)>

<!--This controls the frequency at which different output is saved - in an integer number of timesteps - including 0-->
<!ELEMENT ou_saveFreq (#PCDATA)>
