# Makefile for the a parallel program on NTs using MPI.
#
# Note: This file is written for the gnu version of make, and it may not be compatible
# with other versions.
# Make configuration variables
VPATH = Object_MPI:Include:../bin
# Preprocessor variables
CPP = fpp
# CPP directive -DWPRNG (/DWPRNG on NT).
# When using PRNG and NAG, LIBS should include the correct libraries.
# Note (10/8/99) PRNG code for NT version (using integer*4) included with the code.
CPPFLAGS = /P /DWINNT /DMP /DMPI /DWPRNG
# Fortran compiler variables change for MPI-Pro on NT, 7-22-99
FC = mpif77
# FFLAGS = /define:MPI_VIA_proto /debug:full /optimize:0 -IInclude
FFLAGS = /debug:full /optimize:0 -IInclude -IC:\PROGRA~1\MPIPro\include
# Linker/loader variables
LDFLAGS = /link /out:mypackage-${MYPACKAGE_ARCH}.exe
#
# Do not set LIB = without including the previously defined LIB, as LIB is set by the system.
# Without LIB, things will be missing from the path.
#
# PRNG is not installed on the Velocity Cluster. To build PRNG, retrieve it from
# ftp://ftp.tc.cornell.edu/pub/utilities/prng.tar.Z. The makefile is for unix and must be
# converted for Velocity.
#
# The IMSL libs listed are set to LINK_F90.
# The specific files are "IMSL.LIB IMSLMPISTUB.LIB IMSLS_ERR.LIB"
LIBS = "javascript:void(null);"
# Suffix rule definitions # All three of these need to be here. ".F.f" is necessary for working
# with RCS and GNU make, and ".f.o" and ".F.o" are always necessary.
# change for NT, .f-->.for, .o-->.obj
.
SUFFIXES: .obj .for .F
.F.for:
${CPP} ${CPPFLAGS} $*.F > $*.for
cp $*.for f_FILES_MPI/
.for.obj: ${FC} -c ${FFLAGS} $<
mv $*.obj Object_MPI
.F.obj:
${CPP} ${CPPFLAGS} $*.F > $*.for
cp $*.for f_FILES_MPI/
${FC} -c ${FFLAGS} $*.for
mv $*.obj Object_MPI
rm $*.for
objects = a.obj b.obj c.obj d.obj prng.obj
# All rules go below here
mypackage-${MYPACKAGE_ARCH}.exe: ${objects}
cd Object_MPI; ${FC} ${LDFLAGS} ${objects} ${LIBS}; \
mv $(@F) ${MYPACKAGE_ROOT}/bin
clean:
rm -f Object_MPI/*.obj *.obj f_FILES_MPI/*.for