2008-11-04 13:08:01 -06:00
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#
|
|
|
|
# include configuration
|
|
|
|
#
|
|
|
|
ifeq ($(wildcard make.config),make.config)
|
|
|
|
$(info )
|
|
|
|
$(info Using customized "$(wildcard make.config)" file.)
|
|
|
|
$(info )
|
|
|
|
include make.config
|
|
|
|
else
|
|
|
|
$(info )
|
|
|
|
$(info Could not find the customized "make.config" file!)
|
|
|
|
$(info )
|
|
|
|
$(info Copy "make.default" to "make.config" and customize it, if you do not want the default configuration.)
|
|
|
|
$(info )
|
|
|
|
$(shell sleep 5)
|
|
|
|
include make.default
|
|
|
|
endif
|
|
|
|
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#
|
|
|
|
# host variables
|
|
|
|
#
|
|
|
|
HOST := $(shell hostname -f)
|
|
|
|
OS := $(shell uname)
|
|
|
|
DATE := $(shell date +%Y%m%d%H%M)
|
|
|
|
|
|
|
|
include hosts/default
|
|
|
|
ifeq ($(wildcard hosts/$(HOST)),hosts/$(HOST))
|
|
|
|
$(info Using compiler setup from "hosts/$(HOST)" file.)
|
|
|
|
$(info )
|
|
|
|
include hosts/$(HOST)
|
|
|
|
endif
|
|
|
|
|
2010-02-28 18:35:57 -03:00
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#
|
|
|
|
# check flag conditions
|
|
|
|
#
|
|
|
|
ifeq ($(EQS),MHD)
|
|
|
|
ifeq ($(FLUX),HLLC)
|
|
|
|
FLUX = HLL
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
2008-11-04 13:08:01 -06:00
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#
|
2008-12-08 15:31:35 -06:00
|
|
|
# pass additional flags to the compiler
|
2008-11-04 13:08:01 -06:00
|
|
|
#
|
2008-12-08 15:31:35 -06:00
|
|
|
# number of dimensions
|
|
|
|
#
|
|
|
|
FFLAGS += -DNDIMS=${NDIMS}
|
2008-12-18 12:18:36 -06:00
|
|
|
ifeq ($(SHAPE),Y)
|
|
|
|
FFLAGS += -DSHAPE
|
|
|
|
endif
|
2008-11-04 13:08:01 -06:00
|
|
|
|
2008-12-08 15:31:35 -06:00
|
|
|
# output data format
|
|
|
|
#
|
|
|
|
FFLAGS += -D${OUTPUT}
|
2008-11-04 13:08:01 -06:00
|
|
|
|
2010-10-11 01:39:15 -03:00
|
|
|
# compression
|
|
|
|
#
|
|
|
|
ifeq ($(COMPRESS),Y)
|
|
|
|
FFLAGS += -DDEFLATE
|
|
|
|
endif
|
|
|
|
|
2008-12-08 15:31:35 -06:00
|
|
|
# precision
|
|
|
|
#
|
|
|
|
FFLAGS += -DPREC=${PREC}
|
2008-11-04 13:08:01 -06:00
|
|
|
|
2008-12-08 15:31:35 -06:00
|
|
|
# time integration method
|
|
|
|
#
|
|
|
|
FFLAGS += -D${TIME}
|
2008-11-04 13:08:01 -06:00
|
|
|
|
2008-12-08 15:31:35 -06:00
|
|
|
# set of equations
|
|
|
|
#
|
|
|
|
FFLAGS += -D${EQS}
|
2008-11-04 13:08:01 -06:00
|
|
|
|
2008-12-08 15:31:35 -06:00
|
|
|
# equation of state
|
|
|
|
#
|
|
|
|
FFLAGS += -D${EOS}
|
2008-11-04 13:08:01 -06:00
|
|
|
|
2008-12-08 15:31:35 -06:00
|
|
|
# flux approximation method
|
|
|
|
#
|
|
|
|
FFLAGS += -D${FLUX}
|
2008-11-04 13:08:01 -06:00
|
|
|
|
2010-02-22 12:01:58 -03:00
|
|
|
# electromotive force approximation method
|
|
|
|
#
|
|
|
|
ifeq ($(EQS),MHD)
|
|
|
|
FFLAGS += -D${FLUXEMF}
|
|
|
|
endif
|
|
|
|
|
2008-11-04 13:08:01 -06:00
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
.SUFFIXES:
|
|
|
|
.SUFFIXES: .F90 .o
|
|
|
|
|
|
|
|
.F90.o:
|
|
|
|
$(FC) -c $(FFLAGS) $*.F90
|
|
|
|
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
name = godunov-amr
|
|
|
|
|
|
|
|
default: $(name).x
|
|
|
|
|
2008-12-09 20:37:31 -06:00
|
|
|
sources = blocks.F90 boundaries.F90 config.F90 driver.F90 error.F90 \
|
2008-12-19 17:33:29 -06:00
|
|
|
evolution.F90 interpolation.F90 io.F90 mesh.F90 mpitools.F90 \
|
|
|
|
problem.F90 scheme.F90 timer.F90
|
2008-12-09 20:37:31 -06:00
|
|
|
objects = blocks.o boundaries.o config.o driver.o error.o \
|
2008-12-19 17:33:29 -06:00
|
|
|
evolution.o interpolation.o io.o mesh.o mpitools.o \
|
|
|
|
problem.o scheme.o timer.o
|
2008-11-04 13:08:01 -06:00
|
|
|
files = $(sources) makefile make.default config.in license.txt hosts
|
|
|
|
|
|
|
|
$(name).x: $(objects)
|
|
|
|
$(LD) $(LDFLAGS) $(objects) $(LIBS) -o $(name).x
|
|
|
|
|
|
|
|
arch: $(files)
|
|
|
|
tar czvf $(name)-$(DATE).tar.gz $(files)
|
|
|
|
|
|
|
|
clean:
|
|
|
|
rm -rf *.x *.o *.mod *.il
|
|
|
|
|
|
|
|
clean-all:
|
|
|
|
rm -rf *.x *.o *.mod *.il *.out *.dat *.bin *.h5 *.hdf *~ gprof.txt
|
|
|
|
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
|
2008-12-28 13:09:14 -06:00
|
|
|
blocks.o : blocks.F90 config.o error.o mpitools.o
|
2008-12-29 07:36:06 -06:00
|
|
|
boundaries.o : boundaries.F90 blocks.o config.o error.o interpolation.o \
|
|
|
|
mpitools.o
|
2008-11-05 22:16:24 -06:00
|
|
|
config.o : config.F90 error.o
|
2008-12-19 17:33:29 -06:00
|
|
|
driver.o : driver.F90 config.o evolution.o io.o mesh.o mpitools.o \
|
|
|
|
timer.o
|
2008-11-05 22:16:24 -06:00
|
|
|
error.o : error.F90
|
2009-10-28 00:12:18 -02:00
|
|
|
evolution.o : evolution.F90 blocks.o boundaries.o config.o interpolation.o \
|
|
|
|
mesh.o mpitools.o problem.o scheme.o timer.o
|
2010-02-28 18:35:57 -03:00
|
|
|
interpolation.o : interpolation.F90 blocks.o config.o
|
2009-05-18 22:46:19 +02:00
|
|
|
io.o : io.F90 blocks.o error.o mesh.o mpitools.o scheme.o
|
2008-12-22 14:57:31 -06:00
|
|
|
mesh.o : mesh.F90 blocks.o config.o error.o interpolation.o \
|
|
|
|
mpitools.o problem.o
|
2008-12-19 17:33:29 -06:00
|
|
|
mpitools.o : mpitools.F90
|
2009-09-22 17:30:53 -03:00
|
|
|
problem.o : problem.F90 blocks.o scheme.o
|
2008-12-08 20:53:29 -06:00
|
|
|
scheme.o : scheme.F90 blocks.o config.o interpolation.o
|
2008-12-07 14:06:04 -06:00
|
|
|
timer.o : timer.F90
|
2008-11-04 13:08:01 -06:00
|
|
|
|
|
|
|
#-------------------------------------------------------------------------------
|