From d3ce21b600e41e490395ccd8d7f34c8bb5c36f40 Mon Sep 17 00:00:00 2001 From: "R. Sommariva" Date: Fri, 10 Nov 2023 02:35:36 +0000 Subject: [PATCH] Add support for kpp format (#497) * Set up to support KPP formats * Tidy build py scripts * Rename some variables for clarity * Remove logfile printout * Reset version number to dev status * Tidy mech_converter.py script * Cosmetic changes to sh scripts * Check python scripts with pylint * Skeleton convert_kpp.py and other small fixes * Functional conversion script * Amend mcm/ and .fac info * Tidy comments py scripts * Links for the badges * Call kpp cpnversion script from mech_converter * Set path of the kpp file * Model test for the KPP conversion * cmp files for the new model tests * Remove extra fac file * Fix compilation of model in kpp test * Upload coverage only if tests are run * Compile manual --- .github/workflows/ci.yml | 1 + CHANGELOG.md | 46 +- README.md | 10 +- build/build_atchem2.sh | 18 +- build/fix_mechanism_fac.py | 201 ++++--- build/kpp_conversion.py | 238 ++++++++ build/mech_converter.py | 530 ++++++++++-------- doc/AtChem2-Manual.pdf | Bin 789511 -> 789607 bytes doc/latex/AtChem2-Manual.tex | 2 +- mcm/INFO.md | 12 +- mcm/mechanism_skel.fac | 10 +- mcm/mechanism_skel.kpp | 9 + src/atchem2.f90 | 2 +- tests/model_tests/INFO.md | 10 +- .../env_model_1/env_model_1.out.cmp | 2 +- .../env_model_2/env_model_2.out.cmp | 2 +- .../env_model_3/env_model_3.out.cmp | 2 +- .../env_model_4/env_model_4.out.cmp | 2 +- .../model_tests/firstorder/firstorder.out.cmp | 2 +- .../secondorder/secondorder.out.cmp | 2 +- .../configuration/environmentVariables.config | 10 + .../initialConcentrations.config | 5 + .../configuration/mechanism.prod.cmp | 257 +++++++++ .../configuration/mechanism.reac.cmp | 232 ++++++++ .../configuration/mechanism.ro2.cmp | 6 + .../configuration/mechanism.species.cmp | 49 ++ .../configuration/model.parameters | 13 + .../configuration/outputRates.config | 2 + .../configuration/outputSpecies.config | 12 + .../configuration/photolysisConstant.config | 0 .../photolysisConstrained.config | 0 .../configuration/solver.parameters | 9 + .../configuration/speciesConstant.config | 0 .../configuration/speciesConstrained.config | 0 .../output/environmentVariables.output.cmp | 31 + .../spec_model_1/output/errors.output.cmp | 2 + .../output/finalModelState.output.cmp | 49 ++ .../spec_model_1/output/jacobian.output.cmp | 0 .../spec_model_1/output/lossRates.output.cmp | 358 ++++++++++++ .../output/mainSolverParameters.output.cmp | 31 + .../output/photolysisRates.output.cmp | 31 + .../photolysisRatesParameters.output.cmp | 31 + .../output/productionRates.output.cmp | 400 +++++++++++++ .../output/reactionRates/25200.cmp | 147 +++++ .../output/reactionRates/27000.cmp | 147 +++++ .../output/reactionRates/28800.cmp | 147 +++++ .../output/reactionRates/30600.cmp | 147 +++++ .../output/reactionRates/32400.cmp | 147 +++++ .../output/reactionRates/34200.cmp | 147 +++++ .../output/reactionRates/36000.cmp | 147 +++++ .../output/reactionRates/37800.cmp | 147 +++++ .../output/reactionRates/39600.cmp | 147 +++++ .../output/reactionRates/41400.cmp | 147 +++++ .../output/reactionRates/43200.cmp | 147 +++++ .../output/reactionRates/45000.cmp | 147 +++++ .../output/reactionRates/46800.cmp | 147 +++++ .../output/reactionRates/48600.cmp | 147 +++++ .../output/reactionRates/50400.cmp | 147 +++++ .../output/speciesConcentrations.output.cmp | 32 ++ .../model_tests/spec_model_1/spec_model_1.fac | 371 ++++++++++++ .../spec_model_1/spec_model_1.out.cmp | 211 +++++++ .../configuration/environmentVariables.config | 10 + .../initialConcentrations.config | 5 + .../configuration/mechanism.prod.cmp | 248 ++++++++ .../configuration/mechanism.reac.cmp | 226 ++++++++ .../configuration/mechanism.ro2.cmp | 6 + .../configuration/mechanism.species.cmp | 49 ++ .../configuration/model.parameters | 13 + .../configuration/outputRates.config | 2 + .../configuration/outputSpecies.config | 12 + .../configuration/photolysisConstant.config | 0 .../photolysisConstrained.config | 0 .../configuration/solver.parameters | 9 + .../configuration/speciesConstant.config | 0 .../configuration/speciesConstrained.config | 0 .../output/environmentVariables.output.cmp | 31 + .../spec_model_kpp/output/errors.output.cmp | 2 + .../output/finalModelState.output.cmp | 49 ++ .../spec_model_kpp/output/jacobian.output.cmp | 0 .../output/lossRates.output.cmp | 351 ++++++++++++ .../output/mainSolverParameters.output.cmp | 31 + .../output/photolysisRates.output.cmp | 31 + .../photolysisRatesParameters.output.cmp | 31 + .../output/productionRates.output.cmp | 379 +++++++++++++ .../output/reactionRates/25200.cmp | 142 +++++ .../output/reactionRates/27000.cmp | 142 +++++ .../output/reactionRates/28800.cmp | 142 +++++ .../output/reactionRates/30600.cmp | 142 +++++ .../output/reactionRates/32400.cmp | 142 +++++ .../output/reactionRates/34200.cmp | 142 +++++ .../output/reactionRates/36000.cmp | 142 +++++ .../output/reactionRates/37800.cmp | 142 +++++ .../output/reactionRates/39600.cmp | 142 +++++ .../output/reactionRates/41400.cmp | 142 +++++ .../output/reactionRates/43200.cmp | 142 +++++ .../output/reactionRates/45000.cmp | 142 +++++ .../output/reactionRates/46800.cmp | 142 +++++ .../output/reactionRates/48600.cmp | 142 +++++ .../output/reactionRates/50400.cmp | 142 +++++ .../output/speciesConcentrations.output.cmp | 32 ++ .../spec_model_kpp/spec_model_kpp.kpp | 367 ++++++++++++ .../spec_model_kpp/spec_model_kpp.out.cmp | 211 +++++++ tests/model_tests/static/static.out.cmp | 2 +- tests/run_model_tests.sh | 8 +- tests/run_tests.sh | 1 - tests/tests/short/short.out.cmp | 2 +- tests/tests/short_dense/short_dense.out.cmp | 2 +- .../short_end_of_day/short_end_of_day.out.cmp | 2 +- tests/tests/short_ext1/short_ext1.out.cmp | 2 +- tests/tests/short_ext2/short_ext2.out.cmp | 2 +- tests/tests/short_ext3/short_ext3.out.cmp | 2 +- tests/tests/short_ext4/short_ext4.out.cmp | 2 +- tests/tests/short_no_pre/short_no_pre.out.cmp | 2 +- .../spec_no_env_yes1/spec_no_env_yes1.out.cmp | 2 +- .../spec_no_env_yes2/spec_no_env_yes2.out.cmp | 2 +- .../spec_yes_env_no/spec_yes_env_no.out.cmp | 2 +- .../spec_yes_env_no_with_jfac.out.cmp | 2 +- .../spec_yes_env_no_with_jfac_fail1.out.cmp | 2 +- .../spec_yes_env_no_with_jfac_fixed.out.cmp | 2 +- .../spec_yes_env_no_with_photo.out.cmp | 2 +- .../spec_yes_env_yes/spec_yes_env_yes.out.cmp | 2 +- .../spec_yes_plus_fixed_env_no.out.cmp | 2 +- tools/fix_indent.py | 64 ++- tools/fix_style.py | 187 +++--- tools/update_version_number.sh | 7 +- 125 files changed, 9485 insertions(+), 491 deletions(-) create mode 100644 build/kpp_conversion.py create mode 100644 mcm/mechanism_skel.kpp create mode 100644 tests/model_tests/spec_model_1/configuration/environmentVariables.config create mode 100644 tests/model_tests/spec_model_1/configuration/initialConcentrations.config create mode 100644 tests/model_tests/spec_model_1/configuration/mechanism.prod.cmp create mode 100644 tests/model_tests/spec_model_1/configuration/mechanism.reac.cmp create mode 100644 tests/model_tests/spec_model_1/configuration/mechanism.ro2.cmp create mode 100644 tests/model_tests/spec_model_1/configuration/mechanism.species.cmp create mode 100644 tests/model_tests/spec_model_1/configuration/model.parameters create mode 100644 tests/model_tests/spec_model_1/configuration/outputRates.config create mode 100644 tests/model_tests/spec_model_1/configuration/outputSpecies.config create mode 100644 tests/model_tests/spec_model_1/configuration/photolysisConstant.config create mode 100644 tests/model_tests/spec_model_1/configuration/photolysisConstrained.config create mode 100644 tests/model_tests/spec_model_1/configuration/solver.parameters create mode 100644 tests/model_tests/spec_model_1/configuration/speciesConstant.config create mode 100644 tests/model_tests/spec_model_1/configuration/speciesConstrained.config create mode 100644 tests/model_tests/spec_model_1/output/environmentVariables.output.cmp create mode 100644 tests/model_tests/spec_model_1/output/errors.output.cmp create mode 100644 tests/model_tests/spec_model_1/output/finalModelState.output.cmp create mode 100644 tests/model_tests/spec_model_1/output/jacobian.output.cmp create mode 100644 tests/model_tests/spec_model_1/output/lossRates.output.cmp create mode 100644 tests/model_tests/spec_model_1/output/mainSolverParameters.output.cmp create mode 100644 tests/model_tests/spec_model_1/output/photolysisRates.output.cmp create mode 100644 tests/model_tests/spec_model_1/output/photolysisRatesParameters.output.cmp create mode 100644 tests/model_tests/spec_model_1/output/productionRates.output.cmp create mode 100644 tests/model_tests/spec_model_1/output/reactionRates/25200.cmp create mode 100644 tests/model_tests/spec_model_1/output/reactionRates/27000.cmp create mode 100644 tests/model_tests/spec_model_1/output/reactionRates/28800.cmp create mode 100644 tests/model_tests/spec_model_1/output/reactionRates/30600.cmp create mode 100644 tests/model_tests/spec_model_1/output/reactionRates/32400.cmp create mode 100644 tests/model_tests/spec_model_1/output/reactionRates/34200.cmp create mode 100644 tests/model_tests/spec_model_1/output/reactionRates/36000.cmp create mode 100644 tests/model_tests/spec_model_1/output/reactionRates/37800.cmp create mode 100644 tests/model_tests/spec_model_1/output/reactionRates/39600.cmp create mode 100644 tests/model_tests/spec_model_1/output/reactionRates/41400.cmp create mode 100644 tests/model_tests/spec_model_1/output/reactionRates/43200.cmp create mode 100644 tests/model_tests/spec_model_1/output/reactionRates/45000.cmp create mode 100644 tests/model_tests/spec_model_1/output/reactionRates/46800.cmp create mode 100644 tests/model_tests/spec_model_1/output/reactionRates/48600.cmp create mode 100644 tests/model_tests/spec_model_1/output/reactionRates/50400.cmp create mode 100644 tests/model_tests/spec_model_1/output/speciesConcentrations.output.cmp create mode 100644 tests/model_tests/spec_model_1/spec_model_1.fac create mode 100644 tests/model_tests/spec_model_1/spec_model_1.out.cmp create mode 100644 tests/model_tests/spec_model_kpp/configuration/environmentVariables.config create mode 100644 tests/model_tests/spec_model_kpp/configuration/initialConcentrations.config create mode 100644 tests/model_tests/spec_model_kpp/configuration/mechanism.prod.cmp create mode 100644 tests/model_tests/spec_model_kpp/configuration/mechanism.reac.cmp create mode 100644 tests/model_tests/spec_model_kpp/configuration/mechanism.ro2.cmp create mode 100644 tests/model_tests/spec_model_kpp/configuration/mechanism.species.cmp create mode 100644 tests/model_tests/spec_model_kpp/configuration/model.parameters create mode 100644 tests/model_tests/spec_model_kpp/configuration/outputRates.config create mode 100644 tests/model_tests/spec_model_kpp/configuration/outputSpecies.config create mode 100644 tests/model_tests/spec_model_kpp/configuration/photolysisConstant.config create mode 100644 tests/model_tests/spec_model_kpp/configuration/photolysisConstrained.config create mode 100644 tests/model_tests/spec_model_kpp/configuration/solver.parameters create mode 100644 tests/model_tests/spec_model_kpp/configuration/speciesConstant.config create mode 100644 tests/model_tests/spec_model_kpp/configuration/speciesConstrained.config create mode 100644 tests/model_tests/spec_model_kpp/output/environmentVariables.output.cmp create mode 100644 tests/model_tests/spec_model_kpp/output/errors.output.cmp create mode 100644 tests/model_tests/spec_model_kpp/output/finalModelState.output.cmp create mode 100644 tests/model_tests/spec_model_kpp/output/jacobian.output.cmp create mode 100644 tests/model_tests/spec_model_kpp/output/lossRates.output.cmp create mode 100644 tests/model_tests/spec_model_kpp/output/mainSolverParameters.output.cmp create mode 100644 tests/model_tests/spec_model_kpp/output/photolysisRates.output.cmp create mode 100644 tests/model_tests/spec_model_kpp/output/photolysisRatesParameters.output.cmp create mode 100644 tests/model_tests/spec_model_kpp/output/productionRates.output.cmp create mode 100644 tests/model_tests/spec_model_kpp/output/reactionRates/25200.cmp create mode 100644 tests/model_tests/spec_model_kpp/output/reactionRates/27000.cmp create mode 100644 tests/model_tests/spec_model_kpp/output/reactionRates/28800.cmp create mode 100644 tests/model_tests/spec_model_kpp/output/reactionRates/30600.cmp create mode 100644 tests/model_tests/spec_model_kpp/output/reactionRates/32400.cmp create mode 100644 tests/model_tests/spec_model_kpp/output/reactionRates/34200.cmp create mode 100644 tests/model_tests/spec_model_kpp/output/reactionRates/36000.cmp create mode 100644 tests/model_tests/spec_model_kpp/output/reactionRates/37800.cmp create mode 100644 tests/model_tests/spec_model_kpp/output/reactionRates/39600.cmp create mode 100644 tests/model_tests/spec_model_kpp/output/reactionRates/41400.cmp create mode 100644 tests/model_tests/spec_model_kpp/output/reactionRates/43200.cmp create mode 100644 tests/model_tests/spec_model_kpp/output/reactionRates/45000.cmp create mode 100644 tests/model_tests/spec_model_kpp/output/reactionRates/46800.cmp create mode 100644 tests/model_tests/spec_model_kpp/output/reactionRates/48600.cmp create mode 100644 tests/model_tests/spec_model_kpp/output/reactionRates/50400.cmp create mode 100644 tests/model_tests/spec_model_kpp/output/speciesConcentrations.output.cmp create mode 100644 tests/model_tests/spec_model_kpp/spec_model_kpp.kpp create mode 100644 tests/model_tests/spec_model_kpp/spec_model_kpp.out.cmp diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 18062618f..6f4afbd69 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -148,6 +148,7 @@ jobs: make modeltests CCOV=true # Run only the new model Testsuite - name: Upload coverage reports to Codecov + if: matrix.os == 'ubuntu-22.04' && matrix.fortran == 11 uses: codecov/codecov-action@v3 with: gcov: true diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ca61be8e..153e6de67 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,23 @@ -# AtChem2 - CHANGELOG +AtChem2 - CHANGELOG +=================== -## v1.2.2 (May 2023) + +post v1.2.2 +----------- + +- new implementation of the Testsuite code coverage using Codecov +- restructure the `ci.yml` file and streamline the continuous integration process +- update the `Makefile` and move the instructions for the Testsuite to a secondary makefile +- support for chemical mechanisms in KPP format (as generated by the MCM website) + + +v1.2.2 (May 2023) +----------------- - move implementation of continuous integration from TravisCI to [GitHub Actions](https://docs.github.com/en/actions) -- improve reporting of the testsuite results by using logfiles -- begin implementation of the new testsuite ("behaviour tests" now referred to as "old tests") -- remove unit testing from CodeCov (coverage reporting is broken) +- improve reporting of the Testsuite results by using logfiles +- begin implementation of the new Testsuite ("behaviour tests" now referred to as "model tests") +- remove unit testing from Codecov (coverage reporting is broken) - disable (provisionally) CVODE support for LAPACK and BLAS - upgrade the install scripts to **openlibm v0.8.1** and **numdiff v5.9.0**, and add error handling - in the `Makefile`, add optimisation flag for `gfortran` and compilation flags for `ifort` @@ -20,7 +32,9 @@ - update the `*.md` files, and add _Buy Me a Coffee_ button to the `README.md` file - several updates to the user manual (including new MCM website at Uni. York) and other minor fixes -## v1.2.1 (January 2021) + +v1.2.1 (January 2021) +--------------------- - add a new environment variable: `ASA` (aerosol surface area) - fix a bug in the C-binding for `gfortran` version 9 and above @@ -29,7 +43,9 @@ - tidy the comments and printout messages of various source files - update the user manual -## v1.2 (May 2020) + +v1.2 (May 2020) +--------------- - implement argument parser and named arguments for the `atchem2` executable - streamline the build procedure, rename and tidy the build scripts, and move them to the `build/` directory @@ -52,14 +68,18 @@ - tidy and improve comments in various source files and scripts - various minor fixes and updates -## v1.1.1 (January 2019) -- add `doc/` directory containing the documentation in markdown format +v1.1.1 (January 2019) +--------------------- + +- create the directory `doc/`, containing the documentation in markdown format - add `CONTRIBUTING.md` file - fix the headers of `lossRates.output` and `productionRates.output` - change the name of the environment variable `ROOFOPEN` to `ROOF` -## v1.1 (November 2018) + +v1.1 (November 2018) +-------------------- - implement a new directory structure - add `CHANGELOG.md` and `CITATION.md` files @@ -75,13 +95,15 @@ - implement a unit testing framework (new requirements: **Ruby**, **FRUIT**) - add unit tests for atmosphere, configuration, date and solar functions - add exact solution behaviour tests -- improve running and reporting of the testsuite +- improve running and reporting of the Testsuite - rework the mechanism conversion procedure, and the related Python scripts - add plotting tools in R, Python, Matlab, gnuplot - extend the documentation on the wiki - fix several minor bugs -## v1.0 (July 2017) + +v1.0 (July 2017) +---------------- - create a code repository and organization on [github.com](https://github.com/AtChem/) - adopt the [MIT open source license](https://opensource.org/licenses/MIT) diff --git a/README.md b/README.md index 4780f0f0a..d2da7d55b 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -AtChem2 ![license](https://img.shields.io/github/license/AtChem/AtChem2?color=blue) ![release](https://img.shields.io/github/v/release/AtChem/AtChem2?color=blue) ![AtChem2-CI](https://github.com/AtChem/AtChem2/workflows/AtChem2-CI/badge.svg) [![codecov](https://codecov.io/gh/AtChem/AtChem2/graph/badge.svg?token=b6GTNgTXqJ)](https://codecov.io/gh/AtChem/AtChem2) +AtChem2 [![license](https://img.shields.io/github/license/AtChem/AtChem2?color=blue)](https://github.com/AtChem/AtChem2/blob/master/LICENSE) [![release](https://img.shields.io/github/v/release/AtChem/AtChem2?color=blue)](https://github.com/AtChem/AtChem2/releases) [![AtChem2 CI](https://github.com/AtChem/AtChem2/actions/workflows/ci.yml/badge.svg)](https://github.com/AtChem/AtChem2/actions/workflows/ci.yml) [![codecov](https://codecov.io/gh/AtChem/AtChem2/graph/badge.svg)](https://codecov.io/gh/AtChem/AtChem2) ======= -**AtChem2** is a modelling tool for atmospheric chemistry. It is primarily designed to use the **Master Chemical Mechanism** (MCM, http://mcm.york.ac.uk/), but it can be used with any general set of chemical reactions as long as they are provided in the correct format. The MCM is a near-explicit chemical mechanism which describes the gas-phase oxidation of volatile organic compounds (VOC) in the lower atmosphere. +**AtChem2** is a modelling tool for atmospheric chemistry. It is primarily designed to use the **Master Chemical Mechanism** (MCM, https://mcm.york.ac.uk/MCM), but it can be used with any general set of chemical reactions as long as they are provided in the correct format. The MCM is a near-explicit chemical mechanism which describes the gas-phase oxidation of volatile organic compounds (VOC) in the lower atmosphere. AtChem2 is _open source_, under the [MIT license](https://opensource.org/licenses/MIT). @@ -20,16 +20,16 @@ Directory structure - `model/` contains an example directory structure for the chemical mechanism, model configuration, constraints, output, and an example chemical mechanism (in FACSIMILE format). There can be several such directories (with different names). - `obj/` contains the files generated by the Fortran compiler. - `src/` contains the Fortran source files. -- `tests/` contains the Test Suite scripts and files. +- `tests/` contains the Testsuite scripts and files. - `tools/` contains shell scripts to install AtChem2 and its dependencies, plotting scripts in various languages, and other utilities. Installation, Setup and Execution --------------------------------- -AtChem2 requires a **Fortran** compiler (GNU `gfortran` or Intel `ifort`), the **CVODE** (part of [SUNDIALS](https://computing.llnl.gov/projects/sundials)) and **openlibm** libraries, **make**, and **Python**. Compilation of CVODE also requires **cmake**. Optionally, **numdiff**, **FRUIT**, and **Ruby** are required to run the Test Suite. AtChem2 compiles and runs on Unix/Linux and macOS systems. A working knowledge of the **unix shell** is required to install and use AtChem2. +AtChem2 requires a **Fortran** compiler (GNU `gfortran` or Intel `ifort`), the **CVODE** (part of [SUNDIALS](https://computing.llnl.gov/projects/sundials)) and **openlibm** libraries, **make**, and **Python**. Compilation of CVODE also requires **cmake**. Optionally, **numdiff**, **FRUIT**, and **Ruby** are required to run the Testsuite. AtChem2 compiles and runs on Unix/Linux and macOS systems. A working knowledge of the **unix shell** is required to install and use AtChem2. -The latest stable version of AtChem2 can be downloaded from the [Releases page](https://github.com/AtChem/AtChem2/releases). After installing the required dependencies using the scripts in the `tools/install/` directory, copy the file `tools/install/Makefile.skel` to the _Main Directory_ and rename it `Makefile`. Set the variables `CVODELIB`, `OPENLIBMDIR` and `FRUITDIR` in `Makefile` to the paths of CVODE, openlibm and (if installed) FRUIT. To compile the model using the example chemical mechanism, execute the command: +The latest stable version of AtChem2 can be downloaded from the [Releases page](https://github.com/AtChem/AtChem2/releases). After installing the required dependencies using the scripts in the `tools/install/` directory, copy the file `tools/install/Makefile.skel` to the _Main Directory_ and rename it `Makefile`. Set the variables `CVODELIBDIR`, `OPENLIBMDIR` and `FRUITDIR` in `Makefile` to the paths of CVODE, openlibm and (if installed) FRUIT. To compile the model using the example chemical mechanism, execute the command: ``` ./build/build_atchem2.sh ./model/mechanism.fac diff --git a/build/build_atchem2.sh b/build/build_atchem2.sh index 0ca1a85ca..16e32a6c9 100755 --- a/build/build_atchem2.sh +++ b/build/build_atchem2.sh @@ -10,14 +10,12 @@ # # ----------------------------------------------------------------------------- +# ----------------------------------------------------------------------------- # Script to process the mechanism file (*.fac) and convert it to the # correct format for AtChem2. # -# N.B.: the script MUST be run from the base directory of AtChem2. -# # $1 is the location of the chemical mechanism file in FACSIMILE -# format. This argument is NOT optional, and there is no -# default. +# format. Argument $1 is NOT optional, and there is no default. # # $2 is the directory for the chemical mechanism in Fortran format: # - mechanism.species @@ -25,14 +23,18 @@ # - mechanism.prod # - mechanism.ro2 # - mechanism.f90 -# By default, it is ./model/configuration/ +# By default, argument $2 is: ./model/configuration/ # # $3 is the directory of the MCM data files: # - list of organic peroxy radicals (RO2) # - parameters to calculate photolysis rates -# By default, it is ./mcm/ +# By default, argument $3 is: ./mcm/ +# +# Usage: +# ./build/build_atchem2.sh /path/to/mechanism/file +# ./build/build_atchem2.sh /path/to/mechanism/file /path/to/mechanism/directory +# ----------------------------------------------------------------------------- -set -e echo "" echo "* facsimile mechanism file:" $1 echo "* fortran mechanism directory [ default = ./model/configuration/ ]:" $2 @@ -54,7 +56,7 @@ else fi echo "" -echo "make base executable" +echo "make atchem2 executable" make exit 0 diff --git a/build/fix_mechanism_fac.py b/build/fix_mechanism_fac.py index a449d1ce8..e171b9afa 100644 --- a/build/fix_mechanism_fac.py +++ b/build/fix_mechanism_fac.py @@ -9,127 +9,172 @@ # # ----------------------------------------------------------------------------- -# This script contains functions to fix the contents of a chemical -# mechanism file in FACSIMILE format (.fac ) by removing the incorrect -# newline characters. +# -------------------------------------------------------------------- # +# This script corrects the content of a chemical mechanism file in +# FACSIMILE format (.fac) by removing incorrect newline characters. +# +# Due to a bug of the extraction tool on the MCM website, sometimes +# the newline character is inserted in the wrong place. For example: +# +# % 3.8D-13*EXP(780/TEMP)*(1-1/(1+498*EXP(-1160/TEMP))) : CH3O2 + HO2 = +# CH3OOH ; % 3.8D-13*EXP(780/TEMP)*(1/(1+498*EXP(-1160/TEMP))) : CH3O2 + HO2 = +# HCHO ; +# % 2.3D-12*EXP(360/TEMP)*0.001 : CH3O2 + NO = CH3NO3 ; +# +# This may cause issues during the conversion to Fortran format by +# mech_converter.py. The script fixes these errors, if present, and +# returns the chemical mechanism properly formatted, e.g.: +# +# % 3.8D-13*EXP(780/TEMP)*(1-1/(1+498*EXP(-1160/TEMP))) : CH3O2 + HO2 = CH3OOH ; +# % 3.8D-13*EXP(780/TEMP)*(1/(1+498*EXP(-1160/TEMP))) : CH3O2 + HO2 = HCHO ; +# % 2.3D-12*EXP(360/TEMP)*0.001 : CH3O2 + NO = CH3NO3 ; # # ARGUMENT: -# - path to the .fac file -# ---------------------------------------------- # +# 1. path to the mechanism .fac file +# -------------------------------------------------------------------- # from __future__ import print_function from functools import reduce import sys import re -## ------------------------------------------------------------------ ## +# =========================== FUNCTIONS =========================== # + +def fix_fac_full_contents(input_file): + """ + Given a .fac file, return the contents of the file, but with + incorrect newline characters removed and the affected lines + concatenated correctly. -def fix_fac_full_contents(filename): - # Given a filename, return the contents of the file, but with - # incorrect newline characters removed, and the affected lines - # concatenated correctly. This will probably fail if a line is - # REALLY long, stretching over two full lines, but should probably - # then give an error as output. - # - # Using splitlines rather than readlines(), we take out the errant - # carriage returns, and for any line with such on it, we return to - # members of the list. - with open(filename, 'r') as file_open: + WARNING: this will probably fail if a line is REALLY long, + stretching over two full lines, but in this case it should then + give an error as output. + + Args: + input_file (str): name of the .fac file to be corrected + + Returns: + fixed_file (list): corrected mechanism file, with each line + as a separate string + """ + + # Using splitlines() rather than readlines(), we take out the + # errant carriage returns, and, for any line with such on it, we + # return it to the list. + with open(input_file, 'r') as file_open: contents = file_open.read().splitlines() # print contents orig_contents_len = len(contents) - print(str(filename) + ': file read in ' + str(orig_contents_len) + ' items') + print(str(input_file) + ': file read in ' + str(orig_contents_len) + ' items.') contents_count = 0 - # This variable will hold the indices to be deleted once their contents have been concatenated onto the - # previous element. + # This variable will hold the indices to be deleted once their + # contents have been concatenated onto the previous element. to_delete = [] - # Firstly wait until we reach a line containing 'Reaction definitions'. - # Then ignore comment lines. Then correct the lines which don't start with a % - they should be concatenated - # onto the previous entry + # First, wait until we reach a line containing 'Reaction definitions'. + # Second, ignore comment lines. + # Third, correct the lines which don't start with a '%': they should + # be concatenated onto the previous entry. in_reaction_definition_section = False - for i in range(len(contents)): + for i, line in enumerate(contents): if not in_reaction_definition_section: - # Check to see whether we are entering the 'Reaction definitions' section - if 'Reaction definitions.' in contents[i]: + # Check to see whether we are entering the 'Reaction definitions' section. + if 'Reaction definitions.' in line: in_reaction_definition_section = True - # Only do other checks if we've reached 'Reaction definitions' sections + # Only do other checks if we've reached the 'Reaction definitions' section. else: - if re.match(r'\*', contents[i]): + if re.match(r'\*', line): pass - else: - if not re.match(r'%', contents[i]): - # print 'fail' - # print contents[i - 1], 'XX', contents[i], 'XX', contents[i + 1] - contents[i - 1] += ' ' + contents[i] - # print contents[i - 1] - contents_count += 1 - to_delete.append(i) - print(str(contents_count) + ' corrections made - now removing old') - - # Remove old elements which have now been concatenated onto previous + elif not re.match(r'%', line): + # print 'fail' + # print contents[i-1], 'XX', contents[i], 'XX', contents[i+1] + contents[i-1] += ' ' + line + # print contents[i-1] + contents_count += 1 + to_delete.append(i) + print(str(contents_count) + ' corrections made -- now removing old.') + + # Remove old elements which have now been concatenated onto previous. for i in reversed(to_delete): del contents[i] - assert orig_contents_len == contents_count + len(contents), \ - str(filename) + ': file is probably too messed up with carriage returns for this simple script to fix.' - - # If there are any lines that have now been doubled-stacked, then break them into pieces. - # Find the end of the header section, because we don't want to parse that section anymore - it - # often contains semicolons within the lines as well as at the end, which breaks all our logic - end_of_header_index = [i for i, item in enumerate(contents) if re.search(r'Generic Rate Coefficients', item)] + assert orig_contents_len == contents_count + len(contents), str(input_file) \ + + ': file is probably too messed up with carriage returns for this script to fix.' + + # If there are any lines that have now been doubled-stacked, break them into pieces. + # Find the end of the header section, because we don't want to parse that section + # anymore. It often contains semicolons within the lines as well as at the end, + # which breaks all our logic. + end_of_header_index = [i for i, item in enumerate(contents) \ + if re.search(r'Generic Rate Coefficients', item)] assert len(end_of_header_index) == 1 end_of_header_index = end_of_header_index[0] # Split non-header lines by semicolons, but we keep the semicolons this way. - interim_contents = [reduce(lambda acc, elem: acc[:-1] + [acc[-1] + elem] if elem == ";" else acc + [elem], re.split("(;)", element), []) for element in contents[end_of_header_index:]] + interim_contents = [reduce(lambda acc, elem: acc[:-1] + [acc[-1] + elem] \ + if elem == ';' else acc + [elem], re.split(r'(;)', element), []) \ + for element in contents[end_of_header_index:]] - # Remove empty sub-strings + # Remove empty sub-strings. interim_contents = [[item for item in sublist if item] for sublist in interim_contents] - # Look for any lines containing more than 2 elements. These are lines where more than - # one line is broken running together. At this point, the file is too broken to - # easily fix manually - get the user to fix it and run again. - if max([len(line) for line in interim_contents]) > 2: + # Look for any lines containing more than 2 elements. These are lines where + # more than one line is broken running together. At this point, the file is + # too broken to easily fix manually -- get the user to fix it and run again. + if max((len(line) for line in interim_contents)) > 2: # Get index of line with error - error_line = ([len(line) for line in interim_contents]).index(max([len(line) for line in interim_contents])) + end_of_header_index + 1 - exit('The inputted file is broken near to line ' + str(error_line) + ' in a way that this script cannot handle.' + - ' Please manually fix this error and re-run this script.') - - # Reattach the header lines, and unwrap the list of lists in interim_contents - final_list = contents[:end_of_header_index] + [item for sublist in interim_contents for item in sublist] - return final_list - - -def fix_fac_full_file(filename): - # Given a filename, overwrite the contents of the file with the same contents, - # but with incorrect newline characters removed, and the affected lines - # concatenated correctly. This will probably fail if a line is REALLY long, - # stretching over two full lines, but should probably then give an error as output. - # All the heavy lifting is done by fix_fac_contents - here we just provide a - # simple wrapper to write back to the same file. - print('Running fix_fac_file on ' + str(filename)) - contents = fix_fac_full_contents(filename) + line_lengths = [len(line) for line in interim_contents] + error_line = line_lengths.index(max(line_lengths)) + end_of_header_index + 1 + sys.exit('The inputted file is broken near line ' + str(error_line) \ + + ' in a way that this script cannot handle.' \ + + ' Please manually fix this error and re-run this script.') + + # Reattach the header lines, and unwrap the list of lists in interim_contents. + fixed_file = contents[:end_of_header_index] \ + + [item for sublist in interim_contents for item in sublist] + + # Return the corrected mechanism file + return fixed_file + +# ------------------------------------------------------------ # + +def fix_fac_full_file(input_file): + """ + Given a .fac file, overwrite the contents of the file with the + same contents, but with incorrect newline characters removed and + the affected lines concatenated correctly. + + All the work is done by the fix_fac_contents() function -- see its + documentation for details. This function is just a wrapper to + write the output of fix_fac_contents() back to the same .fac file. + + Args: + input_file (str): name of the .fac file to be fixed + """ + + print('Running fix_fac_full_file() on: ' + str(input_file)) + + contents = fix_fac_full_contents(input_file) contents = [item + '\n' for item in contents] - with open(filename, 'w') as file_open: + + with open(input_file, 'w') as file_open: file_open.writelines(contents) - return -## ------------------------------------------------------------------ ## +# =========================== MAIN =========================== # def main(): - # Pass argument from command line as path to file. + # Pass argument from command line -- name of the .fac file to be fixed if len(sys.argv) > 1: fix_fac_full_contents(sys.argv[1]) else: - print('******************************') - print("Please pass a filename as argument. This script will then fix this file to remove incorrect newlines.") - print('******************************') - return + print('*****************************************************') + print('* Please pass a filename (.fac) as script argument. *') + print('*****************************************************') +# Call the main function if executed as script if __name__ == '__main__': main() diff --git a/build/kpp_conversion.py b/build/kpp_conversion.py new file mode 100644 index 000000000..fa92a0628 --- /dev/null +++ b/build/kpp_conversion.py @@ -0,0 +1,238 @@ +# ----------------------------------------------------------------------------- +# +# Copyright (c) 2017 Sam Cox, Roberto Sommariva +# +# This file is part of the AtChem2 software package. +# +# This file is covered by the MIT license which can be found in the file +# LICENSE.md at the top level of the AtChem2 distribution. +# +# ----------------------------------------------------------------------------- + +# -------------------------------------------------------------------- +# This script converts a chemical mechanism file from KPP format +# (.kpp) to FACSIMILE format (.fac). The KPP file must have the same +# structure of the files generated by the MCM web extractor. A minimal +# example of this structure is: `mcm/mechanism_skel.kpp`. +# +# ARGUMENT: +# 1. path to the mechanism .kpp file +# -------------------------------------------------------------------- # +from __future__ import print_function +import sys +import re + + +# =========================== FUNCTIONS =========================== # + + +def mechanism_section(input_lines, start_section, end_section): + """ + Parse the content of a file, provided in the form of a list + (each line of the file an item of the list), and extract the + section of the file delimited by two given markers. + + Args: + input_lines (list): file to parse, each line is a separate string + start_section (str): marker for the beginning of the section + end_section (str): marker for the end of the section + + Returns: + section_lines (list): file section, each line is a separate string + + """ + + nlines = len(input_lines) + + start_i = 0 + for i in range(start_i, nlines): + if start_section in input_lines[i]: + start_i = i + 1 + break + + end_i = nlines + if end_section: + for i in range (start_i, nlines): + if end_section in input_lines[i]: + end_i = i + 1 + break + + section_lines = input_lines[start_i:end_i] + return section_lines + +# ------------------------------------------------------------ # + +def convert_ro2(kpp_lines): + """ + Converts the summation of organic peroxy radicals (RO2) to + FACSIMILE format. + + Args: + kpp_lines (list): lines with the RO2 sum in KPP + + Returns: + fac_lines (list): lines with the RO2 sum in FACSIMILE + """ + + fac_lines = [] + for line in kpp_lines: + new_line = re.sub(r'C\(ind_([A-Z0-9_]+)\s*\)', r'\1', line) + new_line = re.sub(r'\s*&', r'', new_line.strip()) + fac_lines.append(new_line) + return fac_lines + +# ------------------------------------------------------------ # + +def convert_rates(kpp_lines): + """ + Converts the generic and complex rate coefficients to + FACSIMILE format. + + Args: + kpp_lines (list): lines with the rate coefficients in KPP + + Returns: + fac_lines1 (list): lines with the generic rate coefficients in FACSIMILE + fac_lines2 (list): lines with the complex rate coefficients in FACSIMILE + + """ + + # list of generic rate coefficients -- this list may change with + # future updates of the MCM + simple_list = ['KRO2NO','KRO2HO2','KAPHO2','KAPNO','KRO2NO3','KNO3AL','KDEC', + 'KROPRIM','KROSEC','KCH3O2','K298CH3O2','K14ISOM1'] + + fac_lines1 = [] + fac_lines2 = [] + for line in kpp_lines: + react_line = re.split(r'=', line) + react_line[1] = react_line[1].replace('**', '@') + new_line = react_line[0].strip() + ' = ' + react_line[1].strip() + ' ;\n' + if react_line[0].strip() in simple_list: + fac_lines1.append(new_line) + else: + fac_lines2.append(new_line) + return fac_lines1, fac_lines2 + +# ------------------------------------------------------------ # + +def convert_reactions(kpp_lines): + """ + Converts the chemical reactions to FACSIMILE format. + + Args: + kpp_lines (list): lines with the chemical reactions in KPP + + Returns: + fac_lines (list): lines with the chemical reactions in FACSIMILE + """ + + fac_lines = [] + for line in kpp_lines: + if re.match(r'{\d+\.}', line): + react_line = re.split(r'[}:;]', line) + rate_coeff = re.sub(r'J\((\d+)\)', r'J<\1>', react_line[2]) + rate_coeff = rate_coeff.replace('**', '@') + new_line = '%' + rate_coeff + ':' + react_line[1] + ';\n' + fac_lines.append(new_line) + return fac_lines + +# ------------------------------------------------------------ # + +def kpp_to_facsimile(input_file): + """Split a .kpp file into 4 sections: the summation of organic + peroxy radicals (RO2), the generic and complex rate coefficients, + the chemical reactions. Each section is separately converted to + FACSIMILE format. + + WARNING: this function may fail if the .kpp file has a different + structure from the .kpp files generated by the MCM web extractor. + + Args: + input_file (str): name of the .kpp file to convert + + Returns: + generic_rates (list): generic rate coefficients + complex_reactions (list): complex rate coefficients + peroxy_radicals (list): summation of organic peroxy radicals + reaction_definitions (list): chemical reactions + + """ + + # Read in the .kpp mechanism file + with open(input_file, 'r') as file_open: + contents = file_open.readlines() + + # Peroxy radicals section + start_peroxy = 'RO2 = & ' + end_peroxy = ') \n' + peroxy_lines = mechanism_section(contents, start_peroxy, end_peroxy) + peroxy_radicals = convert_ro2(peroxy_lines) + + # Generic Rate Coefficients, Complex reactions sections + start_rates = ') \n' + end_rates = '#ENDINLINE' + rates_lines = mechanism_section(contents, start_rates, end_rates) + rates_lines = rates_lines[:-2] # remove `CALL mcm_constants()` line + generic_rates, complex_reactions = convert_rates(rates_lines) + + # Reaction definitions section + start_reactions = '#EQUATIONS' + end_reactions = '' # file ends after list of reactions + reactions_lines = mechanism_section(contents, start_reactions, end_reactions) + reaction_definitions = convert_reactions(reactions_lines) + + # Sections of the mechanism file converted to KPP format + return generic_rates, complex_reactions, peroxy_radicals, reaction_definitions + +# ------------------------------------------------------------ # + +def write_fac_file(input_file): + """ + Convert a .kpp file to FACSIMILE format and save the output to a + .fac file. The format conversion is done by the kpp_to_facsimile() + function -- see its documentation for details. + + Args: + input_file (str): name of the .kpp file to convert + + Returns: + output_file (str): name of the converted .fac file + """ + + print('Running write_fac_file() on: ' + str(input_file)) + + contents1, contents2, contents3, contents4 = kpp_to_facsimile(input_file) + output_file = input_file.split('.')[0] + '.fac' + + with open(output_file, 'w') as file_open: + file_open.write('\n* Generic Rate Coefficients ;\n') + file_open.writelines(contents1) + file_open.write('\n* Complex reactions ;\n') + file_open.writelines(contents2) + file_open.write('\n* Peroxy radicals ;\n') + file_open.write('RO2 = ') + file_open.writelines(contents3) + file_open.write(';\n') + file_open.write('\n* Reaction definitions ;\n') + file_open.writelines(contents4) + + # Filename of the .fac file + return output_file + + +# =========================== MAIN =========================== # + + +def main(): + # Pass argument from command line -- name of the .kpp file to convert + if len(sys.argv) > 1: + write_fac_file(sys.argv[1]) + else: + print('*****************************************************') + print('* Please pass a filename (.kpp) as script argument. *') + print('*****************************************************') + +# Call the main function if executed as script +if __name__ == '__main__': + main() diff --git a/build/mech_converter.py b/build/mech_converter.py index 0e9b12996..9e0bbd817 100644 --- a/build/mech_converter.py +++ b/build/mech_converter.py @@ -12,9 +12,12 @@ # # ----------------------------------------------------------------------------- -# This script converts a chemical mechanism file in FACSIMILE format -# (.fac) into a Fortran-compatible format. The script generates five files in -# the model configuration directory: +# -------------------------------------------------------------------- # +# This script converts a chemical mechanism file -- in FACSIMILE (.fac) +# or KPP (.kpp) format -- into the Fortran-compatible format used by +# AtChem2. The script generates 5 files in the model configuration +# directory: +# # - mechanism.species # - mechanism.reac # - mechanism.prod @@ -24,140 +27,186 @@ # Acknowledgements: B. Nelson, M. Newland # # ARGUMENTS: -# - path to the .fac file -# - path to the model configuration directory [default: model/configuration/] -# - path to the MCM data files directory [default: mcm/] -# ---------------------------------------------- # +# 1. path to the mechanism .fac file +# 2. path to the model configuration directory [default: model/configuration/] +# 3. path to the MCM data files directory [default: mcm/] +# -------------------------------------------------------------------- # from __future__ import print_function +import os import sys import re -import os import fix_mechanism_fac +import kpp_conversion -reservedSpeciesList = ['N2', 'O2', 'M', 'RH', 'H2O', 'BLHEIGHT', 'DEC', 'JFAC', 'DILUTE', 'ROOF', 'ASA', 'RO2'] +reservedSpeciesList = ['N2', 'O2', 'M', 'RH', 'H2O', 'BLHEIGHT', 'DEC', 'JFAC', + 'DILUTE', 'ROOF', 'ASA', 'RO2'] reservedOtherList = ['EXP', 'TEMP', 'PRESS', 'LOG10', 'T', 'J'] -## ------------------------------------------------------------------ ## +# =========================== FUNCTIONS =========================== # -def tokenise_and_process(input_string, variablesDict): +def tokenise_and_process(input_string, vars_dict): """ - This function takes in a single string, and a dictionary of known variables from previous lines, - and returns the same string but with known variables replaced by a reference to their matching - element in a vector q. This removes the dependence on potentially 100+ named variables, and - replaces them with a single vector. - - :param input_string: this should be a string. Its contents will be used as the basis of the return string. - :param variableDict: this is a Dictionary containing all the known variables up to this pointself. - :returns new_rhs: a string based on input_string, but with references to known variables replaced by - references to elements in the vector q. + This function takes in a single string, and a dictionary of known + variables from previous lines, and returns the same string but + with known variables replaced by a reference to their matching + element in a vector q. This removes the dependence on potentially + 100+ named variables, and replaces them with a single vector. + + Args: + input_string (str): a string which will be used as the basis + of the return string (new_rhs) + vars_dict (dict): a dictionary containing all the known + variables up to this point + + Returns: + new_rhs (str): a string based on input_string, but with references + to known variables replaced by references to elements + in vector q """ - assert isinstance(input_string, str), 'tokenise_and_process: input_string is not of type str: ' + str(input_string) - assert isinstance(variablesDict, dict), 'tokenise_and_process: variablesDict is not of type dict: ' + str(variablesDict) + assert isinstance(input_string, str), \ + 'tokenise_and_process: input_string is not of type str: ' + str(input_string) + assert isinstance(vars_dict, dict), \ + 'tokenise_and_process: vars_dict is not of type dict: ' + str(vars_dict) - # Generate start and end points of sections of symbols and nonsymbols - symbol_regex = '[()\-+*@/ ]+' - nonsymbol_regex = '[^()\-+*@/ ]+' + # Generate start and end points of sections of symbols and non-symbols. + symbol_regex = r'[()\-+*@/ ]+' + nonsymbol_regex = r'[^()\-+*@/ ]+' list_of_symbol_starts = [m.start(0) for m in re.finditer(symbol_regex, input_string)] list_of_symbol_ends = [m.end(0) for m in re.finditer(symbol_regex, input_string)] list_of_nonsymbol_starts = [m.start(0) for m in re.finditer(nonsymbol_regex, input_string)] list_of_nonsymbol_ends = [m.end(0) for m in re.finditer(nonsymbol_regex, input_string)] new_rhs = '' - # Now that the symbol/non-symbol sections are identified, we need to create the new string by recombining otherwise - # sections in the right order, with some replaced by q(i) syntax. + # Now that the symbol/non-symbol sections are identified, we need to create + # the new string by recombining the other sections in the right order, with + # some replaced by q(i) syntax. # - # Recombine the lists in the right order, but replace the nonsymbols that aren't numbers, reserved words or reserved species - # (and thus must be new species/intermediate values) with q(i) notation. + # Recombine the lists in the right order, but replace the non-symbols that + # aren't numbers, reserved words or reserved species (and thus must be new + # species/intermediate values) with q(i) notation. # - # Loop while there are any substrings left + # Loop while there are any substrings left. while list_of_symbol_starts != [] or list_of_nonsymbol_starts != []: - # We should use the next symbol if either - # 1) both lists are non-empty and the symbols list has a lower first element, or - # 2) only the symbols list has anything left in it - if ((list_of_symbol_starts != [] and list_of_nonsymbol_starts != []) and list_of_symbol_starts[0] < list_of_nonsymbol_starts[0]) \ - or (list_of_symbol_starts != [] and list_of_nonsymbol_starts == []): - # add next symbol - # Print the substring as-is + # We should use the next symbol if: + # 1) both lists are non-empty and the symbols list has a lower first element, or + # 2) only the symbols list has anything left in it. + if ((list_of_symbol_starts != [] and list_of_nonsymbol_starts != []) \ + and list_of_symbol_starts[0] < list_of_nonsymbol_starts[0]) \ + or (list_of_symbol_starts != [] and list_of_nonsymbol_starts == []): + # Add next symbol. Print the substring as-is. new_rhs += input_string[list_of_symbol_starts[0]:list_of_symbol_ends[0]] - # Remove the indices of this substring from the lists + # Remove the indices of this substring from the lists. del list_of_symbol_starts[0] del list_of_symbol_ends[0] - else: # This will execute if there are only non-symbols left, or if the non-symbols list has a lower first element. - # add next nonsymbol - # Get the substring of interest + # Otherwise, if there are only non-symbols left, or if the non-symbols + # list has a lower first element. + else: + # Add next non-symbol. Get the substring of interest. varname = input_string[list_of_nonsymbol_starts[0]:list_of_nonsymbol_ends[0]] - # If it's not a number or a reserved word, it must be a variable, so substitute with the relevant element from q. - if not re.match('^[0-9]', varname) and varname not in reservedSpeciesList and varname not in reservedOtherList: - new_rhs += 'q(' + str(variablesDict[varname]) + ')' - # Otherwise, just print the substring as-is + # If it's not a number or a reserved word, it must be a variable, + # so substitute with the relevant element from q. + if not re.match(r'^[0-9]', varname) and varname not in reservedSpeciesList \ + and varname not in reservedOtherList: + new_rhs += 'q(' + str(vars_dict[varname]) + ')' + # Otherwise, just print the substring as-is. else: new_rhs += input_string[list_of_nonsymbol_starts[0]:list_of_nonsymbol_ends[0]] - # Remove the indices of this substring from the lists + # Remove the indices of this substring from the lists. del list_of_nonsymbol_starts[0] del list_of_nonsymbol_ends[0] - # Return the reconstructed string + # Return the reconstructed string. return new_rhs +# ------------------------------------------------------------ # -def convert(input_file, mech_dir, mcm_dir): +def convert_to_fortran(input_file, mech_dir, mcm_vers): """ - This is the main function of this file. It takes as input a chemical mechanism file (.fac), and from it generates - 5 files for use by AtChem2's Fortran code: - - - 'Generic Rate Coefficients' and 'Complex reactions' go to mech_dir/mechanism.f90 with little more than formatting - changes - each line is replicated in full but with each named rate converted to an element in the vector q. - - The rates defined in 'Reaction definitions' also go to mech_dir/mechanism.f90 as elements of the vector p. - - The species involved as reactants (respectively products) in reactions in 'Reaction definitions' are split up into individual - species, and their species and reactions numbers go to mechanism.reac (respectively mechanism.prod). Combining - mechanism.reac, mechanism.prod and the last section of mech_dir/mechanism.f90 gives the original information - contained in 'Reaction definitions' but in the format that AtChem2 can parse. - - The numbers and names of all species encountered go to mechanism.species. - - The numbers and names of all RO2 species in 'Peroxy radicals' end up in mechanism.ro2. - - :param input_file: string containing a relative or absolute reference to the .fac file to be processed. - :param mech_dir: string containing a relative or absolute reference to the directory in which the function should - place mechanism.f90, and where the environmentVariables.config file should be read from. - This is normally model/configuration. - :param mech_dir: string containing a relative or absolute reference to the directory in which the function should - place mechanism.{prod,reac,ro2,species}. This is normally model/configuration/ for the given model. - :param mcm_dir: string containing a relative or absolute reference to the directory housing the reference file peroxy-radicals_v3.3.1. - This is normally mcm/ + This function converts a chemical mechanism file into the + Fortran-compatible format used by the AtChem2 ODE solver. The + function takes as input a file with the chemical mechanism (either + a .fac or .kpp file), and generates 5 Fortran files (mechanism.*) + in a given directory (mech_dir): + + * Each species and reaction in the chemical mechanism is assigned + an ID number. + + * The equations defined in sections 'Generic Rate Coefficients' + and 'Complex reactions' go to the mechanism.f90 file with little + more than formatting changes -- each line is replicated in full, + with each named rate converted to an element in vector q. + + * The reaction rates defined in section 'Reaction definitions' go + to the mechanism.f90 file as elements of vector p. + + * The species involved as reactants (respectively products) in the + reactions in section 'Reaction definitions' are split up into + individual species, and the species and reactions ID numbers go + to mechanism.reac (respectively mechanism.prod). Combining + mechanism.reac, mechanism.prod and the last section of + mechanism.f90 gives the original information contained in + section 'Reaction definitions' of the .fac file, but in a + format that AtChem2 can parse. + + * The ID numbers and names of all species in the chemical + mechanism go to the mechanism.species file. + + * The ID numbers and names of all RO2 species in section 'Peroxy + radicals' go to the mechanism.ro2 file. + + Args: + input_file (str): relative or absolute reference to the .fac file + mech_dir (str): relative or absolute reference to the directory where + the mechanism.* files will be created, and where + the environmentVariables.config file should be read from + By default it is: model/configuration/ + mcm_vers (str): relative or absolute reference to the directory containing + the reference list of RO2 species (peroxy-radicals_v*) + By default it is: mcm/ """ - # Work out the values of directory and filename of input_file, and check their existence. + # Get the directory and filename of input_file, and check that they exist. input_directory = os.path.dirname(os.path.abspath(input_file)) input_filename = os.path.basename(input_file) - assert os.path.isfile(os.path.join(input_directory, input_filename)), 'The input file ' + str( - os.path.join(input_directory, input_filename)) + ' does not exist.' + assert os.path.isfile(os.path.join(input_directory, input_filename)), \ + 'The input file ' + str(os.path.join(input_directory, input_filename)) + ' does not exist.' print(input_directory) - # Fix the input contents of any errant newlines - fix_mechanism_fac.fix_fac_full_file(os.path.join(input_directory, input_filename)) + # Check if the chemical mechanism file is in KPP format, in which case convert it + # to FACSIMILE format (see documentation of `kpp_conversion.py` for more info) + if input_filename.split('.')[1] == 'kpp': + input_fac = kpp_conversion.write_fac_file(os.path.join(input_directory, input_filename)) + else: + input_fac = input_filename + + # Check and fix the .fac file of any errant newlines (see documentation + # of `fix_mechanism_fac.py` for more info). + fix_mechanism_fac.fix_fac_full_file(os.path.join(input_directory, input_fac)) - # Read in the input file + # Read in the input file. print('Reading input file') - with open(os.path.join(input_directory, input_filename), 'r') as input_file: - s = input_file.readlines() + with open(os.path.join(input_directory, input_fac), 'r') as input_mech: + mechList = input_mech.readlines() - # split the lines into the following sections: + # Split the lines into the following sections: # - Ignore everything up to Generic Rate Coefficients # - Generic Rate Coefficients # - Complex reactions # - Peroxy radicals # - Reaction definitions section_headers_indices = [0, 1, 2, 3] - section_headers = ['Generic Rate Coefficients', 'Complex reactions', 'Peroxy radicals', 'Reaction definitions'] + section_headers = ['Generic Rate Coefficients', 'Complex reactions', + 'Peroxy radicals', 'Reaction definitions'] generic_rate_coefficients = [] complex_reactions = [] peroxy_radicals = [] reaction_definitions = [] section = 0 - for line in s: + for line in mechList: for header_index in section_headers_indices: if section_headers[header_index] in line: section += 1 @@ -170,257 +219,287 @@ def convert(input_file, mech_dir, mcm_dir): elif section == 4: reaction_definitions.append(line) else: - assert section == 0, "Error, section is not in [0,4]" + assert section == 0, 'Error, section is not in [0,4]' - - # Convert peroxy_radicals to a list of strings, each of the RO2 species from 'Peroxy radicals' + # Convert peroxy_radicals to a list of strings, with each of the RO2 species from the RO2 sum + # in the 'Peroxy radicals' section. ro2List = [] for item in peroxy_radicals: - if not re.match('\*', item): - # We have an equals sign on the first line. Handle this by splitting against =, then taking the last element of the - # resulting list, which will either be the right-hand side of the first line, or the whole of any other line. - # Similarly, the final line will end with a colon. Handle in a similar way. - # Then split by +. Append each item to ro2_input: multiple appends use 'extend' - ro2List.extend([elem.strip() for elem in item.split('=')[-1].split(';')[0].strip().split('+')]) - # Remove empty strings + if not re.match(r'\*', item): + # We have an equals sign on the first line. Handle this by splitting against '=', + # then taking the last element of the resulting list, which will either be the + # right-hand side of the first line, or the whole of any other line. Similarly, + # the final line will end with a colon. Handle in a similar way. Then split + # by '+'. Append each item to ro2_input: multiple appends use 'extend'. + ro2List.extend([elem.strip() for elem in \ + item.split('=')[-1].split(';')[0].strip().split('+')]) + # Remove empty strings. ro2List = list(filter(None, ro2List)) - - # Read in the reference RO2 species from the peroxy-radicals_v3.3.1 file - with open(os.path.join(mcm_dir, 'peroxy-radicals_v3.3.1'), 'r') as RO2List_file: + # Read in the reference list of RO2 species from the MCM (peroxy-radicals_v*). + # + # => the RO2 reference list is specific to each version of the MCM + # => RO2 lists for versions v3.1, v3.2, v3.3.1 of the MCM are available + # => change the filename if using a version of the MCM other than the default (v3.3.1) + # + # TODO: implement a different way to set the mcm version (see issue #297) + with open(os.path.join(mcm_vers, 'peroxy-radicals_v3.3.1'), 'r') as RO2List_file: RO2List_reference = [r.rstrip() for r in RO2List_file.readlines()] - # Check each of the RO2s from 'Peroxy radicals' are in the reference RO2 list. If not print a warning at the top of - # mechanism.f90 for each errant species. - # TODO: This will break the exected format when mechanism.f90 is replaced by a parsable format. + # Check that each of the RO2s from 'Peroxy radicals' are present + # in the RO2 reference list from the MCM. If not, print a warning + # at the top of mechanism.f90 for each errant species. + # + # TODO: This will break the expected format when mechanism.f90 is + # replaced by a parsable format print('looping over inputted RO2s') with open(os.path.join(mech_dir, 'mechanism.f90'), 'w') as mech_rates_file: - mech_rates_file.write("""! Note that this file is automatically generated by build/mech_converter.py -- Any manual edits to this file will be overwritten when calling build/mech_converter.py -""") + mech_rates_file.write('! Note that this file is automatically generated by build/mech_converter.py -- Any manual edits to this file will be overwritten when calling build/mech_converter.py\n') + for ro2_species in [element for element in ro2List if element not in RO2List_reference]: - print(' ****** Warning: ' + ro2_species + ' NOT found in the reference RO2 list ****** ') - mech_rates_file.write('! ' + ro2_species + - ' is not in the MCM list of RO2 species. Should it be in the RO2 sum?\n') + print('****** Warning: ' + ro2_species + ' NOT found in the reference RO2 list ******') + mech_rates_file.write('! ' + ro2_species + ' is not in the MCM list of RO2 species. Should it be in the RO2 sum?\n') - # Identify whether dilution is in use + # Check the DILUTE environment variable to identify whether dilution should be applied. dilute = False with open(mech_dir + '/environmentVariables.config') as env_var_file: environmentVariables = env_var_file.readlines() for x in environmentVariables: x = x.split() - try: - if x[1] == "DILUTE" and x[2] != "NOTUSED": + if x[1] == 'DILUTE' and x[2] != 'NOTUSED': dilute = x[2] - except IndexError: continue + # ------------------------------------------------- + # Initialise list, dictionary and a counter. mechanism_rates_coeff_list = [] - variablesDict = dict() + variablesDict = {} reactionNumber = 0 - # Process sections 1 and 2 - # - copy comment lines across - # - other lines are reformatted to be Fortran syntax, then its contents edited to convert individual - # rate names to elements in a vector q. + + # Process sections 1 and 2 ('Generic Rate Coefficients', 'Complex reactions'): + # - copy comment lines across. + # - other lines are reformatted to Fortran syntax, then their contents edited + # to convert individual rate names to elements in a vector q. for line in generic_rate_coefficients + complex_reactions: - # Check for comments (beginning with a !), or blank lines - if (re.match('!', line) is not None) or (line.isspace()): + + # Check for comments (beginning with a '!'), or blank lines. + if (re.match(r'!', line) is not None) or (line.isspace()): mechanism_rates_coeff_list.append(line) - # Check for lines starting with either ; or *, and write these as comments - elif (re.match(';', line) is not None) or (re.match('[*]', line) is not None): + # Check for lines starting with either ';' or '*', and write these as comments. + elif (re.match(r';', line) is not None) or (re.match(r'[*]', line) is not None): mechanism_rates_coeff_list.append('!' + line) - # Otherwise assume all remaining lines are in the correct format, and so process them + # Otherwise assume all remaining lines are in the correct format, and process them. else: - # reactionNumber keeps track of the line we are processing - reactionNumber += 1 - - # This matches anything like @-dd.d and replaces with **(-dd.d). This uses (?<=@) as a lookbehind assertion, - # then matches - and any combination of digits and decimal points. This replaces the negative number by its - # bracketed version. - # It also then converts all @ to ** etc. - line2 = re.sub('(?<=@)-[0-9.]*', - '(\g<0>)', + reactionNumber += 1 # keep track of the line we are processing + + # Match anything like '@-dd.d' and replaces with '**(-dd.d)'. + # Use '(?<=@)' as a lookbehind assertion, then matches any combination + # of digits and decimal points. Replace the negative number by its + # bracketed version. Also convert all '@' to '**' etc... + line2 = re.sub(r'(?<=@)-[0-9.]*', + r'(\g<0>)', line.replace(';', '').strip() ).replace('@', '**') - # Append _DP to the end of all digits that aren't followed by more digits or letters (targets a few too many) - line2 = re.sub('[0-9]+(?![a-zA-Z0-9\.])', - '\g<0>_DP', + # Append `_DP` to the end of all digits that aren't followed + # by more digits or letters (targets a few too many). + line2 = re.sub(r'[0-9]+(?![a-zA-Z0-9\.])', + r'\g<0>_DP', line2) - # Undo the suffix _DP for any species names and for LOG10 + # Undo the suffix `_DP` for any species names and for LOG10. line2 = re.sub(r'\b(?P[a-zA-Z][a-zA-Z0-9]*)_DP', - '\g', + r'\g', line2) - # Undo the suffix _DP for any numbers like 1D7 or 2.3D-8 + # Undo the suffix `_DP` for any numbers like 1D7 or 2.3D-8. line2 = re.sub(r'\b(?P[0-9][0-9\.]*)[dDeE](?P[+-]*[0-9]+)_DP', - '\ge\g_DP', + r'\ge\g_DP', line2) - # Add .0 to any literals that don't have a decimal place - this is necessary as it seems you can't use extended - # precision on such a number - gfortran complains about an unknown integer kind, when it should really be a real kind + # Add .0 to any literals that don't have a decimal place. This is + # necessary as it seems you can't use extended precision on such a + # number -- gfortran complains about an unknown integer kind, when + # it should really be a real kind. line2 = re.sub(r'(?[0-9]+)_DP', - '\g.0_DP', + r'\g.0_DP', line2) - # strip whitespace, ; and % + # Strip whitespace, ';' and '%'. cleaned_line = line2.strip().strip('%;').strip() - # Process the assignment: split by = into variable names and values - [lhs, rhs] = re.split('=', cleaned_line) + # Process the assignment: split by '=' into variable names + # and values, then strip each. + [lhs, rhs] = re.split(r'=', cleaned_line) - # Strip each. variable_name = lhs.strip() value = rhs.strip() # TODO: check for duplicates variablesDict[variable_name] = reactionNumber - # Replace any variables declared here with references to q, with each new variable assigned - # to a new element of q. + # Replace any variables declared here with references to q: each new + # variable is assigned to a new element of q. new_rhs = tokenise_and_process(value, variablesDict) - # Save the resulting string to mechanism_rates_coeff_list - mechanism_rates_coeff_list.append('q('+str(variablesDict[variable_name]) + ') = ' + new_rhs + ' !' + cleaned_line + '\n') + # Save the resulting string to mechanism_rates_coeff_list. + mechanism_rates_coeff_list.append('q('+str(variablesDict[variable_name]) + ') = ' \ + + new_rhs + ' !' + cleaned_line + '\n') - # Save the number of such equations to be output to mechanism.{prod,reac} + # Save the number of such equations to be output to mechanism.{prod,reac}. numberOfGenericComplex = reactionNumber + # ------------------------------------------------- - # Initialise a few variables + # Initialise a few variables. speciesList = [] rateConstants = [] reactionNumber = 0 - # Process 'Reaction definitions'. We process this before 'Peroxy radicals' because that relies on our - # SpeciesList generated here. + + # Process 'Reaction definitions'. We process this before 'Peroxy radicals' + # because that relies on SpeciesList, which is generated here. # - copy comment lines across # - other lines are split into their consituent parts: - # - rateConstants are the reaction rates; these are processed via reformatting and tokenisation to use the vector q where needed. - # - the reactants and products of each species are collected up, numbered as necessary, and their placements output to mechanism.{prod,reac,species} + # - rateConstants are the reaction rates; these are processed via + # reformatting and tokenisation to use the vector q where needed. + # - the reactants and products of each species are collected up, numbered + # as necessary, and their placements output to mechanism.{prod,reac,species} mech_reac_list = [] mech_prod_list = [] - # Loop over all lines in the reaction_definitions section of the input file + + # Loop over all lines in the reaction_definitions section of the input file. for line in reaction_definitions: - # Check for comments (beginning with a !), or blank lines - if (re.match('!', line) is not None) or (line.isspace()): + # Check for comments (beginning with a '!'), or blank lines. + if (re.match(r'!', line) is not None) or (line.isspace()): rateConstants.append(line) - # Check for lines starting with either ; or *, and write these as comments - elif (re.match(';', line) is not None) or (re.match('[*]', line) is not None): + # Check for lines starting with either ';' or '*', and write these as comments. + elif (re.match(r';', line) is not None) or (re.match(r'[*]', line) is not None): rateConstants.append('!' + line) - # Otherwise assume all remaining lines are in the correct format, and so process them + # Otherwise assume all remaining lines are in the correct format, and process them. else: - # reactionNumber keeps track of the line we are processing - reactionNumber += 1 + reactionNumber += 1 # keep track of the line we are processing - # strip whitespace, ; and % + # Strip whitespace, ';' and '%'. line = line.strip().strip('%;').strip() - # split by the semi-colon : lhs is reaction rate, rhs is reaction equation - [lhs, rhs] = re.split(':', line) + # Split by ':' -- lhs is reaction rate, rhs is reaction equation. + [lhs, rhs] = re.split(r':', line) - # Add reaction rate to rateConstants + # Add reaction rate to rateConstants. rateConstants.append(lhs) - # Process the reaction: split by = into reactants and products - [reactantsList, productsList] = re.split('=', rhs) + # Process the reaction: split by '=' into reactants and products. + [reactantsList, productsList] = re.split(r'=', rhs) - # Process each of reactants and products by splitting by +. Strip each at this stage. - reactants = [item.strip() for item in re.split('[+]', reactantsList)] - products = [item.strip() for item in re.split('[+]', productsList)] + # Process each of reactants and products by splitting by '+'. + # Strip each at this stage. + reactants = [item.strip() for item in re.split(r'[+]', reactantsList)] + products = [item.strip() for item in re.split(r'[+]', productsList)] - # Ignore empty reactantsList + # Ignore empty reactantsList. if not reactantsList.strip() == '': # Compare each reactant against known species. reactantNums = [] for x in reactants: - # If the reactant is a known species then add its number to reactantNums + # If the reactant is a known species then add its number to reactantNums. if x in speciesList: reactantNums.append(speciesList.index(x)+1) else: - # Reactant x is not a known species. - # Add reactant to speciesList, and add this number to - # reactantNums to record this reaction. + # Reactant x is not a known species. Add reactant to speciesList, + # then add this number to reactantNums to record this reaction. speciesList.append(x) reactantNums.append(len(speciesList)) - # Write the reactants to mech_reac_list - mech_reac_list.extend([str(reactionNumber) + ' ' + str(z) + '\n' for z in reactantNums]) + # Write the reactants to mech_reac_list. + mech_reac_list.extend([str(reactionNumber) + ' ' + str(z) \ + + '\n' for z in reactantNums]) - # Ignore empty productsList + # Ignore empty productsList. if not productsList.strip() == '': # Compare each product against known species. productNums = [] for x in products: - # If the reactant is a known species then add its number to reactantNums + # If the reactant is a known species then add its number to reactantNums. if x in speciesList: productNums.append(speciesList.index(x)+1) else: - # Product x is not a known species. - # Add product to speciesList, add this number to - # productNums to record this reaction. + # Product x is not a known species. Add product to speciesList, + # then add this number to productNums to record this reaction. speciesList.append(x) productNums.append(len(speciesList)) - # Write the products to mechanism.prod - mech_prod_list.extend([str(reactionNumber) + ' ' + str(z) + '\n' for z in productNums]) + # Write the products to mech_prod_list. + mech_prod_list.extend([str(reactionNumber) + ' ' + str(z) \ + + '\n' for z in productNums]) + + # ------------------------------------------------- - # Write out species for reactions to implement DILUTE factor if it's not NOTUSED. + # Write out species for reactions to apply dilution factor if DILUTE is not NOTUSED. if dilute: for spec in speciesList: reactionNumber += 1 - mech_reac_list.append(str(reactionNumber) + ' ' + str(speciesList.index(spec) + 1) + '\n') + mech_reac_list.append(str(reactionNumber) + ' ' \ + + str(speciesList.index(spec) + 1) + '\n') with open(os.path.join(mech_dir, 'mechanism.prod'), 'w') as prod_file: - # Output number of species and number of reactions - prod_file.write(str(len(speciesList)) + ' ' + str(reactionNumber) + ' ' + str(numberOfGenericComplex) + ' numberOfSpecies numberOfReactions numberOfGenericComplex\n') - # Write all other lines + # Output number of species and number of reactions. + prod_file.write(str(len(speciesList)) + ' ' + str(reactionNumber) \ + + ' ' + str(numberOfGenericComplex) \ + + ' numberOfSpecies numberOfReactions numberOfGenericComplex\n') + # Write all other lines. for line in mech_prod_list: prod_file.write(line) with open(os.path.join(mech_dir, 'mechanism.reac'), 'w') as reac_file: - # Output number of species and number of reactions - reac_file.write(str(len(speciesList)) + ' ' + str(reactionNumber) + ' ' + str(numberOfGenericComplex) + ' numberOfSpecies numberOfReactions numberOfGenericComplex\n') - # Write all other lines + # Output number of species and number of reactions. + reac_file.write(str(len(speciesList)) + ' ' + str(reactionNumber) \ + + ' ' + str(numberOfGenericComplex) \ + + ' numberOfSpecies numberOfReactions numberOfGenericComplex\n') + # Write all other lines. for line in mech_reac_list: reac_file.write(line) - # Write speciesList to mechanism.species, indexed by (1 to len(speciesList)) + # Write speciesList to mechanism.species, indexed by 1 to len(speciesList). with open(os.path.join(mech_dir, 'mechanism.species'), 'w') as species_file: for i, x in zip(range(1, len(speciesList) + 1), speciesList): species_file.write(str(i) + ' ' + str(x) + '\n') - - # Write out rate coefficients + # Write out the rate coefficients. i = 0 mech_rates_list = [] - for rate_counter, x in zip(range(len(s)), rateConstants): - if (re.match('!', x) is not None) | (x.isspace()): + for rate_counter, x in zip(range(len(mechList)), rateConstants): + if (re.match(r'!', x) is not None) | (x.isspace()): mech_rates_list.append(str(x)) else: - # This matches anything like @-dd.d and replaces with **(-dd.d). This uses (?<=@) as a lookbehind assertion, - # then matches - and any combination of digits and decimal points. This replaces the negative number by its + # Match anything like '@-dd.d' and replaces with '**(-dd.d)'. + # Use '(?<=@)' as a lookbehind assertion, then matches any combination + # of digits and decimal points. Replace the negative number by its # bracketed version. i += 1 - string = re.sub('(?<=@)-[0-9.]*', '(\g<0>)', x) - # Now convert all @ to ** etc. + string = re.sub(r'(?<=@)-[0-9.]*', r'(\g<0>)', x) + # Now convert all '@' to '**' etc... string = string.replace('@', '**') string = string.replace('<', '(') string = string.replace('>', ')') - # Replace any float-type numbers (xxx.xxxE+xx) with double-type - (xxx.xxxD+xx) + # Replace any float-type numbers (xxx.xxxE+xx) + # with a double-type number (xxx.xxxD+xx) string = re.sub(r'(?P[0-9]+\.[0-9]+)[eE]', - '\gD', + r'\gD', string) - mech_rates_list.append('p(' + str(i) + ') = ' + \ - tokenise_and_process(string, variablesDict) + ' !' + reaction_definitions[rate_counter]) + mech_rates_list.append('p(' + str(i) + ') = ' \ + + tokenise_and_process(string, variablesDict) \ + + ' !' + reaction_definitions[rate_counter]) - # Write out further reactions to implement DILUTE factor if it's not NOTUSED. + # Write out further reactions to implement the dilution factor. if dilute: for _ in speciesList: i += 1 mech_rates_list.append('p(' + str(i) + ') = DILUTE ! DILUTE\n') - # Combine mechanism rates and RO2 sum files + # ------------------------------------------------- + + # Combine mechanism rates and RO2 sum files. with open(os.path.join(mech_dir, 'mechanism.f90'), 'a') as mech_rates_coeff_file: mech_rates_coeff_file.write(""" module mechanism_mod @@ -435,10 +514,12 @@ def convert(input_file, mech_dir, mcm_dir): real(c_double), intent(inout) :: p(*), q(*) real(c_double), intent(in) :: TEMP, N2, O2, M, RH, H2O, BLHEIGHT, DEC, JFAC, DILUTE, ROOFOPEN, ASA, J(*), RO2 """) - # Write out Generic Rate Coefficients and Complex reactions + + # Write out 'Generic Rate Coefficients' and 'Complex reactions'. for item in mechanism_rates_coeff_list: mech_rates_coeff_file.write(item) - # Write out Reaction definitions + + # Write out 'Reaction definitions'. for r in mech_rates_list: mech_rates_coeff_file.write(r) mech_rates_coeff_file.write(""" @@ -446,22 +527,23 @@ def convert(input_file, mech_dir, mcm_dir): end module mechanism_mod """) + # ------------------------------------------------- - # Finally, now that we have the full species list, we can output the RO2s to mechanism.ro2 - # loop over RO2 and write the necessary line to mechanism.ro2, using the species number of the RO2 + # Finally, now that we have the full list of species, we can output the RO2s to + # mechanism.ro2, loop over RO2 and write the necessary line to mechanism.ro2, + # using the species ID number of the RO2. print('adding RO2 to ' + mech_dir + '/mechanism.ro2') with open(os.path.join(mech_dir, 'mechanism.ro2'), 'w') as ro2_file: - ro2_file.write("""! Note that this file is automatically generated by build/mech_converter.py -- Any manual edits to this file will be overwritten when calling build/mech_converter.py -""") + ro2_file.write('! Note that this file is automatically generated by build/mech_converter.py -- Any manual edits to this file will be overwritten when calling build/mech_converter.py\n') for ro2List_i in ro2List: for speciesNumber, y in zip(range(1, len(speciesList) + 1), speciesList): if ro2List_i.strip() == y.strip(): ro2_file.write(str(speciesNumber) + ' !' + ro2List_i.strip() + '\n') - # Exit loop early if species found + # Exit loop early if species found. break - # This code only executes if the break is NOT called, i.e. if the loop runs to completion without the RO2 being - # found in the species list + # This code only executes if the break is NOT called, i.e. if the + # loop runs to completion without the RO2 being found in the speciesList. else: error_message = ''.join([ ' ****** ', @@ -473,31 +555,33 @@ def convert(input_file, mech_dir, mcm_dir): raise RuntimeError(error_message) -## ------------------------------------------------------------------ ## +# =========================== MAIN =========================== # def main(): - assert len(sys.argv) > 1, 'Please enter a filename as argument, pointing to the chemical mechanism file (.fac ):' - input_filename = sys.argv[1] - # mech_dir defaults to '.' if not given + assert len(sys.argv) > 1, \ + 'Please enter the name of a chemical mechanism file (.fac) as argument:' + mech_file = sys.argv[1] + # config_dir defaults to model/configuration/, if not given as argument if len(sys.argv) <= 2: - mech_dir = './model/configuration/' + config_dir = './model/configuration/' else: - mech_dir = sys.argv[2] + config_dir = sys.argv[2] + # mcm_dir defaults to mcm/, if not given as argument if len(sys.argv) <= 3: mcm_dir = './mcm/' else: mcm_dir = sys.argv[3] - # check the locations supplied exist - assert os.path.isfile(input_filename), 'Failed to find file ' + input_filename - assert os.path.exists(mech_dir), 'Failed to find directory ' + mech_dir + # Check that the files and directories exist + assert os.path.isfile(mech_file), 'Failed to find file ' + mech_file + assert os.path.exists(config_dir), 'Failed to find directory ' + config_dir assert os.path.exists(mcm_dir), 'Failed to find directory ' + mcm_dir - # call conversion function - convert(input_filename, mech_dir, mcm_dir) - + # Call the conversion to Fortran function + convert_to_fortran(mech_file, config_dir, mcm_dir) +# Call the main function if executed as script if __name__ == '__main__': try: main() diff --git a/doc/AtChem2-Manual.pdf b/doc/AtChem2-Manual.pdf index 049dfb329de27a1f445d6656ce842ef59a64e2a0..0378374fe8e2b0411b1f2ac56bcd969f607ed10f 100644 GIT binary patch delta 9994 zcmai(RZJXg)U9zZgF}nE!{F`?#T|+lcXtM-xVwK?vEnYp-3DiHcPUV8kiX~r$+SlQV-Dhqg=1+4EzgyZGTEUrLj1c|7Ls15?LHs6??nrYphu1JK)is5Kz zkmR$fFhfd%7u6VOZ|+=iGW&z9djKMZ5rp+FB@QF1GN`OrYBEGsFw)r6$UbC?eip?_ z2dsK=;K5lI(s{-b)6XOqMLLgXjq1lM8gN~VAw_F&>%nZCKIR^lh|0+Jfo9?Nu74o_ zkOQx>VuU0@r3bnQjw1N){!m%B7A?i>g;$DT>{f)#%hMA1SIV*_?@Oq6*JK9Dfm+_N z!ynkNyVyh6R7$PREr68253w@7r+<~isSq36fFQcA|6mQsy&0yAc2!=$U|y4Er4pKG zAx8A;K9zA^Boh~WFM>kAmmp=KJ3-Ytfl>S_fivA2WL}(NJg%Wzsxa5qpL-qsEMgASeTxhxNi~=Zn%h z-=Hbqm|DiP+l&affS~&a=qw$@N?YtY=>I6Or=0?!HtV?;v;VV@9iwx-Qxq8}3gcvh z;1HmR!=lU%LVo;1jB!t$2O@A|^_!bt*x`JC+v<49ORGj?1_a8=$kI&-&TwWR2a*FP zK43|a?Zm1Z8|AiM6TJKQRuXPjssn8M%89Ho@aeIGmL$ZvY)pF>j7H<}qwqP9mC4*P z?pjx(G*Z+RUqaJp3p16=qY9XB1^KfuGO9+PWg6l8`&dDw``KT(^2C2QO&)>wM`YPgM-7 zPn{kkNeX3s2RlBGAnDVjYnxf-i2?-ZP+47BW{j;D9>8%O9lN3e@vDU*_t`{WD0=X9 z96TRD{LTl+`J{SMn>EnP*h=RMwxYBljYy~-jc?JLtMH@y@o9D=Z7 zA7Z64qyrCJic2nRgXMu^EH>l?7@L66*?usFlRK>VB70l|w6t-`>O5-IHgUjKM%a0Z zC`tLAVrgyt2=|&6c_f<`82MIj`XKdpJ)Fak>G;=~eet3M+12L3yy^}4e$6hF0B85I z;!n%P6U5Om@v0u=8dLK_Bb4i_WcW?DNN#|h@hj{HK)o@OG65MklP?7sAD)YkC(|_< zkqKnz4&lcOI@W!%9W8(z&Iq_Pl$7^Fh4)uQg>K`LB_LE^zI4uN)yxO4(-f z=K_{e_csrx0dInY>%2!5tDX`r$-F+f>_Wtui)GXSq6kLU6s!^;X=aBtkXv1W^^RAGqjE{`Lm^&4780e>KXc$douE{Y*<%Rx zy!`49dI&g={e7;PCj2Kl9L3^he3SvL;m;`&axd@q$tQA}fHXQr65CtX7Oet~LwV4N zv0sSclIIdj8j5u=Za8cWET)>I`DA|&tP5TZQUQa)jMYn|8<;P~mo;M{yKBNm?-qyHQBM(*8yIhI37{NH>D zahRy7EMM)z7^lj3+`bqNFXz{>LJUx1h1`m=XT=+VBWKK2B8d`TMG7ZbHkA0x&2Dnl?7S$fM(~a=5#muH-x(6Qscl?&U3V^e9_RJKDq=mIGQdYcrxGcy8!;pO9y#s{=|#7mXWCoF6)Gz;@$6s< zvlOpPrFjSLW7LB`lMqv>dXU5&G)xFOu7rBvsjbV~HmWs|qVu|=`wEiafr04N=IdqB zy#X#8Fj*mMHjzwS!tK@99iDehvg;m_C(=>N{=>&Ye#&AkM)-=WvcufXHT_wwtX&@p z^yTrjQ1m9#3A()FN|K?XI>rk%SCRH85Dx~dpeJ(ZWCigr3i)doFB zyAP8F&(ew~zm(W~1GlSQ)sREslJ#3Rzuh?1&$4An>Oud@ka3t4ylb4h%o&)G7CTe( zdJ)tltg76lBPf^8SbuQnLbCVjY#I51A1I~h7|mEkEJlH0g#y~ln6j$&%PU1+e(>&k zVQueXC8!w$)AqzSc}N`gsjr@zE-ac?snuMOapf|%q-5GEjOfQy zI?d3qv0hkG(M~_y{ayGFwyXkPPt{9Yw#+j%1^KZ(y!j`vT) ztG|qq(d40*5h@^w5$mAa98NCZG4@R^M^}@Ve(X!q@2+j~v~a@$BN& zglPcow7Y46uo|b^s-V17`kMfRs@*!t1z<4{dkMe=1GQB96GljlTLk0LO^5i9`1;UO zjx?oMQ-mf7c_=JSb5PH@HJr9Jrd^j8in8mLjdH5`uzp7jyLTvavKaC6EYoZUgQwIa zB@9tI4H_z1&pt5CZ2*k7sbdVWH@G-H_aEq~;V@kPH+Z84Gm!s*@(5EHLfRC5FB;m`{Rw#11)LR}$|Nn4*}B5(JopqFbuD=X&8DvODirBV@=`Q> zP@R3v^wY4*e7x(gKXf~5e4=M`mP-gM3TxaPj8i4fuf~dcxD7^_$}{)&#I>J1zm>#~ zVhZp;{^Qu7#zXGrZ!sHg1@4TEv)4kI7`0Sn1^pPg%zy*$XD>qD-YyUz~=WyVaGBQ zmW6LfXqHKy`JPvU-@xf_6V*C#X$b<<&V>ii$#4|lA%LTXXjRctVC3%Z@vq4ntOcL>S;%P0kd7m0TXWh0zhRn2_oVGZYS%!W1;_D=HQ5 z6t)p&@q+ITlTH6b@p||LxSY--{?nf)pM)Iqc)F|H|L>E+0_mrZJU*pwiM`)2I5_w} zUwI}5Ke`AP_7?+l{5ShucsoFOWB}_63!jtWn?aj;vF9e=3Lp$`+jo-arzFszZ5U&# zP09+~yNhsv>8STbH%b{Z{oSjvx6gCX%&b`4NZ~{0+xY#U%LM(&cBl2`-4$2}qV^`s zPZ~y)Yfc=kVQB!ccY!nu4s7aek5TbEbXKI6D8Qoz@pJ`<4RY*(zi;F$w;tK= zsrE-AT9_#unF{2w#fv$+>a}6fi**Az~K&GE>oK@;w-|h+tB3y3G2xl$j#WRhkDKqD^ZPk4!`7)$%*@tVVVmx? zrLoZ1sLK<7TOnlo#nS$<3S?$V*N)q#gbNpUYh~J4_%+uttR&JfNrUJmC zNY)ZjxV#Qa9q6?AiBA3eg-)cswmDuuwN>3ay_JDNJN`Cz!nrq>fZ~D92X9{!y}I<3 zo0^$eTC84!E@kmdopi6nlXq<6?` z3)hA{OKA<20i|r)UABd`)CYFzL(m997TRmYy@2B~3=cTx;2>1tN6Vb#!jv_BHHIL7iW^rK=4}sjfAeJu)7MV_ z)Xd!*)Q0x&-R@H`kdr)k6g-v&23z*&vq=fYuf(Xx^#C@ws{%(-sgT|FNBkiR14pNr zLi>v_*Ws>>?<0e*;0Ua10CeEJXaJ`mqd=I1U4^SV)G!JUHp@V8%@#5%*}^@e&U$}N zYPMqw>Ooyy5P$Qa4nz>yY2Df`XPrv2>|)!pJHKu6Ef?()TQG!>qhtCRLx>3^LUcnD z(IkE~uO&~F;k)aEBecO$q6~{0&^s!J=H-!$bAHdDnh6#H=0IbblR}wTQnpA0QoL@% zBh+aGhM@*D4WDjxB&mxJ<}Xwwad&$gL=p}`kE*4sL?J$A1g|&|i_^&EpCGY_1@$p8 zE#w_8C+b~W%dgBiZOhA{m6!4!bp`2xr6%0C&2WWZpX3XvG{~!S3hgVT7S3_sojzt; zX%wWcpWffQ_Q_o}Qd>SY-`Sn?700OFKh8wdGiYPMx5-HVC9>DWClAb(%;)zEo67 zoNFsf$EFksZKnlC&!gm^Cu>BNX5mDZIP-KDhiB?gw;bWWZiZb@pMSTujiA@l^&;eV zN@iDsr~weSx~&HNevi^Pd^;HF8S||NRa-HW!oZ<>RnQtR%V&E}-1zgfVJ*4Iq9lp7 z<)LaCcNY%_#Fg?GS033p=jt#ALvP#O8d-S{k6ysTzSYTSK7YSy`m_Fw?iEL>vM5!S z4|TT{Soy03mS@KLT2;JJ-He~&W-t}aX_VZFeYp5-m!q^iXPO!?B9N!)?-X{Cc~gUC z1X>%jlGv7#@vR%R(27%39}q6$0&qRLvCUt%R3O_NSVUGOusgCA|_?^MkGkDkYK z{e8*4j*HV-p>qhIDez=3^dNO;c5SG4GKG`YO+o<;J#DZw?i;LvdWx1(p{PQ(^sonB z4nG6V-OoXEFa_irQ>$ZT?q9&nk4HQS8p zu-TkoQ+zW^*4Y>&CmVEj`0?NtRoszzf*&-z(i=1=gGcQ2Y7n^Y79wWd;N82 z5QnYhsNb?*sL6#FZuxq%W9H-qvPJctCWR1PtV~3?=THEO)+N*S<-C8_3R?*m^ zGF>SFxh};?`eh*(QHrZdARc#!Krvg2%OF6o%;^(Aq_l@dzOYDIi zM-HZJa}zcEiTi}a-#Y`QW5ZTi<$@k5-)P!4r=Fy-@-)W!4V28;^<0RvO+tNtzUWro z22m;}E1%|$IeAbjf3CG8d15n=b?ewVN>{Q8aUt={KhCh!oJFfEWd}Kelg4z>Sz0>f zlSvE>#zkuvQC1FqrUm|LeCf<9KAsW=S8a&b%&%!nvW(XF@o41>zf_&b|&+$T!G7 z{1c>(UW?KLsn+Yu#Ru7Hy(#($LsBdCFV&@Yp>uF%Yc@4{T_~kF_;97{mx}a$h?f4fVlq8C(MVcedF zp%X7|BaJSs^e7~42FxmARmE6#A8OADJo7Z8GLFMb6-Swk2%yo8)_~fb(zA?jS@_vz zq3JQwx0aQ&0`?iMTM{o4I^zYtExFAKrax!vg2tnyaTWh6oTlLhF1;?teUf9PXrKQ3 zg}UH}+qE06+8f);%;ffe&P!*$uyV7JR7m#ciqk%<=;`m2=|(cT_p88XOmTxrm;2#= zd+2*&L*KVCYiZCZ+!44vE2^-BO3&VU^2yv;MLd;_90JPkR{p=u2+`k`8O+rxzA5d3v>zod4_#&5`0uEr-EGnHeK&HA}i1kxICDo`0s28 zfu{?(zSDa@#$Dt+F*38G`qP|zPjht||8uu&k z76kV@79$d5`ur)SohhowJ9#iy?ziykU*rra2u0*KmVP~um^sj@gh<@5kf;lt0}9yg zetE~oP36N%C9ulBjwT}I!=cXMFz-;+%eoVF4IGJ z%$zeXuHk#y!P_n#}BSt6z(2K)`%vtfByOI)R1UoF7 z(;oS9P_dDM>N#29eS2B~Wkj{YYh*j6bYyq(*ysh!kFT7bIERcVbl1MH2FIJ3qP0RD zzem|Y0WYCcbFs&{R7pJOW}WwhRd&uAOEIg&G%rSv<-}hrQfDht$LYP~M=74Zg9J&Y zqBO%X=XdXv%E?4e<0NMST-Nr*H^%>T2R!WUzGJ(ahV65pJIdmKOfck$Kf~N+e|Md4 z615caEv6Uy&F|xmGJ(k(y<8b#quq;cX@}0*%T^yan-j=0>hp=L`!cAE!aG2KT&LIx z7={yPRcMNGT@kjgIw)W-f2uV1AGfIw?`L+Yy(qAYU|zh{)A}#7PK!2zlD5SG80?S$U%ee0CsX5U*f6tNXvSS zM@eH0J|fucK3uP3xxCRH6U|k@^sTI+O%YHpuXU^tVq#mATwS3?j(a`jWJ7FP{Cgt9 zr)FLEERXi>lrqd0BkIL z|9rR>;NiNg>Nc+ua|*Y>Nc!j0ObMR*5sRh)Ho5eVM|J&dRJ(Q>_F zP}u>6zkPfu960%85Sd=md)Rp$G5y*5Qef!=E$A8x=gP};-wEj>eE;_d5Cv^TYlF6; z4~ek|aPo2pa0ze#nSmViKp;IM8oRRdcWE;ZO9}>QK~5ki7x4c{GS45-?U1B=t-WoX z+DsnNyHGVGrGXNXT%5ezlDv}qTzni7(vp&#{6I+wZcbh)KA^NHh4BAZVuZ&2)zZn@ z!-j&BmkXGRjm!X|&9ZeclKUJv>m5*cy~-Dz>7bG~9LmNWTW@@eqM{*sed(u~fmPj57 zJHHDTT#Jml&*oph%>=kNu}q52G_lOGOd33KwXw}AD&K*?7zZ}F;3I6_U>pdFL3%yL z7qBci2bH<6m{ii93NHt&QY0X$3EE4PC8MthSq&CQN_u82uhc-OTarL-0;>5E}kuR(R>8AJ)+h+X%w)!uZ zf)M2aCr~}z?5zPc1j7uV7t2e2iDbrpB4rromG44&B6lv4OGg584qpDxh?)d}cy77G zh?WG77>oq|h2;d73+62{qT7Ir1V@6|u$>Us=UV?WqS?UoDsq&{r6PeXu~`Sxp?ZfJ z*+9W;SXW5?bC^ZSSXYS9xtXGT`V9bPQND~2NX`d~M6xT`E8_;pAIcl%6?wzJAL)gA z$-V2Uw#ouPpBq6P?Nex0Y5uays3v6?Qm)2VD7yeDq*+AHmsx<=Gl?AdHXAqNhQEXo z&NY|&VX)5Na6EqpnXb^t6{=yfb#OV@3+tbh z;Q`4+cCaGZJW**bXRa0d-xGW-qRyv8xfl^PIg8L2AmuRGpAeG>*+A(S5u6vc=IMVv z-{M;_;~_Esim>Ix*5rS!o`#*JOW3G~$)GT_WGjX`K_Ps~7s&7%704!NdewsH>ML?i zFqzf}7!n{G{r%AwSvS(wpX~6LHjC<|Db!22m2dLX(pv<{iqYLBRDZF3sb#9DZZTsQ zB@b!|D}%@UIrpGrxjcIhV_p1P=I3+9R^mc>@N>P|NRV14aepn`xfv})Na7Lvr6jBP zJ8@gh3*+>Lo$s+(JOP|nUdM27pp_G&sdu&^(ke*vNDx+Nd_%GConr-YmFK9l|H~Zw za;Py7rJ=QD_x(`i1Tr;a>ief+(!eM1B{d@I#GR%^;ccK zoWRv;uulCan@|x`_Ep5lX;H!dpk6l!%pt~gOvSuxC(~uLYse2_@H==!$QAuWtBxH@ z+}j`t7a|f^xqc3pyys@^Dw-A@>pp!K%&%eRJ52nxzIW|(A^^7FFIfnhJ5=omZ1BdM zL0l!orjbV9w%VW#L*Y@-N}Be+YbO`;85eaJ0I8laY|q!HI9ygP>7^kfoxy> zAyljub&=d=P}{r2dhHWXci>y}P=)&BX!$*P7TxX-50srSkD=RWZ%=&ZQd}57St>`_06DdrzM;Zhd>@T_@bgILsjgjVZF=%GU~q*WzsJg;j~|{ZUrvVIgPKqtS@|* zA`@pU?J^7fvIbmz5Bl~nw0+gI(|Ye~{%vUz5vZ#%XZAJs<7P%SNZR!JwmhI`%_OYVTh%vzzGPUx}T|j@wP(HV;ij=$0N+Mh|oj-{bI0FMx;7t zR@oHgUjKd1qEirNQL*Y{9d+?BL-9rT-RZg6P^wzC<6&@k~R+?WA(k$wX^Ve^zdv`8C2N`Xs25uKNB^CcTN5hZR`nr#pRUG&#Wj zGkdDvR8(y}9YCR22>FWK_~ilK04g2?9}V!hfh9*sAz5^&M&EWUtN2}9DId^>v5TR0 zt;`lCc!gRdnwy90xspZq6PYgFY(sHY#g?fXdr>d-w8-m)PR%_46kD!A$~t_SHhHe& z=Nit!-(TbQmoa|vaK1=@m$qW0<&&1gnqr+;5%eVB+@m)kW1+?1H2)`hb6&zq@jmO$ zk^bp4nUR|Fr0kiGs$i?P9PUXc>~w{pRax8BnN^O~==-^j{_{gmwnFXx&>sI@$C6Ia zUL@OGh@c;mT-VtNNR>3ce1GhOpIWdJneY2y#r6tl?w4Q=>ZsDT`glT9;lAaS&s!IE z-`emcqFkR-{nEs2Po@3|;)ZCS@0=@)2XgJ}Sr5J-0w(-}Puu7O`yAbyEX1t20DoJvx{erL7* z;Q_1iaLAYu;tCA1qTHpwg~uS%@p}~%7(ZL{{QSFGM*!Vd_`tn-BUb8@|yA15n?%k|F_kbZ&dKNJq zVw$z7?N<5KK5hZ4S}v0P@Et;qK(m(mJyGHeFN^+n!K)w6wZMuWW@7=3f69e@aE)K% z*?1Lwb;18B=xc6YKkkVLYi@f3cIc<$MT@~{9q6EJS;A?Nr()U6DUr7n+05yl`5G|3 zJIKedr20s7wHVA}-+5aqyRdx!?9JWjr0h+{(`h#S5GTvEyz!PS%UAo{mnPe^{F?5c z&~7=siyL>At^M&fI>2<@TQOH7=wn>6QB@MlV^@Ecoyfza|96+%MyvJA`+DUkxN0`A zB@1*2ts{Keg(3zCtL>y`!-+v9Lv+cRuzJ7kw2Y#?z7isCJ*kFty&(p18BsW~-sotC zw2h*54+dVpwe}SnGv6E+;{62G^=IvS<}8HH1}7LzccS=HXs%u{tKR> z!b5^k8B-2DxQu@Rgu#NGZ;GggsuRLiFaE_Nj7R+Uc`ag35#Z!;JO~K0941i@ivjy~ zU$OmiKX^z0#Apq5G!-`?_y7CvP44S` zILXQ6OlFdkIS+G`0gTK5)^#Dm@}+CWBeQ_S5~tPSxzNKdeNd_Jer5@J@{i-NNJ^i; zdJ5@?Rogrzb$r2Ry1Mu7WR4vBY1IQ6qRi_bjJy8PLpFaL9K`)?0uY6ombl{zoCHTU zN4M_Ory}(vEJ)><`d2wCZlp~_RlY2VwtBv*YCo^60Zp1vUD zOX~hIa$iW={?Pakk8m)8XMIfT3uU5Qf+pcxU~>4izpI<4l73iY6B96o5KA*J-8Q_c zyw8aq@+%?;uSL3A<{J^>6Nut5DR&H21T9zoJ24HtV8CTAh9IIEn5gd1) z8rkWOl=VqdZy3)gRm%dRi$jU^Y%=(M4f4|$mhX1IQ2!NIKTEDNc-}VjcPag~Xs=)X zEe~r)fENzLu*C{UD@_l5c|<^ZhF#i5X~!2cJ09G@4R~HGdH#~xsG@sultaXvS;sWa zc#LqA_((C+XssTJ+?=mtu=>e4a8e{n0Lrm5dO4yJ;{2y01fqxNUj`p!HHZDA>qQ|z zNUlqbnX&PmZO^gxp^%;~^%jvyDJc1uyRGm#DaIw}OuqfHXo#PkL#dBtp{-?_y7>=# z8)x%uH6|h&L0QkA1ASM!=~QP-x=VpU{fn3G=#I1RHdtG~$tcxD#}0^twd1We%S&!mb3=3bc#|937c=>S!wtH{sB_3*UQA(d!SVoq%Ja{lvmg4C zU}qJOO{jgnV|!&n;8gpk1k67kdw<-AsSYNMK?M$oat)D5gLRBH>e0DeY~G%$uB}qP zbXdWH;ZG$vH{Ju!syQ#^*=;;?@RCZ)saz!%@=)#a`CX>1}tLymB- z!E0%exKeWx@qo4JF3B^lN5;p;O7m$_x|bvnz$)?N@A)<3<)_G~qqU$Rp9`Ls!e^bS z4EDGB3fE7mYua`}Ao%46&4f!5nt^6z2>9%AUacm6b`qYi?Wa5aI)9gb9v6?|i+@+p z275nKgQ~}{t-yw{HW2x19W*q6t!?wQ+S&fF-GI^sue8;K(ANe1691+^?dWOn@5M8y z;Z$3P?DJ6)*aP>%iKM{YfaElq>mH#yPtAF@XV}Gh$8B(BIp>1uNcYuXV}2uVW}tEZ z>V@dmI*sQ2=_BqDeaYQ1Y`(LgG3NO7?9baYmGic7o0vu~*ewyW3f=s;&Xzhc0PEK^ z$Ay4>kStjzVVUd|*=m~Lt{d%N@u53sGZw`Rj}v)FE^Vf3<|E^!dnF+gzySqQg8%oB^~T-S1+lwN zS-rDpt5k{U+n%k)8}JylxYI<1hJ+;P+1zAtNQ0Ut%3hy&3H{i>$=6yvDAaS34}RTJ zD+atxbftHzASG+M8?e5uWr0f=^(U z)x}>s|9e+)5$>uolMGNtkp`60B%^&>JYkk&B<0#eoTn3%vHR-ld++MI`<7vfIdao4 z5ehTar@n(A72N=I*GewLK2ooz^#2IX#pUOuh*iuJGGg!WRLm))kN>tM*w~*B-xc}^ z2_{Nbsk~lvBU%Pup|C%>VD2WAI(8E}Ko{I;*G}4k!J6(cZ3s#Tb7BPld|5CX#oGP1 zV!~T%)0vz{l{D6UFrX^T>B5SHxjl*95R`9rpzGi{+|r*!F78# zf}7X=aH69@T=F2U_$f#>u+J~@egLtEZQ4vF2J5txE02=@>%?~D&AFxo!V$uF)os8X zuM0!!{1`=azDaDoil4rZ^QN}pVhOBBWgEApkuD3s*YyML;JPaHH z?<$+=?fe^!oxQ9UT}MuS@WA_fVsovn^Pc^H&PBJtk_yPlH4y4w>(R!S=zocEAI+J^ zbXe;BcN=$NLN}a*phTiji(5_1Mnx0lZmqa>QMjzR7t0_%TV}Z~!XH4x$dOy{%8cURRju7Ik~kg@5{Jas4e?S<+9S zqTTjR7Yc64pPzAH1}zH+Qg>9KJkH}mX=2OI{w9Nz{G19mZ$p$nI$$Us28N29z7ZHZ z$NGj3A&~UO_6z+fkxU_{$3wT+1oq!j3NGNP@auVg!~hoHY7v=ZSFD! z7%P)Ha-H4aGQc)y+6SxDj|mrzmr9QeTVpWl?0gzh_^DUs?S#4%!9)PtbQS?oDR1vK zF5nbIQ|57MeqYnC+IAcn8!+4dFKbe5Sk^dW(?GMa#Y|qBAnN$9$Ngi&inSGIW1be2 z@C&WsYcxK}l;~`}lCmUj--DHw?{(jJ8{asSchy#Cq6R{{zZ@ z0JJiuqu!&Z(>$Uvr^^?k5`%C>Jn28x@BM>khvF{dRwRDOnX1jd%z;m~(fp#Qq}|vF zuEdsxNA7DkojWhKBwZ}dAU(=XmA3F0GF{fsz9t$}5*TS8$qusKek{*U)xoQy{|+50 z1}5}e`!Ro08}bz56@r?s+c=i*kvfWcj#WSiTe%m$d7i_K7HqZ#OO74ard{zT&Q9U|S*ocrYqs0Uw^lFyXFq-*tk+OdFN!5=@ zb$tOL3l%#RUf?Tz^0hlxkY!8~zKgJ;n~?Vz9$9T4JyuTlzuy4C0ah2f&|?#kt5xYa zB;abqh*2`)+#M#PbuNa+GpkS|2u%W~SDB;DK6BD*c`Fyuxxb4XM06qokXnxTDPqU>l)ry)N#9%@hQ zyvHG*z)rgl(*#BA|G1i4MvwN03Zr6EQIIo)bDxLcAOV3Cbgo#HrF6}fOu|wJ_mrY5 zr<4MhT2sLB&{Dsfd%c}g!!iKRCIisb-^cSl@RI7oY=<%By36OP;5bjR4ax7ifzd1t z5$+$%rsqg1^50g5NjpGNm-hviXgEE|v zR0^SQ<5bfk;jne>pY{}oB3~)XFiKZ`DVd->4qkhQP;A%V(5C**nY!`Y+&zdClISIl zleqlxk^(v&-A&b)yX>^yyt#mgtbOig%!!wZRjZGat>CVSC;dg6erCyi^tI_ZmLs8}f5x2M%1a(!6oXJx1)AT%lz z#`%U>m5yc>?XPy)9b1IaG;KX38;eXoRJb6;8^Xe-PyBCc5JrM;3KbRgS> zB$+kMJd){5)%qAtFt-w(5SZbBShz!VE4n_pEU;^3*O+1aLEYHYozN1=&pW)mExP>c z*H7_na;4K&-DEk(n{2vbHMs?UX6B;9eAp4N

M-cwxh0xNXL=yo%HjXR;OnAl!GTFZR?fYJPn_LdOMwf654rlST3p4QmGswSkcJk&e%oWx-uTZsxi5?{!Csrqmr6I=!<6(AE z#qUM0Y6s3e*`(Bu4CTRyNMV5Q8(cZz&6YsMHo{!jCmoc&GE{wFz+%sl^Y8g=L3 zY%RxFCMpj*0G~~DX#){xOT^btWML-qX1q+JXz!aJ_Y;M(uisgddyQ_fd@06Nc{#+0 zMO)2t499uA{rcLBVaXjUiY6Szg9OJg=FjHi0+KsgOI)P3w2g2Fty)7@_~^z&=}RBz z8*~{~yM2G&^T%naL)p=Wv*V8IX5VFo<&hR4lyAlueT{Zh$)5^@R1fV|kFAMmhhR&@ z`gvVr9hD8Px-10>QA|fd#~t*$I`4%%yymn*wN`9be^k#zSs zjU_H969nk1Tbn_~os>D}>it4SUVKkYoo)T3Z9qozxCtxP6*HcR!!CmAggHhEPj+-C zt8)>m{tO0h!L$)F{K=S}B0u}$1hZTx3zB9eNM|hao}sC{8)}V7b@dM7NJ*GMP7560@wJ2N!W$WXCc_$)6OitbI7530MOE=O^!?}3B{+SB>O{ef zU}kr0S!OFS(ZM^T$$ooE@omSp8?XYEeDk0SaIU}MdvjbHKsRVP{ZrGz0pg!suzs-i zRe7=KmjcbI_zluBT`6B_(u{%mMUvZ_%x9t#cXX){3W*g@i))k;Q&Q**BBr#4NL-NR z-A$7SwLXW-%~#PW%&X_s0i)^5yiJvL$%<>jzW!b6eHhv78z<%ZW1z6joy8#~*-6HFV~+k^TSJn1|1W+%kwIkNzU!5R$y#Tqyj z2|ClW&CtT*I{>Kl!`djhxG>!x^l|Y>r*7A9-@E=X%&r1382T{nW}IlS^-0;C(F`HQ@rG;E; z79@VA?HNRIKqq1U*u} zj0vwA814d=z?+EiM*C=~{0lO{0=27kTbEn_GNN`@PB+T4%2j3LpuUhz+n-CQT8GD# znI_fk;pJ&O(m}WF2dWwW{$Q{lTF}>Ae^%zx^ILB+gxyHrzMpJaNzFc0AUdj%XW3bF zS37SmV0eZjDUVO$rvc2A9DH5YmZPhY1Xe`2)z0fGPS|oWPI$PBZT8xGAukkS3ZuaKjy)`rA z5>-e_R)-_#ZtXO7$|#w`HC&mhqmBBB{@R_t{<5K1_2<{m$pdf)KxR5UNv%}+#eWZ< zzcOfYQG_$Z!$rqXMC_RlG5)brMA%JXFUfTY`@IZ8$+MEt=$QZAM*EMBldP>PT{`EB zF;|%qoiVNIaVJ}kpw#V-J-kgsALJnLR|=hrjz{JWE>Xlp!-Z=m{1YV7^CuKOy$D}8 zc#?hTGPOKNHPfapx~?J3S`J>IDLg&cvTv;nU}1|Ui%Ul9gd6tlCLNE-5q8Tk7F;zq ze{=&P8DajD(bQleW-r#y>DdW@I<7TXFHRWn#l|Y;k`pL+7G`qv)26p=)#a^y7jwkB z8N|kliZ>gZ(E9C(i*|T-fG~KBqEeniow#wBBN$OD5BE}*Rm-Pmmt`4dIpSs{P7ugB zdcw!cl8gr+n67vnc)9)*HdbkqU|fyqc0d4%vPeyF=`b`7RIKNyN&TnGQQ^dPTRc}= zi*dq=M=~z%`i{dKvCyi27Z5`J^}&AZnebOnHA_?j)TlSN&Ddyfsnb#0e{irS7UkNb zsEWukCYsbugvN;fv!^Ax?J9-Os8A9ODg5@zzKx*Noyz+dW=a13#g`hVlKrnv%@Z9U z0ct&NKAxo)G2QDCxe%RR#sJDoTSQZjMLlu3bQbSm*E+;$qHHv-rAFz*TeMf@^!Fag zM=U~LtptS0_vH1d<*a!_wJnI7?w=yl7f5cY(PP=v){<6n>f@o1(GN={LmtbYe&6-H zS%)=aW@&AX7eCKHe$W5=d54*UrT8HXI^%zvIQc|~Xf$J748|$sI37Zp@#t4%hEI+$ z;kWB~F40)d!I(lc%p^E+eKikNO|SKF#qK;9yA&_Z-*3q#$wvv%MitVxS2{yPbE3OZ z0b=QVu;^@Y7Be?62jH#7aTGHbHOInl%S|eBEU$OD0obwQi+{?6pvpM_2ku;%wRPp4e)oqJUs3_0sOh{{1ge6(< z4Ii00-L$K=n$wyMZP_iP&$X)g&utMYYT-Q=_)?!v&F$-g?$-djKxP$?%ar5fGOBu| z(|EW+5($HTg(AIa+H+2$70D4rF_k6wEK{#jDH|c;`Sm2-Uy--)OMa@l5JYd5G2@?VnMutUS$qD)mMT|y>{M_NPJcKk0N_s<*{Q!DWUqsma z1T5Orj6AD>7O2%6Px-snh2RSTXvj>TS2n-v#@+_p1y%=6yZUk_v+B>A^uO&}Sok{# zK@RlpG=Ej{x2Eg~6;vZ+DlOWkMA1tq8EaSXC0biu!mrtFA?xG5_w2A?*a@{ixp4Fr+}t&(!l?N?EG1E@oe1Qs%!1b-OMpNCH14nX3A9Q{)=K~_niux zdl%~$N)JtbTis`Ye@%YWc7|TmiJSzU1YRI*?!1}{=3weiI-E zkx!|2YHTt-J1<;=da*h+QYLM^=5syEKqfhuqnqU~`4=E}ucchCJ*RoKk->{!odwQ5 zGZFcR^Vzsg6!9c#;+{~arD=JP$Bk27kQ@WDZ>f2Vp@%!KRv-j0EcfnkLb~Zn5 zxWd(k9{CSe9MPA9bpd2#TDV3jgf!WL<9zzV7o6Y;qv)WX#h2fHuu=}}NQawcWGlU9 z@7@So&UB#QZCRwj?fO?FrLSO_xz4fO>7sn9_veswiDihM&6645) z^wj&HKy5E*dT1YGs5so<$d6WjG;S!$DpvmjkMOWdBWF9jjj>l;JKSCxCzK=_XZn9!A~3Wms=2a0s3GHiCP7O+ z57zlhxf|PidJ>`mN;rQHZq#tbvciGJ&uBW$0u^?0XBfC|zx|*XrO@$o==eU5NU;UB zKR1X1^Kg(^8u|F@>612AzK1-GwRqc^EA_>`w~3hFlgmexP+k9ZMmRs+&t6WX;y84e zC)EbQV}tyL+^)Hld=ttpA%yS9*|Mh#(oHPe;oQyPgr-C*J=W7bSr)HwlwIe6CDdO2 zLR7kiPQXyySgZVRC{(4Pd$WT=_KL?UbH8}ay!lBuW&VspT!eGttR`3ValyOJ>7kAG z^Wa7@p0t_}23OnNSdJME>!^ZWWA($q1ge?zwPsXOgdP#^?)1lIR4S19$8c4o>=x2Z z%Quqhh3-V6K@53GhO4m6C!8Z!swMmu^%4OFSFhRp+UeCl>iv7?yAVzd=4qjo#Df*N ziBg9)s-+J0*BI~gQ?bb%<&LjsAF&1j?vpX*348BdUED%eI6!^B z&dlcq(l!l3Jm1pRWon7KqZ zZ3Csb<^xrON1UbMZ+|wljX7F*eyAgFg_rMtyPq?DtQ3z7P)>Lcum zE5gY*{Su@LpkXGBHBFO+gpD24=JxJucoO86Q>>{MkBdKO7J zYT`<8q9pZuK@?%|=k{LCk5|#7&gDk0BmbkB%;|>zf`7I_w2{sJVD>daloiCsF3FQv z01-aHxk}o=Ti0z)i9C#5lga6yhXW^?qOL4h>o~wAEj8PQT&lhiYusV zsO&!qj_KB=kk<^GaCd3zh#k?gD7^ss(Jch*jAsbOHj#6;I_bd&HhfL7b!63&A}Q7w zck5xS{VYw5Htu0!W_)YtYwVx_lRAdke};5xY`cban2xY(Y6Eu#SdM@-^j)Mn97pyw zi~+R*Do2Vn-d&iL*rf!|To-HyDKg1U`8EOvne|vtu#3n_a0~o7>aIF4tOf6!dzYh* z%n`*g+J*Q`YCYWZrwivwq$l<{?Jf$joJbhIQX3VyWVU3dq&GIXvU$`kPqT)@C&p$aR-NX~d*w5VL)I_>#`&q^)xb(9?z8rKdpLPK` zR|dLf&my*u*mP&Zh;oO>`O8-Aj@U4VnYZScOPc+Rph?W;8C7|Luc_Nc0RWz}ZNjs8 ze&!xTUsG!0k|wbwJO|-trKvOI$cV&wMq$H`{#seTm~L|kN2?AfhBJ@%BshnmS;UKJ zuyYY2^@;gnGBo=e)-g4)G7i%bhg2v5-_JoF`sa+Uc*O#3O`P`?m-${XK1bXOi)NT| zeeQSRZnI+jC}tCxO(%f)ULW5tl(T3T`d_KUM$JYh4BzieTHju7a4*R`VG@#2&=Z^2RoEr5QNFq-DFf)i5uBm%k=$jo4`_bzT<*g?}2NqDZjNb!?GC8O3$Qr6Ed zc3Lp5Pp|9=-9P#0FLL`7gcadqMx0u(Ne`Ao4@m;{L+43eu3ghhh22v@o^?nC0afTt zMmj@aKLhQY61BMm1xR!)sweqV~@f+(y50cQD`mk4JZH377A57vnO;f`szOZB0G+|KAVpyJ_IMN|$*p=Kg0maA)A#+&B%Gc0kQAv6U5`ToEjA6>@MZZ z!9EV_f=v!r)=%O>n1euzP4miG`qB#1qZ|e>{p1h6(izYLn3l*- zO5A&GhLqr@DeJR*s|YK>-BO(S*F$w8PM+qXujMsJ%do^*@v~n`sRm6Rq->`S)Y4K3 zNlGTgiA{ZmnNc!M!wQs!R(f;a6V#4-s7x<@UjMou_6`rFCr=uI z5m!`T&-XXhyOtM*z4|N+LUfT8c6wTf=|HUg)Rj~xnT22}k=yt>^5TKkqWDO?8ybc+ z&leOq&r5v-P$*`eygXj+wY}8TJ?eAJ!sMUNf^C^KglB>^VYglShZTF8#$67CHPQ@- z17A?ggYOxZD-YdSi4g+QB<_@qHxU+;D?irJ7VawKHq4)(52xZ=YIn`C z@qi4m7maFR+&k40FX(zl>D;6m? zqTLMkK>kNYDupOGhcM<$-5VT+G*7Jfg}RxhaXx?wQj8{fO|sp~xuf1dlod3DtVO2i|6ilK+~4|nnM|ibnF^5mJIcO5;$&YEEjkP)?tdfV zv4YQ#xhZbh$f|Fzuy`juB|G4MVs%#E9#|O@BUuV39!u&DN=e#N{kOw)FsArUsAO_z zmgA3II^B+&f>PRRSe`II!B+NHq#qk8k^%feSSP=^)IMXWk`9uvit!g#T*-g7P%8~x zJ2sM>z6LpFDgS7~FVp6*uD)I1Z`eU-oVeq(DdtE=nyzOS;`@DGfI6Y;do9+HFw?4j zbZR4HoDJUcmLsweqNtS_HR@~DKelG|km_b9tJo7eUfH5hD>y~u&3DQKn}C!ApvA)X zrmYhbSlhXo3&QGb@pO4cjt2_A|H4s}7g@VBRe|E)7a%sm@v-qdzl!`^LUns?1m2L( zD~mE+x^5}JXM!(6CWrCMy<|u^#v6ey__0B`x`D6Xr=>Y}Fkxmw{_-*KdQo`}4zpcR9(5z_qq)yCISY%~|b3Y3YD9h1D!3!{Mw)*KOvQAY_ zxG3encAX0!9a3b*1T6nymWLlogW`F=w=AeM>@TZy+dpWGbvWhXMXjzZw_A-4_EbE; zjo?u-lbZY)4rARXkFwwM=6<=x9>C+43DA+(2^`0@aK;Ws?H#5L~Z}OQ^LoIB>$#^AWRbI94|C0Qs2|TY`VxpRVOM!75nd>~|kkoe2c&)w1 z>PBQwF@(U~YlN@E?&6q{ufytM`EvPhM?2_ExyaVOqjc>-p!&FoYQbhCEAJ^%UZ7@G zo;R!caI4nNV=@b?rv#G2C*i$}(^~WN^Z~52)_ptmL#uj~r}`pLb^jq(v{5;@4K44l z#50AITP`B=26Q_tihMxJA(fy6PEM<*r6;)Uch%s__wqidGm&>`bDujq;=nu{=PkbX zv3W2RsHIQCl;i3|0Gxv>xuR5Ds+0dUb^N{FOrf zt}!`KVa;LDOB{SXxgtG>x+W3iDeJBNJxvM*l;xDAD^BSD9IyDi&(z8yU9tb;#8kTD}#!MGJE4Q$)6Uu;$2u^-Qy ceaDihf%Q)pM@OeZ<>%r>{q#vrLmu^i0I=^J?*IS* diff --git a/doc/latex/AtChem2-Manual.tex b/doc/latex/AtChem2-Manual.tex index 89ca76197..e9893dd30 100644 --- a/doc/latex/AtChem2-Manual.tex +++ b/doc/latex/AtChem2-Manual.tex @@ -51,7 +51,7 @@ \hspace{0.05\textwidth} % Box for the title page text \parbox[b]{0.75\textwidth}{ - {\Huge\bfseries AtChem2\\[0.5\baselineskip] v1.2.2}\\[2\baselineskip] % Title + {\Huge\bfseries AtChem2\\[0.5\baselineskip] v1.3-dev}\\[2\baselineskip] % Title {\LARGE\textit{User Manual}}\\[4\baselineskip] % Subtitle {\Large\textsc{R. Sommariva\\S. Cox}} % Author(s) \vspace{0.5\textheight}\\ diff --git a/mcm/INFO.md b/mcm/INFO.md index 5b3b5adf0..8fdfb0bc7 100644 --- a/mcm/INFO.md +++ b/mcm/INFO.md @@ -2,6 +2,8 @@ The `mcm/` directory contains: - a minimal `.fac` file with the required sections headers: `mechanism_skel.fac` +- a minimal `.kpp` file with the required sections headers: `mechanism_skel.kpp` + - the complete lists of organic peroxy radicals (RO2) in the Master Chemical Mechanism v3.1, v3.2 and v3.3.1: `peroxy-radicals_v*` @@ -10,12 +12,14 @@ The `mcm/` directory contains: --- -**MCM version** +**How to change the MCM version** The default version of the Master Chemical Mechanism (MCM) is **v3.3.1**. This means that AtChem2 uses the list of RO2 in the file `peroxy-radicals_v3.3.1` and the photolysis rates parameters in the file `photolysis-rates_v3.3.1`. -To use previous versions of the MCM, change the corresponding lines in -`build/mech_converter.py` (for the peroxy radicals) and -`src/inputFunctions.f90` (for the photolysis rates). +The filenames are hard-coded in the AtChem2 source code. This will change in future +versions of AtChem2, see [issue #297](https://github.com/AtChem/AtChem2/issues/297). +For now, to use previous versions of the MCM change the corresponding lines in +`build/mech_converter.py` (for the peroxy radicals) and `src/inputFunctions.f90` +(for the photolysis rates). diff --git a/mcm/mechanism_skel.fac b/mcm/mechanism_skel.fac index 260498d9d..b4f11a664 100644 --- a/mcm/mechanism_skel.fac +++ b/mcm/mechanism_skel.fac @@ -1,11 +1,11 @@ * Generic Rate Coefficients ; +... * Complex reactions ; +... -* Peroxy radicals. ; - -RO2 = ; - -* Reaction definitions. ; +* Peroxy radicals ; +RO2 = ... ; +* Reaction definitions ; % k : A + B = C ; diff --git a/mcm/mechanism_skel.kpp b/mcm/mechanism_skel.kpp new file mode 100644 index 000000000..cc7eeb593 --- /dev/null +++ b/mcm/mechanism_skel.kpp @@ -0,0 +1,9 @@ +#INLINE F90_RCONST +RO2 = & + C(ind_...) +... +CALL mcm_constants(time, temp, M, N2, O2, RO2, H2O) +#ENDINLINE + +#EQUATIONS +{1.} A + B = C : k ; diff --git a/src/atchem2.f90 b/src/atchem2.f90 index c7a42694d..daf2d152f 100644 --- a/src/atchem2.f90 +++ b/src/atchem2.f90 @@ -150,7 +150,7 @@ end subroutine FCVFUN rout(:) = -1.0_DP rpar(:) = -1.0_DP - write (*, '(A)') 'AtChem2 v1.2.2' + write (*, '(A)') 'AtChem2 v1.3-dev' write (*,*) write (*, '(A)') '-------------' write (*, '(A)') ' Directories' diff --git a/tests/model_tests/INFO.md b/tests/model_tests/INFO.md index c818af995..59594e7ef 100644 --- a/tests/model_tests/INFO.md +++ b/tests/model_tests/INFO.md @@ -6,7 +6,7 @@ These are manufactured ODE systems with known solutions. The `env_model_*` tests check the configuration of the environment variables. They use a minimal inorganic chemical mechanism with a runtime of 4 hours (10 min timestep), -starting at 2 pm on 02/02/2002. +starting at 2:00 pm on 02/02/2002. - `env_model_1`: TEMP=288, PRESS=1010, H2O=1.8e10, RH=NOTUSED, DEC=CALC, JFAC=NOTUSED. No constraints. @@ -15,3 +15,11 @@ starting at 2 pm on 02/02/2002. - `env_model_3`: same as `env_model_1` but JFAC=0. - `env_model_4`: same as `env_model_2` but ROOF=CLOSED. + +The `spec_model_*` tests check the settings of the chemical +species. They use a inorganic+ethene mechanism with a runtime of 7.5 hours (15 min timestep) +starting at 6:30 am on 9/11/2008. + +- `spec_model_1` is the base case + +- `spec_model_kpp` is the same as the base case but the mechanism is in KPP format. diff --git a/tests/model_tests/env_model_1/env_model_1.out.cmp b/tests/model_tests/env_model_1/env_model_1.out.cmp index 77ed242e6..292b5165f 100644 --- a/tests/model_tests/env_model_1/env_model_1.out.cmp +++ b/tests/model_tests/env_model_1/env_model_1.out.cmp @@ -1,4 +1,4 @@ -AtChem2 v1.2.2 +AtChem2 v1.3-dev ------------- Directories diff --git a/tests/model_tests/env_model_2/env_model_2.out.cmp b/tests/model_tests/env_model_2/env_model_2.out.cmp index 06624832f..d18ebbf57 100644 --- a/tests/model_tests/env_model_2/env_model_2.out.cmp +++ b/tests/model_tests/env_model_2/env_model_2.out.cmp @@ -1,4 +1,4 @@ -AtChem2 v1.2.2 +AtChem2 v1.3-dev ------------- Directories diff --git a/tests/model_tests/env_model_3/env_model_3.out.cmp b/tests/model_tests/env_model_3/env_model_3.out.cmp index df4356735..c440a3806 100644 --- a/tests/model_tests/env_model_3/env_model_3.out.cmp +++ b/tests/model_tests/env_model_3/env_model_3.out.cmp @@ -1,4 +1,4 @@ -AtChem2 v1.2.2 +AtChem2 v1.3-dev ------------- Directories diff --git a/tests/model_tests/env_model_4/env_model_4.out.cmp b/tests/model_tests/env_model_4/env_model_4.out.cmp index d6a9e39b7..d4e619aff 100644 --- a/tests/model_tests/env_model_4/env_model_4.out.cmp +++ b/tests/model_tests/env_model_4/env_model_4.out.cmp @@ -1,4 +1,4 @@ -AtChem2 v1.2.2 +AtChem2 v1.3-dev ------------- Directories diff --git a/tests/model_tests/firstorder/firstorder.out.cmp b/tests/model_tests/firstorder/firstorder.out.cmp index e865551e6..2b1e1c321 100644 --- a/tests/model_tests/firstorder/firstorder.out.cmp +++ b/tests/model_tests/firstorder/firstorder.out.cmp @@ -1,4 +1,4 @@ -AtChem2 v1.2.2 +AtChem2 v1.3-dev ------------- Directories diff --git a/tests/model_tests/secondorder/secondorder.out.cmp b/tests/model_tests/secondorder/secondorder.out.cmp index a93541898..68f36330b 100644 --- a/tests/model_tests/secondorder/secondorder.out.cmp +++ b/tests/model_tests/secondorder/secondorder.out.cmp @@ -1,4 +1,4 @@ -AtChem2 v1.2.2 +AtChem2 v1.3-dev ------------- Directories diff --git a/tests/model_tests/spec_model_1/configuration/environmentVariables.config b/tests/model_tests/spec_model_1/configuration/environmentVariables.config new file mode 100644 index 000000000..f0e11ee48 --- /dev/null +++ b/tests/model_tests/spec_model_1/configuration/environmentVariables.config @@ -0,0 +1,10 @@ +1 TEMP 291.45 +2 PRESS 950.2 +3 RH 67.4 +4 H2O CALC +5 DEC CALC +6 BLHEIGHT NOTUSED +7 DILUTE NOTUSED +8 JFAC NOTUSED +9 ROOF OPEN +10 ASA NOTUSED diff --git a/tests/model_tests/spec_model_1/configuration/initialConcentrations.config b/tests/model_tests/spec_model_1/configuration/initialConcentrations.config new file mode 100644 index 000000000..81e939e0e --- /dev/null +++ b/tests/model_tests/spec_model_1/configuration/initialConcentrations.config @@ -0,0 +1,5 @@ +CO 4.8e+12 +O3 6.11e11 +NO 6.8e10 +NO2 8.37e10 +C2H4 2.76e+9 diff --git a/tests/model_tests/spec_model_1/configuration/mechanism.prod.cmp b/tests/model_tests/spec_model_1/configuration/mechanism.prod.cmp new file mode 100644 index 000000000..4fb9ec8f4 --- /dev/null +++ b/tests/model_tests/spec_model_1/configuration/mechanism.prod.cmp @@ -0,0 +1,257 @@ +49 146 140 numberOfSpecies numberOfReactions numberOfGenericComplex +1 2 +2 2 +4 4 +5 3 +6 5 +7 1 +8 1 +9 4 +10 5 +11 4 +11 4 +12 4 +12 4 +13 3 +13 4 +14 7 +15 8 +15 8 +16 9 +17 9 +18 9 +19 9 +20 8 +22 12 +23 12 +24 13 +25 14 +26 9 +26 4 +27 8 +27 4 +28 15 +29 4 +30 8 +30 4 +31 4 +32 5 +33 17 +34 18 +35 9 +35 17 +36 19 +37 19 +37 19 +38 20 +39 6 +40 1 +41 8 +41 8 +42 3 +42 1 +43 3 +44 4 +44 1 +45 8 +45 3 +46 8 +46 4 +47 4 +47 5 +48 9 +48 4 +49 22 +50 23 +50 24 +51 25 +52 26 +53 27 +53 4 +54 27 +54 4 +55 27 +56 28 +57 29 +58 11 +58 9 +58 9 +59 10 +59 11 +60 14 +60 11 +60 9 +61 9 +61 11 +62 30 +63 11 +64 9 +64 11 +64 8 +65 31 +66 28 +67 32 +67 4 +68 32 +68 4 +69 33 +70 32 +71 34 +72 22 +73 29 +73 8 +74 27 +74 8 +75 4 +75 23 +75 23 +76 29 +76 9 +77 34 +77 4 +78 35 +78 14 +79 35 +80 4 +80 36 +81 23 +82 23 +82 4 +83 23 +83 5 +84 23 +84 17 +85 23 +85 12 +86 37 +87 25 +88 34 +88 8 +89 32 +89 8 +90 9 +90 23 +90 23 +91 9 +91 34 +92 34 +92 9 +93 38 +93 14 +94 39 +94 9 +95 38 +96 9 +96 23 +96 9 +96 11 +97 23 +97 4 +97 8 +98 40 +98 2 +99 41 +100 23 +100 4 +100 4 +101 42 +102 23 +102 4 +102 4 +103 23 +103 4 +104 40 +105 23 +105 11 +105 9 +106 9 +107 9 +107 23 +107 8 +108 43 +108 2 +109 44 +110 4 +110 9 +110 23 +111 45 +112 4 +112 9 +112 23 +113 23 +113 9 +114 43 +115 11 +115 11 +115 10 +116 11 +116 11 +116 9 +116 9 +117 23 +117 11 +118 46 +118 14 +119 46 +120 23 +120 4 +121 35 +122 23 +122 4 +122 8 +123 23 +123 11 +123 4 +123 4 +124 35 +124 4 +125 23 +125 9 +126 38 +127 23 +127 9 +127 8 +128 23 +128 11 +128 4 +129 38 +129 4 +130 11 +130 11 +130 9 +131 11 +131 11 +131 9 +132 11 +132 8 +133 47 +134 48 +134 2 +135 49 +136 9 +136 11 +136 8 +137 9 +137 11 +137 4 +138 9 +138 11 +138 5 +139 9 +139 11 +139 4 +140 11 +140 9 +141 48 +142 9 +142 9 +142 11 +143 11 +143 9 +144 9 +144 11 +144 8 +145 9 +145 11 +145 8 +146 47 diff --git a/tests/model_tests/spec_model_1/configuration/mechanism.reac.cmp b/tests/model_tests/spec_model_1/configuration/mechanism.reac.cmp new file mode 100644 index 000000000..44fe674e6 --- /dev/null +++ b/tests/model_tests/spec_model_1/configuration/mechanism.reac.cmp @@ -0,0 +1,232 @@ +49 146 140 numberOfSpecies numberOfReactions numberOfGenericComplex +1 1 +2 1 +3 1 +3 2 +4 1 +4 3 +5 1 +5 4 +6 1 +6 4 +7 6 +8 6 +9 3 +9 2 +10 4 +10 2 +11 3 +11 3 +12 3 +12 5 +13 4 +13 5 +14 4 +14 5 +15 6 +16 8 +16 2 +17 8 +17 10 +18 8 +18 11 +19 8 +19 12 +20 9 +20 2 +21 8 +21 9 +22 9 +22 9 +23 9 +23 9 +24 8 +24 3 +25 8 +25 4 +26 8 +26 5 +27 9 +27 3 +28 9 +28 4 +29 8 +29 15 +30 9 +30 5 +31 8 +31 13 +32 8 +32 14 +33 1 +33 16 +34 8 +34 16 +35 18 +36 14 +37 7 +38 17 +39 2 +40 2 +41 12 +42 4 +43 5 +44 5 +45 13 +46 14 +47 7 +48 15 +49 21 +49 5 +50 21 +50 2 +51 21 +51 8 +52 22 +52 9 +53 22 +53 3 +54 22 +54 5 +55 22 +56 22 +57 22 +58 23 +59 23 +60 5 +60 23 +61 8 +61 23 +62 24 +63 24 +64 24 +65 25 +65 9 +66 25 +66 3 +67 25 +67 3 +68 25 +68 5 +69 25 +70 25 +71 25 +72 26 +72 8 +73 26 +73 8 +74 26 +75 27 +76 27 +77 28 +77 8 +78 29 +78 5 +79 29 +79 8 +80 29 +81 30 +81 11 +82 30 +82 3 +83 30 +83 4 +84 30 +84 16 +85 30 +86 30 +87 31 +87 8 +88 31 +88 8 +89 31 +90 32 +91 32 +92 33 +92 8 +93 34 +93 5 +94 34 +94 8 +95 34 +95 8 +96 34 +97 35 +97 9 +98 35 +98 9 +99 35 +99 9 +100 35 +100 3 +101 35 +101 4 +102 35 +102 5 +103 35 +104 35 +105 36 +106 37 +106 8 +107 38 +107 9 +108 38 +108 9 +109 38 +109 9 +110 38 +110 3 +111 38 +111 4 +112 38 +112 5 +113 38 +114 38 +115 39 +116 39 +117 39 +118 5 +118 39 +119 8 +119 39 +120 40 +120 8 +121 41 +121 8 +122 41 +123 42 +123 8 +124 42 +125 43 +125 8 +126 44 +126 8 +127 44 +128 45 +128 8 +129 45 +130 46 +131 46 +132 46 +133 46 +134 47 +134 9 +135 47 +135 9 +136 47 +136 9 +137 47 +137 3 +138 47 +138 4 +139 47 +139 5 +140 47 +141 47 +142 48 +143 8 +143 48 +144 49 +145 49 +146 8 +146 49 diff --git a/tests/model_tests/spec_model_1/configuration/mechanism.ro2.cmp b/tests/model_tests/spec_model_1/configuration/mechanism.ro2.cmp new file mode 100644 index 000000000..fcea44b81 --- /dev/null +++ b/tests/model_tests/spec_model_1/configuration/mechanism.ro2.cmp @@ -0,0 +1,6 @@ +! Note that this file is automatically generated by build/mech_converter.py -- Any manual edits to this file will be overwritten when calling build/mech_converter.py +22 !ETHENO3O2 +25 !HOCH2CH2O2 +35 !NO3CH2CO3 +38 !HOCH2CO3 +47 !HCOCO3 diff --git a/tests/model_tests/spec_model_1/configuration/mechanism.species.cmp b/tests/model_tests/spec_model_1/configuration/mechanism.species.cmp new file mode 100644 index 000000000..41001fba0 --- /dev/null +++ b/tests/model_tests/spec_model_1/configuration/mechanism.species.cmp @@ -0,0 +1,49 @@ +1 O +2 O3 +3 NO +4 NO2 +5 NO3 +6 O1D +7 N2O5 +8 OH +9 HO2 +10 H2 +11 CO +12 H2O2 +13 HONO +14 HNO3 +15 HO2NO2 +16 SO2 +17 SO3 +18 HSO3 +19 NA +20 SA +21 C2H4 +22 ETHENO3O2 +23 HCHO +24 CH2OOA +25 HOCH2CH2O2 +26 ETHO2HNO3 +27 ETHENO3O +28 ETHOHNO3 +29 NO3CH2CHO +30 CH2OO +31 HYETHO2H +32 HOCH2CH2O +33 ETHGLY +34 HOCH2CHO +35 NO3CH2CO3 +36 HCOCH2O +37 HCOOH +38 HOCH2CO3 +39 GLYOX +40 NO3CH2CO2H +41 NO3CH2CO3H +42 NO3CH2PAN +43 HOCH2CO2H +44 HOCH2CO3H +45 PHAN +46 HCOCO +47 HCOCO3 +48 HCOCO2H +49 HCOCO3H diff --git a/tests/model_tests/spec_model_1/configuration/model.parameters b/tests/model_tests/spec_model_1/configuration/model.parameters new file mode 100644 index 000000000..b8895756c --- /dev/null +++ b/tests/model_tests/spec_model_1/configuration/model.parameters @@ -0,0 +1,13 @@ +30 number of steps +900 step size (seconds) +2 species interpolation method (pw constant = 1, pw linear = 2) +2 conditions interpolation method (pw constant = 1, pw linear = 2) +3600 rates output step size - ROPA/RODA (seconds) +23400 model start time (seconds) +0 jacobian output step size (seconds) +-7.326 latitude (degrees: North is positive, South is negative) +-72.449 longitude (degrees: West is positive, East is negative) +09 day +11 month +2008 year +1800 reaction rates output step size (seconds) diff --git a/tests/model_tests/spec_model_1/configuration/outputRates.config b/tests/model_tests/spec_model_1/configuration/outputRates.config new file mode 100644 index 000000000..78da78737 --- /dev/null +++ b/tests/model_tests/spec_model_1/configuration/outputRates.config @@ -0,0 +1,2 @@ +OH +HO2 diff --git a/tests/model_tests/spec_model_1/configuration/outputSpecies.config b/tests/model_tests/spec_model_1/configuration/outputSpecies.config new file mode 100644 index 000000000..9affbbc32 --- /dev/null +++ b/tests/model_tests/spec_model_1/configuration/outputSpecies.config @@ -0,0 +1,12 @@ +CO +O3 +NO +NO2 +C2H4 +OH +HO2 +ETHENO3O2 +HOCH2CH2O2 +NO3CH2CO3 +HOCH2CO3 +HCOCO3 diff --git a/tests/model_tests/spec_model_1/configuration/photolysisConstant.config b/tests/model_tests/spec_model_1/configuration/photolysisConstant.config new file mode 100644 index 000000000..e69de29bb diff --git a/tests/model_tests/spec_model_1/configuration/photolysisConstrained.config b/tests/model_tests/spec_model_1/configuration/photolysisConstrained.config new file mode 100644 index 000000000..e69de29bb diff --git a/tests/model_tests/spec_model_1/configuration/solver.parameters b/tests/model_tests/spec_model_1/configuration/solver.parameters new file mode 100644 index 000000000..988f4341d --- /dev/null +++ b/tests/model_tests/spec_model_1/configuration/solver.parameters @@ -0,0 +1,9 @@ +1.0e-03 atol +1.0e-04 rtol +1.0e-04 delta main +100 lookback +100 maximum solver step size (seconds) +100000 maximum number of steps in solver +2 solver type (1 = spgmr, 2 = spgmr + banded preconditioner, 3 = dense) +750 banded preconditioner upper bandwidth +750 banded preconditioner lower bandwidth diff --git a/tests/model_tests/spec_model_1/configuration/speciesConstant.config b/tests/model_tests/spec_model_1/configuration/speciesConstant.config new file mode 100644 index 000000000..e69de29bb diff --git a/tests/model_tests/spec_model_1/configuration/speciesConstrained.config b/tests/model_tests/spec_model_1/configuration/speciesConstrained.config new file mode 100644 index 000000000..e69de29bb diff --git a/tests/model_tests/spec_model_1/output/environmentVariables.output.cmp b/tests/model_tests/spec_model_1/output/environmentVariables.output.cmp new file mode 100644 index 000000000..40e8f7972 --- /dev/null +++ b/tests/model_tests/spec_model_1/output/environmentVariables.output.cmp @@ -0,0 +1,31 @@ + t M TEMP PRESS RH H2O DEC BLHEIGHT DILUTE JFAC ROOF ASA RO2 + 2.430000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.361190E+005 + 2.520000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.576339E+005 + 2.610000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.667814E+005 + 2.700000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.702597E+005 + 2.790000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.706124E+005 + 2.880000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.687862E+005 + 2.970000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.651398E+005 + 3.060000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.598315E+005 + 3.150000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.529670E+005 + 3.240000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.446559E+005 + 3.330000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.350340E+005 + 3.420000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.242717E+005 + 3.510000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.125772E+005 + 3.600000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.001954E+005 + 3.690000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 8.740487E+004 + 3.780000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 7.451247E+004 + 3.870000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 6.184493E+004 + 3.960000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 4.973854E+004 + 4.050000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 3.852646E+004 + 4.140000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 2.852398E+004 + 4.230000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 2.001123E+004 + 4.320000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.321170E+004 + 4.410000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 8.261247E+003 + 4.500000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 5.153759E+003 + 4.590000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 3.752608E+003 + 4.680000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.445055E+004 + 4.770000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 5.287084E+004 + 4.860000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 8.789867E+004 + 4.950000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.081388E+005 + 5.040000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.172364E+005 diff --git a/tests/model_tests/spec_model_1/output/errors.output.cmp b/tests/model_tests/spec_model_1/output/errors.output.cmp new file mode 100644 index 000000000..5dfb20c54 --- /dev/null +++ b/tests/model_tests/spec_model_1/output/errors.output.cmp @@ -0,0 +1,2 @@ +Number of fixed constrained species: 0 +Total number of constrained species: 0 diff --git a/tests/model_tests/spec_model_1/output/finalModelState.output.cmp b/tests/model_tests/spec_model_1/output/finalModelState.output.cmp new file mode 100644 index 000000000..37cc3991a --- /dev/null +++ b/tests/model_tests/spec_model_1/output/finalModelState.output.cmp @@ -0,0 +1,49 @@ + O 4.3170159055868079E-023 + O3 586981542386.26208 + NO 1251605.7215907904 + NO2 91074099569.652161 + NO3 535797109.14958078 + O1D 3.4321242003573723E-107 + N2O5 3054963539.8578095 + OH 612.60920622314143 + HO2 336941.83033787285 + H2 450871027.17211193 + CO 4728287597903.9590 + H2O2 13183359.679792214 + HONO 101404582.80757290 + HNO3 41867636814.367096 + HO2NO2 873178.14939411776 + SO2 0.0000000000000000 + SO3 0.0000000000000000 + HSO3 0.0000000000000000 + NA 11992023691.707747 + SA 0.0000000000000000 + C2H4 1568810599.2413909 + ETHENO3O2 109114.26826669151 + HCHO 745699463.60759270 + CH2OOA 1.1987690855048900E-003 + HOCH2CH2O2 5838.6407324792244 + ETHO2HNO3 732.13013069994827 + ETHENO3O 2.6520030119240568E-003 + ETHOHNO3 5572918.4273876138 + NO3CH2CHO 229732.73526672955 + CH2OO 77.449109121708432 + HYETHO2H 149530.15201618132 + HOCH2CH2O 4.6070357425682114E-005 + ETHGLY 67.044824572532718 + HOCH2CHO 195453655.18968797 + NO3CH2CO3 0.41926019163640654 + HCOCH2O 2.9681068039985024E-095 + HCOOH 9331869.7673617825 + HOCH2CO3 2281.9480515408218 + GLYOX 7174284.7462236332 + NO3CH2CO2H 4.3122751359996221E-003 + NO3CH2CO3H 1.0062506342556307E-002 + NO3CH2PAN 364.43338474277897 + HOCH2CO2H 1082.6952078075763 + HOCH2CO3H 2590.2260616877234 + PHAN 11073143.324588947 + HCOCO 7.9480350436558432E-008 + HCOCO3 1.1322657704956625 + HCOCO2H 1.1247958034088290 + HCOCO3H 6.1703246183914429 diff --git a/tests/model_tests/spec_model_1/output/jacobian.output.cmp b/tests/model_tests/spec_model_1/output/jacobian.output.cmp new file mode 100644 index 000000000..e69de29bb diff --git a/tests/model_tests/spec_model_1/output/lossRates.output.cmp b/tests/model_tests/spec_model_1/output/lossRates.output.cmp new file mode 100644 index 000000000..e40188070 --- /dev/null +++ b/tests/model_tests/spec_model_1/output/lossRates.output.cmp @@ -0,0 +1,358 @@ + time speciesNumber speciesName reactionNumber rate reaction + 2.700000E+004 8 OH 16 2.215678E+005 OH+O3=HO2 + 2.700000E+004 8 OH 17 1.111119E+000 OH+H2=HO2 + 2.700000E+004 8 OH 18 5.682220E+006 OH+CO=HO2 + 2.700000E+004 8 OH 19 2.363295E+001 OH+H2O2=HO2 + 2.700000E+004 8 OH 21 6.369222E+003 OH+HO2= + 2.700000E+004 8 OH 24 3.388006E+006 OH+NO=HONO + 2.700000E+004 8 OH 25 3.873670E+006 OH+NO2=HNO3 + 2.700000E+004 8 OH 26 7.422233E+001 OH+NO3=HO2+NO2 + 2.700000E+004 8 OH 29 3.954937E+002 OH+HO2NO2=NO2 + 2.700000E+004 8 OH 31 5.479423E+004 OH+HONO=NO2 + 2.700000E+004 8 OH 32 1.097701E+004 OH+HNO3=NO3 + 2.700000E+004 8 OH 34 0.000000E+000 OH+SO2=HSO3 + 2.700000E+004 8 OH 51 1.016890E+005 C2H4+OH=HOCH2CH2O2 + 2.700000E+004 8 OH 61 1.871710E+004 OH+HCHO=HO2+CO + 2.700000E+004 8 OH 72 2.685708E-006 ETHO2HNO3+OH=ETHENO3O2 + 2.700000E+004 8 OH 73 1.193158E-006 ETHO2HNO3+OH=NO3CH2CHO+OH + 2.700000E+004 8 OH 77 7.532236E+000 ETHOHNO3+OH=HOCH2CHO+NO2 + 2.700000E+004 8 OH 79 1.311110E-002 NO3CH2CHO+OH=NO3CH2CO3 + 2.700000E+004 8 OH 87 1.073046E+000 HYETHO2H+OH=HOCH2CH2O2 + 2.700000E+004 8 OH 88 4.060893E+000 HYETHO2H+OH=HOCH2CHO+OH + 2.700000E+004 8 OH 92 2.093661E-003 ETHGLY+OH=HOCH2CHO+HO2 + 2.700000E+004 8 OH 94 8.973135E+002 HOCH2CHO+OH=GLYOX+HO2 + 2.700000E+004 8 OH 95 3.589254E+003 HOCH2CHO+OH=HOCH2CO3 + 2.700000E+004 8 OH 106 4.150924E+000 HCOOH+OH=HO2 + 2.700000E+004 8 OH 119 6.761154E+001 OH+GLYOX=HCOCO + 2.700000E+004 8 OH 120 2.513758E-010 NO3CH2CO2H+OH=HCHO+NO2 + 2.700000E+004 8 OH 121 1.415888E-008 NO3CH2CO3H+OH=NO3CH2CO3 + 2.700000E+004 8 OH 123 4.351785E-007 NO3CH2PAN+OH=HCHO+CO+NO2+NO2 + 2.700000E+004 8 OH 125 9.829209E-004 HOCH2CO2H+OH=HCHO+HO2 + 2.700000E+004 8 OH 126 5.821210E-003 HOCH2CO3H+OH=HOCH2CO3 + 2.700000E+004 8 OH 128 1.055317E+001 PHAN+OH=HCHO+CO+NO2 + 2.700000E+004 8 OH 143 4.949327E-006 OH+HCOCO2H=CO+HO2 + 2.700000E+004 8 OH 146 1.803807E-005 OH+HCOCO3H=HCOCO3 + 2.700000E+004 9 HO2 20 1.268479E+004 HO2+O3=OH + 2.700000E+004 9 HO2 21 6.369222E+003 OH+HO2= + 2.700000E+004 9 HO2 22 7.632039E+002 HO2+HO2=H2O2 + 2.700000E+004 9 HO2 23 5.733021E+002 HO2+HO2=H2O2 + 2.700000E+004 9 HO2 27 6.034940E+006 HO2+NO=OH+NO2 + 2.700000E+004 9 HO2 28 5.856478E+005 HO2+NO2=HO2NO2 + 2.700000E+004 9 HO2 30 2.994469E+001 HO2+NO3=OH+NO2 + 2.700000E+004 9 HO2 52 4.911132E-005 ETHENO3O2+HO2=ETHO2HNO3 + 2.700000E+004 9 HO2 65 2.375527E+001 HOCH2CH2O2+HO2=HYETHO2H + 2.700000E+004 9 HO2 97 5.037550E-007 NO3CH2CO3+HO2=HCHO+NO2+OH + 2.700000E+004 9 HO2 98 1.717347E-007 NO3CH2CO3+HO2=NO3CH2CO2H+O3 + 2.700000E+004 9 HO2 99 4.694080E-007 NO3CH2CO3+HO2=NO3CH2CO3H + 2.700000E+004 9 HO2 107 1.366702E-001 HOCH2CO3+HO2=HO2+HCHO+OH + 2.700000E+004 9 HO2 108 4.659212E-002 HOCH2CO3+HO2=HOCH2CO2H+O3 + 2.700000E+004 9 HO2 109 1.273518E-001 HOCH2CO3+HO2=HOCH2CO3H + 2.700000E+004 9 HO2 134 8.327975E-005 HCOCO3+HO2=HCOCO2H+O3 + 2.700000E+004 9 HO2 135 2.276313E-004 HCOCO3+HO2=HCOCO3H + 2.700000E+004 9 HO2 136 2.442872E-004 HCOCO3+HO2=HO2+CO+OH + 3.060000E+004 8 OH 16 2.125165E+005 OH+O3=HO2 + 3.060000E+004 8 OH 17 3.803105E+000 OH+H2=HO2 + 3.060000E+004 8 OH 18 5.371256E+006 OH+CO=HO2 + 3.060000E+004 8 OH 19 5.041078E+001 OH+H2O2=HO2 + 3.060000E+004 8 OH 21 6.511413E+003 OH+HO2= + 3.060000E+004 8 OH 24 2.833492E+006 OH+NO=HONO + 3.060000E+004 8 OH 25 3.407257E+006 OH+NO2=HNO3 + 3.060000E+004 8 OH 26 7.473717E+001 OH+NO3=HO2+NO2 + 3.060000E+004 8 OH 29 3.753668E+002 OH+HO2NO2=NO2 + 3.060000E+004 8 OH 31 4.687782E+004 OH+HONO=NO2 + 3.060000E+004 8 OH 32 2.103379E+004 OH+HNO3=NO3 + 3.060000E+004 8 OH 34 0.000000E+000 OH+SO2=HSO3 + 3.060000E+004 8 OH 51 8.279084E+004 C2H4+OH=HOCH2CH2O2 + 3.060000E+004 8 OH 61 2.909829E+004 OH+HCHO=HO2+CO + 3.060000E+004 8 OH 72 5.521091E-006 ETHO2HNO3+OH=ETHENO3O2 + 3.060000E+004 8 OH 73 2.452812E-006 ETHO2HNO3+OH=NO3CH2CHO+OH + 3.060000E+004 8 OH 77 1.406375E+001 ETHOHNO3+OH=HOCH2CHO+NO2 + 3.060000E+004 8 OH 79 1.868051E-002 NO3CH2CHO+OH=NO3CH2CO3 + 3.060000E+004 8 OH 87 2.079816E+000 HYETHO2H+OH=HOCH2CH2O2 + 3.060000E+004 8 OH 88 7.870969E+000 HYETHO2H+OH=HOCH2CHO+OH + 3.060000E+004 8 OH 92 3.859513E-003 ETHGLY+OH=HOCH2CHO+HO2 + 3.060000E+004 8 OH 94 1.487621E+003 HOCH2CHO+OH=GLYOX+HO2 + 3.060000E+004 8 OH 95 5.950482E+003 HOCH2CHO+OH=HOCH2CO3 + 3.060000E+004 8 OH 106 7.295505E+000 HCOOH+OH=HO2 + 3.060000E+004 8 OH 119 2.180447E+002 OH+GLYOX=HCOCO + 3.060000E+004 8 OH 120 1.023630E-009 NO3CH2CO2H+OH=HCHO+NO2 + 3.060000E+004 8 OH 121 5.613722E-008 NO3CH2CO3H+OH=NO3CH2CO3 + 3.060000E+004 8 OH 123 1.258656E-006 NO3CH2PAN+OH=HCHO+CO+NO2+NO2 + 3.060000E+004 8 OH 125 4.619565E-003 HOCH2CO2H+OH=HCHO+HO2 + 3.060000E+004 8 OH 126 2.670284E-002 HOCH2CO3H+OH=HOCH2CO3 + 3.060000E+004 8 OH 128 3.598297E+001 PHAN+OH=HCHO+CO+NO2 + 3.060000E+004 8 OH 143 3.788601E-005 OH+HCOCO2H=CO+HO2 + 3.060000E+004 8 OH 146 1.471588E-004 OH+HCOCO3H=HCOCO3 + 3.060000E+004 9 HO2 20 1.380405E+004 HO2+O3=OH + 3.060000E+004 9 HO2 21 6.511413E+003 OH+HO2= + 3.060000E+004 9 HO2 22 8.852521E+002 HO2+HO2=H2O2 + 3.060000E+004 9 HO2 23 6.649821E+002 HO2+HO2=H2O2 + 3.060000E+004 9 HO2 27 5.726488E+006 HO2+NO=OH+NO2 + 3.060000E+004 9 HO2 28 5.844620E+005 HO2+NO2=HO2NO2 + 3.060000E+004 9 HO2 30 3.421050E+001 HO2+NO3=OH+NO2 + 3.060000E+004 9 HO2 52 5.461552E-005 ETHENO3O2+HO2=ETHO2HNO3 + 3.060000E+004 9 HO2 65 2.364376E+001 HOCH2CH2O2+HO2=HYETHO2H + 3.060000E+004 9 HO2 97 9.395930E-007 NO3CH2CO3+HO2=HCHO+NO2+OH + 3.060000E+004 9 HO2 98 3.203158E-007 NO3CH2CO3+HO2=NO3CH2CO2H+O3 + 3.060000E+004 9 HO2 99 8.755298E-007 NO3CH2CO3+HO2=NO3CH2CO3H + 3.060000E+004 9 HO2 107 2.946403E-001 HOCH2CO3+HO2=HO2+HCHO+OH + 3.060000E+004 9 HO2 108 1.004456E-001 HOCH2CO3+HO2=HOCH2CO2H+O3 + 3.060000E+004 9 HO2 109 2.745512E-001 HOCH2CO3+HO2=HOCH2CO3H + 3.060000E+004 9 HO2 134 3.231465E-004 HCOCO3+HO2=HCOCO2H+O3 + 3.060000E+004 9 HO2 135 8.832669E-004 HCOCO3+HO2=HCOCO3H + 3.060000E+004 9 HO2 136 9.478962E-004 HCOCO3+HO2=HO2+CO+OH + 3.420000E+004 8 OH 16 1.633187E+005 OH+O3=HO2 + 3.420000E+004 8 OH 17 5.422633E+000 OH+H2=HO2 + 3.420000E+004 8 OH 18 4.080574E+006 OH+CO=HO2 + 3.420000E+004 8 OH 19 5.734272E+001 OH+H2O2=HO2 + 3.420000E+004 8 OH 21 4.333452E+003 OH+HO2= + 3.420000E+004 8 OH 24 1.882975E+006 OH+NO=HONO + 3.420000E+004 8 OH 25 2.487070E+006 OH+NO2=HNO3 + 3.420000E+004 8 OH 26 6.256677E+001 OH+NO3=HO2+NO2 + 3.420000E+004 8 OH 29 2.397265E+002 OH+HO2NO2=NO2 + 3.420000E+004 8 OH 31 2.702917E+004 OH+HONO=NO2 + 3.420000E+004 8 OH 32 2.231291E+004 OH+HNO3=NO3 + 3.420000E+004 8 OH 34 0.000000E+000 OH+SO2=HSO3 + 3.420000E+004 8 OH 51 5.532092E+004 C2H4+OH=HOCH2CH2O2 + 3.420000E+004 8 OH 61 2.558343E+004 OH+HCHO=HO2+CO + 3.420000E+004 8 OH 72 6.395023E-006 ETHO2HNO3+OH=ETHENO3O2 + 3.420000E+004 8 OH 73 2.841066E-006 ETHO2HNO3+OH=NO3CH2CHO+OH + 3.420000E+004 8 OH 77 1.455981E+001 ETHOHNO3+OH=HOCH2CHO+NO2 + 3.420000E+004 8 OH 79 1.753639E-002 NO3CH2CHO+OH=NO3CH2CO3 + 3.420000E+004 8 OH 87 2.049504E+000 HYETHO2H+OH=HOCH2CH2O2 + 3.420000E+004 8 OH 88 7.756254E+000 HYETHO2H+OH=HOCH2CHO+OH + 3.420000E+004 8 OH 92 3.652461E-003 ETHGLY+OH=HOCH2CHO+HO2 + 3.420000E+004 8 OH 94 1.387170E+003 HOCH2CHO+OH=GLYOX+HO2 + 3.420000E+004 8 OH 95 5.548681E+003 HOCH2CHO+OH=HOCH2CO3 + 3.420000E+004 8 OH 106 7.779484E+000 HCOOH+OH=HO2 + 3.420000E+004 8 OH 119 2.685248E+002 OH+GLYOX=HCOCO + 3.420000E+004 8 OH 120 1.567711E-009 NO3CH2CO2H+OH=HCHO+NO2 + 3.420000E+004 8 OH 121 8.390670E-008 NO3CH2CO3H+OH=NO3CH2CO3 + 3.420000E+004 8 OH 123 1.539667E-006 NO3CH2PAN+OH=HCHO+CO+NO2+NO2 + 3.420000E+004 8 OH 125 7.350617E-003 HOCH2CO2H+OH=HCHO+HO2 + 3.420000E+004 8 OH 126 4.152004E-002 HOCH2CO3H+OH=HOCH2CO3 + 3.420000E+004 8 OH 128 4.649251E+001 PHAN+OH=HCHO+CO+NO2 + 3.420000E+004 8 OH 143 6.539885E-005 OH+HCOCO2H=CO+HO2 + 3.420000E+004 8 OH 146 2.761873E-004 OH+HCOCO3H=HCOCO3 + 3.420000E+004 9 HO2 20 1.214561E+004 HO2+O3=OH + 3.420000E+004 9 HO2 21 4.333452E+003 OH+HO2= + 3.420000E+004 9 HO2 22 6.745203E+002 HO2+HO2=H2O2 + 3.420000E+004 9 HO2 23 5.066849E+002 HO2+HO2=H2O2 + 3.420000E+004 9 HO2 27 4.356926E+006 HO2+NO=OH+NO2 + 3.420000E+004 9 HO2 28 4.884371E+005 HO2+NO2=HO2NO2 + 3.420000E+004 9 HO2 30 3.278958E+001 HO2+NO3=OH+NO2 + 3.420000E+004 9 HO2 52 5.263457E-005 ETHENO3O2+HO2=ETHO2HNO3 + 3.420000E+004 9 HO2 65 1.582247E+001 HOCH2CH2O2+HO2=HYETHO2H + 3.420000E+004 9 HO2 97 9.459267E-007 NO3CH2CO3+HO2=HCHO+NO2+OH + 3.420000E+004 9 HO2 98 3.224750E-007 NO3CH2CO3+HO2=NO3CH2CO2H+O3 + 3.420000E+004 9 HO2 99 8.814317E-007 NO3CH2CO3+HO2=NO3CH2CO3H + 3.420000E+004 9 HO2 107 2.960771E-001 HOCH2CO3+HO2=HO2+HCHO+OH + 3.420000E+004 9 HO2 108 1.009354E-001 HOCH2CO3+HO2=HOCH2CO2H+O3 + 3.420000E+004 9 HO2 109 2.758900E-001 HOCH2CO3+HO2=HOCH2CO3H + 3.420000E+004 9 HO2 134 3.846465E-004 HCOCO3+HO2=HCOCO2H+O3 + 3.420000E+004 9 HO2 135 1.051367E-003 HCOCO3+HO2=HCOCO3H + 3.420000E+004 9 HO2 136 1.128296E-003 HCOCO3+HO2=HO2+CO+OH + 3.780000E+004 8 OH 16 9.026490E+004 OH+O3=HO2 + 3.780000E+004 8 OH 17 4.234773E+000 OH+H2=HO2 + 3.780000E+004 8 OH 18 2.246608E+006 OH+CO=HO2 + 3.780000E+004 8 OH 19 3.818066E+001 OH+H2O2=HO2 + 3.780000E+004 8 OH 21 1.543261E+003 OH+HO2= + 3.780000E+004 8 OH 24 8.897593E+005 OH+NO=HONO + 3.780000E+004 8 OH 25 1.388797E+006 OH+NO2=HNO3 + 3.780000E+004 8 OH 26 4.027012E+001 OH+NO3=HO2+NO2 + 3.780000E+004 8 OH 29 8.668263E+001 OH+HO2NO2=NO2 + 3.780000E+004 8 OH 31 9.107035E+003 OH+HONO=NO2 + 3.780000E+004 8 OH 32 1.442048E+004 OH+HNO3=NO3 + 3.780000E+004 8 OH 34 0.000000E+000 OH+SO2=HSO3 + 3.780000E+004 8 OH 51 2.793823E+004 C2H4+OH=HOCH2CH2O2 + 3.780000E+004 8 OH 61 1.426505E+004 OH+HCHO=HO2+CO + 3.780000E+004 8 OH 72 4.576534E-006 ETHO2HNO3+OH=ETHENO3O2 + 3.780000E+004 8 OH 73 2.033180E-006 ETHO2HNO3+OH=NO3CH2CHO+OH + 3.780000E+004 8 OH 77 9.274143E+000 ETHOHNO3+OH=HOCH2CHO+NO2 + 3.780000E+004 8 OH 79 1.198280E-002 NO3CH2CHO+OH=NO3CH2CO3 + 3.780000E+004 8 OH 87 1.192608E+000 HYETHO2H+OH=HOCH2CH2O2 + 3.780000E+004 8 OH 88 4.513372E+000 HYETHO2H+OH=HOCH2CHO+OH + 3.780000E+004 8 OH 92 2.091059E-003 ETHGLY+OH=HOCH2CHO+HO2 + 3.780000E+004 8 OH 94 8.191962E+002 HOCH2CHO+OH=GLYOX+HO2 + 3.780000E+004 8 OH 95 3.276785E+003 HOCH2CHO+OH=HOCH2CO3 + 3.780000E+004 8 OH 106 5.393641E+000 HCOOH+OH=HO2 + 3.780000E+004 8 OH 119 1.719638E+002 OH+GLYOX=HCOCO + 3.780000E+004 8 OH 120 1.200507E-009 NO3CH2CO2H+OH=HCHO+NO2 + 3.780000E+004 8 OH 121 6.299689E-008 NO3CH2CO3H+OH=NO3CH2CO3 + 3.780000E+004 8 OH 123 1.025220E-006 NO3CH2PAN+OH=HCHO+CO+NO2+NO2 + 3.780000E+004 8 OH 125 5.562444E-003 HOCH2CO2H+OH=HCHO+HO2 + 3.780000E+004 8 OH 126 3.078562E-002 HOCH2CO3H+OH=HOCH2CO3 + 3.780000E+004 8 OH 128 3.049391E+001 PHAN+OH=HCHO+CO+NO2 + 3.780000E+004 8 OH 143 4.257738E-005 OH+HCOCO2H=CO+HO2 + 3.780000E+004 8 OH 146 2.057370E-004 OH+HCOCO3H=HCOCO3 + 3.780000E+004 9 HO2 20 7.849545E+003 HO2+O3=OH + 3.780000E+004 9 HO2 21 1.543261E+003 OH+HO2= + 3.780000E+004 9 HO2 22 2.808942E+002 HO2+HO2=H2O2 + 3.780000E+004 9 HO2 23 2.110016E+002 HO2+HO2=H2O2 + 3.780000E+004 9 HO2 27 2.407412E+006 HO2+NO=OH+NO2 + 3.780000E+004 9 HO2 28 3.189346E+005 HO2+NO2=HO2NO2 + 3.780000E+004 9 HO2 30 2.467842E+001 HO2+NO3=OH+NO2 + 3.780000E+004 9 HO2 52 4.233598E-005 ETHENO3O2+HO2=ETHO2HNO3 + 3.780000E+004 9 HO2 65 6.024627E+000 HOCH2CH2O2+HO2=HYETHO2H + 3.780000E+004 9 HO2 97 5.390767E-007 NO3CH2CO3+HO2=HCHO+NO2+OH + 3.780000E+004 9 HO2 98 1.837762E-007 NO3CH2CO3+HO2=NO3CH2CO2H+O3 + 3.780000E+004 9 HO2 99 5.023215E-007 NO3CH2CO3+HO2=NO3CH2CO3H + 3.780000E+004 9 HO2 107 1.519909E-001 HOCH2CO3+HO2=HO2+HCHO+OH + 3.780000E+004 9 HO2 108 5.181507E-002 HOCH2CO3+HO2=HOCH2CO2H+O3 + 3.780000E+004 9 HO2 109 1.416279E-001 HOCH2CO3+HO2=HOCH2CO3H + 3.780000E+004 9 HO2 134 1.740302E-004 HCOCO3+HO2=HCOCO2H+O3 + 3.780000E+004 9 HO2 135 4.756826E-004 HCOCO3+HO2=HCOCO3H + 3.780000E+004 9 HO2 136 5.104886E-004 HCOCO3+HO2=HO2+CO+OH + 4.140000E+004 8 OH 16 2.664537E+004 OH+O3=HO2 + 4.140000E+004 8 OH 17 1.517295E+000 OH+H2=HO2 + 4.140000E+004 8 OH 18 6.691021E+005 OH+CO=HO2 + 4.140000E+004 8 OH 19 1.230508E+001 OH+H2O2=HO2 + 4.140000E+004 8 OH 21 1.785143E+002 OH+HO2= + 4.140000E+004 8 OH 24 2.057102E+005 OH+NO=HONO + 4.140000E+004 8 OH 25 4.576551E+005 OH+NO2=HNO3 + 4.140000E+004 8 OH 26 1.664201E+001 OH+NO3=HO2+NO2 + 4.140000E+004 8 OH 29 1.115070E+001 OH+HO2NO2=NO2 + 4.140000E+004 8 OH 31 1.186397E+003 OH+HONO=NO2 + 4.140000E+004 8 OH 32 4.531830E+003 OH+HNO3=NO3 + 4.140000E+004 8 OH 34 0.000000E+000 OH+SO2=HSO3 + 4.140000E+004 8 OH 51 7.996525E+003 C2H4+OH=HOCH2CH2O2 + 4.140000E+004 8 OH 61 4.089874E+003 OH+HCHO=HO2+CO + 4.140000E+004 8 OH 72 1.604429E-006 ETHO2HNO3+OH=ETHENO3O2 + 4.140000E+004 8 OH 73 7.127871E-007 ETHO2HNO3+OH=NO3CH2CHO+OH + 4.140000E+004 8 OH 77 2.916113E+000 ETHOHNO3+OH=HOCH2CHO+NO2 + 4.140000E+004 8 OH 79 4.854035E-003 NO3CH2CHO+OH=NO3CH2CO3 + 4.140000E+004 8 OH 87 3.474026E-001 HYETHO2H+OH=HOCH2CH2O2 + 4.140000E+004 8 OH 88 1.314729E+000 HYETHO2H+OH=HOCH2CHO+OH + 4.140000E+004 8 OH 92 6.117110E-004 ETHGLY+OH=HOCH2CHO+HO2 + 4.140000E+004 8 OH 94 2.472522E+002 HOCH2CHO+OH=GLYOX+HO2 + 4.140000E+004 8 OH 95 9.890087E+002 HOCH2CHO+OH=HOCH2CO3 + 4.140000E+004 8 OH 106 1.917289E+000 HCOOH+OH=HO2 + 4.140000E+004 8 OH 119 4.948911E+001 OH+GLYOX=HCOCO + 4.140000E+004 8 OH 120 3.998627E-010 NO3CH2CO2H+OH=HCHO+NO2 + 4.140000E+004 8 OH 121 2.071119E-008 NO3CH2CO3H+OH=NO3CH2CO3 + 4.140000E+004 8 OH 123 3.060549E-007 NO3CH2PAN+OH=HCHO+CO+NO2+NO2 + 4.140000E+004 8 OH 125 1.819212E-003 HOCH2CO2H+OH=HCHO+HO2 + 4.140000E+004 8 OH 126 9.925792E-003 HOCH2CO3H+OH=HOCH2CO3 + 4.140000E+004 8 OH 128 8.623457E+000 PHAN+OH=HCHO+CO+NO2 + 4.140000E+004 8 OH 143 1.058268E-005 OH+HCOCO2H=CO+HO2 + 4.140000E+004 8 OH 146 6.242240E-005 OH+HCOCO3H=HCOCO3 + 4.140000E+004 9 HO2 20 3.015456E+003 HO2+O3=OH + 4.140000E+004 9 HO2 21 1.785143E+002 OH+HO2= + 4.140000E+004 9 HO2 22 4.228459E+001 HO2+HO2=H2O2 + 4.140000E+004 9 HO2 23 3.176326E+001 HO2+HO2=H2O2 + 4.140000E+004 9 HO2 27 7.243348E+005 HO2+NO=OH+NO2 + 4.140000E+004 9 HO2 28 1.367751E+005 HO2+NO2=HO2NO2 + 4.140000E+004 9 HO2 30 1.327229E+001 HO2+NO3=OH+NO2 + 4.140000E+004 9 HO2 52 2.812677E-005 ETHENO3O2+HO2=ETHO2HNO3 + 4.140000E+004 9 HO2 65 8.636769E-001 HOCH2CH2O2+HO2=HYETHO2H + 4.140000E+004 9 HO2 97 1.416239E-007 NO3CH2CO3+HO2=HCHO+NO2+OH + 4.140000E+004 9 HO2 98 4.828089E-008 NO3CH2CO3+HO2=NO3CH2CO2H+O3 + 4.140000E+004 9 HO2 99 1.319677E-007 NO3CH2CO3+HO2=NO3CH2CO3H + 4.140000E+004 9 HO2 107 3.517456E-002 HOCH2CO3+HO2=HO2+HCHO+OH + 4.140000E+004 9 HO2 108 1.199133E-002 HOCH2CO3+HO2=HOCH2CO2H+O3 + 4.140000E+004 9 HO2 109 3.277629E-002 HOCH2CO3+HO2=HOCH2CO3H + 4.140000E+004 9 HO2 134 2.138956E-005 HCOCO3+HO2=HCOCO2H+O3 + 4.140000E+004 9 HO2 135 5.846480E-005 HCOCO3+HO2=HCOCO3H + 4.140000E+004 9 HO2 136 6.274271E-005 HCOCO3+HO2=HO2+CO+OH + 4.500000E+004 8 OH 16 1.117582E+003 OH+O3=HO2 + 4.500000E+004 8 OH 17 7.038076E-002 OH+H2=HO2 + 4.500000E+004 8 OH 18 2.909103E+004 OH+CO=HO2 + 4.500000E+004 8 OH 19 5.625889E-001 OH+H2O2=HO2 + 4.500000E+004 8 OH 21 1.104331E+000 OH+HO2= + 4.500000E+004 8 OH 24 2.854596E+003 OH+NO=HONO + 4.500000E+004 8 OH 25 2.601321E+004 OH+NO2=HNO3 + 4.500000E+004 8 OH 26 2.626629E+000 OH+NO3=HO2+NO2 + 4.500000E+004 8 OH 29 9.106431E-002 OH+HO2NO2=NO2 + 4.500000E+004 8 OH 31 1.835555E+001 OH+HONO=NO2 + 4.500000E+004 8 OH 32 1.958773E+002 OH+HNO3=NO3 + 4.500000E+004 8 OH 34 0.000000E+000 OH+SO2=HSO3 + 4.500000E+004 8 OH 51 3.442724E+002 C2H4+OH=HOCH2CH2O2 + 4.500000E+004 8 OH 61 1.735258E+002 OH+HCHO=HO2+CO + 4.500000E+004 8 OH 72 7.885250E-008 ETHO2HNO3+OH=ETHENO3O2 + 4.500000E+004 8 OH 73 3.503117E-008 ETHO2HNO3+OH=NO3CH2CHO+OH + 4.500000E+004 8 OH 77 1.280121E-001 ETHOHNO3+OH=HOCH2CHO+NO2 + 4.500000E+004 8 OH 79 3.689060E-004 NO3CH2CHO+OH=NO3CH2CO3 + 4.500000E+004 8 OH 87 1.491029E-002 HYETHO2H+OH=HOCH2CH2O2 + 4.500000E+004 8 OH 88 5.642734E-002 HYETHO2H+OH=HOCH2CHO+OH + 4.500000E+004 8 OH 92 2.637669E-005 ETHGLY+OH=HOCH2CHO+HO2 + 4.500000E+004 8 OH 94 1.072816E+001 HOCH2CHO+OH=GLYOX+HO2 + 4.500000E+004 8 OH 95 4.291262E+001 HOCH2CHO+OH=HOCH2CO3 + 4.500000E+004 8 OH 106 9.636251E-002 HCOOH+OH=HO2 + 4.500000E+004 8 OH 119 1.975885E+000 OH+GLYOX=HCOCO + 4.500000E+004 8 OH 120 1.772072E-011 NO3CH2CO2H+OH=HCHO+NO2 + 4.500000E+004 8 OH 121 9.138268E-010 NO3CH2CO3H+OH=NO3CH2CO3 + 4.500000E+004 8 OH 123 1.199847E-008 NO3CH2PAN+OH=HCHO+CO+NO2+NO2 + 4.500000E+004 8 OH 125 8.026569E-005 HOCH2CO2H+OH=HCHO+HO2 + 4.500000E+004 8 OH 126 4.358671E-004 HOCH2CO3H+OH=HOCH2CO3 + 4.500000E+004 8 OH 128 3.244875E-001 PHAN+OH=HCHO+CO+NO2 + 4.500000E+004 8 OH 143 3.828657E-007 OH+HCOCO2H=CO+HO2 + 4.500000E+004 8 OH 146 2.665503E-006 OH+HCOCO3H=HCOCO3 + 4.500000E+004 9 HO2 20 4.137510E+002 HO2+O3=OH + 4.500000E+004 9 HO2 21 1.104331E+000 OH+HO2= + 4.500000E+004 9 HO2 22 8.557300E-001 HO2+HO2=H2O2 + 4.500000E+004 9 HO2 23 6.428057E-001 HO2+HO2=H2O2 + 4.500000E+004 9 HO2 27 3.288187E+004 HO2+NO=OH+NO2 + 4.500000E+004 9 HO2 28 2.543261E+004 HO2+NO2=HO2NO2 + 4.500000E+004 9 HO2 30 6.852786E+000 HO2+NO3=OH+NO2 + 4.500000E+004 9 HO2 52 4.429797E-005 ETHENO3O2+HO2=ETHO2HNO3 + 4.500000E+004 9 HO2 65 1.667213E-002 HOCH2CH2O2+HO2=HYETHO2H + 4.500000E+004 9 HO2 97 1.379016E-008 NO3CH2CO3+HO2=HCHO+NO2+OH + 4.500000E+004 9 HO2 98 4.701193E-009 NO3CH2CO3+HO2=NO3CH2CO2H+O3 + 4.500000E+004 9 HO2 99 1.284993E-008 NO3CH2CO3+HO2=NO3CH2CO3H + 4.500000E+004 9 HO2 107 3.580825E-003 HOCH2CO3+HO2=HO2+HCHO+OH + 4.500000E+004 9 HO2 108 1.220736E-003 HOCH2CO3+HO2=HOCH2CO2H+O3 + 4.500000E+004 9 HO2 109 3.336678E-003 HOCH2CO3+HO2=HOCH2CO3H + 4.500000E+004 9 HO2 134 1.564266E-007 HCOCO3+HO2=HCOCO2H+O3 + 4.500000E+004 9 HO2 135 4.275660E-007 HCOCO3+HO2=HCOCO3H + 4.500000E+004 9 HO2 136 4.588513E-007 HCOCO3+HO2=HO2+CO+OH + 4.860000E+004 8 OH 16 1.702313E+001 OH+O3=HO2 + 4.860000E+004 8 OH 17 1.101256E-003 OH+H2=HO2 + 4.860000E+004 8 OH 18 4.543628E+002 OH+CO=HO2 + 4.860000E+004 8 OH 19 9.223576E-003 OH+H2O2=HO2 + 4.860000E+004 8 OH 21 1.313623E-002 OH+HO2= + 4.860000E+004 8 OH 24 4.890725E-003 OH+NO=HONO + 4.860000E+004 8 OH 25 4.178314E+002 OH+NO2=HNO3 + 4.860000E+004 8 OH 26 3.412864E+000 OH+NO3=HO2+NO2 + 4.860000E+004 8 OH 29 1.084833E-003 OH+HO2NO2=NO2 + 4.860000E+004 8 OH 31 2.642532E-001 OH+HONO=NO2 + 4.860000E+004 8 OH 32 2.994487E+000 OH+HNO3=NO3 + 4.860000E+004 8 OH 34 0.000000E+000 OH+SO2=HSO3 + 4.860000E+004 8 OH 51 5.360961E+000 C2H4+OH=HOCH2CH2O2 + 4.860000E+004 8 OH 61 2.725711E+000 OH+HCHO=HO2+CO + 4.860000E+004 8 OH 72 3.351098E-007 ETHO2HNO3+OH=ETHENO3O2 + 4.860000E+004 8 OH 73 1.488766E-007 ETHO2HNO3+OH=NO3CH2CHO+OH + 4.860000E+004 8 OH 77 1.999641E-003 ETHOHNO3+OH=HOCH2CHO+NO2 + 4.860000E+004 8 OH 79 9.374500E-005 NO3CH2CHO+OH=NO3CH2CO3 + 4.860000E+004 8 OH 87 2.328571E-004 HYETHO2H+OH=HOCH2CH2O2 + 4.860000E+004 8 OH 88 8.812371E-004 HYETHO2H+OH=HOCH2CHO+OH + 4.860000E+004 8 OH 92 4.129168E-007 ETHGLY+OH=HOCH2CHO+HO2 + 4.860000E+004 8 OH 94 1.673127E-001 HOCH2CHO+OH=GLYOX+HO2 + 4.860000E+004 8 OH 95 6.692507E-001 HOCH2CHO+OH=HOCH2CO3 + 4.860000E+004 8 OH 106 1.700840E-003 HCOOH+OH=HO2 + 4.860000E+004 8 OH 119 3.056469E-002 OH+GLYOX=HCOCO + 4.860000E+004 8 OH 120 2.803603E-013 NO3CH2CO2H+OH=HCHO+NO2 + 4.860000E+004 8 OH 121 1.443188E-011 NO3CH2CO3H+OH=NO3CH2CO3 + 4.860000E+004 8 OH 123 3.726219E-010 NO3CH2PAN+OH=HCHO+CO+NO2+NO2 + 4.860000E+004 8 OH 125 1.258168E-006 HOCH2CO2H+OH=HCHO+HO2 + 4.860000E+004 8 OH 126 6.830238E-006 HOCH2CO3H+OH=HOCH2CO3 + 4.860000E+004 8 OH 128 5.113494E-003 PHAN+OH=HCHO+CO+NO2 + 4.860000E+004 8 OH 143 5.900741E-009 OH+HCOCO2H=CO+HO2 + 4.860000E+004 8 OH 146 4.162313E-008 OH+HCOCO3H=HCOCO3 + 4.860000E+004 9 HO2 20 3.073130E+002 HO2+O3=OH + 4.860000E+004 9 HO2 21 1.313623E-002 OH+HO2= + 4.860000E+004 9 HO2 22 4.963521E-001 HO2+HO2=H2O2 + 4.860000E+004 9 HO2 23 3.728489E-001 HO2+HO2=H2O2 + 4.860000E+004 9 HO2 27 2.747053E+000 HO2+NO=OH+NO2 + 4.860000E+004 9 HO2 28 1.991957E+004 HO2+NO2=HO2NO2 + 4.860000E+004 9 HO2 30 4.341795E+002 HO2+NO3=OH+NO2 + 4.860000E+004 9 HO2 52 2.189703E-001 ETHENO3O2+HO2=ETHO2HNO3 + 4.860000E+004 9 HO2 65 1.793767E-002 HOCH2CH2O2+HO2=HYETHO2H + 4.860000E+004 9 HO2 97 1.491807E-007 NO3CH2CO3+HO2=HCHO+NO2+OH + 4.860000E+004 9 HO2 98 5.085704E-008 NO3CH2CO3+HO2=NO3CH2CO2H+O3 + 4.860000E+004 9 HO2 99 1.390092E-007 NO3CH2CO3+HO2=NO3CH2CO3H + 4.860000E+004 9 HO2 107 3.624699E-003 HOCH2CO3+HO2=HO2+HCHO+OH + 4.860000E+004 9 HO2 108 1.235693E-003 HOCH2CO3+HO2=HOCH2CO2H+O3 + 4.860000E+004 9 HO2 109 3.377561E-003 HOCH2CO3+HO2=HOCH2CO3H + 4.860000E+004 9 HO2 134 4.889583E-007 HCOCO3+HO2=HCOCO2H+O3 + 4.860000E+004 9 HO2 135 1.336486E-006 HCOCO3+HO2=HCOCO3H + 4.860000E+004 9 HO2 136 1.434278E-006 HCOCO3+HO2=HO2+CO+OH diff --git a/tests/model_tests/spec_model_1/output/mainSolverParameters.output.cmp b/tests/model_tests/spec_model_1/output/mainSolverParameters.output.cmp new file mode 100644 index 000000000..03162cfda --- /dev/null +++ b/tests/model_tests/spec_model_1/output/mainSolverParameters.output.cmp @@ -0,0 +1,31 @@ + t currentStepSize previousStepSize LENRW LENIW NST NFE NETF NCFN NNI NSETUPS QU QCUR NOR LENRWLS LENIWLS LS_FLAG NFELS NJTV NPE NPS NLI NCFL + 2.43E+04 1.00000000E+002 6.65202487E+001 579 50 155 191 1 0 190 44 5 4 0 15546 105 0 278 278 3 447 278 0 + 2.52E+04 1.00000000E+002 1.00000000E+002 579 50 164 201 1 0 200 45 4 4 0 15546 105 0 304 304 3 483 304 0 + 2.61E+04 1.00000000E+002 1.00000000E+002 579 50 173 210 1 0 209 45 4 4 0 15546 105 0 322 322 3 510 322 0 + 2.70E+04 1.00000000E+002 1.00000000E+002 579 50 182 219 1 0 218 46 4 5 0 15546 105 0 333 333 4 530 333 0 + 2.79E+04 1.00000000E+002 1.00000000E+002 579 50 191 228 1 0 227 46 4 4 0 15546 105 0 342 342 4 548 342 0 + 2.88E+04 1.00000000E+002 1.00000000E+002 579 50 200 237 1 0 236 47 4 4 0 15546 105 0 350 350 4 565 350 0 + 2.97E+04 1.00000000E+002 1.00000000E+002 579 50 209 246 1 0 245 47 4 4 0 15546 105 0 360 360 4 584 360 0 + 3.06E+04 1.00000000E+002 1.00000000E+002 579 50 218 255 1 0 254 48 4 3 0 15546 105 0 375 375 4 608 375 0 + 3.15E+04 1.00000000E+002 1.00000000E+002 579 50 227 264 1 0 263 48 4 4 0 15546 105 0 389 389 4 631 389 0 + 3.24E+04 1.00000000E+002 1.00000000E+002 579 50 236 273 1 0 272 49 4 3 0 15546 105 0 403 403 5 654 403 0 + 3.33E+04 1.00000000E+002 1.00000000E+002 579 50 245 282 1 0 281 49 4 4 0 15546 105 0 411 411 5 671 411 0 + 3.42E+04 1.00000000E+002 1.00000000E+002 579 50 254 291 1 0 290 49 4 3 0 15546 105 0 420 420 5 689 420 0 + 3.51E+04 1.00000000E+002 1.00000000E+002 579 50 263 300 1 0 299 50 4 4 0 15546 105 0 429 429 5 707 429 0 + 3.60E+04 1.00000000E+002 1.00000000E+002 579 50 272 309 1 0 308 50 4 3 0 15546 105 0 439 439 5 726 439 0 + 3.69E+04 1.00000000E+002 1.00000000E+002 579 50 281 318 1 0 317 51 4 4 0 15546 105 0 448 448 5 744 448 0 + 3.78E+04 1.00000000E+002 1.00000000E+002 579 50 290 327 1 0 326 51 4 3 0 15546 105 0 460 460 5 765 460 0 + 3.87E+04 1.00000000E+002 1.00000000E+002 579 50 299 336 1 0 335 52 4 4 0 15546 105 0 470 470 6 784 470 0 + 3.96E+04 1.00000000E+002 1.00000000E+002 579 50 308 345 1 0 344 52 4 4 0 15546 105 0 478 478 6 801 478 0 + 4.05E+04 1.00000000E+002 1.00000000E+002 579 50 317 354 1 0 353 53 4 4 0 15546 105 0 487 487 6 819 487 0 + 4.14E+04 1.00000000E+002 1.00000000E+002 579 50 326 363 1 0 362 53 4 4 0 15546 105 0 497 497 6 838 497 0 + 4.23E+04 1.00000000E+002 1.00000000E+002 579 50 335 372 1 0 371 53 4 4 0 15546 105 0 510 510 6 860 510 0 + 4.32E+04 1.00000000E+002 1.00000000E+002 579 50 344 381 1 0 380 54 4 5 0 15546 105 0 528 528 6 887 528 0 + 4.41E+04 1.00000000E+002 1.00000000E+002 579 50 353 390 1 0 389 54 4 4 0 15546 105 0 561 561 6 929 561 0 + 4.50E+04 1.00000000E+002 1.00000000E+002 579 50 362 399 1 0 398 55 4 4 0 15546 105 0 590 590 7 967 590 0 + 4.59E+04 6.58728262E+001 6.58728262E+001 579 50 372 415 2 0 414 56 4 4 0 15546 105 0 644 644 7 1037 644 0 + 4.68E+04 2.50109535E+001 2.50109535E+001 579 50 390 441 4 0 440 58 4 4 0 15546 105 0 766 766 7 1185 766 0 + 4.77E+04 1.00000000E+002 1.00000000E+002 579 50 476 592 30 0 591 107 4 4 0 15546 105 0 923 923 9 1469 923 0 + 4.86E+04 1.00000000E+002 1.00000000E+002 579 50 485 601 30 0 600 107 4 4 0 15546 105 0 941 941 9 1496 941 0 + 4.95E+04 1.00000000E+002 1.00000000E+002 579 50 494 610 30 0 609 107 4 4 0 15546 105 0 958 958 9 1522 958 0 + 5.04E+04 1.00000000E+002 1.00000000E+002 579 50 503 619 30 0 618 108 4 4 0 15546 105 0 970 970 9 1543 970 0 diff --git a/tests/model_tests/spec_model_1/output/photolysisRates.output.cmp b/tests/model_tests/spec_model_1/output/photolysisRates.output.cmp new file mode 100644 index 000000000..50336850a --- /dev/null +++ b/tests/model_tests/spec_model_1/output/photolysisRates.output.cmp @@ -0,0 +1,31 @@ + t J1 J2 J3 J4 J5 J6 J7 J8 J11 J12 J13 J14 J15 J16 J17 J18 J19 J20 J21 J22 J23 J24 J31 J32 J33 J34 J35 J41 J51 J52 J53 J54 J55 J56 J61 + 2.430000E+004 3.663925E-005 4.384407E-004 7.764841E-006 8.855794E-003 2.221914E-002 1.535626E-001 1.967022E-003 6.703261E-007 3.210360E-005 4.905566E-005 4.730384E-006 1.972512E-005 1.959330E-005 1.175458E-005 5.412368E-005 1.089342E-006 1.089342E-006 5.586370E-004 5.937774E-007 3.899272E-006 1.785843E-006 1.785401E-006 5.572421E-005 8.401372E-006 2.745634E-005 1.241698E-004 2.668800E-004 5.708706E-006 1.131655E-006 1.334059E-006 1.751976E-006 2.925916E-006 8.183259E-006 3.097731E-005 5.714504E-004 + 2.520000E+004 3.666388E-005 4.384909E-004 7.767201E-006 8.857172E-003 2.222100E-002 1.535757E-001 1.967350E-003 6.706384E-007 3.211447E-005 4.906758E-005 4.732707E-006 1.973365E-005 1.960010E-005 1.175865E-005 5.414222E-005 1.089572E-006 1.089572E-006 5.587549E-004 5.941098E-007 3.901009E-006 1.786218E-006 1.785776E-006 5.572983E-005 8.402219E-006 2.746430E-005 1.241841E-004 2.669095E-004 5.710370E-006 1.132160E-006 1.334698E-006 1.752785E-006 2.927182E-006 8.186442E-006 3.099057E-005 5.715831E-004 + 2.610000E+004 3.635296E-005 4.378547E-004 7.737332E-006 8.839718E-003 2.219739E-002 1.534100E-001 1.963186E-003 6.666913E-007 3.197699E-005 4.891657E-005 4.703344E-006 1.962586E-005 1.951412E-005 1.170707E-005 5.390772E-005 1.086661E-006 1.086661E-006 5.572622E-004 5.899095E-007 3.879043E-006 1.781467E-006 1.781026E-006 5.565858E-005 8.391476E-006 2.736345E-005 1.240030E-004 2.665354E-004 5.689304E-006 1.125776E-006 1.326627E-006 1.742554E-006 2.911178E-006 8.146178E-006 3.082290E-005 5.699024E-004 + 2.700000E+004 3.571172E-005 4.365282E-004 7.675260E-006 8.803289E-003 2.214807E-002 1.530638E-001 1.954495E-003 6.585187E-007 3.169142E-005 4.860215E-005 4.642556E-006 1.940245E-005 1.933557E-005 1.159996E-005 5.342065E-005 1.080596E-006 1.080596E-006 5.541519E-004 5.812309E-007 3.833527E-006 1.771567E-006 1.771128E-006 5.550963E-005 8.369019E-006 2.715375E-005 1.236245E-004 2.657534E-004 5.645511E-006 1.112551E-006 1.309918E-006 1.721365E-006 2.878015E-006 8.062661E-006 3.047539E-005 5.664032E-004 + 2.790000E+004 3.475091E-005 4.345031E-004 7.581039E-006 8.747579E-003 2.207258E-002 1.525336E-001 1.941208E-003 6.461899E-007 3.125828E-005 4.812330E-005 4.550879E-006 1.906489E-005 1.906489E-005 1.143757E-005 5.268193E-005 1.071347E-006 1.071347E-006 5.494085E-004 5.681872E-007 3.764778E-006 1.756469E-006 1.756034E-006 5.528122E-005 8.334583E-006 2.683514E-005 1.230448E-004 2.645550E-004 5.579001E-006 1.092585E-006 1.284720E-006 1.689392E-006 2.827921E-006 7.936296E-006 2.995035E-005 5.610752E-004 + 2.880000E+004 3.348671E-005 4.317667E-004 7.454749E-006 8.672113E-003 2.197014E-002 1.518136E-001 1.923220E-003 6.298107E-007 3.067836E-005 4.747844E-005 4.429132E-006 1.861538E-005 1.870274E-005 1.122031E-005 5.169298E-005 1.058867E-006 1.058867E-006 5.430087E-004 5.509489E-007 3.673282E-006 1.736097E-006 1.735667E-006 5.497062E-005 8.287754E-006 2.640752E-005 1.222577E-004 2.629265E-004 5.489785E-006 1.066028E-006 1.251259E-006 1.646898E-006 2.761243E-006 7.767701E-006 2.925126E-005 5.539021E-004 + 2.970000E+004 3.194052E-005 4.283011E-004 7.296496E-006 8.576226E-003 2.183972E-002 1.508961E-001 1.900380E-003 6.095228E-007 2.995274E-005 4.666541E-005 4.278411E-006 1.805689E-005 1.825002E-005 1.094870E-005 5.045574E-005 1.043093E-006 1.043093E-006 5.349194E-004 5.297425E-007 3.559689E-006 1.710347E-006 1.709924E-006 5.457398E-005 8.227955E-006 2.587073E-005 1.212545E-004 2.608487E-004 5.377879E-006 1.033083E-006 1.209836E-006 1.594235E-006 2.678448E-006 7.557707E-006 2.838285E-005 5.448614E-004 + 3.060000E+004 3.013870E-005 4.240826E-004 7.106411E-006 8.459047E-003 2.167989E-002 1.497704E-001 1.872493E-003 5.855035E-007 2.908278E-005 4.568135E-005 4.100097E-006 1.739319E-005 1.770785E-005 1.062344E-005 4.897265E-005 1.023941E-006 1.023941E-006 5.250980E-004 5.048487E-007 3.424822E-006 1.679081E-006 1.678666E-006 5.408622E-005 8.154416E-006 2.522457E-005 1.200238E-004 2.582963E-004 5.243295E-006 9.940043E-007 1.160830E-006 1.531846E-006 2.580124E-006 7.307364E-006 2.735100E-005 5.339235E-004 + 3.150000E+004 2.811224E-005 4.190808E-004 6.884647E-006 8.319460E-003 2.148887E-002 1.484230E-001 1.839309E-003 5.579660E-007 2.807015E-005 4.452271E-005 3.895854E-006 1.662883E-005 1.707762E-005 1.024535E-005 4.724672E-005 1.001306E-006 1.001306E-006 5.134902E-004 4.765997E-007 3.269677E-006 1.642127E-006 1.641721E-006 5.350074E-005 8.066145E-006 2.446877E-005 1.185509E-004 2.552368E-004 5.086047E-006 9.491000E-007 1.104697E-006 1.460265E-006 2.466978E-006 7.017946E-006 2.616290E-005 5.210508E-004 + 3.240000E+004 2.589638E-005 4.132571E-004 6.631378E-006 8.156067E-003 2.126433E-002 1.468367E-001 1.800515E-003 5.271596E-007 2.691686E-005 4.318508E-005 3.667635E-006 1.576919E-005 1.636098E-005 9.815414E-006 4.528159E-005 9.750561E-007 9.750561E-007 5.000288E-004 4.453772E-007 3.095428E-006 1.599268E-006 1.598872E-006 5.280918E-005 7.961881E-006 2.360297E-005 1.168170E-004 2.516288E-004 4.906139E-006 8.987301E-007 1.041968E-006 1.380116E-006 2.339846E-006 6.690957E-006 2.482695E-005 5.061968E-004 + 3.330000E+004 2.353018E-005 4.065633E-004 6.346800E-006 7.967129E-003 2.100335E-002 1.449895E-001 1.755726E-003 4.933698E-007 2.562529E-005 4.166311E-005 3.417694E-006 1.482051E-005 1.555988E-005 9.334812E-006 4.308156E-005 9.450308E-007 9.450308E-007 4.846312E-004 4.116086E-007 2.903440E-006 1.550240E-006 1.549856E-006 5.200099E-005 7.840032E-006 2.262672E-005 1.147988E-004 2.474202E-004 4.703572E-006 8.433098E-007 9.732526E-007 1.292116E-006 2.199690E-006 6.328150E-006 2.335292E-005 4.893040E-004 + 3.420000E+004 2.105605E-005 3.989388E-004 6.031129E-006 7.750492E-003 2.070225E-002 1.428536E-001 1.704463E-003 4.569195E-007 2.419827E-005 3.995038E-005 3.148593E-006 1.378996E-005 1.467661E-005 8.804912E-006 4.065179E-005 9.110342E-007 9.110342E-007 4.671970E-004 3.757647E-007 2.695277E-006 1.494721E-006 1.494351E-006 5.106284E-005 7.698590E-006 2.153948E-005 1.124668E-004 2.425456E-004 4.478335E-006 7.833113E-007 8.992406E-007 1.197080E-006 2.047608E-006 5.931542E-006 2.175193E-005 4.703022E-004 + 3.510000E+004 1.851921E-005 3.903070E-004 5.684612E-006 7.503489E-003 2.035631E-002 1.403938E-001 1.646140E-003 4.181699E-007 2.263919E-005 3.803921E-005 2.863223E-006 1.268573E-005 1.371386E-005 8.227332E-006 3.799845E-005 8.728287E-007 8.728287E-007 4.476045E-004 3.383561E-007 2.472723E-006 1.432321E-006 1.431967E-006 4.997785E-005 7.535010E-006 2.034062E-005 1.097839E-004 2.369225E-004 4.230409E-006 7.192674E-007 8.207035E-007 1.095923E-006 1.884846E-006 5.503446E-006 2.003667E-005 4.491064E-004 + 3.600000E+004 1.596717E-005 3.805712E-004 5.307534E-006 7.222804E-003 1.995951E-002 1.375646E-001 1.580031E-003 3.775238E-007 2.095216E-005 3.592054E-005 2.564836E-006 1.151716E-005 1.267484E-005 7.603995E-006 3.512908E-005 8.301271E-007 8.301271E-007 4.257062E-004 2.999300E-007 2.237809E-006 1.362567E-006 1.362230E-006 4.872452E-005 7.346049E-006 1.902947E-005 1.067030E-004 2.304459E-004 3.959769E-006 6.517774E-007 7.385011E-007 9.896706E-007 1.712809E-006 5.046518E-006 1.822147E-005 4.256136E-004 + 3.690000E+004 1.344909E-005 3.696070E-004 4.900246E-006 6.904303E-003 1.950399E-002 1.343073E-001 1.505240E-003 3.354290E-007 1.914232E-005 3.358374E-005 2.257088E-006 1.029494E-005 1.156344E-005 6.937234E-006 3.205310E-005 7.825825E-007 7.825825E-007 4.013244E-004 2.610679E-007 1.992856E-006 1.284888E-006 1.284570E-006 4.727514E-005 7.127531E-006 1.760535E-005 1.031640E-004 2.229817E-004 3.666398E-006 5.815151E-007 6.535898E-007 8.794704E-007 1.533089E-006 4.563820E-006 1.632263E-005 3.996996E-004 + 3.780000E+004 1.101520E-005 3.572524E-004 4.463212E-006 6.542792E-003 1.897940E-002 1.305440E-001 1.420652E-003 2.923849E-007 1.721628E-005 3.101659E-005 1.944102E-006 9.031412E-006 1.038450E-005 6.229955E-006 2.878265E-005 7.297776E-007 7.297776E-007 3.742449E-004 2.223834E-007 1.740531E-006 1.198593E-006 1.198297E-006 4.559359E-005 6.874007E-006 1.606784E-005 9.908917E-005 2.143560E-004 3.350312E-006 5.092429E-007 5.670357E-007 7.666118E-007 1.347498E-006 4.058936E-006 1.435884E-005 3.712157E-004 + 3.870000E+004 8.716015E-006 3.432924E-004 3.997105E-006 6.131706E-003 1.837175E-002 1.261699E-001 1.324877E-003 2.489526E-007 1.518292E-005 2.820542E-005 1.630563E-006 7.741028E-006 9.144268E-006 5.485906E-006 2.533397E-005 6.712134E-007 6.712134E-007 3.442120E-004 1.845211E-007 1.483947E-006 1.102860E-006 1.102587E-006 4.363198E-005 6.578262E-006 1.441704E-005 9.437645E-005 2.043402E-004 3.011618E-006 4.358313E-007 4.800357E-007 6.525561E-007 1.158127E-006 3.536131E-006 1.235174E-005 3.399851E-004 + 3.960000E+004 6.601589E-006 3.274348E-004 3.502986E-006 5.662702E-003 1.766174E-002 1.210406E-001 1.216184E-003 2.057705E-007 1.305470E-005 2.513579E-005 1.321866E-006 6.441054E-006 7.851156E-006 4.710131E-006 2.172980E-005 6.063033E-007 6.063033E-007 3.109248E-004 1.481568E-007 1.226794E-006 9.967153E-007 9.964686E-007 4.132577E-005 6.230562E-006 1.265440E-005 8.888979E-005 1.926292E-004 2.650632E-006 3.622917E-007 3.939497E-007 5.389832E-007 9.674297E-007 3.000631E-006 1.032694E-005 3.058031E-004 + 4.050000E+004 4.720409E-006 3.092706E-004 2.982650E-006 5.125166E-003 1.682186E-002 1.149507E-001 1.092425E-003 1.635794E-007 1.084997E-005 2.179442E-005 1.024320E-006 5.152686E-006 6.517055E-006 3.909766E-006 1.800344E-005 5.343819E-007 5.343819E-007 2.740420E-004 1.140010E-007 9.735651E-007 8.790508E-007 8.788333E-007 3.858613E-005 5.817514E-006 1.078407E-005 8.244459E-005 1.788083E-004 2.268120E-006 2.898260E-007 3.103503E-007 4.278648E-007 7.783672E-007 2.459067E-006 8.315571E-006 2.684429E-004 + 4.140000E+004 3.117865E-006 2.882056E-004 2.439329E-006 4.505728E-003 1.581138E-002 1.075984E-001 9.510071E-004 1.232623E-007 8.597217E-006 1.817405E-005 7.454500E-007 3.902842E-006 5.159708E-006 3.095455E-006 1.420617E-005 4.547617E-007 4.547617E-007 2.332111E-004 8.280457E-008 7.298946E-007 7.487107E-007 7.485255E-007 3.528814E-005 5.320287E-006 8.815988E-006 7.478595E-005 1.623046E-004 1.865794E-006 2.199090E-007 2.311011E-007 3.215805E-007 5.946335E-007 1.920257E-006 6.356852E-006 2.276828E-004 + 4.230000E+004 1.833638E-006 2.633356E-004 1.879158E-006 3.788250E-003 1.456726E-002 9.852066E-002 7.890325E-004 8.590911E-008 6.342925E-006 1.428521E-005 4.944181E-007 2.727063E-006 3.807124E-006 2.284002E-006 1.042079E-005 3.669193E-007 3.669193E-007 1.881637E-004 5.536878E-008 5.030946E-007 6.047888E-007 6.046392E-007 3.125293E-005 4.711910E-006 6.772083E-006 6.555764E-005 1.423175E-004 1.447395E-006 1.544221E-007 1.584777E-007 2.231032E-007 4.210400E-007 1.396567E-006 4.502360E-006 1.833875E-004 + 4.320000E+004 8.967198E-007 2.332006E-004 1.314386E-006 2.955996E-003 1.298621E-002 8.697082E-002 6.040687E-004 5.291976E-008 4.166771E-006 1.018549E-005 2.824903E-007 1.674179E-006 2.506054E-006 1.503453E-006 6.787441E-006 2.710529E-007 2.710529E-007 1.390015E-004 3.255733E-008 3.029659E-007 4.475267E-007 4.474159E-007 2.622290E-005 3.953548E-006 4.700204E-006 5.426574E-005 1.177402E-004 1.021137E-006 9.587242E-008 9.534659E-008 1.362886E-007 2.641603E-007 9.064330E-007 2.823245E-006 1.357409E-004 + 4.410000E+004 3.150514E-007 1.952581E-004 7.708300E-007 2.002538E-003 1.088738E-002 7.168062E-002 3.971175E-004 2.615198E-008 2.210693E-006 6.053476E-006 1.231199E-007 8.128935E-007 1.338295E-006 8.028811E-007 3.551521E-006 1.697272E-007 1.697272E-007 8.703959E-005 1.529486E-008 1.427882E-007 2.809867E-007 2.809171E-007 1.984616E-005 2.992146E-006 2.705741E-006 4.028431E-005 8.718473E-005 6.055379E-007 4.772351E-008 4.537522E-008 6.626736E-008 1.333567E-007 4.789340E-007 1.421678E-006 8.592625E-005 + 4.500000E+004 5.376318E-008 1.446703E-004 3.052413E-007 9.772666E-004 7.934727E-003 5.044893E-002 1.833181E-004 8.008978E-009 7.253621E-007 2.372879E-006 2.945195E-008 2.349433E-007 4.474901E-007 2.684620E-007 1.134815E-006 7.273287E-008 7.273287E-008 3.729891E-005 4.468587E-009 3.910192E-008 1.210217E-007 1.209917E-007 1.180127E-005 1.779241E-006 1.021789E-006 2.321184E-005 4.983127E-005 2.435280E-007 1.465815E-008 1.294547E-008 1.956991E-008 4.182602E-008 1.608018E-007 4.423040E-007 3.817353E-005 + 4.590000E+004 1.169013E-009 7.564653E-005 3.828182E-008 1.741800E-004 3.792653E-003 2.196983E-002 2.856514E-005 6.324189E-010 5.735729E-008 2.648166E-007 1.232053E-009 1.508696E-008 3.771219E-008 2.262461E-008 8.397447E-008 9.869957E-009 9.869957E-009 5.061516E-006 3.562588E-010 2.211032E-009 1.662830E-008 1.662419E-008 3.324377E-006 5.012063E-007 1.103782E-007 6.127910E-006 1.278457E-005 3.128385E-008 1.133764E-009 8.589003E-010 1.391958E-009 3.357119E-009 1.457629E-008 3.450026E-008 5.895228E-006 + 4.680000E+004 7.376316E-027 9.390202E-008 5.124918E-018 1.455665E-013 7.073089E-007 1.143179E-006 4.631457E-015 3.777998E-021 2.471681E-020 1.952241E-018 1.711143E-024 2.479438E-021 4.720058E-020 2.831697E-020 1.553168E-020 5.754781E-019 5.754781E-019 2.951170E-016 1.724885E-020 8.091523E-023 1.132077E-018 1.131797E-018 5.397477E-013 8.137613E-014 1.373821E-018 5.394892E-013 6.868487E-013 4.528438E-018 3.372905E-021 5.858643E-022 1.777919E-021 1.263351E-020 1.217019E-019 7.922904E-020 3.271556E-015 + 4.770000E+004 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 + 4.860000E+004 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 + 4.950000E+004 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 + 5.040000E+004 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 diff --git a/tests/model_tests/spec_model_1/output/photolysisRatesParameters.output.cmp b/tests/model_tests/spec_model_1/output/photolysisRatesParameters.output.cmp new file mode 100644 index 000000000..ac7f73da2 --- /dev/null +++ b/tests/model_tests/spec_model_1/output/photolysisRatesParameters.output.cmp @@ -0,0 +1,31 @@ + t latitude longitude secx cosx lha sinld cosld eqtime + 2.340000E+004 -7.326000E+000 -7.244900E+001 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 + 2.430000E+004 -7.326000E+000 -7.244900E+001 1.014205E+000 9.859942E-001 -3.751710E-002 3.663024E-002 9.500325E-001 6.973437E-002 + 2.520000E+004 -7.326000E+000 -7.244900E+001 1.013898E+000 9.862922E-001 2.793274E-002 3.663024E-002 9.500325E-001 6.973437E-002 + 2.610000E+004 -7.326000E+000 -7.244900E+001 1.017787E+000 9.825235E-001 9.338259E-002 3.663024E-002 9.500325E-001 6.973437E-002 + 2.700000E+004 -7.326000E+000 -7.244900E+001 1.025952E+000 9.747044E-001 1.588324E-001 3.663024E-002 9.500325E-001 6.973437E-002 + 2.790000E+004 -7.326000E+000 -7.244900E+001 1.038564E+000 9.628682E-001 2.242823E-001 3.663024E-002 9.500325E-001 6.973437E-002 + 2.880000E+004 -7.326000E+000 -7.244900E+001 1.055893E+000 9.470658E-001 2.897321E-001 3.663024E-002 9.500325E-001 6.973437E-002 + 2.970000E+004 -7.326000E+000 -7.244900E+001 1.078324E+000 9.273648E-001 3.551820E-001 3.663024E-002 9.500325E-001 6.973437E-002 + 3.060000E+004 -7.326000E+000 -7.244900E+001 1.106379E+000 9.038495E-001 4.206318E-001 3.663024E-002 9.500325E-001 6.973437E-002 + 3.150000E+004 -7.326000E+000 -7.244900E+001 1.140744E+000 8.766206E-001 4.860817E-001 3.663024E-002 9.500325E-001 6.973437E-002 + 3.240000E+004 -7.326000E+000 -7.244900E+001 1.182320E+000 8.457948E-001 5.515315E-001 3.663024E-002 9.500325E-001 6.973437E-002 + 3.330000E+004 -7.326000E+000 -7.244900E+001 1.232280E+000 8.115040E-001 6.169814E-001 3.663024E-002 9.500325E-001 6.973437E-002 + 3.420000E+004 -7.326000E+000 -7.244900E+001 1.292165E+000 7.738951E-001 6.824312E-001 3.663024E-002 9.500325E-001 6.973437E-002 + 3.510000E+004 -7.326000E+000 -7.244900E+001 1.364016E+000 7.331291E-001 7.478811E-001 3.663024E-002 9.500325E-001 6.973437E-002 + 3.600000E+004 -7.326000E+000 -7.244900E+001 1.450578E+000 6.893806E-001 8.133309E-001 3.663024E-002 9.500325E-001 6.973437E-002 + 3.690000E+004 -7.326000E+000 -7.244900E+001 1.555605E+000 6.428369E-001 8.787808E-001 3.663024E-002 9.500325E-001 6.973437E-002 + 3.780000E+004 -7.326000E+000 -7.244900E+001 1.684360E+000 5.936973E-001 9.442306E-001 3.663024E-002 9.500325E-001 6.973437E-002 + 3.870000E+004 -7.326000E+000 -7.244900E+001 1.844432E+000 5.421723E-001 1.009680E+000 3.663024E-002 9.500325E-001 6.973437E-002 + 3.960000E+004 -7.326000E+000 -7.244900E+001 2.047156E+000 4.884825E-001 1.075130E+000 3.663024E-002 9.500325E-001 6.973437E-002 + 4.050000E+004 -7.326000E+000 -7.244900E+001 2.310228E+000 4.328577E-001 1.140580E+000 3.663024E-002 9.500325E-001 6.973437E-002 + 4.140000E+004 -7.326000E+000 -7.244900E+001 2.662858E+000 3.755363E-001 1.206030E+000 3.663024E-002 9.500325E-001 6.973437E-002 + 4.230000E+004 -7.326000E+000 -7.244900E+001 3.156928E+000 3.167636E-001 1.271480E+000 3.663024E-002 9.500325E-001 6.973437E-002 + 4.320000E+004 -7.326000E+000 -7.244900E+001 3.894212E+000 2.567914E-001 1.336930E+000 3.663024E-002 9.500325E-001 6.973437E-002 + 4.410000E+004 -7.326000E+000 -7.244900E+001 5.105261E+000 1.958764E-001 1.402380E+000 3.663024E-002 9.500325E-001 6.973437E-002 + 4.500000E+004 -7.326000E+000 -7.244900E+001 7.447157E+000 1.342794E-001 1.467829E+000 3.663024E-002 9.500325E-001 6.973437E-002 + 4.590000E+004 -7.326000E+000 -7.244900E+001 1.337171E+001 7.478477E-002 1.530624E+000 3.663024E-002 9.500325E-001 6.973437E-002 + 4.680000E+004 -7.326000E+000 -7.244900E+001 8.991747E+001 1.112131E-002 1.597650E+000 3.663024E-002 9.500325E-001 6.973437E-002 + 4.770000E+004 -7.326000E+000 -7.244900E+001 1.000000E+002 0.000000E+000 1.665776E+000 3.663024E-002 9.500325E-001 6.973437E-002 + 4.860000E+004 -7.326000E+000 -7.244900E+001 1.000000E+002 0.000000E+000 1.731226E+000 3.663024E-002 9.500325E-001 6.973437E-002 + 4.950000E+004 -7.326000E+000 -7.244900E+001 1.000000E+002 0.000000E+000 1.796675E+000 3.663024E-002 9.500325E-001 6.973437E-002 diff --git a/tests/model_tests/spec_model_1/output/productionRates.output.cmp b/tests/model_tests/spec_model_1/output/productionRates.output.cmp new file mode 100644 index 000000000..75d2580d5 --- /dev/null +++ b/tests/model_tests/spec_model_1/output/productionRates.output.cmp @@ -0,0 +1,400 @@ + time speciesNumber speciesName reactionNumber rate reaction + 2.700000E+004 8 OH 15 3.983258E+006 O1D=OH+OH + 2.700000E+004 8 OH 20 1.268479E+004 HO2+O3=OH + 2.700000E+004 8 OH 27 6.034940E+006 HO2+NO=OH+NO2 + 2.700000E+004 8 OH 30 2.994469E+001 HO2+NO3=OH+NO2 + 2.700000E+004 8 OH 41 4.100921E+001 H2O2=OH+OH + 2.700000E+004 8 OH 45 3.323675E+006 HONO=OH+NO + 2.700000E+004 8 OH 46 8.259176E+003 HNO3=OH+NO2 + 2.700000E+004 8 OH 64 2.532358E+002 CH2OOA=HO2+CO+OH + 2.700000E+004 8 OH 73 1.193158E-006 ETHO2HNO3+OH=NO3CH2CHO+OH + 2.700000E+004 8 OH 74 7.872378E-007 ETHO2HNO3=ETHENO3O+OH + 2.700000E+004 8 OH 88 4.060893E+000 HYETHO2H+OH=HOCH2CHO+OH + 2.700000E+004 8 OH 89 3.145324E-001 HYETHO2H=HOCH2CH2O+OH + 2.700000E+004 8 OH 97 5.037550E-007 NO3CH2CO3+HO2=HCHO+NO2+OH + 2.700000E+004 8 OH 107 1.366702E-001 HOCH2CO3+HO2=HO2+HCHO+OH + 2.700000E+004 8 OH 122 4.169128E-009 NO3CH2CO3H=HCHO+NO2+OH + 2.700000E+004 8 OH 127 1.005184E-003 HOCH2CO3H=HCHO+HO2+OH + 2.700000E+004 8 OH 132 3.861569E+001 HCOCO=CO+OH + 2.700000E+004 8 OH 136 2.442872E-004 HCOCO3+HO2=HO2+CO+OH + 2.700000E+004 8 OH 144 1.220270E-006 HCOCO3H=HO2+CO+OH + 2.700000E+004 8 OH 145 4.179358E-006 HCOCO3H=HO2+CO+OH + 2.700000E+004 9 HO2 16 2.215678E+005 OH+O3=HO2 + 2.700000E+004 9 HO2 17 1.111119E+000 OH+H2=HO2 + 2.700000E+004 9 HO2 18 5.682220E+006 OH+CO=HO2 + 2.700000E+004 9 HO2 19 2.363295E+001 OH+H2O2=HO2 + 2.700000E+004 9 HO2 26 7.422233E+001 OH+NO3=HO2+NO2 + 2.700000E+004 9 HO2 35 0.000000E+000 HSO3=HO2+SO3 + 2.700000E+004 9 HO2 48 5.846925E+005 HO2NO2=HO2+NO2 + 2.700000E+004 9 HO2 58 2.617403E+004 HCHO=CO+HO2+HO2 + 2.700000E+004 9 HO2 60 1.595827E-001 NO3+HCHO=HNO3+CO+HO2 + 2.700000E+004 9 HO2 61 1.871710E+004 OH+HCHO=HO2+CO + 2.700000E+004 9 HO2 64 2.532358E+002 CH2OOA=HO2+CO+OH + 2.700000E+004 9 HO2 76 2.464991E-001 ETHENO3O=NO3CH2CHO+HO2 + 2.700000E+004 9 HO2 90 7.281123E+004 HOCH2CH2O=HO2+HCHO+HCHO + 2.700000E+004 9 HO2 91 2.834978E+004 HOCH2CH2O=HO2+HOCH2CHO + 2.700000E+004 9 HO2 92 2.093661E-003 ETHGLY+OH=HOCH2CHO+HO2 + 2.700000E+004 9 HO2 94 8.973135E+002 HOCH2CHO+OH=GLYOX+HO2 + 2.700000E+004 9 HO2 96 3.284890E+003 HOCH2CHO=HO2+HCHO+HO2+CO + 2.700000E+004 9 HO2 105 9.567411E-002 HCOCH2O=HCHO+CO+HO2 + 2.700000E+004 9 HO2 106 4.150924E+000 HCOOH+OH=HO2 + 2.700000E+004 9 HO2 107 1.366702E-001 HOCH2CO3+HO2=HO2+HCHO+OH + 2.700000E+004 9 HO2 110 2.561827E+003 HOCH2CO3+NO=NO2+HO2+HCHO + 2.700000E+004 9 HO2 112 5.462221E-003 HOCH2CO3+NO3=NO2+HO2+HCHO + 2.700000E+004 9 HO2 113 2.316530E-003 HOCH2CO3=HCHO+HO2 + 2.700000E+004 9 HO2 116 6.983917E+001 GLYOX=CO+CO+HO2+HO2 + 2.700000E+004 9 HO2 125 9.829209E-004 HOCH2CO2H+OH=HCHO+HO2 + 2.700000E+004 9 HO2 127 1.005184E-003 HOCH2CO3H=HCHO+HO2+OH + 2.700000E+004 9 HO2 130 7.869986E+000 HCOCO=CO+CO+HO2 + 2.700000E+004 9 HO2 131 1.422218E+001 HCOCO=CO+CO+HO2 + 2.700000E+004 9 HO2 136 2.442872E-004 HCOCO3+HO2=HO2+CO+OH + 2.700000E+004 9 HO2 137 4.579063E+000 HCOCO3+NO=HO2+CO+NO2 + 2.700000E+004 9 HO2 138 2.313242E+000 HCOCO3+NO2=HO2+CO+NO3 + 2.700000E+004 9 HO2 139 9.763289E-006 HCOCO3+NO3=HO2+CO+NO2 + 2.700000E+004 9 HO2 140 4.140615E-006 HCOCO3=CO+HO2 + 2.700000E+004 9 HO2 142 1.883629E-005 HCOCO2H=HO2+HO2+CO + 2.700000E+004 9 HO2 143 4.949327E-006 OH+HCOCO2H=CO+HO2 + 2.700000E+004 9 HO2 144 1.220270E-006 HCOCO3H=HO2+CO+OH + 2.700000E+004 9 HO2 145 4.179358E-006 HCOCO3H=HO2+CO+OH + 3.060000E+004 8 OH 15 3.396742E+006 O1D=OH+OH + 3.060000E+004 8 OH 20 1.380405E+004 HO2+O3=OH + 3.060000E+004 8 OH 27 5.726488E+006 HO2+NO=OH+NO2 + 3.060000E+004 8 OH 30 3.421050E+001 HO2+NO3=OH+NO2 + 3.060000E+004 8 OH 41 8.532345E+001 H2O2=OH+OH + 3.060000E+004 8 OH 45 2.869864E+006 HONO=OH+NO + 3.060000E+004 8 OH 46 1.482369E+004 HNO3=OH+NO2 + 3.060000E+004 8 OH 64 2.194666E+002 CH2OOA=HO2+CO+OH + 3.060000E+004 8 OH 73 2.452812E-006 ETHO2HNO3+OH=NO3CH2CHO+OH + 3.060000E+004 8 OH 74 1.583425E-006 ETHO2HNO3=ETHENO3O+OH + 3.060000E+004 8 OH 88 7.870969E+000 HYETHO2H+OH=HOCH2CHO+OH + 3.060000E+004 8 OH 89 5.964822E-001 HYETHO2H=HOCH2CH2O+OH + 3.060000E+004 8 OH 97 9.395930E-007 NO3CH2CO3+HO2=HCHO+NO2+OH + 3.060000E+004 8 OH 107 2.946403E-001 HOCH2CO3+HO2=HO2+HCHO+OH + 3.060000E+004 8 OH 122 1.617308E-008 NO3CH2CO3H=HCHO+NO2+OH + 3.060000E+004 8 OH 127 4.511439E-003 HOCH2CO3H=HCHO+HO2+OH + 3.060000E+004 8 OH 132 1.243111E+002 HCOCO=CO+OH + 3.060000E+004 8 OH 136 9.478962E-004 HCOCO3+HO2=HO2+CO+OH + 3.060000E+004 8 OH 144 9.740414E-006 HCOCO3H=HO2+CO+OH + 3.060000E+004 8 OH 145 3.289568E-005 HCOCO3H=HO2+CO+OH + 3.060000E+004 9 HO2 16 2.125165E+005 OH+O3=HO2 + 3.060000E+004 9 HO2 17 3.803105E+000 OH+H2=HO2 + 3.060000E+004 9 HO2 18 5.371256E+006 OH+CO=HO2 + 3.060000E+004 9 HO2 19 5.041078E+001 OH+H2O2=HO2 + 3.060000E+004 9 HO2 26 7.473717E+001 OH+NO3=HO2+NO2 + 3.060000E+004 9 HO2 35 0.000000E+000 HSO3=HO2+SO3 + 3.060000E+004 9 HO2 48 5.846126E+005 HO2NO2=HO2+NO2 + 3.060000E+004 9 HO2 58 3.933851E+004 HCHO=CO+HO2+HO2 + 3.060000E+004 9 HO2 60 2.772460E-001 NO3+HCHO=HNO3+CO+HO2 + 3.060000E+004 9 HO2 61 2.909829E+004 OH+HCHO=HO2+CO + 3.060000E+004 9 HO2 64 2.194666E+002 CH2OOA=HO2+CO+OH + 3.060000E+004 9 HO2 76 2.242522E-001 ETHENO3O=NO3CH2CHO+HO2 + 3.060000E+004 9 HO2 90 5.931358E+004 HOCH2CH2O=HO2+HCHO+HCHO + 3.060000E+004 9 HO2 91 2.309434E+004 HOCH2CH2O=HO2+HOCH2CHO + 3.060000E+004 9 HO2 92 3.859513E-003 ETHGLY+OH=HOCH2CHO+HO2 + 3.060000E+004 9 HO2 94 1.487621E+003 HOCH2CHO+OH=GLYOX+HO2 + 3.060000E+004 9 HO2 96 5.254143E+003 HOCH2CHO=HO2+HCHO+HO2+CO + 3.060000E+004 9 HO2 105 1.288851E-001 HCOCH2O=HCHO+CO+HO2 + 3.060000E+004 9 HO2 106 7.295505E+000 HCOOH+OH=HO2 + 3.060000E+004 9 HO2 107 2.946403E-001 HOCH2CO3+HO2=HO2+HCHO+OH + 3.060000E+004 9 HO2 110 4.518112E+003 HOCH2CO3+NO=NO2+HO2+HCHO + 3.060000E+004 9 HO2 112 1.159847E-002 HOCH2CO3+NO3=NO2+HO2+HCHO + 3.060000E+004 9 HO2 113 4.342582E-003 HOCH2CO3=HCHO+HO2 + 3.060000E+004 9 HO2 116 2.204154E+002 GLYOX=CO+CO+HO2+HO2 + 3.060000E+004 9 HO2 125 4.619565E-003 HOCH2CO2H+OH=HCHO+HO2 + 3.060000E+004 9 HO2 127 4.511439E-003 HOCH2CO3H=HCHO+HO2+OH + 3.060000E+004 9 HO2 130 2.533495E+001 HCOCO=CO+CO+HO2 + 3.060000E+004 9 HO2 131 4.578383E+001 HCOCO=CO+CO+HO2 + 3.060000E+004 9 HO2 136 9.478962E-004 HCOCO3+HO2=HO2+CO+OH + 3.060000E+004 9 HO2 137 1.453536E+001 HCOCO3+NO=HO2+CO+NO2 + 3.060000E+004 9 HO2 138 7.722796E+000 HCOCO3+NO2=HO2+CO+NO3 + 3.060000E+004 9 HO2 139 3.731379E-005 HCOCO3+NO3=HO2+CO+NO2 + 3.060000E+004 9 HO2 140 1.397065E-005 HCOCO3=CO+HO2 + 3.060000E+004 9 HO2 142 1.474739E-004 HCOCO2H=HO2+HO2+CO + 3.060000E+004 9 HO2 143 3.788601E-005 OH+HCOCO2H=CO+HO2 + 3.060000E+004 9 HO2 144 9.740414E-006 HCOCO3H=HO2+CO+OH + 3.060000E+004 9 HO2 145 3.289568E-005 HCOCO3H=HO2+CO+OH + 3.420000E+004 8 OH 15 2.392025E+006 O1D=OH+OH + 3.420000E+004 8 OH 20 1.214561E+004 HO2+O3=OH + 3.420000E+004 8 OH 27 4.356926E+006 HO2+NO=OH+NO2 + 3.420000E+004 8 OH 30 3.278958E+001 HO2+NO3=OH+NO2 + 3.420000E+004 8 OH 41 1.080381E+002 H2O2=OH+OH + 3.420000E+004 8 OH 45 1.975601E+006 HONO=OH+NO + 3.420000E+004 8 OH 46 1.609572E+004 HNO3=OH+NO2 + 3.420000E+004 8 OH 64 1.938783E+002 CH2OOA=HO2+CO+OH + 3.420000E+004 8 OH 73 2.841066E-006 ETHO2HNO3+OH=NO3CH2CHO+OH + 3.420000E+004 8 OH 74 2.054624E-006 ETHO2HNO3=ETHENO3O+OH + 3.420000E+004 8 OH 88 7.756254E+000 HYETHO2H+OH=HOCH2CHO+OH + 3.420000E+004 8 OH 89 6.584743E-001 HYETHO2H=HOCH2CH2O+OH + 3.420000E+004 8 OH 97 9.459267E-007 NO3CH2CO3+HO2=HCHO+NO2+OH + 3.420000E+004 8 OH 107 2.960771E-001 HOCH2CO3+HO2=HO2+HCHO+OH + 3.420000E+004 8 OH 122 2.708045E-008 NO3CH2CO3H=HCHO+NO2+OH + 3.420000E+004 8 OH 127 7.858380E-003 HOCH2CO3H=HCHO+HO2+OH + 3.420000E+004 8 OH 132 1.535237E+002 HCOCO=CO+OH + 3.420000E+004 8 OH 136 1.128296E-003 HCOCO3+HO2=HO2+CO+OH + 3.420000E+004 8 OH 144 2.047918E-005 HCOCO3H=HO2+CO+OH + 3.420000E+004 8 OH 145 6.711531E-005 HCOCO3H=HO2+CO+OH + 3.420000E+004 9 HO2 16 1.633187E+005 OH+O3=HO2 + 3.420000E+004 9 HO2 17 5.422633E+000 OH+H2=HO2 + 3.420000E+004 9 HO2 18 4.080574E+006 OH+CO=HO2 + 3.420000E+004 9 HO2 19 5.734272E+001 OH+H2O2=HO2 + 3.420000E+004 9 HO2 26 6.256677E+001 OH+NO3=HO2+NO2 + 3.420000E+004 9 HO2 35 0.000000E+000 HSO3=HO2+SO3 + 3.420000E+004 9 HO2 48 4.897041E+005 HO2NO2=HO2+NO2 + 3.420000E+004 9 HO2 58 3.774531E+004 HCHO=CO+HO2+HO2 + 3.420000E+004 9 HO2 60 3.510543E-001 NO3+HCHO=HNO3+CO+HO2 + 3.420000E+004 9 HO2 61 2.558343E+004 OH+HCHO=HO2+CO + 3.420000E+004 9 HO2 64 1.938783E+002 CH2OOA=HO2+CO+OH + 3.420000E+004 9 HO2 76 2.158054E-001 ETHENO3O=NO3CH2CHO+HO2 + 3.420000E+004 9 HO2 90 3.960824E+004 HOCH2CH2O=HO2+HCHO+HCHO + 3.420000E+004 9 HO2 91 1.542187E+004 HOCH2CH2O=HO2+HOCH2CHO + 3.420000E+004 9 HO2 92 3.652461E-003 ETHGLY+OH=HOCH2CHO+HO2 + 3.420000E+004 9 HO2 94 1.387170E+003 HOCH2CHO+OH=GLYOX+HO2 + 3.420000E+004 9 HO2 96 5.326043E+003 HOCH2CHO=HO2+HCHO+HO2+CO + 3.420000E+004 9 HO2 105 1.262054E-001 HCOCH2O=HCHO+CO+HO2 + 3.420000E+004 9 HO2 106 7.779484E+000 HCOOH+OH=HO2 + 3.420000E+004 9 HO2 107 2.960771E-001 HOCH2CO3+HO2=HO2+HCHO+OH + 3.420000E+004 9 HO2 110 4.533498E+003 HOCH2CO3+NO=NO2+HO2+HCHO + 3.420000E+004 9 HO2 112 1.466094E-002 HOCH2CO3+NO3=NO2+HO2+HCHO + 3.420000E+004 9 HO2 113 3.879663E-003 HOCH2CO3=HCHO+HO2 + 3.420000E+004 9 HO2 116 3.040167E+002 GLYOX=CO+CO+HO2+HO2 + 3.420000E+004 9 HO2 125 7.350617E-003 HOCH2CO2H+OH=HCHO+HO2 + 3.420000E+004 9 HO2 127 7.858380E-003 HOCH2CO3H=HCHO+HO2+OH + 3.420000E+004 9 HO2 130 3.128857E+001 HCOCO=CO+CO+HO2 + 3.420000E+004 9 HO2 131 5.654287E+001 HCOCO=CO+CO+HO2 + 3.420000E+004 9 HO2 136 1.128296E-003 HCOCO3+HO2=HO2+CO+OH + 3.420000E+004 9 HO2 137 1.727634E+001 HCOCO3+NO=HO2+CO+NO2 + 3.420000E+004 9 HO2 138 1.008234E+001 HCOCO3+NO2=HO2+CO+NO3 + 3.420000E+004 9 HO2 139 5.587019E-005 HCOCO3+NO3=HO2+CO+NO2 + 3.420000E+004 9 HO2 140 1.478470E-005 HCOCO3=CO+HO2 + 3.420000E+004 9 HO2 142 3.128734E-004 HCOCO2H=HO2+HO2+CO + 3.420000E+004 9 HO2 143 6.539885E-005 OH+HCOCO2H=CO+HO2 + 3.420000E+004 9 HO2 144 2.047918E-005 HCOCO3H=HO2+CO+OH + 3.420000E+004 9 HO2 145 6.711531E-005 HCOCO3H=HO2+CO+OH + 3.780000E+004 8 OH 15 1.253850E+006 O1D=OH+OH + 3.780000E+004 8 OH 20 7.849545E+003 HO2+O3=OH + 3.780000E+004 8 OH 27 2.407412E+006 HO2+NO=OH+NO2 + 3.780000E+004 8 OH 30 2.467842E+001 HO2+NO3=OH+NO2 + 3.780000E+004 8 OH 41 9.646266E+001 H2O2=OH+OH + 3.780000E+004 8 OH 45 1.005338E+006 HONO=OH+NO + 3.780000E+004 8 OH 46 1.206195E+004 HNO3=OH+NO2 + 3.780000E+004 8 OH 64 1.776933E+002 CH2OOA=HO2+CO+OH + 3.780000E+004 8 OH 73 2.033180E-006 ETHO2HNO3+OH=NO3CH2CHO+OH + 3.780000E+004 8 OH 74 1.993259E-006 ETHO2HNO3=ETHENO3O+OH + 3.780000E+004 8 OH 88 4.513372E+000 HYETHO2H+OH=HOCH2CHO+OH + 3.780000E+004 8 OH 89 5.194275E-001 HYETHO2H=HOCH2CH2O+OH + 3.780000E+004 8 OH 97 5.390767E-007 NO3CH2CO3+HO2=HCHO+NO2+OH + 3.780000E+004 8 OH 107 1.519909E-001 HOCH2CO3+HO2=HO2+HCHO+OH + 3.780000E+004 8 OH 122 2.756230E-008 NO3CH2CO3H=HCHO+NO2+OH + 3.780000E+004 8 OH 127 7.898782E-003 HOCH2CO3H=HCHO+HO2+OH + 3.780000E+004 8 OH 132 9.785523E+001 HCOCO=CO+OH + 3.780000E+004 8 OH 136 5.104886E-004 HCOCO3+HO2=HO2+CO+OH + 3.780000E+004 8 OH 144 2.068037E-005 HCOCO3H=HO2+CO+OH + 3.780000E+004 8 OH 145 6.410007E-005 HCOCO3H=HO2+CO+OH + 3.780000E+004 9 HO2 16 9.026490E+004 OH+O3=HO2 + 3.780000E+004 9 HO2 17 4.234773E+000 OH+H2=HO2 + 3.780000E+004 9 HO2 18 2.246608E+006 OH+CO=HO2 + 3.780000E+004 9 HO2 19 3.818066E+001 OH+H2O2=HO2 + 3.780000E+004 9 HO2 26 4.027012E+001 OH+NO3=HO2+NO2 + 3.780000E+004 9 HO2 35 0.000000E+000 HSO3=HO2+SO3 + 3.780000E+004 9 HO2 48 3.208619E+005 HO2NO2=HO2+NO2 + 3.780000E+004 9 HO2 58 2.713318E+004 HCHO=CO+HO2+HO2 + 3.780000E+004 9 HO2 60 4.136801E-001 NO3+HCHO=HNO3+CO+HO2 + 3.780000E+004 9 HO2 61 1.426505E+004 OH+HCHO=HO2+CO + 3.780000E+004 9 HO2 64 1.776933E+002 CH2OOA=HO2+CO+OH + 3.780000E+004 9 HO2 76 2.302334E-001 ETHENO3O=NO3CH2CHO+HO2 + 3.780000E+004 9 HO2 90 2.007526E+004 HOCH2CH2O=HO2+HCHO+HCHO + 3.780000E+004 9 HO2 91 7.816503E+003 HOCH2CH2O=HO2+HOCH2CHO + 3.780000E+004 9 HO2 92 2.091059E-003 ETHGLY+OH=HOCH2CHO+HO2 + 3.780000E+004 9 HO2 94 8.191962E+002 HOCH2CHO+OH=GLYOX+HO2 + 3.780000E+004 9 HO2 96 4.032656E+003 HOCH2CHO=HO2+HCHO+HO2+CO + 3.780000E+004 9 HO2 105 1.031314E-001 HCOCH2O=HCHO+CO+HO2 + 3.780000E+004 9 HO2 106 5.393641E+000 HCOOH+OH=HO2 + 3.780000E+004 9 HO2 107 1.519909E-001 HOCH2CO3+HO2=HO2+HCHO+OH + 3.780000E+004 9 HO2 110 3.087939E+003 HOCH2CO3+NO=NO2+HO2+HCHO + 3.780000E+004 9 HO2 112 1.360217E-002 HOCH2CO3+NO3=NO2+HO2+HCHO + 3.780000E+004 9 HO2 113 1.844002E-003 HOCH2CO3=HCHO+HO2 + 3.780000E+004 9 HO2 116 2.631728E+002 GLYOX=CO+CO+HO2+HO2 + 3.780000E+004 9 HO2 125 5.562444E-003 HOCH2CO2H+OH=HCHO+HO2 + 3.780000E+004 9 HO2 127 7.898782E-003 HOCH2CO3H=HCHO+HO2+OH + 3.780000E+004 9 HO2 130 1.994317E+001 HCOCO=CO+CO+HO2 + 3.780000E+004 9 HO2 131 3.604013E+001 HCOCO=CO+CO+HO2 + 3.780000E+004 9 HO2 136 5.104886E-004 HCOCO3+HO2=HO2+CO+OH + 3.780000E+004 9 HO2 137 1.037140E+001 HCOCO3+NO=HO2+CO+NO2 + 3.780000E+004 9 HO2 138 7.152689E+000 HCOCO3+NO2=HO2+CO+NO3 + 3.780000E+004 9 HO2 139 4.568533E-005 HCOCO3+NO3=HO2+CO+NO2 + 3.780000E+004 9 HO2 140 6.193412E-006 HCOCO3=CO+HO2 + 3.780000E+004 9 HO2 142 3.251979E-004 HCOCO2H=HO2+HO2+CO + 3.780000E+004 9 HO2 143 4.257738E-005 OH+HCOCO2H=CO+HO2 + 3.780000E+004 9 HO2 144 2.068037E-005 HCOCO3H=HO2+CO+OH + 3.780000E+004 9 HO2 145 6.410007E-005 HCOCO3H=HO2+CO+OH + 4.140000E+004 8 OH 15 3.488080E+005 O1D=OH+OH + 4.140000E+004 8 OH 20 3.015456E+003 HO2+O3=OH + 4.140000E+004 8 OH 27 7.243348E+005 HO2+NO=OH+NO2 + 4.140000E+004 8 OH 30 1.327229E+001 HO2+NO3=OH+NO2 + 4.140000E+004 8 OH 41 5.699138E+001 H2O2=OH+OH + 4.140000E+004 8 OH 45 2.940675E+005 HONO=OH+NO + 4.140000E+004 8 OH 46 5.360096E+003 HNO3=OH+NO2 + 4.140000E+004 8 OH 64 1.688799E+002 CH2OOA=HO2+CO+OH + 4.140000E+004 8 OH 73 7.127871E-007 ETHO2HNO3+OH=NO3CH2CHO+OH + 4.140000E+004 8 OH 74 1.305305E-006 ETHO2HNO3=ETHENO3O+OH + 4.140000E+004 8 OH 88 1.314729E+000 HYETHO2H+OH=HOCH2CHO+OH + 4.140000E+004 8 OH 89 2.826341E-001 HYETHO2H=HOCH2CH2O+OH + 4.140000E+004 8 OH 97 1.416239E-007 NO3CH2CO3+HO2=HCHO+NO2+OH + 4.140000E+004 8 OH 107 3.517456E-002 HOCH2CO3+HO2=HO2+HCHO+OH + 4.140000E+004 8 OH 122 1.692645E-008 NO3CH2CO3H=HCHO+NO2+OH + 4.140000E+004 8 OH 127 4.757095E-003 HOCH2CO3H=HCHO+HO2+OH + 4.140000E+004 8 OH 132 3.000590E+001 HCOCO=CO+OH + 4.140000E+004 8 OH 136 6.274271E-005 HCOCO3+HO2=HO2+CO+OH + 4.140000E+004 8 OH 144 1.172062E-005 HCOCO3H=HO2+CO+OH + 4.140000E+004 8 OH 145 3.241248E-005 HCOCO3H=HO2+CO+OH + 4.140000E+004 9 HO2 16 2.664537E+004 OH+O3=HO2 + 4.140000E+004 9 HO2 17 1.517295E+000 OH+H2=HO2 + 4.140000E+004 9 HO2 18 6.691021E+005 OH+CO=HO2 + 4.140000E+004 9 HO2 19 1.230508E+001 OH+H2O2=HO2 + 4.140000E+004 9 HO2 26 1.664201E+001 OH+NO3=HO2+NO2 + 4.140000E+004 9 HO2 35 0.000000E+000 HSO3=HO2+SO3 + 4.140000E+004 9 HO2 48 1.384439E+005 HO2NO2=HO2+NO2 + 4.140000E+004 9 HO2 58 1.302993E+004 HCHO=CO+HO2+HO2 + 4.140000E+004 9 HO2 60 5.514376E-001 NO3+HCHO=HNO3+CO+HO2 + 4.140000E+004 9 HO2 61 4.089874E+003 OH+HCHO=HO2+CO + 4.140000E+004 9 HO2 64 1.688799E+002 CH2OOA=HO2+CO+OH + 4.140000E+004 9 HO2 76 3.065561E-001 ETHENO3O=NO3CH2CHO+HO2 + 4.140000E+004 9 HO2 90 5.494332E+003 HOCH2CH2O=HO2+HCHO+HCHO + 4.140000E+004 9 HO2 91 2.139274E+003 HOCH2CH2O=HO2+HOCH2CHO + 4.140000E+004 9 HO2 92 6.117110E-004 ETHGLY+OH=HOCH2CHO+HO2 + 4.140000E+004 9 HO2 94 2.472522E+002 HOCH2CHO+OH=GLYOX+HO2 + 4.140000E+004 9 HO2 96 2.028472E+003 HOCH2CHO=HO2+HCHO+HO2+CO + 4.140000E+004 9 HO2 105 6.215673E-002 HCOCH2O=HCHO+CO+HO2 + 4.140000E+004 9 HO2 106 1.917289E+000 HCOOH+OH=HO2 + 4.140000E+004 9 HO2 107 3.517456E-002 HOCH2CO3+HO2=HO2+HCHO+OH + 4.140000E+004 9 HO2 110 1.428333E+003 HOCH2CO3+NO=NO2+HO2+HCHO + 4.140000E+004 9 HO2 112 1.124627E-002 HOCH2CO3+NO3=NO2+HO2+HCHO + 4.140000E+004 9 HO2 113 4.184220E-004 HOCH2CO3=HCHO+HO2 + 4.140000E+004 9 HO2 116 1.393840E+002 GLYOX=CO+CO+HO2+HO2 + 4.140000E+004 9 HO2 125 1.819212E-003 HOCH2CO2H+OH=HCHO+HO2 + 4.140000E+004 9 HO2 127 4.757095E-003 HOCH2CO3H=HCHO+HO2+OH + 4.140000E+004 9 HO2 130 6.115286E+000 HCOCO=CO+CO+HO2 + 4.140000E+004 9 HO2 131 1.105119E+001 HCOCO=CO+CO+HO2 + 4.140000E+004 9 HO2 136 6.274271E-005 HCOCO3+HO2=HO2+CO+OH + 4.140000E+004 9 HO2 137 2.547792E+000 HCOCO3+NO=HO2+CO+NO2 + 4.140000E+004 9 HO2 138 2.504451E+000 HCOCO3+NO2=HO2+CO+NO3 + 4.140000E+004 9 HO2 139 2.006057E-005 HCOCO3+NO3=HO2+CO+NO2 + 4.140000E+004 9 HO2 140 7.463614E-007 HCOCO3=CO+HO2 + 4.140000E+004 9 HO2 142 2.046182E-004 HCOCO2H=HO2+HO2+CO + 4.140000E+004 9 HO2 143 1.058268E-005 OH+HCOCO2H=CO+HO2 + 4.140000E+004 9 HO2 144 1.172062E-005 HCOCO3H=HO2+CO+OH + 4.140000E+004 9 HO2 145 3.241248E-005 HCOCO3H=HO2+CO+OH + 4.500000E+004 8 OH 15 5.845277E+003 O1D=OH+OH + 4.500000E+004 8 OH 20 4.137510E+002 HO2+O3=OH + 4.500000E+004 8 OH 27 3.288187E+004 HO2+NO=OH+NO2 + 4.500000E+004 8 OH 30 6.852786E+000 HO2+NO3=OH+NO2 + 4.500000E+004 8 OH 41 7.497904E+000 H2O2=OH+OH + 4.500000E+004 8 OH 45 2.016773E+004 HONO=OH+NO + 4.500000E+004 8 OH 46 3.461632E+002 HNO3=OH+NO2 + 4.500000E+004 8 OH 64 1.612858E+002 CH2OOA=HO2+CO+OH + 4.500000E+004 8 OH 73 3.503117E-008 ETHO2HNO3+OH=NO3CH2CHO+OH + 4.500000E+004 8 OH 74 1.925499E-007 ETHO2HNO3=ETHENO3O+OH + 4.500000E+004 8 OH 88 5.642734E-002 HYETHO2H+OH=HOCH2CHO+OH + 4.500000E+004 8 OH 89 3.640944E-002 HYETHO2H=HOCH2CH2O+OH + 4.500000E+004 8 OH 97 1.379016E-008 NO3CH2CO3+HO2=HCHO+NO2+OH + 4.500000E+004 8 OH 107 3.580825E-003 HOCH2CO3+HO2=HO2+HCHO+OH + 4.500000E+004 8 OH 122 2.241614E-009 NO3CH2CO3H=HCHO+NO2+OH + 4.500000E+004 8 OH 127 6.269992E-004 HOCH2CO3H=HCHO+HO2+OH + 4.500000E+004 8 OH 132 1.176945E+000 HCOCO=CO+OH + 4.500000E+004 8 OH 136 4.588513E-007 HCOCO3+HO2=HO2+CO+OH + 4.500000E+004 8 OH 144 1.502193E-006 HCOCO3H=HO2+CO+OH + 4.500000E+004 8 OH 145 2.760326E-006 HCOCO3H=HO2+CO+OH + 4.500000E+004 9 HO2 16 1.117582E+003 OH+O3=HO2 + 4.500000E+004 9 HO2 17 7.038076E-002 OH+H2=HO2 + 4.500000E+004 9 HO2 18 2.909103E+004 OH+CO=HO2 + 4.500000E+004 9 HO2 19 5.625889E-001 OH+H2O2=HO2 + 4.500000E+004 9 HO2 26 2.626629E+000 OH+NO3=HO2+NO2 + 4.500000E+004 9 HO2 35 0.000000E+000 HSO3=HO2+SO3 + 4.500000E+004 9 HO2 48 2.599987E+004 HO2NO2=HO2+NO2 + 4.500000E+004 9 HO2 58 1.072616E+003 HCHO=CO+HO2+HO2 + 4.500000E+004 9 HO2 60 1.952745E+000 NO3+HCHO=HNO3+CO+HO2 + 4.500000E+004 9 HO2 61 1.735258E+002 OH+HCHO=HO2+CO + 4.500000E+004 9 HO2 64 1.612858E+002 CH2OOA=HO2+CO+OH + 4.500000E+004 9 HO2 76 1.082220E+000 ETHENO3O=NO3CH2CHO+HO2 + 4.500000E+004 9 HO2 90 2.483535E+002 HOCH2CH2O=HO2+HCHO+HCHO + 4.500000E+004 9 HO2 91 9.669894E+001 HOCH2CH2O=HO2+HOCH2CHO + 4.500000E+004 9 HO2 92 2.637669E-005 ETHGLY+OH=HOCH2CHO+HO2 + 4.500000E+004 9 HO2 94 1.072816E+001 HOCH2CHO+OH=GLYOX+HO2 + 4.500000E+004 9 HO2 96 1.755348E+002 HOCH2CHO=HO2+HCHO+HO2+CO + 4.500000E+004 9 HO2 105 7.715841E-003 HCOCH2O=HCHO+CO+HO2 + 4.500000E+004 9 HO2 106 9.636251E-002 HCOOH+OH=HO2 + 4.500000E+004 9 HO2 107 3.580825E-003 HOCH2CO3+HO2=HO2+HCHO+OH + 4.500000E+004 9 HO2 110 3.261718E+002 HOCH2CO3+NO=NO2+HO2+HCHO + 4.500000E+004 9 HO2 112 2.920987E-002 HOCH2CO3+NO3=NO2+HO2+HCHO + 4.500000E+004 9 HO2 113 5.386647E-005 HOCH2CO3=HCHO+HO2 + 4.500000E+004 9 HO2 116 1.483223E+001 GLYOX=CO+CO+HO2+HO2 + 4.500000E+004 9 HO2 125 8.026569E-005 HOCH2CO2H+OH=HCHO+HO2 + 4.500000E+004 9 HO2 127 6.269992E-004 HOCH2CO3H=HCHO+HO2+OH + 4.500000E+004 9 HO2 130 2.398647E-001 HCOCO=CO+CO+HO2 + 4.500000E+004 9 HO2 131 4.334695E-001 HCOCO=CO+CO+HO2 + 4.500000E+004 9 HO2 136 4.588513E-007 HCOCO3+HO2=HO2+CO+OH + 4.500000E+004 9 HO2 137 4.179606E-002 HCOCO3+NO=HO2+CO+NO2 + 4.500000E+004 9 HO2 138 1.682870E-001 HCOCO3+NO2=HO2+CO+NO3 + 4.500000E+004 9 HO2 139 3.742989E-006 HCOCO3+NO3=HO2+CO+NO2 + 4.500000E+004 9 HO2 140 6.902516E-009 HCOCO3=CO+HO2 + 4.500000E+004 9 HO2 142 5.283670E-005 HCOCO2H=HO2+HO2+CO + 4.500000E+004 9 HO2 143 3.828657E-007 OH+HCOCO2H=CO+HO2 + 4.500000E+004 9 HO2 144 1.502193E-006 HCOCO3H=HO2+CO+OH + 4.500000E+004 9 HO2 145 2.760326E-006 HCOCO3H=HO2+CO+OH + 4.860000E+004 8 OH 15 1.212316E-090 O1D=OH+OH + 4.860000E+004 8 OH 20 3.073130E+002 HO2+O3=OH + 4.860000E+004 8 OH 27 2.747053E+000 HO2+NO=OH+NO2 + 4.860000E+004 8 OH 30 4.341795E+002 HO2+NO3=OH+NO2 + 4.860000E+004 8 OH 41 0.000000E+000 H2O2=OH+OH + 4.860000E+004 8 OH 45 0.000000E+000 HONO=OH+NO + 4.860000E+004 8 OH 46 0.000000E+000 HNO3=OH+NO2 + 4.860000E+004 8 OH 64 1.568221E+002 CH2OOA=HO2+CO+OH + 4.860000E+004 8 OH 73 1.488766E-007 ETHO2HNO3+OH=NO3CH2CHO+OH + 4.860000E+004 8 OH 74 0.000000E+000 ETHO2HNO3=ETHENO3O+OH + 4.860000E+004 8 OH 88 8.812371E-004 HYETHO2H+OH=HOCH2CHO+OH + 4.860000E+004 8 OH 89 0.000000E+000 HYETHO2H=HOCH2CH2O+OH + 4.860000E+004 8 OH 97 1.491807E-007 NO3CH2CO3+HO2=HCHO+NO2+OH + 4.860000E+004 8 OH 107 3.624699E-003 HOCH2CO3+HO2=HO2+HCHO+OH + 4.860000E+004 8 OH 122 0.000000E+000 NO3CH2CO3H=HCHO+NO2+OH + 4.860000E+004 8 OH 127 0.000000E+000 HOCH2CO3H=HCHO+HO2+OH + 4.860000E+004 8 OH 132 3.986542E+000 HCOCO=CO+OH + 4.860000E+004 8 OH 136 1.434278E-006 HCOCO3+HO2=HO2+CO+OH + 4.860000E+004 8 OH 144 0.000000E+000 HCOCO3H=HO2+CO+OH + 4.860000E+004 8 OH 145 0.000000E+000 HCOCO3H=HO2+CO+OH + 4.860000E+004 9 HO2 16 1.702313E+001 OH+O3=HO2 + 4.860000E+004 9 HO2 17 1.101256E-003 OH+H2=HO2 + 4.860000E+004 9 HO2 18 4.543628E+002 OH+CO=HO2 + 4.860000E+004 9 HO2 19 9.223576E-003 OH+H2O2=HO2 + 4.860000E+004 9 HO2 26 3.412864E+000 OH+NO3=HO2+NO2 + 4.860000E+004 9 HO2 35 0.000000E+000 HSO3=HO2+SO3 + 4.860000E+004 9 HO2 48 1.983086E+004 HO2NO2=HO2+NO2 + 4.860000E+004 9 HO2 58 0.000000E+000 HCHO=CO+HO2+HO2 + 4.860000E+004 9 HO2 60 1.633775E+002 NO3+HCHO=HNO3+CO+HO2 + 4.860000E+004 9 HO2 61 2.725711E+000 OH+HCHO=HO2+CO + 4.860000E+004 9 HO2 64 1.568221E+002 CH2OOA=HO2+CO+OH + 4.860000E+004 9 HO2 76 6.645706E+001 ETHENO3O=NO3CH2CHO+HO2 + 4.860000E+004 9 HO2 90 3.339452E+000 HOCH2CH2O=HO2+HCHO+HCHO + 4.860000E+004 9 HO2 91 1.300249E+000 HOCH2CH2O=HO2+HOCH2CHO + 4.860000E+004 9 HO2 92 4.129168E-007 ETHGLY+OH=HOCH2CHO+HO2 + 4.860000E+004 9 HO2 94 1.673127E-001 HOCH2CHO+OH=GLYOX+HO2 + 4.860000E+004 9 HO2 96 0.000000E+000 HOCH2CHO=HO2+HCHO+HO2+CO + 4.860000E+004 9 HO2 105 6.850535E-081 HCOCH2O=HCHO+CO+HO2 + 4.860000E+004 9 HO2 106 1.700840E-003 HCOOH+OH=HO2 + 4.860000E+004 9 HO2 107 3.624699E-003 HOCH2CO3+HO2=HO2+HCHO+OH + 4.860000E+004 9 HO2 110 4.755462E-002 HOCH2CO3+NO=NO2+HO2+HCHO + 4.860000E+004 9 HO2 112 3.229740E+000 HOCH2CO3+NO3=NO2+HO2+HCHO + 4.860000E+004 9 HO2 113 1.268622E-003 HOCH2CO3=HCHO+HO2 + 4.860000E+004 9 HO2 116 0.000000E+000 GLYOX=CO+CO+HO2+HO2 + 4.860000E+004 9 HO2 125 1.258168E-006 HOCH2CO2H+OH=HCHO+HO2 + 4.860000E+004 9 HO2 127 0.000000E+000 HOCH2CO3H=HCHO+HO2+OH + 4.860000E+004 9 HO2 130 8.124684E-001 HCOCO=CO+CO+HO2 + 4.860000E+004 9 HO2 131 1.468245E+000 HCOCO=CO+CO+HO2 + 4.860000E+004 9 HO2 136 1.434278E-006 HCOCO3+HO2=HO2+CO+OH + 4.860000E+004 9 HO2 137 1.881715E-005 HCOCO3+NO=HO2+CO+NO2 + 4.860000E+004 9 HO2 138 7.103098E-001 HCOCO3+NO2=HO2+CO+NO3 + 4.860000E+004 9 HO2 139 1.277994E-003 HCOCO3+NO3=HO2+CO+NO2 + 4.860000E+004 9 HO2 140 5.019881E-007 HCOCO3=CO+HO2 + 4.860000E+004 9 HO2 142 0.000000E+000 HCOCO2H=HO2+HO2+CO + 4.860000E+004 9 HO2 143 5.900741E-009 OH+HCOCO2H=CO+HO2 + 4.860000E+004 9 HO2 144 0.000000E+000 HCOCO3H=HO2+CO+OH + 4.860000E+004 9 HO2 145 0.000000E+000 HCOCO3H=HO2+CO+OH diff --git a/tests/model_tests/spec_model_1/output/reactionRates/25200.cmp b/tests/model_tests/spec_model_1/output/reactionRates/25200.cmp new file mode 100644 index 000000000..d751380d6 --- /dev/null +++ b/tests/model_tests/spec_model_1/output/reactionRates/25200.cmp @@ -0,0 +1,147 @@ + reactionNumber reactionRate +1 7.464574E+008 +2 2.145640E+008 +3 5.705864E+001 +4 2.096212E+003 +5 1.073918E+004 +6 2.126017E+003 +7 5.296995E+006 +8 1.531787E+007 +9 6.643100E+008 +10 1.363865E+006 +11 4.759726E+002 +12 1.247764E+006 +13 3.115651E+001 +14 6.505459E+004 +15 2.034546E+006 +16 2.022386E+005 +17 2.494118E-001 +18 5.223211E+006 +19 9.369915E+000 +20 1.093098E+004 +21 5.060077E+003 +22 2.862198E+002 +23 2.150021E+002 +24 3.288220E+006 +25 3.715904E+006 +26 6.695863E+001 +27 5.529782E+006 +28 5.303916E+005 +29 3.275975E+002 +30 2.550411E+001 +31 4.479763E+004 +32 4.623432E+003 +33 0.000000E+000 +34 0.000000E+000 +35 0.000000E+000 +36 3.455209E+004 +37 1.314200E+003 +38 0.000000E+000 +39 2.264940E+007 +40 2.708812E+008 +41 8.968387E+000 +42 6.694347E+008 +43 1.535443E+004 +44 1.061188E+005 +45 2.981673E+006 +46 3.861992E+003 +47 6.380502E+004 +48 5.279616E+005 +49 3.027587E-001 +50 2.089332E+003 +51 1.005529E+005 +52 4.262013E-005 +53 3.027346E-001 +54 7.533156E-007 +55 2.699093E-008 +56 8.996975E-009 +57 8.996975E-009 +58 6.753518E+003 +59 1.031868E+004 +60 7.992121E-002 +61 8.743703E+003 +62 7.730508E+002 +63 1.044663E+003 +64 2.716124E+002 +65 1.922435E+001 +66 5.025526E+002 +67 1.000080E+005 +68 2.501073E-001 +69 9.281010E-003 +70 2.784303E-002 +71 9.281010E-003 +72 1.096745E-006 +73 4.872423E-007 +74 3.544767E-007 +75 4.140201E-002 +76 2.613245E-001 +77 3.201189E+000 +78 7.229956E-007 +79 7.123373E-003 +80 5.762332E-002 +81 7.761331E-001 +82 9.283467E-002 +83 1.020108E-002 +84 0.000000E+000 +85 2.895662E+002 +86 4.826104E+002 +87 4.068958E-001 +88 1.539879E+000 +89 1.315119E-001 +90 7.199136E+004 +91 2.803056E+004 +92 8.135805E-004 +93 6.975705E-002 +94 4.042865E+002 +95 1.617146E+003 +96 8.177318E+002 +97 2.158100E-007 +98 7.357158E-008 +99 2.010957E-007 +100 4.941893E-003 +101 2.467533E-003 +102 9.794181E-009 +103 3.921527E-009 +104 1.680655E-009 +105 5.762335E-002 +106 1.989838E+000 +107 4.879696E-002 +108 1.663533E-002 +109 4.546989E-002 +110 1.117415E+003 +111 5.579357E+002 +112 2.214570E-003 +113 8.866996E-004 +114 3.800141E-004 +115 1.638429E+001 +116 8.074367E+000 +117 2.470210E+000 +118 4.915586E-004 +119 1.417907E+001 +120 4.673018E-011 +121 2.666237E-009 +122 8.656650E-010 +123 1.061086E-007 +124 2.942735E-004 +125 1.546224E-004 +126 9.264889E-004 +127 1.764035E-004 +128 2.157296E+000 +129 5.982878E+001 +130 1.647309E+000 +131 2.976920E+000 +132 8.082856E+000 +133 1.443288E+000 +134 1.432021E-005 +135 3.914190E-005 +136 4.200595E-005 +137 9.619059E-001 +138 4.802885E-001 +139 1.906371E-006 +140 7.632987E-007 +141 3.271280E-007 +142 8.237186E-007 +143 3.952978E-007 +144 1.043129E-007 +145 3.580403E-007 +146 1.398419E-006 diff --git a/tests/model_tests/spec_model_1/output/reactionRates/27000.cmp b/tests/model_tests/spec_model_1/output/reactionRates/27000.cmp new file mode 100644 index 000000000..99399e92e --- /dev/null +++ b/tests/model_tests/spec_model_1/output/reactionRates/27000.cmp @@ -0,0 +1,147 @@ + reactionNumber reactionRate +1 7.204699E+008 +2 2.070941E+008 +3 5.534788E+001 +4 1.912298E+003 +5 9.912114E+003 +6 1.962284E+003 +7 5.185260E+006 +8 1.499475E+007 +9 6.310286E+008 +10 1.310764E+006 +11 4.252076E+002 +12 1.199213E+006 +13 3.029615E+001 +14 6.325816E+004 +15 1.991629E+006 +16 2.215678E+005 +17 1.111119E+000 +18 5.682220E+006 +19 2.363295E+001 +20 1.268479E+004 +21 6.369222E+003 +22 3.816020E+002 +23 2.866511E+002 +24 3.388006E+006 +25 3.873670E+006 +26 7.422233E+001 +27 6.034940E+006 +28 5.856478E+005 +29 3.954937E+002 +30 2.994469E+001 +31 5.479423E+004 +32 1.097701E+004 +33 0.000000E+000 +34 0.000000E+000 +35 0.000000E+000 +36 7.525232E+004 +37 1.277433E+003 +38 0.000000E+000 +39 2.217164E+007 +40 2.710187E+008 +41 2.050461E+001 +42 6.362716E+008 +43 1.556181E+004 +44 1.075466E+005 +45 3.323675E+006 +46 8.259176E+003 +47 6.201996E+004 +48 5.846925E+005 +49 2.855989E-001 +50 1.947968E+003 +51 1.016890E+005 +52 4.911132E-005 +53 2.855505E-001 +54 7.644384E-007 +55 2.901115E-008 +56 9.670383E-009 +57 9.670383E-009 +58 1.308701E+004 +59 2.007032E+004 +60 1.595827E-001 +61 1.871710E+004 +62 7.207480E+002 +63 9.739837E+002 +64 2.532358E+002 +65 2.375527E+001 +66 5.083278E+002 +67 1.011572E+005 +68 2.721657E-001 +69 1.069754E-002 +70 3.209262E-002 +71 1.069754E-002 +72 2.685708E-006 +73 1.193158E-006 +74 7.872378E-007 +75 3.905320E-002 +76 2.464991E-001 +77 7.532236E+000 +78 1.241279E-006 +79 1.311110E-002 +80 9.567478E-002 +81 7.221418E-001 +82 8.180867E-002 +83 9.095155E-003 +84 0.000000E+000 +85 2.699775E+002 +86 4.499625E+002 +87 1.073046E+000 +88 4.060893E+000 +89 3.145324E-001 +90 7.281123E+004 +91 2.834978E+004 +92 2.093661E-003 +93 1.444187E-001 +94 8.973135E+002 +95 3.589254E+003 +96 1.642445E+003 +97 5.037550E-007 +98 1.717347E-007 +99 4.694080E-007 +100 9.442678E-003 +101 4.770234E-003 +102 2.013329E-008 +103 8.538536E-009 +104 3.659373E-009 +105 9.567411E-002 +106 4.150924E+000 +107 1.366702E-001 +108 4.659212E-002 +109 1.273518E-001 +110 2.561827E+003 +111 1.294179E+003 +112 5.462221E-003 +113 2.316530E-003 +114 9.927988E-004 +115 7.138508E+001 +116 3.491958E+001 +117 1.076251E+001 +118 2.186396E-003 +119 6.761154E+001 +120 2.513758E-010 +121 1.415888E-008 +122 4.169128E-009 +123 4.351785E-007 +124 1.107118E-003 +125 9.829209E-004 +126 5.821210E-003 +127 1.005184E-003 +128 1.055317E+001 +129 2.684785E+002 +130 7.869986E+000 +131 1.422218E+001 +132 3.861569E+001 +133 6.895282E+000 +134 8.327975E-005 +135 2.276313E-004 +136 2.442872E-004 +137 4.579063E+000 +138 2.313242E+000 +139 9.763289E-006 +140 4.140615E-006 +141 1.774550E-006 +142 9.418146E-006 +143 4.949327E-006 +144 1.220270E-006 +145 4.179358E-006 +146 1.803807E-005 diff --git a/tests/model_tests/spec_model_1/output/reactionRates/28800.cmp b/tests/model_tests/spec_model_1/output/reactionRates/28800.cmp new file mode 100644 index 000000000..c0230e92a --- /dev/null +++ b/tests/model_tests/spec_model_1/output/reactionRates/28800.cmp @@ -0,0 +1,147 @@ + reactionNumber reactionRate +1 6.914761E+008 +2 1.987600E+008 +3 5.340125E+001 +4 1.725880E+003 +5 9.131456E+003 +6 1.807739E+003 +7 4.887888E+006 +8 1.413481E+007 +9 5.965294E+008 +10 1.264812E+006 +11 3.760005E+002 +12 1.156764E+006 +13 2.983009E+001 +14 6.228505E+004 +15 1.877410E+006 +16 2.226411E+005 +17 2.408797E+000 +18 5.667680E+006 +19 3.826308E+001 +20 1.355421E+004 +21 6.767028E+003 +22 4.311363E+002 +23 3.238602E+002 +24 3.184546E+006 +25 3.716590E+006 +26 7.610251E+001 +27 6.032102E+006 +28 5.975179E+005 +29 4.037280E+002 +30 3.264952E+001 +31 5.329027E+004 +32 1.678467E+004 +33 0.000000E+000 +34 0.000000E+000 +35 0.000000E+000 +36 1.151170E+005 +37 1.257330E+003 +38 0.000000E+000 +39 2.090011E+007 +40 2.694792E+008 +41 3.225846E+001 +42 6.016375E+008 +43 1.583478E+004 +44 1.094183E+005 +45 3.182121E+006 +46 1.208365E+004 +47 6.104396E+004 +48 5.971278E+005 +49 2.710501E-001 +50 1.811795E+003 +51 9.404197E+004 +52 5.268305E-005 +53 2.709966E-001 +54 7.913791E-007 +55 2.898788E-008 +56 9.662626E-009 +57 9.662626E-009 +58 1.743508E+004 +59 2.698288E+004 +60 2.252857E-001 +61 2.574787E+004 +62 6.703640E+002 +63 9.058973E+002 +64 2.355333E+002 +65 2.483276E+001 +66 4.701110E+002 +67 9.355209E+004 +68 2.745688E-001 +69 1.041624E-002 +70 3.124872E-002 +71 1.041624E-002 +72 4.244520E-006 +73 1.885680E-006 +74 1.210371E-006 +75 3.706278E-002 +76 2.339359E-001 +77 1.137430E+001 +78 1.639688E-006 +79 1.687662E-002 +80 1.182578E-001 +81 6.702419E-001 +82 7.155243E-002 +83 8.119960E-003 +84 0.000000E+000 +85 2.511070E+002 +86 4.185117E+002 +87 1.677649E+000 +88 6.348987E+000 +89 4.783996E-001 +90 6.733523E+004 +91 2.621765E+004 +92 3.191723E-003 +93 2.107515E-001 +94 1.275986E+003 +95 5.103946E+003 +96 2.260120E+003 +97 7.589537E-007 +98 2.587342E-007 +99 7.072069E-007 +100 1.258586E-002 +101 6.490020E-003 +102 2.927275E-008 +103 1.198234E-008 +104 5.135289E-009 +105 1.182578E-001 +106 5.983418E+000 +107 2.265247E-001 +108 7.722434E-002 +109 2.110799E-001 +110 3.756498E+003 +111 1.937075E+003 +112 8.737030E-003 +113 3.576366E-003 +114 1.532728E-003 +115 1.512130E+002 +116 7.264170E+001 +117 2.279792E+001 +118 4.797367E-003 +119 1.445605E+002 +120 6.037473E-010 +121 3.355191E-008 +122 9.611165E-009 +123 8.647050E-007 +124 2.200823E-003 +125 2.584280E-003 +126 1.511969E-002 +127 2.539907E-003 +128 2.320014E+001 +129 5.904836E+002 +130 1.682950E+001 +131 3.041329E+001 +132 8.257737E+001 +133 1.474515E+001 +134 1.999412E-004 +135 5.465059E-004 +136 5.864941E-004 +137 9.725932E+000 +138 5.015271E+000 +139 2.262100E-005 +140 9.259552E-006 +141 3.968380E-006 +142 3.374237E-005 +143 1.792232E-005 +144 4.433415E-006 +145 1.510387E-005 +146 6.736433E-005 diff --git a/tests/model_tests/spec_model_1/output/reactionRates/30600.cmp b/tests/model_tests/spec_model_1/output/reactionRates/30600.cmp new file mode 100644 index 000000000..00b0304f8 --- /dev/null +++ b/tests/model_tests/spec_model_1/output/reactionRates/30600.cmp @@ -0,0 +1,147 @@ + reactionNumber reactionRate +1 6.601321E+008 +2 1.897504E+008 +3 5.124203E+001 +4 1.543735E+003 +5 8.415656E+003 +6 1.666033E+003 +7 4.421755E+006 +8 1.278685E+007 +9 5.617739E+008 +10 1.227274E+006 +11 3.300695E+002 +12 1.120792E+006 +13 2.977971E+001 +14 6.217983E+004 +15 1.698371E+006 +16 2.125165E+005 +17 3.803105E+000 +18 5.371256E+006 +19 5.041078E+001 +20 1.380405E+004 +21 6.511413E+003 +22 4.426260E+002 +23 3.324910E+002 +24 2.833492E+006 +25 3.407257E+006 +26 7.473717E+001 +27 5.726488E+006 +28 5.844620E+005 +29 3.753668E+002 +30 3.421050E+001 +31 4.687782E+004 +32 2.103379E+004 +33 0.000000E+000 +34 0.000000E+000 +35 0.000000E+000 +36 1.519071E+005 +37 1.254680E+003 +38 0.000000E+000 +39 1.890697E+007 +40 2.660405E+008 +41 4.266172E+001 +42 5.665335E+008 +43 1.615875E+004 +44 1.116289E+005 +45 2.869864E+006 +46 1.482369E+004 +47 6.091531E+004 +48 5.846126E+005 +49 2.598457E-001 +50 1.688203E+003 +51 8.279084E+004 +52 5.461552E-005 +53 2.597804E-001 +54 8.373175E-007 +55 2.805376E-008 +56 9.351254E-009 +57 9.351254E-009 +58 1.966926E+004 +59 3.089520E+004 +60 2.772460E-001 +61 2.909829E+004 +62 6.246358E+002 +63 8.441025E+002 +64 2.194666E+002 +65 2.364376E+001 +66 4.138943E+002 +67 8.236496E+004 +68 2.668107E-001 +69 9.258320E-003 +70 2.777496E-002 +71 9.258320E-003 +72 5.521091E-006 +73 2.452812E-006 +74 1.583425E-006 +75 3.552858E-002 +76 2.242522E-001 +77 1.406375E+001 +78 1.976378E-006 +79 1.868051E-002 +80 1.288830E-001 +81 6.232408E-001 +82 6.246731E-002 +83 7.304122E-003 +84 0.000000E+000 +85 2.339801E+002 +86 3.899668E+002 +87 2.079816E+000 +88 7.870969E+000 +89 5.964822E-001 +90 5.931358E+004 +91 2.309434E+004 +92 3.859513E-003 +93 2.675606E-001 +94 1.487621E+003 +95 5.950482E+003 +96 2.627072E+003 +97 9.395930E-007 +98 3.203158E-007 +99 8.755298E-007 +100 1.440803E-002 +101 7.655148E-003 +102 3.698694E-008 +103 1.384827E-008 +104 5.934974E-009 +105 1.288851E-001 +106 7.295505E+000 +107 2.946403E-001 +108 1.004456E-001 +109 2.745512E-001 +110 4.518112E+003 +111 2.400524E+003 +112 1.159847E-002 +113 4.342582E-003 +114 1.861107E-003 +115 2.363060E+002 +116 1.102077E+002 +117 3.562715E+001 +118 7.879601E-003 +119 2.180447E+002 +120 1.023630E-009 +121 5.613722E-008 +122 1.617308E-008 +123 1.258656E-006 +124 3.373323E-003 +125 4.619565E-003 +126 2.670284E-002 +127 4.511439E-003 +128 3.598297E+001 +129 9.643797E+002 +130 2.533495E+001 +131 4.578383E+001 +132 1.243111E+002 +133 2.219719E+001 +134 3.231465E-004 +135 8.832669E-004 +136 9.478962E-004 +137 1.453536E+001 +138 7.722796E+000 +139 3.731379E-005 +140 1.397065E-005 +141 5.987422E-006 +142 7.373696E-005 +143 3.788601E-005 +144 9.740414E-006 +145 3.289568E-005 +146 1.471588E-004 diff --git a/tests/model_tests/spec_model_1/output/reactionRates/32400.cmp b/tests/model_tests/spec_model_1/output/reactionRates/32400.cmp new file mode 100644 index 000000000..31873906c --- /dev/null +++ b/tests/model_tests/spec_model_1/output/reactionRates/32400.cmp @@ -0,0 +1,147 @@ + reactionNumber reactionRate +1 6.268124E+008 +2 1.801729E+008 +3 4.887583E+001 +4 1.369974E+003 +5 7.776808E+003 +6 1.539561E+003 +7 3.816533E+006 +8 1.103666E+007 +9 5.274187E+008 +10 1.199801E+006 +11 2.883176E+002 +12 1.092249E+006 +13 3.021976E+001 +14 6.309867E+004 +15 1.465909E+006 +16 1.922918E+005 +17 4.912552E+000 +18 4.828982E+006 +19 5.736993E+001 +20 1.335561E+004 +21 5.649086E+003 +22 4.106094E+002 +23 3.084408E+002 +24 2.385404E+006 +25 2.986886E+006 +26 7.019524E+001 +27 5.154863E+006 +28 5.478466E+005 +29 3.171804E+002 +30 3.435733E+001 +31 3.754497E+004 +32 2.298695E+004 +33 0.000000E+000 +34 0.000000E+000 +35 0.000000E+000 +36 1.843040E+005 +37 1.272564E+003 +38 0.000000E+000 +39 1.631915E+007 +40 2.604227E+008 +41 5.029742E+001 +42 5.316081E+008 +43 1.652594E+004 +44 1.141167E+005 +45 2.453665E+006 +46 1.619294E+004 +47 6.178356E+004 +48 5.484178E+005 +49 2.525585E-001 +50 1.580768E+003 +51 6.951392E+004 +52 5.470384E-005 +53 2.524905E-001 +54 9.079459E-007 +55 2.638328E-008 +56 8.794427E-009 +57 8.794427E-009 +58 2.002782E+004 +59 3.213239E+004 +60 3.180436E-001 +61 2.883579E+004 +62 5.848811E+002 +63 7.903799E+002 +64 2.054988E+002 +65 2.046588E+001 +66 3.476483E+002 +67 6.918202E+004 +68 2.500259E-001 +69 7.524573E-003 +70 2.257372E-002 +71 7.524573E-003 +72 6.291666E-006 +73 2.795149E-006 +74 1.874419E-006 +75 3.453090E-002 +76 2.179549E-001 +77 1.517173E+001 +78 2.302831E-006 +79 1.880286E-002 +80 1.307296E-001 +81 5.824699E-001 +82 5.466767E-002 +83 6.656096E-003 +84 0.000000E+000 +85 2.190906E+002 +86 3.651510E+002 +87 2.205487E+000 +88 8.346564E+000 +89 6.570607E-001 +90 4.984336E+004 +91 1.940701E+004 +92 4.001508E-003 +93 3.162046E-001 +94 1.518732E+003 +95 6.074929E+003 +96 2.751043E+003 +97 1.007114E-006 +98 3.433343E-007 +99 9.384472E-007 +100 1.498582E-002 +101 8.290929E-003 +102 4.291956E-008 +103 1.393703E-008 +104 5.973015E-009 +105 1.307210E-001 +106 7.923300E+000 +107 3.202875E-001 +108 1.091889E-001 +109 2.984497E-001 +110 4.765866E+003 +111 2.636723E+003 +112 1.364950E-002 +113 4.432326E-003 +114 1.899569E-003 +115 3.098936E+002 +116 1.385064E+002 +117 4.672172E+001 +118 1.103527E-002 +119 2.637956E+002 +120 1.386650E-009 +121 7.509102E-008 +122 2.247285E-008 +123 1.505010E-006 +124 4.477992E-003 +125 6.436529E-003 +126 3.677037E-002 +127 6.453335E-003 +128 4.467855E+001 +129 1.329361E+003 +130 3.060178E+001 +131 5.530175E+001 +132 1.501539E+002 +133 2.681172E+001 +134 3.966976E-004 +135 1.084307E-003 +136 1.163646E-003 +137 1.731501E+001 +138 9.579559E+000 +139 4.959040E-005 +140 1.610322E-005 +141 6.901380E-006 +142 1.196890E-004 +143 5.691365E-005 +144 1.578263E-005 +145 5.263185E-005 +146 2.295406E-004 diff --git a/tests/model_tests/spec_model_1/output/reactionRates/34200.cmp b/tests/model_tests/spec_model_1/output/reactionRates/34200.cmp new file mode 100644 index 000000000..d5f9957fd --- /dev/null +++ b/tests/model_tests/spec_model_1/output/reactionRates/34200.cmp @@ -0,0 +1,147 @@ + reactionNumber reactionRate +1 5.914444E+008 +2 1.700066E+008 +3 4.627622E+001 +4 1.205545E+003 +5 7.218706E+003 +6 1.429075E+003 +7 3.113851E+006 +8 9.004644E+006 +9 4.935576E+008 +10 1.184345E+006 +11 2.507615E+002 +12 1.072667E+006 +13 3.130553E+001 +14 6.536575E+004 +15 1.196012E+006 +16 1.633187E+005 +17 5.422633E+000 +18 4.080574E+006 +19 5.734272E+001 +20 1.214561E+004 +21 4.333452E+003 +22 3.372602E+002 +23 2.533425E+002 +24 1.882975E+006 +25 2.487070E+006 +26 6.256677E+001 +27 4.356926E+006 +28 4.884371E+005 +29 2.397265E+002 +30 3.278958E+001 +31 2.702917E+004 +32 2.231291E+004 +33 0.000000E+000 +34 0.000000E+000 +35 0.000000E+000 +36 2.113596E+005 +37 1.317464E+003 +38 0.000000E+000 +39 1.331443E+007 +40 2.522621E+008 +41 5.401905E+001 +42 4.969604E+008 +43 1.694262E+004 +44 1.169107E+005 +45 1.975601E+006 +46 1.609572E+004 +47 6.396347E+004 +48 4.897041E+005 +49 2.500577E-001 +50 1.491371E+003 +51 5.532092E+004 +52 5.263457E-005 +53 2.499914E-001 +54 1.015064E-006 +55 2.403696E-008 +56 8.012320E-009 +57 8.012320E-009 +58 1.887265E+004 +59 3.115800E+004 +60 3.510543E-001 +61 2.558343E+004 +62 5.518074E+002 +63 7.456856E+002 +64 1.938783E+002 +65 1.582247E+001 +66 2.765736E+002 +67 5.503814E+004 +68 2.245997E-001 +69 5.508370E-003 +70 1.652511E-002 +71 5.508370E-003 +72 6.395023E-006 +73 2.841066E-006 +74 2.054624E-006 +75 3.419035E-002 +76 2.158054E-001 +77 1.455981E+001 +78 2.672016E-006 +79 1.753639E-002 +80 1.262051E-001 +81 5.486230E-001 +82 4.810032E-002 +83 6.177657E-003 +84 0.000000E+000 +85 2.067028E+002 +86 3.445046E+002 +87 2.049504E+000 +88 7.756254E+000 +89 6.584743E-001 +90 3.960824E+004 +91 1.542187E+004 +92 3.652461E-003 +93 3.593167E-001 +94 1.387170E+003 +95 5.548681E+003 +96 2.663021E+003 +97 9.459267E-007 +98 3.224750E-007 +99 8.814317E-007 +100 1.448392E-002 +101 8.452702E-003 +102 4.683973E-008 +103 1.239500E-008 +104 5.312145E-009 +105 1.262054E-001 +106 7.779484E+000 +107 2.960771E-001 +108 1.009354E-001 +109 2.758900E-001 +110 4.533498E+003 +111 2.645714E+003 +112 1.466094E-002 +113 3.879663E-003 +114 1.662713E-003 +115 3.603605E+002 +116 1.520084E+002 +117 5.433047E+001 +118 1.397529E-002 +119 2.685248E+002 +120 1.567711E-009 +121 8.390670E-008 +122 2.708045E-008 +123 1.539667E-006 +124 5.412315E-003 +125 7.350617E-003 +126 4.152004E-002 +127 7.858380E-003 +128 4.649251E+001 +129 1.634328E+003 +130 3.128857E+001 +131 5.654287E+001 +132 1.535237E+002 +133 2.741345E+001 +134 3.846465E-004 +135 1.051367E-003 +136 1.128296E-003 +137 1.727634E+001 +138 1.008234E+001 +139 5.587019E-005 +140 1.478470E-005 +141 6.336300E-006 +142 1.564367E-004 +143 6.539885E-005 +144 2.047918E-005 +145 6.711531E-005 +146 2.761873E-004 diff --git a/tests/model_tests/spec_model_1/output/reactionRates/36000.cmp b/tests/model_tests/spec_model_1/output/reactionRates/36000.cmp new file mode 100644 index 000000000..bfd57810e --- /dev/null +++ b/tests/model_tests/spec_model_1/output/reactionRates/36000.cmp @@ -0,0 +1,147 @@ + reactionNumber reactionRate +1 5.532581E+008 +2 1.590302E+008 +3 4.336724E+001 +4 1.047926E+003 +5 6.734664E+003 +6 1.333250E+003 +7 2.365545E+006 +8 6.840692E+006 +9 4.594742E+008 +10 1.183344E+006 +11 2.165347E+002 +12 1.064510E+006 +13 3.334381E+001 +14 6.962166E+004 +15 9.085926E+005 +16 1.279357E+005 +17 5.172184E+000 +18 3.186392E+006 +19 5.024303E+001 +20 1.024338E+004 +21 2.852555E+003 +22 2.390196E+002 +23 1.795463E+002 +24 1.368181E+006 +25 1.939530E+006 +26 5.224695E+001 +27 3.408378E+006 +28 4.100961E+005 +29 1.576012E+002 +30 2.947960E+001 +31 1.705901E+004 +32 1.919126E+004 +33 0.000000E+000 +34 0.000000E+000 +35 0.000000E+000 +36 2.324895E+005 +37 1.401969E+003 +38 0.000000E+000 +39 1.011495E+007 +40 2.410859E+008 +41 5.326879E+001 +42 4.618926E+008 +43 1.744473E+004 +44 1.202323E+005 +45 1.478198E+006 +46 1.462839E+004 +47 6.806624E+004 +48 4.117288E+005 +49 2.538818E-001 +50 1.420416E+003 +51 4.112398E+004 +52 4.841177E-005 +53 2.538073E-001 +54 1.184379E-006 +55 2.113844E-008 +56 7.046145E-009 +57 7.046145E-009 +58 1.659576E+004 +59 2.845190E+004 +60 3.807549E-001 +61 2.031629E+004 +62 5.255535E+002 +63 7.102074E+002 +64 1.846539E+002 +65 1.065838E+001 +66 2.056492E+002 +67 4.092419E+004 +68 1.919303E-001 +69 3.547756E-003 +70 1.064327E-002 +71 3.547756E-003 +72 5.780014E-006 +73 2.567841E-006 +74 2.099938E-006 +75 3.471189E-002 +76 2.190973E-001 +77 1.241188E+001 +78 3.152874E-006 +79 1.515034E-002 +80 1.168096E-001 +81 5.218174E-001 +82 4.257098E-002 +83 5.868118E-003 +84 0.000000E+000 +85 1.968696E+002 +86 3.281160E+002 +87 1.673762E+000 +88 6.334277E+000 +89 6.080949E-001 +90 2.945562E+004 +91 1.146884E+004 +92 2.948587E-003 +93 4.011203E-001 +94 1.133813E+003 +95 4.535251E+003 +96 2.404016E+003 +97 7.731549E-007 +98 2.635756E-007 +99 7.204398E-007 +100 1.306755E-002 +101 8.184894E-003 +102 4.856693E-008 +103 9.686552E-009 +104 4.151379E-009 +105 1.168086E-001 +106 6.878472E+000 +107 2.320061E-001 +108 7.909299E-002 +109 2.161875E-001 +110 3.921273E+003 +111 2.456099E+003 +112 1.457382E-002 +113 2.906712E-003 +114 1.245734E-003 +115 3.818003E+002 +116 1.491130E+002 +117 5.756288E+001 +118 1.657176E-002 +119 2.331345E+002 +120 1.496073E-009 +121 7.923097E-008 +122 2.891624E-008 +123 1.358879E-006 +124 6.109016E-003 +125 6.997151E-003 +126 3.910393E-002 +127 8.369186E-003 +128 4.101658E+001 +129 1.843954E+003 +130 2.713025E+001 +131 4.902820E+001 +132 1.331201E+002 +133 2.377014E+001 +134 2.946862E-004 +135 8.054755E-004 +136 8.644128E-004 +137 1.460995E+001 +138 9.150982E+000 +139 5.429943E-005 +140 1.082988E-005 +141 4.641379E-006 +142 1.716400E-004 +143 5.913759E-005 +144 2.221034E-005 +145 7.109314E-005 +146 2.648859E-004 diff --git a/tests/model_tests/spec_model_1/output/reactionRates/37800.cmp b/tests/model_tests/spec_model_1/output/reactionRates/37800.cmp new file mode 100644 index 000000000..434d25aa6 --- /dev/null +++ b/tests/model_tests/spec_model_1/output/reactionRates/37800.cmp @@ -0,0 +1,147 @@ + reactionNumber reactionRate +1 5.105383E+008 +2 1.467507E+008 +3 4.000587E+001 +4 8.910341E+002 +5 6.305112E+003 +6 1.248212E+003 +7 1.632216E+006 +8 4.720047E+006 +9 4.232390E+008 +10 1.200187E+006 +11 1.838458E+002 +12 1.071196E+006 +13 3.694433E+001 +14 7.713952E+004 +15 6.269248E+005 +16 9.026490E+004 +17 4.234773E+000 +18 2.246608E+006 +19 3.818066E+001 +20 7.849545E+003 +21 1.543261E+003 +22 1.404471E+002 +23 1.055008E+002 +24 8.897593E+005 +25 1.388797E+006 +26 4.027012E+001 +27 2.407412E+006 +28 3.189346E+005 +29 8.668263E+001 +30 2.467842E+001 +31 9.107035E+003 +32 1.442048E+004 +33 0.000000E+000 +34 0.000000E+000 +35 0.000000E+000 +36 2.475220E+005 +37 1.551298E+003 +38 0.000000E+000 +39 6.975728E+006 +40 2.262416E+008 +41 4.823133E+001 +42 4.244970E+008 +43 1.811561E+004 +44 1.246027E+005 +45 1.005338E+006 +46 1.206195E+004 +47 7.531626E+004 +48 3.208619E+005 +49 2.668859E-001 +50 1.366831E+003 +51 2.793823E+004 +52 4.233598E-005 +53 2.668002E-001 +54 1.475590E-006 +55 1.790081E-008 +56 5.966938E-009 +57 5.966938E-009 +58 1.356659E+004 +59 2.444137E+004 +60 4.136801E-001 +61 1.426505E+004 +62 5.057424E+002 +63 6.834357E+002 +64 1.776933E+002 +65 6.024627E+000 +66 1.397299E+002 +67 2.780624E+004 +68 1.545606E-001 +69 1.941931E-003 +70 5.825793E-003 +71 1.941931E-003 +72 4.576534E-006 +73 2.033180E-006 +74 1.993259E-006 +75 3.647620E-002 +76 2.302334E-001 +77 9.274143E+000 +78 3.858629E-006 +79 1.198280E-002 +80 1.031537E-001 +81 5.016444E-001 +82 3.774783E-002 +83 5.729153E-003 +84 0.000000E+000 +85 1.894497E+002 +86 3.157494E+002 +87 1.192608E+000 +88 4.513372E+000 +89 5.194275E-001 +90 2.007526E+004 +91 7.816503E+003 +92 2.091059E-003 +93 4.484475E-001 +94 8.191962E+002 +95 3.276785E+003 +96 2.016328E+003 +97 5.390767E-007 +98 1.837762E-007 +99 5.023215E-007 +100 1.095221E-002 +101 7.553251E-003 +102 4.824377E-008 +103 6.540252E-009 +104 2.802965E-009 +105 1.031314E-001 +106 5.393641E+000 +107 1.519909E-001 +108 5.181507E-002 +109 1.416279E-001 +110 3.087939E+003 +111 2.129614E+003 +112 1.360217E-002 +113 1.844002E-003 +114 7.902867E-004 +115 3.733853E+002 +116 1.315864E+002 +117 5.629418E+001 +118 1.891427E-002 +119 1.719638E+002 +120 1.200507E-009 +121 6.299689E-008 +122 2.756230E-008 +123 1.025220E-006 +124 6.530429E-003 +125 5.562444E-003 +126 3.078562E-002 +127 7.898782E-003 +128 3.049391E+001 +129 1.942396E+003 +130 1.994317E+001 +131 3.604013E+001 +132 9.785523E+001 +133 1.747319E+001 +134 1.740302E-004 +135 4.756826E-004 +136 5.104886E-004 +137 1.037140E+001 +138 7.152689E+000 +139 4.568533E-005 +140 6.193412E-006 +141 2.654320E-006 +142 1.625990E-004 +143 4.257738E-005 +144 2.068037E-005 +145 6.410007E-005 +146 2.057370E-004 diff --git a/tests/model_tests/spec_model_1/output/reactionRates/39600.cmp b/tests/model_tests/spec_model_1/output/reactionRates/39600.cmp new file mode 100644 index 000000000..c124b52cb --- /dev/null +++ b/tests/model_tests/spec_model_1/output/reactionRates/39600.cmp @@ -0,0 +1,147 @@ + reactionNumber reactionRate +1 4.593551E+008 +2 1.320384E+008 +3 3.588432E+001 +4 7.237788E+002 +5 5.880651E+003 +6 1.164182E+003 +7 9.733883E+005 +8 2.814848E+006 +9 3.809234E+008 +10 1.240286E+006 +11 1.498429E+002 +12 1.098098E+006 +13 4.348515E+001 +14 9.079671E+004 +15 3.738729E+005 +16 5.495791E+004 +17 2.883031E+000 +18 1.371162E+006 +19 2.442960E+001 +20 5.307690E+003 +21 6.392790E+002 +22 6.461206E+001 +23 4.853517E+001 +24 4.905852E+005 +25 8.792281E+005 +26 2.792636E+001 +27 1.474151E+006 +28 2.242407E+005 +29 3.731317E+001 +30 1.900634E+001 +31 3.871908E+003 +32 9.135088E+003 +33 0.000000E+000 +34 0.000000E+000 +35 0.000000E+000 +36 2.567416E+005 +37 1.822355E+003 +38 0.000000E+000 +39 4.167796E+006 +40 2.067202E+008 +41 3.965906E+001 +42 3.808445E+008 +43 1.914190E+004 +44 1.311845E+005 +45 5.991300E+005 +46 8.804974E+003 +47 8.847616E+004 +48 2.261505E+005 +49 2.953342E-001 +50 1.327953E+003 +51 1.662863E+004 +52 3.519672E-005 +53 2.952362E-001 +54 2.053708E-006 +55 1.460882E-008 +56 4.869607E-009 +57 4.869607E-009 +58 1.011027E+004 +59 1.946653E+004 +60 4.616473E-001 +61 8.562262E+003 +62 4.913160E+002 +63 6.639406E+002 +64 1.726245E+002 +65 2.694659E+000 +66 8.318668E+001 +67 1.655415E+004 +68 1.157319E-001 +69 8.526236E-004 +70 2.557871E-003 +71 8.526236E-004 +72 3.060588E-006 +73 1.359703E-006 +74 1.726815E-006 +75 4.038029E-002 +76 2.548756E-001 +77 5.864532E+000 +78 5.025188E-006 +79 8.393581E-003 +80 8.508941E-002 +81 4.870237E-001 +82 3.310749E-002 +83 5.769602E-003 +84 0.000000E+000 +85 1.840505E+002 +86 3.067508E+002 +87 7.217085E-001 +88 2.731273E+000 +89 4.071952E-001 +90 1.181315E+004 +91 4.599569E+003 +92 1.266397E-003 +93 5.143548E-001 +94 5.053693E+002 +95 2.021477E+003 +96 1.539854E+003 +97 3.106755E-007 +98 1.059121E-007 +99 2.894930E-007 +100 8.401348E-003 +101 6.652765E-003 +102 4.654554E-008 +103 3.699992E-009 +104 1.585711E-009 +105 8.511952E-002 +106 3.613909E+000 +107 8.162737E-002 +108 2.782751E-002 +109 7.606187E-002 +110 2.207384E+003 +111 1.747958E+003 +112 1.222945E-002 +113 9.721417E-004 +114 4.166322E-004 +115 3.378208E+002 +116 1.034444E+002 +117 5.093222E+001 +118 2.143790E-002 +119 1.048334E+002 +120 7.896876E-010 +121 4.112856E-008 +122 2.331060E-008 +123 6.391704E-007 +124 6.666391E-003 +125 3.620369E-003 +126 1.987320E-002 +127 6.605320E-003 +128 1.854376E+001 +129 1.934069E+003 +130 1.235200E+001 +131 2.232181E+001 +132 6.060759E+001 +133 1.082219E+001 +134 7.521891E-005 +135 2.055984E-004 +136 2.206421E-004 +137 5.966649E+000 +138 4.724803E+000 +139 3.305670E-005 +140 2.627739E-006 +141 1.126174E-006 +142 1.361826E-004 +143 2.427771E-005 +144 1.678116E-005 +145 4.970568E-005 +146 1.288731E-004 diff --git a/tests/model_tests/spec_model_1/output/reactionRates/41400.cmp b/tests/model_tests/spec_model_1/output/reactionRates/41400.cmp new file mode 100644 index 000000000..eedaf8a6b --- /dev/null +++ b/tests/model_tests/spec_model_1/output/reactionRates/41400.cmp @@ -0,0 +1,147 @@ + reactionNumber reactionRate +1 3.927162E+008 +2 1.128836E+008 +3 3.046934E+001 +4 5.315132E+002 +5 5.360792E+003 +6 1.061267E+003 +7 4.540654E+005 +8 1.313068E+006 +9 3.249703E+008 +10 1.313480E+006 +11 1.105585E+002 +12 1.151456E+006 +13 5.660338E+001 +14 1.181875E+005 +15 1.744040E+005 +16 2.664537E+004 +17 1.517295E+000 +18 6.691021E+005 +19 1.230508E+001 +20 3.015456E+003 +21 1.785143E+002 +22 2.114229E+001 +23 1.588163E+001 +24 2.057102E+005 +25 4.576551E+005 +26 1.664201E+001 +27 7.243348E+005 +28 1.367751E+005 +29 1.115070E+001 +30 1.327229E+001 +31 1.186397E+003 +32 4.531830E+003 +33 0.000000E+000 +34 0.000000E+000 +35 0.000000E+000 +36 2.609117E+005 +37 2.363584E+003 +38 0.000000E+000 +39 1.954985E+006 +40 1.807127E+008 +41 2.849569E+001 +42 3.231187E+008 +43 2.091940E+004 +44 1.423592E+005 +45 2.940675E+005 +46 5.360096E+003 +47 1.147531E+005 +48 1.384439E+005 +49 3.551593E-001 +50 1.299248E+003 +51 7.996525E+003 +52 2.812677E-005 +53 3.542795E-001 +54 3.502396E-006 +55 1.166071E-008 +56 3.886903E-009 +57 3.886903E-009 +58 6.514964E+003 +59 1.377228E+004 +60 5.514376E-001 +61 4.089874E+003 +62 4.806583E+002 +63 6.495382E+002 +64 1.688799E+002 +65 8.636769E-001 +66 4.003686E+001 +67 7.967335E+003 +68 7.916064E-002 +69 2.729587E-004 +70 8.188761E-004 +71 2.729587E-004 +72 1.604429E-006 +73 7.127871E-007 +74 1.305305E-006 +75 4.856810E-002 +76 3.065561E-001 +77 2.916113E+000 +78 7.267293E-006 +79 4.854035E-003 +80 6.204950E-002 +81 4.763048E-001 +82 2.782269E-002 +83 6.018855E-003 +84 0.000000E+000 +85 1.800660E+002 +86 3.001100E+002 +87 3.474026E-001 +88 1.314729E+000 +89 2.826341E-001 +90 5.494332E+003 +91 2.139274E+003 +92 6.117110E-004 +93 6.293015E-001 +94 2.472522E+002 +95 9.890087E+002 +96 1.014236E+003 +97 1.416239E-007 +98 4.828089E-008 +99 1.319677E-007 +100 5.750920E-003 +101 5.653090E-003 +102 4.528106E-008 +103 1.684700E-009 +104 7.220142E-010 +105 6.215673E-002 +106 1.917289E+000 +107 3.517456E-002 +108 1.199133E-002 +109 3.277629E-002 +110 1.428333E+003 +111 1.404035E+003 +112 1.124627E-002 +113 4.184220E-004 +114 1.793237E-004 +115 2.789593E+002 +116 6.969200E+001 +117 4.205784E+001 +118 2.530795E-002 +119 4.948911E+001 +120 3.998627E-010 +121 2.071119E-008 +122 1.692645E-008 +123 3.060549E-007 +124 6.538980E-003 +125 1.819212E-003 +126 9.925792E-003 +127 4.757095E-003 +128 8.623457E+000 +129 1.842435E+003 +130 6.115286E+000 +131 1.105119E+001 +132 3.000590E+001 +133 5.357902E+000 +134 2.138956E-005 +135 5.846480E-005 +136 6.274271E-005 +137 2.547792E+000 +138 2.504451E+000 +139 2.006057E-005 +140 7.463614E-007 +141 3.198692E-007 +142 1.023091E-004 +143 1.058268E-005 +144 1.172062E-005 +145 3.241248E-005 +146 6.242240E-005 diff --git a/tests/model_tests/spec_model_1/output/reactionRates/43200.cmp b/tests/model_tests/spec_model_1/output/reactionRates/43200.cmp new file mode 100644 index 000000000..aea2b8cad --- /dev/null +++ b/tests/model_tests/spec_model_1/output/reactionRates/43200.cmp @@ -0,0 +1,147 @@ + reactionNumber reactionRate +1 2.955353E+008 +2 8.494958E+007 +3 2.263773E+001 +4 2.992236E+002 +5 4.480957E+003 +6 8.870874E+002 +7 1.298141E+005 +8 3.753967E+005 +9 2.400126E+008 +10 1.440369E+006 +11 6.187204E+001 +12 1.243571E+006 +13 9.076652E+001 +14 1.895199E+005 +15 4.986085E+004 +16 8.617663E+003 +17 5.202545E-001 +18 2.191566E+005 +19 4.135041E+000 +20 1.320971E+003 +21 2.594793E+001 +22 4.162501E+000 +23 3.126780E+000 +24 5.041218E+004 +25 1.665245E+005 +26 7.870575E+000 +27 2.404316E+005 +28 6.740922E+004 +29 1.810161E+000 +30 8.501962E+000 +31 2.218038E+002 +32 1.486533E+003 +33 0.000000E+000 +34 0.000000E+000 +35 0.000000E+000 +36 2.612558E+005 +37 3.759983E+003 +38 0.000000E+000 +39 5.551139E+005 +40 1.443627E+008 +41 1.575065E+001 +42 2.354574E+008 +43 2.480471E+004 +44 1.661212E+005 +45 1.066008E+005 +46 2.304266E+003 +47 1.825489E+005 +48 6.860577E+004 +49 5.090814E-001 +50 1.273572E+003 +51 2.600889E+003 +52 2.387214E-005 +53 5.069528E-001 +54 9.671810E-006 +55 1.027678E-008 +56 3.425592E-009 +57 3.425592E-009 +58 3.101579E+003 +59 7.581673E+003 +60 7.819835E-001 +61 1.316035E+003 +62 4.712216E+002 +63 6.367860E+002 +64 1.655644E+002 +65 1.667606E-001 +66 1.303323E+001 +67 2.593613E+003 +68 4.973044E-002 +69 5.472672E-005 +70 1.641802E-004 +71 5.472672E-005 +72 5.568248E-007 +73 2.473762E-007 +74 7.568365E-007 +75 6.950648E-002 +76 4.387166E-001 +77 9.625397E-001 +78 1.306185E-005 +79 1.979664E-003 +80 3.430874E-002 +81 4.668625E-001 +82 2.040425E-002 +83 6.553835E-003 +84 0.000000E+000 +85 1.765233E+002 +86 2.942055E+002 +87 1.127031E-001 +88 4.265198E-001 +89 1.531861E-001 +90 1.867224E+003 +91 7.270225E+002 +92 1.990875E-004 +93 9.074773E-001 +94 8.090467E+001 +95 3.236187E+002 +96 4.920498E+002 +97 4.882187E-008 +98 1.664382E-008 +99 4.549311E-008 +100 3.342452E-003 +101 4.878359E-003 +102 5.078849E-008 +103 6.030602E-010 +104 2.584544E-010 +105 3.437477E-002 +106 6.774709E-001 +107 1.207451E-002 +108 4.116311E-003 +109 1.125125E-002 +110 8.266474E+002 +111 1.206505E+003 +112 1.256089E-002 +113 1.491475E-004 +114 6.392035E-005 +115 1.976717E+002 +116 3.543076E+001 +117 2.980237E+001 +118 3.484022E-002 +119 1.545931E+001 +120 1.328976E-010 +121 6.861199E-009 +122 9.368124E-009 +123 9.540558E-008 +124 6.222372E-003 +125 6.024929E-004 +126 3.275722E-003 +127 2.622863E-003 +128 2.619606E+000 +129 1.708512E+003 +130 1.803766E+000 +131 3.259661E+000 +132 8.850546E+000 +133 1.580368E+000 +134 3.201077E-006 +135 8.749611E-006 +136 9.389826E-006 +137 6.428480E-001 +138 9.382465E-001 +139 9.768063E-006 +140 1.159855E-007 +141 4.970809E-008 +142 6.637514E-005 +143 3.099629E-006 +144 6.333662E-006 +145 1.554394E-005 +146 2.019076E-005 diff --git a/tests/model_tests/spec_model_1/output/reactionRates/45000.cmp b/tests/model_tests/spec_model_1/output/reactionRates/45000.cmp new file mode 100644 index 000000000..9b261b459 --- /dev/null +++ b/tests/model_tests/spec_model_1/output/reactionRates/45000.cmp @@ -0,0 +1,147 @@ + reactionNumber reactionRate +1 1.392400E+008 +2 4.002358E+007 +3 1.041974E+001 +4 6.013666E+001 +5 2.484397E+003 +6 4.918318E+002 +7 7.609168E+003 +8 2.200422E+004 +9 1.000213E+008 +10 1.655918E+006 +11 1.125828E+001 +12 1.333617E+006 +13 2.685301E+002 +14 5.606890E+005 +15 2.922638E+003 +16 1.117582E+003 +17 7.038076E-002 +18 2.909103E+004 +19 5.625889E-001 +20 4.137510E+002 +21 1.104331E+000 +22 4.278650E-001 +23 3.214029E-001 +24 2.854596E+003 +25 2.601321E+004 +26 2.626629E+000 +27 3.288187E+004 +28 2.543261E+004 +29 9.106431E-002 +30 6.852786E+000 +31 1.835555E+001 +32 1.958773E+002 +33 0.000000E+000 +34 0.000000E+000 +35 0.000000E+000 +36 2.593314E+005 +37 1.078634E+004 +38 0.000000E+000 +39 3.251470E+004 +40 8.749320E+007 +41 3.748952E+000 +42 9.160452E+007 +43 3.810267E+004 +44 2.422565E+005 +45 2.016773E+004 +46 3.461632E+002 +47 5.236819E+005 +48 2.599987E+004 +49 1.276201E+000 +50 1.240660E+003 +51 3.442724E+002 +52 4.429797E-005 +53 1.251620E+000 +54 1.407330E-004 +55 2.322408E-008 +56 7.741359E-009 +57 7.741359E-009 +58 5.363079E+002 +59 1.754425E+003 +60 1.952745E+000 +61 1.735258E+002 +62 4.590442E+002 +63 6.203300E+002 +64 1.612858E+002 +65 1.667213E-002 +66 1.733653E+000 +67 3.449970E+002 +68 3.898662E-002 +69 6.663250E-006 +70 1.998975E-005 +71 6.663250E-006 +72 7.885250E-008 +73 3.503117E-008 +74 1.925499E-007 +75 1.714576E-001 +76 1.082220E+000 +77 1.280121E-001 +78 4.609782E-005 +79 3.689060E-004 +80 7.545376E-003 +81 4.547916E-001 +82 8.479081E-003 +83 7.513294E-003 +84 0.000000E+000 +85 1.719656E+002 +86 2.866093E+002 +87 1.491029E-002 +88 5.642734E-002 +89 3.640944E-002 +90 2.483535E+002 +91 9.669894E+001 +92 2.637669E-005 +93 2.278970E+000 +94 1.072816E+001 +95 4.291262E+001 +96 8.776740E+001 +97 1.379016E-008 +98 4.701193E-009 +99 1.284993E-008 +100 1.256125E-003 +101 5.057641E-003 +102 1.124905E-007 +103 2.074459E-010 +104 8.890539E-011 +105 7.715841E-003 +106 9.636251E-002 +107 3.580825E-003 +108 1.220736E-003 +109 3.336678E-003 +110 3.261718E+002 +111 1.313293E+003 +112 2.920987E-002 +113 5.386647E-005 +114 2.308563E-005 +115 8.565323E+001 +116 7.416116E+000 +117 1.291368E+001 +118 8.433425E-002 +119 1.975885E+000 +120 1.772072E-011 +121 9.138268E-010 +122 2.241614E-009 +123 1.199847E-008 +124 5.895051E-003 +125 8.026569E-005 +126 4.358671E-004 +127 6.269992E-004 +128 3.244875E-001 +129 1.594262E+003 +130 2.398647E-001 +131 4.334695E-001 +132 1.176945E+000 +133 2.101573E-001 +134 1.564266E-007 +135 4.275660E-007 +136 4.588513E-007 +137 4.179606E-002 +138 1.682870E-001 +139 3.742989E-006 +140 6.902516E-009 +141 2.958221E-009 +142 2.641835E-005 +143 3.828657E-007 +144 1.502193E-006 +145 2.760326E-006 +146 2.665503E-006 diff --git a/tests/model_tests/spec_model_1/output/reactionRates/46800.cmp b/tests/model_tests/spec_model_1/output/reactionRates/46800.cmp new file mode 100644 index 000000000..70e9fb1e6 --- /dev/null +++ b/tests/model_tests/spec_model_1/output/reactionRates/46800.cmp @@ -0,0 +1,147 @@ + reactionNumber reactionRate +1 4.336820E+004 +2 1.246589E+004 +3 3.182072E-003 +4 6.146127E-006 +5 8.448640E-001 +6 1.672563E-001 +7 3.055037E-005 +8 8.834567E-005 +9 3.218052E+004 +10 1.772732E+006 +11 1.212222E-006 +12 1.221074E+004 +13 8.181023E+003 +14 1.708192E+007 +15 1.173423E-005 +16 9.115629E+000 +17 5.865500E-004 +18 2.420024E+002 +19 4.794999E-003 +20 2.238905E+002 +21 5.070046E-003 +22 1.303193E-001 +23 9.789299E-002 +24 7.792221E-003 +25 2.362730E+002 +26 6.097003E-001 +27 5.954736E+000 +28 1.532500E+004 +29 4.437057E-004 +30 1.055296E+002 +31 1.407469E-001 +32 1.612556E+000 +33 0.000000E+000 +34 0.000000E+000 +35 0.000000E+000 +36 2.566399E+005 +37 3.197479E+005 +38 0.000000E+000 +39 4.374012E-015 +40 5.568207E+004 +41 6.448954E-011 +42 1.489786E-002 +43 9.477388E+001 +44 1.531771E+002 +45 4.696552E-007 +46 1.615975E-010 +47 1.552391E+007 +48 1.522847E+004 +49 3.555697E+001 +50 1.214641E+003 +51 2.859654E+000 +52 2.102921E-002 +53 3.532773E-001 +54 3.377848E+000 +55 6.000635E-005 +56 2.000212E-005 +57 2.000212E-005 +58 1.832103E-011 +59 1.447075E-009 +60 5.462603E+001 +61 1.447184E+000 +62 4.494174E+002 +63 6.073207E+002 +64 1.579034E+002 +65 6.552264E-003 +66 4.051041E-004 +67 8.061572E-002 +68 7.746777E-001 +69 1.425299E-005 +70 4.275898E-005 +71 1.425299E-005 +72 4.943451E-009 +73 2.196188E-009 +74 2.698336E-017 +75 5.102839E-001 +76 3.220851E+000 +77 1.065048E-003 +78 2.848778E-003 +79 6.796720E-006 +80 2.993412E-015 +81 4.452594E-001 +82 2.723989E-006 +83 8.031389E-003 +84 0.000000E+000 +85 1.683616E+002 +86 2.806027E+002 +87 1.240064E-004 +88 4.692968E-004 +89 6.768775E-013 +90 6.156526E-001 +91 2.397105E-001 +92 2.194113E-007 +93 6.357622E+001 +94 8.922502E-002 +95 3.569001E-001 +96 9.255441E-012 +97 1.216131E-008 +98 4.145903E-009 +99 1.133213E-008 +100 6.586397E-007 +101 8.824027E-003 +102 5.015707E-006 +103 9.957162E-010 +104 4.267355E-010 +105 -1.309181E-008 +106 8.533145E-004 +107 2.253374E-003 +108 7.681959E-004 +109 2.099735E-003 +110 1.220396E-001 +111 1.635007E+003 +112 9.293622E-001 +113 1.844966E-004 +114 7.906998E-005 +115 3.884627E-006 +116 9.887551E-012 +117 5.856735E-007 +118 2.333477E+000 +119 1.629922E-002 +120 1.476535E-013 +121 7.614383E-012 +122 4.175127E-020 +123 1.012578E-010 +124 5.980376E-003 +125 6.686401E-007 +126 3.630905E-006 +127 1.167524E-014 +128 2.662156E-003 +129 1.572294E+003 +130 2.735480E-001 +131 4.943400E-001 +132 1.342219E+000 +133 2.396689E-001 +134 1.123586E-007 +135 3.071134E-007 +136 3.295852E-007 +137 1.784987E-005 +138 2.391409E-001 +139 1.359312E-004 +140 2.698502E-008 +141 1.156501E-008 +142 6.055035E-013 +143 3.140840E-009 +144 2.792129E-017 +145 2.910278E-019 +146 2.216415E-008 diff --git a/tests/model_tests/spec_model_1/output/reactionRates/48600.cmp b/tests/model_tests/spec_model_1/output/reactionRates/48600.cmp new file mode 100644 index 000000000..469189912 --- /dev/null +++ b/tests/model_tests/spec_model_1/output/reactionRates/48600.cmp @@ -0,0 +1,147 @@ + reactionNumber reactionRate +1 1.013494E-013 +2 2.913218E-014 +3 7.396553E-021 +4 4.801536E-024 +5 1.859689E-018 +6 3.681595E-019 +7 1.578148E-090 +8 4.563694E-090 +9 1.070019E+004 +10 1.660797E+006 +11 1.354690E-007 +12 1.217000E+004 +13 2.297370E+004 +14 4.796894E+007 +15 6.061578E-091 +16 1.702313E+001 +17 1.101256E-003 +18 4.543628E+002 +19 9.223576E-003 +20 3.073130E+002 +21 1.313623E-002 +22 2.481761E-001 +23 1.864245E-001 +24 4.890725E-003 +25 4.178314E+002 +26 3.412864E+000 +27 2.747053E+000 +28 1.991957E+004 +29 1.084833E-003 +30 4.341795E+002 +31 2.642532E-001 +32 2.994487E+000 +33 0.000000E+000 +34 0.000000E+000 +35 0.000000E+000 +36 2.538334E+005 +37 9.566995E+005 +38 0.000000E+000 +39 0.000000E+000 +40 0.000000E+000 +41 0.000000E+000 +42 0.000000E+000 +43 0.000000E+000 +44 0.000000E+000 +45 0.000000E+000 +46 0.000000E+000 +47 4.644821E+007 +48 1.983086E+004 +49 1.058499E+002 +50 1.206324E+003 +51 5.360961E+000 +52 2.189703E-001 +53 8.911099E-001 +54 7.598821E+001 +55 2.670943E-003 +56 8.903143E-004 +57 8.903143E-004 +58 0.000000E+000 +59 0.000000E+000 +60 1.633775E+002 +61 2.725711E+000 +62 4.463398E+002 +63 6.031618E+002 +64 1.568221E+002 +65 1.793767E-002 +66 2.686549E-004 +67 5.346232E-002 +68 4.581838E+000 +69 1.667962E-004 +70 5.003885E-004 +71 1.667962E-004 +72 3.351098E-007 +73 1.488766E-007 +74 0.000000E+000 +75 1.052888E+001 +76 6.645706E+001 +77 1.999641E-003 +78 6.239413E-002 +79 9.374500E-005 +80 0.000000E+000 +81 4.422109E-001 +82 9.043792E-007 +83 7.512954E-003 +84 0.000000E+000 +85 1.672089E+002 +86 2.786815E+002 +87 2.328571E-004 +88 8.812371E-004 +89 0.000000E+000 +90 3.339452E+000 +91 1.300249E+000 +92 4.129168E-007 +93 1.893099E+002 +94 1.673127E-001 +95 6.692507E-001 +96 0.000000E+000 +97 1.491807E-007 +98 5.085704E-008 +99 1.390092E-007 +100 1.957191E-006 +101 7.388003E-002 +102 1.329254E-004 +103 5.221229E-008 +104 2.237670E-008 +105 6.850535E-081 +106 1.700840E-003 +107 3.624699E-003 +108 1.235693E-003 +109 3.377561E-003 +110 4.755462E-002 +111 1.795091E+003 +112 3.229740E+000 +113 1.268622E-003 +114 5.436951E-004 +115 0.000000E+000 +116 0.000000E+000 +117 0.000000E+000 +118 6.948534E+000 +119 3.056469E-002 +120 2.803603E-013 +121 1.443188E-011 +122 0.000000E+000 +123 3.726219E-010 +124 1.172156E-002 +125 1.258168E-006 +126 6.830238E-006 +127 0.000000E+000 +128 5.113494E-003 +129 1.608551E+003 +130 8.124684E-001 +131 1.468245E+000 +132 3.986542E+000 +133 7.118435E-001 +134 4.889583E-007 +135 1.336486E-006 +136 1.434278E-006 +137 1.881715E-005 +138 7.103098E-001 +139 1.277994E-003 +140 5.019881E-007 +141 2.151378E-007 +142 0.000000E+000 +143 5.900741E-009 +144 0.000000E+000 +145 0.000000E+000 +146 4.162313E-008 diff --git a/tests/model_tests/spec_model_1/output/reactionRates/50400.cmp b/tests/model_tests/spec_model_1/output/reactionRates/50400.cmp new file mode 100644 index 000000000..3d74b752b --- /dev/null +++ b/tests/model_tests/spec_model_1/output/reactionRates/50400.cmp @@ -0,0 +1,147 @@ + reactionNumber reactionRate +1 -1.664891E-013 +2 -4.785614E-014 +3 -1.209036E-020 +4 -8.515285E-024 +5 -2.880663E-018 +6 -5.702799E-019 +7 -1.292393E-094 +8 -3.737346E-094 +9 1.149452E+004 +10 1.558293E+006 +11 1.578877E-007 +12 1.773278E+004 +13 2.923819E+004 +14 6.104914E+007 +15 -4.964007E-095 +16 2.452133E+001 +17 1.594217E-003 +18 6.577521E+002 +19 1.366410E-002 +20 3.813198E+002 +21 2.371337E-002 +22 3.859104E-001 +23 2.898875E-001 +24 7.643405E-003 +25 5.703582E+002 +26 6.668228E+000 +27 3.698151E+000 +28 2.342235E+004 +29 1.850487E-003 +30 7.307432E+002 +31 3.825402E-001 +32 4.288531E+000 +33 -0.000000E+000 +34 0.000000E+000 +35 0.000000E+000 +36 2.511167E+005 +37 1.227507E+006 +38 0.000000E+000 +39 0.000000E+000 +40 0.000000E+000 +41 0.000000E+000 +42 0.000000E+000 +43 0.000000E+000 +44 0.000000E+000 +45 0.000000E+000 +46 0.000000E+000 +47 5.959602E+007 +48 2.336711E+004 +49 1.426454E+002 +50 1.198517E+003 +51 7.748849E+000 +52 3.612405E-001 +53 1.272722E+000 +54 1.356833E+002 +55 4.630908E-003 +56 1.543636E-003 +57 1.543636E-003 +58 0.000000E+000 +59 0.000000E+000 +60 2.211561E+002 +61 3.957436E+000 +62 4.434513E+002 +63 5.992586E+002 +64 1.558072E+002 +65 2.630736E-002 +66 3.411118E-004 +67 6.788126E-002 +68 7.273102E+000 +69 2.570913E-004 +70 7.712741E-004 +71 2.570913E-004 +72 1.699106E-006 +73 7.548485E-007 +74 0.000000E+000 +75 1.858572E+001 +76 1.173109E+002 +77 2.894751E-003 +78 3.088363E-001 +79 4.976913E-004 +80 0.000000E+000 +81 4.393497E-001 +82 9.700309E-007 +83 7.038479E-003 +84 0.000000E+000 +85 1.661270E+002 +86 2.768783E+002 +87 3.371771E-004 +88 1.276031E-003 +89 0.000000E+000 +90 5.306814E+000 +91 2.066261E+000 +92 6.012842E-007 +93 2.549805E+002 +94 2.417073E-001 +95 9.668291E-001 +96 0.000000E+000 +97 9.778995E-007 +98 3.333748E-007 +99 9.112245E-007 +100 1.110723E-005 +101 3.662121E-001 +102 9.431019E-004 +103 3.597035E-007 +104 1.541587E-007 +105 -5.610375E-085 +106 2.601328E-003 +107 5.125580E-003 +108 1.747357E-003 +109 4.776108E-003 +110 5.821764E-002 +111 1.919471E+003 +112 4.943191E+000 +113 1.885356E-003 +114 8.080099E-004 +115 0.000000E+000 +116 0.000000E+000 +117 0.000000E+000 +118 9.359279E+000 +119 4.415668E-002 +120 4.508628E-013 +121 2.270305E-011 +122 0.000000E+000 +123 2.648493E-009 +124 5.755149E-002 +125 1.828011E-006 +126 9.915736E-006 +127 0.000000E+000 +128 7.679259E-003 +129 1.668695E+003 +130 1.094696E+000 +131 1.978271E+000 +132 5.371349E+000 +133 9.591169E-001 +134 8.706744E-007 +135 2.379843E-006 +136 2.553978E-006 +137 2.900873E-005 +138 9.564355E-001 +139 2.463097E-003 +140 9.394370E-007 +141 4.026159E-007 +142 0.000000E+000 +143 8.555729E-009 +144 0.000000E+000 +145 0.000000E+000 +146 6.028705E-008 diff --git a/tests/model_tests/spec_model_1/output/speciesConcentrations.output.cmp b/tests/model_tests/spec_model_1/output/speciesConcentrations.output.cmp new file mode 100644 index 000000000..45cc4843d --- /dev/null +++ b/tests/model_tests/spec_model_1/output/speciesConcentrations.output.cmp @@ -0,0 +1,32 @@ + t CO O3 NO NO2 C2H4 OH HO2 ETHENO3O2 HOCH2CH2O2 NO3CH2CO3 HOCH2CO3 HCOCO3 + 2.340000E+004 4.800000E+012 6.110000E+011 6.800000E+010 8.370000E+010 2.760000E+009 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 + 2.430000E+004 4.796633E+012 6.163608E+011 7.065953E+010 7.744115E+010 2.690022E+009 4.149617E+006 7.682670E+006 4.755265E-001 1.358277E+005 1.543195E-003 2.907844E+002 1.104317E-001 + 2.520000E+004 4.792251E+012 6.176982E+011 6.885875E+010 7.565352E+010 2.601894E+009 4.826991E+006 9.183572E+006 4.740316E-001 1.568539E+005 3.464636E-003 7.788542E+002 6.561231E-001 + 2.610000E+004 4.787431E+012 6.191966E+011 6.699721E+010 7.395202E+010 2.508167E+009 5.138277E+006 1.005456E+007 4.729817E-001 1.654383E+005 5.345739E-003 1.340879E+003 1.763351E+000 + 2.700000E+004 4.782420E+012 6.207836E+011 6.509101E+010 7.234147E+010 2.414064E+009 5.277412E+006 1.063286E+007 4.729999E-001 1.683369E+005 7.091283E-003 1.918889E+003 3.394120E+000 + 2.790000E+004 4.777341E+012 6.224167E+011 6.315771E+010 7.083095E+010 2.322054E+009 5.316767E+006 1.104092E+007 4.743649E-001 1.681243E+005 8.678147E-003 2.482185E+003 5.437937E+000 + 2.880000E+004 4.772275E+012 6.240632E+011 6.121446E+010 6.943171E+010 2.233527E+009 5.282332E+006 1.131628E+007 4.772404E-001 1.657697E+005 1.009366E-002 3.008284E+003 7.743539E+000 + 2.970000E+004 4.767286E+012 6.256915E+011 5.927671E+010 6.815622E+010 2.149408E+009 5.183187E+006 1.146381E+007 4.817732E-001 1.616517E+005 1.132481E-002 3.477448E+003 1.013204E+001 + 3.060000E+004 4.762432E+012 6.272679E+011 5.735741E+010 6.701783E+010 2.070387E+009 5.022925E+006 1.147693E+007 4.881409E-001 1.559464E+005 1.235826E-002 3.872154E+003 1.241077E+001 + 3.150000E+004 4.757769E+012 6.287563E+011 5.546635E+010 6.603066E+010 1.996990E+009 4.804120E+006 1.134660E+007 4.965842E-001 1.487742E+005 1.318175E-002 4.177898E+003 1.439051E+001 + 3.240000E+004 4.753349E+012 6.301177E+011 5.360948E+010 6.520977E+010 1.929612E+009 4.530121E+006 1.106556E+007 5.074386E-001 1.402553E+005 1.378514E-002 4.384145E+003 1.590421E+001 + 3.330000E+004 4.749220E+012 6.313119E+011 5.178824E+010 6.457140E+010 1.868524E+009 4.205803E+006 1.063086E+007 5.211749E-001 1.305315E+005 1.416108E-002 4.485115E+003 1.682451E+001 + 3.420000E+004 4.745426E+012 6.322971E+011 4.999875E+010 6.413339E+010 1.813885E+009 3.837873E+006 1.004546E+007 5.384567E-001 1.197738E+005 1.430585E-002 4.480285E+003 1.707751E+001 + 3.510000E+004 4.742002E+012 6.330316E+011 4.823080E+010 6.391589E+010 1.765738E+009 3.434940E+006 9.319328E+006 5.602286E-001 1.081854E+005 1.422003E-002 4.374573E+003 1.665086E+001 + 3.600000E+004 4.738974E+012 6.334729E+011 4.646649E+010 6.394234E+010 1.724018E+009 3.007413E+006 8.469928E+006 5.878570E-001 9.600101E+004 1.390953E-002 4.178165E+003 1.559465E+001 + 3.690000E+004 4.736361E+012 6.335784E+011 4.467841E+010 6.424102E+010 1.688554E+009 2.567240E+006 7.522152E+006 6.233660E-001 8.348423E+004 1.338653E-002 3.905991E+003 1.401473E+001 + 3.780000E+004 4.734165E+012 6.333028E+011 4.282705E+010 6.484739E+010 1.659073E+009 2.127500E+006 6.507484E+006 6.698555E-001 7.092286E+004 1.267058E-002 3.576873E+003 1.205928E+001 + 3.870000E+004 4.732380E+012 6.325959E+011 4.085686E+010 6.580784E+010 1.635199E+009 1.701866E+006 5.462519E+006 7.322872E-001 5.862190E+004 1.178976E-002 3.212388E+003 9.900338E+000 + 3.960000E+004 4.730984E+012 6.313959E+011 3.869029E+010 6.718552E+010 1.616462E+009 1.303930E+006 4.426893E+006 8.190728E-001 4.689441E+004 1.078196E-002 2.835582E+003 7.713170E+000 + 4.050000E+004 4.729944E+012 6.296199E+011 3.621828E+010 6.906978E+010 1.602299E+009 9.464362E+005 3.440826E+006 9.455781E-001 3.605019E+004 9.696266E-003 2.469654E+003 5.656480E+000 + 4.140000E+004 4.729217E+012 6.271471E+011 3.328489E+010 7.159162E+010 1.592066E+009 6.404176E+005 2.542489E+006 1.142778E+000 2.638217E+004 8.594791E-003 2.136801E+003 3.856507E+000 + 4.230000E+004 4.728748E+012 6.237923E+011 2.966302E+010 7.494822E+010 1.585053E+009 3.942002E+005 1.765376E+006 1.482114E+000 1.814990E+004 7.554857E-003 1.857442E+003 2.396899E+000 + 4.320000E+004 4.728478E+012 6.192683E+011 2.502019E+010 7.943745E+010 1.580511E+009 2.121955E+005 1.135651E+006 2.163788E+000 1.155817E+004 6.671593E-003 1.650040E+003 1.314810E+000 + 4.410000E+004 4.728347E+012 6.131640E+011 1.890162E+010 8.547464E+010 1.577694E+009 9.331138E+004 6.690434E+005 3.950797E+000 6.724972E+003 6.059757E-003 1.531717E+003 6.015910E-001 + 4.500000E+004 4.728297E+012 6.051496E+011 1.094758E+010 9.336946E+010 1.575919E+009 2.906148E+004 3.660405E+005 1.193980E+001 3.623624E+003 5.848019E-003 1.517984E+003 2.058421E-001 + 4.590000E+004 4.728286E+012 5.966022E+011 2.581539E+009 1.015525E+011 1.574651E+009 3.729359E+003 2.073880E+005 1.507696E+002 1.998742E+003 6.189569E-003 1.603034E+003 5.657250E-002 + 4.680000E+004 4.728286E+012 5.930215E+011 4.414287E+006 1.024178E+011 1.573529E+009 2.258981E+002 1.960032E+005 1.025227E+004 2.468589E+003 9.214619E-003 1.729437E+003 2.450336E-001 + 4.770000E+004 4.728286E+012 5.914391E+011 9.870461E+005 9.946339E+010 1.572385E+009 3.198740E+002 2.322064E+005 4.697112E+004 4.026377E+003 2.240698E-002 1.872777E+003 5.465698E-001 + 4.860000E+004 4.728287E+012 5.899067E+011 1.153009E+006 9.658467E+010 1.571212E+009 4.205178E+002 2.692791E+005 8.094325E+004 4.943396E+003 7.728065E-002 2.011169E+003 7.854359E-001 + 4.950000E+004 4.728287E+012 5.884212E+011 1.224455E+006 9.378848E+010 1.570018E+009 5.201738E+002 3.051487E+005 1.005288E+005 5.461885E+003 2.057345E-001 2.146950E+003 9.767848E-001 + 5.040000E+004 4.728288E+012 5.869815E+011 1.251606E+006 9.107410E+010 1.568811E+009 6.126092E+002 3.369418E+005 1.091143E+005 5.838641E+003 4.192602E-001 2.281948E+003 1.132266E+000 diff --git a/tests/model_tests/spec_model_1/spec_model_1.fac b/tests/model_tests/spec_model_1/spec_model_1.fac new file mode 100644 index 000000000..942314538 --- /dev/null +++ b/tests/model_tests/spec_model_1/spec_model_1.fac @@ -0,0 +1,371 @@ +****************************************************************** +* +* Citation +* +* A citation to +* the MCM website and the relevant mechanism construction +* protocols should be given in any publication using +* information obtained from this source, using the following +* or comparable wording: +* +* The chemical mechanistic +* information was taken from the Master Chemical Mechanism, +* MCM v3.3.1 (reference), via website: +* http://mcm.york.ac.uk/ +* +* The reference should be: +* +* +* For non-aromatic schemes: +* +* Jenkin et al., +* Atmos. Environ., 31, 81, 1997 +* [doi:10.1016/S1352-2310(96)00105-7] +* Saunders et +* al., Atmos. Chem. Phys., 3, 161, 2003 +* [doi:10.5194/acp-3-161-2003] +* +* For aromatic +* schemes: +* +* Jenkin et al., Atmos. Chem. Phys., +* 3, 181, 2003 [doi:10.5194/acp-3-181-2003] +* Bloss et +* al., Atmos. Chem. Phys., 5, 641, 2005 +* [doi:10.5194/acp-5-641-2005] +* +* For the +* β-caryophyllene scheme: +* +* Jenkin et al., +* Atmos. Chem. Phys., 12, 5275, 2012 +* [doi:10.5194/acp-12-5275-2012] +* +* For the isoprene +* scheme: +* +* Jenkin et al., Atmos. Chem. Phys., +* 15, 11433-11459, 2015 [doi:10.5194/acp-15-11433-2015] +* +* * +* +* +* +****************************************************************** +* C2H4 ; +*; +* Variable definitions. All species are listed here.; +*; +VARIABLE + HCHO HCOCO ETHENO3O NO3CH2CO3 O1D NO3CH2CO3H O3 HO2NO2 NO3 N2O5 +H2O2 NO NA HCOCO3H ETHO2HNO3 PHAN NO3CH2CHO HO2 NO2 HOCH2CHO HSO3 +NO3CH2CO2H CO HOCH2CO3 HOCH2CH2O2 O HNO3 SO3 SO2 CH2OOA HCOCO3 +HOCH2CH2O C2H4 HOCH2CO2H ETHOHNO3 NO3CH2PAN HOCH2CO3H OH H2 HONO +ETHGLY CH2OO HCOOH HYETHO2H HCOCO2H GLYOX ETHENO3O2 HCOCH2O SA ; +****************************************************** ; +*; +* Generic Rate Coefficients ; +*; +KRO2NO = 2.7D-12*EXP(360/TEMP) ; +KRO2HO2 = 2.91D-13*EXP(1300/TEMP) ; +KAPHO2 = 5.2D-13*EXP(980/TEMP) ; +KAPNO = 7.5D-12*EXP(290/TEMP) ; +KRO2NO3 = 2.3D-12 ; +KNO3AL = 1.44D-12*EXP(-1862/TEMP) ; +KDEC = 1.00D+06 ; +KROPRIM = 2.50D-14*EXP(-300/TEMP) ; +KROSEC = 2.50D-14*EXP(-300/TEMP) ; +KCH3O2 = 1.03D-13*EXP(365/TEMP) ; +K298CH3O2 = 3.5D-13 ; +K14ISOM1 = 3.00D7*EXP(-5300/TEMP) ; +*; +* Complex reactions ; +*; +KD0 = 1.10D-05*M*EXP(-10100/TEMP) ; +KDI = 1.90D17*EXP(-14100/TEMP) ; +KRD = KD0/KDI ; +FCD = 0.30 ; +NCD = 0.75-1.27*(LOG10(FCD)) ; +FD = 10@(LOG10(FCD)/(1+(LOG10(KRD)/NCD)**2)) ; +KBPAN = (KD0*KDI)*FD/(KD0+KDI) ; +KC0 = 3.28D-28*M*(TEMP/300)@-6.87 ; +KCI = 1.125D-11*(TEMP/300)@-1.105 ; +KRC = KC0/KCI ; +FCC = 0.30 ; +NC = 0.75-1.27*(LOG10(FCC)) ; +FC = 10@(LOG10(FCC)/(1+(LOG10(KRC)/NC)**2)) ; +KFPAN = (KC0*KCI)*FC/(KC0+KCI) ; +K10 = 1.0D-31*M*(TEMP/300)@-1.6 ; +K1I = 5.0D-11*(TEMP/300)@-0.3 ; +KR1 = K10/K1I ; +FC1 = 0.85 ; +NC1 = 0.75-1.27*(LOG10(FC1)) ; +F1 = 10@(LOG10(FC1)/(1+(LOG10(KR1)/NC1)**2)) ; +KMT01 = (K10*K1I)*F1/(K10+K1I) ; +K20 = 1.3D-31*M*(TEMP/300)@-1.5 ; +K2I = 2.3D-11*(TEMP/300)@0.24 ; +KR2 = K20/K2I ; +FC2 = 0.6 ; +NC2 = 0.75-1.27*(LOG10(FC2)) ; +F2 = 10@(LOG10(FC2)/(1+(LOG10(KR2)/NC2)**2)) ; +KMT02 = (K20*K2I)*F2/(K20+K2I) ; +K30 = 3.6D-30*M*(TEMP/300)@-4.1 ; +K3I = 1.9D-12*(TEMP/300)@0.2 ; +KR3 = K30/K3I ; +FC3 = 0.35 ; +NC3 = 0.75-1.27*(LOG10(FC3)) ; +F3 = 10@(LOG10(FC3)/(1+(LOG10(KR3)/NC3)**2)) ; +KMT03 = (K30*K3I)*F3/(K30+K3I) ; +K40 = 1.3D-3*M*(TEMP/300)@-3.5*EXP(-11000/TEMP) ; +K4I = 9.7D+14*(TEMP/300)@0.1*EXP(-11080/TEMP) ; +KR4 = K40/K4I ; +FC4 = 0.35 ; +NC4 = 0.75-1.27*(LOG10(FC4)) ; +F4 = 10@(LOG10(FC4)/(1+(LOG10(KR4)/NC4)**2)) ; +KMT04 = (K40*K4I)*F4/(K40+K4I) ; +KMT05 = 1.44D-13*(1+(M/4.2D+19)) ; +KMT06 = 1 + (1.40D-21*EXP(2200/TEMP)*H2O) ; +K70 = 7.4D-31*M*(TEMP/300)@-2.4 ; +K7I = 3.3D-11*(TEMP/300)@-0.3 ; +KR7 = K70/K7I ; +FC7 = 0.81 ; +NC7 = 0.75-1.27*(LOG10(FC7)) ; +F7 = 10@(LOG10(FC7)/(1+(LOG10(KR7)/NC7)**2)) ; +KMT07 = (K70*K7I)*F7/(K70+K7I) ; +K80 = 3.2D-30*M*(TEMP/300)@-4.5 ; +K8I = 3.0D-11 ; +KR8 = K80/K8I ; +FC8 = 0.41 ; +NC8 = 0.75-1.27*(LOG10(FC8)) ; +F8 = 10@(LOG10(FC8)/(1+(LOG10(KR8)/NC8)**2)) ; +KMT08 = (K80*K8I)*F8/(K80+K8I) ; +K90 = 1.4D-31*M*(TEMP/300)@-3.1 ; +K9I = 4.0D-12 ; +KR9 = K90/K9I ; +FC9 = 0.4 ; +NC9 = 0.75-1.27*(LOG10(FC9)) ; +F9 = 10@(LOG10(FC9)/(1+(LOG10(KR9)/NC9)**2)) ; +KMT09 = (K90*K9I)*F9/(K90+K9I) ; +K100 = 4.10D-05*M*EXP(-10650/TEMP) ; +K10I = 6.0D+15*EXP(-11170/TEMP) ; +KR10 = K100/K10I ; +FC10 = 0.4 ; +NC10 = 0.75-1.27*(LOG10(FC10)) ; +F10 = 10@(LOG10(FC10)/(1+(LOG10(KR10)/NC10)**2)) ; +KMT10 = (K100*K10I)*F10/(K100+K10I) ; +K1 = 2.40D-14*EXP(460/TEMP) ; +K3 = 6.50D-34*EXP(1335/TEMP) ; +K4 = 2.70D-17*EXP(2199/TEMP) ; +K2 = (K3*M)/(1+(K3*M/K4)) ; +KMT11 = K1 + K2 ; +K120 = 2.5D-31*M*(TEMP/300)@-2.6 ; +K12I = 2.0D-12 ; +KR12 = K120/K12I ; +FC12 = 0.53 ; +NC12 = 0.75-1.27*(LOG10(FC12)) ; +F12 = 10@(LOG10(FC12)/(1.0+(LOG10(KR12)/NC12)**2)) ; +KMT12 = (K120*K12I*F12)/(K120+K12I) ; +K130 = 2.5D-30*M*(TEMP/300)@-5.5 ; +K13I = 1.8D-11 ; +KR13 = K130/K13I ; +FC13 = 0.36 ; +NC13 = 0.75-1.27*(LOG10(FC13)) ; +F13 = 10@(LOG10(FC13)/(1+(LOG10(KR13)/NC13)**2)) ; +KMT13 = (K130*K13I)*F13/(K130+K13I) ; +K140 = 9.0D-5*EXP(-9690/TEMP)*M ; +K14I = 1.1D+16*EXP(-10560/TEMP) ; +KR14 = K140/K14I ; +FC14 = 0.36 ; +NC14 = 0.75-1.27*(LOG10(FC14)) ; +F14 = 10@(LOG10(FC14)/(1+(LOG10(KR14)/NC14)**2)) ; +KMT14 = (K140*K14I)*F14/(K140+K14I) ; +K150 = 8.6D-29*M*(TEMP/300)@-3.1 ; +K15I = 9.0D-12*(TEMP/300)@-0.85 ; +KR15 = K150/K15I ; +FC15 = 0.48 ; +NC15 = 0.75-1.27*(LOG10(FC15)) ; +F15 = 10@(LOG10(FC15)/(1+(LOG10(KR15)/NC15)**2)) ; +KMT15 = (K150*K15I)*F15/(K150+K15I) ; +K160 = 8D-27*M*(TEMP/300)@-3.5 ; +K16I = 3.0D-11*(TEMP/300)@-1 ; +KR16 = K160/K16I ; +FC16 = 0.5 ; +NC16 = 0.75-1.27*(LOG10(FC16)) ; +F16 = 10@(LOG10(FC16)/(1+(LOG10(KR16)/NC16)**2)) ; +KMT16 = (K160*K16I)*F16/(K160+K16I) ; +K170 = 5.0D-30*M*(TEMP/300)@-1.5 ; +K17I = 1.0D-12 ; +KR17 = K170/K17I ; +FC17 = 0.17*EXP(-51/TEMP)+EXP(-TEMP/204) ; +NC17 = 0.75-1.27*(LOG10(FC17)) ; +F17 = 10@(LOG10(FC17)/(1.0+(LOG10(KR17)/NC17)**2)) ; +KMT17 = (K170*K17I*F17)/(K170+K17I) ; +KMT18 = 9.5D-39*O2*EXP(5270/TEMP)/(1+7.5D-29*O2*EXP(5610/TEMP)) ; +KPPN0 = 1.7D-03*EXP(-11280/TEMP)*M ; +KPPNI = 8.3D+16*EXP(-13940/TEMP) ; +KRPPN = KPPN0/KPPNI ; +FCPPN = 0.36 ; +NCPPN = 0.75-1.27*(LOG10(FCPPN)) ; +FPPN = 10@(LOG10(FCPPN)/(1+(LOG10(KRPPN)/NCPPN)**2)) ; +KBPPN = (KPPN0*KPPNI)*FPPN/(KPPN0+KPPNI) ; +KRO2 = 1.26D-12*RO2 ; +****************************************************** ; +*; +* Peroxy radicals. ; +*; +* WARNING: The following species do not have SMILES strings in the database. ; +* If any of these are peroxy radicals the RO2 sum will be wrong!!! ; +****************************************************** ; +* ; +RO2 = ETHENO3O2 + HOCH2CH2O2 + NO3CH2CO3 + HOCH2CO3 + HCOCO3 ; +*; +* Reaction definitions. ; +*; +% 5.6D-34*N2*(TEMP/300)@-2.6*O2 : O = O3 ; +% 6.0D-34*O2*(TEMP/300)@-2.6*O2 : O = O3 ; +% 8.0D-12*EXP(-2060/TEMP) : O + O3 = ; +% KMT01 : O + NO = NO2 ; +% 5.5D-12*EXP(188/TEMP) : O + NO2 = NO ; +% KMT02 : O + NO2 = NO3 ; +% 3.2D-11*EXP(67/TEMP)*O2 : O1D = O ; +% 2.0D-11*EXP(130/TEMP)*N2 : O1D = O ; +% 1.4D-12*EXP(-1310/TEMP) : NO + O3 = NO2 ; +% 1.4D-13*EXP(-2470/TEMP) : NO2 + O3 = NO3 ; +% 3.3D-39*EXP(530/TEMP)*O2 : NO + NO = NO2 + NO2 ; +% 1.8D-11*EXP(110/TEMP) : NO + NO3 = NO2 + NO2 ; +% 4.50D-14*EXP(-1260/TEMP) : NO2 + NO3 = NO + NO2 ; +% KMT03 : NO2 + NO3 = N2O5 ; +% 2.14D-10*H2O : O1D = OH + OH ; +% 1.70D-12*EXP(-940/TEMP) : OH + O3 = HO2 ; +% 7.7D-12*EXP(-2100/TEMP) : OH + H2 = HO2 ; +% KMT05 : OH + CO = HO2 ; +% 2.9D-12*EXP(-160/TEMP) : OH + H2O2 = HO2 ; +% 2.03D-16*(TEMP/300)@4.57*EXP(693/TEMP) : HO2 + O3 = OH ; +% 4.8D-11*EXP(250/TEMP) : OH + HO2 = ; +% 2.20D-13*KMT06*EXP(600/TEMP) : HO2 + HO2 = H2O2 ; +% 1.90D-33*M*KMT06*EXP(980/TEMP) : HO2 + HO2 = H2O2 ; +% KMT07 : OH + NO = HONO ; +% KMT08 : OH + NO2 = HNO3 ; +% 2.0D-11 : OH + NO3 = HO2 + NO2 ; +% 3.45D-12*EXP(270/TEMP) : HO2 + NO = OH + NO2 ; +% KMT09 : HO2 + NO2 = HO2NO2 ; +% 3.2D-13*EXP(690/TEMP)*1.0 : OH + HO2NO2 = NO2 ; +% 4.0D-12 : HO2 + NO3 = OH + NO2 ; +% 2.5D-12*EXP(260/TEMP) : OH + HONO = NO2 ; +% KMT11 : OH + HNO3 = NO3 ; +% 4.0D-32*EXP(-1000/TEMP)*M : O + SO2 = SO3 ; +% KMT12 : OH + SO2 = HSO3 ; +% 1.3D-12*EXP(-330/TEMP)*O2 : HSO3 = HO2 + SO3 ; +% 6.00D-06 : HNO3 = NA ; +% 4.00D-04 : N2O5 = NA + NA ; +% 1.20D-15*H2O : SO3 = SA ; +% J<1> : O3 = O1D ; +% J<2> : O3 = O ; +% J<3> : H2O2 = OH + OH ; +% J<4> : NO2 = NO + O ; +% J<5> : NO3 = NO ; +% J<6> : NO3 = NO2 + O ; +% J<7> : HONO = OH + NO ; +% J<8> : HNO3 = OH + NO2 ; +% KMT04 : N2O5 = NO2 + NO3 ; +% KMT10 : HO2NO2 = HO2 + NO2 ; +% 3.3D-12*EXP(-2880/TEMP) : C2H4 + NO3 = ETHENO3O2 ; +% 9.1D-15*EXP(-2580/TEMP) : C2H4 + O3 = HCHO + CH2OOA ; +% KMT15 : C2H4 + OH = HOCH2CH2O2 ; +% KRO2HO2*0.387 : ETHENO3O2 + HO2 = ETHO2HNO3 ; +% KRO2NO : ETHENO3O2 + NO = ETHENO3O + NO2 ; +% KRO2NO3 : ETHENO3O2 + NO3 = ETHENO3O + NO2 ; +% 6.00D-13*0.6*RO2 : ETHENO3O2 = ETHENO3O ; +% 6.00D-13*0.2*RO2 : ETHENO3O2 = ETHOHNO3 ; +% 6.00D-13*0.2*RO2 : ETHENO3O2 = NO3CH2CHO ; +% J<11> : HCHO = CO + HO2 + HO2 ; +% J<12> : HCHO = H2 + CO ; +% 5.5D-16 : NO3 + HCHO = HNO3 + CO + HO2 ; +% 5.4D-12*EXP(135/TEMP) : OH + HCHO = HO2 + CO ; +% KDEC*0.37 : CH2OOA = CH2OO ; +% KDEC*0.50 : CH2OOA = CO ; +% KDEC*0.13 : CH2OOA = HO2 + CO + OH ; +% 1.53D-13*EXP(1300/TEMP) : HOCH2CH2O2 + HO2 = HYETHO2H ; +% KRO2NO*0.005 : HOCH2CH2O2 + NO = ETHOHNO3 ; +% KRO2NO*0.995 : HOCH2CH2O2 + NO = HOCH2CH2O + NO2 ; +% KRO2NO3 : HOCH2CH2O2 + NO3 = HOCH2CH2O + NO2 ; +% 2*(KCH3O2*7.8D-14*EXP(1000/TEMP))@0.5*RO2*0.2 : HOCH2CH2O2 = ETHGLY ; +% 2*(KCH3O2*7.8D-14*EXP(1000/TEMP))@0.5*RO2*0.6 : HOCH2CH2O2 = HOCH2CH2O ; +% 2*(KCH3O2*7.8D-14*EXP(1000/TEMP))@0.5*RO2*0.2 : HOCH2CH2O2 = HOCH2CHO ; +% 1.90D-12*EXP(190/TEMP) : ETHO2HNO3 + OH = ETHENO3O2 ; +% 1.62D-12 : ETHO2HNO3 + OH = NO3CH2CHO + OH ; +% J<41> : ETHO2HNO3 = ETHENO3O + OH ; +% 7.00D+03 : ETHENO3O = NO2 + HCHO + HCHO ; +% KROPRIM*O2 : ETHENO3O = NO3CH2CHO + HO2 ; +% 8.40D-13 : ETHOHNO3 + OH = HOCH2CHO + NO2 ; +% KNO3AL : NO3CH2CHO + NO3 = NO3CH2CO3 + HNO3 ; +% 3.40D-12 : NO3CH2CHO + OH = NO3CH2CO3 ; +% J<56>*4.3 : NO3CH2CHO = NO2 + HCOCH2O ; +% 1.20D-15 : CH2OO + CO = HCHO ; +% 1.00D-14 : CH2OO + NO = HCHO + NO2 ; +% 1.00D-15 : CH2OO + NO2 = HCHO + NO3 ; +% 7.00D-14 : CH2OO + SO2 = HCHO + SO3 ; +% 6.00D-18*H2O : CH2OO = HCHO + H2O2 ; +% 1.00D-17*H2O : CH2OO = HCOOH ; +% 1.90D-12*EXP(190/TEMP) : HYETHO2H + OH = HOCH2CH2O2 ; +% 1.38D-11 : HYETHO2H + OH = HOCH2CHO + OH ; +% J<41> : HYETHO2H = HOCH2CH2O + OH ; +% 9.50D+13*EXP(-5988/TEMP) : HOCH2CH2O = HO2 + HCHO + HCHO ; +% KROPRIM*O2 : HOCH2CH2O = HO2 + HOCH2CHO ; +% 1.45D-11 : ETHGLY + OH = HOCH2CHO + HO2 ; +% KNO3AL : HOCH2CHO + NO3 = HOCH2CO3 + HNO3 ; +% 1.00D-11*0.200 : HOCH2CHO + OH = GLYOX + HO2 ; +% 1.00D-11*0.800 : HOCH2CHO + OH = HOCH2CO3 ; +% J<15> : HOCH2CHO = HO2 + HCHO + HO2 + CO ; +% KAPHO2*0.44 : NO3CH2CO3 + HO2 = HCHO + NO2 + OH ; +% KAPHO2*0.15 : NO3CH2CO3 + HO2 = NO3CH2CO2H + O3 ; +% KAPHO2*0.41 : NO3CH2CO3 + HO2 = NO3CH2CO3H ; +% KAPNO : NO3CH2CO3 + NO = HCHO + NO2 + NO2 ; +% KFPAN : NO3CH2CO3 + NO2 = NO3CH2PAN ; +% KRO2NO3*1.74 : NO3CH2CO3 + NO3 = HCHO + NO2 + NO2 ; +% 1.00D-11*0.7*RO2 : NO3CH2CO3 = HCHO + NO2 ; +% 1.00D-11*0.3*RO2 : NO3CH2CO3 = NO3CH2CO2H ; +% KDEC : HCOCH2O = HCHO + CO + HO2 ; +% 4.5D-13 : HCOOH + OH = HO2 ; +% KAPHO2*0.44 : HOCH2CO3 + HO2 = HO2 + HCHO + OH ; +% KAPHO2*0.15 : HOCH2CO3 + HO2 = HOCH2CO2H + O3 ; +% KAPHO2*0.41 : HOCH2CO3 + HO2 = HOCH2CO3H ; +% KAPNO : HOCH2CO3 + NO = NO2 + HO2 + HCHO ; +% KFPAN : HOCH2CO3 + NO2 = PHAN ; +% KRO2NO3*1.74 : HOCH2CO3 + NO3 = NO2 + HO2 + HCHO ; +% 1.00D-11*0.7*RO2 : HOCH2CO3 = HCHO + HO2 ; +% 1.00D-11*0.3*RO2 : HOCH2CO3 = HOCH2CO2H ; +% J<31> : GLYOX = CO + CO + H2 ; +% J<33> : GLYOX = CO + CO + HO2 + HO2 ; +% J<32> : GLYOX = HCHO + CO ; +% KNO3AL : NO3 + GLYOX = HCOCO + HNO3 ; +% 3.1D-12*EXP(340/TEMP) : OH + GLYOX = HCOCO ; +% 1.68D-13 : NO3CH2CO2H + OH = HCHO + NO2 ; +% 3.63D-12 : NO3CH2CO3H + OH = NO3CH2CO3 ; +% J<41> : NO3CH2CO3H = HCHO + NO2 + OH ; +% 1.12D-14 : NO3CH2PAN + OH = HCHO + CO + NO2 + NO2 ; +% KBPAN : NO3CH2PAN = NO3CH2CO3 + NO2 ; +% 2.73D-12 : HOCH2CO2H + OH = HCHO + HO2 ; +% 6.19D-12 : HOCH2CO3H + OH = HOCH2CO3 ; +% J<41> : HOCH2CO3H = HCHO + HO2 + OH ; +% 1.12D-12 : PHAN + OH = HCHO + CO + NO2 ; +% KBPAN : PHAN = HOCH2CO3 + NO2 ; +% 7.00D11*EXP(-3160/TEMP) : HCOCO = CO + CO + HO2 ; +% 5.00D-12*O2 : HCOCO = CO + CO + HO2 ; +% 5.00D-12*O2*3.2*(1-EXP(-550/TEMP)) : HCOCO = CO + OH ; +% 5.00D-12*O2*3.2*EXP(-550/TEMP) : HCOCO = HCOCO3 ; +% KAPHO2*0.15 : HCOCO3 + HO2 = HCOCO2H + O3 ; +% KAPHO2*0.41 : HCOCO3 + HO2 = HCOCO3H ; +% KAPHO2*0.44 : HCOCO3 + HO2 = HO2 + CO + OH ; +% KAPNO : HCOCO3 + NO = HO2 + CO + NO2 ; +% KFPAN : HCOCO3 + NO2 = HO2 + CO + NO3 ; +% KRO2NO3*1.74 : HCOCO3 + NO3 = HO2 + CO + NO2 ; +% 1.00D-11*0.7*RO2 : HCOCO3 = CO + HO2 ; +% 1.00D-11*0.3*RO2 : HCOCO3 = HCOCO2H ; +% J<34> : HCOCO2H = HO2 + HO2 + CO ; +% 1.23D-11 : OH + HCOCO2H = CO + HO2 ; +% J<41> : HCOCO3H = HO2 + CO + OH ; +% J<15> : HCOCO3H = HO2 + CO + OH ; +% 1.58D-11 : OH + HCOCO3H = HCOCO3 ; +*; +* End of Subset. No. of Species = 50, No. of Reactions = 146 ; diff --git a/tests/model_tests/spec_model_1/spec_model_1.out.cmp b/tests/model_tests/spec_model_1/spec_model_1.out.cmp new file mode 100644 index 000000000..2fefae202 --- /dev/null +++ b/tests/model_tests/spec_model_1/spec_model_1.out.cmp @@ -0,0 +1,211 @@ +AtChem2 v1.3-dev + +------------- + Directories +------------- + Model directory is: model + Output directory is: tests/model_tests/spec_model_1/output + Reaction Rates directory is: tests/model_tests/spec_model_1/output/reactionRates + Configuration directory is: tests/model_tests/spec_model_1/configuration + Constraints directory is: tests/model_tests/spec_model_1/constraints + Environment Constraints directory is: tests/model_tests/spec_model_1/constraints/environment + Photolysis Constraints directory is: tests/model_tests/spec_model_1/constraints/photolysis + Species Constraints directory is: tests/model_tests/spec_model_1/constraints/species + MCM directory is: mcm + Shared library is: tests/model_tests/spec_model_1/configuration/mechanism.so + +----------------------- + Species and reactions +----------------------- + Number of Species = 49 + Number of Reactions = 146 + + Size of lhs = 231 + Size of rhs = 256 + + Reading reactants (lhs) from mechanism.reac... + Reading products (rhs) from mechanism.prod... + Finished reading lhs and rhs data. + + Reading species names from mechanism.species... + Finished reading species names. + + Reading initial concentrations... + 1 CO 4.800E+12 + ... + 5 C2H4 2.760E+09 + Finished reading initial concentrations. + +---------------------------------------- + Species requiring detailed rate output +---------------------------------------- + Reading which species require detailed rate output... + 1 OH + 2 HO2 + Finished reading which species require detailed rate output. + Species requiring detailed rate output (number of species found): 2 + + Reading ro2 numbers from mechanism.ro2... + Finished reading ro2 numbers. + Reading solver parameters from file... + ------------------ + Solver parameters: + ------------------ + atol: 1.000E-03 + rtol: 1.000E-04 + deltaMain: 1.000E-04 + lookBack: 100 + maxStep: 1.000E+02 + preconBandUpper: 750 + preconBandLower: 750 + solverType: SPGMR + Banded Preconditioner + ------------------ + + Finished reading solver parameters from file. + + Reading model parameters from file... + ----------------- + Model parameters: + ----------------- + number of steps: 30 + step size: 0.900E+03 + species interpolation method: piecewise linear + conditions interpolation method: piecewise linear + rates output step size, ROPA/RODA: 3600 + model start time: 23400 + jacobian output step size: 0 + latitude: -0.733E+01 + longitude: -0.724E+02 + reaction rates output step size: 1800 + day/month/year: 9/11/2008 + ----------------- + + Finished reading model parameters from file. + +--------------------- + Species of Interest +--------------------- + Reading concentration output from file... + Finished reading concentration output from file. + Output required for concentration of 12 species: + 1 CO + ... + 12 HCOCO3 + +------------ + Photolysis +------------ + Reading photolysis numbers from file... + 1 + ... + 61 + Finished reading photolysis numbers. + Number of photolysis numbers: 35 + Looking for photolysis constants file... + Checking that photolysis constants exist in file... + Photolysis constants file is empty. + No photolysis constants applied, so trying constrained photolysis rates file... + Looking for photolysis constraints file... + Checking that photolysis constraints exist in file... + Photolysis constraint file is empty, so all photolysis rates will be calculated. + Reading all photolysis rates from file... + 1 6.073E-05 1.743E+00 4.740E-01 J1 1.000E+00 + ... + 61 7.537E-04 4.990E-01 2.660E-01 J61 1.000E+00 + Finished reading all photolysis rates. + Number of all photolysis rates: 35 + + +----------------------- + Environment variables +----------------------- + Reading environment variables... + Number of environment variables: 11 + 1 TEMP 291.45 + 2 PRESS 950.2 + 3 RH 67.4 + 4 H2O CALC + 5 DEC CALC + 6 BLHEIGHT NOTUSED + 7 DILUTE NOTUSED + 8 JFAC NOTUSED + 9 ROOF OPEN + 10 ASA NOTUSED + Finished reading environment variables. + + Checking for constrained environment variables... + Finished checking for constrained environment variables. + + +------------- + Constraints +------------- + Counting the variable-concentration species to be constrained (in file speciesConstrained.config)... + Finished counting the names of variable-concentration constrained species. + Number of names of variable-concentration constrained species: 0 + Counting the fixed-concentration species to be constrained (in file speciesConstant.config)... + Finished counting the names of fixed-concentration constrained species. + Number of names of fixed-concentration constrained species: 0 + Setting size of constraint arrays, n = 0 + Skipped reading the names of variable-concentration constrained species + Reading concentration data for variable-concentration constrained species... + Reading in the names and concentration of the fixed constrained species (in file speciesConstant.config)... + Finished reading in the names and concentration of fixed-concentration species. + Finished reading constrained species. + Initialising concentrations of constrained species... + Finished initialising concentrations of constrained species. + +--------------- + Problem stats +--------------- + neq = 49 + numberOfConstrainedSpecies = 0 + t0 = 2.340E+04 + + setting maxnumsteps ier = 0 + setting maxstep ier = 0 + +----------- + Model run +----------- + time = 24300 + time = 25200 + time = 26100 + time = 27000 + time = 27900 + time = 28800 + time = 29700 + time = 30600 + time = 31500 + time = 32400 + time = 33300 + time = 34200 + time = 35100 + time = 36000 + time = 36900 + time = 37800 + time = 38700 + time = 39600 + time = 40500 + time = 41400 + time = 42300 + time = 43200 + time = 44100 + time = 45000 + time = 45900 + time = 46800 + time = 47700 + time = 48600 + time = 49500 + time = 50400 + +------------------ + Final statistics +------------------ + No. steps = 503 No. f-s = 619 No. J-s = 970 No. LU-s = 108 + No. nonlinear iterations = 618 + No. nonlinear convergence failures = 0 + No. error test failures = 30 + + Runtime = 0 + Deallocating memory. diff --git a/tests/model_tests/spec_model_kpp/configuration/environmentVariables.config b/tests/model_tests/spec_model_kpp/configuration/environmentVariables.config new file mode 100644 index 000000000..f0e11ee48 --- /dev/null +++ b/tests/model_tests/spec_model_kpp/configuration/environmentVariables.config @@ -0,0 +1,10 @@ +1 TEMP 291.45 +2 PRESS 950.2 +3 RH 67.4 +4 H2O CALC +5 DEC CALC +6 BLHEIGHT NOTUSED +7 DILUTE NOTUSED +8 JFAC NOTUSED +9 ROOF OPEN +10 ASA NOTUSED diff --git a/tests/model_tests/spec_model_kpp/configuration/initialConcentrations.config b/tests/model_tests/spec_model_kpp/configuration/initialConcentrations.config new file mode 100644 index 000000000..81e939e0e --- /dev/null +++ b/tests/model_tests/spec_model_kpp/configuration/initialConcentrations.config @@ -0,0 +1,5 @@ +CO 4.8e+12 +O3 6.11e11 +NO 6.8e10 +NO2 8.37e10 +C2H4 2.76e+9 diff --git a/tests/model_tests/spec_model_kpp/configuration/mechanism.prod.cmp b/tests/model_tests/spec_model_kpp/configuration/mechanism.prod.cmp new file mode 100644 index 000000000..de2398aa3 --- /dev/null +++ b/tests/model_tests/spec_model_kpp/configuration/mechanism.prod.cmp @@ -0,0 +1,248 @@ +49 141 140 numberOfSpecies numberOfReactions numberOfGenericComplex +1 2 +3 4 +4 3 +5 5 +6 1 +7 4 +8 5 +9 4 +9 4 +10 4 +10 4 +11 3 +11 4 +12 7 +13 8 +13 8 +14 9 +15 9 +16 9 +17 9 +18 8 +20 12 +21 13 +22 14 +23 9 +23 4 +24 8 +24 4 +25 15 +26 4 +27 8 +27 4 +28 4 +29 5 +30 17 +31 18 +32 9 +32 17 +33 19 +34 19 +34 19 +35 20 +36 6 +37 1 +38 8 +38 8 +39 3 +39 1 +40 3 +41 4 +41 1 +42 8 +42 3 +43 8 +43 4 +44 4 +44 5 +45 9 +45 4 +46 22 +47 23 +47 24 +48 25 +49 26 +50 27 +50 4 +51 27 +51 4 +52 27 +53 28 +54 29 +55 11 +55 9 +55 9 +56 10 +56 11 +57 14 +57 11 +57 9 +58 9 +58 11 +59 30 +60 11 +61 9 +61 11 +61 8 +62 31 +63 28 +64 32 +64 4 +65 32 +65 4 +66 33 +67 32 +68 34 +69 22 +70 29 +70 8 +71 27 +71 8 +72 4 +72 23 +72 23 +73 29 +73 9 +74 34 +74 4 +75 35 +75 14 +76 35 +77 4 +77 36 +78 23 +79 23 +79 4 +80 23 +80 5 +81 23 +81 17 +82 23 +82 12 +83 37 +84 25 +85 34 +85 8 +86 32 +86 8 +87 9 +87 23 +87 23 +88 9 +88 34 +89 34 +89 9 +90 38 +90 14 +91 39 +91 9 +92 38 +93 9 +93 23 +93 9 +93 11 +94 23 +94 4 +94 8 +95 40 +95 2 +96 41 +97 23 +97 4 +97 4 +98 42 +99 23 +99 4 +99 4 +100 23 +100 4 +101 40 +102 23 +102 11 +102 9 +103 9 +104 9 +104 23 +104 8 +105 43 +105 2 +106 44 +107 4 +107 9 +107 23 +108 45 +109 4 +109 9 +109 23 +110 23 +110 9 +111 43 +112 11 +112 11 +112 10 +113 11 +113 11 +113 9 +113 9 +114 23 +114 11 +115 46 +115 14 +116 46 +117 23 +117 4 +118 35 +119 23 +119 4 +119 8 +120 23 +120 11 +120 4 +120 4 +121 35 +121 4 +122 23 +122 9 +123 38 +124 23 +124 9 +124 8 +125 23 +125 11 +125 4 +126 38 +126 4 +127 11 +127 11 +127 9 +128 11 +128 8 +129 47 +130 48 +130 2 +131 49 +132 9 +132 11 +132 8 +133 9 +133 11 +133 4 +134 9 +134 11 +134 5 +135 9 +135 11 +135 4 +136 11 +136 9 +137 48 +138 9 +138 9 +138 11 +139 11 +139 9 +140 9 +140 11 +140 8 +141 47 diff --git a/tests/model_tests/spec_model_kpp/configuration/mechanism.reac.cmp b/tests/model_tests/spec_model_kpp/configuration/mechanism.reac.cmp new file mode 100644 index 000000000..314e37b24 --- /dev/null +++ b/tests/model_tests/spec_model_kpp/configuration/mechanism.reac.cmp @@ -0,0 +1,226 @@ +49 141 140 numberOfSpecies numberOfReactions numberOfGenericComplex +1 1 +2 1 +2 2 +3 1 +3 3 +4 1 +4 4 +5 1 +5 4 +6 6 +7 3 +7 2 +8 4 +8 2 +9 3 +9 3 +10 3 +10 5 +11 4 +11 5 +12 4 +12 5 +13 6 +14 8 +14 2 +15 8 +15 10 +16 8 +16 11 +17 8 +17 12 +18 9 +18 2 +19 8 +19 9 +20 9 +20 9 +21 8 +21 3 +22 8 +22 4 +23 8 +23 5 +24 9 +24 3 +25 9 +25 4 +26 8 +26 15 +27 9 +27 5 +28 8 +28 13 +29 8 +29 14 +30 1 +30 16 +31 8 +31 16 +32 18 +33 14 +34 7 +35 17 +36 2 +37 2 +38 12 +39 4 +40 5 +41 5 +42 13 +43 14 +44 7 +45 15 +46 21 +46 5 +47 21 +47 2 +48 21 +48 8 +49 22 +49 9 +50 22 +50 3 +51 22 +51 5 +52 22 +53 22 +54 22 +55 23 +56 23 +57 5 +57 23 +58 8 +58 23 +59 24 +60 24 +61 24 +62 25 +62 9 +63 25 +63 3 +64 25 +64 3 +65 25 +65 5 +66 25 +67 25 +68 25 +69 26 +69 8 +70 26 +70 8 +71 26 +72 27 +73 27 +74 28 +74 8 +75 29 +75 5 +76 29 +76 8 +77 29 +78 30 +78 11 +79 30 +79 3 +80 30 +80 4 +81 30 +81 16 +82 30 +83 30 +84 31 +84 8 +85 31 +85 8 +86 31 +87 32 +88 32 +89 33 +89 8 +90 34 +90 5 +91 34 +91 8 +92 34 +92 8 +93 34 +94 35 +94 9 +95 35 +95 9 +96 35 +96 9 +97 35 +97 3 +98 35 +98 4 +99 35 +99 5 +100 35 +101 35 +102 36 +103 37 +103 8 +104 38 +104 9 +105 38 +105 9 +106 38 +106 9 +107 38 +107 3 +108 38 +108 4 +109 38 +109 5 +110 38 +111 38 +112 39 +113 39 +114 39 +115 5 +115 39 +116 8 +116 39 +117 40 +117 8 +118 41 +118 8 +119 41 +120 42 +120 8 +121 42 +122 43 +122 8 +123 44 +123 8 +124 44 +125 45 +125 8 +126 45 +127 46 +128 46 +129 46 +130 47 +130 9 +131 47 +131 9 +132 47 +132 9 +133 47 +133 3 +134 47 +134 4 +135 47 +135 5 +136 47 +137 47 +138 48 +139 8 +139 48 +140 49 +141 8 +141 49 diff --git a/tests/model_tests/spec_model_kpp/configuration/mechanism.ro2.cmp b/tests/model_tests/spec_model_kpp/configuration/mechanism.ro2.cmp new file mode 100644 index 000000000..fcea44b81 --- /dev/null +++ b/tests/model_tests/spec_model_kpp/configuration/mechanism.ro2.cmp @@ -0,0 +1,6 @@ +! Note that this file is automatically generated by build/mech_converter.py -- Any manual edits to this file will be overwritten when calling build/mech_converter.py +22 !ETHENO3O2 +25 !HOCH2CH2O2 +35 !NO3CH2CO3 +38 !HOCH2CO3 +47 !HCOCO3 diff --git a/tests/model_tests/spec_model_kpp/configuration/mechanism.species.cmp b/tests/model_tests/spec_model_kpp/configuration/mechanism.species.cmp new file mode 100644 index 000000000..41001fba0 --- /dev/null +++ b/tests/model_tests/spec_model_kpp/configuration/mechanism.species.cmp @@ -0,0 +1,49 @@ +1 O +2 O3 +3 NO +4 NO2 +5 NO3 +6 O1D +7 N2O5 +8 OH +9 HO2 +10 H2 +11 CO +12 H2O2 +13 HONO +14 HNO3 +15 HO2NO2 +16 SO2 +17 SO3 +18 HSO3 +19 NA +20 SA +21 C2H4 +22 ETHENO3O2 +23 HCHO +24 CH2OOA +25 HOCH2CH2O2 +26 ETHO2HNO3 +27 ETHENO3O +28 ETHOHNO3 +29 NO3CH2CHO +30 CH2OO +31 HYETHO2H +32 HOCH2CH2O +33 ETHGLY +34 HOCH2CHO +35 NO3CH2CO3 +36 HCOCH2O +37 HCOOH +38 HOCH2CO3 +39 GLYOX +40 NO3CH2CO2H +41 NO3CH2CO3H +42 NO3CH2PAN +43 HOCH2CO2H +44 HOCH2CO3H +45 PHAN +46 HCOCO +47 HCOCO3 +48 HCOCO2H +49 HCOCO3H diff --git a/tests/model_tests/spec_model_kpp/configuration/model.parameters b/tests/model_tests/spec_model_kpp/configuration/model.parameters new file mode 100644 index 000000000..b8895756c --- /dev/null +++ b/tests/model_tests/spec_model_kpp/configuration/model.parameters @@ -0,0 +1,13 @@ +30 number of steps +900 step size (seconds) +2 species interpolation method (pw constant = 1, pw linear = 2) +2 conditions interpolation method (pw constant = 1, pw linear = 2) +3600 rates output step size - ROPA/RODA (seconds) +23400 model start time (seconds) +0 jacobian output step size (seconds) +-7.326 latitude (degrees: North is positive, South is negative) +-72.449 longitude (degrees: West is positive, East is negative) +09 day +11 month +2008 year +1800 reaction rates output step size (seconds) diff --git a/tests/model_tests/spec_model_kpp/configuration/outputRates.config b/tests/model_tests/spec_model_kpp/configuration/outputRates.config new file mode 100644 index 000000000..78da78737 --- /dev/null +++ b/tests/model_tests/spec_model_kpp/configuration/outputRates.config @@ -0,0 +1,2 @@ +OH +HO2 diff --git a/tests/model_tests/spec_model_kpp/configuration/outputSpecies.config b/tests/model_tests/spec_model_kpp/configuration/outputSpecies.config new file mode 100644 index 000000000..9affbbc32 --- /dev/null +++ b/tests/model_tests/spec_model_kpp/configuration/outputSpecies.config @@ -0,0 +1,12 @@ +CO +O3 +NO +NO2 +C2H4 +OH +HO2 +ETHENO3O2 +HOCH2CH2O2 +NO3CH2CO3 +HOCH2CO3 +HCOCO3 diff --git a/tests/model_tests/spec_model_kpp/configuration/photolysisConstant.config b/tests/model_tests/spec_model_kpp/configuration/photolysisConstant.config new file mode 100644 index 000000000..e69de29bb diff --git a/tests/model_tests/spec_model_kpp/configuration/photolysisConstrained.config b/tests/model_tests/spec_model_kpp/configuration/photolysisConstrained.config new file mode 100644 index 000000000..e69de29bb diff --git a/tests/model_tests/spec_model_kpp/configuration/solver.parameters b/tests/model_tests/spec_model_kpp/configuration/solver.parameters new file mode 100644 index 000000000..988f4341d --- /dev/null +++ b/tests/model_tests/spec_model_kpp/configuration/solver.parameters @@ -0,0 +1,9 @@ +1.0e-03 atol +1.0e-04 rtol +1.0e-04 delta main +100 lookback +100 maximum solver step size (seconds) +100000 maximum number of steps in solver +2 solver type (1 = spgmr, 2 = spgmr + banded preconditioner, 3 = dense) +750 banded preconditioner upper bandwidth +750 banded preconditioner lower bandwidth diff --git a/tests/model_tests/spec_model_kpp/configuration/speciesConstant.config b/tests/model_tests/spec_model_kpp/configuration/speciesConstant.config new file mode 100644 index 000000000..e69de29bb diff --git a/tests/model_tests/spec_model_kpp/configuration/speciesConstrained.config b/tests/model_tests/spec_model_kpp/configuration/speciesConstrained.config new file mode 100644 index 000000000..e69de29bb diff --git a/tests/model_tests/spec_model_kpp/output/environmentVariables.output.cmp b/tests/model_tests/spec_model_kpp/output/environmentVariables.output.cmp new file mode 100644 index 000000000..9a56868ba --- /dev/null +++ b/tests/model_tests/spec_model_kpp/output/environmentVariables.output.cmp @@ -0,0 +1,31 @@ + t M TEMP PRESS RH H2O DEC BLHEIGHT DILUTE JFAC ROOF ASA RO2 + 2.430000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.361190E+005 + 2.520000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.576339E+005 + 2.610000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.667814E+005 + 2.700000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.702597E+005 + 2.790000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.706124E+005 + 2.880000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.687862E+005 + 2.970000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.651398E+005 + 3.060000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.598315E+005 + 3.150000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.529670E+005 + 3.240000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.446559E+005 + 3.330000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.350340E+005 + 3.420000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.242717E+005 + 3.510000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.125772E+005 + 3.600000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.001954E+005 + 3.690000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 8.740487E+004 + 3.780000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 7.451247E+004 + 3.870000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 6.184493E+004 + 3.960000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 4.973854E+004 + 4.050000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 3.852646E+004 + 4.140000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 2.852398E+004 + 4.230000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 2.001123E+004 + 4.320000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.321170E+004 + 4.410000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 8.261247E+003 + 4.500000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 5.153759E+003 + 4.590000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 3.752608E+003 + 4.680000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.445055E+004 + 4.770000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 5.287084E+004 + 4.860000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 8.789880E+004 + 4.950000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.081390E+005 + 5.040000E+004 2.361390E+019 2.914500E+002 9.502000E+002 6.740000E+001 3.575722E+017 -2.913681E-001 -1.000000E+000 -1.000000E+000 1.000000E+000 1.000000E+000 -1.000000E+000 1.172365E+005 diff --git a/tests/model_tests/spec_model_kpp/output/errors.output.cmp b/tests/model_tests/spec_model_kpp/output/errors.output.cmp new file mode 100644 index 000000000..5dfb20c54 --- /dev/null +++ b/tests/model_tests/spec_model_kpp/output/errors.output.cmp @@ -0,0 +1,2 @@ +Number of fixed constrained species: 0 +Total number of constrained species: 0 diff --git a/tests/model_tests/spec_model_kpp/output/finalModelState.output.cmp b/tests/model_tests/spec_model_kpp/output/finalModelState.output.cmp new file mode 100644 index 000000000..ec5b65ada --- /dev/null +++ b/tests/model_tests/spec_model_kpp/output/finalModelState.output.cmp @@ -0,0 +1,49 @@ + O -4.0494396030697462E-021 + O3 586981542392.37390 + NO 1251605.7157716851 + NO2 91074099574.549210 + NO3 535797093.28700304 + O1D 2.3727372639763986E-108 + N2O5 3054963450.8051767 + OH 612.60917900819550 + HO2 336941.82610936131 + H2 450871027.17203808 + CO 4728287597903.9805 + H2O2 13183359.679675881 + HONO 101404582.80779153 + HNO3 41867636814.745773 + HO2NO2 873178.13819299405 + SO2 0.0000000000000000 + SO3 0.0000000000000000 + HSO3 0.0000000000000000 + NA 11992023880.385431 + SA 0.0000000000000000 + C2H4 1568810599.2381744 + ETHENO3O2 109114.32844104653 + HCHO 745699463.58192408 + CH2OOA 1.1987690855148642E-003 + HOCH2CH2O2 5838.6420691248013 + ETHO2HNO3 732.13035621820552 + ETHENO3O 2.6520035887889360E-003 + ETHOHNO3 5572918.4273867393 + NO3CH2CHO 229732.68694732443 + CH2OO 77.449109122352752 + HYETHO2H 149530.15203548866 + HOCH2CH2O 4.6070381322000347E-005 + ETHGLY 67.044824468982071 + HOCH2CHO 195453655.18136734 + NO3CH2CO3 0.41925992666082729 + HCOCH2O 5.8125687095078119E-092 + HCOOH 9331869.7671197038 + HOCH2CO3 2281.9480432954092 + GLYOX 7174284.7459312333 + NO3CH2CO2H 4.3122754164834918E-003 + NO3CH2CO3H 1.0062506192893114E-002 + NO3CH2PAN 364.43357381220648 + HOCH2CO2H 1082.6952080636470 + HOCH2CO3H 2590.2260616378785 + PHAN 11073143.332720775 + HCOCO 7.9480348078845545E-008 + HCOCO3 1.1322657325687413 + HCOCO2H 1.1247958033479410 + HCOCO3H 6.1703246183165446 diff --git a/tests/model_tests/spec_model_kpp/output/jacobian.output.cmp b/tests/model_tests/spec_model_kpp/output/jacobian.output.cmp new file mode 100644 index 000000000..e69de29bb diff --git a/tests/model_tests/spec_model_kpp/output/lossRates.output.cmp b/tests/model_tests/spec_model_kpp/output/lossRates.output.cmp new file mode 100644 index 000000000..f75623af8 --- /dev/null +++ b/tests/model_tests/spec_model_kpp/output/lossRates.output.cmp @@ -0,0 +1,351 @@ + time speciesNumber speciesName reactionNumber rate reaction + 2.700000E+004 8 OH 14 2.215678E+005 OH+O3=HO2 + 2.700000E+004 8 OH 15 1.111119E+000 OH+H2=HO2 + 2.700000E+004 8 OH 16 5.682220E+006 OH+CO=HO2 + 2.700000E+004 8 OH 17 2.363295E+001 OH+H2O2=HO2 + 2.700000E+004 8 OH 19 6.369222E+003 OH+HO2= + 2.700000E+004 8 OH 21 3.388006E+006 OH+NO=HONO + 2.700000E+004 8 OH 22 3.873670E+006 OH+NO2=HNO3 + 2.700000E+004 8 OH 23 7.422233E+001 OH+NO3=HO2+NO2 + 2.700000E+004 8 OH 26 3.954937E+002 OH+HO2NO2=NO2 + 2.700000E+004 8 OH 28 5.479423E+004 OH+HONO=NO2 + 2.700000E+004 8 OH 29 1.097700E+004 OH+HNO3=NO3 + 2.700000E+004 8 OH 31 0.000000E+000 OH+SO2=HSO3 + 2.700000E+004 8 OH 48 1.016890E+005 C2H4+OH=HOCH2CH2O2 + 2.700000E+004 8 OH 58 1.871710E+004 OH+HCHO=HO2+CO + 2.700000E+004 8 OH 69 2.685708E-006 ETHO2HNO3+OH=ETHENO3O2 + 2.700000E+004 8 OH 70 1.193158E-006 ETHO2HNO3+OH=NO3CH2CHO+OH + 2.700000E+004 8 OH 74 7.532236E+000 ETHOHNO3+OH=HOCH2CHO+NO2 + 2.700000E+004 8 OH 76 1.311110E-002 NO3CH2CHO+OH=NO3CH2CO3 + 2.700000E+004 8 OH 84 1.073046E+000 HYETHO2H+OH=HOCH2CH2O2 + 2.700000E+004 8 OH 85 4.060893E+000 HYETHO2H+OH=HOCH2CHO+OH + 2.700000E+004 8 OH 89 2.093661E-003 ETHGLY+OH=HOCH2CHO+HO2 + 2.700000E+004 8 OH 91 8.973134E+002 HOCH2CHO+OH=GLYOX+HO2 + 2.700000E+004 8 OH 92 3.589254E+003 HOCH2CHO+OH=HOCH2CO3 + 2.700000E+004 8 OH 103 4.150924E+000 HCOOH+OH=HO2 + 2.700000E+004 8 OH 116 6.761154E+001 OH+GLYOX=HCOCO + 2.700000E+004 8 OH 117 2.513757E-010 NO3CH2CO2H+OH=HCHO+NO2 + 2.700000E+004 8 OH 118 1.415888E-008 NO3CH2CO3H+OH=NO3CH2CO3 + 2.700000E+004 8 OH 120 4.351784E-007 NO3CH2PAN+OH=HCHO+CO+NO2+NO2 + 2.700000E+004 8 OH 122 9.829208E-004 HOCH2CO2H+OH=HCHO+HO2 + 2.700000E+004 8 OH 123 5.821209E-003 HOCH2CO3H+OH=HOCH2CO3 + 2.700000E+004 8 OH 125 1.055317E+001 PHAN+OH=HCHO+CO+NO2 + 2.700000E+004 8 OH 139 4.949326E-006 OH+HCOCO2H=CO+HO2 + 2.700000E+004 8 OH 141 1.803806E-005 OH+HCOCO3H=HCOCO3 + 2.700000E+004 9 HO2 18 1.268479E+004 HO2+O3=OH + 2.700000E+004 9 HO2 19 6.369222E+003 OH+HO2= + 2.700000E+004 9 HO2 20 1.336506E+003 HO2+HO2=H2O2 + 2.700000E+004 9 HO2 24 6.034940E+006 HO2+NO=OH+NO2 + 2.700000E+004 9 HO2 25 5.856478E+005 HO2+NO2=HO2NO2 + 2.700000E+004 9 HO2 27 2.994469E+001 HO2+NO3=OH+NO2 + 2.700000E+004 9 HO2 49 4.911132E-005 ETHENO3O2+HO2=ETHO2HNO3 + 2.700000E+004 9 HO2 62 2.375527E+001 HOCH2CH2O2+HO2=HYETHO2H + 2.700000E+004 9 HO2 94 5.037549E-007 NO3CH2CO3+HO2=HCHO+NO2+OH + 2.700000E+004 9 HO2 95 1.717346E-007 NO3CH2CO3+HO2=NO3CH2CO2H+O3 + 2.700000E+004 9 HO2 96 4.694080E-007 NO3CH2CO3+HO2=NO3CH2CO3H + 2.700000E+004 9 HO2 104 1.366702E-001 HOCH2CO3+HO2=HO2+HCHO+OH + 2.700000E+004 9 HO2 105 4.659212E-002 HOCH2CO3+HO2=HOCH2CO2H+O3 + 2.700000E+004 9 HO2 106 1.273518E-001 HOCH2CO3+HO2=HOCH2CO3H + 2.700000E+004 9 HO2 130 8.327974E-005 HCOCO3+HO2=HCOCO2H+O3 + 2.700000E+004 9 HO2 131 2.276313E-004 HCOCO3+HO2=HCOCO3H + 2.700000E+004 9 HO2 132 2.442872E-004 HCOCO3+HO2=HO2+CO+OH + 3.060000E+004 8 OH 14 2.125165E+005 OH+O3=HO2 + 3.060000E+004 8 OH 15 3.803104E+000 OH+H2=HO2 + 3.060000E+004 8 OH 16 5.371256E+006 OH+CO=HO2 + 3.060000E+004 8 OH 17 5.041078E+001 OH+H2O2=HO2 + 3.060000E+004 8 OH 19 6.511413E+003 OH+HO2= + 3.060000E+004 8 OH 21 2.833493E+006 OH+NO=HONO + 3.060000E+004 8 OH 22 3.407257E+006 OH+NO2=HNO3 + 3.060000E+004 8 OH 23 7.473717E+001 OH+NO3=HO2+NO2 + 3.060000E+004 8 OH 26 3.753668E+002 OH+HO2NO2=NO2 + 3.060000E+004 8 OH 28 4.687782E+004 OH+HONO=NO2 + 3.060000E+004 8 OH 29 2.103379E+004 OH+HNO3=NO3 + 3.060000E+004 8 OH 31 0.000000E+000 OH+SO2=HSO3 + 3.060000E+004 8 OH 48 8.279084E+004 C2H4+OH=HOCH2CH2O2 + 3.060000E+004 8 OH 58 2.909829E+004 OH+HCHO=HO2+CO + 3.060000E+004 8 OH 69 5.521091E-006 ETHO2HNO3+OH=ETHENO3O2 + 3.060000E+004 8 OH 70 2.452812E-006 ETHO2HNO3+OH=NO3CH2CHO+OH + 3.060000E+004 8 OH 74 1.406375E+001 ETHOHNO3+OH=HOCH2CHO+NO2 + 3.060000E+004 8 OH 76 1.868051E-002 NO3CH2CHO+OH=NO3CH2CO3 + 3.060000E+004 8 OH 84 2.079816E+000 HYETHO2H+OH=HOCH2CH2O2 + 3.060000E+004 8 OH 85 7.870969E+000 HYETHO2H+OH=HOCH2CHO+OH + 3.060000E+004 8 OH 89 3.859513E-003 ETHGLY+OH=HOCH2CHO+HO2 + 3.060000E+004 8 OH 91 1.487621E+003 HOCH2CHO+OH=GLYOX+HO2 + 3.060000E+004 8 OH 92 5.950482E+003 HOCH2CHO+OH=HOCH2CO3 + 3.060000E+004 8 OH 103 7.295505E+000 HCOOH+OH=HO2 + 3.060000E+004 8 OH 116 2.180447E+002 OH+GLYOX=HCOCO + 3.060000E+004 8 OH 117 1.023630E-009 NO3CH2CO2H+OH=HCHO+NO2 + 3.060000E+004 8 OH 118 5.613722E-008 NO3CH2CO3H+OH=NO3CH2CO3 + 3.060000E+004 8 OH 120 1.258655E-006 NO3CH2PAN+OH=HCHO+CO+NO2+NO2 + 3.060000E+004 8 OH 122 4.619564E-003 HOCH2CO2H+OH=HCHO+HO2 + 3.060000E+004 8 OH 123 2.670284E-002 HOCH2CO3H+OH=HOCH2CO3 + 3.060000E+004 8 OH 125 3.598297E+001 PHAN+OH=HCHO+CO+NO2 + 3.060000E+004 8 OH 139 3.788601E-005 OH+HCOCO2H=CO+HO2 + 3.060000E+004 8 OH 141 1.471588E-004 OH+HCOCO3H=HCOCO3 + 3.060000E+004 9 HO2 18 1.380405E+004 HO2+O3=OH + 3.060000E+004 9 HO2 19 6.511413E+003 OH+HO2= + 3.060000E+004 9 HO2 20 1.550234E+003 HO2+HO2=H2O2 + 3.060000E+004 9 HO2 24 5.726488E+006 HO2+NO=OH+NO2 + 3.060000E+004 9 HO2 25 5.844620E+005 HO2+NO2=HO2NO2 + 3.060000E+004 9 HO2 27 3.421050E+001 HO2+NO3=OH+NO2 + 3.060000E+004 9 HO2 49 5.461552E-005 ETHENO3O2+HO2=ETHO2HNO3 + 3.060000E+004 9 HO2 62 2.364376E+001 HOCH2CH2O2+HO2=HYETHO2H + 3.060000E+004 9 HO2 94 9.395930E-007 NO3CH2CO3+HO2=HCHO+NO2+OH + 3.060000E+004 9 HO2 95 3.203158E-007 NO3CH2CO3+HO2=NO3CH2CO2H+O3 + 3.060000E+004 9 HO2 96 8.755298E-007 NO3CH2CO3+HO2=NO3CH2CO3H + 3.060000E+004 9 HO2 104 2.946403E-001 HOCH2CO3+HO2=HO2+HCHO+OH + 3.060000E+004 9 HO2 105 1.004456E-001 HOCH2CO3+HO2=HOCH2CO2H+O3 + 3.060000E+004 9 HO2 106 2.745512E-001 HOCH2CO3+HO2=HOCH2CO3H + 3.060000E+004 9 HO2 130 3.231464E-004 HCOCO3+HO2=HCOCO2H+O3 + 3.060000E+004 9 HO2 131 8.832669E-004 HCOCO3+HO2=HCOCO3H + 3.060000E+004 9 HO2 132 9.478962E-004 HCOCO3+HO2=HO2+CO+OH + 3.420000E+004 8 OH 14 1.633187E+005 OH+O3=HO2 + 3.420000E+004 8 OH 15 5.422633E+000 OH+H2=HO2 + 3.420000E+004 8 OH 16 4.080574E+006 OH+CO=HO2 + 3.420000E+004 8 OH 17 5.734272E+001 OH+H2O2=HO2 + 3.420000E+004 8 OH 19 4.333452E+003 OH+HO2= + 3.420000E+004 8 OH 21 1.882975E+006 OH+NO=HONO + 3.420000E+004 8 OH 22 2.487070E+006 OH+NO2=HNO3 + 3.420000E+004 8 OH 23 6.256677E+001 OH+NO3=HO2+NO2 + 3.420000E+004 8 OH 26 2.397265E+002 OH+HO2NO2=NO2 + 3.420000E+004 8 OH 28 2.702917E+004 OH+HONO=NO2 + 3.420000E+004 8 OH 29 2.231291E+004 OH+HNO3=NO3 + 3.420000E+004 8 OH 31 0.000000E+000 OH+SO2=HSO3 + 3.420000E+004 8 OH 48 5.532093E+004 C2H4+OH=HOCH2CH2O2 + 3.420000E+004 8 OH 58 2.558343E+004 OH+HCHO=HO2+CO + 3.420000E+004 8 OH 69 6.395023E-006 ETHO2HNO3+OH=ETHENO3O2 + 3.420000E+004 8 OH 70 2.841066E-006 ETHO2HNO3+OH=NO3CH2CHO+OH + 3.420000E+004 8 OH 74 1.455981E+001 ETHOHNO3+OH=HOCH2CHO+NO2 + 3.420000E+004 8 OH 76 1.753639E-002 NO3CH2CHO+OH=NO3CH2CO3 + 3.420000E+004 8 OH 84 2.049504E+000 HYETHO2H+OH=HOCH2CH2O2 + 3.420000E+004 8 OH 85 7.756254E+000 HYETHO2H+OH=HOCH2CHO+OH + 3.420000E+004 8 OH 89 3.652461E-003 ETHGLY+OH=HOCH2CHO+HO2 + 3.420000E+004 8 OH 91 1.387170E+003 HOCH2CHO+OH=GLYOX+HO2 + 3.420000E+004 8 OH 92 5.548681E+003 HOCH2CHO+OH=HOCH2CO3 + 3.420000E+004 8 OH 103 7.779484E+000 HCOOH+OH=HO2 + 3.420000E+004 8 OH 116 2.685248E+002 OH+GLYOX=HCOCO + 3.420000E+004 8 OH 117 1.567711E-009 NO3CH2CO2H+OH=HCHO+NO2 + 3.420000E+004 8 OH 118 8.390670E-008 NO3CH2CO3H+OH=NO3CH2CO3 + 3.420000E+004 8 OH 120 1.539667E-006 NO3CH2PAN+OH=HCHO+CO+NO2+NO2 + 3.420000E+004 8 OH 122 7.350617E-003 HOCH2CO2H+OH=HCHO+HO2 + 3.420000E+004 8 OH 123 4.152004E-002 HOCH2CO3H+OH=HOCH2CO3 + 3.420000E+004 8 OH 125 4.649251E+001 PHAN+OH=HCHO+CO+NO2 + 3.420000E+004 8 OH 139 6.539885E-005 OH+HCOCO2H=CO+HO2 + 3.420000E+004 8 OH 141 2.761873E-004 OH+HCOCO3H=HCOCO3 + 3.420000E+004 9 HO2 18 1.214561E+004 HO2+O3=OH + 3.420000E+004 9 HO2 19 4.333452E+003 OH+HO2= + 3.420000E+004 9 HO2 20 1.181205E+003 HO2+HO2=H2O2 + 3.420000E+004 9 HO2 24 4.356926E+006 HO2+NO=OH+NO2 + 3.420000E+004 9 HO2 25 4.884371E+005 HO2+NO2=HO2NO2 + 3.420000E+004 9 HO2 27 3.278958E+001 HO2+NO3=OH+NO2 + 3.420000E+004 9 HO2 49 5.263457E-005 ETHENO3O2+HO2=ETHO2HNO3 + 3.420000E+004 9 HO2 62 1.582247E+001 HOCH2CH2O2+HO2=HYETHO2H + 3.420000E+004 9 HO2 94 9.459267E-007 NO3CH2CO3+HO2=HCHO+NO2+OH + 3.420000E+004 9 HO2 95 3.224750E-007 NO3CH2CO3+HO2=NO3CH2CO2H+O3 + 3.420000E+004 9 HO2 96 8.814317E-007 NO3CH2CO3+HO2=NO3CH2CO3H + 3.420000E+004 9 HO2 104 2.960771E-001 HOCH2CO3+HO2=HO2+HCHO+OH + 3.420000E+004 9 HO2 105 1.009354E-001 HOCH2CO3+HO2=HOCH2CO2H+O3 + 3.420000E+004 9 HO2 106 2.758900E-001 HOCH2CO3+HO2=HOCH2CO3H + 3.420000E+004 9 HO2 130 3.846465E-004 HCOCO3+HO2=HCOCO2H+O3 + 3.420000E+004 9 HO2 131 1.051367E-003 HCOCO3+HO2=HCOCO3H + 3.420000E+004 9 HO2 132 1.128296E-003 HCOCO3+HO2=HO2+CO+OH + 3.780000E+004 8 OH 14 9.026490E+004 OH+O3=HO2 + 3.780000E+004 8 OH 15 4.234773E+000 OH+H2=HO2 + 3.780000E+004 8 OH 16 2.246608E+006 OH+CO=HO2 + 3.780000E+004 8 OH 17 3.818066E+001 OH+H2O2=HO2 + 3.780000E+004 8 OH 19 1.543261E+003 OH+HO2= + 3.780000E+004 8 OH 21 8.897594E+005 OH+NO=HONO + 3.780000E+004 8 OH 22 1.388797E+006 OH+NO2=HNO3 + 3.780000E+004 8 OH 23 4.027012E+001 OH+NO3=HO2+NO2 + 3.780000E+004 8 OH 26 8.668264E+001 OH+HO2NO2=NO2 + 3.780000E+004 8 OH 28 9.107035E+003 OH+HONO=NO2 + 3.780000E+004 8 OH 29 1.442048E+004 OH+HNO3=NO3 + 3.780000E+004 8 OH 31 0.000000E+000 OH+SO2=HSO3 + 3.780000E+004 8 OH 48 2.793823E+004 C2H4+OH=HOCH2CH2O2 + 3.780000E+004 8 OH 58 1.426505E+004 OH+HCHO=HO2+CO + 3.780000E+004 8 OH 69 4.576534E-006 ETHO2HNO3+OH=ETHENO3O2 + 3.780000E+004 8 OH 70 2.033181E-006 ETHO2HNO3+OH=NO3CH2CHO+OH + 3.780000E+004 8 OH 74 9.274144E+000 ETHOHNO3+OH=HOCH2CHO+NO2 + 3.780000E+004 8 OH 76 1.198280E-002 NO3CH2CHO+OH=NO3CH2CO3 + 3.780000E+004 8 OH 84 1.192608E+000 HYETHO2H+OH=HOCH2CH2O2 + 3.780000E+004 8 OH 85 4.513372E+000 HYETHO2H+OH=HOCH2CHO+OH + 3.780000E+004 8 OH 89 2.091059E-003 ETHGLY+OH=HOCH2CHO+HO2 + 3.780000E+004 8 OH 91 8.191963E+002 HOCH2CHO+OH=GLYOX+HO2 + 3.780000E+004 8 OH 92 3.276785E+003 HOCH2CHO+OH=HOCH2CO3 + 3.780000E+004 8 OH 103 5.393641E+000 HCOOH+OH=HO2 + 3.780000E+004 8 OH 116 1.719638E+002 OH+GLYOX=HCOCO + 3.780000E+004 8 OH 117 1.200507E-009 NO3CH2CO2H+OH=HCHO+NO2 + 3.780000E+004 8 OH 118 6.299689E-008 NO3CH2CO3H+OH=NO3CH2CO3 + 3.780000E+004 8 OH 120 1.025220E-006 NO3CH2PAN+OH=HCHO+CO+NO2+NO2 + 3.780000E+004 8 OH 122 5.562444E-003 HOCH2CO2H+OH=HCHO+HO2 + 3.780000E+004 8 OH 123 3.078562E-002 HOCH2CO3H+OH=HOCH2CO3 + 3.780000E+004 8 OH 125 3.049391E+001 PHAN+OH=HCHO+CO+NO2 + 3.780000E+004 8 OH 139 4.257739E-005 OH+HCOCO2H=CO+HO2 + 3.780000E+004 8 OH 141 2.057370E-004 OH+HCOCO3H=HCOCO3 + 3.780000E+004 9 HO2 18 7.849545E+003 HO2+O3=OH + 3.780000E+004 9 HO2 19 1.543261E+003 OH+HO2= + 3.780000E+004 9 HO2 20 4.918958E+002 HO2+HO2=H2O2 + 3.780000E+004 9 HO2 24 2.407412E+006 HO2+NO=OH+NO2 + 3.780000E+004 9 HO2 25 3.189346E+005 HO2+NO2=HO2NO2 + 3.780000E+004 9 HO2 27 2.467842E+001 HO2+NO3=OH+NO2 + 3.780000E+004 9 HO2 49 4.233598E-005 ETHENO3O2+HO2=ETHO2HNO3 + 3.780000E+004 9 HO2 62 6.024627E+000 HOCH2CH2O2+HO2=HYETHO2H + 3.780000E+004 9 HO2 94 5.390768E-007 NO3CH2CO3+HO2=HCHO+NO2+OH + 3.780000E+004 9 HO2 95 1.837762E-007 NO3CH2CO3+HO2=NO3CH2CO2H+O3 + 3.780000E+004 9 HO2 96 5.023215E-007 NO3CH2CO3+HO2=NO3CH2CO3H + 3.780000E+004 9 HO2 104 1.519909E-001 HOCH2CO3+HO2=HO2+HCHO+OH + 3.780000E+004 9 HO2 105 5.181507E-002 HOCH2CO3+HO2=HOCH2CO2H+O3 + 3.780000E+004 9 HO2 106 1.416279E-001 HOCH2CO3+HO2=HOCH2CO3H + 3.780000E+004 9 HO2 130 1.740302E-004 HCOCO3+HO2=HCOCO2H+O3 + 3.780000E+004 9 HO2 131 4.756826E-004 HCOCO3+HO2=HCOCO3H + 3.780000E+004 9 HO2 132 5.104886E-004 HCOCO3+HO2=HO2+CO+OH + 4.140000E+004 8 OH 14 2.664537E+004 OH+O3=HO2 + 4.140000E+004 8 OH 15 1.517295E+000 OH+H2=HO2 + 4.140000E+004 8 OH 16 6.691021E+005 OH+CO=HO2 + 4.140000E+004 8 OH 17 1.230508E+001 OH+H2O2=HO2 + 4.140000E+004 8 OH 19 1.785144E+002 OH+HO2= + 4.140000E+004 8 OH 21 2.057102E+005 OH+NO=HONO + 4.140000E+004 8 OH 22 4.576551E+005 OH+NO2=HNO3 + 4.140000E+004 8 OH 23 1.664201E+001 OH+NO3=HO2+NO2 + 4.140000E+004 8 OH 26 1.115070E+001 OH+HO2NO2=NO2 + 4.140000E+004 8 OH 28 1.186397E+003 OH+HONO=NO2 + 4.140000E+004 8 OH 29 4.531830E+003 OH+HNO3=NO3 + 4.140000E+004 8 OH 31 0.000000E+000 OH+SO2=HSO3 + 4.140000E+004 8 OH 48 7.996526E+003 C2H4+OH=HOCH2CH2O2 + 4.140000E+004 8 OH 58 4.089875E+003 OH+HCHO=HO2+CO + 4.140000E+004 8 OH 69 1.604429E-006 ETHO2HNO3+OH=ETHENO3O2 + 4.140000E+004 8 OH 70 7.127872E-007 ETHO2HNO3+OH=NO3CH2CHO+OH + 4.140000E+004 8 OH 74 2.916113E+000 ETHOHNO3+OH=HOCH2CHO+NO2 + 4.140000E+004 8 OH 76 4.854036E-003 NO3CH2CHO+OH=NO3CH2CO3 + 4.140000E+004 8 OH 84 3.474026E-001 HYETHO2H+OH=HOCH2CH2O2 + 4.140000E+004 8 OH 85 1.314729E+000 HYETHO2H+OH=HOCH2CHO+OH + 4.140000E+004 8 OH 89 6.117110E-004 ETHGLY+OH=HOCH2CHO+HO2 + 4.140000E+004 8 OH 91 2.472522E+002 HOCH2CHO+OH=GLYOX+HO2 + 4.140000E+004 8 OH 92 9.890088E+002 HOCH2CHO+OH=HOCH2CO3 + 4.140000E+004 8 OH 103 1.917289E+000 HCOOH+OH=HO2 + 4.140000E+004 8 OH 116 4.948911E+001 OH+GLYOX=HCOCO + 4.140000E+004 8 OH 117 3.998627E-010 NO3CH2CO2H+OH=HCHO+NO2 + 4.140000E+004 8 OH 118 2.071119E-008 NO3CH2CO3H+OH=NO3CH2CO3 + 4.140000E+004 8 OH 120 3.060549E-007 NO3CH2PAN+OH=HCHO+CO+NO2+NO2 + 4.140000E+004 8 OH 122 1.819212E-003 HOCH2CO2H+OH=HCHO+HO2 + 4.140000E+004 8 OH 123 9.925793E-003 HOCH2CO3H+OH=HOCH2CO3 + 4.140000E+004 8 OH 125 8.623458E+000 PHAN+OH=HCHO+CO+NO2 + 4.140000E+004 8 OH 139 1.058268E-005 OH+HCOCO2H=CO+HO2 + 4.140000E+004 8 OH 141 6.242241E-005 OH+HCOCO3H=HCOCO3 + 4.140000E+004 9 HO2 18 3.015456E+003 HO2+O3=OH + 4.140000E+004 9 HO2 19 1.785144E+002 OH+HO2= + 4.140000E+004 9 HO2 20 7.404786E+001 HO2+HO2=H2O2 + 4.140000E+004 9 HO2 24 7.243348E+005 HO2+NO=OH+NO2 + 4.140000E+004 9 HO2 25 1.367751E+005 HO2+NO2=HO2NO2 + 4.140000E+004 9 HO2 27 1.327229E+001 HO2+NO3=OH+NO2 + 4.140000E+004 9 HO2 49 2.812677E-005 ETHENO3O2+HO2=ETHO2HNO3 + 4.140000E+004 9 HO2 62 8.636770E-001 HOCH2CH2O2+HO2=HYETHO2H + 4.140000E+004 9 HO2 94 1.416239E-007 NO3CH2CO3+HO2=HCHO+NO2+OH + 4.140000E+004 9 HO2 95 4.828089E-008 NO3CH2CO3+HO2=NO3CH2CO2H+O3 + 4.140000E+004 9 HO2 96 1.319678E-007 NO3CH2CO3+HO2=NO3CH2CO3H + 4.140000E+004 9 HO2 104 3.517456E-002 HOCH2CO3+HO2=HO2+HCHO+OH + 4.140000E+004 9 HO2 105 1.199133E-002 HOCH2CO3+HO2=HOCH2CO2H+O3 + 4.140000E+004 9 HO2 106 3.277630E-002 HOCH2CO3+HO2=HOCH2CO3H + 4.140000E+004 9 HO2 130 2.138957E-005 HCOCO3+HO2=HCOCO2H+O3 + 4.140000E+004 9 HO2 131 5.846481E-005 HCOCO3+HO2=HCOCO3H + 4.140000E+004 9 HO2 132 6.274272E-005 HCOCO3+HO2=HO2+CO+OH + 4.500000E+004 8 OH 14 1.117582E+003 OH+O3=HO2 + 4.500000E+004 8 OH 15 7.038078E-002 OH+H2=HO2 + 4.500000E+004 8 OH 16 2.909103E+004 OH+CO=HO2 + 4.500000E+004 8 OH 17 5.625891E-001 OH+H2O2=HO2 + 4.500000E+004 8 OH 19 1.104332E+000 OH+HO2= + 4.500000E+004 8 OH 21 2.854597E+003 OH+NO=HONO + 4.500000E+004 8 OH 22 2.601322E+004 OH+NO2=HNO3 + 4.500000E+004 8 OH 23 2.626629E+000 OH+NO3=HO2+NO2 + 4.500000E+004 8 OH 26 9.106435E-002 OH+HO2NO2=NO2 + 4.500000E+004 8 OH 28 1.835556E+001 OH+HONO=NO2 + 4.500000E+004 8 OH 29 1.958773E+002 OH+HNO3=NO3 + 4.500000E+004 8 OH 31 0.000000E+000 OH+SO2=HSO3 + 4.500000E+004 8 OH 48 3.442725E+002 C2H4+OH=HOCH2CH2O2 + 4.500000E+004 8 OH 58 1.735259E+002 OH+HCHO=HO2+CO + 4.500000E+004 8 OH 69 7.885252E-008 ETHO2HNO3+OH=ETHENO3O2 + 4.500000E+004 8 OH 70 3.503118E-008 ETHO2HNO3+OH=NO3CH2CHO+OH + 4.500000E+004 8 OH 74 1.280122E-001 ETHOHNO3+OH=HOCH2CHO+NO2 + 4.500000E+004 8 OH 76 3.689061E-004 NO3CH2CHO+OH=NO3CH2CO3 + 4.500000E+004 8 OH 84 1.491030E-002 HYETHO2H+OH=HOCH2CH2O2 + 4.500000E+004 8 OH 85 5.642735E-002 HYETHO2H+OH=HOCH2CHO+OH + 4.500000E+004 8 OH 89 2.637670E-005 ETHGLY+OH=HOCH2CHO+HO2 + 4.500000E+004 8 OH 91 1.072816E+001 HOCH2CHO+OH=GLYOX+HO2 + 4.500000E+004 8 OH 92 4.291263E+001 HOCH2CHO+OH=HOCH2CO3 + 4.500000E+004 8 OH 103 9.636254E-002 HCOOH+OH=HO2 + 4.500000E+004 8 OH 116 1.975886E+000 OH+GLYOX=HCOCO + 4.500000E+004 8 OH 117 1.772073E-011 NO3CH2CO2H+OH=HCHO+NO2 + 4.500000E+004 8 OH 118 9.138270E-010 NO3CH2CO3H+OH=NO3CH2CO3 + 4.500000E+004 8 OH 120 1.199847E-008 NO3CH2PAN+OH=HCHO+CO+NO2+NO2 + 4.500000E+004 8 OH 122 8.026572E-005 HOCH2CO2H+OH=HCHO+HO2 + 4.500000E+004 8 OH 123 4.358672E-004 HOCH2CO3H+OH=HOCH2CO3 + 4.500000E+004 8 OH 125 3.244876E-001 PHAN+OH=HCHO+CO+NO2 + 4.500000E+004 8 OH 139 3.828659E-007 OH+HCOCO2H=CO+HO2 + 4.500000E+004 8 OH 141 2.665504E-006 OH+HCOCO3H=HCOCO3 + 4.500000E+004 9 HO2 18 4.137510E+002 HO2+O3=OH + 4.500000E+004 9 HO2 19 1.104332E+000 OH+HO2= + 4.500000E+004 9 HO2 20 1.498536E+000 HO2+HO2=H2O2 + 4.500000E+004 9 HO2 24 3.288188E+004 HO2+NO=OH+NO2 + 4.500000E+004 9 HO2 25 2.543261E+004 HO2+NO2=HO2NO2 + 4.500000E+004 9 HO2 27 6.852786E+000 HO2+NO3=OH+NO2 + 4.500000E+004 9 HO2 49 4.429796E-005 ETHENO3O2+HO2=ETHO2HNO3 + 4.500000E+004 9 HO2 62 1.667213E-002 HOCH2CH2O2+HO2=HYETHO2H + 4.500000E+004 9 HO2 94 1.379017E-008 NO3CH2CO3+HO2=HCHO+NO2+OH + 4.500000E+004 9 HO2 95 4.701193E-009 NO3CH2CO3+HO2=NO3CH2CO2H+O3 + 4.500000E+004 9 HO2 96 1.284993E-008 NO3CH2CO3+HO2=NO3CH2CO3H + 4.500000E+004 9 HO2 104 3.580826E-003 HOCH2CO3+HO2=HO2+HCHO+OH + 4.500000E+004 9 HO2 105 1.220736E-003 HOCH2CO3+HO2=HOCH2CO2H+O3 + 4.500000E+004 9 HO2 106 3.336679E-003 HOCH2CO3+HO2=HOCH2CO3H + 4.500000E+004 9 HO2 130 1.564267E-007 HCOCO3+HO2=HCOCO2H+O3 + 4.500000E+004 9 HO2 131 4.275662E-007 HCOCO3+HO2=HCOCO3H + 4.500000E+004 9 HO2 132 4.588515E-007 HCOCO3+HO2=HO2+CO+OH + 4.860000E+004 8 OH 14 1.703092E+001 OH+O3=HO2 + 4.860000E+004 8 OH 15 1.101763E-003 OH+H2=HO2 + 4.860000E+004 8 OH 16 4.545722E+002 OH+CO=HO2 + 4.860000E+004 8 OH 17 9.227951E-003 OH+H2O2=HO2 + 4.860000E+004 8 OH 19 1.314492E-002 OH+HO2= + 4.860000E+004 8 OH 21 4.890807E-003 OH+NO=HONO + 4.860000E+004 8 OH 22 4.180098E+002 OH+NO2=HNO3 + 4.860000E+004 8 OH 23 3.415344E+000 OH+NO3=HO2+NO2 + 4.860000E+004 8 OH 26 1.085507E-003 OH+HO2NO2=NO2 + 4.860000E+004 8 OH 28 2.643749E-001 OH+HONO=NO2 + 4.860000E+004 8 OH 29 2.995848E+000 OH+HNO3=NO3 + 4.860000E+004 8 OH 31 0.000000E+000 OH+SO2=HSO3 + 4.860000E+004 8 OH 48 5.363426E+000 C2H4+OH=HOCH2CH2O2 + 4.860000E+004 8 OH 58 2.726972E+000 OH+HCHO=HO2+CO + 4.860000E+004 8 OH 69 3.357650E-007 ETHO2HNO3+OH=ETHENO3O2 + 4.860000E+004 8 OH 70 1.491676E-007 ETHO2HNO3+OH=NO3CH2CHO+OH + 4.860000E+004 8 OH 74 2.000562E-003 ETHOHNO3+OH=HOCH2CHO+NO2 + 4.860000E+004 8 OH 76 9.392756E-005 NO3CH2CHO+OH=NO3CH2CO3 + 4.860000E+004 8 OH 84 2.329644E-004 HYETHO2H+OH=HOCH2CH2O2 + 4.860000E+004 8 OH 85 8.816432E-004 HYETHO2H+OH=HOCH2CHO+OH + 4.860000E+004 8 OH 89 4.131091E-007 ETHGLY+OH=HOCH2CHO+HO2 + 4.860000E+004 8 OH 91 1.673896E-001 HOCH2CHO+OH=GLYOX+HO2 + 4.860000E+004 8 OH 92 6.695584E-001 HOCH2CHO+OH=HOCH2CO3 + 4.860000E+004 8 OH 103 1.701680E-003 HCOOH+OH=HO2 + 4.860000E+004 8 OH 116 3.057874E-002 OH+GLYOX=HCOCO + 4.860000E+004 8 OH 117 2.804944E-013 NO3CH2CO2H+OH=HCHO+NO2 + 4.860000E+004 8 OH 118 1.443879E-011 NO3CH2CO3H+OH=NO3CH2CO3 + 4.860000E+004 8 OH 120 3.728317E-010 NO3CH2PAN+OH=HCHO+CO+NO2+NO2 + 4.860000E+004 8 OH 122 1.258750E-006 HOCH2CO2H+OH=HCHO+HO2 + 4.860000E+004 8 OH 123 6.833394E-006 HOCH2CO3H+OH=HOCH2CO3 + 4.860000E+004 8 OH 125 5.115941E-003 PHAN+OH=HCHO+CO+NO2 + 4.860000E+004 8 OH 139 5.903464E-009 OH+HCOCO2H=CO+HO2 + 4.860000E+004 8 OH 141 4.164232E-008 OH+HCOCO3H=HCOCO3 + 4.860000E+004 9 HO2 18 3.073737E+002 HO2+O3=OH + 4.860000E+004 9 HO2 19 1.314492E-002 OH+HO2= + 4.860000E+004 9 HO2 20 8.695499E-001 HO2+HO2=H2O2 + 4.860000E+004 9 HO2 24 2.746385E+000 HO2+NO=OH+NO2 + 4.860000E+004 9 HO2 25 1.992289E+004 HO2+NO2=HO2NO2 + 4.860000E+004 9 HO2 27 4.343822E+002 HO2+NO3=OH+NO2 + 4.860000E+004 9 HO2 49 2.190066E-001 ETHENO3O2+HO2=ETHO2HNO3 + 4.860000E+004 9 HO2 62 1.793589E-002 HOCH2CH2O2+HO2=HYETHO2H + 4.860000E+004 9 HO2 94 1.495338E-007 NO3CH2CO3+HO2=HCHO+NO2+OH + 4.860000E+004 9 HO2 95 5.097743E-008 NO3CH2CO3+HO2=NO3CH2CO2H+O3 + 4.860000E+004 9 HO2 96 1.393383E-007 NO3CH2CO3+HO2=NO3CH2CO3H + 4.860000E+004 9 HO2 104 3.625706E-003 HOCH2CO3+HO2=HO2+HCHO+OH + 4.860000E+004 9 HO2 105 1.236036E-003 HOCH2CO3+HO2=HOCH2CO2H+O3 + 4.860000E+004 9 HO2 106 3.378499E-003 HOCH2CO3+HO2=HOCH2CO3H + 4.860000E+004 9 HO2 130 4.892009E-007 HCOCO3+HO2=HCOCO2H+O3 + 4.860000E+004 9 HO2 131 1.337149E-006 HCOCO3+HO2=HCOCO3H + 4.860000E+004 9 HO2 132 1.434989E-006 HCOCO3+HO2=HO2+CO+OH diff --git a/tests/model_tests/spec_model_kpp/output/mainSolverParameters.output.cmp b/tests/model_tests/spec_model_kpp/output/mainSolverParameters.output.cmp new file mode 100644 index 000000000..dbdd8d3a4 --- /dev/null +++ b/tests/model_tests/spec_model_kpp/output/mainSolverParameters.output.cmp @@ -0,0 +1,31 @@ + t currentStepSize previousStepSize LENRW LENIW NST NFE NETF NCFN NNI NSETUPS QU QCUR NOR LENRWLS LENIWLS LS_FLAG NFELS NJTV NPE NPS NLI NCFL + 2.43E+04 1.00000000E+002 6.65202318E+001 579 50 155 191 1 0 190 44 5 4 0 15546 105 0 278 278 3 447 278 0 + 2.52E+04 1.00000000E+002 1.00000000E+002 579 50 164 201 1 0 200 45 4 4 0 15546 105 0 304 304 3 483 304 0 + 2.61E+04 1.00000000E+002 1.00000000E+002 579 50 173 210 1 0 209 45 4 4 0 15546 105 0 322 322 3 510 322 0 + 2.70E+04 1.00000000E+002 1.00000000E+002 579 50 182 219 1 0 218 46 4 5 0 15546 105 0 333 333 4 530 333 0 + 2.79E+04 1.00000000E+002 1.00000000E+002 579 50 191 228 1 0 227 46 4 4 0 15546 105 0 342 342 4 548 342 0 + 2.88E+04 1.00000000E+002 1.00000000E+002 579 50 200 237 1 0 236 47 4 4 0 15546 105 0 350 350 4 565 350 0 + 2.97E+04 1.00000000E+002 1.00000000E+002 579 50 209 246 1 0 245 47 4 4 0 15546 105 0 360 360 4 584 360 0 + 3.06E+04 1.00000000E+002 1.00000000E+002 579 50 218 255 1 0 254 48 4 3 0 15546 105 0 375 375 4 608 375 0 + 3.15E+04 1.00000000E+002 1.00000000E+002 579 50 227 264 1 0 263 48 4 4 0 15546 105 0 389 389 4 631 389 0 + 3.24E+04 1.00000000E+002 1.00000000E+002 579 50 236 273 1 0 272 49 4 3 0 15546 105 0 403 403 5 654 403 0 + 3.33E+04 1.00000000E+002 1.00000000E+002 579 50 245 282 1 0 281 49 4 4 0 15546 105 0 411 411 5 671 411 0 + 3.42E+04 1.00000000E+002 1.00000000E+002 579 50 254 291 1 0 290 49 4 3 0 15546 105 0 420 420 5 689 420 0 + 3.51E+04 1.00000000E+002 1.00000000E+002 579 50 263 300 1 0 299 50 4 4 0 15546 105 0 429 429 5 707 429 0 + 3.60E+04 1.00000000E+002 1.00000000E+002 579 50 272 309 1 0 308 50 4 3 0 15546 105 0 439 439 5 726 439 0 + 3.69E+04 1.00000000E+002 1.00000000E+002 579 50 281 318 1 0 317 51 4 4 0 15546 105 0 448 448 5 744 448 0 + 3.78E+04 1.00000000E+002 1.00000000E+002 579 50 290 327 1 0 326 51 4 3 0 15546 105 0 460 460 5 765 460 0 + 3.87E+04 1.00000000E+002 1.00000000E+002 579 50 299 336 1 0 335 52 4 4 0 15546 105 0 470 470 6 784 470 0 + 3.96E+04 1.00000000E+002 1.00000000E+002 579 50 308 345 1 0 344 52 4 4 0 15546 105 0 478 478 6 801 478 0 + 4.05E+04 1.00000000E+002 1.00000000E+002 579 50 317 354 1 0 353 53 4 4 0 15546 105 0 487 487 6 819 487 0 + 4.14E+04 1.00000000E+002 1.00000000E+002 579 50 326 363 1 0 362 53 4 4 0 15546 105 0 497 497 6 838 497 0 + 4.23E+04 1.00000000E+002 1.00000000E+002 579 50 335 372 1 0 371 53 4 4 0 15546 105 0 510 510 6 860 510 0 + 4.32E+04 1.00000000E+002 1.00000000E+002 579 50 344 381 1 0 380 54 4 5 0 15546 105 0 528 528 6 887 528 0 + 4.41E+04 1.00000000E+002 1.00000000E+002 579 50 353 390 1 0 389 54 4 4 0 15546 105 0 561 561 6 929 561 0 + 4.50E+04 1.00000000E+002 1.00000000E+002 579 50 362 399 1 0 398 55 4 4 0 15546 105 0 590 590 7 967 590 0 + 4.59E+04 6.58728346E+001 6.58728346E+001 579 50 372 415 2 0 414 56 4 4 0 15546 105 0 644 644 7 1037 644 0 + 4.68E+04 2.50109551E+001 2.50109551E+001 579 50 390 441 4 0 440 58 4 4 0 15546 105 0 766 766 7 1185 766 0 + 4.77E+04 1.00000000E+002 1.00000000E+002 579 50 509 636 32 0 635 116 4 4 0 15546 105 0 959 959 9 1541 959 0 + 4.86E+04 1.00000000E+002 1.00000000E+002 579 50 518 645 32 0 644 116 5 5 0 15546 105 0 977 977 9 1568 977 0 + 4.95E+04 1.00000000E+002 1.00000000E+002 579 50 527 654 32 0 653 116 4 4 0 15546 105 0 992 992 9 1592 992 0 + 5.04E+04 1.00000000E+002 1.00000000E+002 579 50 536 663 32 0 662 117 4 4 0 15546 105 0 1001 1001 10 1610 1001 0 diff --git a/tests/model_tests/spec_model_kpp/output/photolysisRates.output.cmp b/tests/model_tests/spec_model_kpp/output/photolysisRates.output.cmp new file mode 100644 index 000000000..f5db7d64a --- /dev/null +++ b/tests/model_tests/spec_model_kpp/output/photolysisRates.output.cmp @@ -0,0 +1,31 @@ + t J1 J2 J3 J4 J5 J6 J7 J8 J11 J12 J13 J14 J15 J16 J17 J18 J19 J20 J21 J22 J23 J24 J31 J32 J33 J34 J35 J41 J51 J52 J53 J54 J55 J56 J61 + 2.430000E+004 3.663925E-005 4.384407E-004 7.764841E-006 8.855794E-003 2.221914E-002 1.535626E-001 1.967022E-003 6.703261E-007 3.210360E-005 4.905566E-005 4.730384E-006 1.972512E-005 1.959330E-005 1.175458E-005 5.412368E-005 1.089342E-006 1.089342E-006 5.586370E-004 5.937774E-007 3.899272E-006 1.785843E-006 1.785401E-006 5.572421E-005 8.401372E-006 2.745634E-005 1.241698E-004 2.668800E-004 5.708706E-006 1.131655E-006 1.334059E-006 1.751976E-006 2.925916E-006 8.183259E-006 3.097731E-005 5.714504E-004 + 2.520000E+004 3.666388E-005 4.384909E-004 7.767201E-006 8.857172E-003 2.222100E-002 1.535757E-001 1.967350E-003 6.706384E-007 3.211447E-005 4.906758E-005 4.732707E-006 1.973365E-005 1.960010E-005 1.175865E-005 5.414222E-005 1.089572E-006 1.089572E-006 5.587549E-004 5.941098E-007 3.901009E-006 1.786218E-006 1.785776E-006 5.572983E-005 8.402219E-006 2.746430E-005 1.241841E-004 2.669095E-004 5.710370E-006 1.132160E-006 1.334698E-006 1.752785E-006 2.927182E-006 8.186442E-006 3.099057E-005 5.715831E-004 + 2.610000E+004 3.635296E-005 4.378547E-004 7.737332E-006 8.839718E-003 2.219739E-002 1.534100E-001 1.963186E-003 6.666913E-007 3.197699E-005 4.891657E-005 4.703344E-006 1.962586E-005 1.951412E-005 1.170707E-005 5.390772E-005 1.086661E-006 1.086661E-006 5.572622E-004 5.899095E-007 3.879043E-006 1.781467E-006 1.781026E-006 5.565858E-005 8.391476E-006 2.736345E-005 1.240030E-004 2.665354E-004 5.689304E-006 1.125776E-006 1.326627E-006 1.742554E-006 2.911178E-006 8.146178E-006 3.082290E-005 5.699024E-004 + 2.700000E+004 3.571172E-005 4.365282E-004 7.675260E-006 8.803289E-003 2.214807E-002 1.530638E-001 1.954495E-003 6.585187E-007 3.169142E-005 4.860215E-005 4.642556E-006 1.940245E-005 1.933557E-005 1.159996E-005 5.342065E-005 1.080596E-006 1.080596E-006 5.541519E-004 5.812309E-007 3.833527E-006 1.771567E-006 1.771128E-006 5.550963E-005 8.369019E-006 2.715375E-005 1.236245E-004 2.657534E-004 5.645511E-006 1.112551E-006 1.309918E-006 1.721365E-006 2.878015E-006 8.062661E-006 3.047539E-005 5.664032E-004 + 2.790000E+004 3.475091E-005 4.345031E-004 7.581039E-006 8.747579E-003 2.207258E-002 1.525336E-001 1.941208E-003 6.461899E-007 3.125828E-005 4.812330E-005 4.550879E-006 1.906489E-005 1.906489E-005 1.143757E-005 5.268193E-005 1.071347E-006 1.071347E-006 5.494085E-004 5.681872E-007 3.764778E-006 1.756469E-006 1.756034E-006 5.528122E-005 8.334583E-006 2.683514E-005 1.230448E-004 2.645550E-004 5.579001E-006 1.092585E-006 1.284720E-006 1.689392E-006 2.827921E-006 7.936296E-006 2.995035E-005 5.610752E-004 + 2.880000E+004 3.348671E-005 4.317667E-004 7.454749E-006 8.672113E-003 2.197014E-002 1.518136E-001 1.923220E-003 6.298108E-007 3.067836E-005 4.747844E-005 4.429132E-006 1.861538E-005 1.870274E-005 1.122031E-005 5.169298E-005 1.058867E-006 1.058867E-006 5.430087E-004 5.509489E-007 3.673282E-006 1.736097E-006 1.735667E-006 5.497062E-005 8.287754E-006 2.640752E-005 1.222577E-004 2.629265E-004 5.489785E-006 1.066028E-006 1.251259E-006 1.646898E-006 2.761243E-006 7.767701E-006 2.925127E-005 5.539021E-004 + 2.970000E+004 3.194052E-005 4.283011E-004 7.296496E-006 8.576226E-003 2.183972E-002 1.508961E-001 1.900380E-003 6.095228E-007 2.995274E-005 4.666541E-005 4.278411E-006 1.805689E-005 1.825002E-005 1.094870E-005 5.045574E-005 1.043093E-006 1.043093E-006 5.349194E-004 5.297425E-007 3.559689E-006 1.710347E-006 1.709924E-006 5.457398E-005 8.227955E-006 2.587073E-005 1.212545E-004 2.608487E-004 5.377879E-006 1.033083E-006 1.209836E-006 1.594235E-006 2.678448E-006 7.557707E-006 2.838285E-005 5.448614E-004 + 3.060000E+004 3.013870E-005 4.240826E-004 7.106411E-006 8.459047E-003 2.167989E-002 1.497704E-001 1.872493E-003 5.855035E-007 2.908278E-005 4.568135E-005 4.100097E-006 1.739319E-005 1.770785E-005 1.062344E-005 4.897265E-005 1.023941E-006 1.023941E-006 5.250980E-004 5.048487E-007 3.424822E-006 1.679081E-006 1.678666E-006 5.408622E-005 8.154416E-006 2.522457E-005 1.200238E-004 2.582963E-004 5.243295E-006 9.940043E-007 1.160830E-006 1.531846E-006 2.580124E-006 7.307364E-006 2.735101E-005 5.339235E-004 + 3.150000E+004 2.811224E-005 4.190808E-004 6.884647E-006 8.319460E-003 2.148887E-002 1.484230E-001 1.839309E-003 5.579660E-007 2.807015E-005 4.452271E-005 3.895854E-006 1.662883E-005 1.707762E-005 1.024535E-005 4.724672E-005 1.001306E-006 1.001306E-006 5.134902E-004 4.765997E-007 3.269677E-006 1.642127E-006 1.641721E-006 5.350074E-005 8.066145E-006 2.446877E-005 1.185509E-004 2.552368E-004 5.086047E-006 9.491000E-007 1.104697E-006 1.460265E-006 2.466978E-006 7.017946E-006 2.616290E-005 5.210509E-004 + 3.240000E+004 2.589638E-005 4.132571E-004 6.631379E-006 8.156067E-003 2.126433E-002 1.468367E-001 1.800515E-003 5.271596E-007 2.691686E-005 4.318508E-005 3.667635E-006 1.576919E-005 1.636098E-005 9.815414E-006 4.528159E-005 9.750561E-007 9.750561E-007 5.000288E-004 4.453772E-007 3.095428E-006 1.599268E-006 1.598872E-006 5.280918E-005 7.961881E-006 2.360297E-005 1.168170E-004 2.516288E-004 4.906139E-006 8.987301E-007 1.041968E-006 1.380116E-006 2.339846E-006 6.690957E-006 2.482695E-005 5.061968E-004 + 3.330000E+004 2.353018E-005 4.065633E-004 6.346800E-006 7.967129E-003 2.100335E-002 1.449895E-001 1.755726E-003 4.933698E-007 2.562529E-005 4.166311E-005 3.417694E-006 1.482051E-005 1.555988E-005 9.334812E-006 4.308156E-005 9.450308E-007 9.450308E-007 4.846312E-004 4.116086E-007 2.903440E-006 1.550240E-006 1.549856E-006 5.200099E-005 7.840032E-006 2.262672E-005 1.147988E-004 2.474202E-004 4.703572E-006 8.433098E-007 9.732526E-007 1.292116E-006 2.199690E-006 6.328150E-006 2.335292E-005 4.893040E-004 + 3.420000E+004 2.105605E-005 3.989388E-004 6.031130E-006 7.750492E-003 2.070225E-002 1.428536E-001 1.704463E-003 4.569195E-007 2.419827E-005 3.995038E-005 3.148593E-006 1.378996E-005 1.467661E-005 8.804913E-006 4.065179E-005 9.110342E-007 9.110342E-007 4.671970E-004 3.757647E-007 2.695277E-006 1.494721E-006 1.494351E-006 5.106284E-005 7.698590E-006 2.153948E-005 1.124668E-004 2.425456E-004 4.478335E-006 7.833113E-007 8.992406E-007 1.197080E-006 2.047608E-006 5.931542E-006 2.175194E-005 4.703022E-004 + 3.510000E+004 1.851921E-005 3.903070E-004 5.684612E-006 7.503489E-003 2.035631E-002 1.403938E-001 1.646140E-003 4.181699E-007 2.263919E-005 3.803921E-005 2.863223E-006 1.268573E-005 1.371386E-005 8.227332E-006 3.799845E-005 8.728287E-007 8.728287E-007 4.476045E-004 3.383561E-007 2.472723E-006 1.432321E-006 1.431967E-006 4.997785E-005 7.535010E-006 2.034062E-005 1.097839E-004 2.369225E-004 4.230409E-006 7.192674E-007 8.207035E-007 1.095923E-006 1.884846E-006 5.503446E-006 2.003667E-005 4.491064E-004 + 3.600000E+004 1.596717E-005 3.805712E-004 5.307534E-006 7.222804E-003 1.995951E-002 1.375646E-001 1.580031E-003 3.775239E-007 2.095216E-005 3.592054E-005 2.564836E-006 1.151716E-005 1.267484E-005 7.603995E-006 3.512908E-005 8.301271E-007 8.301271E-007 4.257062E-004 2.999300E-007 2.237809E-006 1.362567E-006 1.362230E-006 4.872452E-005 7.346049E-006 1.902947E-005 1.067030E-004 2.304459E-004 3.959770E-006 6.517774E-007 7.385011E-007 9.896706E-007 1.712809E-006 5.046518E-006 1.822147E-005 4.256136E-004 + 3.690000E+004 1.344909E-005 3.696070E-004 4.900246E-006 6.904303E-003 1.950399E-002 1.343073E-001 1.505240E-003 3.354290E-007 1.914232E-005 3.358374E-005 2.257088E-006 1.029494E-005 1.156344E-005 6.937234E-006 3.205310E-005 7.825825E-007 7.825825E-007 4.013244E-004 2.610679E-007 1.992856E-006 1.284888E-006 1.284570E-006 4.727514E-005 7.127531E-006 1.760535E-005 1.031640E-004 2.229817E-004 3.666398E-006 5.815151E-007 6.535898E-007 8.794704E-007 1.533089E-006 4.563821E-006 1.632264E-005 3.996996E-004 + 3.780000E+004 1.101520E-005 3.572524E-004 4.463212E-006 6.542792E-003 1.897940E-002 1.305440E-001 1.420652E-003 2.923849E-007 1.721628E-005 3.101659E-005 1.944102E-006 9.031412E-006 1.038450E-005 6.229955E-006 2.878265E-005 7.297776E-007 7.297776E-007 3.742449E-004 2.223834E-007 1.740531E-006 1.198593E-006 1.198297E-006 4.559359E-005 6.874007E-006 1.606784E-005 9.908918E-005 2.143560E-004 3.350312E-006 5.092429E-007 5.670357E-007 7.666118E-007 1.347498E-006 4.058936E-006 1.435884E-005 3.712157E-004 + 3.870000E+004 8.716015E-006 3.432924E-004 3.997105E-006 6.131706E-003 1.837175E-002 1.261699E-001 1.324877E-003 2.489526E-007 1.518292E-005 2.820542E-005 1.630563E-006 7.741028E-006 9.144268E-006 5.485906E-006 2.533397E-005 6.712134E-007 6.712134E-007 3.442120E-004 1.845211E-007 1.483947E-006 1.102860E-006 1.102587E-006 4.363198E-005 6.578262E-006 1.441704E-005 9.437646E-005 2.043402E-004 3.011618E-006 4.358314E-007 4.800357E-007 6.525561E-007 1.158127E-006 3.536131E-006 1.235174E-005 3.399851E-004 + 3.960000E+004 6.601589E-006 3.274348E-004 3.502986E-006 5.662702E-003 1.766174E-002 1.210406E-001 1.216184E-003 2.057705E-007 1.305470E-005 2.513579E-005 1.321866E-006 6.441054E-006 7.851156E-006 4.710131E-006 2.172980E-005 6.063033E-007 6.063033E-007 3.109248E-004 1.481568E-007 1.226794E-006 9.967153E-007 9.964686E-007 4.132578E-005 6.230562E-006 1.265440E-005 8.888979E-005 1.926292E-004 2.650632E-006 3.622917E-007 3.939497E-007 5.389832E-007 9.674297E-007 3.000631E-006 1.032694E-005 3.058031E-004 + 4.050000E+004 4.720409E-006 3.092707E-004 2.982650E-006 5.125166E-003 1.682186E-002 1.149507E-001 1.092425E-003 1.635794E-007 1.084997E-005 2.179442E-005 1.024320E-006 5.152687E-006 6.517055E-006 3.909766E-006 1.800344E-005 5.343820E-007 5.343820E-007 2.740420E-004 1.140010E-007 9.735652E-007 8.790508E-007 8.788333E-007 3.858613E-005 5.817514E-006 1.078407E-005 8.244459E-005 1.788083E-004 2.268120E-006 2.898260E-007 3.103503E-007 4.278648E-007 7.783673E-007 2.459068E-006 8.315571E-006 2.684429E-004 + 4.140000E+004 3.117866E-006 2.882056E-004 2.439329E-006 4.505728E-003 1.581138E-002 1.075984E-001 9.510072E-004 1.232623E-007 8.597217E-006 1.817405E-005 7.454501E-007 3.902842E-006 5.159709E-006 3.095456E-006 1.420617E-005 4.547617E-007 4.547617E-007 2.332111E-004 8.280457E-008 7.298946E-007 7.487108E-007 7.485255E-007 3.528814E-005 5.320287E-006 8.815988E-006 7.478596E-005 1.623046E-004 1.865794E-006 2.199090E-007 2.311011E-007 3.215805E-007 5.946335E-007 1.920257E-006 6.356853E-006 2.276828E-004 + 4.230000E+004 1.833638E-006 2.633356E-004 1.879158E-006 3.788250E-003 1.456726E-002 9.852066E-002 7.890325E-004 8.590912E-008 6.342926E-006 1.428521E-005 4.944181E-007 2.727063E-006 3.807124E-006 2.284002E-006 1.042079E-005 3.669193E-007 3.669193E-007 1.881637E-004 5.536878E-008 5.030946E-007 6.047889E-007 6.046392E-007 3.125293E-005 4.711910E-006 6.772084E-006 6.555764E-005 1.423175E-004 1.447395E-006 1.544221E-007 1.584777E-007 2.231033E-007 4.210400E-007 1.396567E-006 4.502361E-006 1.833875E-004 + 4.320000E+004 8.967200E-007 2.332006E-004 1.314386E-006 2.955997E-003 1.298621E-002 8.697082E-002 6.040688E-004 5.291977E-008 4.166771E-006 1.018549E-005 2.824903E-007 1.674180E-006 2.506054E-006 1.503453E-006 6.787442E-006 2.710530E-007 2.710530E-007 1.390015E-004 3.255734E-008 3.029660E-007 4.475267E-007 4.474159E-007 2.622290E-005 3.953548E-006 4.700204E-006 5.426574E-005 1.177402E-004 1.021137E-006 9.587243E-008 9.534660E-008 1.362886E-007 2.641604E-007 9.064331E-007 2.823245E-006 1.357409E-004 + 4.410000E+004 3.150515E-007 1.952581E-004 7.708301E-007 2.002538E-003 1.088738E-002 7.168063E-002 3.971175E-004 2.615198E-008 2.210694E-006 6.053477E-006 1.231199E-007 8.128936E-007 1.338295E-006 8.028812E-007 3.551521E-006 1.697272E-007 1.697272E-007 8.703960E-005 1.529486E-008 1.427882E-007 2.809867E-007 2.809172E-007 1.984617E-005 2.992146E-006 2.705742E-006 4.028432E-005 8.718474E-005 6.055379E-007 4.772352E-008 4.537523E-008 6.626737E-008 1.333567E-007 4.789341E-007 1.421679E-006 8.592626E-005 + 4.500000E+004 5.376321E-008 1.446703E-004 3.052414E-007 9.772668E-004 7.934728E-003 5.044894E-002 1.833181E-004 8.008980E-009 7.253624E-007 2.372879E-006 2.945196E-008 2.349434E-007 4.474903E-007 2.684621E-007 1.134815E-006 7.273289E-008 7.273289E-008 3.729892E-005 4.468589E-009 3.910193E-008 1.210217E-007 1.209917E-007 1.180127E-005 1.779242E-006 1.021790E-006 2.321184E-005 4.983127E-005 2.435280E-007 1.465815E-008 1.294547E-008 1.956991E-008 4.182603E-008 1.608019E-007 4.423042E-007 3.817354E-005 + 4.590000E+004 1.169014E-009 7.564655E-005 3.828184E-008 1.741801E-004 3.792654E-003 2.196983E-002 2.856515E-005 6.324194E-010 5.735733E-008 2.648168E-007 1.232054E-009 1.508698E-008 3.771221E-008 2.262463E-008 8.397454E-008 9.869962E-009 9.869962E-009 5.061519E-006 3.562591E-010 2.211034E-009 1.662831E-008 1.662419E-008 3.324378E-006 5.012065E-007 1.103782E-007 6.127912E-006 1.278457E-005 3.128387E-008 1.133765E-009 8.589009E-010 1.391959E-009 3.357121E-009 1.457630E-008 3.450028E-008 5.895231E-006 + 4.680000E+004 7.376348E-027 9.390209E-008 5.124931E-018 1.455668E-013 7.073096E-007 1.143181E-006 4.631469E-015 3.778008E-021 2.471689E-020 1.952247E-018 1.711149E-024 2.479446E-021 4.720072E-020 2.831705E-020 1.553173E-020 5.754797E-019 5.754797E-019 2.951178E-016 1.724890E-020 8.091551E-023 1.132080E-018 1.131800E-018 5.397486E-013 8.137627E-014 1.373825E-018 5.394902E-013 6.868500E-013 4.528450E-018 3.372914E-021 5.858661E-022 1.777924E-021 1.263355E-020 1.217022E-019 7.922927E-020 3.271564E-015 + 4.770000E+004 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 + 4.860000E+004 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 + 4.950000E+004 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 + 5.040000E+004 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 diff --git a/tests/model_tests/spec_model_kpp/output/photolysisRatesParameters.output.cmp b/tests/model_tests/spec_model_kpp/output/photolysisRatesParameters.output.cmp new file mode 100644 index 000000000..e28e3adf1 --- /dev/null +++ b/tests/model_tests/spec_model_kpp/output/photolysisRatesParameters.output.cmp @@ -0,0 +1,31 @@ + t latitude longitude secx cosx lha sinld cosld eqtime + 2.340000E+004 -7.326000E+000 -7.244900E+001 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 + 2.430000E+004 -7.326000E+000 -7.244900E+001 1.014205E+000 9.859942E-001 -3.751712E-002 3.663024E-002 9.500325E-001 6.973437E-002 + 2.520000E+004 -7.326000E+000 -7.244900E+001 1.013898E+000 9.862922E-001 2.793273E-002 3.663024E-002 9.500325E-001 6.973437E-002 + 2.610000E+004 -7.326000E+000 -7.244900E+001 1.017787E+000 9.825235E-001 9.338258E-002 3.663024E-002 9.500325E-001 6.973437E-002 + 2.700000E+004 -7.326000E+000 -7.244900E+001 1.025952E+000 9.747044E-001 1.588324E-001 3.663024E-002 9.500325E-001 6.973437E-002 + 2.790000E+004 -7.326000E+000 -7.244900E+001 1.038564E+000 9.628682E-001 2.242823E-001 3.663024E-002 9.500325E-001 6.973437E-002 + 2.880000E+004 -7.326000E+000 -7.244900E+001 1.055893E+000 9.470658E-001 2.897321E-001 3.663024E-002 9.500325E-001 6.973437E-002 + 2.970000E+004 -7.326000E+000 -7.244900E+001 1.078324E+000 9.273648E-001 3.551820E-001 3.663024E-002 9.500325E-001 6.973437E-002 + 3.060000E+004 -7.326000E+000 -7.244900E+001 1.106379E+000 9.038495E-001 4.206318E-001 3.663024E-002 9.500325E-001 6.973437E-002 + 3.150000E+004 -7.326000E+000 -7.244900E+001 1.140744E+000 8.766206E-001 4.860817E-001 3.663024E-002 9.500325E-001 6.973437E-002 + 3.240000E+004 -7.326000E+000 -7.244900E+001 1.182320E+000 8.457948E-001 5.515315E-001 3.663024E-002 9.500325E-001 6.973437E-002 + 3.330000E+004 -7.326000E+000 -7.244900E+001 1.232280E+000 8.115040E-001 6.169814E-001 3.663024E-002 9.500325E-001 6.973437E-002 + 3.420000E+004 -7.326000E+000 -7.244900E+001 1.292165E+000 7.738951E-001 6.824312E-001 3.663024E-002 9.500325E-001 6.973437E-002 + 3.510000E+004 -7.326000E+000 -7.244900E+001 1.364016E+000 7.331291E-001 7.478810E-001 3.663024E-002 9.500325E-001 6.973437E-002 + 3.600000E+004 -7.326000E+000 -7.244900E+001 1.450578E+000 6.893806E-001 8.133309E-001 3.663024E-002 9.500325E-001 6.973437E-002 + 3.690000E+004 -7.326000E+000 -7.244900E+001 1.555605E+000 6.428369E-001 8.787807E-001 3.663024E-002 9.500325E-001 6.973437E-002 + 3.780000E+004 -7.326000E+000 -7.244900E+001 1.684360E+000 5.936973E-001 9.442306E-001 3.663024E-002 9.500325E-001 6.973437E-002 + 3.870000E+004 -7.326000E+000 -7.244900E+001 1.844432E+000 5.421723E-001 1.009680E+000 3.663024E-002 9.500325E-001 6.973437E-002 + 3.960000E+004 -7.326000E+000 -7.244900E+001 2.047156E+000 4.884825E-001 1.075130E+000 3.663024E-002 9.500325E-001 6.973437E-002 + 4.050000E+004 -7.326000E+000 -7.244900E+001 2.310228E+000 4.328578E-001 1.140580E+000 3.663024E-002 9.500325E-001 6.973437E-002 + 4.140000E+004 -7.326000E+000 -7.244900E+001 2.662858E+000 3.755363E-001 1.206030E+000 3.663024E-002 9.500325E-001 6.973437E-002 + 4.230000E+004 -7.326000E+000 -7.244900E+001 3.156928E+000 3.167636E-001 1.271480E+000 3.663024E-002 9.500325E-001 6.973437E-002 + 4.320000E+004 -7.326000E+000 -7.244900E+001 3.894212E+000 2.567914E-001 1.336930E+000 3.663024E-002 9.500325E-001 6.973437E-002 + 4.410000E+004 -7.326000E+000 -7.244900E+001 5.105261E+000 1.958764E-001 1.402380E+000 3.663024E-002 9.500325E-001 6.973437E-002 + 4.500000E+004 -7.326000E+000 -7.244900E+001 7.447156E+000 1.342794E-001 1.467829E+000 3.663024E-002 9.500325E-001 6.973437E-002 + 4.590000E+004 -7.326000E+000 -7.244900E+001 1.337170E+001 7.478478E-002 1.530624E+000 3.663024E-002 9.500325E-001 6.973437E-002 + 4.680000E+004 -7.326000E+000 -7.244900E+001 8.991746E+001 1.112131E-002 1.597650E+000 3.663024E-002 9.500325E-001 6.973437E-002 + 4.770000E+004 -7.326000E+000 -7.244900E+001 1.000000E+002 0.000000E+000 1.665852E+000 3.663024E-002 9.500325E-001 6.973437E-002 + 4.860000E+004 -7.326000E+000 -7.244900E+001 1.000000E+002 0.000000E+000 1.731302E+000 3.663024E-002 9.500325E-001 6.973437E-002 + 4.950000E+004 -7.326000E+000 -7.244900E+001 1.000000E+002 0.000000E+000 1.796751E+000 3.663024E-002 9.500325E-001 6.973437E-002 diff --git a/tests/model_tests/spec_model_kpp/output/productionRates.output.cmp b/tests/model_tests/spec_model_kpp/output/productionRates.output.cmp new file mode 100644 index 000000000..64278f19a --- /dev/null +++ b/tests/model_tests/spec_model_kpp/output/productionRates.output.cmp @@ -0,0 +1,379 @@ + time speciesNumber speciesName reactionNumber rate reaction + 2.700000E+004 8 OH 13 3.983258E+006 O1D=OH+OH + 2.700000E+004 8 OH 18 1.268479E+004 HO2+O3=OH + 2.700000E+004 8 OH 24 6.034940E+006 HO2+NO=OH+NO2 + 2.700000E+004 8 OH 27 2.994469E+001 HO2+NO3=OH+NO2 + 2.700000E+004 8 OH 38 4.100921E+001 H2O2=OH+OH + 2.700000E+004 8 OH 42 3.323675E+006 HONO=OH+NO + 2.700000E+004 8 OH 43 8.259176E+003 HNO3=OH+NO2 + 2.700000E+004 8 OH 61 2.532358E+002 CH2OOA=HO2+CO+OH + 2.700000E+004 8 OH 70 1.193158E-006 ETHO2HNO3+OH=NO3CH2CHO+OH + 2.700000E+004 8 OH 71 7.872377E-007 ETHO2HNO3=ETHENO3O+OH + 2.700000E+004 8 OH 85 4.060893E+000 HYETHO2H+OH=HOCH2CHO+OH + 2.700000E+004 8 OH 86 3.145324E-001 HYETHO2H=HOCH2CH2O+OH + 2.700000E+004 8 OH 94 5.037549E-007 NO3CH2CO3+HO2=HCHO+NO2+OH + 2.700000E+004 8 OH 104 1.366702E-001 HOCH2CO3+HO2=HO2+HCHO+OH + 2.700000E+004 8 OH 119 4.169127E-009 NO3CH2CO3H=HCHO+NO2+OH + 2.700000E+004 8 OH 124 1.005184E-003 HOCH2CO3H=HCHO+HO2+OH + 2.700000E+004 8 OH 128 3.861569E+001 HCOCO=CO+OH + 2.700000E+004 8 OH 132 2.442872E-004 HCOCO3+HO2=HO2+CO+OH + 2.700000E+004 8 OH 140 5.399627E-006 HCOCO3H=HO2+CO+OH + 2.700000E+004 9 HO2 14 2.215678E+005 OH+O3=HO2 + 2.700000E+004 9 HO2 15 1.111119E+000 OH+H2=HO2 + 2.700000E+004 9 HO2 16 5.682220E+006 OH+CO=HO2 + 2.700000E+004 9 HO2 17 2.363295E+001 OH+H2O2=HO2 + 2.700000E+004 9 HO2 23 7.422233E+001 OH+NO3=HO2+NO2 + 2.700000E+004 9 HO2 32 0.000000E+000 HSO3=HO2+SO3 + 2.700000E+004 9 HO2 45 5.846925E+005 HO2NO2=HO2+NO2 + 2.700000E+004 9 HO2 55 2.617402E+004 HCHO=CO+HO2+HO2 + 2.700000E+004 9 HO2 57 1.595827E-001 NO3+HCHO=HNO3+CO+HO2 + 2.700000E+004 9 HO2 58 1.871710E+004 OH+HCHO=HO2+CO + 2.700000E+004 9 HO2 61 2.532358E+002 CH2OOA=HO2+CO+OH + 2.700000E+004 9 HO2 73 2.464991E-001 ETHENO3O=NO3CH2CHO+HO2 + 2.700000E+004 9 HO2 87 7.281123E+004 HOCH2CH2O=HO2+HCHO+HCHO + 2.700000E+004 9 HO2 88 2.834978E+004 HOCH2CH2O=HO2+HOCH2CHO + 2.700000E+004 9 HO2 89 2.093661E-003 ETHGLY+OH=HOCH2CHO+HO2 + 2.700000E+004 9 HO2 91 8.973134E+002 HOCH2CHO+OH=GLYOX+HO2 + 2.700000E+004 9 HO2 93 3.284890E+003 HOCH2CHO=HO2+HCHO+HO2+CO + 2.700000E+004 9 HO2 102 9.567411E-002 HCOCH2O=HCHO+CO+HO2 + 2.700000E+004 9 HO2 103 4.150924E+000 HCOOH+OH=HO2 + 2.700000E+004 9 HO2 104 1.366702E-001 HOCH2CO3+HO2=HO2+HCHO+OH + 2.700000E+004 9 HO2 107 2.561827E+003 HOCH2CO3+NO=NO2+HO2+HCHO + 2.700000E+004 9 HO2 109 5.462221E-003 HOCH2CO3+NO3=NO2+HO2+HCHO + 2.700000E+004 9 HO2 110 2.316530E-003 HOCH2CO3=HCHO+HO2 + 2.700000E+004 9 HO2 113 6.983916E+001 GLYOX=CO+CO+HO2+HO2 + 2.700000E+004 9 HO2 122 9.829208E-004 HOCH2CO2H+OH=HCHO+HO2 + 2.700000E+004 9 HO2 124 1.005184E-003 HOCH2CO3H=HCHO+HO2+OH + 2.700000E+004 9 HO2 127 2.209216E+001 HCOCO=CO+CO+HO2 + 2.700000E+004 9 HO2 132 2.442872E-004 HCOCO3+HO2=HO2+CO+OH + 2.700000E+004 9 HO2 133 4.579063E+000 HCOCO3+NO=HO2+CO+NO2 + 2.700000E+004 9 HO2 134 2.313242E+000 HCOCO3+NO2=HO2+CO+NO3 + 2.700000E+004 9 HO2 135 9.763288E-006 HCOCO3+NO3=HO2+CO+NO2 + 2.700000E+004 9 HO2 136 4.140615E-006 HCOCO3=CO+HO2 + 2.700000E+004 9 HO2 138 1.883629E-005 HCOCO2H=HO2+HO2+CO + 2.700000E+004 9 HO2 139 4.949326E-006 OH+HCOCO2H=CO+HO2 + 2.700000E+004 9 HO2 140 5.399627E-006 HCOCO3H=HO2+CO+OH + 3.060000E+004 8 OH 13 3.396742E+006 O1D=OH+OH + 3.060000E+004 8 OH 18 1.380405E+004 HO2+O3=OH + 3.060000E+004 8 OH 24 5.726488E+006 HO2+NO=OH+NO2 + 3.060000E+004 8 OH 27 3.421050E+001 HO2+NO3=OH+NO2 + 3.060000E+004 8 OH 38 8.532345E+001 H2O2=OH+OH + 3.060000E+004 8 OH 42 2.869864E+006 HONO=OH+NO + 3.060000E+004 8 OH 43 1.482369E+004 HNO3=OH+NO2 + 3.060000E+004 8 OH 61 2.194666E+002 CH2OOA=HO2+CO+OH + 3.060000E+004 8 OH 70 2.452812E-006 ETHO2HNO3+OH=NO3CH2CHO+OH + 3.060000E+004 8 OH 71 1.583425E-006 ETHO2HNO3=ETHENO3O+OH + 3.060000E+004 8 OH 85 7.870969E+000 HYETHO2H+OH=HOCH2CHO+OH + 3.060000E+004 8 OH 86 5.964822E-001 HYETHO2H=HOCH2CH2O+OH + 3.060000E+004 8 OH 94 9.395930E-007 NO3CH2CO3+HO2=HCHO+NO2+OH + 3.060000E+004 8 OH 104 2.946403E-001 HOCH2CO3+HO2=HO2+HCHO+OH + 3.060000E+004 8 OH 119 1.617307E-008 NO3CH2CO3H=HCHO+NO2+OH + 3.060000E+004 8 OH 124 4.511439E-003 HOCH2CO3H=HCHO+HO2+OH + 3.060000E+004 8 OH 128 1.243110E+002 HCOCO=CO+OH + 3.060000E+004 8 OH 132 9.478962E-004 HCOCO3+HO2=HO2+CO+OH + 3.060000E+004 8 OH 140 4.263609E-005 HCOCO3H=HO2+CO+OH + 3.060000E+004 9 HO2 14 2.125165E+005 OH+O3=HO2 + 3.060000E+004 9 HO2 15 3.803104E+000 OH+H2=HO2 + 3.060000E+004 9 HO2 16 5.371256E+006 OH+CO=HO2 + 3.060000E+004 9 HO2 17 5.041078E+001 OH+H2O2=HO2 + 3.060000E+004 9 HO2 23 7.473717E+001 OH+NO3=HO2+NO2 + 3.060000E+004 9 HO2 32 0.000000E+000 HSO3=HO2+SO3 + 3.060000E+004 9 HO2 45 5.846126E+005 HO2NO2=HO2+NO2 + 3.060000E+004 9 HO2 55 3.933851E+004 HCHO=CO+HO2+HO2 + 3.060000E+004 9 HO2 57 2.772460E-001 NO3+HCHO=HNO3+CO+HO2 + 3.060000E+004 9 HO2 58 2.909829E+004 OH+HCHO=HO2+CO + 3.060000E+004 9 HO2 61 2.194666E+002 CH2OOA=HO2+CO+OH + 3.060000E+004 9 HO2 73 2.242522E-001 ETHENO3O=NO3CH2CHO+HO2 + 3.060000E+004 9 HO2 87 5.931359E+004 HOCH2CH2O=HO2+HCHO+HCHO + 3.060000E+004 9 HO2 88 2.309434E+004 HOCH2CH2O=HO2+HOCH2CHO + 3.060000E+004 9 HO2 89 3.859513E-003 ETHGLY+OH=HOCH2CHO+HO2 + 3.060000E+004 9 HO2 91 1.487621E+003 HOCH2CHO+OH=GLYOX+HO2 + 3.060000E+004 9 HO2 93 5.254143E+003 HOCH2CHO=HO2+HCHO+HO2+CO + 3.060000E+004 9 HO2 102 1.288851E-001 HCOCH2O=HCHO+CO+HO2 + 3.060000E+004 9 HO2 103 7.295505E+000 HCOOH+OH=HO2 + 3.060000E+004 9 HO2 104 2.946403E-001 HOCH2CO3+HO2=HO2+HCHO+OH + 3.060000E+004 9 HO2 107 4.518112E+003 HOCH2CO3+NO=NO2+HO2+HCHO + 3.060000E+004 9 HO2 109 1.159847E-002 HOCH2CO3+NO3=NO2+HO2+HCHO + 3.060000E+004 9 HO2 110 4.342582E-003 HOCH2CO3=HCHO+HO2 + 3.060000E+004 9 HO2 113 2.204154E+002 GLYOX=CO+CO+HO2+HO2 + 3.060000E+004 9 HO2 122 4.619564E-003 HOCH2CO2H+OH=HCHO+HO2 + 3.060000E+004 9 HO2 124 4.511439E-003 HOCH2CO3H=HCHO+HO2+OH + 3.060000E+004 9 HO2 127 7.111875E+001 HCOCO=CO+CO+HO2 + 3.060000E+004 9 HO2 132 9.478962E-004 HCOCO3+HO2=HO2+CO+OH + 3.060000E+004 9 HO2 133 1.453535E+001 HCOCO3+NO=HO2+CO+NO2 + 3.060000E+004 9 HO2 134 7.722796E+000 HCOCO3+NO2=HO2+CO+NO3 + 3.060000E+004 9 HO2 135 3.731379E-005 HCOCO3+NO3=HO2+CO+NO2 + 3.060000E+004 9 HO2 136 1.397065E-005 HCOCO3=CO+HO2 + 3.060000E+004 9 HO2 138 1.474739E-004 HCOCO2H=HO2+HO2+CO + 3.060000E+004 9 HO2 139 3.788601E-005 OH+HCOCO2H=CO+HO2 + 3.060000E+004 9 HO2 140 4.263609E-005 HCOCO3H=HO2+CO+OH + 3.420000E+004 8 OH 13 2.392025E+006 O1D=OH+OH + 3.420000E+004 8 OH 18 1.214561E+004 HO2+O3=OH + 3.420000E+004 8 OH 24 4.356926E+006 HO2+NO=OH+NO2 + 3.420000E+004 8 OH 27 3.278958E+001 HO2+NO3=OH+NO2 + 3.420000E+004 8 OH 38 1.080381E+002 H2O2=OH+OH + 3.420000E+004 8 OH 42 1.975601E+006 HONO=OH+NO + 3.420000E+004 8 OH 43 1.609572E+004 HNO3=OH+NO2 + 3.420000E+004 8 OH 61 1.938783E+002 CH2OOA=HO2+CO+OH + 3.420000E+004 8 OH 70 2.841066E-006 ETHO2HNO3+OH=NO3CH2CHO+OH + 3.420000E+004 8 OH 71 2.054624E-006 ETHO2HNO3=ETHENO3O+OH + 3.420000E+004 8 OH 85 7.756254E+000 HYETHO2H+OH=HOCH2CHO+OH + 3.420000E+004 8 OH 86 6.584743E-001 HYETHO2H=HOCH2CH2O+OH + 3.420000E+004 8 OH 94 9.459267E-007 NO3CH2CO3+HO2=HCHO+NO2+OH + 3.420000E+004 8 OH 104 2.960771E-001 HOCH2CO3+HO2=HO2+HCHO+OH + 3.420000E+004 8 OH 119 2.708045E-008 NO3CH2CO3H=HCHO+NO2+OH + 3.420000E+004 8 OH 124 7.858380E-003 HOCH2CO3H=HCHO+HO2+OH + 3.420000E+004 8 OH 128 1.535237E+002 HCOCO=CO+OH + 3.420000E+004 8 OH 132 1.128296E-003 HCOCO3+HO2=HO2+CO+OH + 3.420000E+004 8 OH 140 8.759449E-005 HCOCO3H=HO2+CO+OH + 3.420000E+004 9 HO2 14 1.633187E+005 OH+O3=HO2 + 3.420000E+004 9 HO2 15 5.422633E+000 OH+H2=HO2 + 3.420000E+004 9 HO2 16 4.080574E+006 OH+CO=HO2 + 3.420000E+004 9 HO2 17 5.734272E+001 OH+H2O2=HO2 + 3.420000E+004 9 HO2 23 6.256677E+001 OH+NO3=HO2+NO2 + 3.420000E+004 9 HO2 32 0.000000E+000 HSO3=HO2+SO3 + 3.420000E+004 9 HO2 45 4.897041E+005 HO2NO2=HO2+NO2 + 3.420000E+004 9 HO2 55 3.774531E+004 HCHO=CO+HO2+HO2 + 3.420000E+004 9 HO2 57 3.510543E-001 NO3+HCHO=HNO3+CO+HO2 + 3.420000E+004 9 HO2 58 2.558343E+004 OH+HCHO=HO2+CO + 3.420000E+004 9 HO2 61 1.938783E+002 CH2OOA=HO2+CO+OH + 3.420000E+004 9 HO2 73 2.158054E-001 ETHENO3O=NO3CH2CHO+HO2 + 3.420000E+004 9 HO2 87 3.960824E+004 HOCH2CH2O=HO2+HCHO+HCHO + 3.420000E+004 9 HO2 88 1.542187E+004 HOCH2CH2O=HO2+HOCH2CHO + 3.420000E+004 9 HO2 89 3.652461E-003 ETHGLY+OH=HOCH2CHO+HO2 + 3.420000E+004 9 HO2 91 1.387170E+003 HOCH2CHO+OH=GLYOX+HO2 + 3.420000E+004 9 HO2 93 5.326043E+003 HOCH2CHO=HO2+HCHO+HO2+CO + 3.420000E+004 9 HO2 102 1.262054E-001 HCOCH2O=HCHO+CO+HO2 + 3.420000E+004 9 HO2 103 7.779484E+000 HCOOH+OH=HO2 + 3.420000E+004 9 HO2 104 2.960771E-001 HOCH2CO3+HO2=HO2+HCHO+OH + 3.420000E+004 9 HO2 107 4.533498E+003 HOCH2CO3+NO=NO2+HO2+HCHO + 3.420000E+004 9 HO2 109 1.466094E-002 HOCH2CO3+NO3=NO2+HO2+HCHO + 3.420000E+004 9 HO2 110 3.879664E-003 HOCH2CO3=HCHO+HO2 + 3.420000E+004 9 HO2 113 3.040167E+002 GLYOX=CO+CO+HO2+HO2 + 3.420000E+004 9 HO2 122 7.350617E-003 HOCH2CO2H+OH=HCHO+HO2 + 3.420000E+004 9 HO2 124 7.858380E-003 HOCH2CO3H=HCHO+HO2+OH + 3.420000E+004 9 HO2 127 8.783144E+001 HCOCO=CO+CO+HO2 + 3.420000E+004 9 HO2 132 1.128296E-003 HCOCO3+HO2=HO2+CO+OH + 3.420000E+004 9 HO2 133 1.727634E+001 HCOCO3+NO=HO2+CO+NO2 + 3.420000E+004 9 HO2 134 1.008234E+001 HCOCO3+NO2=HO2+CO+NO3 + 3.420000E+004 9 HO2 135 5.587019E-005 HCOCO3+NO3=HO2+CO+NO2 + 3.420000E+004 9 HO2 136 1.478470E-005 HCOCO3=CO+HO2 + 3.420000E+004 9 HO2 138 3.128734E-004 HCOCO2H=HO2+HO2+CO + 3.420000E+004 9 HO2 139 6.539885E-005 OH+HCOCO2H=CO+HO2 + 3.420000E+004 9 HO2 140 8.759449E-005 HCOCO3H=HO2+CO+OH + 3.780000E+004 8 OH 13 1.253850E+006 O1D=OH+OH + 3.780000E+004 8 OH 18 7.849545E+003 HO2+O3=OH + 3.780000E+004 8 OH 24 2.407412E+006 HO2+NO=OH+NO2 + 3.780000E+004 8 OH 27 2.467842E+001 HO2+NO3=OH+NO2 + 3.780000E+004 8 OH 38 9.646266E+001 H2O2=OH+OH + 3.780000E+004 8 OH 42 1.005338E+006 HONO=OH+NO + 3.780000E+004 8 OH 43 1.206195E+004 HNO3=OH+NO2 + 3.780000E+004 8 OH 61 1.776933E+002 CH2OOA=HO2+CO+OH + 3.780000E+004 8 OH 70 2.033181E-006 ETHO2HNO3+OH=NO3CH2CHO+OH + 3.780000E+004 8 OH 71 1.993259E-006 ETHO2HNO3=ETHENO3O+OH + 3.780000E+004 8 OH 85 4.513372E+000 HYETHO2H+OH=HOCH2CHO+OH + 3.780000E+004 8 OH 86 5.194275E-001 HYETHO2H=HOCH2CH2O+OH + 3.780000E+004 8 OH 94 5.390768E-007 NO3CH2CO3+HO2=HCHO+NO2+OH + 3.780000E+004 8 OH 104 1.519909E-001 HOCH2CO3+HO2=HO2+HCHO+OH + 3.780000E+004 8 OH 119 2.756230E-008 NO3CH2CO3H=HCHO+NO2+OH + 3.780000E+004 8 OH 124 7.898782E-003 HOCH2CO3H=HCHO+HO2+OH + 3.780000E+004 8 OH 128 9.785544E+001 HCOCO=CO+OH + 3.780000E+004 8 OH 132 5.104886E-004 HCOCO3+HO2=HO2+CO+OH + 3.780000E+004 8 OH 140 8.478044E-005 HCOCO3H=HO2+CO+OH + 3.780000E+004 9 HO2 14 9.026490E+004 OH+O3=HO2 + 3.780000E+004 9 HO2 15 4.234773E+000 OH+H2=HO2 + 3.780000E+004 9 HO2 16 2.246608E+006 OH+CO=HO2 + 3.780000E+004 9 HO2 17 3.818066E+001 OH+H2O2=HO2 + 3.780000E+004 9 HO2 23 4.027012E+001 OH+NO3=HO2+NO2 + 3.780000E+004 9 HO2 32 0.000000E+000 HSO3=HO2+SO3 + 3.780000E+004 9 HO2 45 3.208619E+005 HO2NO2=HO2+NO2 + 3.780000E+004 9 HO2 55 2.713318E+004 HCHO=CO+HO2+HO2 + 3.780000E+004 9 HO2 57 4.136801E-001 NO3+HCHO=HNO3+CO+HO2 + 3.780000E+004 9 HO2 58 1.426505E+004 OH+HCHO=HO2+CO + 3.780000E+004 9 HO2 61 1.776933E+002 CH2OOA=HO2+CO+OH + 3.780000E+004 9 HO2 73 2.302334E-001 ETHENO3O=NO3CH2CHO+HO2 + 3.780000E+004 9 HO2 87 2.007517E+004 HOCH2CH2O=HO2+HCHO+HCHO + 3.780000E+004 9 HO2 88 7.816469E+003 HOCH2CH2O=HO2+HOCH2CHO + 3.780000E+004 9 HO2 89 2.091059E-003 ETHGLY+OH=HOCH2CHO+HO2 + 3.780000E+004 9 HO2 91 8.191963E+002 HOCH2CHO+OH=GLYOX+HO2 + 3.780000E+004 9 HO2 93 4.032656E+003 HOCH2CHO=HO2+HCHO+HO2+CO + 3.780000E+004 9 HO2 102 1.031314E-001 HCOCH2O=HCHO+CO+HO2 + 3.780000E+004 9 HO2 103 5.393641E+000 HCOOH+OH=HO2 + 3.780000E+004 9 HO2 104 1.519909E-001 HOCH2CO3+HO2=HO2+HCHO+OH + 3.780000E+004 9 HO2 107 3.087939E+003 HOCH2CO3+NO=NO2+HO2+HCHO + 3.780000E+004 9 HO2 109 1.360217E-002 HOCH2CO3+NO3=NO2+HO2+HCHO + 3.780000E+004 9 HO2 110 1.844002E-003 HOCH2CO3=HCHO+HO2 + 3.780000E+004 9 HO2 113 2.631728E+002 GLYOX=CO+CO+HO2+HO2 + 3.780000E+004 9 HO2 122 5.562444E-003 HOCH2CO2H+OH=HCHO+HO2 + 3.780000E+004 9 HO2 124 7.898782E-003 HOCH2CO3H=HCHO+HO2+OH + 3.780000E+004 9 HO2 127 5.598342E+001 HCOCO=CO+CO+HO2 + 3.780000E+004 9 HO2 132 5.104886E-004 HCOCO3+HO2=HO2+CO+OH + 3.780000E+004 9 HO2 133 1.037140E+001 HCOCO3+NO=HO2+CO+NO2 + 3.780000E+004 9 HO2 134 7.152690E+000 HCOCO3+NO2=HO2+CO+NO3 + 3.780000E+004 9 HO2 135 4.568533E-005 HCOCO3+NO3=HO2+CO+NO2 + 3.780000E+004 9 HO2 136 6.193412E-006 HCOCO3=CO+HO2 + 3.780000E+004 9 HO2 138 3.251979E-004 HCOCO2H=HO2+HO2+CO + 3.780000E+004 9 HO2 139 4.257739E-005 OH+HCOCO2H=CO+HO2 + 3.780000E+004 9 HO2 140 8.478044E-005 HCOCO3H=HO2+CO+OH + 4.140000E+004 8 OH 13 3.488077E+005 O1D=OH+OH + 4.140000E+004 8 OH 18 3.015456E+003 HO2+O3=OH + 4.140000E+004 8 OH 24 7.243348E+005 HO2+NO=OH+NO2 + 4.140000E+004 8 OH 27 1.327229E+001 HO2+NO3=OH+NO2 + 4.140000E+004 8 OH 38 5.699138E+001 H2O2=OH+OH + 4.140000E+004 8 OH 42 2.940676E+005 HONO=OH+NO + 4.140000E+004 8 OH 43 5.360096E+003 HNO3=OH+NO2 + 4.140000E+004 8 OH 61 1.688799E+002 CH2OOA=HO2+CO+OH + 4.140000E+004 8 OH 70 7.127872E-007 ETHO2HNO3+OH=NO3CH2CHO+OH + 4.140000E+004 8 OH 71 1.305306E-006 ETHO2HNO3=ETHENO3O+OH + 4.140000E+004 8 OH 85 1.314729E+000 HYETHO2H+OH=HOCH2CHO+OH + 4.140000E+004 8 OH 86 2.826341E-001 HYETHO2H=HOCH2CH2O+OH + 4.140000E+004 8 OH 94 1.416239E-007 NO3CH2CO3+HO2=HCHO+NO2+OH + 4.140000E+004 8 OH 104 3.517456E-002 HOCH2CO3+HO2=HO2+HCHO+OH + 4.140000E+004 8 OH 119 1.692645E-008 NO3CH2CO3H=HCHO+NO2+OH + 4.140000E+004 8 OH 124 4.757095E-003 HOCH2CO3H=HCHO+HO2+OH + 4.140000E+004 8 OH 128 3.000534E+001 HCOCO=CO+OH + 4.140000E+004 8 OH 132 6.274272E-005 HCOCO3+HO2=HO2+CO+OH + 4.140000E+004 8 OH 140 4.413310E-005 HCOCO3H=HO2+CO+OH + 4.140000E+004 9 HO2 14 2.664537E+004 OH+O3=HO2 + 4.140000E+004 9 HO2 15 1.517295E+000 OH+H2=HO2 + 4.140000E+004 9 HO2 16 6.691021E+005 OH+CO=HO2 + 4.140000E+004 9 HO2 17 1.230508E+001 OH+H2O2=HO2 + 4.140000E+004 9 HO2 23 1.664201E+001 OH+NO3=HO2+NO2 + 4.140000E+004 9 HO2 32 0.000000E+000 HSO3=HO2+SO3 + 4.140000E+004 9 HO2 45 1.384440E+005 HO2NO2=HO2+NO2 + 4.140000E+004 9 HO2 55 1.302993E+004 HCHO=CO+HO2+HO2 + 4.140000E+004 9 HO2 57 5.514376E-001 NO3+HCHO=HNO3+CO+HO2 + 4.140000E+004 9 HO2 58 4.089875E+003 OH+HCHO=HO2+CO + 4.140000E+004 9 HO2 61 1.688799E+002 CH2OOA=HO2+CO+OH + 4.140000E+004 9 HO2 73 3.065559E-001 ETHENO3O=NO3CH2CHO+HO2 + 4.140000E+004 9 HO2 87 5.494651E+003 HOCH2CH2O=HO2+HCHO+HCHO + 4.140000E+004 9 HO2 88 2.139397E+003 HOCH2CH2O=HO2+HOCH2CHO + 4.140000E+004 9 HO2 89 6.117110E-004 ETHGLY+OH=HOCH2CHO+HO2 + 4.140000E+004 9 HO2 91 2.472522E+002 HOCH2CHO+OH=GLYOX+HO2 + 4.140000E+004 9 HO2 93 2.028472E+003 HOCH2CHO=HO2+HCHO+HO2+CO + 4.140000E+004 9 HO2 102 6.215652E-002 HCOCH2O=HCHO+CO+HO2 + 4.140000E+004 9 HO2 103 1.917289E+000 HCOOH+OH=HO2 + 4.140000E+004 9 HO2 104 3.517456E-002 HOCH2CO3+HO2=HO2+HCHO+OH + 4.140000E+004 9 HO2 107 1.428333E+003 HOCH2CO3+NO=NO2+HO2+HCHO + 4.140000E+004 9 HO2 109 1.124627E-002 HOCH2CO3+NO3=NO2+HO2+HCHO + 4.140000E+004 9 HO2 110 4.184221E-004 HOCH2CO3=HCHO+HO2 + 4.140000E+004 9 HO2 113 1.393840E+002 GLYOX=CO+CO+HO2+HO2 + 4.140000E+004 9 HO2 122 1.819212E-003 HOCH2CO2H+OH=HCHO+HO2 + 4.140000E+004 9 HO2 124 4.757095E-003 HOCH2CO3H=HCHO+HO2+OH + 4.140000E+004 9 HO2 127 1.716615E+001 HCOCO=CO+CO+HO2 + 4.140000E+004 9 HO2 132 6.274272E-005 HCOCO3+HO2=HO2+CO+OH + 4.140000E+004 9 HO2 133 2.547793E+000 HCOCO3+NO=HO2+CO+NO2 + 4.140000E+004 9 HO2 134 2.504451E+000 HCOCO3+NO2=HO2+CO+NO3 + 4.140000E+004 9 HO2 135 2.006057E-005 HCOCO3+NO3=HO2+CO+NO2 + 4.140000E+004 9 HO2 136 7.463615E-007 HCOCO3=CO+HO2 + 4.140000E+004 9 HO2 138 2.046182E-004 HCOCO2H=HO2+HO2+CO + 4.140000E+004 9 HO2 139 1.058268E-005 OH+HCOCO2H=CO+HO2 + 4.140000E+004 9 HO2 140 4.413310E-005 HCOCO3H=HO2+CO+OH + 4.500000E+004 8 OH 13 5.845280E+003 O1D=OH+OH + 4.500000E+004 8 OH 18 4.137510E+002 HO2+O3=OH + 4.500000E+004 8 OH 24 3.288188E+004 HO2+NO=OH+NO2 + 4.500000E+004 8 OH 27 6.852786E+000 HO2+NO3=OH+NO2 + 4.500000E+004 8 OH 38 7.497906E+000 H2O2=OH+OH + 4.500000E+004 8 OH 42 2.016774E+004 HONO=OH+NO + 4.500000E+004 8 OH 43 3.461634E+002 HNO3=OH+NO2 + 4.500000E+004 8 OH 61 1.612858E+002 CH2OOA=HO2+CO+OH + 4.500000E+004 8 OH 70 3.503118E-008 ETHO2HNO3+OH=NO3CH2CHO+OH + 4.500000E+004 8 OH 71 1.925499E-007 ETHO2HNO3=ETHENO3O+OH + 4.500000E+004 8 OH 85 5.642735E-002 HYETHO2H+OH=HOCH2CHO+OH + 4.500000E+004 8 OH 86 3.640945E-002 HYETHO2H=HOCH2CH2O+OH + 4.500000E+004 8 OH 94 1.379017E-008 NO3CH2CO3+HO2=HCHO+NO2+OH + 4.500000E+004 8 OH 104 3.580826E-003 HOCH2CO3+HO2=HO2+HCHO+OH + 4.500000E+004 8 OH 119 2.241614E-009 NO3CH2CO3H=HCHO+NO2+OH + 4.500000E+004 8 OH 124 6.269993E-004 HOCH2CO3H=HCHO+HO2+OH + 4.500000E+004 8 OH 128 1.176946E+000 HCOCO=CO+OH + 4.500000E+004 8 OH 132 4.588515E-007 HCOCO3+HO2=HO2+CO+OH + 4.500000E+004 8 OH 140 4.262520E-006 HCOCO3H=HO2+CO+OH + 4.500000E+004 9 HO2 14 1.117582E+003 OH+O3=HO2 + 4.500000E+004 9 HO2 15 7.038078E-002 OH+H2=HO2 + 4.500000E+004 9 HO2 16 2.909103E+004 OH+CO=HO2 + 4.500000E+004 9 HO2 17 5.625891E-001 OH+H2O2=HO2 + 4.500000E+004 9 HO2 23 2.626629E+000 OH+NO3=HO2+NO2 + 4.500000E+004 9 HO2 32 0.000000E+000 HSO3=HO2+SO3 + 4.500000E+004 9 HO2 45 2.599988E+004 HO2NO2=HO2+NO2 + 4.500000E+004 9 HO2 55 1.072616E+003 HCHO=CO+HO2+HO2 + 4.500000E+004 9 HO2 57 1.952744E+000 NO3+HCHO=HNO3+CO+HO2 + 4.500000E+004 9 HO2 58 1.735259E+002 OH+HCHO=HO2+CO + 4.500000E+004 9 HO2 61 1.612858E+002 CH2OOA=HO2+CO+OH + 4.500000E+004 9 HO2 73 1.082220E+000 ETHENO3O=NO3CH2CHO+HO2 + 4.500000E+004 9 HO2 87 2.483536E+002 HOCH2CH2O=HO2+HCHO+HCHO + 4.500000E+004 9 HO2 88 9.669897E+001 HOCH2CH2O=HO2+HOCH2CHO + 4.500000E+004 9 HO2 89 2.637670E-005 ETHGLY+OH=HOCH2CHO+HO2 + 4.500000E+004 9 HO2 91 1.072816E+001 HOCH2CHO+OH=GLYOX+HO2 + 4.500000E+004 9 HO2 93 1.755349E+002 HOCH2CHO=HO2+HCHO+HO2+CO + 4.500000E+004 9 HO2 102 7.715843E-003 HCOCH2O=HCHO+CO+HO2 + 4.500000E+004 9 HO2 103 9.636254E-002 HCOOH+OH=HO2 + 4.500000E+004 9 HO2 104 3.580826E-003 HOCH2CO3+HO2=HO2+HCHO+OH + 4.500000E+004 9 HO2 107 3.261719E+002 HOCH2CO3+NO=NO2+HO2+HCHO + 4.500000E+004 9 HO2 109 2.920987E-002 HOCH2CO3+NO3=NO2+HO2+HCHO + 4.500000E+004 9 HO2 110 5.386648E-005 HOCH2CO3=HCHO+HO2 + 4.500000E+004 9 HO2 113 1.483224E+001 GLYOX=CO+CO+HO2+HO2 + 4.500000E+004 9 HO2 122 8.026572E-005 HOCH2CO2H+OH=HCHO+HO2 + 4.500000E+004 9 HO2 124 6.269993E-004 HOCH2CO3H=HCHO+HO2+OH + 4.500000E+004 9 HO2 127 6.733344E-001 HCOCO=CO+CO+HO2 + 4.500000E+004 9 HO2 132 4.588515E-007 HCOCO3+HO2=HO2+CO+OH + 4.500000E+004 9 HO2 133 4.179607E-002 HCOCO3+NO=HO2+CO+NO2 + 4.500000E+004 9 HO2 134 1.682871E-001 HCOCO3+NO2=HO2+CO+NO3 + 4.500000E+004 9 HO2 135 3.742989E-006 HCOCO3+NO3=HO2+CO+NO2 + 4.500000E+004 9 HO2 136 6.902518E-009 HCOCO3=CO+HO2 + 4.500000E+004 9 HO2 138 5.283671E-005 HCOCO2H=HO2+HO2+CO + 4.500000E+004 9 HO2 139 3.828659E-007 OH+HCOCO2H=CO+HO2 + 4.500000E+004 9 HO2 140 4.262520E-006 HCOCO3H=HO2+CO+OH + 4.860000E+004 8 OH 13 -4.106492E-090 O1D=OH+OH + 4.860000E+004 8 OH 18 3.073737E+002 HO2+O3=OH + 4.860000E+004 8 OH 24 2.746385E+000 HO2+NO=OH+NO2 + 4.860000E+004 8 OH 27 4.343822E+002 HO2+NO3=OH+NO2 + 4.860000E+004 8 OH 38 0.000000E+000 H2O2=OH+OH + 4.860000E+004 8 OH 42 0.000000E+000 HONO=OH+NO + 4.860000E+004 8 OH 43 0.000000E+000 HNO3=OH+NO2 + 4.860000E+004 8 OH 61 1.568215E+002 CH2OOA=HO2+CO+OH + 4.860000E+004 8 OH 70 1.491676E-007 ETHO2HNO3+OH=NO3CH2CHO+OH + 4.860000E+004 8 OH 71 0.000000E+000 ETHO2HNO3=ETHENO3O+OH + 4.860000E+004 8 OH 85 8.816432E-004 HYETHO2H+OH=HOCH2CHO+OH + 4.860000E+004 8 OH 86 0.000000E+000 HYETHO2H=HOCH2CH2O+OH + 4.860000E+004 8 OH 94 1.495338E-007 NO3CH2CO3+HO2=HCHO+NO2+OH + 4.860000E+004 8 OH 104 3.625706E-003 HOCH2CO3+HO2=HO2+HCHO+OH + 4.860000E+004 8 OH 119 0.000000E+000 NO3CH2CO3H=HCHO+NO2+OH + 4.860000E+004 8 OH 124 0.000000E+000 HOCH2CO3H=HCHO+HO2+OH + 4.860000E+004 8 OH 128 3.987600E+000 HCOCO=CO+OH + 4.860000E+004 8 OH 132 1.434989E-006 HCOCO3+HO2=HO2+CO+OH + 4.860000E+004 8 OH 140 0.000000E+000 HCOCO3H=HO2+CO+OH + 4.860000E+004 9 HO2 14 1.703092E+001 OH+O3=HO2 + 4.860000E+004 9 HO2 15 1.101763E-003 OH+H2=HO2 + 4.860000E+004 9 HO2 16 4.545722E+002 OH+CO=HO2 + 4.860000E+004 9 HO2 17 9.227951E-003 OH+H2O2=HO2 + 4.860000E+004 9 HO2 23 3.415344E+000 OH+NO3=HO2+NO2 + 4.860000E+004 9 HO2 32 0.000000E+000 HSO3=HO2+SO3 + 4.860000E+004 9 HO2 45 1.983403E+004 HO2NO2=HO2+NO2 + 4.860000E+004 9 HO2 55 0.000000E+000 HCHO=CO+HO2+HO2 + 4.860000E+004 9 HO2 57 1.634212E+002 NO3+HCHO=HNO3+CO+HO2 + 4.860000E+004 9 HO2 58 2.726972E+000 OH+HCHO=HO2+CO + 4.860000E+004 9 HO2 61 1.568215E+002 CH2OOA=HO2+CO+OH + 4.860000E+004 9 HO2 73 6.645650E+001 ETHENO3O=NO3CH2CHO+HO2 + 4.860000E+004 9 HO2 87 3.330106E+000 HOCH2CH2O=HO2+HCHO+HCHO + 4.860000E+004 9 HO2 88 1.296610E+000 HOCH2CH2O=HO2+HOCH2CHO + 4.860000E+004 9 HO2 89 4.131091E-007 ETHGLY+OH=HOCH2CHO+HO2 + 4.860000E+004 9 HO2 91 1.673896E-001 HOCH2CHO+OH=GLYOX+HO2 + 4.860000E+004 9 HO2 93 0.000000E+000 HOCH2CHO=HO2+HCHO+HO2+CO + 4.860000E+004 9 HO2 102 -6.568418E-076 HCOCH2O=HCHO+CO+HO2 + 4.860000E+004 9 HO2 103 1.701680E-003 HCOOH+OH=HO2 + 4.860000E+004 9 HO2 104 3.625706E-003 HOCH2CO3+HO2=HO2+HCHO+OH + 4.860000E+004 9 HO2 107 4.753717E-002 HOCH2CO3+NO=NO2+HO2+HCHO + 4.860000E+004 9 HO2 109 3.230848E+000 HOCH2CO3+NO3=NO2+HO2+HCHO + 4.860000E+004 9 HO2 110 1.268660E-003 HOCH2CO3=HCHO+HO2 + 4.860000E+004 9 HO2 113 0.000000E+000 GLYOX=CO+CO+HO2+HO2 + 4.860000E+004 9 HO2 122 1.258750E-006 HOCH2CO2H+OH=HCHO+HO2 + 4.860000E+004 9 HO2 124 0.000000E+000 HOCH2CO3H=HCHO+HO2+OH + 4.860000E+004 9 HO2 127 2.281319E+000 HCOCO=CO+CO+HO2 + 4.860000E+004 9 HO2 132 1.434989E-006 HCOCO3+HO2=HO2+CO+OH + 4.860000E+004 9 HO2 133 1.881436E-005 HCOCO3+NO=HO2+CO+NO2 + 4.860000E+004 9 HO2 134 7.104956E-001 HCOCO3+NO2=HO2+CO+NO3 + 4.860000E+004 9 HO2 135 1.278711E-003 HCOCO3+NO3=HO2+CO+NO2 + 4.860000E+004 9 HO2 136 5.021128E-007 HCOCO3=CO+HO2 + 4.860000E+004 9 HO2 138 0.000000E+000 HCOCO2H=HO2+HO2+CO + 4.860000E+004 9 HO2 139 5.903464E-009 OH+HCOCO2H=CO+HO2 + 4.860000E+004 9 HO2 140 0.000000E+000 HCOCO3H=HO2+CO+OH diff --git a/tests/model_tests/spec_model_kpp/output/reactionRates/25200.cmp b/tests/model_tests/spec_model_kpp/output/reactionRates/25200.cmp new file mode 100644 index 000000000..4331c813b --- /dev/null +++ b/tests/model_tests/spec_model_kpp/output/reactionRates/25200.cmp @@ -0,0 +1,142 @@ + reactionNumber reactionRate +1 9.610214E+008 +2 5.705865E+001 +3 2.096212E+003 +4 1.073918E+004 +5 2.126017E+003 +6 2.061486E+007 +7 6.643100E+008 +8 1.363865E+006 +9 4.759726E+002 +10 1.247764E+006 +11 3.115651E+001 +12 6.505459E+004 +13 2.034546E+006 +14 2.022386E+005 +15 2.494118E-001 +16 5.223211E+006 +17 9.369914E+000 +18 1.093098E+004 +19 5.060077E+003 +20 5.012218E+002 +21 3.288220E+006 +22 3.715904E+006 +23 6.695863E+001 +24 5.529782E+006 +25 5.303916E+005 +26 3.275975E+002 +27 2.550411E+001 +28 4.479763E+004 +29 4.623431E+003 +30 0.000000E+000 +31 0.000000E+000 +32 0.000000E+000 +33 3.455208E+004 +34 1.314200E+003 +35 0.000000E+000 +36 2.264940E+007 +37 2.708812E+008 +38 8.968386E+000 +39 6.694347E+008 +40 1.535443E+004 +41 1.061188E+005 +42 2.981672E+006 +43 3.861992E+003 +44 6.380502E+004 +45 5.279616E+005 +46 3.027587E-001 +47 2.089332E+003 +48 1.005529E+005 +49 4.262013E-005 +50 3.027346E-001 +51 7.533156E-007 +52 2.699093E-008 +53 8.996975E-009 +54 8.996975E-009 +55 6.753518E+003 +56 1.031868E+004 +57 7.992120E-002 +58 8.743702E+003 +59 7.730508E+002 +60 1.044663E+003 +61 2.716124E+002 +62 1.922435E+001 +63 5.025526E+002 +64 1.000080E+005 +65 2.501073E-001 +66 9.281010E-003 +67 2.784303E-002 +68 9.281010E-003 +69 1.096745E-006 +70 4.872423E-007 +71 3.544767E-007 +72 4.140201E-002 +73 2.613245E-001 +74 3.201189E+000 +75 7.229955E-007 +76 7.123372E-003 +77 5.762332E-002 +78 7.761331E-001 +79 9.283467E-002 +80 1.020108E-002 +81 0.000000E+000 +82 2.895663E+002 +83 4.826104E+002 +84 4.068957E-001 +85 1.539879E+000 +86 1.315119E-001 +87 7.199136E+004 +88 2.803056E+004 +89 8.135803E-004 +90 6.975704E-002 +91 4.042864E+002 +92 1.617146E+003 +93 8.177318E+002 +94 2.158099E-007 +95 7.357158E-008 +96 2.010956E-007 +97 4.941892E-003 +98 2.467533E-003 +99 9.794180E-009 +100 3.921527E-009 +101 1.680654E-009 +102 5.762334E-002 +103 1.989838E+000 +104 4.879695E-002 +105 1.663532E-002 +106 4.546989E-002 +107 1.117415E+003 +108 5.579357E+002 +109 2.214570E-003 +110 8.866994E-004 +111 3.800141E-004 +112 1.638429E+001 +113 8.074365E+000 +114 2.470209E+000 +115 4.915585E-004 +116 1.417907E+001 +117 4.673017E-011 +118 2.666236E-009 +119 8.656648E-010 +120 1.061086E-007 +121 2.942735E-004 +122 1.546224E-004 +123 9.264886E-004 +124 1.764035E-004 +125 2.157295E+000 +126 5.982877E+001 +127 4.624228E+000 +128 8.082854E+000 +129 1.443288E+000 +130 1.432021E-005 +131 3.914189E-005 +132 4.200593E-005 +133 9.619057E-001 +134 4.802884E-001 +135 1.906370E-006 +136 7.632985E-007 +137 3.271279E-007 +138 8.237183E-007 +139 3.952977E-007 +140 4.623530E-007 +141 1.398418E-006 diff --git a/tests/model_tests/spec_model_kpp/output/reactionRates/27000.cmp b/tests/model_tests/spec_model_kpp/output/reactionRates/27000.cmp new file mode 100644 index 000000000..8b401753c --- /dev/null +++ b/tests/model_tests/spec_model_kpp/output/reactionRates/27000.cmp @@ -0,0 +1,142 @@ + reactionNumber reactionRate +1 9.275640E+008 +2 5.534788E+001 +3 1.912298E+003 +4 9.912114E+003 +5 1.962284E+003 +6 2.018001E+007 +7 6.310286E+008 +8 1.310764E+006 +9 4.252076E+002 +10 1.199213E+006 +11 3.029615E+001 +12 6.325816E+004 +13 1.991629E+006 +14 2.215678E+005 +15 1.111119E+000 +16 5.682220E+006 +17 2.363295E+001 +18 1.268479E+004 +19 6.369222E+003 +20 6.682530E+002 +21 3.388006E+006 +22 3.873670E+006 +23 7.422233E+001 +24 6.034940E+006 +25 5.856478E+005 +26 3.954937E+002 +27 2.994469E+001 +28 5.479423E+004 +29 1.097700E+004 +30 0.000000E+000 +31 0.000000E+000 +32 0.000000E+000 +33 7.525232E+004 +34 1.277433E+003 +35 0.000000E+000 +36 2.217164E+007 +37 2.710187E+008 +38 2.050460E+001 +39 6.362716E+008 +40 1.556181E+004 +41 1.075466E+005 +42 3.323675E+006 +43 8.259176E+003 +44 6.201997E+004 +45 5.846925E+005 +46 2.855989E-001 +47 1.947968E+003 +48 1.016890E+005 +49 4.911132E-005 +50 2.855505E-001 +51 7.644384E-007 +52 2.901115E-008 +53 9.670383E-009 +54 9.670383E-009 +55 1.308701E+004 +56 2.007032E+004 +57 1.595827E-001 +58 1.871710E+004 +59 7.207480E+002 +60 9.739837E+002 +61 2.532358E+002 +62 2.375527E+001 +63 5.083278E+002 +64 1.011572E+005 +65 2.721657E-001 +66 1.069754E-002 +67 3.209262E-002 +68 1.069754E-002 +69 2.685708E-006 +70 1.193158E-006 +71 7.872377E-007 +72 3.905320E-002 +73 2.464991E-001 +74 7.532236E+000 +75 1.241279E-006 +76 1.311110E-002 +77 9.567478E-002 +78 7.221418E-001 +79 8.180867E-002 +80 9.095155E-003 +81 0.000000E+000 +82 2.699775E+002 +83 4.499625E+002 +84 1.073046E+000 +85 4.060893E+000 +86 3.145324E-001 +87 7.281123E+004 +88 2.834978E+004 +89 2.093661E-003 +90 1.444187E-001 +91 8.973134E+002 +92 3.589254E+003 +93 1.642445E+003 +94 5.037549E-007 +95 1.717346E-007 +96 4.694080E-007 +97 9.442678E-003 +98 4.770234E-003 +99 2.013329E-008 +100 8.538536E-009 +101 3.659373E-009 +102 9.567411E-002 +103 4.150924E+000 +104 1.366702E-001 +105 4.659212E-002 +106 1.273518E-001 +107 2.561827E+003 +108 1.294179E+003 +109 5.462221E-003 +110 2.316530E-003 +111 9.927987E-004 +112 7.138508E+001 +113 3.491958E+001 +114 1.076251E+001 +115 2.186396E-003 +116 6.761154E+001 +117 2.513757E-010 +118 1.415888E-008 +119 4.169127E-009 +120 4.351784E-007 +121 1.107118E-003 +122 9.829208E-004 +123 5.821209E-003 +124 1.005184E-003 +125 1.055317E+001 +126 2.684785E+002 +127 2.209216E+001 +128 3.861569E+001 +129 6.895281E+000 +130 8.327974E-005 +131 2.276313E-004 +132 2.442872E-004 +133 4.579063E+000 +134 2.313242E+000 +135 9.763288E-006 +136 4.140615E-006 +137 1.774549E-006 +138 9.418144E-006 +139 4.949326E-006 +140 5.399627E-006 +141 1.803806E-005 diff --git a/tests/model_tests/spec_model_kpp/output/reactionRates/28800.cmp b/tests/model_tests/spec_model_kpp/output/reactionRates/28800.cmp new file mode 100644 index 000000000..400940766 --- /dev/null +++ b/tests/model_tests/spec_model_kpp/output/reactionRates/28800.cmp @@ -0,0 +1,142 @@ + reactionNumber reactionRate +1 8.902361E+008 +2 5.340125E+001 +3 1.725880E+003 +4 9.131456E+003 +5 1.807739E+003 +6 1.902270E+007 +7 5.965294E+008 +8 1.264812E+006 +9 3.760005E+002 +10 1.156764E+006 +11 2.983009E+001 +12 6.228505E+004 +13 1.877410E+006 +14 2.226411E+005 +15 2.408797E+000 +16 5.667680E+006 +17 3.826307E+001 +18 1.355421E+004 +19 6.767028E+003 +20 7.549965E+002 +21 3.184546E+006 +22 3.716590E+006 +23 7.610251E+001 +24 6.032102E+006 +25 5.975179E+005 +26 4.037280E+002 +27 3.264952E+001 +28 5.329027E+004 +29 1.678467E+004 +30 0.000000E+000 +31 0.000000E+000 +32 0.000000E+000 +33 1.151170E+005 +34 1.257330E+003 +35 0.000000E+000 +36 2.090011E+007 +37 2.694792E+008 +38 3.225846E+001 +39 6.016375E+008 +40 1.583478E+004 +41 1.094183E+005 +42 3.182121E+006 +43 1.208365E+004 +44 6.104396E+004 +45 5.971278E+005 +46 2.710501E-001 +47 1.811795E+003 +48 9.404197E+004 +49 5.268305E-005 +50 2.709966E-001 +51 7.913791E-007 +52 2.898788E-008 +53 9.662626E-009 +54 9.662626E-009 +55 1.743508E+004 +56 2.698288E+004 +57 2.252857E-001 +58 2.574787E+004 +59 6.703640E+002 +60 9.058973E+002 +61 2.355333E+002 +62 2.483276E+001 +63 4.701110E+002 +64 9.355209E+004 +65 2.745688E-001 +66 1.041624E-002 +67 3.124872E-002 +68 1.041624E-002 +69 4.244520E-006 +70 1.885679E-006 +71 1.210370E-006 +72 3.706278E-002 +73 2.339359E-001 +74 1.137430E+001 +75 1.639688E-006 +76 1.687662E-002 +77 1.182578E-001 +78 6.702419E-001 +79 7.155243E-002 +80 8.119960E-003 +81 0.000000E+000 +82 2.511070E+002 +83 4.185117E+002 +84 1.677649E+000 +85 6.348987E+000 +86 4.783996E-001 +87 6.733523E+004 +88 2.621765E+004 +89 3.191723E-003 +90 2.107515E-001 +91 1.275986E+003 +92 5.103946E+003 +93 2.260120E+003 +94 7.589537E-007 +95 2.587342E-007 +96 7.072069E-007 +97 1.258586E-002 +98 6.490020E-003 +99 2.927275E-008 +100 1.198234E-008 +101 5.135289E-009 +102 1.182578E-001 +103 5.983418E+000 +104 2.265247E-001 +105 7.722434E-002 +106 2.110799E-001 +107 3.756498E+003 +108 1.937075E+003 +109 8.737030E-003 +110 3.576366E-003 +111 1.532728E-003 +112 1.512130E+002 +113 7.264170E+001 +114 2.279792E+001 +115 4.797366E-003 +116 1.445605E+002 +117 6.037472E-010 +118 3.355190E-008 +119 9.611164E-009 +120 8.647050E-007 +121 2.200823E-003 +122 2.584280E-003 +123 1.511969E-002 +124 2.539906E-003 +125 2.320014E+001 +126 5.904836E+002 +127 4.724278E+001 +128 8.257736E+001 +129 1.474515E+001 +130 1.999412E-004 +131 5.465058E-004 +132 5.864941E-004 +133 9.725931E+000 +134 5.015271E+000 +135 2.262100E-005 +136 9.259552E-006 +137 3.968380E-006 +138 3.374236E-005 +139 1.792232E-005 +140 1.953729E-005 +141 6.736432E-005 diff --git a/tests/model_tests/spec_model_kpp/output/reactionRates/30600.cmp b/tests/model_tests/spec_model_kpp/output/reactionRates/30600.cmp new file mode 100644 index 000000000..553c8e805 --- /dev/null +++ b/tests/model_tests/spec_model_kpp/output/reactionRates/30600.cmp @@ -0,0 +1,142 @@ + reactionNumber reactionRate +1 8.498825E+008 +2 5.124203E+001 +3 1.543735E+003 +4 8.415656E+003 +5 1.666033E+003 +6 1.720860E+007 +7 5.617739E+008 +8 1.227274E+006 +9 3.300695E+002 +10 1.120792E+006 +11 2.977971E+001 +12 6.217983E+004 +13 1.698371E+006 +14 2.125165E+005 +15 3.803104E+000 +16 5.371256E+006 +17 5.041078E+001 +18 1.380405E+004 +19 6.511413E+003 +20 7.751171E+002 +21 2.833493E+006 +22 3.407257E+006 +23 7.473717E+001 +24 5.726488E+006 +25 5.844620E+005 +26 3.753668E+002 +27 3.421050E+001 +28 4.687782E+004 +29 2.103379E+004 +30 0.000000E+000 +31 0.000000E+000 +32 0.000000E+000 +33 1.519071E+005 +34 1.254680E+003 +35 0.000000E+000 +36 1.890697E+007 +37 2.660405E+008 +38 4.266172E+001 +39 5.665335E+008 +40 1.615875E+004 +41 1.116289E+005 +42 2.869864E+006 +43 1.482369E+004 +44 6.091531E+004 +45 5.846126E+005 +46 2.598457E-001 +47 1.688203E+003 +48 8.279084E+004 +49 5.461552E-005 +50 2.597804E-001 +51 8.373175E-007 +52 2.805376E-008 +53 9.351254E-009 +54 9.351254E-009 +55 1.966926E+004 +56 3.089520E+004 +57 2.772460E-001 +58 2.909829E+004 +59 6.246359E+002 +60 8.441025E+002 +61 2.194666E+002 +62 2.364376E+001 +63 4.138943E+002 +64 8.236496E+004 +65 2.668107E-001 +66 9.258320E-003 +67 2.777496E-002 +68 9.258320E-003 +69 5.521091E-006 +70 2.452812E-006 +71 1.583425E-006 +72 3.552858E-002 +73 2.242522E-001 +74 1.406375E+001 +75 1.976378E-006 +76 1.868051E-002 +77 1.288830E-001 +78 6.232408E-001 +79 6.246731E-002 +80 7.304122E-003 +81 0.000000E+000 +82 2.339801E+002 +83 3.899668E+002 +84 2.079816E+000 +85 7.870969E+000 +86 5.964822E-001 +87 5.931359E+004 +88 2.309434E+004 +89 3.859513E-003 +90 2.675606E-001 +91 1.487621E+003 +92 5.950482E+003 +93 2.627072E+003 +94 9.395930E-007 +95 3.203158E-007 +96 8.755298E-007 +97 1.440803E-002 +98 7.655148E-003 +99 3.698694E-008 +100 1.384827E-008 +101 5.934974E-009 +102 1.288851E-001 +103 7.295505E+000 +104 2.946403E-001 +105 1.004456E-001 +106 2.745512E-001 +107 4.518112E+003 +108 2.400524E+003 +109 1.159847E-002 +110 4.342582E-003 +111 1.861107E-003 +112 2.363060E+002 +113 1.102077E+002 +114 3.562715E+001 +115 7.879601E-003 +116 2.180447E+002 +117 1.023630E-009 +118 5.613722E-008 +119 1.617307E-008 +120 1.258655E-006 +121 3.373323E-003 +122 4.619564E-003 +123 2.670284E-002 +124 4.511439E-003 +125 3.598297E+001 +126 9.643797E+002 +127 7.111875E+001 +128 1.243110E+002 +129 2.219718E+001 +130 3.231464E-004 +131 8.832669E-004 +132 9.478962E-004 +133 1.453535E+001 +134 7.722796E+000 +135 3.731379E-005 +136 1.397065E-005 +137 5.987422E-006 +138 7.373695E-005 +139 3.788601E-005 +140 4.263609E-005 +141 1.471588E-004 diff --git a/tests/model_tests/spec_model_kpp/output/reactionRates/32400.cmp b/tests/model_tests/spec_model_kpp/output/reactionRates/32400.cmp new file mode 100644 index 000000000..141d35e3a --- /dev/null +++ b/tests/model_tests/spec_model_kpp/output/reactionRates/32400.cmp @@ -0,0 +1,142 @@ + reactionNumber reactionRate +1 8.069853E+008 +2 4.887583E+001 +3 1.369974E+003 +4 7.776808E+003 +5 1.539561E+003 +6 1.485320E+007 +7 5.274187E+008 +8 1.199801E+006 +9 2.883176E+002 +10 1.092249E+006 +11 3.021976E+001 +12 6.309867E+004 +13 1.465909E+006 +14 1.922918E+005 +15 4.912551E+000 +16 4.828982E+006 +17 5.736992E+001 +18 1.335561E+004 +19 5.649087E+003 +20 7.190502E+002 +21 2.385404E+006 +22 2.986886E+006 +23 7.019524E+001 +24 5.154863E+006 +25 5.478466E+005 +26 3.171804E+002 +27 3.435733E+001 +28 3.754497E+004 +29 2.298695E+004 +30 0.000000E+000 +31 0.000000E+000 +32 0.000000E+000 +33 1.843040E+005 +34 1.272564E+003 +35 0.000000E+000 +36 1.631915E+007 +37 2.604227E+008 +38 5.029742E+001 +39 5.316081E+008 +40 1.652594E+004 +41 1.141167E+005 +42 2.453665E+006 +43 1.619294E+004 +44 6.178356E+004 +45 5.484178E+005 +46 2.525585E-001 +47 1.580768E+003 +48 6.951392E+004 +49 5.470384E-005 +50 2.524905E-001 +51 9.079459E-007 +52 2.638328E-008 +53 8.794427E-009 +54 8.794427E-009 +55 2.002782E+004 +56 3.213239E+004 +57 3.180436E-001 +58 2.883579E+004 +59 5.848812E+002 +60 7.903799E+002 +61 2.054988E+002 +62 2.046588E+001 +63 3.476483E+002 +64 6.918202E+004 +65 2.500259E-001 +66 7.524573E-003 +67 2.257372E-002 +68 7.524573E-003 +69 6.291666E-006 +70 2.795149E-006 +71 1.874419E-006 +72 3.453090E-002 +73 2.179549E-001 +74 1.517173E+001 +75 2.302830E-006 +76 1.880286E-002 +77 1.307296E-001 +78 5.824699E-001 +79 5.466767E-002 +80 6.656096E-003 +81 0.000000E+000 +82 2.190906E+002 +83 3.651510E+002 +84 2.205487E+000 +85 8.346564E+000 +86 6.570607E-001 +87 4.984332E+004 +88 1.940700E+004 +89 4.001508E-003 +90 3.162046E-001 +91 1.518732E+003 +92 6.074929E+003 +93 2.751043E+003 +94 1.007114E-006 +95 3.433343E-007 +96 9.384472E-007 +97 1.498582E-002 +98 8.290929E-003 +99 4.291956E-008 +100 1.393703E-008 +101 5.973015E-009 +102 1.307211E-001 +103 7.923299E+000 +104 3.202875E-001 +105 1.091889E-001 +106 2.984497E-001 +107 4.765866E+003 +108 2.636723E+003 +109 1.364950E-002 +110 4.432326E-003 +111 1.899569E-003 +112 3.098936E+002 +113 1.385064E+002 +114 4.672172E+001 +115 1.103527E-002 +116 2.637956E+002 +117 1.386650E-009 +118 7.509102E-008 +119 2.247285E-008 +120 1.505010E-006 +121 4.477992E-003 +122 6.436529E-003 +123 3.677037E-002 +124 6.453335E-003 +125 4.467855E+001 +126 1.329361E+003 +127 8.590361E+001 +128 1.501540E+002 +129 2.681175E+001 +130 3.966976E-004 +131 1.084307E-003 +132 1.163646E-003 +133 1.731501E+001 +134 9.579559E+000 +135 4.959040E-005 +136 1.610322E-005 +137 6.901380E-006 +138 1.196890E-004 +139 5.691365E-005 +140 6.841447E-005 +141 2.295406E-004 diff --git a/tests/model_tests/spec_model_kpp/output/reactionRates/34200.cmp b/tests/model_tests/spec_model_kpp/output/reactionRates/34200.cmp new file mode 100644 index 000000000..2da83cc96 --- /dev/null +++ b/tests/model_tests/spec_model_kpp/output/reactionRates/34200.cmp @@ -0,0 +1,142 @@ + reactionNumber reactionRate +1 7.614510E+008 +2 4.627622E+001 +3 1.205545E+003 +4 7.218706E+003 +5 1.429075E+003 +6 1.211849E+007 +7 4.935576E+008 +8 1.184345E+006 +9 2.507615E+002 +10 1.072667E+006 +11 3.130553E+001 +12 6.536575E+004 +13 1.196012E+006 +14 1.633187E+005 +15 5.422633E+000 +16 4.080574E+006 +17 5.734272E+001 +18 1.214561E+004 +19 4.333452E+003 +20 5.906026E+002 +21 1.882975E+006 +22 2.487070E+006 +23 6.256677E+001 +24 4.356926E+006 +25 4.884371E+005 +26 2.397265E+002 +27 3.278958E+001 +28 2.702917E+004 +29 2.231291E+004 +30 0.000000E+000 +31 0.000000E+000 +32 0.000000E+000 +33 2.113596E+005 +34 1.317464E+003 +35 0.000000E+000 +36 1.331443E+007 +37 2.522621E+008 +38 5.401905E+001 +39 4.969604E+008 +40 1.694262E+004 +41 1.169107E+005 +42 1.975601E+006 +43 1.609572E+004 +44 6.396347E+004 +45 4.897041E+005 +46 2.500577E-001 +47 1.491371E+003 +48 5.532093E+004 +49 5.263457E-005 +50 2.499914E-001 +51 1.015064E-006 +52 2.403696E-008 +53 8.012320E-009 +54 8.012320E-009 +55 1.887265E+004 +56 3.115800E+004 +57 3.510543E-001 +58 2.558343E+004 +59 5.518074E+002 +60 7.456856E+002 +61 1.938783E+002 +62 1.582247E+001 +63 2.765736E+002 +64 5.503814E+004 +65 2.245997E-001 +66 5.508370E-003 +67 1.652511E-002 +68 5.508370E-003 +69 6.395023E-006 +70 2.841066E-006 +71 2.054624E-006 +72 3.419035E-002 +73 2.158054E-001 +74 1.455981E+001 +75 2.672016E-006 +76 1.753639E-002 +77 1.262051E-001 +78 5.486230E-001 +79 4.810032E-002 +80 6.177657E-003 +81 0.000000E+000 +82 2.067028E+002 +83 3.445046E+002 +84 2.049504E+000 +85 7.756254E+000 +86 6.584743E-001 +87 3.960824E+004 +88 1.542187E+004 +89 3.652461E-003 +90 3.593167E-001 +91 1.387170E+003 +92 5.548681E+003 +93 2.663021E+003 +94 9.459267E-007 +95 3.224750E-007 +96 8.814317E-007 +97 1.448392E-002 +98 8.452702E-003 +99 4.683973E-008 +100 1.239501E-008 +101 5.312145E-009 +102 1.262054E-001 +103 7.779484E+000 +104 2.960771E-001 +105 1.009354E-001 +106 2.758900E-001 +107 4.533498E+003 +108 2.645714E+003 +109 1.466094E-002 +110 3.879664E-003 +111 1.662713E-003 +112 3.603605E+002 +113 1.520084E+002 +114 5.433047E+001 +115 1.397529E-002 +116 2.685248E+002 +117 1.567711E-009 +118 8.390670E-008 +119 2.708045E-008 +120 1.539667E-006 +121 5.412315E-003 +122 7.350617E-003 +123 4.152004E-002 +124 7.858380E-003 +125 4.649251E+001 +126 1.634328E+003 +127 8.783144E+001 +128 1.535237E+002 +129 2.741345E+001 +130 3.846465E-004 +131 1.051367E-003 +132 1.128296E-003 +133 1.727634E+001 +134 1.008234E+001 +135 5.587019E-005 +136 1.478470E-005 +137 6.336300E-006 +138 1.564367E-004 +139 6.539885E-005 +140 8.759449E-005 +141 2.761873E-004 diff --git a/tests/model_tests/spec_model_kpp/output/reactionRates/36000.cmp b/tests/model_tests/spec_model_kpp/output/reactionRates/36000.cmp new file mode 100644 index 000000000..0c98a3b7c --- /dev/null +++ b/tests/model_tests/spec_model_kpp/output/reactionRates/36000.cmp @@ -0,0 +1,142 @@ + reactionNumber reactionRate +1 7.122884E+008 +2 4.336724E+001 +3 1.047926E+003 +4 6.734664E+003 +5 1.333250E+003 +6 9.206238E+006 +7 4.594742E+008 +8 1.183344E+006 +9 2.165347E+002 +10 1.064510E+006 +11 3.334381E+001 +12 6.962165E+004 +13 9.085926E+005 +14 1.279357E+005 +15 5.172184E+000 +16 3.186392E+006 +17 5.024304E+001 +18 1.024338E+004 +19 2.852555E+003 +20 4.185660E+002 +21 1.368181E+006 +22 1.939530E+006 +23 5.224695E+001 +24 3.408378E+006 +25 4.100961E+005 +26 1.576012E+002 +27 2.947960E+001 +28 1.705901E+004 +29 1.919126E+004 +30 0.000000E+000 +31 0.000000E+000 +32 0.000000E+000 +33 2.324895E+005 +34 1.401969E+003 +35 0.000000E+000 +36 1.011495E+007 +37 2.410859E+008 +38 5.326879E+001 +39 4.618926E+008 +40 1.744473E+004 +41 1.202323E+005 +42 1.478198E+006 +43 1.462839E+004 +44 6.806624E+004 +45 4.117288E+005 +46 2.538818E-001 +47 1.420416E+003 +48 4.112398E+004 +49 4.841177E-005 +50 2.538073E-001 +51 1.184379E-006 +52 2.113844E-008 +53 7.046145E-009 +54 7.046145E-009 +55 1.659576E+004 +56 2.845190E+004 +57 3.807549E-001 +58 2.031629E+004 +59 5.255535E+002 +60 7.102074E+002 +61 1.846539E+002 +62 1.065838E+001 +63 2.056492E+002 +64 4.092419E+004 +65 1.919303E-001 +66 3.547756E-003 +67 1.064327E-002 +68 3.547756E-003 +69 5.780014E-006 +70 2.567841E-006 +71 2.099938E-006 +72 3.471189E-002 +73 2.190973E-001 +74 1.241188E+001 +75 3.152874E-006 +76 1.515034E-002 +77 1.168096E-001 +78 5.218174E-001 +79 4.257098E-002 +80 5.868118E-003 +81 0.000000E+000 +82 1.968696E+002 +83 3.281160E+002 +84 1.673762E+000 +85 6.334277E+000 +86 6.080949E-001 +87 2.945562E+004 +88 1.146884E+004 +89 2.948587E-003 +90 4.011203E-001 +91 1.133813E+003 +92 4.535251E+003 +93 2.404016E+003 +94 7.731549E-007 +95 2.635756E-007 +96 7.204398E-007 +97 1.306755E-002 +98 8.184894E-003 +99 4.856692E-008 +100 9.686552E-009 +101 4.151380E-009 +102 1.168086E-001 +103 6.878472E+000 +104 2.320061E-001 +105 7.909299E-002 +106 2.161875E-001 +107 3.921273E+003 +108 2.456099E+003 +109 1.457382E-002 +110 2.906713E-003 +111 1.245734E-003 +112 3.818003E+002 +113 1.491130E+002 +114 5.756288E+001 +115 1.657176E-002 +116 2.331345E+002 +117 1.496073E-009 +118 7.923097E-008 +119 2.891624E-008 +120 1.358879E-006 +121 6.109016E-003 +122 6.997151E-003 +123 3.910393E-002 +124 8.369186E-003 +125 4.101659E+001 +126 1.843954E+003 +127 7.615844E+001 +128 1.331201E+002 +129 2.377014E+001 +130 2.946862E-004 +131 8.054756E-004 +132 8.644128E-004 +133 1.460995E+001 +134 9.150982E+000 +135 5.429943E-005 +136 1.082989E-005 +137 4.641380E-006 +138 1.716400E-004 +139 5.913759E-005 +140 9.330348E-005 +141 2.648859E-004 diff --git a/tests/model_tests/spec_model_kpp/output/reactionRates/37800.cmp b/tests/model_tests/spec_model_kpp/output/reactionRates/37800.cmp new file mode 100644 index 000000000..f6c9ca3c0 --- /dev/null +++ b/tests/model_tests/spec_model_kpp/output/reactionRates/37800.cmp @@ -0,0 +1,142 @@ + reactionNumber reactionRate +1 6.572890E+008 +2 4.000587E+001 +3 8.910341E+002 +4 6.305112E+003 +5 1.248212E+003 +6 6.352262E+006 +7 4.232390E+008 +8 1.200187E+006 +9 1.838458E+002 +10 1.071196E+006 +11 3.694433E+001 +12 7.713951E+004 +13 6.269248E+005 +14 9.026490E+004 +15 4.234773E+000 +16 2.246608E+006 +17 3.818066E+001 +18 7.849545E+003 +19 1.543261E+003 +20 2.459479E+002 +21 8.897594E+005 +22 1.388797E+006 +23 4.027012E+001 +24 2.407412E+006 +25 3.189346E+005 +26 8.668264E+001 +27 2.467842E+001 +28 9.107035E+003 +29 1.442048E+004 +30 0.000000E+000 +31 0.000000E+000 +32 0.000000E+000 +33 2.475220E+005 +34 1.551298E+003 +35 0.000000E+000 +36 6.975729E+006 +37 2.262416E+008 +38 4.823133E+001 +39 4.244970E+008 +40 1.811561E+004 +41 1.246027E+005 +42 1.005338E+006 +43 1.206195E+004 +44 7.531626E+004 +45 3.208619E+005 +46 2.668859E-001 +47 1.366831E+003 +48 2.793823E+004 +49 4.233598E-005 +50 2.668002E-001 +51 1.475590E-006 +52 1.790081E-008 +53 5.966938E-009 +54 5.966938E-009 +55 1.356659E+004 +56 2.444137E+004 +57 4.136801E-001 +58 1.426505E+004 +59 5.057424E+002 +60 6.834357E+002 +61 1.776933E+002 +62 6.024627E+000 +63 1.397299E+002 +64 2.780625E+004 +65 1.545606E-001 +66 1.941931E-003 +67 5.825794E-003 +68 1.941931E-003 +69 4.576534E-006 +70 2.033181E-006 +71 1.993259E-006 +72 3.647621E-002 +73 2.302334E-001 +74 9.274144E+000 +75 3.858629E-006 +76 1.198280E-002 +77 1.031537E-001 +78 5.016444E-001 +79 3.774783E-002 +80 5.729153E-003 +81 0.000000E+000 +82 1.894497E+002 +83 3.157494E+002 +84 1.192608E+000 +85 4.513372E+000 +86 5.194275E-001 +87 2.007517E+004 +88 7.816469E+003 +89 2.091059E-003 +90 4.484475E-001 +91 8.191963E+002 +92 3.276785E+003 +93 2.016328E+003 +94 5.390768E-007 +95 1.837762E-007 +96 5.023215E-007 +97 1.095221E-002 +98 7.553251E-003 +99 4.824377E-008 +100 6.540253E-009 +101 2.802966E-009 +102 1.031314E-001 +103 5.393641E+000 +104 1.519909E-001 +105 5.181507E-002 +106 1.416279E-001 +107 3.087939E+003 +108 2.129614E+003 +109 1.360217E-002 +110 1.844002E-003 +111 7.902867E-004 +112 3.733853E+002 +113 1.315864E+002 +114 5.629418E+001 +115 1.891426E-002 +116 1.719638E+002 +117 1.200507E-009 +118 6.299689E-008 +119 2.756230E-008 +120 1.025220E-006 +121 6.530429E-003 +122 5.562444E-003 +123 3.078562E-002 +124 7.898782E-003 +125 3.049391E+001 +126 1.942396E+003 +127 5.598342E+001 +128 9.785544E+001 +129 1.747323E+001 +130 1.740302E-004 +131 4.756826E-004 +132 5.104886E-004 +133 1.037140E+001 +134 7.152690E+000 +135 4.568533E-005 +136 6.193412E-006 +137 2.654320E-006 +138 1.625990E-004 +139 4.257739E-005 +140 8.478044E-005 +141 2.057370E-004 diff --git a/tests/model_tests/spec_model_kpp/output/reactionRates/39600.cmp b/tests/model_tests/spec_model_kpp/output/reactionRates/39600.cmp new file mode 100644 index 000000000..58199ac57 --- /dev/null +++ b/tests/model_tests/spec_model_kpp/output/reactionRates/39600.cmp @@ -0,0 +1,142 @@ + reactionNumber reactionRate +1 5.913935E+008 +2 3.588431E+001 +3 7.237787E+002 +4 5.880651E+003 +5 1.164182E+003 +6 3.788234E+006 +7 3.809234E+008 +8 1.240286E+006 +9 1.498429E+002 +10 1.098098E+006 +11 4.348515E+001 +12 9.079671E+004 +13 3.738727E+005 +14 5.495791E+004 +15 2.883031E+000 +16 1.371162E+006 +17 2.442960E+001 +18 5.307691E+003 +19 6.392790E+002 +20 1.131472E+002 +21 4.905852E+005 +22 8.792282E+005 +23 2.792636E+001 +24 1.474152E+006 +25 2.242407E+005 +26 3.731318E+001 +27 1.900634E+001 +28 3.871908E+003 +29 9.135089E+003 +30 0.000000E+000 +31 0.000000E+000 +32 0.000000E+000 +33 2.567416E+005 +34 1.822355E+003 +35 0.000000E+000 +36 4.167796E+006 +37 2.067202E+008 +38 3.965906E+001 +39 3.808445E+008 +40 1.914190E+004 +41 1.311844E+005 +42 5.991300E+005 +43 8.804974E+003 +44 8.847616E+004 +45 2.261505E+005 +46 2.953342E-001 +47 1.327953E+003 +48 1.662863E+004 +49 3.519672E-005 +50 2.952362E-001 +51 2.053708E-006 +52 1.460882E-008 +53 4.869607E-009 +54 4.869607E-009 +55 1.011027E+004 +56 1.946654E+004 +57 4.616473E-001 +58 8.562263E+003 +59 4.913160E+002 +60 6.639406E+002 +61 1.726245E+002 +62 2.694659E+000 +63 8.318668E+001 +64 1.655415E+004 +65 1.157319E-001 +66 8.526237E-004 +67 2.557871E-003 +68 8.526237E-004 +69 3.060588E-006 +70 1.359703E-006 +71 1.726815E-006 +72 4.038028E-002 +73 2.548755E-001 +74 5.864532E+000 +75 5.025188E-006 +76 8.393581E-003 +77 8.508942E-002 +78 4.870236E-001 +79 3.310749E-002 +80 5.769602E-003 +81 0.000000E+000 +82 1.840505E+002 +83 3.067508E+002 +84 7.217086E-001 +85 2.731274E+000 +86 4.071953E-001 +87 1.181325E+004 +88 4.599607E+003 +89 1.266397E-003 +90 5.143548E-001 +91 5.053693E+002 +92 2.021477E+003 +93 1.539854E+003 +94 3.106755E-007 +95 1.059121E-007 +96 2.894931E-007 +97 8.401349E-003 +98 6.652766E-003 +99 4.654554E-008 +100 3.699992E-009 +101 1.585711E-009 +102 8.511945E-002 +103 3.613910E+000 +104 8.162738E-002 +105 2.782752E-002 +106 7.606187E-002 +107 2.207384E+003 +108 1.747958E+003 +109 1.222945E-002 +110 9.721418E-004 +111 4.166322E-004 +112 3.378208E+002 +113 1.034444E+002 +114 5.093222E+001 +115 2.143790E-002 +116 1.048334E+002 +117 7.896876E-010 +118 4.112856E-008 +119 2.331060E-008 +120 6.391704E-007 +121 6.666391E-003 +122 3.620370E-003 +123 1.987321E-002 +124 6.605320E-003 +125 1.854377E+001 +126 1.934069E+003 +127 3.467383E+001 +128 6.060763E+001 +129 1.082220E+001 +130 7.521892E-005 +131 2.055984E-004 +132 2.206422E-004 +133 5.966649E+000 +134 4.724803E+000 +135 3.305671E-005 +136 2.627739E-006 +137 1.126174E-006 +138 1.361826E-004 +139 2.427771E-005 +140 6.648683E-005 +141 1.288731E-004 diff --git a/tests/model_tests/spec_model_kpp/output/reactionRates/41400.cmp b/tests/model_tests/spec_model_kpp/output/reactionRates/41400.cmp new file mode 100644 index 000000000..b997b5c3e --- /dev/null +++ b/tests/model_tests/spec_model_kpp/output/reactionRates/41400.cmp @@ -0,0 +1,142 @@ + reactionNumber reactionRate +1 5.055997E+008 +2 3.046933E+001 +3 5.315132E+002 +4 5.360791E+003 +5 1.061267E+003 +6 1.767132E+006 +7 3.249703E+008 +8 1.313480E+006 +9 1.105585E+002 +10 1.151456E+006 +11 5.660338E+001 +12 1.181875E+005 +13 1.744039E+005 +14 2.664537E+004 +15 1.517295E+000 +16 6.691021E+005 +17 1.230508E+001 +18 3.015456E+003 +19 1.785144E+002 +20 3.702393E+001 +21 2.057102E+005 +22 4.576551E+005 +23 1.664201E+001 +24 7.243348E+005 +25 1.367751E+005 +26 1.115070E+001 +27 1.327229E+001 +28 1.186397E+003 +29 4.531830E+003 +30 0.000000E+000 +31 0.000000E+000 +32 0.000000E+000 +33 2.609117E+005 +34 2.363584E+003 +35 0.000000E+000 +36 1.954985E+006 +37 1.807127E+008 +38 2.849569E+001 +39 3.231187E+008 +40 2.091940E+004 +41 1.423592E+005 +42 2.940676E+005 +43 5.360096E+003 +44 1.147531E+005 +45 1.384440E+005 +46 3.551592E-001 +47 1.299248E+003 +48 7.996526E+003 +49 2.812677E-005 +50 3.542794E-001 +51 3.502396E-006 +52 1.166071E-008 +53 3.886903E-009 +54 3.886903E-009 +55 6.514964E+003 +56 1.377228E+004 +57 5.514376E-001 +58 4.089875E+003 +59 4.806583E+002 +60 6.495382E+002 +61 1.688799E+002 +62 8.636770E-001 +63 4.003686E+001 +64 7.967335E+003 +65 7.916064E-002 +66 2.729587E-004 +67 8.188762E-004 +68 2.729587E-004 +69 1.604429E-006 +70 7.127872E-007 +71 1.305306E-006 +72 4.856808E-002 +73 3.065559E-001 +74 2.916113E+000 +75 7.267292E-006 +76 4.854036E-003 +77 6.204950E-002 +78 4.763048E-001 +79 2.782269E-002 +80 6.018855E-003 +81 0.000000E+000 +82 1.800660E+002 +83 3.001100E+002 +84 3.474026E-001 +85 1.314729E+000 +86 2.826341E-001 +87 5.494651E+003 +88 2.139397E+003 +89 6.117110E-004 +90 6.293015E-001 +91 2.472522E+002 +92 9.890088E+002 +93 1.014236E+003 +94 1.416239E-007 +95 4.828089E-008 +96 1.319678E-007 +97 5.750921E-003 +98 5.653090E-003 +99 4.528106E-008 +100 1.684700E-009 +101 7.220143E-010 +102 6.215652E-002 +103 1.917289E+000 +104 3.517456E-002 +105 1.199133E-002 +106 3.277630E-002 +107 1.428333E+003 +108 1.404035E+003 +109 1.124627E-002 +110 4.184221E-004 +111 1.793237E-004 +112 2.789593E+002 +113 6.969201E+001 +114 4.205785E+001 +115 2.530795E-002 +116 4.948911E+001 +117 3.998627E-010 +118 2.071119E-008 +119 1.692645E-008 +120 3.060549E-007 +121 6.538980E-003 +122 1.819212E-003 +123 9.925793E-003 +124 4.757095E-003 +125 8.623458E+000 +126 1.842435E+003 +127 1.716615E+001 +128 3.000534E+001 +129 5.357803E+000 +130 2.138957E-005 +131 5.846481E-005 +132 6.274272E-005 +133 2.547793E+000 +134 2.504451E+000 +135 2.006057E-005 +136 7.463615E-007 +137 3.198692E-007 +138 1.023091E-004 +139 1.058268E-005 +140 4.413310E-005 +141 6.242241E-005 diff --git a/tests/model_tests/spec_model_kpp/output/reactionRates/43200.cmp b/tests/model_tests/spec_model_kpp/output/reactionRates/43200.cmp new file mode 100644 index 000000000..7bd54d5e9 --- /dev/null +++ b/tests/model_tests/spec_model_kpp/output/reactionRates/43200.cmp @@ -0,0 +1,142 @@ + reactionNumber reactionRate +1 3.804849E+008 +2 2.263773E+001 +3 2.992236E+002 +4 4.480957E+003 +5 8.870874E+002 +6 5.052109E+005 +7 2.400126E+008 +8 1.440369E+006 +9 6.187204E+001 +10 1.243571E+006 +11 9.076651E+001 +12 1.895199E+005 +13 4.986086E+004 +14 8.617664E+003 +15 5.202546E-001 +16 2.191566E+005 +17 4.135042E+000 +18 1.320971E+003 +19 2.594794E+001 +20 7.289282E+000 +21 5.041219E+004 +22 1.665245E+005 +23 7.870576E+000 +24 2.404316E+005 +25 6.740922E+004 +26 1.810161E+000 +27 8.501963E+000 +28 2.218039E+002 +29 1.486533E+003 +30 0.000000E+000 +31 0.000000E+000 +32 0.000000E+000 +33 2.612558E+005 +34 3.759983E+003 +35 0.000000E+000 +36 5.551140E+005 +37 1.443627E+008 +38 1.575066E+001 +39 2.354574E+008 +40 2.480471E+004 +41 1.661212E+005 +42 1.066008E+005 +43 2.304266E+003 +44 1.825489E+005 +45 6.860578E+004 +46 5.090814E-001 +47 1.273572E+003 +48 2.600890E+003 +49 2.387214E-005 +50 5.069527E-001 +51 9.671809E-006 +52 1.027678E-008 +53 3.425592E-009 +54 3.425592E-009 +55 3.101579E+003 +56 7.581674E+003 +57 7.819834E-001 +58 1.316036E+003 +59 4.712216E+002 +60 6.367860E+002 +61 1.655644E+002 +62 1.667606E-001 +63 1.303323E+001 +64 2.593613E+003 +65 4.973044E-002 +66 5.472673E-005 +67 1.641802E-004 +68 5.472673E-005 +69 5.568249E-007 +70 2.473762E-007 +71 7.568365E-007 +72 6.950648E-002 +73 4.387166E-001 +74 9.625399E-001 +75 1.306185E-005 +76 1.979664E-003 +77 3.430874E-002 +78 4.668625E-001 +79 2.040425E-002 +80 6.553835E-003 +81 0.000000E+000 +82 1.765233E+002 +83 2.942055E+002 +84 1.127031E-001 +85 4.265199E-001 +86 1.531861E-001 +87 1.867224E+003 +88 7.270226E+002 +89 1.990876E-004 +90 9.074772E-001 +91 8.090468E+001 +92 3.236187E+002 +93 4.920499E+002 +94 4.882188E-008 +95 1.664382E-008 +96 4.549311E-008 +97 3.342452E-003 +98 4.878359E-003 +99 5.078849E-008 +100 6.030603E-010 +101 2.584544E-010 +102 3.437477E-002 +103 6.774710E-001 +104 1.207451E-002 +105 4.116312E-003 +106 1.125125E-002 +107 8.266475E+002 +108 1.206505E+003 +109 1.256089E-002 +110 1.491475E-004 +111 6.392035E-005 +112 1.976717E+002 +113 3.543077E+001 +114 2.980237E+001 +115 3.484021E-002 +116 1.545931E+001 +117 1.328976E-010 +118 6.861200E-009 +119 9.368125E-009 +120 9.540559E-008 +121 6.222372E-003 +122 6.024930E-004 +123 3.275723E-003 +124 2.622863E-003 +125 2.619606E+000 +126 1.708512E+003 +127 5.063428E+000 +128 8.850548E+000 +129 1.580368E+000 +130 3.201078E-006 +131 8.749613E-006 +132 9.389828E-006 +133 6.428481E-001 +134 9.382466E-001 +135 9.768064E-006 +136 1.159856E-007 +137 4.970810E-008 +138 6.637514E-005 +139 3.099629E-006 +140 2.187761E-005 +141 2.019077E-005 diff --git a/tests/model_tests/spec_model_kpp/output/reactionRates/45000.cmp b/tests/model_tests/spec_model_kpp/output/reactionRates/45000.cmp new file mode 100644 index 000000000..059b98268 --- /dev/null +++ b/tests/model_tests/spec_model_kpp/output/reactionRates/45000.cmp @@ -0,0 +1,142 @@ + reactionNumber reactionRate +1 1.792636E+008 +2 1.041975E+001 +3 6.013668E+001 +4 2.484397E+003 +5 4.918318E+002 +6 2.961340E+004 +7 1.000213E+008 +8 1.655918E+006 +9 1.125828E+001 +10 1.333617E+006 +11 2.685300E+002 +12 5.606889E+005 +13 2.922640E+003 +14 1.117582E+003 +15 7.038078E-002 +16 2.909103E+004 +17 5.625891E-001 +18 4.137510E+002 +19 1.104332E+000 +20 7.492680E-001 +21 2.854597E+003 +22 2.601322E+004 +23 2.626629E+000 +24 3.288188E+004 +25 2.543261E+004 +26 9.106435E-002 +27 6.852786E+000 +28 1.835556E+001 +29 1.958773E+002 +30 0.000000E+000 +31 0.000000E+000 +32 0.000000E+000 +33 2.593314E+005 +34 1.078634E+004 +35 0.000000E+000 +36 3.251472E+004 +37 8.749321E+007 +38 3.748953E+000 +39 9.160454E+007 +40 3.810267E+004 +41 2.422565E+005 +42 2.016774E+004 +43 3.461634E+002 +44 5.236818E+005 +45 2.599988E+004 +46 1.276200E+000 +47 1.240660E+003 +48 3.442725E+002 +49 4.429796E-005 +50 1.251620E+000 +51 1.407329E-004 +52 2.322407E-008 +53 7.741357E-009 +54 7.741357E-009 +55 5.363081E+002 +56 1.754426E+003 +57 1.952744E+000 +58 1.735259E+002 +59 4.590442E+002 +60 6.203300E+002 +61 1.612858E+002 +62 1.667213E-002 +63 1.733654E+000 +64 3.449971E+002 +65 3.898661E-002 +66 6.663252E-006 +67 1.998976E-005 +68 6.663252E-006 +69 7.885252E-008 +70 3.503118E-008 +71 1.925499E-007 +72 1.714576E-001 +73 1.082220E+000 +74 1.280122E-001 +75 4.609781E-005 +76 3.689061E-004 +77 7.545378E-003 +78 4.547916E-001 +79 8.479082E-003 +80 7.513294E-003 +81 0.000000E+000 +82 1.719656E+002 +83 2.866093E+002 +84 1.491030E-002 +85 5.642735E-002 +86 3.640945E-002 +87 2.483536E+002 +88 9.669897E+001 +89 2.637670E-005 +90 2.278970E+000 +91 1.072816E+001 +92 4.291263E+001 +93 8.776743E+001 +94 1.379017E-008 +95 4.701193E-009 +96 1.284993E-008 +97 1.256125E-003 +98 5.057641E-003 +99 1.124905E-007 +100 2.074459E-010 +101 8.890539E-011 +102 7.715843E-003 +103 9.636254E-002 +104 3.580826E-003 +105 1.220736E-003 +106 3.336679E-003 +107 3.261719E+002 +108 1.313293E+003 +109 2.920987E-002 +110 5.386648E-005 +111 2.308563E-005 +112 8.565325E+001 +113 7.416118E+000 +114 1.291368E+001 +115 8.433424E-002 +116 1.975886E+000 +117 1.772073E-011 +118 9.138270E-010 +119 2.241614E-009 +120 1.199847E-008 +121 5.895051E-003 +122 8.026572E-005 +123 4.358672E-004 +124 6.269993E-004 +125 3.244876E-001 +126 1.594262E+003 +127 6.733344E-001 +128 1.176946E+000 +129 2.101573E-001 +130 1.564267E-007 +131 4.275662E-007 +132 4.588515E-007 +133 4.179607E-002 +134 1.682871E-001 +135 3.742989E-006 +136 6.902518E-009 +137 2.958222E-009 +138 2.641836E-005 +139 3.828659E-007 +140 4.262520E-006 +141 2.665504E-006 diff --git a/tests/model_tests/spec_model_kpp/output/reactionRates/46800.cmp b/tests/model_tests/spec_model_kpp/output/reactionRates/46800.cmp new file mode 100644 index 000000000..21587228b --- /dev/null +++ b/tests/model_tests/spec_model_kpp/output/reactionRates/46800.cmp @@ -0,0 +1,142 @@ + reactionNumber reactionRate +1 5.583413E+004 +2 3.182074E-003 +3 6.146133E-006 +4 8.448646E-001 +5 1.672564E-001 +6 1.188699E-004 +7 3.218052E+004 +8 1.772732E+006 +9 1.212222E-006 +10 1.221075E+004 +11 8.181023E+003 +12 1.708192E+007 +13 1.173164E-005 +14 9.115629E+000 +15 5.865500E-004 +16 2.420024E+002 +17 4.794999E-003 +18 2.238905E+002 +19 5.070046E-003 +20 2.282123E-001 +21 7.792222E-003 +22 2.362730E+002 +23 6.097003E-001 +24 5.954737E+000 +25 1.532500E+004 +26 4.437057E-004 +27 1.055296E+002 +28 1.407469E-001 +29 1.612556E+000 +30 0.000000E+000 +31 0.000000E+000 +32 0.000000E+000 +33 2.566399E+005 +34 3.197479E+005 +35 0.000000E+000 +36 4.374031E-015 +37 5.568211E+004 +38 6.448970E-011 +39 1.489789E-002 +40 9.477397E+001 +41 1.531773E+002 +42 4.696564E-007 +43 1.615980E-010 +44 1.552391E+007 +45 1.522847E+004 +46 3.555697E+001 +47 1.214641E+003 +48 2.859654E+000 +49 2.102921E-002 +50 3.532774E-001 +51 3.377848E+000 +52 6.000635E-005 +53 2.000212E-005 +54 2.000212E-005 +55 1.832109E-011 +56 1.447079E-009 +57 5.462603E+001 +58 1.447184E+000 +59 4.494174E+002 +60 6.073207E+002 +61 1.579034E+002 +62 6.552263E-003 +63 4.051042E-004 +64 8.061573E-002 +65 7.746776E-001 +66 1.425299E-005 +67 4.275898E-005 +68 1.425299E-005 +69 4.943451E-009 +70 2.196188E-009 +71 2.698343E-017 +72 5.102838E-001 +73 3.220851E+000 +74 1.065048E-003 +75 2.848777E-003 +76 6.796720E-006 +77 2.993421E-015 +78 4.452594E-001 +79 2.723990E-006 +80 8.031389E-003 +81 0.000000E+000 +82 1.683616E+002 +83 2.806027E+002 +84 1.240064E-004 +85 4.692968E-004 +86 6.768792E-013 +87 6.156525E-001 +88 2.397105E-001 +89 2.194113E-007 +90 6.357622E+001 +91 8.922502E-002 +92 3.569001E-001 +93 9.255469E-012 +94 1.216131E-008 +95 4.145903E-009 +96 1.133213E-008 +97 6.586398E-007 +98 8.824027E-003 +99 5.015707E-006 +100 9.957161E-010 +101 4.267355E-010 +102 -1.308899E-008 +103 8.533145E-004 +104 2.253374E-003 +105 7.681959E-004 +106 2.099735E-003 +107 1.220396E-001 +108 1.635007E+003 +109 9.293622E-001 +110 1.844966E-004 +111 7.906998E-005 +112 3.884634E-006 +113 9.887578E-012 +114 5.856746E-007 +115 2.333477E+000 +116 1.629922E-002 +117 1.476535E-013 +118 7.614383E-012 +119 4.175137E-020 +120 1.012578E-010 +121 5.980376E-003 +122 6.686401E-007 +123 3.630905E-006 +124 1.167527E-014 +125 2.662156E-003 +126 1.572294E+003 +127 7.678880E-001 +128 1.342219E+000 +129 2.396689E-001 +130 1.123586E-007 +131 3.071134E-007 +132 3.295852E-007 +133 1.784987E-005 +134 2.391409E-001 +135 1.359312E-004 +136 2.698501E-008 +137 1.156501E-008 +138 6.055046E-013 +139 3.140840E-009 +140 2.821239E-017 +141 2.216415E-008 diff --git a/tests/model_tests/spec_model_kpp/output/reactionRates/48600.cmp b/tests/model_tests/spec_model_kpp/output/reactionRates/48600.cmp new file mode 100644 index 000000000..d09f504bb --- /dev/null +++ b/tests/model_tests/spec_model_kpp/output/reactionRates/48600.cmp @@ -0,0 +1,142 @@ + reactionNumber reactionRate +1 -5.724349E-009 +2 -3.244928E-016 +3 -2.105544E-019 +4 -8.158356E-014 +5 -1.615096E-014 +6 -2.080434E-089 +7 1.069541E+004 +8 1.660736E+006 +9 1.353488E-007 +10 1.216783E+004 +11 2.297904E+004 +12 4.798008E+007 +13 -2.053246E-090 +14 1.703092E+001 +15 1.101763E-003 +16 4.545722E+002 +17 9.227951E-003 +18 3.073737E+002 +19 1.314492E-002 +20 4.347750E-001 +21 4.890807E-003 +22 4.180098E+002 +23 3.415344E+000 +24 2.746385E+000 +25 1.992289E+004 +26 1.085507E-003 +27 4.343822E+002 +28 2.643749E-001 +29 2.995848E+000 +30 -0.000000E+000 +31 0.000000E+000 +32 0.000000E+000 +33 2.538318E+005 +34 9.569409E+005 +35 0.000000E+000 +36 0.000000E+000 +37 0.000000E+000 +38 0.000000E+000 +39 0.000000E+000 +40 0.000000E+000 +41 0.000000E+000 +42 0.000000E+000 +43 0.000000E+000 +44 4.645993E+007 +45 1.983403E+004 +46 1.058779E+002 +47 1.206319E+003 +48 5.363426E+000 +49 2.190066E-001 +50 8.906834E-001 +51 7.600578E+001 +52 2.670725E-003 +53 8.902415E-004 +54 8.902415E-004 +55 0.000000E+000 +56 0.000000E+000 +57 1.634212E+002 +58 2.726972E+000 +59 4.463381E+002 +60 6.031595E+002 +61 1.568215E+002 +62 1.793589E-002 +63 2.684550E-004 +64 5.342256E-002 +65 4.581681E+000 +66 1.667383E-004 +67 5.002148E-004 +68 1.667383E-004 +69 3.357650E-007 +70 1.491676E-007 +71 0.000000E+000 +72 1.052880E+001 +73 6.645650E+001 +74 2.000562E-003 +75 6.250347E-002 +76 9.392756E-005 +77 0.000000E+000 +78 4.422092E-001 +79 9.039744E-007 +80 7.512671E-003 +81 0.000000E+000 +82 1.672082E+002 +83 2.786804E+002 +84 2.329644E-004 +85 8.816432E-004 +86 0.000000E+000 +87 3.330106E+000 +88 1.296610E+000 +89 4.131091E-007 +90 1.893601E+002 +91 1.673896E-001 +92 6.695584E-001 +93 0.000000E+000 +94 1.495338E-007 +95 5.097743E-008 +96 1.393383E-007 +97 1.960560E-006 +98 7.403756E-002 +99 1.332488E-004 +100 5.232293E-008 +101 2.242411E-008 +102 -6.568418E-076 +103 1.701680E-003 +104 3.625706E-003 +105 1.236036E-003 +106 3.378499E-003 +107 4.753717E-002 +108 1.795169E+003 +109 3.230848E+000 +110 1.268660E-003 +111 5.437115E-004 +112 0.000000E+000 +113 0.000000E+000 +114 0.000000E+000 +115 6.950376E+000 +116 3.057874E-002 +117 2.804944E-013 +118 1.443879E-011 +119 0.000000E+000 +120 3.728317E-010 +121 1.172276E-002 +122 1.258750E-006 +123 6.833394E-006 +124 0.000000E+000 +125 5.115941E-003 +126 1.608580E+003 +127 2.281319E+000 +128 3.987600E+000 +129 7.120323E-001 +130 4.892009E-007 +131 1.337149E-006 +132 1.434989E-006 +133 1.881436E-005 +134 7.104956E-001 +135 1.278711E-003 +136 5.021128E-007 +137 2.151912E-007 +138 0.000000E+000 +139 5.903464E-009 +140 0.000000E+000 +141 4.164232E-008 diff --git a/tests/model_tests/spec_model_kpp/output/reactionRates/50400.cmp b/tests/model_tests/spec_model_kpp/output/reactionRates/50400.cmp new file mode 100644 index 000000000..ab79f2112 --- /dev/null +++ b/tests/model_tests/spec_model_kpp/output/reactionRates/50400.cmp @@ -0,0 +1,142 @@ + reactionNumber reactionRate +1 2.431715E-012 +2 1.371630E-019 +3 9.660235E-023 +4 3.267957E-017 +5 6.469519E-018 +6 2.036459E-093 +7 1.149422E+004 +8 1.558235E+006 +9 1.578803E-007 +10 1.773420E+004 +11 2.924022E+004 +12 6.105339E+007 +13 2.009845E-094 +14 2.452350E+001 +15 1.594363E-003 +16 6.578122E+002 +17 1.366553E-002 +18 3.813621E+002 +19 2.371823E-002 +20 6.759516E-001 +21 7.643923E-003 +22 5.703909E+002 +23 6.669529E+000 +24 3.698484E+000 +25 2.342422E+004 +26 1.850776E-003 +27 7.309020E+002 +28 3.825752E-001 +29 4.288896E+000 +30 0.000000E+000 +31 0.000000E+000 +32 0.000000E+000 +33 2.511151E+005 +34 1.227601E+006 +35 0.000000E+000 +36 0.000000E+000 +37 0.000000E+000 +38 0.000000E+000 +39 0.000000E+000 +40 0.000000E+000 +41 0.000000E+000 +42 0.000000E+000 +43 0.000000E+000 +44 5.960059E+007 +45 2.336862E+004 +46 1.426600E+002 +47 1.198513E+003 +48 7.749550E+000 +49 3.612994E-001 +50 1.272754E+000 +51 1.357040E+002 +52 4.631375E-003 +53 1.543792E-003 +54 1.543792E-003 +55 0.000000E+000 +56 0.000000E+000 +57 2.211794E+002 +58 3.957804E+000 +59 4.434497E+002 +60 5.992564E+002 +61 1.558066E+002 +62 2.631270E-002 +63 3.411343E-004 +64 6.788572E-002 +65 7.274505E+000 +66 2.571276E-004 +67 7.713827E-004 +68 2.571276E-004 +69 1.700112E-006 +70 7.552952E-007 +71 0.000000E+000 +72 1.871531E+001 +73 1.181288E+002 +74 2.895016E-003 +75 3.090297E-001 +76 4.979967E-004 +77 0.000000E+000 +78 4.393480E-001 +79 9.700044E-007 +80 7.038212E-003 +81 0.000000E+000 +82 1.661263E+002 +83 2.768772E+002 +84 3.372079E-004 +85 1.276148E-003 +86 0.000000E+000 +87 5.283263E+000 +88 2.057091E+000 +89 6.013415E-007 +90 2.550066E+002 +91 2.417290E-001 +92 9.669161E-001 +93 0.000000E+000 +94 9.777988E-007 +95 3.333405E-007 +96 9.111307E-007 +97 1.110456E-005 +98 3.661203E-001 +99 9.429953E-004 +100 3.596441E-007 +101 1.541332E-007 +102 6.429635E-080 +103 2.601646E-003 +104 5.126523E-003 +105 1.747679E-003 +106 4.776988E-003 +107 5.822036E-002 +108 1.919540E+003 +109 4.944051E+000 +110 1.885586E-003 +111 8.081085E-004 +112 0.000000E+000 +113 0.000000E+000 +114 0.000000E+000 +115 9.360237E+000 +116 4.416066E-002 +117 4.509962E-013 +118 2.270852E-011 +119 0.000000E+000 +120 2.650972E-009 +121 5.760009E-002 +122 1.828182E-006 +123 9.916661E-006 +124 0.000000E+000 +125 7.680143E-003 +126 1.668735E+003 +127 3.073281E+000 +128 5.371898E+000 +129 9.592150E-001 +130 8.709093E-007 +131 2.380485E-006 +132 2.554667E-006 +133 2.901258E-005 +134 9.565521E-001 +135 2.463737E-003 +136 9.396320E-007 +137 4.026994E-007 +138 0.000000E+000 +139 8.556520E-009 +140 0.000000E+000 +141 6.029258E-008 diff --git a/tests/model_tests/spec_model_kpp/output/speciesConcentrations.output.cmp b/tests/model_tests/spec_model_kpp/output/speciesConcentrations.output.cmp new file mode 100644 index 000000000..231d3dc35 --- /dev/null +++ b/tests/model_tests/spec_model_kpp/output/speciesConcentrations.output.cmp @@ -0,0 +1,32 @@ + t CO O3 NO NO2 C2H4 OH HO2 ETHENO3O2 HOCH2CH2O2 NO3CH2CO3 HOCH2CO3 HCOCO3 + 2.340000E+004 4.800000E+012 6.110000E+011 6.800000E+010 8.370000E+010 2.760000E+009 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 0.000000E+000 + 2.430000E+004 4.796633E+012 6.163608E+011 7.065953E+010 7.744115E+010 2.690022E+009 4.149617E+006 7.682670E+006 4.755265E-001 1.358277E+005 1.543195E-003 2.907844E+002 1.104317E-001 + 2.520000E+004 4.792251E+012 6.176982E+011 6.885875E+010 7.565352E+010 2.601894E+009 4.826991E+006 9.183572E+006 4.740316E-001 1.568539E+005 3.464636E-003 7.788542E+002 6.561231E-001 + 2.610000E+004 4.787431E+012 6.191966E+011 6.699721E+010 7.395202E+010 2.508167E+009 5.138277E+006 1.005456E+007 4.729817E-001 1.654383E+005 5.345739E-003 1.340879E+003 1.763351E+000 + 2.700000E+004 4.782420E+012 6.207836E+011 6.509101E+010 7.234147E+010 2.414064E+009 5.277412E+006 1.063286E+007 4.729999E-001 1.683369E+005 7.091283E-003 1.918889E+003 3.394120E+000 + 2.790000E+004 4.777341E+012 6.224167E+011 6.315771E+010 7.083095E+010 2.322054E+009 5.316767E+006 1.104092E+007 4.743649E-001 1.681243E+005 8.678147E-003 2.482185E+003 5.437937E+000 + 2.880000E+004 4.772275E+012 6.240632E+011 6.121446E+010 6.943171E+010 2.233527E+009 5.282332E+006 1.131628E+007 4.772404E-001 1.657697E+005 1.009366E-002 3.008284E+003 7.743539E+000 + 2.970000E+004 4.767286E+012 6.256915E+011 5.927671E+010 6.815622E+010 2.149408E+009 5.183187E+006 1.146381E+007 4.817732E-001 1.616517E+005 1.132481E-002 3.477448E+003 1.013204E+001 + 3.060000E+004 4.762432E+012 6.272679E+011 5.735741E+010 6.701783E+010 2.070387E+009 5.022925E+006 1.147693E+007 4.881409E-001 1.559464E+005 1.235826E-002 3.872154E+003 1.241077E+001 + 3.150000E+004 4.757769E+012 6.287563E+011 5.546635E+010 6.603066E+010 1.996990E+009 4.804120E+006 1.134660E+007 4.965842E-001 1.487742E+005 1.318175E-002 4.177898E+003 1.439051E+001 + 3.240000E+004 4.753349E+012 6.301177E+011 5.360948E+010 6.520977E+010 1.929612E+009 4.530121E+006 1.106556E+007 5.074386E-001 1.402553E+005 1.378514E-002 4.384145E+003 1.590421E+001 + 3.330000E+004 4.749220E+012 6.313119E+011 5.178824E+010 6.457140E+010 1.868524E+009 4.205803E+006 1.063086E+007 5.211749E-001 1.305315E+005 1.416108E-002 4.485115E+003 1.682451E+001 + 3.420000E+004 4.745426E+012 6.322971E+011 4.999875E+010 6.413339E+010 1.813885E+009 3.837873E+006 1.004546E+007 5.384567E-001 1.197738E+005 1.430585E-002 4.480285E+003 1.707751E+001 + 3.510000E+004 4.742002E+012 6.330316E+011 4.823080E+010 6.391589E+010 1.765738E+009 3.434940E+006 9.319328E+006 5.602286E-001 1.081854E+005 1.422003E-002 4.374573E+003 1.665086E+001 + 3.600000E+004 4.738974E+012 6.334729E+011 4.646649E+010 6.394234E+010 1.724018E+009 3.007413E+006 8.469928E+006 5.878570E-001 9.600101E+004 1.390953E-002 4.178165E+003 1.559465E+001 + 3.690000E+004 4.736361E+012 6.335784E+011 4.467841E+010 6.424102E+010 1.688554E+009 2.567240E+006 7.522152E+006 6.233660E-001 8.348423E+004 1.338653E-002 3.905991E+003 1.401473E+001 + 3.780000E+004 4.734165E+012 6.333028E+011 4.282705E+010 6.484739E+010 1.659073E+009 2.127500E+006 6.507484E+006 6.698555E-001 7.092286E+004 1.267058E-002 3.576873E+003 1.205928E+001 + 3.870000E+004 4.732380E+012 6.325959E+011 4.085686E+010 6.580784E+010 1.635199E+009 1.701866E+006 5.462519E+006 7.322872E-001 5.862190E+004 1.178976E-002 3.212388E+003 9.900338E+000 + 3.960000E+004 4.730984E+012 6.313959E+011 3.869029E+010 6.718552E+010 1.616462E+009 1.303930E+006 4.426893E+006 8.190728E-001 4.689441E+004 1.078196E-002 2.835582E+003 7.713170E+000 + 4.050000E+004 4.729944E+012 6.296199E+011 3.621828E+010 6.906978E+010 1.602299E+009 9.464362E+005 3.440826E+006 9.455781E-001 3.605019E+004 9.696266E-003 2.469654E+003 5.656480E+000 + 4.140000E+004 4.729217E+012 6.271471E+011 3.328489E+010 7.159162E+010 1.592066E+009 6.404176E+005 2.542489E+006 1.142778E+000 2.638217E+004 8.594791E-003 2.136801E+003 3.856507E+000 + 4.230000E+004 4.728748E+012 6.237923E+011 2.966302E+010 7.494822E+010 1.585053E+009 3.942002E+005 1.765376E+006 1.482114E+000 1.814990E+004 7.554857E-003 1.857442E+003 2.396899E+000 + 4.320000E+004 4.728478E+012 6.192683E+011 2.502019E+010 7.943745E+010 1.580511E+009 2.121955E+005 1.135651E+006 2.163788E+000 1.155817E+004 6.671593E-003 1.650040E+003 1.314810E+000 + 4.410000E+004 4.728347E+012 6.131640E+011 1.890162E+010 8.547464E+010 1.577694E+009 9.331138E+004 6.690434E+005 3.950797E+000 6.724972E+003 6.059757E-003 1.531717E+003 6.015910E-001 + 4.500000E+004 4.728297E+012 6.051496E+011 1.094758E+010 9.336946E+010 1.575919E+009 2.906148E+004 3.660405E+005 1.193980E+001 3.623624E+003 5.848019E-003 1.517984E+003 2.058421E-001 + 4.590000E+004 4.728286E+012 5.966022E+011 2.581539E+009 1.015525E+011 1.574651E+009 3.729359E+003 2.073880E+005 1.507696E+002 1.998742E+003 6.189569E-003 1.603034E+003 5.657250E-002 + 4.680000E+004 4.728286E+012 5.930215E+011 4.414287E+006 1.024178E+011 1.573529E+009 2.258981E+002 1.960032E+005 1.025227E+004 2.468589E+003 9.214619E-003 1.729437E+003 2.450336E-001 + 4.770000E+004 4.728286E+012 5.914391E+011 9.870494E+005 9.946339E+010 1.572385E+009 3.198740E+002 2.322064E+005 4.697112E+004 4.026377E+003 2.240699E-002 1.872777E+003 5.465698E-001 + 4.860000E+004 4.728287E+012 5.899067E+011 1.153006E+006 9.658467E+010 1.571212E+009 4.205177E+002 2.692791E+005 8.094337E+004 4.943400E+003 7.728059E-002 2.011169E+003 7.854358E-001 + 4.950000E+004 4.728287E+012 5.884212E+011 1.224455E+006 9.378848E+010 1.570018E+009 5.201738E+002 3.051487E+005 1.005290E+005 5.461889E+003 2.057343E-001 2.146950E+003 9.767847E-001 + 5.040000E+004 4.728288E+012 5.869815E+011 1.251606E+006 9.107410E+010 1.568811E+009 6.126092E+002 3.369418E+005 1.091143E+005 5.838642E+003 4.192599E-001 2.281948E+003 1.132266E+000 diff --git a/tests/model_tests/spec_model_kpp/spec_model_kpp.kpp b/tests/model_tests/spec_model_kpp/spec_model_kpp.kpp new file mode 100644 index 000000000..947126376 --- /dev/null +++ b/tests/model_tests/spec_model_kpp/spec_model_kpp.kpp @@ -0,0 +1,367 @@ +{******************************************************************** ; +* A citation to the MCM website and the relevant mechanism * ; +* construction protocols should be given in any publication using * ; +* information obtained from this source, using the following or * ; +* comparable wording: * ; +* The chemical mechanistic information was taken from the Master * ; +* Chemical Mechanism, MCM v3.3.1 (ref), via website: * ; +* http://mcm.york.ac.uk/. * ; +* The reference should be: (Jenkin et al., Atmos. Environ., 31, 81, * ; +* 1997; Saunders et al., Atmos. Chem. Phys., 3, 161, 2003), for * ; +* non aromatic schemes; (Jenkin et al., Atmos. Chem. Phys., 3, * ; +* 181, 2003; Bloss et al., Atmos. Chem. Phys., 5, 641, 2005), for * ; +* aromatic schemes; and (Jenkin et al., Atmos. Chem. Phys., 12, * ; +* 5275, 2012), for the beta-caryophyllene scheme. * ; +********************************************************************* ;} +#INLINE F90_GLOBAL + REAL(dp)::M, N2, O2, RO2, H2O + #ENDINLINE {above lines go into MODULE KPP_ROOT_Global} +#INCLUDE atoms +#DEFVAR + = IGNORE ; +HCHO = IGNORE ; +HCOCO = IGNORE ; +ETHENO3O = IGNORE ; +NO3CH2CO3 = IGNORE ; +O1D = IGNORE ; +NO3CH2CO3H = IGNORE ; +O3 = IGNORE ; +HO2NO2 = IGNORE ; +NO3 = IGNORE ; +N2O5 = IGNORE ; +H2O2 = IGNORE ; +NO = IGNORE ; +NA = IGNORE ; +HCOCO3H = IGNORE ; +ETHO2HNO3 = IGNORE ; +PHAN = IGNORE ; +NO3CH2CHO = IGNORE ; +HO2 = IGNORE ; +NO2 = IGNORE ; +HOCH2CHO = IGNORE ; +HSO3 = IGNORE ; +NO3CH2CO2H = IGNORE ; +CO = IGNORE ; +HOCH2CO3 = IGNORE ; +HOCH2CH2O2 = IGNORE ; +O = IGNORE ; +HNO3 = IGNORE ; +SO3 = IGNORE ; +SO2 = IGNORE ; +CH2OOA = IGNORE ; +HCOCO3 = IGNORE ; +HOCH2CH2O = IGNORE ; +C2H4 = IGNORE ; +HOCH2CO2H = IGNORE ; +ETHOHNO3 = IGNORE ; +NO3CH2PAN = IGNORE ; +HOCH2CO3H = IGNORE ; +OH = IGNORE ; +H2 = IGNORE ; +HONO = IGNORE ; +ETHGLY = IGNORE ; +CH2OO = IGNORE ; +HCOOH = IGNORE ; +HYETHO2H = IGNORE ; +HCOCO2H = IGNORE ; +GLYOX = IGNORE ; +ETHENO3O2 = IGNORE ; +HCOCH2O = IGNORE ; +SA = IGNORE ; +{ Peroxy radicals. } +{ WARNING: The following species do not have SMILES strings in the database. + If any of these are peroxy radicals the RO2 sum will be wrong. + } +#INLINE F90_RCONST + USE constants + !end of USE statements + ! + ! start of executable statements + RO2 = & + C(ind_ETHENO3O2) + C(ind_HOCH2CH2O2) + C(ind_NO3CH2CO3) + C(ind_HOCH2CO3) + & + C(ind_HCOCO3 ) + KRO2NO = 2.7D-12*EXP(360/TEMP) +KRO2HO2 = 2.91D-13*EXP(1300/TEMP) +KAPHO2 = 5.2D-13*EXP(980/TEMP) +KAPNO = 7.5D-12*EXP(290/TEMP) +KRO2NO3 = 2.3D-12 +KNO3AL = 1.44D-12*EXP(-1862/TEMP) +KDEC = 1.00D+06 +KROPRIM = 2.50D-14*EXP(-300/TEMP) +KROSEC = 2.50D-14*EXP(-300/TEMP) +KCH3O2 = 1.03D-13*EXP(365/TEMP) +K298CH3O2 = 3.5D-13 +K14ISOM1 = 3.00D7*EXP(-5300/TEMP) +KD0 = 1.10D-05*M*EXP(-10100/TEMP) +KDI = 1.90D17*EXP(-14100/TEMP) +KRD = KD0/KDI +FCD = 0.30 +NCD = 0.75-1.27*(LOG10(FCD)) +FD = 10**(LOG10(FCD)/(1+(LOG10(KRD)/NCD)**2)) +KBPAN = (KD0*KDI)*FD/(KD0+KDI) +KC0 = 3.28D-28*M*(TEMP/300)**-6.87 +KCI = 1.125D-11*(TEMP/300)**-1.105 +KRC = KC0/KCI +FCC = 0.30 +NC = 0.75-1.27*(LOG10(FCC)) +FC = 10**(LOG10(FCC)/(1+(LOG10(KRC)/NC)**2)) +KFPAN = (KC0*KCI)*FC/(KC0+KCI) +K10 = 1.0D-31*M*(TEMP/300)**-1.6 +K1I = 5.0D-11*(TEMP/300)**-0.3 +KR1 = K10/K1I +FC1 = 0.85 +NC1 = 0.75-1.27*(LOG10(FC1)) +F1 = 10**(LOG10(FC1)/(1+(LOG10(KR1)/NC1)**2)) +KMT01 = (K10*K1I)*F1/(K10+K1I) +K20 = 1.3D-31*M*(TEMP/300)**-1.5 +K2I = 2.3D-11*(TEMP/300)**0.24 +KR2 = K20/K2I +FC2 = 0.6 +NC2 = 0.75-1.27*(LOG10(FC2)) +F2 = 10**(LOG10(FC2)/(1+(LOG10(KR2)/NC2)**2)) +KMT02 = (K20*K2I)*F2/(K20+K2I) +K30 = 3.6D-30*M*(TEMP/300)**-4.1 +K3I = 1.9D-12*(TEMP/300)**0.2 +KR3 = K30/K3I +FC3 = 0.35 +NC3 = 0.75-1.27*(LOG10(FC3)) +F3 = 10**(LOG10(FC3)/(1+(LOG10(KR3)/NC3)**2)) +KMT03 = (K30*K3I)*F3/(K30+K3I) +K40 = 1.3D-3*M*(TEMP/300)**-3.5*EXP(-11000/TEMP) +K4I = 9.7D+14*(TEMP/300)**0.1*EXP(-11080/TEMP) +KR4 = K40/K4I +FC4 = 0.35 +NC4 = 0.75-1.27*(LOG10(FC4)) +F4 = 10**(LOG10(FC4)/(1+(LOG10(KR4)/NC4)**2)) +KMT04 = (K40*K4I)*F4/(K40+K4I) +KMT05 = 1.44D-13*(1+(M/4.2D+19)) +KMT06 = 1 + (1.40D-21*EXP(2200/TEMP)*H2O) +K70 = 7.4D-31*M*(TEMP/300)**-2.4 +K7I = 3.3D-11*(TEMP/300)**-0.3 +KR7 = K70/K7I +FC7 = 0.81 +NC7 = 0.75-1.27*(LOG10(FC7)) +F7 = 10**(LOG10(FC7)/(1+(LOG10(KR7)/NC7)**2)) +KMT07 = (K70*K7I)*F7/(K70+K7I) +K80 = 3.2D-30*M*(TEMP/300)**-4.5 +K8I = 3.0D-11 +KR8 = K80/K8I +FC8 = 0.41 +NC8 = 0.75-1.27*(LOG10(FC8)) +F8 = 10**(LOG10(FC8)/(1+(LOG10(KR8)/NC8)**2)) +KMT08 = (K80*K8I)*F8/(K80+K8I) +K90 = 1.4D-31*M*(TEMP/300)**-3.1 +K9I = 4.0D-12 +KR9 = K90/K9I +FC9 = 0.4 +NC9 = 0.75-1.27*(LOG10(FC9)) +F9 = 10**(LOG10(FC9)/(1+(LOG10(KR9)/NC9)**2)) +KMT09 = (K90*K9I)*F9/(K90+K9I) +K100 = 4.10D-05*M*EXP(-10650/TEMP) +K10I = 6.0D+15*EXP(-11170/TEMP) +KR10 = K100/K10I +FC10 = 0.4 +NC10 = 0.75-1.27*(LOG10(FC10)) +F10 = 10**(LOG10(FC10)/(1+(LOG10(KR10)/NC10)**2)) +KMT10 = (K100*K10I)*F10/(K100+K10I) +K1 = 2.40D-14*EXP(460/TEMP) +K3 = 6.50D-34*EXP(1335/TEMP) +K4 = 2.70D-17*EXP(2199/TEMP) +K2 = (K3*M)/(1+(K3*M/K4)) +KMT11 = K1 + K2 +K120 = 2.5D-31*M*(TEMP/300)**-2.6 +K12I = 2.0D-12 +KR12 = K120/K12I +FC12 = 0.53 +NC12 = 0.75-1.27*(LOG10(FC12)) +F12 = 10**(LOG10(FC12)/(1.0+(LOG10(KR12)/NC12)**2)) +KMT12 = (K120*K12I*F12)/(K120+K12I) +K130 = 2.5D-30*M*(TEMP/300)**-5.5 +K13I = 1.8D-11 +KR13 = K130/K13I +FC13 = 0.36 +NC13 = 0.75-1.27*(LOG10(FC13)) +F13 = 10**(LOG10(FC13)/(1+(LOG10(KR13)/NC13)**2)) +KMT13 = (K130*K13I)*F13/(K130+K13I) +K140 = 9.0D-5*EXP(-9690/TEMP)*M +K14I = 1.1D+16*EXP(-10560/TEMP) +KR14 = K140/K14I +FC14 = 0.36 +NC14 = 0.75-1.27*(LOG10(FC14)) +F14 = 10**(LOG10(FC14)/(1+(LOG10(KR14)/NC14)**2)) +KMT14 = (K140*K14I)*F14/(K140+K14I) +K150 = 8.6D-29*M*(TEMP/300)**-3.1 +K15I = 9.0D-12*(TEMP/300)**-0.85 +KR15 = K150/K15I +FC15 = 0.48 +NC15 = 0.75-1.27*(LOG10(FC15)) +F15 = 10**(LOG10(FC15)/(1+(LOG10(KR15)/NC15)**2)) +KMT15 = (K150*K15I)*F15/(K150+K15I) +K160 = 8D-27*M*(TEMP/300)**-3.5 +K16I = 3.0D-11*(TEMP/300)**-1 +KR16 = K160/K16I +FC16 = 0.5 +NC16 = 0.75-1.27*(LOG10(FC16)) +F16 = 10**(LOG10(FC16)/(1+(LOG10(KR16)/NC16)**2)) +KMT16 = (K160*K16I)*F16/(K160+K16I) +K170 = 5.0D-30*M*(TEMP/300)**-1.5 +K17I = 1.0D-12 +KR17 = K170/K17I +FC17 = 0.17*EXP(-51/TEMP)+EXP(-TEMP/204) +NC17 = 0.75-1.27*(LOG10(FC17)) +F17 = 10**(LOG10(FC17)/(1.0+(LOG10(KR17)/NC17)**2)) +KMT17 = (K170*K17I*F17)/(K170+K17I) +KMT18 = 9.5D-39*O2*EXP(5270/TEMP)/(1+7.5D-29*O2*EXP(5610/TEMP)) +KPPN0 = 1.7D-03*EXP(-11280/TEMP)*M +KPPNI = 8.3D+16*EXP(-13940/TEMP) +KRPPN = KPPN0/KPPNI +FCPPN = 0.36 +NCPPN = 0.75-1.27*(LOG10(FCPPN)) +FPPN = 10**(LOG10(FCPPN)/(1+(LOG10(KRPPN)/NCPPN)**2)) +KBPPN = (KPPN0*KPPNI)*FPPN/(KPPN0+KPPNI) +KRO2 = 1.26D-12*RO2 +CALL mcm_constants(time, temp, M, N2, O2, RO2, H2O) + #ENDINLINE +{above lines go into the SUBROUTINES UPDATE_RCONST and UPDATE_PHOTO} +#EQUATIONS +{1.} O = O3 : 5.6D-34*N2*(TEMP/300)**-2.6*O2+6.0D-34*O2*(TEMP/300)**-2.6*O2 ; +{2.} O + O3 = : 8.0D-12*EXP(-2060/TEMP) ; +{3.} O + NO = NO2 : KMT01 ; +{4.} O + NO2 = NO : 5.5D-12*EXP(188/TEMP) ; +{5.} O + NO2 = NO3 : KMT02 ; +{6.} O1D = O : 3.2D-11*EXP(67/TEMP)*O2+2.0D-11*EXP(130/TEMP)*N2 ; +{7.} NO + O3 = NO2 : 1.4D-12*EXP(-1310/TEMP) ; +{8.} NO2 + O3 = NO3 : 1.4D-13*EXP(-2470/TEMP) ; +{9.} NO + NO = NO2 + NO2 : 3.3D-39*EXP(530/TEMP)*O2 ; +{10.} NO + NO3 = NO2 + NO2 : 1.8D-11*EXP(110/TEMP) ; +{11.} NO2 + NO3 = NO + NO2 : 4.50D-14*EXP(-1260/TEMP) ; +{12.} NO2 + NO3 = N2O5 : KMT03 ; +{13.} O1D = OH + OH : 2.14D-10*H2O ; +{14.} OH + O3 = HO2 : 1.70D-12*EXP(-940/TEMP) ; +{15.} OH + H2 = HO2 : 7.7D-12*EXP(-2100/TEMP) ; +{16.} OH + CO = HO2 : KMT05 ; +{17.} OH + H2O2 = HO2 : 2.9D-12*EXP(-160/TEMP) ; +{18.} HO2 + O3 = OH : 2.03D-16*(TEMP/300)**4.57*EXP(693/TEMP) ; +{19.} OH + HO2 = : 4.8D-11*EXP(250/TEMP) ; +{20.} HO2 + HO2 = H2O2 : 2.20D-13*KMT06*EXP(600/TEMP)+1.90D-33*M*KMT06*EXP(980/TEMP) ; +{21.} OH + NO = HONO : KMT07 ; +{22.} OH + NO2 = HNO3 : KMT08 ; +{23.} OH + NO3 = HO2 + NO2 : 2.0D-11 ; +{24.} HO2 + NO = OH + NO2 : 3.45D-12*EXP(270/TEMP) ; +{25.} HO2 + NO2 = HO2NO2 : KMT09 ; +{26.} OH + HO2NO2 = NO2 : 3.2D-13*EXP(690/TEMP)*1.0 ; +{27.} HO2 + NO3 = OH + NO2 : 4.0D-12 ; +{28.} OH + HONO = NO2 : 2.5D-12*EXP(260/TEMP) ; +{29.} OH + HNO3 = NO3 : KMT11 ; +{30.} O + SO2 = SO3 : 4.0D-32*EXP(-1000/TEMP)*M ; +{31.} OH + SO2 = HSO3 : KMT12 ; +{32.} HSO3 = HO2 + SO3 : 1.3D-12*EXP(-330/TEMP)*O2 ; +{33.} HNO3 = NA : 6.00D-06 ; +{34.} N2O5 = NA + NA : 4.00D-04 ; +{35.} SO3 = SA : 1.20D-15*H2O ; +{36.} O3 = O1D : J(1) ; +{37.} O3 = O : J(2) ; +{38.} H2O2 = OH + OH : J(3) ; +{39.} NO2 = NO + O : J(4) ; +{40.} NO3 = NO : J(5) ; +{41.} NO3 = NO2 + O : J(6) ; +{42.} HONO = OH + NO : J(7) ; +{43.} HNO3 = OH + NO2 : J(8) ; +{44.} N2O5 = NO2 + NO3 : KMT04 ; +{45.} HO2NO2 = HO2 + NO2 : KMT10 ; +{46.} C2H4 + NO3 = ETHENO3O2 : 3.3D-12*EXP(-2880/TEMP) ; +{47.} C2H4 + O3 = HCHO + CH2OOA : 9.1D-15*EXP(-2580/TEMP) ; +{48.} C2H4 + OH = HOCH2CH2O2 : KMT15 ; +{49.} ETHENO3O2 + HO2 = ETHO2HNO3 : KRO2HO2*0.387 ; +{50.} ETHENO3O2 + NO = ETHENO3O + NO2 : KRO2NO ; +{51.} ETHENO3O2 + NO3 = ETHENO3O + NO2 : KRO2NO3 ; +{52.} ETHENO3O2 = ETHENO3O : 6.00D-13*0.6*RO2 ; +{53.} ETHENO3O2 = ETHOHNO3 : 6.00D-13*0.2*RO2 ; +{54.} ETHENO3O2 = NO3CH2CHO : 6.00D-13*0.2*RO2 ; +{55.} HCHO = CO + HO2 + HO2 : J(11) ; +{56.} HCHO = H2 + CO : J(12) ; +{57.} NO3 + HCHO = HNO3 + CO + HO2 : 5.5D-16 ; +{58.} OH + HCHO = HO2 + CO : 5.4D-12*EXP(135/TEMP) ; +{59.} CH2OOA = CH2OO : KDEC*0.37 ; +{60.} CH2OOA = CO : KDEC*0.50 ; +{61.} CH2OOA = HO2 + CO + OH : KDEC*0.13 ; +{62.} HOCH2CH2O2 + HO2 = HYETHO2H : 1.53D-13*EXP(1300/TEMP) ; +{63.} HOCH2CH2O2 + NO = ETHOHNO3 : KRO2NO*0.005 ; +{64.} HOCH2CH2O2 + NO = HOCH2CH2O + NO2 : KRO2NO*0.995 ; +{65.} HOCH2CH2O2 + NO3 = HOCH2CH2O + NO2 : KRO2NO3 ; +{66.} HOCH2CH2O2 = ETHGLY : 2*(KCH3O2*7.8D-14*EXP(1000/TEMP))**0.5*RO2*0.2 ; +{67.} HOCH2CH2O2 = HOCH2CH2O : 2*(KCH3O2*7.8D-14*EXP(1000/TEMP))**0.5*RO2*0.6 ; +{68.} HOCH2CH2O2 = HOCH2CHO : 2*(KCH3O2*7.8D-14*EXP(1000/TEMP))**0.5*RO2*0.2 ; +{69.} ETHO2HNO3 + OH = ETHENO3O2 : 1.90D-12*EXP(190/TEMP) ; +{70.} ETHO2HNO3 + OH = NO3CH2CHO + OH : 1.62D-12 ; +{71.} ETHO2HNO3 = ETHENO3O + OH : J(41) ; +{72.} ETHENO3O = NO2 + HCHO + HCHO : 7.00D+03 ; +{73.} ETHENO3O = NO3CH2CHO + HO2 : KROPRIM*O2 ; +{74.} ETHOHNO3 + OH = HOCH2CHO + NO2 : 8.40D-13 ; +{75.} NO3CH2CHO + NO3 = NO3CH2CO3 + HNO3 : KNO3AL ; +{76.} NO3CH2CHO + OH = NO3CH2CO3 : 3.40D-12 ; +{77.} NO3CH2CHO = NO2 + HCOCH2O : J(56)*4.3 ; +{78.} CH2OO + CO = HCHO : 1.20D-15 ; +{79.} CH2OO + NO = HCHO + NO2 : 1.00D-14 ; +{80.} CH2OO + NO2 = HCHO + NO3 : 1.00D-15 ; +{81.} CH2OO + SO2 = HCHO + SO3 : 7.00D-14 ; +{82.} CH2OO = HCHO + H2O2 : 6.00D-18*H2O ; +{83.} CH2OO = HCOOH : 1.00D-17*H2O ; +{84.} HYETHO2H + OH = HOCH2CH2O2 : 1.90D-12*EXP(190/TEMP) ; +{85.} HYETHO2H + OH = HOCH2CHO + OH : 1.38D-11 ; +{86.} HYETHO2H = HOCH2CH2O + OH : J(41) ; +{87.} HOCH2CH2O = HO2 + HCHO + HCHO : 9.50D+13*EXP(-5988/TEMP) ; +{88.} HOCH2CH2O = HO2 + HOCH2CHO : KROPRIM*O2 ; +{89.} ETHGLY + OH = HOCH2CHO + HO2 : 1.45D-11 ; +{90.} HOCH2CHO + NO3 = HOCH2CO3 + HNO3 : KNO3AL ; +{91.} HOCH2CHO + OH = GLYOX + HO2 : 1.00D-11*0.200 ; +{92.} HOCH2CHO + OH = HOCH2CO3 : 1.00D-11*0.800 ; +{93.} HOCH2CHO = HO2 + HCHO + HO2 + CO : J(15) ; +{94.} NO3CH2CO3 + HO2 = HCHO + NO2 + OH : KAPHO2*0.44 ; +{95.} NO3CH2CO3 + HO2 = NO3CH2CO2H + O3 : KAPHO2*0.15 ; +{96.} NO3CH2CO3 + HO2 = NO3CH2CO3H : KAPHO2*0.41 ; +{97.} NO3CH2CO3 + NO = HCHO + NO2 + NO2 : KAPNO ; +{98.} NO3CH2CO3 + NO2 = NO3CH2PAN : KFPAN ; +{99.} NO3CH2CO3 + NO3 = HCHO + NO2 + NO2 : KRO2NO3*1.74 ; +{100.} NO3CH2CO3 = HCHO + NO2 : 1.00D-11*0.7*RO2 ; +{101.} NO3CH2CO3 = NO3CH2CO2H : 1.00D-11*0.3*RO2 ; +{102.} HCOCH2O = HCHO + CO + HO2 : KDEC ; +{103.} HCOOH + OH = HO2 : 4.5D-13 ; +{104.} HOCH2CO3 + HO2 = HO2 + HCHO + OH : KAPHO2*0.44 ; +{105.} HOCH2CO3 + HO2 = HOCH2CO2H + O3 : KAPHO2*0.15 ; +{106.} HOCH2CO3 + HO2 = HOCH2CO3H : KAPHO2*0.41 ; +{107.} HOCH2CO3 + NO = NO2 + HO2 + HCHO : KAPNO ; +{108.} HOCH2CO3 + NO2 = PHAN : KFPAN ; +{109.} HOCH2CO3 + NO3 = NO2 + HO2 + HCHO : KRO2NO3*1.74 ; +{110.} HOCH2CO3 = HCHO + HO2 : 1.00D-11*0.7*RO2 ; +{111.} HOCH2CO3 = HOCH2CO2H : 1.00D-11*0.3*RO2 ; +{112.} GLYOX = CO + CO + H2 : J(31) ; +{113.} GLYOX = CO + CO + HO2 + HO2 : J(33) ; +{114.} GLYOX = HCHO + CO : J(32) ; +{115.} NO3 + GLYOX = HCOCO + HNO3 : KNO3AL ; +{116.} OH + GLYOX = HCOCO : 3.1D-12*EXP(340/TEMP) ; +{117.} NO3CH2CO2H + OH = HCHO + NO2 : 1.68D-13 ; +{118.} NO3CH2CO3H + OH = NO3CH2CO3 : 3.63D-12 ; +{119.} NO3CH2CO3H = HCHO + NO2 + OH : J(41) ; +{120.} NO3CH2PAN + OH = HCHO + CO + NO2 + NO2 : 1.12D-14 ; +{121.} NO3CH2PAN = NO3CH2CO3 + NO2 : KBPAN ; +{122.} HOCH2CO2H + OH = HCHO + HO2 : 2.73D-12 ; +{123.} HOCH2CO3H + OH = HOCH2CO3 : 6.19D-12 ; +{124.} HOCH2CO3H = HCHO + HO2 + OH : J(41) ; +{125.} PHAN + OH = HCHO + CO + NO2 : 1.12D-12 ; +{126.} PHAN = HOCH2CO3 + NO2 : KBPAN ; +{127.} HCOCO = CO + CO + HO2 : 7.00D11*EXP(-3160/TEMP)+5.00D-12*O2 ; +{128.} HCOCO = CO + OH : 5.00D-12*O2*3.2*(1-EXP(-550/TEMP)) ; +{129.} HCOCO = HCOCO3 : 5.00D-12*O2*3.2*EXP(-550/TEMP) ; +{130.} HCOCO3 + HO2 = HCOCO2H + O3 : KAPHO2*0.15 ; +{131.} HCOCO3 + HO2 = HCOCO3H : KAPHO2*0.41 ; +{132.} HCOCO3 + HO2 = HO2 + CO + OH : KAPHO2*0.44 ; +{133.} HCOCO3 + NO = HO2 + CO + NO2 : KAPNO ; +{134.} HCOCO3 + NO2 = HO2 + CO + NO3 : KFPAN ; +{135.} HCOCO3 + NO3 = HO2 + CO + NO2 : KRO2NO3*1.74 ; +{136.} HCOCO3 = CO + HO2 : 1.00D-11*0.7*RO2 ; +{137.} HCOCO3 = HCOCO2H : 1.00D-11*0.3*RO2 ; +{138.} HCOCO2H = HO2 + HO2 + CO : J(34) ; +{139.} OH + HCOCO2H = CO + HO2 : 1.23D-11 ; +{140.} HCOCO3H = HO2 + CO + OH : J(41)+J(15) ; +{141.} OH + HCOCO3H = HCOCO3 : 1.58D-11 ; diff --git a/tests/model_tests/spec_model_kpp/spec_model_kpp.out.cmp b/tests/model_tests/spec_model_kpp/spec_model_kpp.out.cmp new file mode 100644 index 000000000..e3f261c74 --- /dev/null +++ b/tests/model_tests/spec_model_kpp/spec_model_kpp.out.cmp @@ -0,0 +1,211 @@ +AtChem2 v1.3-dev + +------------- + Directories +------------- + Model directory is: model + Output directory is: tests/model_tests/spec_model_kpp/output + Reaction Rates directory is: tests/model_tests/spec_model_kpp/output/reactionRates + Configuration directory is: tests/model_tests/spec_model_kpp/configuration + Constraints directory is: tests/model_tests/spec_model_kpp/constraints + Environment Constraints directory is: tests/model_tests/spec_model_kpp/constraints/environment + Photolysis Constraints directory is: tests/model_tests/spec_model_kpp/constraints/photolysis + Species Constraints directory is: tests/model_tests/spec_model_kpp/constraints/species + MCM directory is: mcm + Shared library is: tests/model_tests/spec_model_kpp/configuration/mechanism.so + +----------------------- + Species and reactions +----------------------- + Number of Species = 49 + Number of Reactions = 141 + + Size of lhs = 225 + Size of rhs = 247 + + Reading reactants (lhs) from mechanism.reac... + Reading products (rhs) from mechanism.prod... + Finished reading lhs and rhs data. + + Reading species names from mechanism.species... + Finished reading species names. + + Reading initial concentrations... + 1 CO 4.800E+12 + ... + 5 C2H4 2.760E+09 + Finished reading initial concentrations. + +---------------------------------------- + Species requiring detailed rate output +---------------------------------------- + Reading which species require detailed rate output... + 1 OH + 2 HO2 + Finished reading which species require detailed rate output. + Species requiring detailed rate output (number of species found): 2 + + Reading ro2 numbers from mechanism.ro2... + Finished reading ro2 numbers. + Reading solver parameters from file... + ------------------ + Solver parameters: + ------------------ + atol: 1.000E-03 + rtol: 1.000E-04 + deltaMain: 1.000E-04 + lookBack: 100 + maxStep: 1.000E+02 + preconBandUpper: 750 + preconBandLower: 750 + solverType: SPGMR + Banded Preconditioner + ------------------ + + Finished reading solver parameters from file. + + Reading model parameters from file... + ----------------- + Model parameters: + ----------------- + number of steps: 30 + step size: 0.900E+03 + species interpolation method: piecewise linear + conditions interpolation method: piecewise linear + rates output step size, ROPA/RODA: 3600 + model start time: 23400 + jacobian output step size: 0 + latitude: -0.733E+01 + longitude: -0.724E+02 + reaction rates output step size: 1800 + day/month/year: 9/11/2008 + ----------------- + + Finished reading model parameters from file. + +--------------------- + Species of Interest +--------------------- + Reading concentration output from file... + Finished reading concentration output from file. + Output required for concentration of 12 species: + 1 CO + ... + 12 HCOCO3 + +------------ + Photolysis +------------ + Reading photolysis numbers from file... + 1 + ... + 61 + Finished reading photolysis numbers. + Number of photolysis numbers: 35 + Looking for photolysis constants file... + Checking that photolysis constants exist in file... + Photolysis constants file is empty. + No photolysis constants applied, so trying constrained photolysis rates file... + Looking for photolysis constraints file... + Checking that photolysis constraints exist in file... + Photolysis constraint file is empty, so all photolysis rates will be calculated. + Reading all photolysis rates from file... + 1 6.073E-05 1.743E+00 4.740E-01 J1 1.000E+00 + ... + 61 7.537E-04 4.990E-01 2.660E-01 J61 1.000E+00 + Finished reading all photolysis rates. + Number of all photolysis rates: 35 + + +----------------------- + Environment variables +----------------------- + Reading environment variables... + Number of environment variables: 11 + 1 TEMP 291.45 + 2 PRESS 950.2 + 3 RH 67.4 + 4 H2O CALC + 5 DEC CALC + 6 BLHEIGHT NOTUSED + 7 DILUTE NOTUSED + 8 JFAC NOTUSED + 9 ROOF OPEN + 10 ASA NOTUSED + Finished reading environment variables. + + Checking for constrained environment variables... + Finished checking for constrained environment variables. + + +------------- + Constraints +------------- + Counting the variable-concentration species to be constrained (in file speciesConstrained.config)... + Finished counting the names of variable-concentration constrained species. + Number of names of variable-concentration constrained species: 0 + Counting the fixed-concentration species to be constrained (in file speciesConstant.config)... + Finished counting the names of fixed-concentration constrained species. + Number of names of fixed-concentration constrained species: 0 + Setting size of constraint arrays, n = 0 + Skipped reading the names of variable-concentration constrained species + Reading concentration data for variable-concentration constrained species... + Reading in the names and concentration of the fixed constrained species (in file speciesConstant.config)... + Finished reading in the names and concentration of fixed-concentration species. + Finished reading constrained species. + Initialising concentrations of constrained species... + Finished initialising concentrations of constrained species. + +--------------- + Problem stats +--------------- + neq = 49 + numberOfConstrainedSpecies = 0 + t0 = 2.340E+04 + + setting maxnumsteps ier = 0 + setting maxstep ier = 0 + +----------- + Model run +----------- + time = 24300 + time = 25200 + time = 26100 + time = 27000 + time = 27900 + time = 28800 + time = 29700 + time = 30600 + time = 31500 + time = 32400 + time = 33300 + time = 34200 + time = 35100 + time = 36000 + time = 36900 + time = 37800 + time = 38700 + time = 39600 + time = 40500 + time = 41400 + time = 42300 + time = 43200 + time = 44100 + time = 45000 + time = 45900 + time = 46800 + time = 47700 + time = 48600 + time = 49500 + time = 50400 + +------------------ + Final statistics +------------------ + No. steps = 536 No. f-s = 663 No. J-s = 1001 No. LU-s = 117 + No. nonlinear iterations = 662 + No. nonlinear convergence failures = 0 + No. error test failures = 32 + + Runtime = 0 + Deallocating memory. diff --git a/tests/model_tests/static/static.out.cmp b/tests/model_tests/static/static.out.cmp index b6771ed82..d0d66a29c 100644 --- a/tests/model_tests/static/static.out.cmp +++ b/tests/model_tests/static/static.out.cmp @@ -1,4 +1,4 @@ -AtChem2 v1.2.2 +AtChem2 v1.3-dev ------------- Directories diff --git a/tests/run_model_tests.sh b/tests/run_model_tests.sh index 00fe0d0e6..92e82a789 100755 --- a/tests/run_model_tests.sh +++ b/tests/run_model_tests.sh @@ -90,7 +90,12 @@ for test in $1; do test_counter=$((test_counter+1)) echo "" >> $LOG_FILE echo "Set up and make" $TESTS_DIR/$test >> $LOG_FILE - ./build/build_atchem2.sh $TESTS_DIR/$test/$test.fac $TESTS_DIR/$test/configuration/ mcm/ &> /dev/null + if [ -f $TESTS_DIR/$test/$test.kpp ]; then # chemical mechanism in KPP format + mechanism_file=$TESTS_DIR/$test/$test.kpp + else # by default, the chemical mechanism is in FACSIMILE format + mechanism_file=$TESTS_DIR/$test/$test.fac + fi + ./build/build_atchem2.sh $mechanism_file $TESTS_DIR/$test/configuration/ mcm/ &> /dev/null exitcode=$? if [ $exitcode -ne 0 ]; then echo "Building" $test "test failed with exit code" $exitcode >> $LOG_FILE @@ -227,5 +232,4 @@ echo "" >> $LOG_FILE echo "Execution of model tests script finished." >> $LOG_FILE echo "==> Model tests logfile:" $LOG_FILE - exit $model_tests_passed diff --git a/tests/run_tests.sh b/tests/run_tests.sh index 246247423..650b2cace 100755 --- a/tests/run_tests.sh +++ b/tests/run_tests.sh @@ -223,5 +223,4 @@ else echo "==> Tests PASSED [" $test_counter/$test_counter "]" model_tests_passed=0 fi - exit $model_tests_passed diff --git a/tests/tests/short/short.out.cmp b/tests/tests/short/short.out.cmp index cc5ef7b0e..92441ec01 100644 --- a/tests/tests/short/short.out.cmp +++ b/tests/tests/short/short.out.cmp @@ -1,4 +1,4 @@ -AtChem2 v1.2.2 +AtChem2 v1.3-dev ------------- Directories diff --git a/tests/tests/short_dense/short_dense.out.cmp b/tests/tests/short_dense/short_dense.out.cmp index 0a5422508..9355a4f80 100644 --- a/tests/tests/short_dense/short_dense.out.cmp +++ b/tests/tests/short_dense/short_dense.out.cmp @@ -1,4 +1,4 @@ -AtChem2 v1.2.2 +AtChem2 v1.3-dev ------------- Directories diff --git a/tests/tests/short_end_of_day/short_end_of_day.out.cmp b/tests/tests/short_end_of_day/short_end_of_day.out.cmp index db74b0a24..babcfe08e 100644 --- a/tests/tests/short_end_of_day/short_end_of_day.out.cmp +++ b/tests/tests/short_end_of_day/short_end_of_day.out.cmp @@ -1,4 +1,4 @@ -AtChem2 v1.2.2 +AtChem2 v1.3-dev ------------- Directories diff --git a/tests/tests/short_ext1/short_ext1.out.cmp b/tests/tests/short_ext1/short_ext1.out.cmp index 5d7732e1b..ca046185d 100644 --- a/tests/tests/short_ext1/short_ext1.out.cmp +++ b/tests/tests/short_ext1/short_ext1.out.cmp @@ -1,4 +1,4 @@ -AtChem2 v1.2.2 +AtChem2 v1.3-dev ------------- Directories diff --git a/tests/tests/short_ext2/short_ext2.out.cmp b/tests/tests/short_ext2/short_ext2.out.cmp index 3d88c6582..9665a3d13 100644 --- a/tests/tests/short_ext2/short_ext2.out.cmp +++ b/tests/tests/short_ext2/short_ext2.out.cmp @@ -1,4 +1,4 @@ -AtChem2 v1.2.2 +AtChem2 v1.3-dev ------------- Directories diff --git a/tests/tests/short_ext3/short_ext3.out.cmp b/tests/tests/short_ext3/short_ext3.out.cmp index 307e17f8c..56829ea20 100644 --- a/tests/tests/short_ext3/short_ext3.out.cmp +++ b/tests/tests/short_ext3/short_ext3.out.cmp @@ -1,4 +1,4 @@ -AtChem2 v1.2.2 +AtChem2 v1.3-dev ------------- Directories diff --git a/tests/tests/short_ext4/short_ext4.out.cmp b/tests/tests/short_ext4/short_ext4.out.cmp index 8f82f5283..a6c6c1a2d 100644 --- a/tests/tests/short_ext4/short_ext4.out.cmp +++ b/tests/tests/short_ext4/short_ext4.out.cmp @@ -1,4 +1,4 @@ -AtChem2 v1.2.2 +AtChem2 v1.3-dev ------------- Directories diff --git a/tests/tests/short_no_pre/short_no_pre.out.cmp b/tests/tests/short_no_pre/short_no_pre.out.cmp index 054149a51..5c151f4c0 100644 --- a/tests/tests/short_no_pre/short_no_pre.out.cmp +++ b/tests/tests/short_no_pre/short_no_pre.out.cmp @@ -1,4 +1,4 @@ -AtChem2 v1.2.2 +AtChem2 v1.3-dev ------------- Directories diff --git a/tests/tests/spec_no_env_yes1/spec_no_env_yes1.out.cmp b/tests/tests/spec_no_env_yes1/spec_no_env_yes1.out.cmp index df7685792..c4fb4ff5e 100644 --- a/tests/tests/spec_no_env_yes1/spec_no_env_yes1.out.cmp +++ b/tests/tests/spec_no_env_yes1/spec_no_env_yes1.out.cmp @@ -1,4 +1,4 @@ -AtChem2 v1.2.2 +AtChem2 v1.3-dev ------------- Directories diff --git a/tests/tests/spec_no_env_yes2/spec_no_env_yes2.out.cmp b/tests/tests/spec_no_env_yes2/spec_no_env_yes2.out.cmp index 763f560c0..edd286018 100644 --- a/tests/tests/spec_no_env_yes2/spec_no_env_yes2.out.cmp +++ b/tests/tests/spec_no_env_yes2/spec_no_env_yes2.out.cmp @@ -1,4 +1,4 @@ -AtChem2 v1.2.2 +AtChem2 v1.3-dev ------------- Directories diff --git a/tests/tests/spec_yes_env_no/spec_yes_env_no.out.cmp b/tests/tests/spec_yes_env_no/spec_yes_env_no.out.cmp index 34f41b7a9..00bd299d3 100644 --- a/tests/tests/spec_yes_env_no/spec_yes_env_no.out.cmp +++ b/tests/tests/spec_yes_env_no/spec_yes_env_no.out.cmp @@ -1,4 +1,4 @@ -AtChem2 v1.2.2 +AtChem2 v1.3-dev ------------- Directories diff --git a/tests/tests/spec_yes_env_no_with_jfac/spec_yes_env_no_with_jfac.out.cmp b/tests/tests/spec_yes_env_no_with_jfac/spec_yes_env_no_with_jfac.out.cmp index d38139717..dc1785173 100644 --- a/tests/tests/spec_yes_env_no_with_jfac/spec_yes_env_no_with_jfac.out.cmp +++ b/tests/tests/spec_yes_env_no_with_jfac/spec_yes_env_no_with_jfac.out.cmp @@ -1,4 +1,4 @@ -AtChem2 v1.2.2 +AtChem2 v1.3-dev ------------- Directories diff --git a/tests/tests/spec_yes_env_no_with_jfac_fail1/spec_yes_env_no_with_jfac_fail1.out.cmp b/tests/tests/spec_yes_env_no_with_jfac_fail1/spec_yes_env_no_with_jfac_fail1.out.cmp index 9d6f254d6..960d8c916 100644 --- a/tests/tests/spec_yes_env_no_with_jfac_fail1/spec_yes_env_no_with_jfac_fail1.out.cmp +++ b/tests/tests/spec_yes_env_no_with_jfac_fail1/spec_yes_env_no_with_jfac_fail1.out.cmp @@ -1,4 +1,4 @@ -AtChem2 v1.2.2 +AtChem2 v1.3-dev ------------- Directories diff --git a/tests/tests/spec_yes_env_no_with_jfac_fixed/spec_yes_env_no_with_jfac_fixed.out.cmp b/tests/tests/spec_yes_env_no_with_jfac_fixed/spec_yes_env_no_with_jfac_fixed.out.cmp index 5cc1440d9..edf9b8f21 100644 --- a/tests/tests/spec_yes_env_no_with_jfac_fixed/spec_yes_env_no_with_jfac_fixed.out.cmp +++ b/tests/tests/spec_yes_env_no_with_jfac_fixed/spec_yes_env_no_with_jfac_fixed.out.cmp @@ -1,4 +1,4 @@ -AtChem2 v1.2.2 +AtChem2 v1.3-dev ------------- Directories diff --git a/tests/tests/spec_yes_env_no_with_photo/spec_yes_env_no_with_photo.out.cmp b/tests/tests/spec_yes_env_no_with_photo/spec_yes_env_no_with_photo.out.cmp index 68a122f61..6bb6e97be 100644 --- a/tests/tests/spec_yes_env_no_with_photo/spec_yes_env_no_with_photo.out.cmp +++ b/tests/tests/spec_yes_env_no_with_photo/spec_yes_env_no_with_photo.out.cmp @@ -1,4 +1,4 @@ -AtChem2 v1.2.2 +AtChem2 v1.3-dev ------------- Directories diff --git a/tests/tests/spec_yes_env_yes/spec_yes_env_yes.out.cmp b/tests/tests/spec_yes_env_yes/spec_yes_env_yes.out.cmp index f307f05c9..17e5d1083 100644 --- a/tests/tests/spec_yes_env_yes/spec_yes_env_yes.out.cmp +++ b/tests/tests/spec_yes_env_yes/spec_yes_env_yes.out.cmp @@ -1,4 +1,4 @@ -AtChem2 v1.2.2 +AtChem2 v1.3-dev ------------- Directories diff --git a/tests/tests/spec_yes_plus_fixed_env_no/spec_yes_plus_fixed_env_no.out.cmp b/tests/tests/spec_yes_plus_fixed_env_no/spec_yes_plus_fixed_env_no.out.cmp index bfb09ab3a..458eb345b 100644 --- a/tests/tests/spec_yes_plus_fixed_env_no/spec_yes_plus_fixed_env_no.out.cmp +++ b/tests/tests/spec_yes_plus_fixed_env_no/spec_yes_plus_fixed_env_no.out.cmp @@ -1,4 +1,4 @@ -AtChem2 v1.2.2 +AtChem2 v1.3-dev ------------- Directories diff --git a/tools/fix_indent.py b/tools/fix_indent.py index fc5bbac45..f91d37e5b 100644 --- a/tools/fix_indent.py +++ b/tools/fix_indent.py @@ -46,13 +46,14 @@ # line ended with an ampersand # -------------------------------------------------------------------- # from __future__ import print_function -import sys, re +import sys +import re # ============================================================ # # Strip newline characters from string def strip_newline(string): - string = re.sub('\n', '', string) + string = re.sub(r'\n', r'', string) return string # Append newline character to string @@ -78,14 +79,14 @@ def even_quotes(string): # Handle input arguments. If only one is provided, use this for both # input and output. Error if none provided. assert len(sys.argv) >= 2, "Please enter a filename as argument." -filename = sys.argv[1] +in_filename = sys.argv[1] if len(sys.argv) == 3: out_filename = sys.argv[2] else: - out_filename = filename + out_filename = in_filename # Read in file contents -with open(filename, 'r') as input_file: +with open(in_filename, 'r') as input_file: lines = input_file.readlines() # ------------------------------------------------- @@ -130,49 +131,49 @@ def even_quotes(string): # Check that this line ends with ampersand if not empty_line: this_line_ends_ampersand = False - if re.search('&\s*$', to_output): + if re.search(r'\&\s*$', to_output): this_line_ends_ampersand = True # This line starts with 'end', so the next line should be unindented if not previous_line_ends_ampersand: - if re.match('^\s*end\s*', to_output, flags=re.IGNORECASE) \ - or re.match('^\s*else\s*', to_output, flags=re.IGNORECASE) \ - or re.match('^\s*contains\s*', to_output, flags=re.IGNORECASE): + if re.match(r'^\s*end\s*', to_output, flags=re.IGNORECASE) \ + or re.match(r'^\s*else\s*', to_output, flags=re.IGNORECASE) \ + or re.match(r'^\s*contains\s*', to_output, flags=re.IGNORECASE): indent = indent - 1 # Handle the fact that each case of a 'select' structure doesn't # end in an 'end', so the 'end select' needs to go back twice - if re.match('^\s*end select\s*', to_output, flags=re.IGNORECASE): + if re.match(r'^\s*end select\s*', to_output, flags=re.IGNORECASE): indent = indent - 1 # Match 'if-then-else', 'do', 'subroutine', 'function', 'module', 'contains', # 'program', 'interface', 'select', 'case', 'type' (definition, not instantiation) # to set the next line indent higher - if re.search('\s*IF.+THEN', to_output, flags=re.IGNORECASE) \ - or re.match('^\s*else\s*', to_output, flags=re.IGNORECASE) \ - or re.match('^\s*do\s*', to_output, flags=re.IGNORECASE) \ - or re.match('^\s*subroutine\s*', to_output, flags=re.IGNORECASE) \ - or re.match('^\s*function\s*', to_output, flags=re.IGNORECASE) \ - or (re.match('^\s*module\s*', to_output, flags=re.IGNORECASE) \ - and not re.match('^\s*module procedure \s*', to_output, flags=re.IGNORECASE)) \ - or re.match('^\s*contains\s*', to_output, flags=re.IGNORECASE) \ - or re.match('^\s*program\s*', to_output, flags=re.IGNORECASE) \ - or re.match('^\s*interface\s*', to_output, flags=re.IGNORECASE) \ - or re.match('^\s*abstract interface\s*', to_output, flags=re.IGNORECASE) \ - or re.match('^\s*pure function\s*', to_output, flags=re.IGNORECASE) \ - or re.match('^\s*select\s*', to_output, flags=re.IGNORECASE) \ - or re.match('^\s*case\s*', to_output, flags=re.IGNORECASE) \ - or re.match('^\s*type\s+', to_output, flags=re.IGNORECASE): + if re.search(r'\s*if.+then', to_output, flags=re.IGNORECASE) \ + or re.match(r'^\s*else\s*', to_output, flags=re.IGNORECASE) \ + or re.match(r'^\s*do\s*', to_output, flags=re.IGNORECASE) \ + or re.match(r'^\s*subroutine\s*', to_output, flags=re.IGNORECASE) \ + or re.match(r'^\s*function\s*', to_output, flags=re.IGNORECASE) \ + or (re.match(r'^\s*module\s*', to_output, flags=re.IGNORECASE) \ + and not re.match(r'^\s*module procedure \s*', to_output, flags=re.IGNORECASE)) \ + or re.match(r'^\s*contains\s*', to_output, flags=re.IGNORECASE) \ + or re.match(r'^\s*program\s*', to_output, flags=re.IGNORECASE) \ + or re.match(r'^\s*interface\s*', to_output, flags=re.IGNORECASE) \ + or re.match(r'^\s*abstract interface\s*', to_output, flags=re.IGNORECASE) \ + or re.match(r'^\s*pure function\s*', to_output, flags=re.IGNORECASE) \ + or re.match(r'^\s*select\s*', to_output, flags=re.IGNORECASE) \ + or re.match(r'^\s*case\s*', to_output, flags=re.IGNORECASE) \ + or re.match(r'^\s*type\s+', to_output, flags=re.IGNORECASE): next_line_indent_more = True # Set start_select when we enter a 'select' structure - if re.match('^\s*select\s*', to_output, flags=re.IGNORECASE): + if re.match(r'^\s*select\s*', to_output, flags=re.IGNORECASE): start_select = True # If at a 'case' statement, check whether it's the first one, via start_select. # If so, don't change the indent, as we just want it to be indented next time; # otherwise, unindent by one - if re.match('^\s*case\s*', to_output, flags=re.IGNORECASE): + if re.match(r'^\s*case\s*', to_output, flags=re.IGNORECASE): if start_select: start_select = False else: @@ -185,9 +186,9 @@ def even_quotes(string): # Check that the previous line does not end with ampersand, # then add correct indentation if not previous_line_ends_ampersand: - if re.search('\S', to_output): - to_output = re.sub('^\s*(?=\S)', ' '*2*indent, to_output) - elif re.search('\S', to_output+comment): + if re.search(r'\S', to_output): + to_output = re.sub(r'^\s*(?=\S)', r' '*2*indent, to_output) + elif re.search(r'\S', to_output+comment): to_output = '' comment = (' '*2*indent)+comment @@ -204,4 +205,5 @@ def even_quotes(string): # ------------------------------------------------- # Write output to file output_file.writelines(outputs) - print('Complete! Now run a find and replace by hand with regex "&\s*\\n" to catch alignment of the lines following ampersands.') + print('Complete! Now run a find and replace by hand with regex "\&\s*\\n" ' + 'to catch alignment of the lines following ampersands.') diff --git a/tools/fix_style.py b/tools/fix_style.py index 1ad803af6..a62d694f1 100644 --- a/tools/fix_style.py +++ b/tools/fix_style.py @@ -24,55 +24,56 @@ # 2. optional output file (if not given, overwrites input file) # -------------------------------------------------------------------- # from __future__ import print_function -import sys, re +import sys +import re # ============================================================ # # Replace the first word(s) with its lowercase if it matches string -def replace_any_case_with_lower_first(string, to_output): - if re.match('^\s*'+string, to_output, flags=re.IGNORECASE): - to_output = re.sub(string, string.lower(), to_output, 1, flags=re.IGNORECASE) - return to_output +def replace_any_case_with_lower_first(string_in, string_out): + if re.match(r'^\s*'+string_in, string_out, flags=re.IGNORECASE): + string_out = re.sub(string_in, string_in.lower(), string_out, 1, flags=re.IGNORECASE) + return string_out # Replace the first word(s) with its lowercase if it matches string -def replace_any_case_with_lower(string, to_output): - if re.search(string, to_output.upper(), flags=re.IGNORECASE): - to_output = re.sub(string, string.lower(), to_output, 1, flags=re.IGNORECASE) - return to_output +def replace_any_case_with_lower(string_in, string_out): + if re.search(string_in, string_out.upper(), flags=re.IGNORECASE): + string_out = re.sub(string_in, string_in.lower(), string_out, 1, flags=re.IGNORECASE) + return string_out # Set first bracket to be preceded by no whitespace, followed by one space -def brackets_for_calls(string, to_output, is_first_line_of_multiline, is_inside_procedure, currently_on_multiline): - if re.match('^\s*'+string, to_output, flags=re.IGNORECASE): - is_inside_procedure = True - to_output = replace_any_case_with_lower_first(string, to_output) - if is_first_line_of_multiline or not currently_on_multiline: - if re.search('(?<=[a-zA-Z0-9\s])\(', to_output): - to_output = re.sub('\s*\(\s*(?=[a-zA-Z0-9\s\'\"\)])', '( ', to_output, 1) - return to_output, is_inside_procedure, currently_on_multiline +def brackets_for_calls(string_in, string_out, first_of_multiline, in_procedure, on_multiline): + if re.match(r'^\s*'+string_in, string_out, flags=re.IGNORECASE): + in_procedure = True + string_out = replace_any_case_with_lower_first(string_in, string_out) + if first_of_multiline or not on_multiline: + if re.search(r'(?<=[a-zA-Z0-9\s])\(', string_out): + string_out = re.sub(r'\s*\(\s*(?=[a-zA-Z0-9\s\'\"\)])', r'( ', string_out, 1) + return string_out, in_procedure, on_multiline # Remove newline characters from string -def strip_newline(string): - string = re.sub('\n', '', string) - return string +def strip_newline(string_in): + string_out = re.sub(r'\n', r'', string_in) + return string_out # Append newline character to string -def add_newline(string): - string = string + '\n' - return string +def add_newline(string_in): + string_out = string_in + '\n' + return string_out # Concatenate two strings def add(string1, string2): - string = add_newline(strip_newline(string1)+string2) - return string + string_out = add_newline(strip_newline(string1)+string2) + return string_out # Check that there are an even number of both single- and # double-quotes in the given string -def even_quotes(string): - if string.count('"') % 2 == 0: +def even_quotes(string_in): + if string_in.count('"') % 2 == 0: double = True else: double = False - if string.count("'") % 2 == 0: + if string_in.count("'") % 2 == 0: single = True else: single = False @@ -83,14 +84,14 @@ def even_quotes(string): # Handle input arguments. If only one is provided, use this for both # input and output. Error if none provided. assert len(sys.argv) >= 2, "Please enter a filename as argument." -filename = sys.argv[1] +in_filename = sys.argv[1] if len(sys.argv) == 3: out_filename = sys.argv[2] else: - out_filename = filename + out_filename = in_filename # Read in file contents -with open(filename, 'r') as input_file: +with open(in_filename, 'r') as input_file: lines = input_file.readlines() # ------------------------------------------------- @@ -128,71 +129,72 @@ def even_quotes(string): is_first_line_of_multiline = False # Handle the case where this line is split onto the next line(s) - if re.search('\&\s*$', to_output): + if re.search(r'\&\s*$', to_output): this_line_ends_ampersand = True if not currently_on_multiline: is_first_line_of_multiline = True currently_on_multiline = True # Replace '.LT.' etc with symbols - to_output = re.sub('\s*\.LT\.\s*', ' < ', to_output, flags=re.IGNORECASE) - to_output = re.sub('\s*\.LE\.\s*', ' <= ', to_output, flags=re.IGNORECASE) - to_output = re.sub('\s*\.GT\.\s*', ' > ', to_output, flags=re.IGNORECASE) - to_output = re.sub('\s*\.GE\.\s*', ' >= ', to_output, flags=re.IGNORECASE) - to_output = re.sub('\s*\.EQ\.\s*', ' == ', to_output, flags=re.IGNORECASE) - to_output = re.sub('\s*\.NE\.\s*', ' /= ', to_output, flags=re.IGNORECASE) + to_output = re.sub(r'\s*\.LT\.\s*', r' < ', to_output, flags=re.IGNORECASE) + to_output = re.sub(r'\s*\.LE\.\s*', r' <= ', to_output, flags=re.IGNORECASE) + to_output = re.sub(r'\s*\.GT\.\s*', r' > ', to_output, flags=re.IGNORECASE) + to_output = re.sub(r'\s*\.GE\.\s*', r' >= ', to_output, flags=re.IGNORECASE) + to_output = re.sub(r'\s*\.EQ\.\s*', r' == ', to_output, flags=re.IGNORECASE) + to_output = re.sub(r'\s*\.NE\.\s*', r' /= ', to_output, flags=re.IGNORECASE) # Put one space after each comma, except where followed by '*' or ':' - to_output = re.sub(',\s*', ', ', to_output) - to_output = re.sub(', \*', ',*', to_output) - to_output = re.sub(', \:', ',:', to_output) - - # Replace, e.g. '( Len =' by '(LEN=', etc... - to_output = re.sub('\(LEN\s*=', '(len=', to_output, flags=re.IGNORECASE) - to_output = re.sub('\(KIND\s*=', '(kind=', to_output, flags=re.IGNORECASE) - to_output = re.sub('STATUS\s*=', 'status=', to_output, flags=re.IGNORECASE) - to_output = re.sub('IOSTAT\s*=', 'iostat=', to_output, flags=re.IGNORECASE) - to_output = re.sub('FILE\s*=', 'file=', to_output, flags=re.IGNORECASE) - to_output = re.sub('EXIST\s*=', 'exist=', to_output, flags=re.IGNORECASE) + to_output = re.sub(r',\s*', r', ', to_output) + to_output = re.sub(r', \*', r',*', to_output) + to_output = re.sub(r', \:', r',:', to_output) + + # Replace, e.g. '(LEN =' with '(len=', etc... + to_output = re.sub(r'\(LEN\s*=', r'(len=', to_output, flags=re.IGNORECASE) + to_output = re.sub(r'\(KIND\s*=', r'(kind=', to_output, flags=re.IGNORECASE) + to_output = re.sub(r'STATUS\s*=', r'status=', to_output, flags=re.IGNORECASE) + to_output = re.sub(r'IOSTAT\s*=', r'iostat=', to_output, flags=re.IGNORECASE) + to_output = re.sub(r'FILE\s*=', r'file=', to_output, flags=re.IGNORECASE) + to_output = re.sub(r'EXIST\s*=', r'exist=', to_output, flags=re.IGNORECASE) # Any ending bracket followed by a double-quote, should have a # single space - to_output = re.sub('\)(?=")', ')', to_output) + to_output = re.sub(r'\)(?=")', r')', to_output) # Any ending bracket should be followed by exactly one space # if it's to be followed by a letter, digit, or single-quote - to_output = re.sub("\)(?=[\w\d])", ') ', to_output) + to_output = re.sub(r'\)(?=[\w\d])', r') ', to_output) # Any ending bracket already followed by whitespace should be # followed by exactly one space - to_output = re.sub('\)[ \t]+', ') ', to_output) + to_output = re.sub(r'\)[ \t]+', r') ', to_output) # These are math functions, so should be lower-case - to_output = re.sub('ABS\(', 'abs(', to_output, flags=re.IGNORECASE) - to_output = re.sub('LOG10\(', 'log10(', to_output, flags=re.IGNORECASE) - to_output = re.sub('EXP\(', 'exp(', to_output, flags=re.IGNORECASE) + to_output = re.sub(r'ABS\(', r'abs(', to_output, flags=re.IGNORECASE) + to_output = re.sub(r'LOG10\(', r'log10(', to_output, flags=re.IGNORECASE) + to_output = re.sub(r'EXP\(', r'exp(', to_output, flags=re.IGNORECASE) # There are intrinsic functions, and should be lowercase - to_output = re.sub('TRIM\(', 'trim(', to_output, flags=re.IGNORECASE) - to_output = re.sub('ADJUSTL\(','adjustl(', to_output, flags=re.IGNORECASE) - to_output = re.sub('ADJUSTR\(','adjustr(', to_output, flags=re.IGNORECASE) + to_output = re.sub(r'TRIM\(', r'trim(', to_output, flags=re.IGNORECASE) + to_output = re.sub(r'ADJUSTL\(', r'adjustl(', to_output, flags=re.IGNORECASE) + to_output = re.sub(r'ADJUSTR\(', r'adjustr(', to_output, flags=re.IGNORECASE) # A comma followed by any letter, digit, (, ', or -, should have a space trailing - to_output = re.sub(",(?=[a-zA-Z0-9('-])", ', ', to_output) + to_output = re.sub(r",(?=[a-zA-Z0-9('-])", r", ", to_output) # These are modifiers so should be lowercase - to_output = re.sub(',\s*ONLY\s*:\s*', ', only : ', to_output, flags=re.IGNORECASE) - to_output = re.sub(',\s*OPTIONAL\s*', ', optional', to_output, flags=re.IGNORECASE) - to_output = re.sub(',\s*CONTIGUOUS\s*', ', contiguous', to_output, flags=re.IGNORECASE) - to_output = re.sub(',\s*PARAMETER\s*', ', parameter', to_output, flags=re.IGNORECASE) - to_output = re.sub(',\s*PRIVATE\s*', ', private', to_output, flags=re.IGNORECASE) - to_output = re.sub(',\s*PUBLIC\s*', ', public', to_output, flags=re.IGNORECASE) + to_output = re.sub(r',\s*ONLY\s*:\s*', r', only : ', to_output, flags=re.IGNORECASE) + to_output = re.sub(r',\s*OPTIONAL\s*', r', optional', to_output, flags=re.IGNORECASE) + to_output = re.sub(r',\s*CONTIGUOUS\s*', r', contiguous', to_output, flags=re.IGNORECASE) + to_output = re.sub(r',\s*PARAMETER\s*', r', parameter', to_output, flags=re.IGNORECASE) + to_output = re.sub(r',\s*PRIVATE\s*', r', private', to_output, flags=re.IGNORECASE) + to_output = re.sub(r',\s*PUBLIC\s*', r', public', to_output, flags=re.IGNORECASE) # Place all '::' with exactly one space either side - to_output = re.sub('\s*::\s*', ' :: ', to_output) + to_output = re.sub(r'\s*::\s*', r' :: ', to_output) - # If it's a CALL etc... line, then make the first opening bracket be preceded by no whitespace, and last - # bracket to be preceded by one space (while handling the case where this is split over multiple lines) + # If it's a CALL, SUBROUTINE, etc... line, then the first bracket is preceded by no + # whitespace and the last bracket is preceded by one space, while handling the case + # where this is split over multiple lines to_output, is_inside_procedure, currently_on_multiline = brackets_for_calls('CALL', to_output, is_first_line_of_multiline, is_inside_procedure, currently_on_multiline) to_output, is_inside_procedure, currently_on_multiline = brackets_for_calls('SUBROUTINE', to_output, is_first_line_of_multiline, is_inside_procedure, currently_on_multiline) to_output, is_inside_procedure, currently_on_multiline = brackets_for_calls('FUNCTION', to_output, is_first_line_of_multiline, is_inside_procedure, currently_on_multiline) @@ -236,10 +238,10 @@ def even_quotes(string): to_output = replace_any_case_with_lower_first('PUBLIC', to_output) # Split 'enddo' and 'endif' into two words, lowercase - if re.match('\s*enddo', to_output, flags=re.IGNORECASE): - to_output = re.sub('enddo', 'end do', to_output, 1, flags=re.IGNORECASE) - if re.match('\s*endif', to_output, flags=re.IGNORECASE): - to_output = re.sub('endif', 'end if', to_output, 1, flags=re.IGNORECASE) + if re.match(r'\s*enddo', to_output, flags=re.IGNORECASE): + to_output = re.sub(r'enddo', r'end do', to_output, 1, flags=re.IGNORECASE) + if re.match(r'\s*endif', to_output, flags=re.IGNORECASE): + to_output = re.sub(r'endif', r'end if', to_output, 1, flags=re.IGNORECASE) # These are all modifiers, so should be lowercase to_output = replace_any_case_with_lower('intent(in)', to_output) @@ -249,40 +251,40 @@ def even_quotes(string): to_output = replace_any_case_with_lower('intrinsic', to_output) # Change boolean and relational operators to lowercase - to_output = re.sub('\.true\.', '.true.', to_output, flags=re.IGNORECASE) - to_output = re.sub('\.false\.', '.false.', to_output, flags=re.IGNORECASE) - to_output = re.sub('\.eqv\.', '.eqv.', to_output, flags=re.IGNORECASE) - to_output = re.sub('\.not\.', '.not.', to_output, flags=re.IGNORECASE) - to_output = re.sub('\.or\.', '.or.', to_output, flags=re.IGNORECASE) - to_output = re.sub('\.and\.', '.and.', to_output, flags=re.IGNORECASE) + to_output = re.sub(r'\.true\.', r'.true.', to_output, flags=re.IGNORECASE) + to_output = re.sub(r'\.false\.', r'.false.', to_output, flags=re.IGNORECASE) + to_output = re.sub(r'\.eqv\.', r'.eqv.', to_output, flags=re.IGNORECASE) + to_output = re.sub(r'\.not\.', r'.not.', to_output, flags=re.IGNORECASE) + to_output = re.sub(r'\.or\.', r'.or.', to_output, flags=re.IGNORECASE) + to_output = re.sub(r'\.and\.', r'.and.', to_output, flags=re.IGNORECASE) # If it's a INTEGER, REAL or CHARACTER line, then make the first # opening bracket be preceded by no whitespace, first closing # bracket to be preceded by one space unless there's a comma - if (re.match('\s*integer\s*\(', to_output) or re.match('\s*real\s*\(', to_output) \ - or re.match('\s*character\s*\(', to_output)): - to_output = re.sub('\s*\(', '(', to_output, 1) - to_output = re.sub('\)[^,]\s*', ') ', to_output, 1) + if (re.match(r'\s*integer\s*\(', to_output) or re.match(r'\s*real\s*\(', to_output) \ + or re.match(r'\s*character\s*\(', to_output)): + to_output = re.sub(r'\s*\(', r'(', to_output, 1) + to_output = re.sub(r'\)[^,]\s*', r') ', to_output, 1) # Match IF-THENs, give one space and change to lowercase - if re.search('\s*IF.+THEN', to_output, flags=re.IGNORECASE): - to_output = re.sub('IF\s*', 'if ', to_output, flags=re.IGNORECASE) - to_output = re.sub('\s*THEN', ' then', to_output, flags=re.IGNORECASE) + if re.search(r'\s*IF.+THEN', to_output, flags=re.IGNORECASE): + to_output = re.sub(r'IF\s*', r'if ', to_output, flags=re.IGNORECASE) + to_output = re.sub(r'\s*THEN', r' then', to_output, flags=re.IGNORECASE) # Add space before last bracket of procedure call or # definition, handling multiple lines if is_inside_procedure and not this_line_ends_ampersand: - if re.search('(?<=[a-zA-Z0-9])\)', to_output): - to_output = re.sub(r"\s*\)(?=[^\)]*$)", r" )", to_output) + if re.search(r'(?<=[a-zA-Z0-9])\)', to_output): + to_output = re.sub(r'\s*\)(?=[^\)]*$)', r' )', to_output) is_inside_procedure = False # Change '( )' to '()' - to_output = re.sub('\s*\(\s+\)\s*', '()', to_output) + to_output = re.sub(r'\s*\(\s+\)\s*', r'()', to_output) # Change ')result' to ') result' - if re.match('^\s*FUNCTION', to_output, flags=re.IGNORECASE) \ - or re.match('^\s*PURE FUNCTION', to_output, flags=re.IGNORECASE): - to_output = re.sub('\)result \(', ') result (', to_output, flags=re.IGNORECASE) + if re.match(r'^\s*FUNCTION', to_output, flags=re.IGNORECASE) \ + or re.match(r'^\s*PURE FUNCTION', to_output, flags=re.IGNORECASE): + to_output = re.sub(r'\)result \(', r') result (', to_output, flags=re.IGNORECASE) # End multiline environment if this line doesn't end with an ampersand if not this_line_ends_ampersand: @@ -294,4 +296,5 @@ def even_quotes(string): # ------------------------------------------------- # Write output to file output_file.writelines(outputs) - print('Complete! Now run a find and replace by hand with regex "[^\\n^ !] " to catch incorrect multiple-spaces.') + print('Complete! Now run a find and replace by hand with regex "[^\\n^ !] " ' + 'to catch incorrect multiple-spaces.') diff --git a/tools/update_version_number.sh b/tools/update_version_number.sh index 408215b75..9bd4efa7b 100755 --- a/tools/update_version_number.sh +++ b/tools/update_version_number.sh @@ -14,12 +14,13 @@ # # N.B.: the script MUST be run from the main directory of AtChem2. -VERS_OLD="v1.3-dev" -VERS_NEW="v1.2.2" +VERS_OLD="v1.2.2" +VERS_NEW="v1.3-dev" -# ignore the .git/ directory, exclude this script and the changelog file +# Ignore the .git/ directory, exclude this script and the changelog file find ./ -not -path "./.git/*" -type f ! -name "update_version_number.sh" ! -name "CHANGELOG.md" -print | xargs perl -pi -e "s/$VERS_OLD/$VERS_NEW/g" +echo "" echo "==> AtChem2 version number changed to:" $VERS_NEW echo ""