GENERALITIES This directory contains all the models and the routines used in the above mentioned benchmark paper. There are six chemical models EUSMOG, TMk, CBM4, AL, STRATO, WET each described by a "model subdirectory". We tested a number of explicit and implicit routines (see the paper for details). Each model subdirectory contain copies of the integration routines and specific drivers. We also provide copies of the off-the-shelf integrators RADAU5, VODE, LSODES, SDIRK4, RODAS. We tested the routines on a HP-UX 935 A workstation. We expect the codes to be ready-to-run on other machines also; however, if you encounter problems with compiling or running the codes, or if you have questions and/or suggestions please contact sandu@cgrer.uiowa.edu (Adrian Sandu) ============================================================================ STANDARD ORGANIZATION OF THE MODEL DIRECTORIES: A model directory contains in general four subdirectories, namely MODELS, AGG, SPLIT, SPARSE. Below is a short description of each subdirectory: MODELS - Contain the chemical models, described in the symbolic format required by the KPP chemical preprocessor: - A file describing the chemical reactions and rate coefficients [model_name.eqn] - A list of the species involved in the reactions [model_name.spc]. AGG - contains the model in the aggregate form [agg.f] and the drivers for integration with: - RADAU5 [drv_radau.f] - LSODES [drv_lsodes.f] - VODE [drv_vode.f] - SDIRK4 [drv_sdirk.f] - RODAS [drv_rodas.f] All the above need to be compiled together with the integrator and the model [agg.f]. Also we provide a driver for computing the eigenvalues of the Jacobian [drv_eigenvalues.f]. Compile it together with [agg.f] and [radau.f] and link it with the LAPACK and BLAS libraries. SPLIT - contains the model in Production-destruction form, i.e. the "split" form, in the file [split.f] and the following routines that implement dedicated algorithms for chemical kinetics: - CHEMEQ (Young & Boris) [drv_boris.f] - QSSA [drv_qssa.f] - Extrapolated QSSA [drv_exqssa.f] - Symmetric QSSA [drv_symm.f] - ET [drv_donald.f] - Twostep Jacobi [drv_twostepJ.f] All the above should be compiled together with [split.f]. - Twostep Seidel [twoS.f] This last file contains its own version of the model, since the GS iterations are programmed on line. SPARSE - Integration of the model with different (semi-) implicit codes, with sparse linear algebra. Each problem is given in two variants. The corresponding drivers are named: - "drv_*" for time-continuous photolysis rates; - "frz_*" for freezed photolysis rates (constant on any time-split subinterval); The files: - description of the model [sparse.f] - driver for SPARSE SDIRK [drv_sdirk.f] - SPARSE SDIRK [sdirk.f] - driver for SPARSE RODAS [drv_rodas.f] - SPARSE RODAS [rodas.f] - driver for SPARSE VODE [drv_atmvode.f] - SPARSE VODE [atmdvode.f] - driver for SPARSE SEULEX [drv_seulex.f] - SPARSE SEULEX [atmsulex.f] - driver for SPARSE RODAS [drv_rodas.f] - SPARSE RODAS [atmrodas.f] - driver for SPARSE RODAS3 [drv_rodas3.f] - SPARSE RODAS3 [atmrodas3.f] - driver for SPARSE ROS4 [drv_ros4.f] - SPARSE ROS4 [atmros4.f] - driver for SPARSE RODAS3 plus SPARSE RODAS3 [drv_rodas3.f] - driver for SPARSE ROS3 plus SPARSE ROS3 [drv_ros3.f] - driver for SPARSE ROLAG plus SPARSE ROLAG [drv_rolag.f] Compile together the model [sparse.f], the driver and the integrator. ========================================================================= ACTUAL DIRECTORY ORGANIZATION Some model directories may be organized differently. ============================================================================= EXACT SOLUTIONS AND ERROR COMPUTATION We computed an accurate solution with RADAU5, and tested the other numerical results against it. The driver [drv_radau.f] will write hourly values of the concentrations in a file [Radau.m]. Each integrator writes the computed results in a file that bears the integrator's name, starts with a capital letter and ends in ".m". The ".m" suffix means that the data file is to be processed with MATLAB. In every subdirectory there is a copy of the file [try.m] which reads the RADAU5 solution and the actual solution and calculates the Number of Accurate Digits, as described in the paper. ============================================================================= This set of test problems and numerical algorithms is part of the papers Benchmarking Stiff ODE Solvers for Atmospheric Chemistry Problems I: Implicit vs. Explicit by A. Sandu, J.G. Verwer, M. van Loon, G.R. Carmichael, F.A. Potra, D. Dabdub and J. Seinfeld Report in Computational Mathematics no 85, January 1996, Department of Mathematics The University of Iowa, Iowa City, IA 52246, USA and CWI report no 9603, 1996 Center for Mathematics and Computer Science P.O. Box 94079 1090 GB Amsterdam, The Netherlands A copy of this paper is provided here as [bench1.ps]. AND Benchmarking Stiff ODE Solvers for Atmospheric Chemistry Problems II: Rosenbrock Solvers by A. Sandu, J.G. Verwer, J.G. Blom, E. Spee, G.R. Carmichael Report in Computational Mathematics no 90, July 1996, Department of Mathematics The University of Iowa, Iowa City, IA 52246, USA and CWI report no 9614, 1996 Center for Mathematics and Computer Science P.O. Box 94079 1090 GB Amsterdam, The Netherlands A copy of this paper is provided here as [bench2.ps]. ===========================================================================