#======================================================================= # # FILE: Make.mach.Cosmos # # DESCRIPTION: Makefile settings for COSMOS # (UK's National Cosmology Supercomputer) # # AUTHOR: Andrey Kaliazin (cosmos_sys@damtp.cam.ac.uk) # # DATE: 2009-08-13 # modified: 2011-05-13, working with Enzo 2.0 # on SGI Altix UV (x86_64), SLES11 SP1, SGI PerformanceSuite # requires non-parallel version of HDF5 with Fortran/C++ # (module load hdf5/1.8.6-cxx) #======================================================================= MACH_TEXT = COSMOS Facility \ (UK's National Cosmology Supercomputer) \ (Make.mach.Cosmos) MACH_VALID = 1 MACH_FILE = Make.mach.Cosmos #----------------------------------------------------------------------- # Install paths (local variables) #----------------------------------------------------------------------- #LOCAL_MPI_INSTALL = #LOCAL_FC_INSTALL = #LOCAL_HDF5_INSTALL = $(COSMOLIB)/hdf5 #LOCAL_SZIP_INSTALL = $(COSMOLIB)/szip #LOCAL_HYPRE_INSTALL = $(COSMOLIB)/hypre #LOCAL_JBPERF_INSTALL = $(COSMOLIB)/jbperf #LOCAL_PAPI_INSTALL = $(COSMOLIB)/papi #----------------------------------------------------------------------- # Compiler settings #----------------------------------------------------------------------- #ak-- Preprocessor is used to convert .src into .f files #---- so it HAS to understand the Fortran syntax correctly MACH_CPP = ifort # With MPI MACH_CC_MPI = icc MACH_CXX_MPI = icpc MACH_FC_MPI = ifort MACH_F90_MPI = ifort MACH_LD_MPI = ifort # Without MPI MACH_CC_NOMPI = icc MACH_CXX_NOMPI = icpc MACH_FC_NOMPI = ifort MACH_F90_NOMPI = ifort MACH_LD_NOMPI = ifort #----------------------------------------------------------------------- # Machine-dependent defines #----------------------------------------------------------------------- #ak-- used to have -DALTIX -- to invoke FFT/SCSL, but it only worked on old Cosmos # MKL or FFTW would be much better, but interfaces not yet available... # # Note: When compiling against HDF5 version 1.8 or greater, you need to # compile HDF5 with --with-default-api-version=v16, or Enzo with -DH5_USE_16_API. # # Custom flag FFTE - required modified version of select_fft.src90 MACH_DEFINES = -DLINUX -DH5_USE_16_API -DFFTE #----------------------------------------------------------------------- # Compiler flag settings #----------------------------------------------------------------------- MACH_CPPFLAGS = -E MACH_CFLAGS = MACH_CXXFLAGS = MACH_FFLAGS = MACH_F90FLAGS = MACH_LDFLAGS = -nofor-main -cxxlib # cxxlib is needed as we use ifort for linking #MACH_OPENMP = -openmp # OpenMP is not used in Enzo #----------------------------------------------------------------------- # Precision-related flags #----------------------------------------------------------------------- MACH_FFLAGS_INTEGER_32 = -i4 MACH_FFLAGS_INTEGER_64 = -i8 MACH_FFLAGS_REAL_32 = -r4 MACH_FFLAGS_REAL_64 = -r8 #----------------------------------------------------------------------- # Optimization flags #----------------------------------------------------------------------- MACH_OPT_WARN = -g -Wall -xHost MACH_OPT_DEBUG = -g -O0 -xHost MACH_OPT_HIGH = -g -O2 -xHost -ftz MACH_OPT_AGGRESSIVE = -g -O3 -xHost -ftz -ipo #----------------------------------------------------------------------- # Includes #----------------------------------------------------------------------- #LOCAL_INCLUDES = -I$(COSMOLIB)/include #LOCAL_INCLUDES_MPI = -I$(LOCAL_MPI_INSTALL)/include #LOCAL_INCLUDES_HDF5 = -I$(LOCAL_HDF5_INSTALL)/include #LOCAL_INCLUDES_HYPRE = -I$(LOCAL_HYPRE_INSTALL)/include #LOCAL_INCLUDES_JBPERF = -I$(LOCAL_JBPERF_INSTALL)/include LOCAL_INCLUDES_PAPI = -I$(LOCAL_PAPI_INSTALL)/include LOCAL_INCLUDES_PYTHON = -I/usr/include/python2.6/ \ -I/usr/lib64/python2.6/site-packages/numpy/core/include MACH_INCLUDES = $(LOCAL_INCLUDES_HDF5) $(LOCAL_INCLUDES) MACH_INCLUDES_MPI = $(LOCAL_INCLUDES_MPI) MACH_INCLUDES_HYPRE = $(LOCAL_INCLUDES_HYPRE) MACH_INCLUDES_JBPERF = $(LOCAL_INCLUDES_JBPERF) #MACH_INCLUDES_PAPI = $(LOCAL_INCLUDES_PAPI) MACH_INCLUDES_PYTHON = $(LOCAL_INCLUDES_PYTHON) #----------------------------------------------------------------------- # Libraries #----------------------------------------------------------------------- #LOCAL_LIBS_MACH = -lscs_mp -lcxaguard -lpthread LOCAL_LIBS_MACH = LOCAL_LIBS_MPI = -lmpi LOCAL_LIBS_HDF5 = -lhdf5 -lz #LOCAL_LIBS_HYPRE = -lHYPRE #LOCAL_LIBS_JBPERF = -ljbperf #LOCAL_LIBS_PAPI = -lpapi -lpfm LOCAL_LIBS_PYTHON= /usr/lib64/python2.6/config/libpython2.6.a \ -lreadline -lutil MACH_LIBS = $(LOCAL_LIBS_HDF5) $(LOCAL_LIBS_MACH) MACH_LIBS_MPI = $(LOCAL_LIBS_MPI) MACH_LIBS_HYPRE = $(LOCAL_LIBS_HYPRE) MACH_LIBS_JBPERF = $(LOCAL_LIBS_JBPERF) MACH_LIBS_PAPI = $(LOCAL_LIBS_PAPI) MACH_LIBS_PYTHON = $(LOCAL_LIBS_PYTHON)