Installing UPP

Installing UPP admin Fri, 03/01/2019 - 10:50

Supported Architectures

Table 1. Hardware and compiler configurations tested for UPPV4.1.
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:

  1. 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.

  2. 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:54

Before installing the UPP code, it is necessary to ensure that you have the required libraries available on your system. These libraries include:

  • Unidata's NetCDF library (here)
  • The NCEP libraries for the UPP application (here)

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. 

arrow 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:02

Set 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:

  1. Linux x86_64, PGI compiler (serial)
  2. Linux x86_64, PGI compiler (dmpar)
  3. Linux x86_64, Intel compiler (serial)
  4. Linux x86_64, Intel compiler (dmpar)
  5. Linux x86_64, Intel compiler, SGI MPT (serial)
  6. Linux x86_64, Intel compiler, SGI MPT (dmpar)
  7. Linux x86_64, gfortran compiler (serial)
  8. 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. 

arrow 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:03

Compile 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: