ARCHER logo ARCHER banner

The ARCHER Service is now closed and has been superseded by ARCHER2.

  • ARCHER homepage
  • About ARCHER
    • About ARCHER
    • News & Events
    • Calendar
    • Blog Articles
    • Hardware
    • Software
    • Service Policies
    • Service Reports
    • Partners
    • People
    • Media Gallery
  • Get Access
    • Getting Access
    • TA Form and Notes
    • kAU Calculator
    • Cost of Access
  • User Support
    • User Support
    • Helpdesk
    • Frequently Asked Questions
    • ARCHER App
  • Documentation
    • User Guides & Documentation
    • Essential Skills
    • Quick Start Guide
    • ARCHER User Guide
    • ARCHER Best Practice Guide
    • Scientific Software Packages
    • UK Research Data Facility Guide
    • Knights Landing Guide
    • Data Management Guide
    • SAFE User Guide
    • ARCHER Troubleshooting Guide
    • ARCHER White Papers
    • Screencast Videos
  • Service Status
    • Detailed Service Status
    • Maintenance
  • Training
    • Upcoming Courses
    • Online Training
    • Driving Test
    • Course Registration
    • Course Descriptions
    • Virtual Tutorials and Webinars
    • Locations
    • Training personnel
    • Past Course Materials Repository
    • Feedback
  • Community
    • ARCHER Community
    • ARCHER Benchmarks
    • ARCHER KNL Performance Reports
    • Cray CoE for ARCHER
    • Embedded CSE
    • ARCHER Champions
    • ARCHER Scientific Consortia
    • HPC Scientific Advisory Committee
    • ARCHER for Early Career Researchers
  • Industry
    • Information for Industry
  • Outreach
    • Outreach (on EPCC Website)

You are here:

  • ARCHER
  • User Guides & Documentation
  • Essential Skills
  • Quick Start Guide
  • ARCHER User Guide
  • ARCHER Best Practice Guide
  • Scientific Software Packages
  • UK Research Data Facility Guide
  • Knights Landing Guide
  • Data Management Guide
  • SAFE User Guide
  • ARCHER Troubleshooting Guide
  • ARCHER White Papers
  • Screencast Videos

Contact Us

support@archer.ac.uk

Twitter Feed

Tweets by @ARCHER_HPC

ISO 9001 Certified

ISO 27001 Certified

Compiling SIESTA 3.2 on ARCHER

Instructions for compiling the SIESTA code on ARCHER (Cray XC30, Intel Xeon)

Module setup

Swap to the Intel compiler

module swap PrgEnv-cray PrgEnv-intel

Load the NetCDF and FFTW 3 modules:

module add cray-netcdf
module add fftw

Configure the build

Set the compiler commands

export FC=ftn
export MPIFC=ftn
export FC_SERIAL=ifort

Configure the package:

cd siesta-3.2/Obj
sh ../Src/obj_setup.sh

Create an arch.make file in Obj with the following content:

# 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=archer-phase1-cray-xc30-intel-mpi
#
# For ARCHER Cray XC30 using the Intel Complier.
# On ARCHER this is compiled with the Intel compiler modules loaded and 
# the NetCDF module loaded too. 
#
FC=ftn
FPP=fpp
FC_ASIS=$(FC)
#
FFLAGS=-O3  -I$(MKLROOT)/include/intel64/lp64 -I$(MKLROOT)/include
FFLAGS_DEBUG= -g -O0
RANLIB=echo
COMP_LIBS=
#
NETCDF_LIBS=
NETCDF_INTERFACE=
FPPFLAGS_CDF=
#
KINDS=4 8
MPI_INTERFACE=libmpi_f90.a

MPI_LIBS=
MPI_INCLUDE=-I.
INCFLAGS=-I../Src/MPI/ 
FPPFLAGS_MPI=-DMPI  -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DCDF
#
LIBS= $(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a $(MKLROOT)/lib/intel64/libmkl_blacs_intelmpi_lp64.a -Wl,--start-group  $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a $(MKLROOT)/lib/intel
64/libmkl_core.a $(MKLROOT)/lib/intel64/libmkl_sequential.a -Wl,--end-group 
SYS=nag
DEFS= $(DEFS_CDF) $(DEFS_MPI)
FPPFLAGS= $(FPPFLAGS_CDF) $(FPPFLAGS_MPI)
#
#
# Important 
# Compile atom.f and electrostatic.f without optimization.
# Make sure that the dependency is explicit, so that these
# lines work with VPATH
#
atom.o: atom.f
        $(FC) -c $(FFLAGS_DEBUG) $<
#
electrostatic.o: electrostatic.f
        $(FC) -c $(FFLAGS_DEBUG) $<
#
.F.o:
        $(FPP) $(FPPFLAGS) $<  $*.f ; mv $*.f aux_$*.f
        $(FC) -c $(FFLAGS) $(INCFLAGS)  $(FPPFLAGS) -o $*.o aux_$*.f
        rm -f aux_$*.f
.f.o:
        $(FC) -c $(FFLAGS) $(INCFLAGS)   $<
.F90.o:
        $(FPP) $(FPPFLAGS) $<  $*.f  ; mv $*.f aux_$*.f90
        $(FC) -c $(FFLAGS) $(INCFLAGS)  $(FPPFLAGS) -o $*.o aux_$*.f90
        rm -f aux_$*.f90
.f90.o:
        $(FC) -c $(FFLAGS) $(INCFLAGS)  $<
#

Build the package

Then build the package:

make

Copyright © Design and Content 2013-2019 EPCC. All rights reserved.

EPSRC NERC EPCC