Compiling SIESTA 3.1 on phase 3

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

Module setup

Swap to the PGI compiler

module swap PrgEnv-cray PrgEnv-pgi

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.6
  2) nodestat/2.2-1.0400.29866.4.3.gem
  3) sdb/1.0-1.0400.30000.6.18.gem
  4) MySQL/5.0.64-1.0000.4667.20.1
  5) lustre-cray_gem_s/1.8.4_2.6.32.45_0.3.2_1.0400.6221.1.1-1.0400.30252.1.29
  6) udreg/2.3.1-1.0400.3911.5.6.gem
  7) ugni/2.3-1.0400.3912.4.29.gem
  8) gni-headers/2.1-1.0400.3906.5.1.gem
  9) dmapp/3.2.1-1.0400.3965.10.12.gem
 10) xpmem/0.1-2.0400.29883.4.6.gem
 11) hss-llm/6.0.0
 12) Base-opts/1.0.2-1.0400.29823.8.1.gem
 13) xtpe-network-gemini
 14) PrgEnv-pgi/4.0.30
 15) xt-mpich2/5.3.4
 16) atp/1.3.0
 17) xt-asyncpe/5.03
 18) pmi/2.1.4-1.0000.8596.8.9.gem
 19) xt-libsci/11.0.03
 20) xt-totalview/8.9.2
 21) totalview-support/1.1.2
 22) pgi/11.9.0
 23) pbs/10.2.2.113537
 24) packages-phase3
 25) usertools/1.0
 26) budgets/1.0
 27) xtpe-interlagos
 28) fftw/3.3.0.0
 29) hdf5/1.8.6
 30) netcdf/4.1.2

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