# List of Makefile.conf Variables

## Appendix

### List of Makefile.conf Variables

Variable name Description Default
MPIDIR This variable specifies the path to the directory where MPI has been installed. If an MPI compatible compiler automatically refers to the path, there is no need to set this variable together with the following variables. None
MPIBINDIR This variable specifies the path to the directory where MPI executable files have been installed. None
MPIINCDIR This variable specifies the path to the directory where MPI header files have been installed. .
MPILIBDIR This variable specifies the path to the directory where MPI libraries have been installed. .
MPILIBS This variable specifies the MPI library that will be linked to C and Fortran90 object files. None
Variable name Description Default
PREFIX This variable specifies the path to the directory where this software is to be installed. $(HOME)/FrontISTR BINDIR This variable specifies the path to the directory where the executable files of this software are to be installed. $(PREFIX)/bin
INCLUDEDIR This variable specifies the path to the directory where the header files of this software are to be installed. Normally, there is no need to change the value of this variable from the default value. $(PREFIX)/include LIBDIR This variable specifies the path to the directory where the libraries of this software are to be installed. Normally, there is no need to change the value of this variable from the default value. $(PREFIX)/lib
Variable name Description Default
METISDIR This variable specifies the path to the directory where METIS has been installed. $(HOME)/metis METISINCDIR This variable specifies the path to the directory where the header files (such as metis.h) of METIS have been installed. Normally, there is no need to change the value of this variable from the default value. $(METISDIR)/include
METISLIBDIR This variable specifies the path to the directory where the library (libmetis.a) of METIS has been installed. Normally, ther is no need to change the value of this variable from the default value. $(METISDIR)/lib Variable name Description Default PARMETISDIR This variable specifies the path to the directory where ParMETIS has been installed. $(HOME)/ParMetis
PAEMETISINCDIR This variable specifies the path to the directory where the header files (such as parmetis.h) of ParMETIS have been installed. Normally, there is no need to change the value of this variable from the default value. $(PARMETISDIR)/include PARMETISLIBDIR This variable specifies the path to the directory where the library (libparmetis.a) of ParMETIS has been installed. Normally, there is no need to change the value of this variable from the default value. $(PARMETISDIR)/lib
Variable name Description Default
REFINERDIR This variable specifies the path to the directory where REVOCAP_Refiner has been installed. $(HOME)/REVOCAP_Refiner REFINERINCDIR This variable specifies the path to the directory where REVOCAP_Refiner header files have been installed. Normally, there is no need to change the value of this variable from the default value. $(PARMETISDIR)/include
REFINERLIBDIR This variable specifies the path to the directory where REVOCAP_Refiner libraries have been installed. Normally, there is no need to change the value of this variable from the default value. $(PARMETISDIR)/lib Variable name Description Default REVOCAPDIR This variable specifies the path to the directory where REVOCAP_Coupler has been installed. $(HOME)/REVOCAP_Coupler
REVOCAPINCDIR This variable specifies the path to the directory where REVOCAP_Coupler header files have been installed. Normally, there is no need to change the value of this variable from the default value. $(REVOCAPDIR)/include REVOCAPLIBDIR This variable specifies the path to the directory where REVOCAP_Coupler libraries have been installed. Normally, there is no need to change the value of this variable from the default value. $(REVOCAPDIR)/lib
Variable name Description Default
MUMPSDIR This variable specifies the path to the directory where MUMPS has been installed. $(HOME)/MUMPS MUMPSINCDIR This variable specifies the path to the directory where MUMPS header files have been installed. Normally, there is no need to change the value of this variable from the default value. $(MUMPSDIR)/include
MUMPSLIBDIR This variable specifies the path to the directory where MUMPS libraries have been installed. Normally, there is no need to change the value of this variable from the default value. $(MUMPSDIR)/lib Variable name Description Default MLDIR This variable specifies the path to the directory where ML is installed. $(HOME)/trilinos
MLINCDIR This variable specivies the path to the directory where ML header files are installed. Normally, there is no need to change the value of this variable from the default value. $(MLDIR)/include MLLIBDIR This variable specivies the path to the directory where ML libraries are installed. Normally, there is no need to change the value of this variable from the default value. $(MLDIR)/lib
Variable name Description Default
CC This variable specifies the C compiler start command mpicc
CFLAGS This variable specifies the option to be assigned to the C compiler. Normally, there is no need to change the value of this variable from the default value. なし
LDFLAGS This variable specifies the option to be assigned to the C linker. Normally, there is no need to change the value of this variable from the default value. However, when REVOCAP_Refiner (written in C++) is to be used and C compiler is used for linking C programs, C++ standard library (e.g. -lstdc++) needs to be specified here. -lm
OPTFLAGS This variable specifies the optimization option (or another option) to be assigned to the C compiler. -O3
CLINKER This variable specifies the linker command for C program. This is used when, for example, REVOCAP_Refiner (written in C++) is to be used and C++ compiler needs to be used for linking C programs with C++ libraries. $(CC) Variable name Description Default CPP This variable specifies the C++ compiler start command. mpic++ CPPFLAGS This variable specifies the option to be assigned to the C++ compiler. Normally, there is no need to change the value of this variable from the default value. However, if Boost Libraries are not automatically referenced from the C++ compiler, use the -I option to specify the directory that contains the include files. -DMPICH_IGNORE_CXX_SEEK (Note: This is required for Intel compilers.) CPPLDFLAGS This variable specifies the option to be assigned to the C++ linker. Normally, there is no need to change the value of this variable from the default value. None CPPOPTFLAGS This variable specifies the optimization option (or another option) to be assigned to the C++ compiler. -O3 Variable name Description Default F90 This variable specifies the Fortran90 compiler start command. mpif90 F90FLAGS This variable specifies the option to be assigned to the Fortran90 compiler. Normally, there is no need to change the value of this variable from the default value. -DMPICH_IGNORE_CXX_SEEK F90LDFLAGS This variable specifies the option to be assigned to the Fortran90 linker. Normally, there is no need to change the value of this variable from the default value. However, if Intel MKL is used, specify its link option. Also, when REVOCAP_Refiner (written in C++) is to be used and Fortran90 compiler is used for linking Fortran90 programs, C++ standard library (e.g. -lstdc++) needs to be specified here. None F90OPTFLAGS This variable specifies the optimization option (or another option) to be assigned to the Fortran90 compiler. -O2 F90LINKER This variable specifies the linker command for Fortran90 program. This is used when, for example, REVOCAP_Refiner (written in C++) is to be used and C++ compiler needs to be used for linking Fortran90 programs with C++ libraries. (E.g. on K-computer, “mpiFCCpx --linkfortran” needs to be specified.) $(F90)
Variable name Description Default
MAKE This variable specifies the make start command. If options are required, specify them together. Normally, there is no need to change the value of this variable from the default value. make
AR This variable specifies the command for creating or changing an archive file. If options are required, specify them together. Normally, there is no need to change the value of this variable from the default value. ar ruv
CP This variable specifies the command for copying files or directories. If options are required, specify them together. Normally, there is no need to change the value of this variable from the default value. cp -f
RM This variable specifies the command for deleting files or directories. If options are required, specify them together. Normally, there is no need to change the value of this variable from the default value. rm -f
MKDIR This variable specifies the command for creating directories. If options are required, specify them together. Normally, there is no need to change the value of this variable from the default value. mkdir -p
MV This variable specifies the command for moving files or directories. If options are required, specify them together. Normally, there is no need to change the value of this variable from the default value. mv

### Example of Makefile.conf

# MPI
MPIDIR    =
MPIBINDIR =
MPILIBDIR =
MPIINCDIR =
MPILIBS   =

# for install option only
PREFIX     = $(HOME)/FrontISTR BINDIR =$(PREFIX)/bin
LIBDIR     = $(PREFIX)/lib INCLUDEDIR =$(PREFIX)/include

# Metis
METISDIR    = $(HOME)/Metis-4.0 METISLIBDIR =$(METISDIR)
METISINCDIR = $(METISDIR)/Lib # ParMetis PARMETISDIR =$(HOME)/ParMetis-3.1
PARMETISLIBDIR = $(PARMETISDIR) PARMETISINCDIR =$(PARMETISDIR)/ParMETISLib

# Refiner
REFINERDIR    = $(HOME)/REVOCAP_Refiner-1.1.0 REFINERINCDIR =$(REFINERDIR)/Refiner
REFINERLIBDIR = $(REFINERDIR)/lib/x86_64-linux # Coupler REVOCAPDIR =$(HOME)/REVOCAP_Coupler-1.6.2
REVOCAPINCDIR = $(REVOCAPDIR)/librcap REVOCAPLIBDIR =$(REVOCAPDIR)/librcap

# MUMPS
MUMPSDIR    = $(HOME)/MUMPS_4.10.0 MUMPSINCDIR =$(MUMPSDIR)/include
MUMPSLIBDIR = $(MUMPSDIR)/lib # ML MLDIR =$(HOME)/trilinos/11.8.1/ml
MLINCDIR = $(MLDIR)/include MLLIBDIR =$(MLDIR)/lib

# C compiler settings
CC       = mpiicc
CFLAGS   =
LDFLAGS  = -lm
OPTFLAGS = -O3

# C++ compiler settings
CPP         = mpiicpc
CPPFLAGS    = -DMPICH_IGNORE_CXX_SEEK -I\$(HOME)/include
CPPLDFLAGS  =
CPPOPTFLAGS = -O3

# Fortran compiler settings
F90         = mpiifort
F90FLAGS    =
F90LDFLAGS  = -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5
F90OPTFLAGS = -O2


### Notes on K-computer and Fujitsu FX10

This version includes tuned codes for K-computer and Fujitsu FX10. However, in order to maximize the performance, a part of the source code needs to be changed for corresponding environment.

File to be changed:

hecmw1/src/solver/solver_33/hecmw_tuning_fx.f90

Changes:

Set the value of parameter TotalSectorCacheSize defined in the file to

• 12 on K-computer,
• 24 on FX10.

Initially, the parameter is set for K-computer.