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

# We check that there aren't any outstanding request 
# objects after calling MPI_Finalize.

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

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

all: free_p0_0 free_p0_1 free_p0_2 free_p0_3

free_p0_0: $(PREREQ)
	$(MS) -dl -np=2 -DN=1 -buf=0 -req=4 free.prom
	$(MSCC)
	$(EXECUTE) > free_p0_0.out 2>free_p0_0.err

free_p0_1: $(PREREQ)
	$(MS) -dl -np=2 -DN=3 -buf=0 -req=4 free.prom
	$(MSCC)
	$(EXECUTE) > free_p0_1.out 2>free_p0_1.err

free_p0_2: $(PREREQ)
	$(MS) -dl -np=2 -DN=3 -buf=20 -req=4 free.prom
	$(MSCC)
	$(EXECUTE) > free_p0_2.out 2>free_p0_2.err

free_p0_3: $(PREREQ)
	$(MS) -dl -np=2 -DN=6 -buf=40 -req=4 free.prom
	$(MSCC)
	$(EXECUTE) > free_p0_3.out 2>free_p0_3.err

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