# Makefile for MPI-Spin model of Example 2.22 from
# "MPI: The Complete Reference, vol. 1", 2nd ed.

# Author: Dr. Stephen Siegel <siegel@cis.udel.edu>
# Last modified: 19-jul-2007

PREP       = rm -f pan* *trail mpi-spin-init.c
OPTS       = -nocancel -noprobe -symmax=5 -symhash=5
MS         = $(PREP) ; ms $(OPTS) # add opts if you want
MSCC       = mscc
PREREQ     = completion.prom
EXECUTE    = time ./pan -n

all: completion_p0_0 completion_p0_1 completion_p1_1 completion_p2_1 \
     completion_p3_1 completion_p4_1

completion_p0_0: $(PREREQ)
	$(MS) -dl -np=2 -buf=0 -req=4 completion.prom
	$(MSCC) -DSAFETY
	($(EXECUTE)) > completion_p0_0.out 2>completion_p0_0.err


completion_p0_1: $(PREREQ)
	$(MS) -dl -np=2 -buf=10 -req=4 completion.prom
	$(MSCC) -DSAFETY
	($(EXECUTE)) > completion_p0_1.out 2>completion_p0_1.err


completion_p1_1: $(PREREQ)
	$(MS) -DP1 -np=2 -buf=10 -req=4 completion.prom
	$(MSCC)
	($(EXECUTE) -a -m22) > completion_p1_1.out 2>completion_p1_1.err
	./pan -r > trail_p1_1.txt



completion_p2_1: $(PREREQ)
	$(MS) -DP2 -np=2 -buf=10 -req=4 completion.prom
	$(MSCC)
	($(EXECUTE) -a -m28) > completion_p2_1.out 2>completion_p2_1.err
	./pan -r > trail_p2_1.txt



completion_p3_1: $(PREREQ)
	$(MS) -DP3 -np=2 -buf=10 -req=4 completion.prom
	$(MSCC)
	($(EXECUTE) -a -m26) > completion_p3_1.out 2>completion_p3_1.err
	./pan -r > trail_p3_1.txt


# There seems to be some problem with this one when -m38 is used...

completion_p4_1: $(PREREQ)
	$(MS) -DP4 -np=2 -buf=10 -req=4 completion.prom
	$(MSCC)
	($(EXECUTE) -a)  > completion_p4_1.out 2>completion_p4_1.err
	./pan -r > trail_p4_1.txt

clean:
	-rm -f pan* *.trail *.out mpi-spin-init.c trail*.txt *.err *~
