Difference between revisions of "SMOKE Installation Notes"

From LADCO Wiki
Jump to: navigation, search
Line 5: Line 5:
 
   sudo yum install m4
 
   sudo yum install m4
  
Install Intel Compiler [https://www.intel.com/content/www/us/en/develop/documentation/installation-guide-for-intel-oneapi-toolkits-linux/top/installation/install-using-package-managers/yum-dnf-zypper.html One API Base Toolkit One API HPC Toolkit]
+
Install Intel Compiler. Two components: [https://www.intel.com/content/www/us/en/develop/documentation/installation-guide-for-intel-oneapi-toolkits-linux/top/installation/install-using-package-managers/yum-dnf-zypper.html One API Base Toolkit & One API HPC Toolkit]
  
 
== Libraries ==
 
== Libraries ==

Revision as of 02:39, 9 December 2021


Cluster 1 Installation

System updates

 sudo yum install m4

Install Intel Compiler. Two components: One API Base Toolkit & One API HPC Toolkit

Libraries

IOAPI

Download the latest I/O API library from the CMAS Center, untar in the desired location

Go to the source code location, copy the makefile template, and set environment variables to compile for your system (e.g., Intel fortran):

 tar xvzf 
 cd ioapi-3.2-20200828/ioapi
 cp Makefile.nocpl Makefile
 setenv BIN Linux2_x86_64ifort
 mkdir /t10/apps/IOAPI/ioapi-3.2-20200828/$BIN
 make

A couple of notes:

  • Edit the Makefile to set the installation directory BASEDIR
  • You need to manually create the output directory because this feature isn't working in the I/O API install package

NetCDF

Use netCDF C version 4.6.1 and Fortran version 4.2 (tar files available here: /t5/apps/NETCDF)

First untar and compile the C version of netCDF

tar xvzf netcdf-4.6.1.tar.gz
cd netcdf-4.6.1
setenv C_NCF_OUT /t10/apps/NETCDF/netcdf-4.6.1/Linux2_x86_64ifort_v2021.4.0
setenv CC icc
setenv FC ifort
./configure --prefix $C_NCF_OUT --disable-netcdf-4 --disable-dap
make
make install

Then compile the Fortran version of netCDF

tar xvzf netcdf-fortran-4.2.tar.gz
cd netcdf-fortran-4.2
setenv F_NCF_OUT /t10/apps/NETCDF/netcdf-fortran-4.2/Linux2_x86_64ifort_v2021.4.0
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${C_NCF_OUT}/lib
setenv CPPFLAGS -I${C_NCF_OUT}/include
setenv LDFLAGS -L${C_NCF_OUT}/lib
./configure --prefix $F_NCF_OUT
make
make install

Compile SMOKE

Download and install the source code per the instructions in the SMOKE manual.

Link the I/O API installation directory where SMOKE expects to see it

cd /t10/apps/SMOKE/SMOKEv4.8.1/subsys
ln -s /t10/apps/IOAPI/ioapi-3.2-20200828 ioapi

Link in the netCDF libraries into the I/O API library directory (this is what SMOKE expects)

cd /t10/apps/SMOKE/SMOKEv4.8.1/subsys/ioapi/Linux2_x86_64ifort
ln -s /t10/apps/NETCDF/netcdf-4.6.1/Linux2_x86_64ifort_v2021.4.0/lib/libnetcdf.a .
ln -s /t10/apps/NETCDF/netcdf-fortran-4.2/Linux2_x86_64ifort_v2021.4.0/lib/libnetcdff.a .

Configure the SMOKE Makeinclude file

cd /t10/apps/SMOKE/SMOKEv4.8.1/subsys/smoke/src
vi Makeinclude

Add these two lines to the file, right before the BASEDIR setting:

SMK_HOME = /t10/apps/SMOKE/SMOKEv4.8.1
BIN = Linux2_x86_64ifort