목차

NCL/NCAR compile install with Intel Compiler on RHEL8

인텔 컴파일러 준비

인텔 컴파일러 설치는 아래 링크를 통해 설치하도록 한다.

Intel Parallel Studio XE 2020 on RHEL8

패키지 설치

필요패키지를 설치하도록 한다. RedHat Linux 에 기본 포함되어있지 않은 것은 EPEL 리포지토리를 등록하여 사용한다.

[root@server ~]# yum install cairo-devel expat-devel flex-devel fontconfig-devel freetype-devel g2clib-devel hdf-devel ksh libX11-devel libXaw-devel libXext-devel libXmu-devel libXpm-devel libXrender-devel libXt-devel libpng-devel netcdf-devel pixman-devel proj-devel tcsh udunits2-devel gsl-devel gdal gdal-devel

NCL compile

소스코드를 다운로드 한 후 아래 과정대로 컴파일에 필요한 설정을 수행한다.
인텔 컴파일러를 사용할 것이기 때문에 LINUX.64.INTEL 설정을 사용하도록 구성한다.

[root@server ~]# tar xvf ncl_ncarg-6.6.2.tar.gz
[root@server ~]# cd ncl_ncarg-6.6.2
[root@server ncl_ncarg-6.6.2]# cd config
[root@server config]# cp -p LINUX LINUX.org
[root@server config]# cp -p LINUX.64.INTEL LINUX
[root@server config]# vi LINUX

컴파일 옵션 수정

구버전 펑션 호환을 위해 #define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H 를 넣어줘야함

#define HdfDefines  -DLINUX64
#define StdDefines  -DSYSV -D_POSIX_SOURCE -D_XOPEN_SOURCE -DByteSwapped -DACCEPT_USE_OF_DEPRECATED_PROJ_API_H

#define LibSearchUser    -L/usr/lib64
#define IncSearchUser    -I/usr/include -I/usr/include/udunits2 -I/usr/include/hdf -I/usr/include/freetype2

#define ArchRecLibSearch    -L/usr/lib64
#define ArchRecIncSearch    -I/usr/include -I/usr/include/udunits2 -I/usr/include/hdf -I/usr/include/freetype2

triangle 소스 추가

위 사이트에서 소스를 다운로드 받아 $NCARG/ni/src/lib/hlu 경로에 triangle.h, triangle.c 를 복사한다.

GRIB2 설정

위의 필요 패키지 설치에서 설치되었지만 소스에서 참조하는 경로가 달라 심볼릭 링크로 설정해준다.

[root@server ~]# ln -s /usr/lib64/libg2c_v1.6.0.a /usr/lib64/libgrib2c.a

컴파일

[root@server ncl_ncarg-6.6.2]# cd config
[root@server config]# make -f Makefile.ini
[root@server config]# ./ymake -config `pwd`
[root@server config]# cd ..
[root@server ncl_ncarg-6.6.2]# ./Configure -v

... 필요한 설정을 수행한다. 기본적으로 szip, EOS2/5, Vis5d++ 은 비활성화 한다. (위 설정에 포함되어있지 않음.)

[root@server ncl_ncarg-6.6.2]# make Everything >& make-output &
[root@server ncl_ncarg-6.6.2]# tail -f make-output