Skip to content

Commit cd03fe0

Browse files
committed
KPP 3.1.1 release
This is the release commit for KPP version 3.1.1. Please see CHANGELOG.md for a list of updates. Signed-off-by: Bob Yantosca <[email protected]>
2 parents 5a28a0d + 68d4014 commit cd03fe0

File tree

11 files changed

+87
-26
lines changed

11 files changed

+87
-26
lines changed

.readthedocs.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ version: 2
1414
build:
1515
os: ubuntu-22.04
1616
tools:
17-
python: "3.7"
17+
python: "3.12"
1818
nodejs: "14"
1919
rust: "1.55"
2020
golang: "1.17"

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,16 @@ All notable changes to this project will be documented in this file.
88
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
99
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
1010

11+
## [3.1.1] - 2024-04-30
12+
### Changed
13+
- Updated Python package versions for ReadTheDocs in `docs/requirements.txt`
14+
- Now request Python 3.12 for ReadTheDocs builds in `.readthedocs.yaml`
15+
- Updated `MAX_NO_OF_LINES` to 2000 to parse the MCM mechanism
16+
- Updaeed `MAX_EQN` to 18000 to parse the MCM mechanism
17+
18+
### Fixed
19+
- Now only add tha extra `Aout` argument to `Fun` and `Fun_Split` for F90 (see issues #56, #96)
20+
1121
<!-- Version numbers must be synchronized in CHANGELOG.md, -->
1222
<!-- src/gdata.h, and docs/source/conf.py-->
1323
## [3.1.0] - 2023-12-20

docs/requirements.txt

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
1-
# Requirements for building the KPP documentation
1+
# ======================================================================
2+
# ReadTheDocs requirements file
23
#
3-
# These Python package versions have been proven to work:
4+
# If you wish to install the dependencies for building the ReadTheDocs
5+
# ReadTheDocs documentation from PyPI (the Python Package Index), use:
46
#
5-
sphinx==3.5.4
6-
sphinx_rtd_theme==0.5.2
7-
sphinxcontrib-bibtex==2.2.0
8-
recommonmark
9-
docutils==0.16
10-
jinja2==3.0.3
7+
# $ pip install -r requirements.txt
8+
# ======================================================================
9+
sphinx==7.2.6
10+
sphinx_rtd_theme==2.0.0
11+
sphinxcontrib-bibtex==2.6.2
12+
sphinx-autobuild==2021.3.14
13+
recommonmark==0.7.1
14+
docutils==0.20.1
15+
jinja2==3.1.3

docs/source/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
# The full version, including alpha/beta/rc tags
2626
# (version numbers must be synchronized in CHANGELOG.md, src/gdata.h,
2727
# and docs/source/conf.py)
28-
release = "3.1.0"
28+
release = "3.1.1"
2929

3030

3131
# -- General configuration ---------------------------------------------------

docs/source/getting_started/00_revision_history.rst

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,31 @@ Only the major new features are listed here. For a detailed description
88
of the changes, read `CHANGELOG.md
99
<https://github.com/KineticPreProcessor/KPP/blob/main/CHANGELOG.md>`_.
1010

11+
.. _kpp311:
12+
13+
=========
14+
KPP 3.1.1
15+
=========
16+
17+
.. _kpp310:
18+
- Use newer Python packages to build ReadTheDocs documentation (see
19+
:file:`docs/requirements.txt`)
20+
- Increased :code:`MAX_NO_OF_LINES` and :code:`MAX_EQN` in order to
21+
parse the entire MCM mechanism
22+
- Now only add the extra `Aout` argument to `Fun` and `Fun_Split` for
23+
target language :literal:`Fortran90`. This fixes a Matlab build error.
24+
25+
=========
26+
KPP 3.1.0
27+
=========
28+
29+
- Added :literal:`#AUTOREDUCE` to the list of KPP commands in the
30+
ReadTheDocs documentaton
31+
- Added :file:`examples/mcm` folder with minimal example for the
32+
Master Chemical Mechanism
33+
- Added C-I test for MCM, based on the minimal example
34+
- Removed obsolete input options from the code and documentation
35+
1136
.. _kpp302:
1237

1338
=========

docs/source/using_kpp/04_input_for_kpp.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -929,8 +929,8 @@ or define variables directly, e.g.:
929929
Note that the :code:`USE` statements must precede any variable
930930
definitions.
931931

932-
The inlined code will be placed directly into the :code:`UPDATE_RCONST`
933-
routine in the :ref:`Rates` function.
932+
The inlined code will be placed directly into the subroutines
933+
:code:`UPDATE_RCONST` and :code:`UPDATE_PHOTO` in the :ref:`Rates` file.
934934

935935
.. _f90-util:
936936

examples/mcm/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ degradation mechanism is used as an example.
1212
1. Browse through the [MCM](https://mcm.york.ac.uk/MCM/browse) and
1313
select a Subset of the mechanism.
1414

15-
2. Go to the [export page](https://mcm.york.ac.uk/MCM/export) and
16-
choose KPP as the output format.
15+
2. Go to the [export page](https://mcm.york.ac.uk/MCM/export) and choose
16+
KPP as the output format.
1717

1818
3. Click on the `Download` button and rename the downloaded file to
1919
`mcm_isoprene.eqn`.

src/code_f90.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ int first;
120120
int crtident;
121121

122122
/* if MAX_NO_OF_LINES is too small, KPP will split lines incorrectly */
123-
int number_of_lines = 1, MAX_NO_OF_LINES = 250;
123+
int number_of_lines = 1, MAX_NO_OF_LINES = 2000;
124124

125125
/* Operator Mapping: 0xaa = '*' | 0xab = '+' | 0xac = ','
126126
0xad = '-' | 0xae ='.' | 0xaf = '/' */

src/gdata.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131

3232
// Version numbers must be synchronized in CHANGELOG.md, src/gdata.h,
3333
// and docs/source/conf.py
34-
#define KPP_VERSION "3.1.0"
34+
#define KPP_VERSION "3.1.1"
3535

3636
#ifndef _GDATA_H_
3737
#define _GDATA_H_
@@ -57,11 +57,14 @@
5757
// problems on MacOS then consider reducing MAX_EQN and MAX_SPECIES
5858
// to smaller values than are listed below.
5959
// -- Bob Yantosca (03 May 2022)
60+
// (3) The large value of MAX_EQN = 18000 is necessary to run the
61+
// complete MCM mechanism in KPP.
62+
// -- Rolf Sander (2024-01-03)
6063
#ifdef MACOS
6164
#define MAX_EQN 2000 // Max number of equations (MacOS only)
6265
#define MAX_SPECIES 1000 // Max number of species (MacOS only)
6366
#else
64-
#define MAX_EQN 11000 // Max number of equations
67+
#define MAX_EQN 18000 // Max number of equations
6568
#define MAX_SPECIES 6000 // Max number of species
6669
#endif
6770
#define MAX_SPNAME 30 // Max char length of species name

src/gen.c

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -652,24 +652,42 @@ int F_VAR, FSPLIT_VAR;
652652
// Note: When changing the FunctionBegin declarations below,
653653
// the number of arguments minus one must be changed in DefFnc here
654654
// as well. (hplin, 7/6/22)
655-
F_VAR = DefFnc( "Fun", 5,
656-
"time derivatives of variables - Aggregate form");
657-
658-
FSPLIT_VAR = DefFnc( "Fun_SPLIT", 7,
659-
"time derivatives of variables - Split form");
660-
655+
//
656+
// For F90, add an extra argument to Fun and Fun_Split to return
657+
// the Aout array. (hplin, bmy, 30 Apr 2024)
658+
if (useLang == F90_LANG) {
659+
F_VAR = DefFnc("Fun", 5,
660+
"time derivatives of variables - Aggregate form");
661+
FSPLIT_VAR = DefFnc("Fun_SPLIT", 7,
662+
"time derivatives of variables - Split form");
663+
} else {
664+
F_VAR = DefFnc("Fun", 4,
665+
"time derivatives of variables - Aggregate form");
666+
FSPLIT_VAR = DefFnc("Fun_SPLIT", 6,
667+
"time derivatives of variables - Split form");
668+
}
661669

662670
// We have added the capability to return equation rates and the
663671
// time derivative of variable species from Fun via optional arguments
664672
// Aout and VdotOut (when z_useAggregate=1)
665673
// -- Bob Yantosca (03 May 2022)
666674
//
667675
// Vdotout functionality can be accomplished using Vdot (hplin, 7/6/22)
676+
//
677+
// F90 needs Fun to have an extra argument for Aout (hplin, bmy, 30 Apr 2024)
668678
if( z_useAggregate ) {
669-
FunctionBegin( F_VAR, V, F, RCT, Vdot, Aout );
679+
if (useLang == F90_LANG) {
680+
FunctionBegin( F_VAR, V, F, RCT, Vdot, Aout );\
681+
} else {
682+
FunctionBegin( F_VAR, V, F, RCT, Vdot );
683+
}
670684
}
671685
else {
672-
FunctionBegin( FSPLIT_VAR, V, F, RCT, Vdot, P_VAR, D_VAR, Aout );
686+
if (useLang == F90_LANG) {
687+
FunctionBegin( FSPLIT_VAR, V, F, RCT, Vdot, P_VAR, D_VAR, Aout );
688+
} else {
689+
FunctionBegin( FSPLIT_VAR, V, F, RCT, Vdot, P_VAR, D_VAR );
690+
}
673691
}
674692

675693
if ( (useLang==MATLAB_LANG)&&(!z_useAggregate) )

0 commit comments

Comments
 (0)