# System-dependent definitions for SGI Altix 350/3000 machines running Linux # (parallel, MPI) # Contributed by by Martin Hilgeman # Red Hat Linux Advanced Server release 2.1AS (Derry), # SGI ProPack 2.4 for Linux, Build 240rp04021313_10046-040213135, # SCSL >= 1.4.1, MPT >= 1.8.1, Intel 7.1 Fortran 95 and C++ compiler # # This Makefile has also been tested on: # Red Hat Enterprise Linux AS release 3 (Taroon) with # SGI ProPack 3SP2 for Linux, Build 302r67-0410222239 # SCSL >= 1.5.1.0, MPT >= 1.10, Intel 8.0.070 C/C++ compiler and # Intel 8.0.050 Fortran compiler # # Edit according to your needs .SUFFIXES : .SUFFIXES : .o .c .f .f90 .f90.o: $(F90) $(F90FLAGS) -c $< .f.o: $(F77) $(FFLAGS) -c $< .c.o: $(CC) $(CFLAGS) -c $< # Use the SGI SCSL scientific library (recommended) # We also use SHMEM as the parallel transport, which seems to be much # faster in the reduction routines DFLAGS = -D__ALTIX -D__LINUX64 -D__SCSL -D__PARA -D__MPI -D__SHMEM ## Use precompiled fftw library (version <= 2.1.5, NOT v.3!) ## In this case, specify also how to load the fftw library (FFTW_LIB) ## and the path to the fftw.h include file (FFTW_INC_DIR). Example: # FFTW_LIB = -L/usr/local/src/fftw-2.1.3/fftw/.libs -lfftw64 # FFTW_INC_DIR = /usr/local/src/fftw-2.1.3/fftw # CPPFLAGS = -D__ALTIX -D__LINUX64 -D__PARA -D__MPI -D__SHMEM -D__FFTW ## Use the local copy of fftw # CPPFLAGS = -D__ALTIX -D__LINUX64 -D__FFTW \ # -D__USE_INTERNAL_FFTW -D__PARA -D__MPI -D__SHMEM -DSHMEM \ # -I../include -I. ## Serial version # CPPFLAGS = -D__ALTIX -D__LINUX64 -D__SHMEM FDFLAGS = $(DFLAGS) IFLAGS = -I../include -I$(FFTW_INC_DIR) MODFLAGS = -I./ -I../Modules -I../iotk/src -I../PW -I../PH -I../CPV CC = icc MPICC = icc F90 = ifort MPIF90 = ifort F77 = ifort MPIF77 = ifort CPP = cpp CPPFLAGS = $(DFLAGS) $(IFLAGS) CFLAGS = -ip -tpp2 $(CPPFLAGS) -O3 # Fortran compiler flags # -W0 disable warnings # -O3 more aggressive optimization # -tpp2 Itanium2 family optimization # -cm suppress all comment messages # -w disable all warnings # -ftz flush denormal results to zero # -ip enable single-file IP optimizations (within files) # -fno-alias assume no aliasing # -safe_cray_ptr assume that CRAY pointers do not alias other variables # -assume byterecl assume that record lengths are in bytes # -r8 defines real variables to be REAL(KIND=8) OFLAGS = -O3 -fno-alias -safe_cray_ptr -ip FFLAGS = -cm -w -r8 -ftz -tpp2 -assume byterecl $(OFLAGS) F90FLAGS = $(FFLAGS) -fpp $(FDFLAGS) $(IFLAGS) $(MODFLAGS) FFLAGS_NOOPT = -O0 -assume byterecl # Libraries: # Use the SGI SCSL scientific library (recommended) LIBS = -lmpi -lsma -lscs ## Use the Intel MKL libraries # LIBS = -lmpi -lsma -L/opt/intel/mkl60/lib/64 \ # -lmkl_lapack64 -lmkl_itp -lguide -lpthread LD = ifort LDFLAGS = AR = ar ARFLAGS = ruv ARFLAGS_DYNAMIC= ruv # ranlib command. If ranlib is not needed (it isn't in most cases) use # RANLIB = echo RANLIB = ranlib # all internal and external libraries - do not modify LIBOBJS = ../flib/ptools.a ../flib/flib.a \ ../clib/clib.a ../iotk/src/libiotk.a