Difference between revisions of "SMOKE Installation Notes"

From LADCO Wiki
Jump to: navigation, search
(NetCDF)
Line 1: Line 1:
= Install Libraries =
 
  
== IOAPI ==
+
 
 +
= Cluster 1 Installation =
 +
System updates
 +
  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]
 +
 
 +
== Libraries ==
 +
=== IOAPI ===
  
 
Download the latest I/O API library from the CMAS Center, untar in the desired location
 
Download the latest I/O API library from the CMAS Center, untar in the desired location
Line 18: Line 25:
 
* You need to manually create the output directory because this feature isn't working in the I/O API install package
 
* You need to manually create the output directory because this feature isn't working in the I/O API install package
  
== NetCDF ==
+
=== NetCDF ===
  
 
Use netCDF C version 4.6.1 and Fortran version 4.2 (tar files available here: /t5/apps/NETCDF)
 
Use netCDF C version 4.6.1 and Fortran version 4.2 (tar files available here: /t5/apps/NETCDF)
Line 45: Line 52:
 
  make install
 
  make install
  
= Compile SMOKE =
+
== 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:
  
Download and install the source code per the instructions in the SMOKE manual
+
SMK_HOME = /t10/apps/SMOKE/SMOKEv4.8.1
 +
BIN = Linux2_x86_64ifort

Revision as of 22:10, 8 December 2021


Cluster 1 Installation

System updates

 sudo yum install m4

Install Intel Compiler 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