Installing UPP
Installing UPP admin Fri, 03/01/2019 - 10:50Supported Architectures
Vendor | Hardware | OS | Compiler |
---|---|---|---|
SGI | Intel Xeon | SUSE Linux | GNU, Intel |
Cray | Intel Haswell | Linux | GNU, PGI |
Dell | Intel Xeon | Debian Linux | GNU, PGI |
Obtaining the UPP Code
The user can obtain the code in one of two ways:
-
The UPP package is now available on Github. To create a local copy of the remote UPP repository on your computer and get the CRTM submodules:
git clone -b release-tag-name --recurse-submodules https://github.com/NOAA-EMC/EMC_post UPPV4.1
where, release-tag-name is the release tag you wish to clone (e.g. for UPPV4.1 use the release tag dtc_post_v4.1.0).
This will clone the specified release of the EMC_post repository into a directory called UPPV4.1.
-
Download the release tarfile from the UPP website (here)
Once the tar file is obtained, gunzip and untar the file.
tar -xzvf UPPV4.1.tar.gz
This command will create a directory called UPPV4.1.
The remainder of this documentation assumes the top directory of the UPP is called UPPV4.1
Examine the UPP Source Code
Move into the UPPV4.1 directory you created:
cd UPPV4.1
Under the main directory of UPPV4.1 reside the following relevant subdirectories:
(* indicates directories that are created after the configuration step)
exec*: Contains the unipost executable after successful compilation
include*: Source include modules built/used during compilation of UPP
lib*: Libraries built/used by UPP that are separate from NCEPlibs
parm: Contains parameter files, which can be modified by the user to control how the post processing is performed.
scripts: Contains sample run scripts to process wrfout and fv3 history files.
- run_unipost: run unipost.
- run_unipostandgempak: run unipost and GEMPAK to plot various fields.
- run_unipostandgrads: run unipost and GrADS to plot various fields.
- run_unipost_frames: run unipost on a single file containing multiple forecast times. (WRF only)
- run_unipost_gracet: run unipost on forecast files with non-zero minutes/seconds. (WRF only)
- run_unipost_minutes: run unipost for sub-hourly forecast files. (WRF only)
- run_unipostandgrads_global: run unipost and GrADS for global wrfout files; results in single GRIB file. (WRF only)
sorc: Contains source codes for:
- arch: Machine dependent configuration build scripts used to construct *configure.upp*
- comlibs: Contains source code subdirectories for the UPP libraries not included in NCEPlibs
- crtm2: Community Radiative Transfer Model library
- wrfmpi_stubs: Contains some C and FORTRAN codes to generate libmpi.a library used to replace MPI calls for serial compilation.
- xml: XML support for the GRIB2 parameter file
- ncep_post.fd: Source code for unipost
Required Software and Libraries
Required Software and Libraries admin Fri, 03/01/2019 - 10:54Before installing the UPP code, it is necessary to ensure that you have the required libraries available on your system. These libraries include:
For instructions on building the NCEP libraries required for UPP, please refer to the README document in the NCEPlibs directory.
Note: These are specific versions of the NCEP libraries maintained by NCAR/DTC and other versions of NCEPlibs may not work.
The UPP has some sample visualization scripts included to create graphics using:
Note: These are not part of the UPP installation and need to be installed separately if one would like to use either plotting package.
It is important to note that these libraries must be installed with the same compiler as will be used to install UPP.
Configure UPP
Configure UPP admin Fri, 03/01/2019 - 11:02Set Environment Variables
Before installing UPP, the following environment variables must be set:
setenv NETCDF /path/to/netcdf
setenv NCEPLIBS_DIR /path/to/NCEPlibs
To reference the netCDF libraries, the configure script checks for an environment variable (NETCDF) first, then the system default (/user/local/netcdf ), and then a user supplied link (./netcdf_links). If none of these resolve a path, the user will be prompted by the configure script to supply a path. To reference the NCEP libraries, the configure script checks for an environment variable (NCEPLIBS_DIR).
Type configure, and provide the required info. For example:
./configure
Configuration
You will be given a list of choices for your computer.
(Please note that at this time, the option to build serially does not work)
Choices for LINUX operating systems are as follows:
- Linux x86_64, PGI compiler (serial)
- Linux x86_64, PGI compiler (dmpar)
- Linux x86_64, Intel compiler (serial)
- Linux x86_64, Intel compiler (dmpar)
- Linux x86_64, Intel compiler, SGI MPT (serial)
- Linux x86_64, Intel compiler, SGI MPT (dmpar)
- Linux x86_64, gfortran compiler (serial)
- Linux x86_64, gfortran compiler (dmpar)
Choose one of the dmpar configure options listed. If the serial option is chosen during configuration, an error statement will be printed. Check the configure.upp file created and edit for compile options/paths, if necessary. For debug flag settings, the configure script can be run with a -d switch or flag.
For debug flag settings, the configure scripts can be run with the -d flag.
The remainder of this tutorial assumes that you have installed UPP in the top-level UPPV4.1 directory.
Compile UPP
Compile UPP admin Fri, 03/01/2019 - 11:03Compile UPP
To compile UPP, enter the following command:
./compile >& compile_upp.log &
Examine the contents of the compile_upp.log file to verify the build was successful and there were no errors.
Built Executables and Libraries
The exec subdirectory should contain the UPP executable:
- unipost.exe
The lib subdirectory should contain 2 UPP libraries when compiling with distributed memory:
- libCRTM.a
- libxmlparse.a
To remove all built files, as well as the configure.upp, type:
./clean
This action is recommended if a mistake is made during the installation process or a change is made to the configuration or build environment. There is also a clean -a option which will revert back to a pre-install configuration.
Note: For building UPPV4.1 on operational NCEP machines (hera/jet/wcoss), just type ./compile machine_name (e.g. ./compile hera). This is an option for UPPV4.1 only and will not work for any previous release versions.
Known Issues and Requesting Help
If you encounter problems building UPPV4.1, please:
- Refer to the UPPV4.1 known issues page.
- Refer to the FAQS page.
- If you need help, please refer to the information on the Requesting Help page.