ESMCI / ESMCI/cime

The set of sharedlibs needed by a model should not be hardcoded

Open
#4,837 6 comments 1 reaction 1 assignee Claimed by @jasonb5 View on GitHub
Low Priority
Dominant language
Python
Stars
174
Forks
225
Avg merge
1d 16h
Merged PRs (30d)
14

Description

In build.py, we have the following code:

```
if ufs_driver and ufs_driver == "nems" and not cpl_in_complist:
libs = []
elif case.get_value("MODEL") == "cesm":
libs = ["gptl", "pio", "csm_share"]
elif case.get_value("MODEL") == "e3sm":
libs = ["gptl", "mct", "spio", "csm_share"]
else:
libs = ["gptl", "mct", "pio", "csm_share"]
```

I propose, instead of having this hardcoded in CIME's build system, this should be a config item in the host model. There's an entry in config_files.xml that is already pretty close:

```

char

$SRCROOT/share/build/buildlib.kokkos
$SRCROOT/share/build/buildlib.gptl
$CIMEROOT/CIME/build_scripts/buildlib.pio
$SRCROOT/share/build/buildlib.spio
$SRCROOT/share/build/buildlib.mct
$SRCROOT/share/build/buildlib.csm_share
$SRCROOT/share/build/buildlib.mpi-serial
$CIMEROOT/CIME/build_scripts/buildlib.cprnc
$SRCROOT/share/build/buildlib.ekat

```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.