2.2. Building UPP Stand-Alone
The UPP uses a CMake-based build system to integrate all the required components for building the UPP. Once built, the UPP can be run standalone (outside the UFS Applications) to post-process model output.
2.2.1. Software Requirements
The UPP is tested on a variety of research platforms, including NOAA HPC systems (e.g., Hera, Orion). These supported platforms are preconfigured for building and running the UPP and already have the required libraries available via spack-stack in a centralized location. The spack-stack is a Spack-based method for installing UFS prerequisite software libraries.
Users working on unsupported platforms will need to install spack-stack on their system and can do so following the instructions in the spack-stack User’s Guide.
Note
Users can install HPC-Stack instead of spack-spack by following the instructions in the HPC-Stack User’s Guide. However, support for HPC-Stack is being deprecated, and limited assistance is available for use of HPC-Stack with the UPP.
2.2.1.1. Common Modules
As of February 1, 2024, the UPP uses the following common modules from spack-stack:
cmake 3.16.1+
hdf5/1.14.0
netcdf-c 4.9.2
netcdf-fortran 4.6.1
jasper 2.0.32
libpng 1.6.37 / png 1.6.35
zlib 1.2.13
g2 3.4.5
g2tmpl 1.10.2
parallelio 2.5.10
bacio 2.4.1
ip 4.3.0
sp 2.5.0
crtm 2.4.0.1
w3emc 2.10.0
nemsio 2.5.4
sigio 2.3.2
sfcio 1.4.1
wrf_io 1.2.0
Individual machines may subsequently load slightly different versions. The most updated list of modules for a given machine can be viewed in each machine’s modulefile. Users on non-Tier-1 systems should look at the modulefile for the system whose architecture most closely resembles their own system’s architecture to determine which modules they may need.
2.2.2. Obtaining and Installing UPP
Building and running UPP v11.0.0 has been tested and is supported on the following pre-configured platforms.
System |
Compiler and Version |
---|---|
NOAA Hera |
Intel 18.0.5.274 |
NOAA Orion |
Intel 2018.4 |
To install the UPP, navigate to the directory where you want to install UPP and clone the repository.
git clone -b branch-or-tag-name https://github.com/NOAA-EMC/UPP
where, branch-or-tag-name
is the release branch or tag you wish to clone (e.g., upp_v11.0.0
). (Leaving off the -b
argument will clone all branches of the repository.)
Move to the directory with the build script and build the UPP.
cd UPP/tests
./compile_upp.sh
Note
To build in debug mode, you can add -DCMAKE_BUILD_TYPE=Debug
to the cmake_opts
parameter in the compile_upp.sh
script.
This removes compiler optimization flags and adds -g
to the Fortran compilation. You can also use
-DCMAKE_BUILD_TYPE=RELWITHDEBINFO
, which gives the -g
, but keeps the -O2
optimization
for the Fortran compilation.
Move back to the top-level UPP directory and create a directory where the CRTM fix files will be unpacked. Download the fix files from the GitHub release page or use the wget
command. Unpack the tar file.
cd ../
mkdir crtm && cd crtm
wget https://github.com/NOAA-EMC/UPP/releases/download/upp_v11.0.0/fix.tar.gz
tar -xzf fix.tar.gz
Note
To make a clean build, simply remove both the tests/build
and tests/install
directories and the
exec/upp.x
executable and then rerun the compile_upp.sh
script. This is recommended if a mistake is made during the installation process.