<p><b>dwj07@fsu.edu</b> 2012-03-14 19:42:47 -0600 (Wed, 14 Mar 2012)</p><p><br>
        -- BRANCH COMMIT --<br>
<br>
        Updating makefile system, to be compatible with other versions of make (like gmake).<br>
        Forcing serial make (suppressing any calls with -jN where N > 1) beacuse parallel builds don't work yet.<br>
        Updating makefile to support netcdf4 as well as netcdf3. <br>
<br>
        Editing streams.c to only write log.*.out and log.*.err for master process unless built in debug mode.<br>
        Adding a MPAS_DEBUG flag, to enable debug only sections of code.<br>
<br>
        If build in debug mode, all log.*.out and log.*.err files are written, as is the current behavior.<br>
        If you want to edit this, you can add -DMPAS_DEBUG to the _OPT flags for the compiler you are interested in.<br>
<br>
        This is currently the only section of code that has MPAS_DEBUG around it in MPAS, so you won't affect any other<br>
        parts of MPAS.<br>
</p><hr noshade><pre><font color="gray">Modified: trunk/mpas/Makefile
===================================================================
--- trunk/mpas/Makefile        2012-03-14 22:07:00 UTC (rev 1643)
+++ trunk/mpas/Makefile        2012-03-15 01:42:47 UTC (rev 1644)
@@ -14,10 +14,10 @@
dummy:
-        ( make error )
+        ( $(MAKE) error )
xlf:
-        ( make all \
+        ( $(MAKE) all \
        "FC_PARALLEL = mpxlf90" \
        "CC_PARALLEL = mpcc" \
        "FC_SERIAL = xlf90" \
@@ -32,7 +32,7 @@
        "CPPFLAGS = $(MODEL_FORMULATION) $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
ftn:
-        ( make all \
+        ( $(MAKE) all \
        "FC_PARALLEL = ftn" \
        "CC_PARALLEL = cc" \
        "FC_SERIAL = ftn" \
@@ -47,7 +47,7 @@
        "CPPFLAGS = $(MODEL_FORMULATION) -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
pgi:
-        ( make all \
+        ( $(MAKE) all \
        "FC_PARALLEL = mpif90" \
        "CC_PARALLEL = mpicc" \
        "FC_SERIAL = pgf90" \
@@ -65,7 +65,7 @@
        "CPPFLAGS = $(MODEL_FORMULATION) -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
pgi-nersc:
-        ( make all \
+        ( $(MAKE) all \
        "FC_PARALLEL = ftn" \
        "CC_PARALLEL = cc" \
        "FC_SERIAL = ftn" \
@@ -80,7 +80,7 @@
        "CPPFLAGS = $(MODEL_FORMULATION) -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
pgi-llnl:
-        ( make all \
+        ( $(MAKE) all \
        "FC_PARALLEL = mpipgf90" \
        "CC_PARALLEL = pgcc" \
        "FC_SERIAL = pgf90" \
@@ -95,7 +95,7 @@
        "CPPFLAGS = $(MODEL_FORMULATION) -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
ifort:
-        ( make all \
+        ( $(MAKE) all \
        "FC_PARALLEL = mpif90" \
        "CC_PARALLEL = gcc" \
        "FC_SERIAL = ifort" \
@@ -113,7 +113,7 @@
        "CPPFLAGS = $(MODEL_FORMULATION) -DUNDERSCORE -m64 $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
gfortran:
-        ( make all \
+        ( $(MAKE) all \
        "FC_PARALLEL = mpif90" \
        "CC_PARALLEL = mpicc" \
        "FC_SERIAL = gfortran" \
@@ -131,7 +131,7 @@
        "CPPFLAGS = $(MODEL_FORMULATION) -DUNDERSCORE -m64 $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
g95:
-        ( make all \
+        ( $(MAKE) all \
        "FC_PARALLEL = mpif90" \
        "CC_PARALLEL = mpicc" \
        "FC_SERIAL = g95" \
@@ -146,7 +146,7 @@
        "CPPFLAGS = $(MODEL_FORMULATION) -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
pathscale-nersc:
-        ( make all \
+        ( $(MAKE) all \
        "FC_PARALLEL = ftn" \
        "CC_PARALLEL = cc" \
        "FC_SERIAL = ftn" \
@@ -161,7 +161,7 @@
        "CPPFLAGS = $(MODEL_FORMULATION) -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
cray-nersc:
-        ( make all \
+        ( $(MAKE) all \
        "FC_PARALLEL = ftn" \
        "CC_PARALLEL = cc" \
        "FC_SERIAL = ftn" \
@@ -176,7 +176,7 @@
        "CPPFLAGS = $(MODEL_FORMULATION) -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
intel-nersc:
-        ( make all \
+        ( $(MAKE) all \
        "FC_PARALLEL = ftn" \
        "CC_PARALLEL = cc" \
        "FC_SERIAL = ftn" \
@@ -227,9 +227,9 @@
        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)
+        FFLAGS=$(FFLAGS_DEBUG) -DMPAS_DEBUG
+        CFLAGS=$(CFLAGS_DEBUG) -DMPAS_DEBUG
+        LDFLAGS=$(LDFLAGS_DEBUG) -DMPAS_DEBUG
        DEBUG_MESSAGE="Debugging is on."
endif # FFLAGS_DEBUG IF
@@ -264,10 +264,14 @@
        PAPI_MESSAGE="Papi libraries are off."
endif # USE_PAPI IF
+ifneq ($(wildcard $(NETCDF)/lib/libnetcdff.*), ) # CHECK FOR NETCDF4
+        LIBS += -lnetcdff
+endif # CHECK FOR NETCDF4
+
all: mpas_main
mpas_main:
-        cd src; make FC="$(FC)" \
+        cd src; $(MAKE) -j1 FC="$(FC)" \
CC="$(CC)" \
SFC="$(SFC)" \
SCC="$(SCC)" \
@@ -287,7 +291,7 @@
        @echo $(SERIAL_MESSAGE)
        @echo $(PAPI_MESSAGE)
clean:
-        cd src; make clean RM="$(RM)" CORE="$(CORE)"
+        cd src; $(MAKE) clean RM="$(RM)" CORE="$(CORE)"
        $(RM) $(CORE)_model.exe
error: errmsg
@@ -305,7 +309,7 @@
errmsg:
        @echo ""
-        @echo "Usage: make target CORE=[core] [options]"
+        @echo "Usage: $(MAKE) target CORE=[core] [options]"
        @echo ""
        @echo "Example targets:"
        @echo " ifort"
Modified: trunk/mpas/src/Makefile
===================================================================
--- trunk/mpas/src/Makefile        2012-03-14 22:07:00 UTC (rev 1643)
+++ trunk/mpas/src/Makefile        2012-03-15 01:42:47 UTC (rev 1644)
@@ -6,35 +6,35 @@
        $(FC) $(LDFLAGS) -o $(CORE)_model.exe driver/*.o -L. -ldycore -lops -lframework $(LIBS) -I./external/esmf_time_f90 -L./external/esmf_time_f90 -lesmf_time
reg_includes:
-        ( cd registry; make CC="$(SCC)" )
+        ( cd registry; $(MAKE) CC="$(SCC)" )
        ( cd inc; $(CPP) ../core_$(CORE)/Registry | ../registry/parse > Registry.processed)
-externals:
-        ( cd external; make FC="$(FC)" SFC="$(SFC)" CC="$(CC)" SCC="$(SCC)" FFLAGS="$(FFLAGS)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" NETCDF="$(NETCDF)" CORE="$(CORE)" )
+externals: reg_includes
+        ( cd external; $(MAKE) FC="$(FC)" SFC="$(SFC)" CC="$(CC)" SCC="$(SCC)" FFLAGS="$(FFLAGS)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" NETCDF="$(NETCDF)" CORE="$(CORE)" )
-frame:
-        ( cd framework; make all )
+frame: reg_includes externals
+        ( cd framework; $(MAKE) all )
        ln -sf framework/libframework.a libframework.a
-ops:
-        ( cd operators; make all )
+ops: reg_includes externals frame
+        ( cd operators; $(MAKE) all )
        ln -sf operators/libops.a libops.a
-dycore:
-        ( cd core_$(CORE); make all )
+dycore: reg_includes externals frame ops
+        ( cd core_$(CORE); $(MAKE) all )
        ln -sf core_$(CORE)/libdycore.a libdycore.a
-drver:
-        ( cd driver; make all )
+drver: reg_includes externals frame ops dycore
+        ( cd driver; $(MAKE) all )
clean:
        $(RM) $(CORE)_model.exe libframework.a libops.a libdycore.a
-        ( cd registry; make clean )
-        ( cd external; make clean )
-        ( cd framework; make clean )
-        ( cd operators; make clean )
+        ( cd registry; $(MAKE) clean )
+        ( cd external; $(MAKE) clean )
+        ( cd framework; $(MAKE) clean )
+        ( cd operators; $(MAKE) clean )
        ( cd inc; rm -f *.inc Registry.processed )
        if [ -d core_$(CORE) ] ; then \
-         ( cd core_$(CORE); make clean ) \
+         ( cd core_$(CORE); $(MAKE) clean ) \
        fi;
-        ( cd driver; make clean )
+        ( cd driver; $(MAKE) clean )
Modified: trunk/mpas/src/external/Makefile
===================================================================
--- trunk/mpas/src/external/Makefile        2012-03-14 22:07:00 UTC (rev 1643)
+++ trunk/mpas/src/external/Makefile        2012-03-15 01:42:47 UTC (rev 1644)
@@ -3,7 +3,7 @@
all: esmf_time
esmf_time:
-        ( cd esmf_time_f90; make FC="$(FC) $(FFLAGS)" CPP="$(CPP)" )
+        ( cd esmf_time_f90; $(MAKE) FC="$(FC) $(FFLAGS)" CPP="$(CPP)" )
clean:
-        ( cd esmf_time_f90; make clean )
+        ( cd esmf_time_f90; $(MAKE) clean )
Modified: trunk/mpas/src/framework/streams.c
===================================================================
--- trunk/mpas/src/framework/streams.c        2012-03-14 22:07:00 UTC (rev 1643)
+++ trunk/mpas/src/framework/streams.c        2012-03-15 01:42:47 UTC (rev 1644)
@@ -18,6 +18,37 @@
{
char fname[128];
+#ifndef MPAS_DEBUG
+ if(*id == 0){
+         sprintf(fname, "log.%4.4i.err", *id);
+         fd_err = open(fname,O_CREAT|O_WRONLY|O_TRUNC,0644);
+         if (dup2(fd_err, 2) < 0) {
+                 printf("Error duplicating STDERR</font>
<font color="blue">");
+                 return;
+         }
+
+         sprintf(fname, "log.%4.4i.out", *id);
+         fd_out = open(fname,O_CREAT|O_WRONLY|O_TRUNC,0644);
+         if (dup2(fd_out, 1) < 0) {
+                 printf("Error duplicating STDOUT</font>
<font color="blue">");
+                 return;
+         }
+ } else {
+         sprintf(fname, "/dev/null", *id);
+         fd_err = open(fname,O_CREAT|O_WRONLY|O_TRUNC,0644);
+         if (dup2(fd_err, 2) < 0) {
+                 printf("Error duplicating STDERR</font>
<font color="blue">");
+                 return;
+         }
+
+         sprintf(fname, "/dev/null", *id);
+         fd_out = open(fname,O_CREAT|O_WRONLY|O_TRUNC,0644);
+         if (dup2(fd_out, 1) < 0) {
+                 printf("Error duplicating STDOUT</font>
<font color="gray">");
+                 return;
+         }
+ }
+#else
sprintf(fname, "log.%4.4i.err", *id);
fd_err = open(fname,O_CREAT|O_WRONLY|O_TRUNC,0644);
if (dup2(fd_err, 2) < 0) {
@@ -31,6 +62,7 @@
printf("Error duplicating STDOUT</font>
<font color="blue">");
return;
}
+#endif
}
void close_streams()
</font>
</pre>