The file structure is based on a tree topology with the root node at the top and user created subnodes underneath. The node itself contains integer, real, and character data as well as pointers to other nodes and variables. A variable is an array of data of a given type and length. A more detailed description is given below.
A node represents a collection of related information. Associated with a given node are node header information, variables and subnodes. The top node in the file is called the root node and is created automatically when the file is created. All other nodes must be explicitly created.
All nodes except the root node must be given a name by the creating application. Names may be up to 8 characters long for versions 1 and 2 and up to 32 characters long for version 3. Names may contain any character, however the use of non-displayable characters may prevent portability. Upper case and lower case characters are considered different (i.e., Zone 1 is not equal to ZONE 1). Examples of names are ZONE 1 and BNDRY 1.
By default, a node may have up to 64 subnodes and 64 variables to which it directly associates. Subnodes of subnodes or variables of subnodes do not count toward this limit. The maximum number of subnodes and variables can be increased at the time the file is created subject to a library imposed maximum. For version 3 files there is no node limit. The limit now represents only your desired program limit and can be changed at any time.
Each node has associated with it node header information. The node header information is provided for the application to store a small amount of information about the node. The contents of the node header are application dependent and data within the node header can be reliably used by different applications only if they agree on its organization.
By default, up to 64 integer values, 64 single precision floating point values, and two 80 character strings can be stored in a node header. The number of each value can be increased at file creation time subject to a maximum imposed by the library.
Variables contain the data to be written or read by the application. A variable may be of type INTEGER, REAL, or DOUBLE PRECISION and is associated with a specific node. For version 3 files a new CHARACTER variable has been added. A variable is known only within the node with which it is associated, i.e., variable X associated with node A has no relation to variable X in node B. It can be of a different type or length.
Like nodes, variables have names and are subject to the same restrictions. Examples of names are x, rho*u and T.
Last updated 6 Mar 2006