Update.
I spoke with the OSC help desk and was directed to make changes to both the make.inc file and the /src/species/template file.
Here are my files:
*
osu6811@oakley01 exciting]$ cat build/make.inc
F90=ifort
F90_OPTS = -O3 -ip -unroll -scalar_rep
CPP_ON_OPT = -cpp -DXS -DISO -DTETRA -DLIBXC
F77=$(F90)
F77_OPTS = -O3
LIB_ARP =libarpack.a
export USE_SYS_LAPACK=true
LIB_LPK = -mkl
LIB_FFT = fftlib.a
LIB_BZINT=libbzint.a
LIBS= $(LIB_ARP) $(LIB_LPK) $(LIB_FFT) $(LIB_BZINT)
F90_DEBUGOPTS=-g -O0 -warn all -check all -traceback -ftrapuv
F77_DEBUGOPTS=-g -O0 -warn all -check all -traceback -ftrapuv
#Ignore if you don't have MPI or smplibs
MPIF90=mpif90
MPIF90_OPTS=$(F90_OPTS) $(CPP_ON_OPT) -DMPI -DMPIRHO -DMPISEC
F77MT=$(F77)
F90MT=$(F90)
SMP_LIBS= $(LIB_ARP) $(LIB_LPK) $(LIB_FFT) $(LIB_BZINT)
SMPF90_OPTS=$(F90_OPTS)
SMPF77_OPTS=$(SMPF90_OPTS)
MPISMPF90_OPTS=$(SMPF90_OPTS) -DMPI -DMPIRHO -DMPISECBUILDMPI=false
MPIF90MT=$(MPIF90)
BUILDMPI=true
BUILDSMP=true
[osu6811@oakley01 exciting]$ cat src/species/template
include ../../build/make.inc
include ../../build/libraries.inc
FC = $(F90) -g -I../../build/serial/finclude -I../../build/serial
FFLAGS = $(F90_OPTS) $(CPP_ON_OPT)
LD = $(FC)
LDFLAGS = $(F90_OPTS) -L../../build/serial $(LIB_LPK) ../../build/serial/fftlib.a -L../../build/serial/lib $(INTLIBS)
AR = ar
ARFLAGS = -rc
F77=$(F77) $(F77_OPTS)
TMPFILES = *.mod
SUFFIX=ser
[osu6811@oakley01 exciting]$
*
I think it may be worth posting the explanation for these changes as well.
begin email:
//MKL is the Intel Math Kernel Library. It's highly optimized for our processors and includes BLAS and LAPACK along with a lot of other routines. Your software comes with a copy of these libraries that are by default built along with the code; they won't be as fast as the system libraries.
The USE_SYS_LAPACK flag just says don't bother building BLAS and LAPACK because you're using the system version. LIB_LPK is set to the libraries and path for BLAS and LAPACK. Since you're using the Intel complers you just need the -mkl flag. You could have loaded the mkl module (module load mkl) and used the appropriate environment variable. That works with all the compilers, but it's not necessary with Intel.
I consider the change I made to template to be a bug fix. It should work on other systems as well. We don't have separate blas and lapack libraries; they're just part of the mkl libraries. LDFLAGS represents the linker flags, which mostly consists of libraries. You'll note that it's the concatenation of the library flags, except they ignored LIB_LPK and hardcoded that one. //