Elsevier Science Home
Computer Physics Communications Program Library
Full text online from Science Direct
Programs in Physics & Physical Chemistry
CPC Home

[Licence| Download | New Version Template] adgc_v1_0.tar.gz(320 Kbytes)
Manuscript Title: The ASAD atmospheric chemistry integration package and chemical reaction database.
Authors: G.D. Carver, P.D. Brown, O. Wild
Program title: ASAD
Catalogue identifier: ADGC_v1_0
Distribution format: tar.gz
Journal reference: Comput. Phys. Commun. 105(1997)197
Programming language: Fortran.
Computer: Cray YMP.
Operating system: UNIX (Solaris 1/Solaris 2/IRIX/AIX/UNICOS/Linux), MacOS S.
Word size: 64
Keywords: Molecular physics, Atmospheric chemistry, Chemical kinetics, Odes, Time integration, Reactions chemical, Stratospheric chemistry, Tropospheric chemistry, Kinetics.
Classification: 16.12, 16.14.

Nature of problem:
ASAD has been designed to be the chemical part of an atmospheric chemisry-transport model. It is not a complete atmospheric chemistry model. It solves the time-dependent chemical equations. The problem is specified by inputting a list of chemical species, their properties and a list of chemical reactions. The user can also include some of the common approximations (such as chemical families) used in atmospheric chemistry models. ASAD has been designed to be treated as a black box and therefore has a clearly defined interface with its calling transport model. No code for the chemistry needs to be developed or changed and the user can alter the chemical reaction system quickly and easily to enable rapid development and testing. A number of published time integration methods for the chemical equations have also been built-in to the package. The user can specify which method to use, dependent on the desired accuracy and cost. Interfaces are provided in the code for the user to supply source and sink terms from emissions and wet and dry deposition. Although designed for atmospheric chemistry problems, with a suitable choice of integrator, ASAD could also be used for other chemical problems such as those found in combustion studies. The memory required is highly dependent on the problem; number of species, number of reactions and whether the code is being used to solve a 1D, 2D or 3D problem. The number of words required for static (COMMON) storage is given approximately by this formula: NWORDS = npts(3ntr + 9nsp +2nr +5) + nr(ntr/5 + 2nsp/3 +16) +21(nsp+ntr) where npts is the number of gridpoints that ASAD is passed in each call, ntr is the number of chemical tracers transported by the calling model, nsp is the total number of chemical species and nr is the total number of chemical reactions used. Memory required will be slightly higher than this due to temporary arrays declared in subroutines. The code will run in 64 bit precision (REAL*8) on Cray (or other 64 bit word) computers and 32 bit precision (REAL*4) on other computers or workstations. However, on 32 bit computers, the use of compiler options to force real variables to 64 bits is strongly recommended for anything other than the simplest of problems.

The size of the problem is controlled by parameters in the code. Therefore, the available computing resources essentially restrict the complexity of the problem.

Unusual features:
SVODE (from NETLIB) and D02EAF (from the NAG library) may be chosen as stiff ordinary differential equation integrators. All the necessary subroutines to use SVODE are included with ASAD. The use of the D02EAF subroutine requires the user to have access to the NAG library.

Running time:
Highly dependent on the problem; number of species, reactions, size of the spatial domain, choice of integrator and attached user code for photolysis or heterogeneous reactions. As an example however, a box (single point) model of a typical stratospheric chemistry scheme with 30 species, 150 reactions, detailed photolysis and heterogeneous reaction schemes takes 4 CPU seconds for 10 days on a Sun HyperSPARC (150Mhz) workstation (rated at 4.7 SPECfp95) using a 10 minute chemical timestep and the IMPACT integrator.