In this case, a number is appended to the directory name to distinguish it, and this logic is racecondition free. Within each calculation sub-directory, a third tier of directories store the calculation data. These directories are as follows: 'Flags', which conveys information about the current status of the calculation (see below); 'Input', which stores input files both for the specific calculation engine and Digichem; 'Logs', which stores log messages from Digichem and monitors CPU and memory usage (see below); 'Output', which stores raw output from the calculation engine, including the log file and any checkpoint binary files; 'Results', which stores formatted calculation data in text format, including CSV; and 'Report', which contains the PDF report and any associated image data. The Results and Report folders will naturally only be created after the calculation has completed, as they only contain completed calculation data. A separate 'scratch' directory is also created and managed for each calculation, which is used by many computational engines for input/output (IO) intensive reading and writing. This scratch directory is normally stored outside of the rest of the calculation directory hierarchy to take advantage of faster and/or larger physical file storage media. Each scratch directory is also ensured to be unique for each calculation and is automatically removed following the completion of the corresponding calculation. This hierarchy of folders is managed entirely by the program, and greatly simplifies data management and storage.