#======================================================================== # BEARCLAW Boundary Embedded Adaptive Refinement Conservation LAW package #======================================================================== # (c) Copyright Sorin Mitran, 1999, 2003 # Applied Mathematics Program, Department of Mathematics # University of North Carolina at Chapel Hill # mitran@amath.unc.edu # ----------------------------------------------------------------------- # This code may be freely used for educational and research purposes. # For any other use please contact the author. # ----------------------------------------------------------------------- # File: Makefile.inc # Purpose: Single place in which general settings for all # individual Makefiles are specified # Contains: # Revision History: Ver. 0.5 Nov. 1999 Sorin Mitran # Ver. 1.0 Apr. 2003 SM (added OpenMP, MPI, reorganized # compiler options) # Ver. 2.0 Nov. 2007 SM (linear solvers) # ----------------------------------------------------------------------- ################################################################################## # Local installation options # Set the following paths to reflect your installation. (1-3) # # 1. Location of HDF include, module, lib files HDFINC=$(BEARCLAW)/hdf/include HDFMOD=$(BEARCLAW)/hdf/lib HDFLIBS = -L$(BEARCLAW)/hdf/lib -lhdf5_fortran -lhdf5 -lmfhdf -ldf -ljpeg -lz -lsz # # 2. Compiler/linker choices for serial/parallel compilation # COMPILER = ifort # Intel Fortran Compiler LINKER = ifort MPICOMPILER = mpif90 MPILINKER = mpif90 # # 3. Compilation options (Default is normal debugging) FFLAGS = -g LFLAGS = # Extensive debugging with full run-time checks and profiling #FFLAGS = -g -qp -zero #LFLAGS = -qp # Extensive optimization #FFLAGS = -O3 -tpp7 -mp1 -prec_div -pc80 -ip -unroll -w #LFLAGS = # End of installation options ##################################################################################### BEARCLAWLIB = $(BEARCLAW)/lib DIR_MODULES = $(BEARCLAWLIB) # Compiler command FC = $(COMPILER) -c -I$(HDFINC) -I$(HDFMOD) $(FFLAGS) # Linker command LINK = $(LINKER) $(LLFLAGS) # Required libraries LIBS = $(HDFLIBS) .SUFFIXES: .F90 .f90 .mod .c .o .f # Compile rules ifeq ($(MAKECMDGOALS),mpibear) %.o : %.f90 $(MPICOMPILER) -c -DMPIBEAR -I$(HDFINC) -I$(HDFMOD) $(USER_FFLAGS) $(FFLAGS) -I$(DIR_MODULES) $< -o $@ else %.o : %.f90 $(FC) $< -o $@ -I$(DIR_MODULES) $(USER_FFLAGS) endif LIBSOURCES = \ $(BEARCLAWLIB)/treeops.f90 \ $(BEARCLAWLIB)/fixup.f90 \ $(BEARCLAWLIB)/beario.f90 \ $(METHOD_SOURCES) \ $(BEARCLAWLIB)/linsolve.f90 \ $(BEARCLAWLIB)/serial_exec.f90 \ $(BEARCLAWLIB)/InfoFieldUtils.f90 \ $(BEARCLAWLIB)/bearez.f90 \ $(BEARCLAWLIB)/setbc.f90 \ $(BEARCLAWLIB)/driver.f90 LIBOBJECTS = \ $(BEARCLAWLIB)/treeops.o \ $(BEARCLAWLIB)/fixup.o \ $(BEARCLAWLIB)/beario.o \ $(METHOD_OBJECTS) \ $(BEARCLAWLIB)/linsolve.o \ $(BEARCLAWLIB)/serial_exec.o \ $(BEARCLAWLIB)/bearez.o \ $(BEARCLAWLIB)/setbc.o \ $(BEARCLAWLIB)/driver.o LIBMODULES = \ $(BEARCLAWLIB)/treeops.mod \ $(BEARCLAWLIB)/fixup.mod \ $(METHOD_MODULES) \ $(BEARCLAWLIB)/linsolve.mod \ $(BEARCLAWLIB)/beario.mod \ $(BEARCLAWLIB)/exec_mode.mod \ $(BEARCLAWLIB)/bearez.mod OPENMPLIBSOURCES = \ $(BEARCLAWLIB)/treeops.f90 \ $(BEARCLAWLIB)/fixup.f90 \ $(BEARCLAWLIB)/infosize.c \ $(BEARCLAWLIB)/beario.f90 \ $(METHOD_SOURCES) \ $(BEARCLAWLIB)/linsolve.f90 \ $(BEARCLAWLIB)/openmp_exec.f90 \ $(BEARCLAWLIB)/InfoFieldUtils.f90 \ $(BEARCLAWLIB)/bearez.f90 \ $(BEARCLAWLIB)/setbc.f90 \ $(BEARCLAWLIB)/openmpdriver.f90 OPENMPLIBOBJECTS = \ $(BEARCLAWLIB)/treeops.o \ $(BEARCLAWLIB)/fixup.o \ $(BEARCLAWLIB)/infosize.o \ $(BEARCLAWLIB)/beario.o \ $(METHOD_OBJECTS) \ $(BEARCLAWLIB)/linsolve.o \ $(BEARCLAWLIB)/openmp_exec.o \ $(BEARCLAWLIB)/bearez.o \ $(BEARCLAWLIB)/setbc.o \ $(BEARCLAWLIB)/openmpdriver.o OPENMPLIBMODULES = \ $(BEARCLAWLIB)/treeops.mod \ $(BEARCLAWLIB)/fixup.mod \ $(METHOD_MODULES) \ $(BEARCLAWLIB)/linsolve.mod \ $(BEARCLAWLIB)/beario.mod \ $(BEARCLAWLIB)/exec_mode.mod \ $(BEARCLAWLIB)/bearez.mod MPILIBSOURCES = \ $(BEARCLAWLIB)/treeops.f90 \ $(BEARCLAWLIB)/fixup.f90 \ $(METHOD_SOURCES) \ $(BEARCLAWLIB)/linsolve.f90 \ $(BEARCLAWLIB)/mpi_exec.f90 \ $(BEARCLAWLIB)/mpi_beario.f90 \ $(BEARCLAWLIB)/InfoFieldUtils.f90 \ $(BEARCLAWLIB)/mpi_bearez.f90 \ $(BEARCLAWLIB)/setbc.f90 \ $(BEARCLAWLIB)/mpidriver.f90 MPILIBOBJECTS = \ $(BEARCLAWLIB)/treeops.o \ $(BEARCLAWLIB)/fixup.o \ $(METHOD_OBJECTS) \ $(BEARCLAWLIB)/linsolve.o \ $(BEARCLAWLIB)/mpi_exec.o \ $(BEARCLAWLIB)/mpi_beario.o \ $(BEARCLAWLIB)/mpi_bearez.o \ $(BEARCLAWLIB)/setbc.o \ $(BEARCLAWLIB)/mpidriver.o MPILIBMODULES = \ $(BEARCLAWLIB)/mpiarrayops.mod \ $(BEARCLAWLIB)/treeops.mod \ $(BEARCLAWLIB)/fixup.mod \ $(METHOD_MODULES) \ $(BEARCLAWLIB)/linsolve.mod \ $(BEARCLAWLIB)/execmode.mod \ $(BEARCLAWLIB)/mpi_beario.mod \ $(BEARCLAWLIB)/mpi_bearez.mod