The subset of reactions involving the user specified constituents is extracted by the first AutoChem preprocessor program called Pick. This subset of reactions is then used by the second AutoChem preprocessor program RoC (rate of change) to generate the time derivatives, Jacobian, and Hessian. Once the two preprocessor programs have been run all the Fortran90 code has been generated that is necessary for modeling and assimilating the kinetic processes.
A flow diagram for AutoChem is shown below. To enlarge click on the image.
The following steps are carried out by AutoChem:
- Step 1a. Given a list of user supplied constituents pick the reactions involving these constituents.
- Step 1b. Write out these reactions as a document.
- Step 2a. Construct the time derivatives of each constituent.
- Step 2b. Write out the time derivatives as a document.
- Step 3a. Symbolically differentiate the time derivative to give the Jacobian.
- Step 3b. Write out the Jacobian as a document.
- Step 4a. Symbolically differentiate the Jacobian to give the Hessian.
- Step 4b. Write out the Hessian as a document.
- Step 5. Write computer code and generate required data files for implementation in Fortran90 of steps 1 to 4 for a forward chemical model and for data assimilation.
- Step 6. Run time code includes automatic analysis diagnostics of each ODE and the relative importance of each term, timescales, and suite of other diagnostics.
The software is written in Fortran90 with extensive use made of modules and types for efficiency of data transfer. Full use is made of intrinsic Fortran90 logical operations to perform rapid symbolic differentiation.
- AutoChem has already been used in several Chemical Modelling studies.
- AutoChem was the first modelling system used for chemical data assimilation. AutoChem is being used to assist with EOS Aura data validation.
- A key part of the chemical model is the calculation of photolysis rates. The description of AutoChem photolysis calculations is given here.
- The physical constants used by AutoChem are given here.