140 lines
3.3 KiB
Makefile
140 lines
3.3 KiB
Makefile
# Makefile with logic in it. For different hosts runs different things
|
|
|
|
# Define the correct flags and compilers
|
|
|
|
MPIF90 = blah
|
|
|
|
ifeq ($(OMPI), 1)
|
|
FFTW_HOME = ../libs/fftw-3.2.2/lib
|
|
OPENMPI_HOME = /home/comb/ignis/openmpi/
|
|
MPIF90 = $(OPENMPI_HOME)/bin/mpif90
|
|
FCFLAGS = -i8 -r8 -c $(MPI_COMPILE_FLAGS) -I$(FFTW_HOME)/include -I$(OPENMPI_HOME)/include
|
|
LDFLAGS = -i8 -r8 $(MPI_LD_FLAGS) -L$(FFTW_HOME)/lib -lfftw3 -L$(OPENMPI_HOME)/lib -lfftw3 -lm -shared-intel
|
|
FCFLAGS_F77 = -Mextend
|
|
|
|
MODULES += m_openmpi.o
|
|
else
|
|
FFTW_HOME = ../libs/fftw-3.2.2/lib
|
|
MPIF90 = mpif90
|
|
FCFLAGS = -i8 -r8 -c $(MPI_COMPILE_FLAGS) -I$(FFTW_HOME)/include
|
|
LDFLAGS = -i8 -r8 $(MPI_LD_FLAGS) -L$(FFTW_HOME)/lib -lfftw3 -lm
|
|
FCFLAGS_F77 = -Mextend
|
|
|
|
MODULES += m_mpi.o
|
|
endif
|
|
|
|
# Franklin cluster, NERSC
|
|
ifeq ($(NERSC_HOST), franklin)
|
|
MPIF90 = ftn
|
|
|
|
FCFLAGS = -target=linux -i8 -r8 -O4 -c
|
|
LDFLAGS = -target=linux -i8 -r8 -O4 -lfftw3
|
|
FCFLAGS_F77 = -Mextend
|
|
endif
|
|
|
|
# Hopper cluster, NERSC
|
|
ifeq ($(NERSC_HOST), hopper)
|
|
MPIF90 = ftn
|
|
|
|
FCFLAGS = -target=linux -i8 -r8 -O4 -c
|
|
LDFLAGS = -target=linux -i8 -r8 -O4 -lfftw3
|
|
FCFLAGS_F77 = -Mextend
|
|
endif
|
|
|
|
# Yellowrail cluster, LANL
|
|
ifeq ($(HOSTNAME), yr-fe1.lanl.gov)
|
|
MPIF90 = mpif90
|
|
|
|
FCFLAGS = -i8 -r8 -O4 -c $(MPI_COMPILE_FLAGS) -I$(FFTW_INCLUDE)
|
|
LDFLAGS = -i8 -r8 -O4 -lfftw3 $(MPI_LD_FLAGS) -L$(FFTW_HOME)/lib
|
|
endif
|
|
|
|
# Coyote cluster, LANL
|
|
ifeq ($(HOSTNAME), cy-c2.lanl.gov)
|
|
MPIF90 = mpif90
|
|
FCFLAGS = -i8 -r8 -O4 -c $(MPI_COMPILE_FLAGS) -I$(FFTW_INCLUDE)
|
|
LDFLAGS = -i8 -r8 -O4 -lfftw3 $(MPI_LD_FLAGS) -L$(FFTW_HOME)/lib
|
|
endif
|
|
|
|
# Linux Cluster, CMU
|
|
ifeq ($(HOSTNAME), karman.me.cmu.edu)
|
|
FFTW_HOME = ../libs/fftw-3.2.2/lib
|
|
MPIF90 = mpif90
|
|
FCFLAGS = -i8 -r8 -c $(MPI_COMPILE_FLAGS) -I$(FFTW_HOME)/include
|
|
LDFLAGS = -i8 -r8 $(MPI_LD_FLAGS) -L$(FFTW_HOME)/lib -lfftw3 -lm
|
|
FCFLAGS_F77 = -Mextend
|
|
|
|
endif
|
|
|
|
# sparrow.stanford.edu, Mac OS X box
|
|
ifeq ($(HOSTNAME), sparrow.stanford.edu)
|
|
MPIF90 = mpif90
|
|
FCFLAGS = -fdefault-real-8 -fdefault-integer-8 -finit-integer=0 -finit-real=zero -c
|
|
FCFLAGS_F77 = -ffixed-form -ffixed-line-length-none
|
|
FCFLAGS_F90 = -ffree-form -ffree-line-length-none
|
|
LDFLAGS = -fdefault-real-8 -fdefault-integer-8 -finit-integer=0 -finit-real=zero -lmpi -lmpi -lfftw3 -lm
|
|
endif
|
|
|
|
# Program name
|
|
PROG = hit3d.x
|
|
|
|
# Modules
|
|
MODULES += \
|
|
m_io.o\
|
|
m_parameters.o\
|
|
m_work.o\
|
|
m_fields.o\
|
|
m_timing.o\
|
|
x_fftw.o\
|
|
m_filter_xfftw.o\
|
|
m_particles.o\
|
|
m_stats.o\
|
|
m_force.o\
|
|
m_rand_knuth.o\
|
|
m_les.o\
|
|
RANDu.o\
|
|
m_hit_result.o\
|
|
m_compact.o\
|
|
m_fdm_calc.o
|
|
|
|
# Objects
|
|
OBJ = main.o\
|
|
begin_new.o\
|
|
begin_restart.o\
|
|
dealias_all.o\
|
|
get_file_ext.o\
|
|
init_velocity.o\
|
|
init_scalars.o\
|
|
io_write_4.o\
|
|
my_dt.o\
|
|
my_exit.o\
|
|
pressure.o\
|
|
restart_io.o\
|
|
rhs_velocity.o\
|
|
rhs_scalars.o\
|
|
velocity_rescale.o\
|
|
write_tmp4.o\
|
|
gather_tmp4.o\
|
|
gather_4.o\
|
|
write_stats.o
|
|
|
|
|
|
# -------------------------------------------------------
|
|
# link
|
|
|
|
$(PROG): $(MODULES) $(OBJ)
|
|
$(MPIF90) $(MODULES) $(OBJ) -o $(PROG) $(LDFLAGS)
|
|
# -------------------------------------------------------
|
|
# compile
|
|
|
|
$(OBJ): $(MODULES)
|
|
|
|
%.o: %.f
|
|
$(MPIF90) $(FCFLAGS) $(FCFLAGS_F77) $<
|
|
|
|
%.o: %.f90
|
|
$(MPIF90) $(FCFLAGS) $<
|
|
|
|
clean:
|
|
rm -f *.o *.mod $(PROG)
|
|
|