Skip to content

Conversation

@yantosca
Copy link
Contributor

@RolfSander has merged the MECCA branch of development into the dev branch. We can now consider releasing KPP 2.4.0.

I have updated the CHANGELOG.md and the version number in gdata.h accordingly.

RolfSander and others added 30 commits October 1, 2021 18:36
show settings with "gmake list"
We want to build F90 code with GNU Fortran, as this is an open-source
compiler that is available on all systems.  This will facilitate
continuous integration testing in the cloud (e.g. on Azure pipelines)

Signed-off-by: Bob Yantosca <[email protected]>
In the ci-tests/small_f90 folder, we have made symbolic links to all
of the necessary files to build and run the small_f90 mechanism with
KPP.  The sequence to run the CI test is now

$ kpp small_f90.kpp
$ make
$ ./small_f90.exe

We have also made a symbolic link called Makefile that points to the
Makefile_small_f90 for convenience.

We have also updated the .gitignore files in ci-tests/small_f90
and in the examples folder so that Git will not store any of the
objects, modules, or executables.

Signed-off-by: Bob Yantosca <[email protected]>
These are needed to prevent unwanted files from showing up in Git.
We are using local .gitignore files so that these are a property of
the repository rather than a property of a user's local configuration.

Signed-off-by: Bob Yantosca <[email protected]>
./ci-pipelines/ci-testing-script.sh
- Update commands for compiling & running
  the small_f90 CI test

util/Makefile.f90
- Bracket the compiler setting with an ifndef $(COMPILER)
  block.  If the COMPILER variable is not passed via the
  command line when calling "make", then it will default to
  COMPILER=INTEL.

.gitignore_global
- Removed from prior commit

Signed-off-by: Bob Yantosca <[email protected]>
Added two new CI test folders:
ci-tests/sd (Sdirk integrator w/ F90)
ci-tests/rk (Runge-Kutta integrator w/ F90)

Also updated the .ci-pipelines/ci-testing-script.sh file
accordingly to build & run these new tests.

Signed-off-by: Bob Yantosca <[email protected]>
We now test the $? (the bash status variable) after each individual
step of the CI-tests.  If the status returns nonzero, we exit the script
with a failure status of 1.

Also print out some descriptive text to stdout to let us know where
we are in the testing sequence.

Signed-off-by: Bob Yantosca <[email protected]>
.ci-pipelines/ci-testing-script.sh
- Now use a for loop to loop over ci-test folders and run tests

Added CI-test for the following Fortran90 examples:
- radau90
- rktlm
- ros
- rosadj
- rosenbrock90
- rostlm
- saprc2006
- sdadj

Also added .gitignore files into each of then new CI-test folders.


Signed-off-by: Bob Yantosca <[email protected]>
Makefile.defs:
- Add ifeq block to set CC_FLAGS and FLEX_LIB_DIR for MacOS systems
- Also add error trap if libfl.a cannot be found in FLEX_LIB_DIR

src/gen.c
src/scan.y
src/scanutil.c
- added an #ifdef MACOS block to #include <malloc/malloc.h> if MACOS,
  or #include <malloc.h> otherwise.

Signed-off-by: Bob Yantosca <[email protected]>
Some of the ci-tests produce output files named *_results.m.  We now
have updated the .gitignore files in the CI-tests branch to skip
these.

Signed-off-by: Bob Yantosca <[email protected]>
This was causing CI-tests to fail.
Commented out until further notice

Signed-off-by: Bob Yantosca <[email protected]>
We have added ./ci-pipelines/ci-manual-testing-script.sh, which allows
you to run all of the CI tests manually. It is similar to the
ci-testing-script.sh but is modified for the proper directory paths
(since ci-testing-script.sh is run within the Docker container).

Also changed the permission of ci-testing-script.sh from chmod 664
to chmod 775.

Signed-off-by: Bob Yantosca <[email protected]>
RolfSander and others added 13 commits April 19, 2022 15:08
Changed the comments for ICNTRL(15)=6 from "Not implemented" to
"Call Update_SUN and UPDATE_PHOTO from within the int".

Changed the comments for ICNTRL(15)=7 from "Not implemented" to
"Call Update_SUN, Update_PHOTO, and Update_RCONST from within the int."

Signed-off-by: Bob Yantosca <[email protected]>
KPP 2.4.0 brings in the MECCA branch updates into the main
line of development, as well as using ICNTRL(15) to toggle
the Update_* functions from within the solver.

We have updated the CHANGELOG.md and the version number
in gdata.h accordingly.

Signed-off-by: Bob Yantosca <[email protected]>
@yantosca yantosca added feature New feature or request CI / testing Related to continuous integration or other testing methods integrators Related to numerical integrators code / structural Related to structural source code updates labels Apr 22, 2022
@yantosca yantosca requested a review from RolfSander April 22, 2022 13:23
@yantosca yantosca self-assigned this Apr 22, 2022
@yantosca yantosca added this to the 2.4.0 milestone Apr 22, 2022
@RolfSander
Copy link
Contributor

Thanks, @yantosca, for preparing version 2.4.0!

I would like to do more testing inside my MECCA environment before 2.4.0
is released. Can we start with calling the current version 2.4.0-rc.0? I
can create a temporary "release" branch for my tests. That way you can
continue with merging the GC_updates into dev (PR #28) and don't have to
wait for me.

(btw: note that the CI checks failed already because your latest bug fix
for kpp_lsode.f90 is only in add-geos-chem-updates but not yet in dev)

int/kpp_lsode.f90
- The local variables TOLD were not defined in the FUN_CHEM and
  JAC_CHEM functions (which are used by the integrator).  This had
  caused CI tests to fail.  Now fixed.

Signed-off-by: Bob Yantosca <[email protected]>
@yantosca
Copy link
Contributor Author

The CI failures are now fixed in commit 7689009. This was because the int/kpp_lsode.f90 integrator did not declare real variable TOLD, which caused a compile-time error.

@RolfSander
Copy link
Contributor

I made a few small changes:

  • I don't think RTOLS is needed (gen.c).

  • My comments about index numbers was incorrect, so I simplified it now (code_f90.c).

Copy link
Contributor

@RolfSander RolfSander left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm done with my tests. KPP 2.4.0 works fine in our MECCA chemistry
model. I'm happy to merge dev into main now.

@yantosca
Copy link
Contributor Author

Thanks @RolfSander, go ahead and merge. Great job!

@RolfSander RolfSander merged commit 252da85 into main Apr 25, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI / testing Related to continuous integration or other testing methods code / structural Related to structural source code updates feature New feature or request integrators Related to numerical integrators

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants