#*************************** The MPI Interface ************************* # # Select an MPI interface: mgmpi or mgmpi_stubs. # # If MPI is not needed, one can select mgmpi_stubs, # allowing the creation of an executable without # the need to load the MPI library. However, # all MPI options are completely disabled. # MPI_INTERFACE = mgmpi #MPI_INTERFACE = mgmpi_stubs # # Set the path for MPI include files and libraries. # This is not needed if mgmpi_stubs was selected. # ifeq (${MPI_INTERFACE}, mgmpi) MPI_PATH = /usr/local/mpich2/ MPI_INCLUDE = -I${MPI_PATH}include MPI_LIBRARY = -L${MPI_PATH}lib -lmpich else MPI_INCLUDE = MPI_LIBRARY = endif # #***************************** C and FORTRAN *************************** # # Define C and Fortran compilers and compile options. # CFLAGS = -O -Wall -pthread FFLAGS = -O -pthread # # Set paths for C and Fortran compilers. # ifeq (${MPI_INTERFACE}, mgmpi) CC = ${MPI_PATH}bin/mpicc ${CFLAGS} F90 = ${MPI_PATH}bin/mpif90 ${FFLAGS} else CF_PATH = /usr/bin/ CC = ${CF_PATH}gcc ${CFLAGS} F90 = ${CF_PATH}gfortran ${FFLAGS} endif # #*********************************************************************** # # The rest of the Makefile is independent of environment # INCS = ${MPI_INCLUDE} LIBS = ${MPI_LIBRARY} MG = atest.o pltmg.o webgui.o ${MPI_INTERFACE}.o PROBS = circle.o jcn.o domains.o naca.o square.o ob.o control.o\ mnsurf.o burger.o battery.o ident.o message.o usmap.o box.o .f.o: ${F90} ${INCS} -c $< -o $@ .c.o: ${CC} ${INCS} -c $< -o $@ Circle: ${MG} circle.o ${F90} ${MG} circle.o ${LIBS} -o Circle Jcn: ${MG} jcn.o ${F90} ${MG} jcn.o ${LIBS} -o Jcn Domains: ${MG} domains.o ${F90} ${MG} domains.o ${LIBS} -o Domains Naca: ${MG} naca.o ${F90} ${MG} naca.o ${LIBS} -o Naca Square: ${MG} square.o ${F90} ${MG} square.o ${LIBS} -o Square Ob: ${MG} ob.o ${F90} ${MG} ob.o ${LIBS} -o Ob Mnsurf: ${MG} mnsurf.o ${F90} ${MG} mnsurf.o ${LIBS} -o Mnsurf Burger: ${MG} burger.o ${F90} ${MG} burger.o ${LIBS} -o Burger Battery: ${MG} battery.o ${F90} ${MG} battery.o ${LIBS} -o Battery Ident: ${MG} ident.o ${F90} ${MG} ident.o ${LIBS} -o Ident Control: ${MG} control.o ${F90} ${MG} control.o ${LIBS} -o Control Box: ${MG} box.o ${F90} ${MG} box.o ${LIBS} -o Box Message: ${MG} message.o ${F90} ${MG} message.o ${LIBS} -o Message Usmap: ${MG} usmap.o ${F90} ${MG} usmap.o ${LIBS} -o Usmap ${MG} ${PROBS}: mg0.o clean: rm -f *.o fort.* core* *.rw *.mod journl*.jnl* *.out jnltmp*.jnl* \ Domains* Circle* Mnsurf* Jcn* Naca* Square* Usmap* \ Control* Burger* Ob* Battery* Ident* Message* Box* PI*