Skip to content

Installing CUPID

Erik Kluzek edited this page Feb 20, 2026 · 44 revisions

Installing CUPiD

This page follows the CUPiD Installation Documentation, with some tweaks specific to the NCAR super computer.

1) Checkout CTSM with CUPiD

cd /glade/work/$USER
mkdir ctsm_cupid_2026
cd ctsm_cupid_2026
git clone --origin escomp -b CUPiD https://github.com/ESCOMP/CTSM.git
cd CTSM
./bin/git-fleximod update

You will see something like this:

Note

rtm up to date. mosart up to date. cism up to date. Recursively checking out submodules of cism ccs_config up to date. mpi-serial up to date. share up to date. cdeps up to date. Recursively checking out submodules of cdeps cmeps up to date. cupid updated to 6b12f0b093e2f9f0d91061960975270b63cfad5a Recursively checking out submodules of cupid mizuRoute up to date. Recursively checking out submodules of mizuRoute parallelio up to date. fates up to date. Recursively checking out submodules of fates cime up to date. Recursively checking out submodules of cime

2) Install CUPiD Environments

CUPiD is available from the NCAR organization on github.com. And comes with the version of CTSM that you checked out above (in the tools/CUPiD subdirectory). It requires conda to manage a few different python environments. The NCAR system administrators provide conda through a module, which you can access by running

module load conda

The rest of this tutorial will refer to the location with CUPiD in the CTSM checkout as ${CUPID_ROOT}. To be able to copy and paste blocks of commands directly, we need to add the variable to your environment.

This tutorial assumes you're using a bash shell, which most of you are using by default Linux and Unix computers. We'll the environment variable CUPID_ROOT

cd tools/CUPiD
export CUPID_ROOT=`pwd -P`

Note: This environment variable only exists in this specific terminal. It will need to exported again if you open a separate terminal, unless you modify your start files (see the NCAR documentation for this process for more information).

Checkpoint #1

At this point you should have an open terminal on casper and the current working directory should be your ctsm_cupid_2026 workshop directory.

2.2) Install two conda environments for CUPiD

CUPiD needs a python environment with specific packages installed to run the CUPiD tools, while the diagnostic notebooks provided with CUPiD need a different set of packages.

To run CUPiD itself we use the (cupid-infrastructure) environment, then CUPiD runs the diagnostics notebooks with (cupid-analysis). We will use mamba to install these environments and the --yes option to avoid mamba waiting for approval before continuing with the install:

Install (cupid-infrastructure) and (cupid-analysis)

cd ${CUPID_ROOT}
mamba env create -f environments/cupid-infrastructure.yml --yes && \
mamba env create -f environments/cupid-analysis.yml --yes

BE PATIENT Managing these python environments is kind of slow and may take 10-15 minutes. The last line printed to the screen will say something about doing a pip install on some of the external packages we'll use (e.g. ILAMB). This also takes a bit of time. Your command line will return after it's finished. While this is running, you can keep reading this page and learning more about CUPiD.

Notes:

In the command above you're executing two separate commands separated by &&; the second command (installing (cupid-analysis)) will only run if the first command (installing (cupid-infrastructure) finishes successfully). Also, the \ is a line continuation operator - without it, the command would be on a single line and very long.

If you remove the --yes flag, mamba will ask you to confirm the installation after it determines what packages will be installed.

Make sure you can use the environments

conda activate cupid-infrastructure

If you get an error that looks something like "Shell not initialized", you'll need to install mamba for bash.

conda shell init --shell bash
conda activate cupid-infrastructure

Now test that cupid-diagnostics is available for you

which cupid-diagnostics

You'll see a path to the executable that looks something like:

/glade/work/erik/conda-envs/cupid-infrastructure/bin/cupid-diagnostics

Checkpoint #2

If you aren't familiar with a CTSM checkout, use Linux commands to explore the directory structure. Look at the README and other files to assess what's there.

Congratulations!

You've cloned CTSM enabled with CUPiD and created the conda environments and made sure you can use them. Let's learn a bit about CUPID before you start your analyses!



Next to the CUPiD overview page

Back to the Main LMWG-CUPiD Tutorial Page

Clone this wiki locally