Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MCM #92

Merged
merged 19 commits into from
Dec 20, 2023
Merged

MCM #92

merged 19 commits into from
Dec 20, 2023

Conversation

RolfSander
Copy link
Contributor

see #4

RolfSander and others added 19 commits November 27, 2023 15:29
.ci-tests/F90-mcm
- New folder containing symbolic links to key files in the
  ../../examples/mcm folder.  These include the constants and driver
  files and the *.kpp and *.eqn files.

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
util/Makefile_f90
util/Makefile_upper_F90
- Add user-defined env var $(EXTERNAL_RATES_F90) to GENSRC list
- Add user-defined env var $(EXTERNAL_RATES_OBJ) to GENOBJ list
- Add the rule to build $(EXTERNAL_RATES_OBJ), but only if both
  $(EXTERNAL_RATES_F90) and $(EXTERNAL_RATES_OBJ) are not blank.

This will allow you to compile constants_mcm.f90 so that it can be
used by the F90_Rates module if you pass

 EXTERNAL_RATES_SRC=constants_mcm.f90 EXTERNAL_RATES_OBJ=constants_mcm.o

to the make command.

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
examples/mcm/mcm.kpp
- Add #UPPERCASEF90.  Default setting is OFF.  This will allow users
  to build the MCM for models that require use of *.F90 suffixes.

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
This is necessary in order to avoid a compilation error.
We can work on making this more flexible later.

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
.ci-pipelines/ci-cleanup-script.sh
- Clean up the MCM test folder separately

.ci-pipelines/ci-common-defs.sh
- Add variable MCM_TEST to specify the name of the MCM test folder
- Function run_ci_test now takes a 3rd argument with extra commands
  that can be passed to the Fortran compilation.  This is necessary
  for us to allow specification of the constants_mcm.f90 and
  constants_mcm.o via environment variables.

.ci-pipelines/ci-testing-script.sh
- Add a separate call to run_ci_test to run the MCM C-I test

CHANGELOG.md
- Updated accordingly

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
.ci-pipelines/ci-common-defs.sh
- Add DO_MCM=1 variable.  If set to 1, the MCM test will be run,
  otherwise it'll be skipped.

.ci-pipelines/ci-testing-script.sh
- Wrap the commands to run the MCM test in an if block that tests
  if DO_MCM=1

.ci-pipelines/Dockerfile
- Add an sed command to change DO_MCM=1 to DO_MCM=0, thus disabling
  the MCM C-I test on Azure.  It will fail due to having too many
  reactions.  But you will be able to run the MCM test locally.

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
util/Makefile_f90
util/Makefile_upper_F90
- Allow the user to pass the EXTERNAL_RATES_F90 environment variable
  to specify an external modules that gets USE-d via F90_RCONST
- Makefile variable EXTERNAL_RATES_OBJ is now created by replacing
  the suffixes .f90 and .F90 with .o

example/mcm/README
example/mcm/README.md
- README is now README.md (with Markdown)

example/mcm/Makefile
- Deleted, we can now let KPP generate the Makefile

.gitignore
- Now ignore *.pdf and examples/mcm/__pycache__

.ci-pipelines/ci-testing-script.sh
- Fix typos
- Now only pass EXTERNAL_RATES_F90

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
util/Makefile_f90
util/Makefile_upper_F90
- Declare EXTERNAL_RATES_OBJ with := instead of =, to avoid a
  recursive file error

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
examples/mcm/README.md
- Add a note stating that only one external F90 file can be specified
  via the EXTERNAL_RATES_F90 environment variable without having to
  further modify the util/Makefile_f90 and/or util/Makefile_upper_F90
  files.

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
This merge brings PR #83 (Add a C-I test for the MCM minimal example,
Update F90 Makefiles to specify an external module, by @yantosca)
into the MCM branch.

This PR adds extra functionality for the MCM minimal example,
including adding C-I testing capability.

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
@RolfSander RolfSander linked an issue Dec 20, 2023 that may be closed by this pull request
@yantosca yantosca changed the base branch from main to dev December 20, 2023 15:53
Copy link
Contributor

@yantosca yantosca left a comment

Choose a reason for hiding this comment

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

This looks good to merge. I will merge into dev. then make sure we change the version numbers etc, then merge into main.

@yantosca yantosca merged commit ace8cfb into dev Dec 20, 2023
1 check passed
@yantosca yantosca deleted the mcm branch December 20, 2023 16:05
@yantosca
Copy link
Contributor

@RolfSander: Let me know if there are other last minute updates for KPP 3.1.0. Otherwise I'll go ahead and release.

@RolfSander
Copy link
Contributor Author

Thanks, @yantosca!

I think we're ready for the 3.1.0 release.

I still want to solve the problem with the preprocessor style comments
(#91) but that's not
urgent...

@yantosca
Copy link
Contributor

Thanks @RolfSander. I'll release today.

@RolfSander
Copy link
Contributor Author

Great, thanks for releasing 3.1.0!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

include reactions from the MCM
2 participants