# Define our compilers................................. # # on geodyncomp, the defaults are OpenMPI (1.4.3), # built with the GNU compilers # F90 = mpif90 # F77 = mpif90 # cc = mpicc # on geodyncomp, we also have an intel compiler F90 = ifort F77 = ifort cc = icc # we take the standard ar # AR=ar AR=xiar # There are no BITS # BITS=-ifort-dbg-openmpi BITS=_v0.2a-intel_12.0.0-mpich2_1.2.1p1 # BITS=-ifort-mvapich2 # no MKL # IMKL = /scinet/gpc/intel/Compiler/11.1/056/mkl/include # IMKL = /scinet/gpc/intel/Compiler/11.1/072/mkl/include # INCLUDE=-I$(IMKL) # Define MPI include files for ifort. # these should match the build of wsmp; see below. # for openmpi, these work # MPI_INC=-I /opt/openmpi/include # MPI_LIB=-L/opt/openmpi/lib -lmpi -lmpi_f77 -lmpi_f90 # for mpich2 MPI_INC=-I /opt/mpich2/gnu/include MPI_LIB=-L/opt/mpich2/gnu/lib -lmpichf90 -lfmpich -lmpich # for mvapich2 # MPI_INC=-I /usr/lib64/mvapich2/1.4-gcc/include # MPI_LIB=-L/usr/lib64/mvapich2/1.4-gcc/lib -lfmpich -lmpich INCLUDE = $(MPI_INC) # Define FORTRAN compiler flags....................... # #GFORTRAN_FLAGS = -ffree-line-length-0 # This gives us, at run time, # error while loading shared libraries: libimf.so: cannot open shared object file # No such file or directory # IFORT_FLAGS = -O2 -fp-model strict -mcmodel=large -shared-intel # IFORT_FLAGS = -fast IFORT_FLAGS = -O2 -heap-arrays 10 #IFORT_FLAGS = -O0 #IFORT_DEBUG = -g -warn all -check all -debug all #F90_DEBUG = -g -warn all -check all -debug all -check:noarg_temp_created -traceback #F90_DEBUG = -g -traceback F90_DEBUG = #F77_DEBUG = -g -warn all -check all -debug all #F77_DEBUG = -g -traceback F77_DEBUG = #IFORT_DEBUG = #F90FLAGS = ${IFORT_FLAGS} ${IFORT_DEBUG} #F77FLAGS = ${IFORT_FLAGS} ${IFORT_DEBUG} F90FLAGS = ${IFORT_FLAGS} ${F90_DEBUG} F77FLAGS = ${IFORT_FLAGS} ${F77_DEBUG} FFLAGS=${F90FLAGS} # Define C compiler flags............................. # ICC_FLAGS = #CFLAGS = -O0 ${ICC_FLAGS} CFLAGS = -O2 ${ICC_FLAGS} # no Intel MKL library # # LMKL = /scinet/gpc/intel/Compiler/11.1/056/mkl/lib # LMKL = /scinet/gpc/intel/Compiler/11.1/072/mkl/lib # MPI libraries # (use the default) # WSMP Library # # wsmp, with gnu and openMPI # WSMP = -L/opt/wsmp/wsmp-Linux64/lib/GNU/openmpi -lpwsmp64 # wsmp, with intel and mpich2 WSMP = -L/opt/wsmp/wsmp-Linux64/lib/Intel/mpich2 -lpwsmp64 # Not using Google's TCMalloc # TCML = /home/dwhipp/software/tcml LIBS = \ -LOCTREE -lOctree$(BITS) \ -LNN -lnn_f$(BITS) \ -LNN -lnn_c$(BITS) \ -LCASCADE -lcascade$(BITS) \ -LRESAMPLE -lresample$(BITS) \ $(WSMP) -lblas \ $(MPI_LIB) \ -lpthread # The Makefiles look at compile output with this PAGER=more # compile rules....................................... # COMPILE_OUT=$(NAME)$(BITS).compile .SUFFIXES: .SUFFIXES: .o .c .f .f90 .f90.o: @echo "--" >>$(COMPILE_OUT) 2>&1 @echo "$(F90) $(F90FLAGS) $(INCLUDE) -c $<" >>$(COMPILE_OUT) 2>&1 $(F90) $(F90FLAGS) $(INCLUDE) -c $< >>$(COMPILE_OUT) 2>&1 .f.o: @echo "--" >>$(COMPILE_OUT) 2>&1 @echo "$(F77) $(F77FLAGS) $(INCLUDE) -c $<" >>$(COMPILE_OUT) 2>&1 $(F77) $(F77FLAGS) $(INCLUDE) -c $< >>$(COMPILE_OUT) 2>&1 .c.o: @echo "--" >>$(COMPILE_OUT) 2>&1 @echo "$(CC) $(CFLAGS) -c $<" >>$(COMPILE_OUT) 2>&1 $(CC) $(CFLAGS) -c $< >>$(COMPILE_OUT) 2>&1