This PR adds cmake build for CMEPS and eliminates a warning with gfortran.
Creates a package configuration that can be used in downstream projects via find_package(cmeps).
Builds static and shared libraries. Static is default, shared is optional.
Built library can be linked via target_link_libraries(target_library cmeps::cmeps)
Moves the comment in nems/util/shr_mpi_mod.F90 after #include <mpif.h> one line up. Macros with comments shows a warning with GNU compilers.
Specific notes
This is an alternative to the traditional GNUMake.
Are changes expected to change answers?
[ ] bit for bit
[ ] different at roundoff level
[ ] more substantial
Any User Interface Changes (namelist or namelist defaults changes)?
[ ] Yes
[x] No
Testing performed if application target is CESM:(either UFS-S2S or CESM testing is required):
No ability to test any of these.
Most likely differences will arise due to different compiler flags.
This will need a bit more tweaks to work with CESM. It should be doable with assistance.
Testing performed if application target is UFS-S2S:
Currently S2S uses GNUMake so this is not an issue.
S2S cmake currently does not descend into CMEPS subdirectory, so that is also not an issue.
Ideally, S2S cmake would do add_subdirectory(CMEPS) and at that point one would be utilizing this cmake build.
This functionality needs to be tested
[ ] (required) UFS-S2S testing
description:
details (e.g. failed tests):
Hashes used for testing:
None of this is tested.
Since this is a PR into emc/develop, does CESM build with emc/develop?
Description of changes
This PR adds cmake build for CMEPS and eliminates a warning with
gfortran
.find_package(cmeps)
.target_link_libraries(target_library cmeps::cmeps)
nems/util/shr_mpi_mod.F90
after#include <mpif.h>
one line up. Macros with comments shows a warning with GNU compilers.Specific notes
This is an alternative to the traditional GNUMake.
Are changes expected to change answers?
Any User Interface Changes (namelist or namelist defaults changes)?
Testing performed if application target is CESM:(either UFS-S2S or CESM testing is required): No ability to test any of these. Most likely differences will arise due to different compiler flags. This will need a bit more tweaks to work with CESM. It should be doable with assistance.
Testing performed if application target is UFS-S2S: Currently S2S uses GNUMake so this is not an issue. S2S cmake currently does not descend into CMEPS subdirectory, so that is also not an issue. Ideally, S2S cmake would do
add_subdirectory(CMEPS)
and at that point one would be utilizing this cmake build. This functionality needs to be testedHashes used for testing: None of this is tested. Since this is a PR into
emc/develop
, does CESM build withemc/develop
?