Reading Import Data
Import templates are based on sequential access. All commands that read information--with the exception of integer variables--transfer data into a list or an array.
When reading the names of requests or components, each value is added to the end of a list. As data is read, each component is added to the end of the list of values for the current request. Once a complete request has been read, Import moves to the next one. When all requests in a record have been read, Import starts on the next record. Each time a record is read, the request pointer is reset to the first request in that record. The same principle applies to components. Every time a request is read, the component pointer is reset to the first component in the list.
This method alleviates the need to keep track of array subscripts. It also follows the natural organization of most data files, especially time history files. Information cannot be read using random-access.
All data is read as double precision floating point values. If the minimum precision specified in the template is greater than 10, the conversion between the ASCII value and its binary equivalent is performed by the standard C function, strtod. If the precision is less than 10, a high-speed conversion routine tailored to handle numbers with nine or fewer significant digits is used. This routine is approximately twice as fast, but treats digits after the ninth as zeros.