<p><b>dwj07@fsu.edu</b> 2012-03-01 11:33:02 -0700 (Thu, 01 Mar 2012)</p><p><br>
        -- BRANCH COMMIT --<br>
<br>
        Actually commiting the new makefile version. The previous commit didn't actually update this file.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/ocean_projects/monotonic_advection/Makefile
===================================================================
--- branches/ocean_projects/monotonic_advection/Makefile        2012-03-01 16:03:03 UTC (rev 1562)
+++ branches/ocean_projects/monotonic_advection/Makefile        2012-03-01 18:33:02 UTC (rev 1563)
@@ -14,234 +14,185 @@
dummy:
-        @( echo "try one of:"; \
-        echo " make xlf"; \
-        echo " make pgi"; \
-        echo " make ifort"; \
-        echo " make gfortran"; \
-        )
+        ( make error )
-xlf-serial:
+xlf:
        ( make all \
-        "FC = xlf90" \
-        "CC = xlc" \
-        "SFC = xlf90" \
-        "SCC = xlc" \
-        "FFLAGS = -qrealsize=8 -g -C " \
-        "CFLAGS = -g" \
-        "LDFLAGS = -g -C" \
+        "FC_PARALLEL = mpxlf90" \
+        "CC_PARALLEL = mpcc" \
+        "FC_SERIAL = xlf90" \
+        "CC_SERIAL = xlc" \
+        "FFLAGS_OPT = -O3 -qrealsize=8" \
+        "CFLAGS_OPT = -O3" \
+        "LDFLAGS_OPT = -O3" \
        "CORE = $(CORE)" \
+        "DEBUG = $(DEBUG)" \
+        "SERIAL = $(SERIAL)" \
+        "USE_PAPI = $(USE_PAPI)" \
        "CPPFLAGS = $(MODEL_FORMULATION) $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
-
-xlf:
-        ( make all \
-        "FC = mpxlf90" \
-        "CC = mpcc" \
-        "SFC = xlf90" \
-        "SCC = xlc" \
-        "FFLAGS = -O3 -qrealsize=8" \
-        "CFLAGS = -O3" \
-        "LDFLAGS = -O3" \
-        "CORE = $(CORE)" \
-        "CPPFLAGS = $(MODEL_FORMULATION) -D_MPI $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
ftn:
        ( make all \
-        "FC = ftn" \
-        "CC = cc" \
-        "SFC = ftn" \
-        "SCC = cc" \
-        "FFLAGS = -i4 -r8 -gopt -O2 -Mvect=nosse -Kieee -convert big_endian" \
-        "CFLAGS = -fast" \
-        "LDFLAGS = " \
+        "FC_PARALLEL = ftn" \
+        "CC_PARALLEL = cc" \
+        "FC_SERIAL = ftn" \
+        "CC_SERIAL = cc" \
+        "FFLAGS_OPT = -i4 -r8 -gopt -O2 -Mvect=nosse -Kieee -convert big_endian" \
+        "CFLAGS_OPT = -fast" \
+        "LDFLAGS_OPT = " \
        "CORE = $(CORE)" \
-        "CPPFLAGS = $(MODEL_FORMULATION) -D_MPI -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
+        "DEBUG = $(DEBUG)" \
+        "SERIAL = $(SERIAL)" \
+        "USE_PAPI = $(USE_PAPI)" \
+        "CPPFLAGS = $(MODEL_FORMULATION) -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
pgi:
        ( make all \
-        "FC = mpif90" \
-        "CC = mpicc" \
-        "SFC = pgf90" \
-        "SCC = pgcc" \
-        "FFLAGS = -r8 -O3 -byteswapio -Mfree" \
-        "CFLAGS = -O3" \
-        "LDFLAGS = -O3" \
+        "FC_PARALLEL = mpif90" \
+        "CC_PARALLEL = mpicc" \
+        "FC_SERIAL = pgf90" \
+        "CC_SERIAL = pgcc" \
+        "FFLAGS_OPT = -r8 -O3 -byteswapio -Mfree" \
+        "CFLAGS_OPT = -O3" \
+        "LDFLAGS_OPT = -O3" \
+        "FFLAGS_DEBUG = -r8 -O0 -g -Mbounds -Mchkptr -byteswapio -Mfree" \
+        "CFLAGS_DEBUG = -O0 -g" \
+        "LDFLAGS_DEBUG = -O0 -g -Mbounds -Mchkptr" \
        "CORE = $(CORE)" \
-        "CPPFLAGS = $(MODEL_FORMULATION) -D_MPI -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
+        "DEBUG = $(DEBUG)" \
+        "SERIAL = $(SERIAL)" \
+        "USE_PAPI = $(USE_PAPI)" \
+        "CPPFLAGS = $(MODEL_FORMULATION) -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
pgi-nersc:
        ( make all \
-        "FC = ftn" \
-        "CC = cc" \
-        "SFC = ftn" \
-        "SCC = cc" \
-        "FFLAGS = -r8 -O3 -byteswapio -Mfree" \
-        "CFLAGS = -O3" \
-        "LDFLAGS = -O3" \
+        "FC_PARALLEL = ftn" \
+        "CC_PARALLEL = cc" \
+        "FC_SERIAL = ftn" \
+        "CC_SERIAL = cc" \
+        "FFLAGS_OPT = -r8 -O3 -byteswapio -Mfree" \
+        "CFLAGS_OPT = -O3" \
+        "LDFLAGS_OPT = -O3" \
        "CORE = $(CORE)" \
-        "CPPFLAGS = $(MODEL_FORMULATION) -D_MPI -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
+        "DEBUG = $(DEBUG)" \
+        "SERIAL = $(SERIAL)" \
+        "USE_PAPI = $(USE_PAPI)" \
+        "CPPFLAGS = $(MODEL_FORMULATION) -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
pgi-llnl:
        ( make all \
-        "FC = mpipgf90" \
-        "CC = pgcc" \
-        "SFC = pgf90" \
-        "SCC = pgcc" \
-        "FFLAGS = -i4 -r8 -g -O2 -byteswapio" \
-        "CFLAGS = -fast" \
-        "LDFLAGS = " \
+        "FC_PARALLEL = mpipgf90" \
+        "CC_PARALLEL = pgcc" \
+        "FC_SERIAL = pgf90" \
+        "CC_SERIAL = pgcc" \
+        "FFLAGS_OPT = -i4 -r8 -g -O2 -byteswapio" \
+        "CFLAGS_OPT = -fast" \
+        "LDFLAGS_OPT = " \
        "CORE = $(CORE)" \
-        "CPPFLAGS = $(MODEL_FORMULATION) -D_MPI -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
-
-pgi-serial:
-        ( make all \
-        "FC = pgf90" \
-        "CC = pgcc" \
-        "SFC = pgf90" \
-        "SCC = pgcc" \
-        "FFLAGS = -r8 -O0 -g -Mbounds -Mchkptr -byteswapio -Mfree" \
-        "CFLAGS = -O0 -g" \
-        "LDFLAGS = -O0 -g -Mbounds -Mchkptr" \
-        "CORE = $(CORE)" \
+        "DEBUG = $(DEBUG)" \
+        "SERIAL = $(SERIAL)" \
+        "USE_PAPI = $(USE_PAPI)" \
        "CPPFLAGS = $(MODEL_FORMULATION) -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
-ifort-serial:
+ifort:
        ( make all \
-        "FC = ifort" \
-        "CC = gcc" \
-        "SFC = ifort" \
-        "SCC = gcc" \
-        "FFLAGS = -real-size 64 -O3 -convert big_endian -FR" \
-        "CFLAGS = -O3 -m64" \
-        "LDFLAGS = -O3" \
+        "FC_PARALLEL = mpif90" \
+        "CC_PARALLEL = gcc" \
+        "FC_SERIAL = ifort" \
+        "CC_SERIAL = gcc" \
+        "FFLAGS_OPT = -real-size 64 -O3 -convert big_endian -FR" \
+        "CFLAGS_OPT = -O3 -m64" \
+        "LDFLAGS_OPT = -O3" \
+        "FFLAGS_DEBUG = -real-size 64 -g -convert big_endian -FR -CU -CB -check all -fpe0 -traceback -debug all" \
+        "CFLAGS_DEBUG = -g -m64" \
+        "LDFLAGS_DEBUG = -g" \
        "CORE = $(CORE)" \
+        "DEBUG = $(DEBUG)" \
+        "SERIAL = $(SERIAL)" \
+        "USE_PAPI = $(USE_PAPI)" \
        "CPPFLAGS = $(MODEL_FORMULATION) -DUNDERSCORE -m64 $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
-ifort-papi:
-        ( make all \
-        "FC = mpif90" \
-        "CC = gcc" \
-        "SFC = ifort" \
-        "SCC = gcc" \
-        "FFLAGS = -real-size 64 -O3 -convert big_endian -FR" \
-        "CFLAGS = -O3 -m64" \
-        "LDFLAGS = -O3" \
-        "CORE = $(CORE)" \
-        "CPPFLAGS = $(MODEL_FORMULATION) -D_PAPI -D_MPI -DUNDERSCORE -m64 $(FILE_OFFSET) $(ZOLTAN_DEFINE)" \
-        "PAPILIBS = -L$(PAPI)/lib -lpapi" )
-
-ifort-papi-serial:
-        ( make all \
-        "FC = ifort" \
-        "CC = gcc" \
-        "SFC = ifort" \
-        "SCC = gcc" \
-        "FFLAGS = -real-size 64 -O3 -convert big_endian -FR" \
-        "CFLAGS = -O3 -m64" \
-        "LDFLAGS = -O3" \
-        "CORE = $(CORE)" \
-        "CPPFLAGS = $(MODEL_FORMULATION) -D_PAPI -DUNDERSCORE -m64 $(FILE_OFFSET) $(ZOLTAN_DEFINE)" \
-        "PAPILIBS = -L$(PAPI)/lib -lpapi" )
-
-ifort:
-        ( make all \
-        "FC = mpif90" \
-        "CC = gcc" \
-        "SFC = ifort" \
-        "SCC = gcc" \
-        "FFLAGS = -real-size 64 -O3 -convert big_endian -FR" \
-        "CFLAGS = -O3 -m64" \
-        "LDFLAGS = -O3" \
-        "CORE = $(CORE)" \
-        "CPPFLAGS = $(MODEL_FORMULATION) -D_MPI -DUNDERSCORE -m64 $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
-
gfortran:
        ( make all \
-        "FC = mpif90" \
-        "CC = mpicc" \
-        "SFC = gfortran" \
-        "SCC = gcc" \
-        "FFLAGS = -O3 -m64 -ffree-line-length-none -fdefault-real-8 -fconvert=big-endian -ffree-form" \
-        "CFLAGS = -O3 -m64" \
-        "LDFLAGS = -O3 -m64" \
+        "FC_PARALLEL = mpif90" \
+        "CC_PARALLEL = mpicc" \
+        "FC_SERIAL = gfortran" \
+        "CC_SERIAL = gcc" \
+        "FFLAGS_OPT = -O3 -m64 -ffree-line-length-none -fdefault-real-8 -fconvert=big-endian -ffree-form" \
+        "CFLAGS_OPT = -O3 -m64" \
+        "LDFLAGS_OPT = -O3 -m64" \
+        "FFLAGS_DEBUG = -g -m64 -ffree-line-length-none -fdefault-real-8 -fconvert=big-endian -ffree-form -fbounds-check" \
+        "CFLAGS_DEBUG = -g -m64" \
+        "LDFLAGS_DEBUG = -g -m64" \
        "CORE = $(CORE)" \
-        "CPPFLAGS = $(MODEL_FORMULATION) -D_MPI -DUNDERSCORE -m64 $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
-
-gfortran-serial:
-        ( make all \
-        "FC = gfortran" \
-        "CC = gcc" \
-        "SFC = gfortran" \
-        "SCC = gcc" \
-        "FFLAGS = -O3 -m64 -ffree-line-length-none -fdefault-real-8 -fconvert=big-endian -ffree-form" \
-        "CFLAGS = -O3 -m64" \
-        "LDFLAGS = -O3 -m64" \
-        "CORE = $(CORE)" \
+        "DEBUG = $(DEBUG)" \
+        "SERIAL = $(SERIAL)" \
+        "USE_PAPI = $(USE_PAPI)" \
        "CPPFLAGS = $(MODEL_FORMULATION) -DUNDERSCORE -m64 $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
g95:
        ( make all \
-        "FC = mpif90" \
-        "CC = mpicc" \
-        "SFC = g95" \
-        "SCC = gcc" \
-        "FFLAGS = -O3 -ffree-line-length-huge -r8 -fendian=big" \
-        "CFLAGS = -O3" \
-        "LDFLAGS = -O3" \
+        "FC_PARALLEL = mpif90" \
+        "CC_PARALLEL = mpicc" \
+        "FC_SERIAL = g95" \
+        "CC_SERIAL = gcc" \
+        "FFLAGS_OPT = -O3 -ffree-line-length-huge -r8 -fendian=big" \
+        "CFLAGS_OPT = -O3" \
+        "LDFLAGS_OPT = -O3" \
        "CORE = $(CORE)" \
-        "CPPFLAGS = $(MODEL_FORMULATION) -D_MPI -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
-
-g95-serial:
-        ( make all \
-        "FC = g95" \
-        "CC = gcc" \
-        "SFC = g95" \
-        "SCC = gcc" \
-        "FFLAGS = -O3 -ffree-line-length-huge -r8 -fendian=big" \
-        "CFLAGS = -O3" \
-        "LDFLAGS = -O3" \
-        "CORE = $(CORE)" \
+        "DEBUG = $(DEBUG)" \
+        "SERIAL = $(SERIAL)" \
+        "USE_PAPI = $(USE_PAPI)" \
        "CPPFLAGS = $(MODEL_FORMULATION) -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
pathscale-nersc:
        ( make all \
-        "FC = ftn" \
-        "CC = cc" \
-        "SFC = ftn" \
-        "SCC = cc" \
-        "FFLAGS = -r8 -O3 -freeform -extend-source" \
-        "CFLAGS = -O3" \
-        "LDFLAGS = -O3" \
+        "FC_PARALLEL = ftn" \
+        "CC_PARALLEL = cc" \
+        "FC_SERIAL = ftn" \
+        "CC_SERIAL = cc" \
+        "FFLAGS_OPT = -r8 -O3 -freeform -extend-source" \
+        "CFLAGS_OPT = -O3" \
+        "LDFLAGS_OPT = -O3" \
        "CORE = $(CORE)" \
-        "CPPFLAGS = $(MODEL_FORMULATION) -D_MPI -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
+        "DEBUG = $(DEBUG)" \
+        "SERIAL = $(SERIAL)" \
+        "USE_PAPI = $(USE_PAPI)" \
+        "CPPFLAGS = $(MODEL_FORMULATION) -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
cray-nersc:
        ( make all \
-        "FC = ftn" \
-        "CC = cc" \
-        "SFC = ftn" \
-        "SCC = cc" \
-        "FFLAGS = -default64 -O3 -f free" \
-        "CFLAGS = -O3" \
-        "LDFLAGS = -O3" \
+        "FC_PARALLEL = ftn" \
+        "CC_PARALLEL = cc" \
+        "FC_SERIAL = ftn" \
+        "CC_SERIAL = cc" \
+        "FFLAGS_OPT = -default64 -O3 -f free" \
+        "CFLAGS_OPT = -O3" \
+        "LDFLAGS_OPT = -O3" \
        "CORE = $(CORE)" \
-        "CPPFLAGS = $(MODEL_FORMULATION) -D_MPI -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
+        "DEBUG = $(DEBUG)" \
+        "SERIAL = $(SERIAL)" \
+        "USE_PAPI = $(USE_PAPI)" \
+        "CPPFLAGS = $(MODEL_FORMULATION) -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
intel-nersc:
        ( make all \
-        "FC = ftn" \
-        "CC = cc" \
-        "SFC = ftn" \
-        "SCC = cc" \
-        "FFLAGS = -real-size 64 -O3 -FR" \
-        "CFLAGS = -O3" \
-        "LDFLAGS = -O3" \
+        "FC_PARALLEL = ftn" \
+        "CC_PARALLEL = cc" \
+        "FC_SERIAL = ftn" \
+        "CC_SERIAL = cc" \
+        "FFLAGS_OPT = -real-size 64 -O3 -FR" \
+        "CFLAGS_OPT = -O3" \
+        "LDFLAGS_OPT = -O3" \
        "CORE = $(CORE)" \
-        "CPPFLAGS = $(MODEL_FORMULATION) -D_MPI -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
+        "DEBUG = $(DEBUG)" \
+        "SERIAL = $(SERIAL)" \
+        "USE_PAPI = $(USE_PAPI)" \
+        "CPPFLAGS = $(MODEL_FORMULATION) -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
-CPPINCLUDES = -I../inc -I$(NETCDF)/include -I$(PAPI)/include
-FCINCLUDES = -I../inc -I$(NETCDF)/include -I$(PAPI)/include
-LIBS = -L$(NETCDF)/lib -lnetcdf $(PAPILIBS)
+CPPINCLUDES = -I../inc -I$(NETCDF)/include
+FCINCLUDES = -I../inc -I$(NETCDF)/include
+LIBS = -L$(NETCDF)/lib -lnetcdf
RM = rm -f
CPP = cpp -C -P -traditional
@@ -268,34 +219,109 @@
ifdef CORE
+ifeq "$(DEBUG)" "true"
+
+ifndef FFLAGS_DEBUG
+        FFLAGS=$(FFLAGS_OPT)
+        CFLAGS=$(CFLAGS_OPT)
+        LDFLAGS=$(LDFLAGS_OPT)
+        DEBUG_MESSAGE="Debug flags are not defined for this compile group. Defaulting to Optimized flags"
+else # FFLAGS_DEBUG IF
+        FFLAGS=$(FFLAGS_DEBUG)
+        CFLAGS=$(CFLAGS_DEBUG)
+        LDFLAGS=$(LDFLAGS_DEBUG)
+        DEBUG_MESSAGE="Debugging is on."
+endif # FFLAGS_DEBUG IF
+
+else # DEBUG IF
+        FFLAGS=$(FFLAGS_OPT)
+        CFLAGS=$(CFLAGS_OPT)
+        LDFLAGS=$(LDFLAGS_OPT)
+        DEBUG_MESSAGE="Debugging is off."
+endif # DEBUG IF
+
+ifeq "$(SERIAL)" "true"
+        FC=$(FC_SERIAL)
+        CC=$(CC_SERIAL)
+        SFC=$(FC_SERIAL)
+        SCC=$(CC_SERIAL)
+        SERIAL_MESSAGE="Serial version is on."
+else # SERIAL IF
+        FC=$(FC_PARALLEL)
+        CC=$(CC_PARALLEL)
+        SFC=$(FC_SERIAL)
+        SCC=$(CC_SERIAL)
+        override CPPFLAGS += -D_MPI
+        SERIAL_MESSAGE="Parallel version is on."
+endif # SERIAL IF
+
+ifeq "$(USE_PAPI)" "true"
+        CPPINCLUDES += -I$(PAPI)/include -D_PAPI
+        FCINCLUDES += -I$(PAPI)/include
+        LIBS += -L$(PAPI)/lib -lpapi
+        PAPI_MESSAGE="Papi libraries are on."
+else # USE_PAPI IF
+        PAPI_MESSAGE="Papi libraries are off."
+endif # USE_PAPI IF
+
all: mpas_main
mpas_main:
        cd src; make FC="$(FC)" \
- CC="$(CC)" \
- CFLAGS="$(CFLAGS)" \
- FFLAGS="$(FFLAGS)" \
- LDFLAGS="$(LDFLAGS)" \
- RM="$(RM)" \
- CPP="$(CPP)" \
- CPPFLAGS="$(CPPFLAGS)" \
- LIBS="$(LIBS)" \
- CPPINCLUDES="$(CPPINCLUDES)" \
- FCINCLUDES="$(FCINCLUDES)" \
- CORE="$(CORE)"
+ CC="$(CC)" \
+ SFC="$(SFC)" \
+ SCC="$(SCC)" \
+ CFLAGS="$(CFLAGS)" \
+ FFLAGS="$(FFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" \
+ RM="$(RM)" \
+ CPP="$(CPP)" \
+ CPPFLAGS="$(CPPFLAGS)" \
+ LIBS="$(LIBS)" \
+ CPPINCLUDES="$(CPPINCLUDES)" \
+ FCINCLUDES="$(FCINCLUDES)" \
+ CORE="$(CORE)"
        if [ ! -e $(CORE)_model.exe ]; then ln -s src/$(CORE)_model.exe .; fi
-
+        @echo ""
+        @echo $(DEBUG_MESSAGE)
+        @echo $(SERIAL_MESSAGE)
+        @echo $(PAPI_MESSAGE)
clean:
        cd src; make clean RM="$(RM)" CORE="$(CORE)"
        $(RM) $(CORE)_model.exe
+error: errmsg
-else
+else # CORE IF
-all: errmsg
+all: error
clean: errmsg
-errmsg:
+error: errmsg
        @echo "************ ERROR ************"
        @echo "No CORE specified. Quitting."
        @echo "************ ERROR ************"
+        @echo ""
-endif
+endif # CORE IF
+
+errmsg:
+        @echo ""
+        @echo "Usage: make target CORE=[core] [options]"
+        @echo ""
+        @echo "Example targets:"
+        @echo " ifort"
+        @echo " gfortran"
+        @echo " xlf"
+        @echo " pgi"
+        @echo ""
+        @echo "Availabe Cores:"
+        @cd src; ls -d core_* | grep ".*" | sed "s/core_/ /g"
+        @echo ""
+        @echo "Available Options:"
+        @echo " SERIAL=true - builds serial version. Default is parallel version."
+        @echo " DEBUG=true - builds debug version. Default is optimized version."
+        @echo " USE_PAPI=true - builds version using PAPI for timers and hardware counters. Default is off."
+        @echo ""
+        @echo "Ensure that NETCDF (and PAPI if USE_PAPI=true) are environment variables"
+        @echo "that point to the absolute paths for the libraries."
+        @echo ""
+
</font>
</pre>