Clarification of use of various (external) libraries for cesm-coupling
- Dominant language
- Fortran
- Stars
- 59
- Forks
- 73
- Avg merge
- 5d 22h
- Merged PRs (30d)
- 2
Description
Below is based on my non-expert understanding, apologize in advance if not accurate.
Currently, the Makefile for `cesm-coupling` branch assumes the structure libraries that are prepared by `./manage_externals/checkout_externals`. This perhaps results in mizuRoute Makefile, or the Makefile for libraries, assuming a relative path to each of the needed files during compilation. Tracking each of the libraries also gets very complex across many existing Makefiles.
A way forward can be to specify all the packages, similar to netcdf for example, in mizuRoute Makefile. This link can be for `gptl` or `parallelio`. The Makefile can be directly pointed at the location of the libraries if they are built prior to the compilation of mizuRoute. This also makes it perhaps easier to link the Makefile to libraries prepared by `./manage_externals/checkout_externals`.
Definition of done:
- [x] Remove uneeded externals: cime, mct, mpi-serial
- [ ] Figure out how to build PIO with GPTL on for easybuild
- [ ] Same for spack?
- [ ] Remove isGPTL from the Makefile -- you really need the version in PIO that has the Fortran layer
- [ ] Hardcode GPTL on in the route/build/lib/Makefile
- [ ] Add a note to the Makefile, that you need to build with GPTL on, so use: PIO_ENABLE_TIMING=ON when using an - external PIO library
- [ ] Add similar notes to other places that talk about the standalone build, for example the user's guide, and the README file in route/build
- [ ] Add a graceful error check to the Makefile that autodetects if the external PIO library was built with GPTL or not
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.