> For the complete documentation index, see [llms.txt](https://docs-ksc.gitbook.io/blog/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-ksc.gitbook.io/blog/install/nurion/uppv3.1-install.md).

# UPP v3.1 설치 소개

UPP(The Unified Post Processor)는 대기 상태 예측 분야에서 raw model output에서 유용한 product를 생성할 수 있도록 설계된 소프트웨어 패키지입니다.&#x20;

* UPP Github : <https://github.com/NOAA-EMC/UPP>

이 문서에서는 UPP 3.1 버전을 컴파일 하여 설치 하는 방법에 대해 예시로 소개합니다.

## **가. 설치 환경**

| 구분         | 내용                         |
| ---------- | -------------------------- |
| 대상 시스템     | 누리온                        |
| OS Version | 리눅스 / CentOS 7.9           |
| CPU        | Intel(R) Xeon(R) Gold 6126 |
| 컴파일러       | Intel 2018.3 Version       |
| MPI        | IntelMPI 2018.3 Version    |
| 기타         | WRFV3.9.1.1                |

## **나. 설치 전 환경 설정**

누리온 시스템에서는 PATH, LD\_LIBRARY\_PATH 설정을 손쉽게 하기 위해서 환경설정 툴인 Module이 구성되어 있으며 이하 설치 소개에서는 module load 를 이용한 환경설정 방법으로 안내 드립니다.

\[ 환경 설정 ]

<pre class="language-shell-session"><code class="lang-shell-session"><strong>$ module purge
</strong><strong>$ module load craype-x86-skylake intel/18.0.3 impi/18.0.3
</strong>$ module load hdf4/4.2.13 hdf5/1.10.2 netcdf/4.6.1 ncl/6.5.0
$ export JASPERLIB=/apps/common/jasper/1.900.29/lib
$ export JASPERINC=/apps/common/jasper/1.900.29/include
</code></pre>

## **다. 설치 과정**

설치 과정 소개는 tar 를 이용한 압축 해제 방법과 설정 방법등 진행 절차를 위주로 설명하고, 소스 파일 다운로드 등은 생략합니다.

\[설치과정]

```shell-session
$ tar xvzf DTC_upp_v3.1.tar.gz
$ cd UPPV3.1
$ ./configure
- - - - - [configure 과정 진행 내용] 참고
$ vi configure.upp
- - - - - [configure.upp 파일 수정 수정 내용] 참고
$ ./compile
```

※ UPP는 WRF 경로 설정을 별도로 하지 않기 위하여 아래와 같이 WRF와 동일 경로 상에 설치,  만약 다른 경로에 WRF 가 있다면 WRF\_DIR 설정이 필요

\[configure 과정 진행 내용]

```shell-session
$ ./configure
Will use NETCDF in dir: /apps/compiler/intel/18.0.3/applib1/mic-knl/netcdf/4.6.1
Will use WRF in dir: /scratch/optpar02/install_test/WRF/UPPV3.1/../WRFV3
configure: making ./bin
bindir /scratch/optpar02/install_test/WRF/UPPV3.1/bin
configure: making ./include
incmod /scratch/optpar02/install_test/WRF/UPPV3.1/include
configure: making ./lib
libdir /scratch/optpar02/install_test/WRF/UPPV3.1/lib
JASPER Environent found :: GRIB2 library ::
grib2lib = -L/apps/common/jasper/1.900.29/lib -lpng -lz -ljasper
grib2inc = -I/apps/common/jasper/1.900.29/include
-------------------------------------------------------------------------
Please select from among the following supported platforms.
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)
9. Linux x86_64, Intel compiler, IBM POE (serial)
10. Linux x86_64, Intel compiler, IBM POE (dmpar)
11. Linux x86_64, gfortran compiler: -f90=gfortran (serial)
12. Linux x86_64, gfortran compiler: -f90=gfortran (dmpar)
13. Linux x86_64, PGI compiler: -f90=pgf90 (serial)
14. Linux x86_64, PGI compiler: -f90=pgf90 (dmpar)
Enter selection [1-14] : 4
-------------------------------------------------------------------------
Configuration successful. To build the UPP, type: compile
-------------------------------------------------------------------------
```

\[configure.upp 파일 수정 수정 내용]

```
DM_FC = mpiifort
DM_F90 = mpiifort -free
DM_CC = mpiicc
FOPT = -O3 -fPIC -xCOMMON-AVX512
CRTMOPT = -O3 -fPIC -xCOMMON-AVX512
COPT = -O3 -fPIC -xCOMMON-AVX512
GRIB2SUPT_LIB = -L/apps/common/jasper/1.900.29/lib -L/apps/common/libpng/1.2.56/lib -lpng -lz -ljasper
GRIB2SUPT_INC = -I/apps/common/jasper/1.900.29/include -I/apps/common/libpng/1.2.56/include
```

※ 누리온 시스템 설치 예제는 SKL/KNL 계산노드에서 공통적으로 사용을 위해 "-xCOMMON-AVX512" 로 작성

\- SKL(skylake) 노드 전용 : -xCORE-AVX512\
\- KNL(Intel Xeon Phi Knights Landing) 전용 : -xMIC-AVX512\
\- SKL 과 KNL 공통 적용 : -xCOMMON-AVX512\
\- 참고 : <https://software.intel.com/en-us/articles/compiling-for-the-intel-xeon-phi-processor-and-the-intel-avx-512-isa>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs-ksc.gitbook.io/blog/install/nurion/uppv3.1-install.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
