3.3. How to change the default directory structure

The default Assigns files and scripts contain settings that allow users to modify the directories that will be used when running SMOKE. The basic structure has been developed to suit the needs of a variety of applications, from short, single-grid, base case modeling needs to annual, multigrid needs for many control strategies. The details of working within the default structure by changing Assigns file and script settings are provided in Chapter 4, Using SMOKE Scripts. The default structures that we have described represent our recommended way of running SMOKE. Although this structure has been quite useful for many people, it could be a burden to others. In this section, we describe ways in which users can change the default structure to meet their specific needs.

The SMOKE programs themselves do not require any specific directory structure because all input and output files depend only on environment variables, which can be set in any pattern. We have created a default directory structure so that other users can benefit from our experience in emissions modeling and using SMOKE, and to provide an initial structure that is useful. With a few exceptions for intermediate files, the SMOKE programs also do not require specific file names, only specific environment variables; but again, we have configured SMOKE to have a default structure for these names.

In principle, you can change the location of every single input file that SMOKE uses. The Assigns files and scripts have been implemented using one structure, but changing that structure is only a matter of finding some other method of providing the file names to the programs. This can include changing the Assigns files and scripts, or removing the Assigns files altogether and creating a script that sets all of the input and output file names and directories and calls the programs. These modifications can be as extensive or minimal as needed to handle a specific limitation or problem with the default structure.

If slight modifications to the structures are all that is needed, then the best approach is to modify a copy of the default the Assigns file. For example, if you wish to have the nonroad mobile sources’ intermediate and output files written to a different directory than the stationary area sources’ files, you would add an NSCEN environment variable to parallel the area-source variable ASCEN, and change the input, intermediate, and output file locations and names to use this setting.