Skip to content

Commit

Permalink
Updated the docs/source getting_started/*.rst files
Browse files Browse the repository at this point in the history
docs/source/getting_started/00_revision_history.rst
- Add info from GEOS-Chem versions KPP 2.2.4_gc thru KPP 2.3.2_gc
- Also added some extra information.

docs/source/getting_started/01_installation.rst
- Fixed broken link to KPP Github repo
- Updated the section on setting environment variables
- Added GCC as a KPP dependency
- Added extra text to installation section (i.e. sample output)

docs/source/getting_started/02_running_kpp_sample_mech.rst
- Rewrote this to be more clear and to list commands in a
  step-by-step manner.


Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
  • Loading branch information
yantosca committed May 17, 2022
1 parent 0098c27 commit 820688c
Show file tree
Hide file tree
Showing 3 changed files with 564 additions and 117 deletions.
243 changes: 198 additions & 45 deletions docs/source/getting_started/00_revision_history.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,87 +5,240 @@ KPP Revision History
Only the major new features are listed here. For a detailed description
of the changes, read the file :file:`$KPP_HOME/CHANGELOG.md`.

.. _kpp250:

=========
KPP-2.5.0
KPP 2.5.0
=========

- A new forward-Euler method integrator (:program:`feuler.f90`)
- Merged updates from the GEOS-Chem development stream (versions
:ref:`kpp224gc`, :ref:`kpp225gc`, :ref:`kpp230gc`, :ref:`kpp231gc`,
:ref:`kpp232gc` ) into the mainline KPP development
stream. Previously hardwired code has been removed and replaced
with code selectable via KPP commands.

- Added a new forward-Euler method integrator (:program:`feuler.f90`).

- New KPP options :code:`#MINVERSION` and :code:`#UPPERCASEF90`
(along with corresponding continuous integration tests)
- Added KPP commands :command:`#MINVERSION` and :command:`#UPPERCASEF90`
(along with corresponding continuous integration tests).

- Optional variables :code:`Aout` and :code:`Vdotout` have been added
to subroutine Fun()
- Added optional variables :code:`Aout` and :code:`Vdotout` have been added
to subroutine Fun() by default.

- Replaced Fortran :code:`EQUIVALENCE` statements with thread-safe pointer
assignments (Fortran90 only)
assignments (Fortran90 only).

- Converted the KPP user manual to Sphinx/ReadTheDocs format (this now
replaces the prior ReadTheDocs documentaton).

- Added updates to allow KPP to be built on MacOS X systems.

- New documentation in Sphinx/ReadTheDocs format
- Added :program:`small_strato` C-I test that uses the exact same
options as is described in :ref:`running-kpp-with-an-example-mechanism`.

- Updates to allow KPP to be built on MacOS X systems
.. _kpp240:

=========
KPP-2.4.0
KPP 2.4.0
=========

- New integrators: :file:`beuler.f90`, :file:`rosenbrock_mz.f90`,
:file:`rosenbrock_posdef.f90, :file:`rosenbrock_posdef_h211b_qssa.f90`
- Added new integrators: :file:`beuler.f90`, :file:`rosenbrock_mz.f90`,
:file:`rosenbrock_posdef.f90, :file:`rosenbrock_posdef_h211b_qssa.f90`.

- Several memory sizes (:code:`MAX_EQN`, ...) increased to allow large
chemical mechanisms
- Several memory sizes (:code:`MAX_EQN`, ...) have been increased to
allow large chemical mechanisms.

- new Makefile target: :code:`list`
- Added new Makefile target: :code:`list`.

- LaTeX User Manual added
- Added LaTeX User Manual.

- Now use :code:`ICNTRL(15)` to decide whether or not to toggle calling the
:code:`Update_SUN`, :code:`Update_RCONST`, and :code:`Update_PHOTO`
routines from within the integrator
routines from within the integrator.

.. _kpp232gc:

============
KPP 2.3.2_gc
============

NOTE: Contains KPP Modifications specific to GEOS-Chem:

- Added workaround for F90 derived-type objects in inlined code
(i.e. properly parse State_Het%xArea, etc).

- Updated Github issue templates.

- MAX_INLINE (max # of inlined code lines to read) has been increased
to 200000.

- Commented out the Update_Sun() functions in update_sun.F90,
update_sun.F. (NOTE: These have been restored in :ref:`kpp250`).

- Default rate law functions are no longer written to gckpp_Rates.F90.
(NOTE: These have been restored in :ref:`kpp250`).

.. _kpp231gc:

============
KPP 2.3.1_gc
============

NOTE: KPP modifications specific to GEOS-Chem:

ALSO NOTE: ReadTheDocs documentation has been updated in :ref:`kpp250`
to remove GEOS-Chem specific information.

- Added documentation for ReadTheDocs.

- Added Github issue templates.

- README.md now contains the ReadTheDocs badge.

- README.md now points to kpp.readthedocs.io for documentation.

.. _kpp230gc:

============
KPP 2.3.0_gc
============

NOTE: Contains KPP modifications specific to GEOS-Chem

- Added README.md for the GC_updates branch.

- Added MIT license for the GC_updates branch.

- Add :code:`Aout` argument to return reaction rates from
:code:`SUBROUTINE Fun`.

- Rename :file:`KPP/kpp_2.2.3_01` folder to :file:`KPP/kpp-code`.

- Now write :file:`gckpp_Model.F90` and :file:`gckpp_Precision.F90`
from :code:`gen.c`.

- Do not write file creation & time to KPP-generated files (as this
will cause Git to interpret each file as a new file to be added).

- Now create Fortran-90 source code files with :file:`*.F90` instead
of :file:`*.f90`. (NOTE: In :ref:`kpp250`, this can specified with
the :ref:`uppercasef90` command.)

- Remove calls to UPDATE_SUN and UPDATE_RCONST from all *.f90
integrators. (NOTE: This has been restored in :ref:`kpp250`.)
.. _kpp225gc:

============
KPP 2.2.5_gc
============

NOTE: Contains KPP modifications specific to GEOS-Chem

- Increase MAX_INLINE from 20000 to 50000

.. _kpp224gc:

============
KPP 2.2.4_gc
============

NOTE: Contains KPP modifications specific to GEOS-Chem

- Add MIT license files for GC_updates branch and update README.md accordingly

- Create :file:`README.md` for main branch

- Set :envvar:`FLEX_LIB_DIR` using :envvar:`FLEX_HOME` env variable if
it is defined.

- Added an exponential integrator.

- Added array to :file:`*_Monitor` for family names
(:code:`FAM_NAMES`) string vector.

- Added functionality for Prod/Loss families using :ref:`families` token.

- Add scripts necessary to build a new mechanism for GEOS-Chem

- Completed the prod/loss option (token: :code:`#FLUX [on/off]`)

- Added :code:`OMP THREADPRIVATE` to LinearAlgebra.F90

- Added :file:`rosenbrock_split.def` integrator definition

- Added :code:`OMPThreadPrivate` function for F77.

- Added declaration of :code:`A` in :ref:`ROOT_Function`

- Added :code:`OMP THREADPRIVATE` Functionality to F90 output.

- Completed the split-form Function for F90.

- Increase maximum number of equations.

- Increase :code:`MAX_FAMILIES` parameter from 50 to 300

- Extend equation length limit to 200 characters.

- Also changed the species name for a family to the family name itself.

- Modified Families to minimize the number of additional species created

- Renamed and change indexing convention

- Removed unnecessary files

.. _kpp223:

=========
KPP 2.2.3
=========

- A new function called :code:`k_3rd_iupac` is available, calculating
third-order rate coefficients using the formula used by IUPAC
:cite:`2004:IUPAC`.
- A new function called :code:`k_3rd_iupac` is available, calculating
third-order rate coefficients using the formula used by IUPAC
:cite:`2004:IUPAC`.

- While previous versions of KPP were using :program:`yacc` (yet another
compiler compiler), the current version has been modified to be
compatible with the parser generator :program:`bison`, which is the
successor of :program:`yacc`.
- While previous versions of KPP were using :program:`yacc` (yet another
compiler compiler), the current version has been modified to be
compatible with the parser generator :program:`bison`, which is the
successor of :program:`yacc`.

- The new Runge-Kutta integrators :code:`kpp_sdirk4`, :code`runge_kutta`, and
:code:`sdirk` were added.
- New Runge-Kutta integrators were added: :file:`kpp_dvode.f90`,
:file:`runge_kutta.f90`, :file:`runge_kutta_tlm.f90`,
:file:`sdirk_adj.f90`, :file:`sdirk_tlm.f90`.

- The new KPP command :code:`#DECLARE` was added (see :ref:`declare`).
- New Rosebrock method :code:`Rang3` was added.

- The new KPP command :code:`#DECLARE` was added (see :ref:`declare`).

- Several vector and array functions from :program:`BLAS` (:code:`WCOPY`,
:code:`WAXPY`, etc.) were replaced by Fortran90 expressions.

.. _kpp21:

=======
KPP 2.1
=======

This user manual describes recently added features of KPP as well as
those which have been available for a longer period. Here we give an
overview about the recent changes:

- Fortran90 output has been available since the preliminary version
“1.1-f90-alpha12” provided in :cite:`2005:Sander_et_al`.
- Fortran90 output has been available since the preliminary version
“1.1-f90-alpha12” provided in :cite:`2005:Sander_et_al`.

- Matlab is a new target language (see Sect. `4.4 <#sec:matlab>`__).
- Matlab is a new target language (see Sect. `4.4 <#sec:matlab>`__).

- The set of integrators has been extended with a general Rosenbrock
integrator, and the corresponding tangent linear and adjoint methods.
- The set of integrators has been extended with a general Rosenbrock
integrator, and the corresponding tangent linear and adjoint methods.

- The KPP-generated Fortran90 code has a different file structure than
the C or Fortran77 output (see :ref:`f90-code`).
- The KPP-generated Fortran90 code has a different file structure than
the C or Fortran77 output (see :ref:`f90-code`).

- An automatically generated Makefile facilitates the compilation of
the KPP-generated code (see :ref:`Makefile`).
- An automatically generated Makefile facilitates the compilation of
the KPP-generated code (see :ref:`Makefile`).

- Equation tags provide a convenient way to refer to specific chemical
reactions (see :ref:`lookat-and-monitor`.
- Equation tags provide a convenient way to refer to specific chemical
reactions (see :ref:`lookat-and-monitor`.

- The dummy index allows to test if a certain species occurs in the
current chemistry mechanism. (see :ref:`dummyindex`)
- The dummy index allows to test if a certain species occurs in the
current chemistry mechanism. (see :ref:`dummyindex`)

- Lines starting with :code:`//` are comment lines.
- Lines starting with :code:`//` are comment lines.

0 comments on commit 820688c

Please sign in to comment.