Compiling SIESTA 3.1 and 3.2 on HECToR

Instructions for compiling the SIESTA code on HECToR phase 3 (Cray XE6, Interlagos)

Module setup

Swap to the PGI compiler

module swap PrgEnv-cray PrgEnv-pgi
module swap pgi pgi/12.1.0

Load the NetCDF and FFTW 3 modules:

module add netcdf
module add fftw

Modules loaded for the central installation of SIESTA 3.1:

Currently Loaded Modulefiles:
  1) modules/3.2.6.7
  2) nodestat/2.2-1.0400.31264.2.5.gem
  3) sdb/1.0-1.0400.32124.7.19.gem
  4) MySQL/5.0.64-1.0000.5053.22.1
  5)
lustre-cray_gem_s/1.8.6_2.6.32.45_0.3.2_1.0400.6453.7.1-1.0400.38471.0.0
  6) udreg/2.3.1-1.0400.4264.3.1.gem
  7) ugni/2.3-1.0400.4374.4.88.gem
  8) gni-headers/2.1-1.0400.4351.3.1.gem
  9) dmapp/3.2.1-1.0400.4255.2.159.gem
 10) xpmem/0.1-2.0400.31280.3.1.gem
 11) hss-llm/6.0.0
 12) Base-opts/1.0.2-1.0400.31284.2.2.gem
 13) xtpe-network-gemini
 14) PrgEnv-pgi/4.0.46
 15) atp/1.6.0
 16) xt-asyncpe/5.17
 17) pmi/4.0.0-1.0000.9282.69.4.gem
 18) xt-libsci/12.0.00
 19) xt-totalview/8.11.0
 20) totalview-support/1.1.4
 21) pgi/12.1.0
 22) pbs/10.2.2.113537
 23) packages-phase3
 24) bolt/0.5
 25) budgets/1.0
 26) xtpe-interlagos
 27) cray-mpich2/5.6.1
 28) fftw/3.3.0.1
 29) hdf5/1.8.8
 30) netcdf/4.2.0

Configure the build

Set the compiler commands

export FC=ftn
export MPIFC=ftn
export FC_SERIAL=pgf90

Configure the package:

cd siesta-3.1/Obj
sh ../Src/obj_setup.sh
cp ../Src/Sys/cscs-cray-mpi.make arch.make

Edit top part of arch.make to the following:

# 
# This file is part of the SIESTA package.
#
# Copyright (c) Fundacion General Universidad Autonoma de Madrid:
# E.Artacho, J.Gale, A.Garcia, J.Junquera, P.Ordejon, D.Sanchez-Portal
# and J.M.Soler, 1996- .
# 
# Use of this software constitutes agreement with the full conditions
# given in the SIESTA license, as signed by all legitimate users.
#
SIESTA_ARCH=hector-phase3-cray-xe6-mpi
#
# For HECToR Cray XE6
#
FC=ftn
FPP=pgf90 -F
FC_ASIS=$(FC)
#
FFLAGS=-fastsse
FFLAGS_DEBUG= -g -O0
RANLIB=echo
COMP_LIBS=
#
NETCDF_LIBS=         #  /usr/local/netcdf-3.5/lib/pgi/libnetcdf.a
NETCDF_INTERFACE=    #  libnetcdf_f90.a
FPPFLAGS_CDF=            #  -DCDF
#
KINDS=4 8
MPI_LIBS=
MPI_INTERFACE=libmpi_f90.a
MPI_INCLUDE=.
FPPFLAGS_MPI=-DMPI
#
LIBS= 
SYS=nag
DEFS= $(DEFS_CDF) $(DEFS_MPI)
FPPFLAGS= $(FPPFLAGS_CDF) $(FPPFLAGS_MPI)

Build the package

Then build the package:

make