Skip to content

Commit b717a0d

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

30 files changed

+534
-1615
lines changed

.ci-pipelines/ci-common-defs.sh

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,18 @@ function get_ci_test_path() {
4646
return
4747
}
4848

49+
# Prints a headeer with the compiler versions
50+
function print_compiler_versions() {
51+
echo \
52+
"###########################################################################"
53+
echo " KPP CONTINUOUS INTEGRATION TESTS, USING THESE COMPILERS:"
54+
echo ""
55+
gcc --version
56+
gfortran --version
57+
echo \
58+
"###########################################################################"
59+
}
60+
4961
# Run a C-I test
5062
function run_ci_test() {
5163

.ci-pipelines/ci-testing-script.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
# Current directory
1111
cwd=$(pwd -P)
1212

13+
# Print a header with the compiler versions
14+
print_compiler_versions
15+
1316
# Run C-I tests with various mechanism + integrator combinations
1417
for this_test in ${GENERAL_TESTS}; do
1518
run_ci_test "${this_test}" "${cwd}" ""

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
# from compiler:
1616
*.mod
1717
*.o
18+
*.exe
1819

1920
# results from ci-tests:
2021
/ci-tests/**/*.m
@@ -67,5 +68,5 @@ docs/build/*
6768

6869
# Other files/dirs to exclude
6970
*.pdf
70-
/examples/mcm/__pycache__
71+
/examples/mcm*/__pycache__
7172

CHANGELOG.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,36 @@ 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.2.0] - 2025-02-27
12+
### Added
13+
- Added new inline key `F90_RCONST_USE` in `src/gdata.h` and `src/scanner.c`
14+
- Added documentation about `F90_RCONST_USE` for ReadTheDocs
15+
- Added `F90_RCONST_USE` inlined code to `Update_RConst`and `Update_Photo` routines
16+
- Added warning that LSODE is not thread-safe to ReadTheDocs documentation
17+
18+
### Changed
19+
- Updated `Update_RCONST` to use `Y` instead of `C` to account for updated variable species concentrations
20+
- Updated C-I tests to print the compiler versions that are used
21+
- Updated routine `GenerateUpdateRconst` to manually write the `SUBROUTINE` and `END SUBROUTINE` lines (F90 only)
22+
- Updated routine `GenerateUpdateRconst` to inline code from `#INLINE F90_RCONST_USE` before any other F90 variable declarations or statements
23+
- Updated `.gitignore` to ignore all executable files
24+
- Changed `Begin INLINED RCONST - F90 USE STATEMENTS` to `Begin inlined code from F90_RCONST_USE` in `src/gen.c`
25+
- Changed inlined code comments to be more precise (e.g. `Begin inlined code from F90_RCONST`) in `src/gen.c`
26+
- Updated Flex library installation example on ReadTheDocs
27+
- Renamed `int/beuler.f90` to the `int/sdirk.f90`, as this is a newer version of the SDIRK integrator
28+
- Updated documentation for Backwards Euler to instruct user to select `#INTEGRATOR sdirk` with `ICNTRL(3) = 6`
29+
- Updated ReadTheDocs dependency`jinja2` to version 3.1.5 (fixes a security issue)
30+
31+
### Fixed
32+
- Added `char* rootFileName` to functions and function prototypes for `Use_C`, `Use_F`, `Use_F90`, `Use_MATLAB`, and `Generate`
33+
- Updated `docs/requirements.txt` to use `jinja2==3.1.4` (fixes a security issue)
34+
- Moved `USE constants_mcm` from `F90_RCONST` to `F90_RCONST_USE` in `examples/mcm/mcm_isoprene.eqn`
35+
- Fixed MacOS-specific handling for x86_64 or arm64 in `src/Makefile.defs`
36+
37+
### Removed
38+
- Removed `int/beuler.f90`
39+
- Removed `int/beuler.def`
40+
1141
## [3.1.1] - 2024-04-30
1242
### Changed
1343
- Updated Python package versions for ReadTheDocs in `docs/requirements.txt`

docs/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@ sphinxcontrib-bibtex==2.6.2
1212
sphinx-autobuild==2021.3.14
1313
recommonmark==0.7.1
1414
docutils==0.20.1
15-
jinja2==3.1.3
15+
jinja2==3.1.5

docs/source/citations/09_acknowledgments.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,7 @@ Stuart Lacy wrote an export function for the `Master Chemical Mechanism
4141
used out-of-the-box for the small model in the :file:`examples/mcm`
4242
directory.
4343

44+
Simon Rosanka improved the :code:`Update_RCONST` subroutine by providing
45+
time-dependent concentration values via an optional parameter.
46+
4447
Parts of this user manual are based on :cite:t:`Damian-Iordache_1996`.

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.1"
28+
release = "3.2.0"
2929

3030

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

docs/source/getting_started/00_revision_history.rst

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,38 @@ 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+
.. _kpp320:
12+
13+
=========
14+
KPP 3.2.0
15+
=========
16+
17+
- Added new inline key :literal:`F90_RCONST_USE` so that F90
18+
:literal:`USE` statements can be inlined into the
19+
:code:`Update_RCONST` and :literal:`UPDATE_PHOTO` routines
20+
- Updated code in :code:`src/gen.c` to generate the
21+
:code:`UPDATE_RCONST` routine with an optional argument :code:`Y`
22+
- Updated C-I tests to print the compiler versions that are used
23+
- Updated :literal:`int/sdirk.f90` to a newer version
24+
- Removed :literal:`int/beuler.f90`; Users can select Backward Euler
25+
with :literal:`sdirk` integrator and :literal:`ICNTRL(3)=6`
26+
- Added MacOS architecture-specific compilation flags to the build sequence
27+
1128
.. _kpp311:
1229

1330
=========
1431
KPP 3.1.1
1532
=========
1633

17-
.. _kpp310:
1834
- Use newer Python packages to build ReadTheDocs documentation (see
1935
:file:`docs/requirements.txt`)
2036
- Increased :code:`MAX_NO_OF_LINES` and :code:`MAX_EQN` in order to
2137
parse the entire MCM mechanism
2238
- Now only add the extra `Aout` argument to `Fun` and `Fun_Split` for
2339
target language :literal:`Fortran90`. This fixes a Matlab build error.
2440

41+
.. _kpp310:
42+
2543
=========
2644
KPP 3.1.0
2745
=========

docs/source/getting_started/01_installation.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,9 @@ the :envvar:`KPP_FLEX_LIB_DIR` environment variable in your
178178
.. code-block:: bash
179179
180180
export KPP_FLEX_LIB_DIR=/usr/lib
181+
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${KPP_FLEX_LIB_DIR}:"
181182
182-
And then apply the changes with:
183+
Then apply the changes with:
183184

184185
.. code-block:: console
185186
Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,30 @@
1-
##########
2-
Known Bugs
3-
##########
1+
#####################
2+
Known bugs and issues
3+
#####################
44

5-
Bugs are discussed at the `KPP repository Github issues page
6-
<https://github.com/KineticPreProcessor/KPP/issues/>`_.
5+
Please see our `Issue tracker on GitHub
6+
<https://github.com/KineticPreProcessor/KPP/issues>`_ for a list of recent
7+
bugs and fixes.
8+
9+
===================
10+
Current bug reports
11+
===================
12+
13+
These `bug reports (on GitHub)
14+
<https://github.com/KineticPreProcessor/KPP/issues?q=is%3Aissue%20state%3Aopen%20label%3Abug>`_
15+
are currently unresolved. We hope to fix these in future releases.
16+
17+
LSODE integrator is not thread-safe
18+
-----------------------------------
19+
20+
We have discovered that the current implementation of the LSODE
21+
integrator is not thread-safe for `OpenMP parallelization
22+
<https://www.openmp.org/>`_. When LSODE is called from within an
23+
OpenMP parallel loop, the integration will fail because key internal
24+
variables in LSODE will be overwritten by concurrent threads.
25+
26+
============================
27+
Bugs that have been resolved
28+
============================
29+
30+
These `bugs (reported on GitHub) <https://github.com/KineticPreProcessor/KPP/issues?q=is%3Aissue%20state%3Aclosed%20label%3Abug>`_ have been resolved.

0 commit comments

Comments
 (0)