Difference between revisions of "SMOKE Installation Notes"
(→NetCDF) |
|||
Line 1: | Line 1: | ||
− | |||
− | == 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: | ||
− | + | 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