Accessing data in a CIF format using CIFLIB is a multistep process. CIFLIB first reads a DDL file. Although much of CIFLIB is hardwired for DDL 2.1, many DDL attributes act simply as placeholders for information and can be extended without modification to the library. The DDL is also checked against itself using internally coded rules based on DDL 2.1.
Once the DDL is read, a CIF dictionary based on this DDL can be read and checked. This process can be quite time consuming for large dictionaries, so a provision has been made to retain the state of any file which has been checked in an auxiliary file. This auxiliary file will be used in preference to the original file in subsequent file accesses if its modification date is more recent.
Finally, CIF data files are read with respect to a CIF dictionary. In any file access, CIFLIB provides complete access to the data blocks containing the DDL, the CIF dictionary, and any number of blocks containing user data.
The following sections present the set of functions which provide access to files containing CIF DDL, dictionaries, and data files. Initialization and housekeeping functions are also presented.