[Dart-dev] [6148] DART/branches/development/mkmf: Moved the DART version control information to the bottom.
nancy at ucar.edu
nancy at ucar.edu
Fri May 17 11:59:35 MDT 2013
Revision: 6148
Author: thoar
Date: 2013-05-17 11:59:34 -0600 (Fri, 17 May 2013)
Log Message:
-----------
Moved the DART version control information to the bottom.
Added comment block about netcdf, netcdff and HDF5 libraries
that may be needed. Added comment block to intel compiler
derivatives about -traceback and leaving the object code
to improve debug messages.
Modified Paths:
--------------
DART/branches/development/mkmf/mkmf
DART/branches/development/mkmf/mkmf.html
DART/branches/development/mkmf/mkmf.template.absoft.osx
DART/branches/development/mkmf/mkmf.template.g95
DART/branches/development/mkmf/mkmf.template.gfortran
DART/branches/development/mkmf/mkmf.template.intel.linux
DART/branches/development/mkmf/mkmf.template.intel.osx
DART/branches/development/mkmf/mkmf.template.lahey.linux
DART/branches/development/mkmf/mkmf.template.pathscale.linux
DART/branches/development/mkmf/mkmf.template.pgi.cray
DART/branches/development/mkmf/mkmf.template.pgi.linux
DART/branches/development/mkmf/mkmf.template.pgi.osx
DART/branches/development/mkmf/mkmf.template.sgi.altix
DART/branches/development/mkmf/mkmf.template.xlf.aix
-------------- next part --------------
Modified: DART/branches/development/mkmf/mkmf
===================================================================
--- DART/branches/development/mkmf/mkmf 2013-05-17 16:37:52 UTC (rev 6147)
+++ DART/branches/development/mkmf/mkmf 2013-05-17 17:59:34 UTC (rev 6148)
@@ -3,12 +3,6 @@
# DART software - Copyright 2004 - 2011 UCAR. This open source software is
# provided by UCAR, "as is", without charge, subject to all terms of use at
# http://www.image.ucar.edu/DAReS/DART/DART_download
-#
-# <next few lines under version control, do not edit>
-# $URL$
-# $Id$
-# $Revision$
-# $Date$
#-----------------------------------------------------------------------
# mkmf: Perl script for makefile construction
@@ -267,7 +261,7 @@
#before proceeding, dump namelist file if any
if ( @nml_list ) {
unlink $nmlfile if -e $nmlfile;
- open NMLFILE, ">$nmlfile";
+ open NMLFILE, ">$nmlfile";
foreach ( @nml_list ) {
open THISNML, "$_";
while (<THISNML>) {
@@ -471,3 +465,10 @@
print " $opt_m is ready.\n";
exec 'make', '-f', $opt_m if $opt_x;
+
+# <next few lines under version control, do not edit>
+# $URL$
+# $Id$
+# $Revision$
+# $Date$
+
Modified: DART/branches/development/mkmf/mkmf.html
===================================================================
--- DART/branches/development/mkmf/mkmf.html 2013-05-17 16:37:52 UTC (rev 6147)
+++ DART/branches/development/mkmf/mkmf.html 2013-05-17 17:59:34 UTC (rev 6148)
@@ -37,11 +37,11 @@
containing <tt>#ifdef</tt>s that have been changed since the
last invocation);
<li>It will run on any unix platform that has perl version 5 installed;
-<li>It is free, and released under GPL. GFDL users can copy
+<li>It is free, and released under GPL. GFDL users can copy
(or, better still, directly invoke) the file
<tt>/net/vb/public/bin/mkmf</tt>. External users can download the
source <a href="ftp://ftp.gfdl.gov/pub/vb/mkmf/mkmf">
- ftp://ftp.gfdl.gov/pub/vb/mkmf/mkmf</a>.
+ ftp://ftp.gfdl.gov/pub/vb/mkmf/mkmf</a>.
Current public revision is 4.12.
</ul>
@@ -84,8 +84,8 @@
<li><tt>-v</tt> is a verbosity flag to <tt>mkmf</tt>;
-<li><tt>-w</tt> generates compile rules which use the `wrapper' commands
-MPIFC and MPILD instead of FC and LD. These can then be defined as
+<li><tt>-w</tt> generates compile rules which use the `wrapper' commands
+MPIFC and MPILD instead of FC and LD. These can then be defined as
the mpif90 compile scripts to ease changing between an MPI and non-MPI
version;
@@ -118,7 +118,7 @@
href="#examples">Examples</a> section for a closer look at precedence rules.
<p>The makefile currently runs <tt>$(FC)</tt> on fortran files
-and <tt>$(CC)</tt> on C files (unless the <tt>-w</tt> flag is specified).
+and <tt>$(CC)</tt> on C files (unless the <tt>-w</tt> flag is specified).
Flags to the compiler can be set
in <tt>$(FFLAGS)</tt> or <tt>$(CFLAGS)</tt>. The final
loader step executes <tt>$(LD)</tt>. Flags to the loader can be
@@ -127,7 +127,7 @@
and can be set in <tt>$(CPPFLAGS)</tt>. These macros have a
default meaning on most systems, and can be modified in the template
file. The predefined macros can be discovered by running <tt>make
--p</tt>.
+-p</tt>.
<p>In addition, the macro <tt>$(CPPDEFS)</tt> is applied to the
preprocessor. This can contain the <tt>cpp #define</tt>s which
@@ -135,7 +135,7 @@
change between compilations should be placed in
<tt>$(CPPFLAGS)</tt>.
-<p>If the <tt>-w</tt> flag is given the commands run are
+<p>If the <tt>-w</tt> flag is given the commands run are
<tt>$(MPIFC)</tt> on fortran files, <tt>$(MPICC)</tt> on C files,
and <tt>$(MPILD)</tt> for the loader step. The flags retain their
same values with or without the <tt>-w</tt> flag. (This is a local
@@ -293,7 +293,7 @@
following <tt>Makefile</tt>:
<p><pre>
-# Makefile created by mkmf $Id$
+# Makefile created by mkmf $Id$
.DEFAULT:
@@ -355,7 +355,7 @@
The new Makefile looks like this:
<p><pre>
-# Makefile created by mkmf $Id$
+# Makefile created by mkmf $Id$
.DEFAULT:
Modified: DART/branches/development/mkmf/mkmf.template.absoft.osx
===================================================================
--- DART/branches/development/mkmf/mkmf.template.absoft.osx 2013-05-17 16:37:52 UTC (rev 6147)
+++ DART/branches/development/mkmf/mkmf.template.absoft.osx 2013-05-17 17:59:34 UTC (rev 6148)
@@ -3,15 +3,9 @@
# DART software - Copyright 2004 - 2011 UCAR. This open source software is
# provided by UCAR, "as is", without charge, subject to all terms of use at
# http://www.image.ucar.edu/DAReS/DART/DART_download
-#
-# <next few lines under version control, do not edit>
-# $URL$
-# $Id$
-# $Revision$
-# $Date$
# typical use with mkmf
-# mkmf -t mkmf.template.xxxx -c"-Duse_netCDF" ...
+# mkmf -t mkmf.template.xxxx ...
#
# NETCDF and LIBS needs to be customized for your site
# The netcdf 3.5.1 lib had to be compiled with such that all the routines
@@ -21,43 +15,43 @@
#
# -dp "DEMOTE Double Precision to Real"
#
-# -N113 "Promote REAL and COMPLEX" Without an explicit length
-# declaration, single precision REAL and COMPLEX data types
-# default to thirty-two bits or four bytes (KIND=4) and
+# -N113 "Promote REAL and COMPLEX" Without an explicit length
+# declaration, single precision REAL and COMPLEX data types
+# default to thirty-two bits or four bytes (KIND=4) and
# sixty-four bits or eight bytes (KIND=4), respectively.
-# The -N113 option is used to promote these to their double
-# precision equivalents (KIND=8). This option does not affect
-# variables which appear in type statements with explicit
-# sizes (such as REAL (KIND=4) or COMPLEX (KIND=4)).
+# The -N113 option is used to promote these to their double
+# precision equivalents (KIND=8). This option does not affect
+# variables which appear in type statements with explicit
+# sizes (such as REAL (KIND=4) or COMPLEX (KIND=4)).
#
-# -f free instructs compiler to accept source code written in the
+# -f free instructs compiler to accept source code written in the
# format for Fortran 90/95 Free Source Form.
#
-# -reclen32 Causes the library to interpret the value specified for
-# RECL= in an OPEN statement as 32-bit words instead of bytes.
+# -reclen32 Causes the library to interpret the value specified for
+# RECL= in an OPEN statement as 32-bit words instead of bytes.
#
-# -N26 Use this option to force the compiler to consider the byte
+# -N26 Use this option to force the compiler to consider the byte
# ordering of all unformatted files to be big-endian by default.
-# The CONVERT specifier in the OPEN statement may be used to
-# override this setting for individual files.
+# The CONVERT specifier in the OPEN statement may be used to
+# override this setting for individual files.
#
# FFLAGS used all the time
# -YEXT_NAMES=LCS lower case symbols
# -YEXT_SFX=_ trailing underscore
# -altiVec use fast libs for Mac
-# -p$(INCS) precompiled modules are here
+# -p$(INCS) precompiled modules are here
#
# FFLAGS useful for debugging
# -en warns of non-standard language. (extensions)
# -g debug symbol table
-# -N32 issue a warning when the source code contains
-# an extension to the ANSI F77 standard.
+# -N32 issue a warning when the source code contains
+# an extension to the ANSI F77 standard.
# -wabort treat all warnings as errors
# -Rb check array boundaries
# -Rc check array conformance (shapes)
# -Rs check that character substring expressions
-# do not specify a character index outside the
-# scope of the character variable or
+# do not specify a character index outside the
+# scope of the character variable or
# character array element.
# -C full Checking (too much info ...)
#
@@ -68,24 +62,47 @@
# LDFLAGS
# -unixlib resolves 'system' call ... and more.
#
-# Compiler Information (f90 -v):
-# Pro Fortran 9.0 (pretty minimalist message, if you ask me)
+# IF YOU HAVE MORE CURRENT COMPILER INFORMATION, PLEASE SHARE IT WITH US.
MPIFC = mpif90
MPILD = mpif90
FC = f90
LD = f90
-# If your NETCDF environment variable is not set correctly,
-# uncomment the following line and set value properly.
-# NETCDF = /Users/thoar/Absoft
+# DISCUSSION ABOUT NETCDF. DART works with both V3 and V4 flavors of netCDF.
+# Some V4 installations also require the HDF5 libraries. Some don't.
+# Some netCDF installations require both -lnetcdff and -lnetcdf, some only
+# require -lnetcdf. The permutations make it difficult to cover the possible
+# installations. Here are some candidates, you might just have to resort to
+# trial and error:
+# LIBS = -L$(NETCDF)/lib -lnetcdf
+# LIBS = -L$(NETCDF)/lib -lnetcdff -lnetcdf
+# LIBS = -L$(NETCDF)/lib -lnetcdf -lcurl -lhdf5_hl -lhdf5 -lz -lm
+# LIBS = -L$(NETCDF)/lib -lnetcdff -lnetcdf -lcurl -lhdf5_hl -lhdf5 -lz -lm
+#
+# If you get an error "ld: library not found for -lnetcdff" (note 2 f's),
+# remove it from the LIBS line. The same is true for any library. If 'ld'
+# does not complain - it worked.
-INCS = ${NETCDF}/include
-LIBS = -L${NETCDF}/lib -lnetcdf
+# If your NETCDF environment variable is not set correctly,
+# uncomment the following line and set value to where lib and include
+# are found for the netcdf files that match this compiler.
+#
+# NETCDF = /opt/local
+
+INCS = $(NETCDF)/include
+LIBS = -L$(NETCDF)/lib -lnetcdff -lnetcdf
FFLAGS = -YEXT_NAMES=LCS -YEXT_SFX=_ -en -altiVec -O0 -Rb -Rc -g -p$(INCS)
LDFLAGS = -unixlib $(FFLAGS) $(LIBS)
-
+# alternate (sometimes useful) fortran flags invocations
#FFLAGS = -YEXT_NAMES=LCS -YEXT_SFX=_ -en -altiVec -O0 -Rb -Rc -p$(INCS)
#FFLAGS = -YEXT_NAMES=LCS -YEXT_SFX=_ -en -altiVec -O0 -N113 -f free -Rb -Rc -p$(INCS) -I$(INCS)
#FFLAGS = -YEXT_NAMES=LCS -YEXT_SFX=_ -en -altiVec -O0 -Rb -Rc -N26 -p$(INCS) -I$(INCS)
+
+# <next few lines under version control, do not edit>
+# $URL$
+# $Id$
+# $Revision$
+# $Date$
+
Modified: DART/branches/development/mkmf/mkmf.template.g95
===================================================================
--- DART/branches/development/mkmf/mkmf.template.g95 2013-05-17 16:37:52 UTC (rev 6147)
+++ DART/branches/development/mkmf/mkmf.template.g95 2013-05-17 17:59:34 UTC (rev 6148)
@@ -3,48 +3,42 @@
# DART software - Copyright 2004 - 2011 UCAR. This open source software is
# provided by UCAR, "as is", without charge, subject to all terms of use at
# http://www.image.ucar.edu/DAReS/DART/DART_download
-#
-# <next few lines under version control, do not edit>
-# $URL$
-# $Id$
-# $Revision$
-# $Date$
# typical use with mkmf
-# mkmf -t mkmf.template.xxxx -c"-Duse_netCDF" ...
+# mkmf -t mkmf.template.xxxx ...
#
# Most likely NETCDF (and maybe LIBS) will need to be customized for your site
#
-#
+#
# Building DART with open-source software:
-#
+#
# All the parts (except matlab, which is optional and only used to display results)
-# needed to build and run the DART package are now possible to get free from
+# needed to build and run the DART package are now possible to get free from
# the open-source community. To compile and run DART, you will need:
-#
#
+#
# 1. The g95 compiler. See this web page for
-# information on supported platforms and downloads:
+# information on supported platforms and downloads:
# http://g95.sourceforge.net/
-#
+#
# (Note that the g95 compiler is a separate project from the 'gfortran'
# compiler. gfortran is part of the GNU compiler development efforts;
# g95 is a separately developed and supported project.)
-#
-#
+#
+#
# 2. The netCDF software library package. See:
# http://www.unidata.ucar.edu/software/netcdf
-#
+#
# The 3.6.2 version compiled for us with this:
-#
+#
# ./configure CC=gcc FC=g95
# make check
# make install
#
# You can add the argument --prefix=/dir to configure to make the install
# location for the includes and libs someplace other than /usr/local.
-#
-#
+#
+#
# If you want to try the *optional* parallel execution option, you will
# need a version of the MPI libs. There are at least two open source options:
#
@@ -54,24 +48,44 @@
# or mpich from:
# http://http://www-unix.mcs.anl.gov/mpi/mpich/
#
-# Note that MPI IS NOT REQUIRED to build and run DART.
+# Note that MPI IS NOT REQUIRED to build and run DART.
#
-#
-# Possibly useful flags:
-#
-#
+# IF YOU HAVE MORE CURRENT COMPILER INFORMATION, PLEASE SHARE IT WITH US.
MPIFC = mpif90
MPILD = mpif90
FC = g95
LD = g95
-# If your NETCDF environment variable is not set correctly,
-# uncomment the following line and set value properly.
-# NETCDF = /usr/local/netcdf
+# DISCUSSION ABOUT NETCDF. DART works with both V3 and V4 flavors of netCDF.
+# Some V4 installations also require the HDF5 libraries. Some don't.
+# Some netCDF installations require both -lnetcdff and -lnetcdf, some only
+# require -lnetcdf. The permutations make it difficult to cover the possible
+# installations. Here are some candidates, you might just have to resort to
+# trial and error:
+# LIBS = -L$(NETCDF)/lib -lnetcdf
+# LIBS = -L$(NETCDF)/lib -lnetcdff -lnetcdf
+# LIBS = -L$(NETCDF)/lib -lnetcdf -lcurl -lhdf5_hl -lhdf5 -lz -lm
+# LIBS = -L$(NETCDF)/lib -lnetcdff -lnetcdf -lcurl -lhdf5_hl -lhdf5 -lz -lm
+#
+# If you get an error "ld: library not found for -lnetcdff" (note 2 f's),
+# remove it from the LIBS line. The same is true for any library. If 'ld'
+# does not complain - it worked.
-INCS = -I${NETCDF}/include
-LIBS = -L${NETCDF}/lib -lnetcdf
-FFLAGS = -O2 $(INCS)
+# If your NETCDF environment variable is not set correctly,
+# uncomment the following line and set value to where lib and include
+# are found for the netcdf files that match this compiler.
+#
+# NETCDF = /opt/local
+
+INCS = -I$(NETCDF)/include
+LIBS = -L$(NETCDF)/lib -lnetcdff -lnetcdf
+FFLAGS = -O2 $(INCS)
LDFLAGS = $(FFLAGS) $(LIBS)
+# <next few lines under version control, do not edit>
+# $URL$
+# $Id$
+# $Revision$
+# $Date$
+
Modified: DART/branches/development/mkmf/mkmf.template.gfortran
===================================================================
--- DART/branches/development/mkmf/mkmf.template.gfortran 2013-05-17 16:37:52 UTC (rev 6147)
+++ DART/branches/development/mkmf/mkmf.template.gfortran 2013-05-17 17:59:34 UTC (rev 6148)
@@ -3,53 +3,47 @@
# DART software - Copyright 2004 - 2011 UCAR. This open source software is
# provided by UCAR, "as is", without charge, subject to all terms of use at
# http://www.image.ucar.edu/DAReS/DART/DART_download
-#
-# <next few lines under version control, do not edit>
-# $URL$
-# $Id$
-# $Revision$
-# $Date$
# typical use with mkmf
-# mkmf -t mkmf.template.xxxx -c"-Duse_netCDF" ...
+# mkmf -t mkmf.template.xxxx ...
#
# Most likely NETCDF (and maybe LIBS) will need to be customized for your site
#
-#
+#
# Building DART with open-source software:
-#
+#
# All the parts (except matlab, which is optional and only used to display results)
-# needed to build and run the DART package are now possible to get free from
+# needed to build and run the DART package are now possible to get free from
# the open-source community. To compile and run DART, you will need:
-#
#
+#
# 1. The GNU GCC 4.2.0 version of the gfortran compiler. See this web page for
-# information on supported platforms and downloads:
+# information on supported platforms and downloads:
# http://gcc.gnu.org/wiki/GFortran
-#
+#
# (Note that there is a separate G95 project which distributes an alternate
-# open-source fortran distribution, and I have heard that others have
+# open-source fortran distribution, and I have heard that others have
# successfully compiled other fortran code with that compiler, but we have
# not tried it with DART yet.)
-#
-# NOTE: The 4.1.2 compiler made the HORRIBLE choice of changing the default
-# record header size for unformatted writes such that it was incompatible
+#
+# NOTE: The 4.1.2 compiler made the HORRIBLE choice of changing the default
+# record header size for unformatted writes such that it was incompatible
# with every existing binary file. Specifying -frecord-marker=4 is crucial
# to have any hope of success.
-#
+#
# 2. The netCDF software library package. See:
# http://www.unidata.ucar.edu/software/netcdf
-#
+#
# The 3.6.2 version compiled for us with this:
-#
+#
# ./configure CC=gcc FC=gfortran
# make check
# make install
#
# You can add the argument --prefix=/dir to configure to make the install
# location for the includes and libs someplace other than /usr/local.
-#
-#
+#
+#
# If you want to try the *optional* parallel execution option, you will
# need a version of the MPI libs. There are at least two open source options:
#
@@ -59,43 +53,65 @@
# or mpich from:
# http://http://www-unix.mcs.anl.gov/mpi/mpich/
#
-# Note that MPI IS NOT REQUIRED to build and run DART.
+# Note that MPI IS NOT REQUIRED to build and run DART.
#
-#
+#
# Possibly useful flags:
#
-# -ffree-form forces input file to be read as free format regardless
+# -ffree-form forces input file to be read as free format regardless
# of what file extension is has.
#
# -fdefault-real-8 force all real variables to be real*8.
#
# -ffpe-trap=invalid,overflow,precision,denormal,underflow
#
-# Comment about netcdf libraries:
-# We call NetCDF from Fortran 90, so we need the fortran interface
-# library. In some versions of netcdf (e.g. 4.x), the fortran
-# interfaces are built in a separate library (-lnetcdff) and the
-# rest of the netcdf functions are in -lnetcdf. If you get a link
-# error with the flags below, try removing -lnetcdff, or find out
-# where the fortran 90 interfaces live in the netcdf distribution
-# on your system and change the LIBS variable below to match.
-#
+#
+# NOTE: there is no compile-time convert endian flag. It is a run-time option.
+# http://gcc.gnu.org/onlinedocs/gfortran/GFORTRAN_005fCONVERT_005fUNIT.html#GFORTRAN_005fCONVERT_005fUNIT
+# To treat units 10-20 as big_endian but the rest are 'native' ...
+# setenv GFORTRAN_CONVERT_UNIT 'big_endian;native:10-20'
+#
+# To treat ALL units as big_endian (the 10-20 is meaningless in this instance):
+# setenv GFORTRAN_CONVERT_UNIT 'big_endian;big_endian:10-20'
+#
+# IF YOU HAVE MORE CURRENT COMPILER INFORMATION, PLEASE SHARE IT WITH US.
MPIFC = mpif90
MPILD = mpif90
FC = gfortran
LD = gfortran
-# If your NETCDF environment variable is not set correctly,
-# uncomment the following line and set value properly.
-# NETCDF = /usr/local
+# DISCUSSION ABOUT NETCDF. DART works with both V3 and V4 flavors of netCDF.
+# Some V4 installations also require the HDF5 libraries. Some don't.
+# Some netCDF installations require both -lnetcdff and -lnetcdf, some only
+# require -lnetcdf. The permutations make it difficult to cover the possible
+# installations. Here are some candidates, you might just have to resort to
+# trial and error:
+# LIBS = -L$(NETCDF)/lib -lnetcdf
+# LIBS = -L$(NETCDF)/lib -lnetcdff -lnetcdf
+# LIBS = -L$(NETCDF)/lib -lnetcdf -lcurl -lhdf5_hl -lhdf5 -lz -lm
+# LIBS = -L$(NETCDF)/lib -lnetcdff -lnetcdf -lcurl -lhdf5_hl -lhdf5 -lz -lm
+#
+# If you get an error "ld: library not found for -lnetcdff" (note 2 f's),
+# remove it from the LIBS line. The same is true for any library. If 'ld'
+# does not complain - it worked.
-INCS = -I${NETCDF}/include
-LIBS = -L${NETCDF}/lib -lnetcdff -lnetcdf
-FFLAGS = -O2 $(INCS) -ffree-line-length-none
+# If your NETCDF environment variable is not set correctly,
+# uncomment the following line and set value to where lib and include
+# are found for the netcdf files that match this compiler.
+#
+# NETCDF = /opt/local
+
+INCS = -I$(NETCDF)/include
+LIBS = -L$(NETCDF)/lib -lnetcdff -lnetcdf
+FFLAGS = -O2 -ffree-line-length-none $(INCS)
LDFLAGS = $(FFLAGS) $(LIBS)
-#FFLAGS = -O0 -fbounds-check -frecord-marker=4 -ffpe-trap=invalid -ffree-line-length-none $(INCS)
+#FFLAGS = -O0 -fbounds-check -frecord-marker=4 -ffpe-trap=invalid -ffree-line-length-none $(INCS)
-# The following libraries are commonly needed if netCDF4 was built with HDF5 support.
-#LIBS = -L${NETCDF}/lib -lnetcdf -lcurl -lhdf5_hl -lhdf5 -lz -lm
+# <next few lines under version control, do not edit>
+# $URL$
+# $Id$
+# $Revision$
+# $Date$
+
Modified: DART/branches/development/mkmf/mkmf.template.intel.linux
===================================================================
--- DART/branches/development/mkmf/mkmf.template.intel.linux 2013-05-17 16:37:52 UTC (rev 6147)
+++ DART/branches/development/mkmf/mkmf.template.intel.linux 2013-05-17 17:59:34 UTC (rev 6148)
@@ -3,25 +3,19 @@
# DART software - Copyright 2004 - 2011 UCAR. This open source software is
# provided by UCAR, "as is", without charge, subject to all terms of use at
# http://www.image.ucar.edu/DAReS/DART/DART_download
-#
-# <next few lines under version control, do not edit>
-# $URL$
-# $Id$
-# $Revision$
-# $Date$
# typical use with mkmf
# mkmf -t mkmf.template.xxxx ...
#
-# If NETCDF is set in your environment you do not need to set it here.
-# If you need additional libraries you may need to adjust LIBS below.
+# FFLAGS useful for DEBUGGING. NOTE: The intel compiler can provide a lot more
+# information if you LEAVE the object and module files intact.
+# Do not remove the *.o and *.mod files when debugging code.
#
-# FFLAGS useful for debugging
# -g include debugging information. these are all synonyms.
# -debug full
# -debug all
-# -O0 setting -g will make this the default (no optimization).
-# it is possible to set -g and then explicitly set -O2 if
+# -O0 setting -g will make this the default (no optimization).
+# it is possible to set -g and then explicitly set -O2 if
# the behavior being debugged depends on optimization changes.
# -ftrapuv traps if a local variable is used before being set
# -C enables all runtime checks. -C and -check all are synonyms.
@@ -30,7 +24,7 @@
# keywords: [arg_temp_created,bounds,overflow,format,pointers,uninit]
# -warn <keywords> the level of warning messages issued.
# keywords: [alignments, argument_checking, declarations,
-# errors, fileopt, general, ignore_loc,
+# errors, fileopt, general, ignore_loc,
# stderrors, truncated_source, uncalled,
# uninitialized, unused, usage, all]
# -fp-stack-check catches conditions where the FP stack is not correct.
@@ -40,6 +34,9 @@
# -vec-reportN controls how much diagnostic output is printed about
# loops vectorized by the compiler. N = 0 is silent,
# N can have values up to 5.
+# -traceback tells the compiler to generate extra information in the
+# object file to provide source file traceback information
+# when a severe error occurs at run time
#
# FFLAGS useful for bitwise reproducibility and accuracy control
# (these will slow down performance to various degrees)
@@ -75,7 +72,7 @@
# (for those running on yellowstone, -axavx will enable the advanced
# vector instructions available on the sandy bridge processors.)
#
-# FFLAGS possibly useful, not normally used by DART
+# FFLAGS possibly useful, not normally used by DART
# -fpp run Fortran preprocessor on source files prior to compilation
# -free interpret source as free-format, regardless of file extension
# -r8 specify default real size. note that for DART we use explicit
@@ -89,27 +86,36 @@
# -assume byterecl ... more 'industry-standard' direct-access behavior
# controls what units the RECL (record length) specifier returns.
#
+# The PBL_1d model needs this flag added to whatever others are used:
+# FFLAGS = -r8
#
-# The PBL_1d model needs this flag added to whatever others are used:
-#FFLAGS = -r8
+# IF YOU HAVE MORE CURRENT COMPILER INFORMATION, PLEASE SHARE IT WITH US.
MPIFC = mpif90
MPILD = mpif90
FC = ifort
LD = ifort
-# If your NETCDF environment variable is not set correctly,
+# DISCUSSION ABOUT NETCDF. DART works with both V3 and V4 flavors of netCDF.
+# Some V4 installations also require the HDF5 libraries. Some don't.
+# Some netCDF installations require both -lnetcdff and -lnetcdf, some only
+# require -lnetcdf. The permutations make it difficult to cover the possible
+# installations. Here are some candidates, you might just have to resort to
+# trial and error:
+# LIBS = -L$(NETCDF)/lib -lnetcdf
+# LIBS = -L$(NETCDF)/lib -lnetcdff -lnetcdf
+# LIBS = -L$(NETCDF)/lib -lnetcdf -lcurl -lhdf5_hl -lhdf5 -lz -lm
+# LIBS = -L$(NETCDF)/lib -lnetcdff -lnetcdf -lcurl -lhdf5_hl -lhdf5 -lz -lm
+#
+# If you get an error "ld: library not found for -lnetcdff" (note 2 f's),
+# remove it from the LIBS line. The same is true for any library. If 'ld'
+# does not complain - it worked.
+
+# If your NETCDF environment variable is not set correctly,
# uncomment the following line and set value to where lib and include
# are found for the netcdf files that match this compiler.
-#
-# If you get an error about libnetcdff (note 2 f's) not found,
-# remove it from the libs line. when building netcdf there are
-# configure options to put all the fortran interfaces into a
-# separate library from the base lib, or build one larger library.
-# so each system can be different depending on who built
-# the netcdf libs.
#
-# NETCDF = /contrib/netcdf
+# NETCDF = /opt/local
INCS = -I$(NETCDF)/include
LIBS = -L$(NETCDF)/lib -lnetcdff -lnetcdf
@@ -117,17 +123,23 @@
LDFLAGS = $(FFLAGS) $(LIBS)
# for development or debugging, use this instead:
-# FFLAGS = -g -C -check noarg_temp_created -fpe0 -vec-report0 -fp-model precise \
-# -warn argument_checking,declarations,uncalled,unused -ftrapuv $(INCS)
+# FFLAGS = -g -C -check noarg_temp_created -fpe0 -vec-report0 \
+# -fp-model precise -ftrapuv -traceback \
+# -warn argument_checking,declarations,uncalled,unused $(INCS)
#
-# for speed on yellowstone (verify against a run with with -O and -fp-model precise
+# for speed on yellowstone (verify against a run with with -O and -fp-model precise
# that the numerical differences aren't too large to be acceptable):
# FFLAGS = -O3 -axavx -ipo -vec-report0 $(INCS)
#
# Some optimized (BLAS, LAPACK) libraries may be available with:
# LIBS = -L$(NETCDF)/lib -lnetcdff -lnetcdf -lmkl -lmkl_lapack -lguide -lpthread
#
-# If you get this error: libimf.so: warning: warning: feupdateenv is not implemented
+# If you get this error: libimf.so: warning: warning: feupdateenv is not implemented
# try adding: -limf -lm to your LIBS line.
+# <next few lines under version control, do not edit>
+# $URL$
+# $Id$
+# $Revision$
+# $Date$
Modified: DART/branches/development/mkmf/mkmf.template.intel.osx
===================================================================
--- DART/branches/development/mkmf/mkmf.template.intel.osx 2013-05-17 16:37:52 UTC (rev 6147)
+++ DART/branches/development/mkmf/mkmf.template.intel.osx 2013-05-17 17:59:34 UTC (rev 6148)
@@ -3,49 +3,68 @@
# DART software - Copyright 2004 - 2011 UCAR. This open source software is
# provided by UCAR, "as is", without charge, subject to all terms of use at
# http://www.image.ucar.edu/DAReS/DART/DART_download
-#
-# <next few lines under version control, do not edit>
-# $URL$
-# $Id$
-# $Revision$
-# $Date$
# typical use with mkmf
-# mkmf -t mkmf.template.xxxx -c"-Duse_netCDF" ...
+# mkmf -t mkmf.template.xxxx ...
#
-# Most likely NETCDF and LIBS need to be customized for your site
+# NOTE: The intel compiler can provide a lot more
+# information if you LEAVE the object and module files intact.
+# Do not remove the *.o and *.mod files when debugging code.
#
-#
# Building DART with the commercial Intel compiler for the iMacs:
-#
+#
# You will need to have a version of the (free) netCDF software
# library package:
#
# http://www.unidata.ucar.edu/software/netcdf
-#
#
+#
# users have had problems with the default stack size on OS X.
# the -Wl,-stack_size argument below increases the stack large
# enough to run large models.
#
+# IF YOU HAVE MORE CURRENT COMPILER INFORMATION, PLEASE SHARE IT WITH US.
MPIFC = mpif90
MPILD = mpif90
FC = ifort
LD = ifort
-# If your NETCDF environment variable is not set correctly,
-# uncomment the following line and set value properly.
-# NETCDF = /usr/local
+# DISCUSSION ABOUT NETCDF. DART works with both V3 and V4 flavors of netCDF.
+# Some V4 installations also require the HDF5 libraries. Some don't.
+# Some netCDF installations require both -lnetcdff and -lnetcdf, some only
+# require -lnetcdf. The permutations make it difficult to cover the possible
+# installations. Here are some candidates, you might just have to resort to
+# trial and error:
+# LIBS = -L$(NETCDF)/lib -lnetcdf
+# LIBS = -L$(NETCDF)/lib -lnetcdff -lnetcdf
+# LIBS = -L$(NETCDF)/lib -lnetcdf -lcurl -lhdf5_hl -lhdf5 -lz -lm
+# LIBS = -L$(NETCDF)/lib -lnetcdf -lnetcdff -lcurl -lhdf5_hl -lhdf5 -lz -lm
+#
+# If you get an error "ld: library not found for -lnetcdff" (note 2 f's),
+# remove it from the LIBS line. The same is true for any library. If 'ld'
+# does not complain - it worked.
-INCS = -I${NETCDF}/include
-LIBS = -L${NETCDF}/lib -lnetcdf
+# If your NETCDF environment variable is not set correctly,
+# uncomment the following line and set value to where lib and include
+# are found for the netcdf files that match this compiler.
+#
+# NETCDF = /opt/local
+INCS = -I$(NETCDF)/include
+LIBS = -L$(NETCDF)/lib -lnetcdff -lnetcdf
+
# for Intel 9.x:
-FFLAGS = $(INCS) -O2
+FFLAGS = $(INCS) -O2
LDFLAGS = $(INCS) -Wl,-stack_size,10000000 $(LIBS)
# for Intel 10.x:
#FFLAGS = $(INCS) -O2 -m64 -heap-arrays -vec-report0 -fpe0
#LDFLAGS = $(INCS) $(LIBS)
+# <next few lines under version control, do not edit>
+# $URL$
+# $Id$
+# $Revision$
+# $Date$
+
Modified: DART/branches/development/mkmf/mkmf.template.lahey.linux
===================================================================
--- DART/branches/development/mkmf/mkmf.template.lahey.linux 2013-05-17 16:37:52 UTC (rev 6147)
+++ DART/branches/development/mkmf/mkmf.template.lahey.linux 2013-05-17 17:59:34 UTC (rev 6148)
@@ -4,22 +4,10 @@
# DART software - Copyright 2004 - 2011 UCAR. This open source software is
# provided by UCAR, "as is", without charge, subject to all terms of use at
# http://www.image.ucar.edu/DAReS/DART/DART_download
-#
-# <next few lines under version control, do not edit>
-# $URL$
-# $Id$
-# $Revision$
-# $Date$
# typical use with mkmf
-# mkmf -t mkmf.template.xxxx -c"-Duse_netCDF" ...
+# mkmf -t mkmf.template.xxxx ...
#
-# NETCDF and LIBS need to be customized for your site
-# for machines at NCAR, here are some settings:
-# fisher NETCDF = /home/thoar/netcdf-3.5.1-cc-c++-lf95.6.20a
-# lightning NETCDF = /contrib/netcdf/3.5.1-lahey-6.2-32
-# bangkok NETCDF = /usr/local/netcdf-3.6.1-gcc-3.4.6-lf9562
-#
# FFLAGS useful for benchmarking
# --ap preserve arithmetic accuracy in the face of optimization
# -Ktrap=fp trap floating point exceptions and EXIT
@@ -43,10 +31,10 @@
# uninitialized variables.
# Arguments can be combined (separated by commas).
# <args>:
-# a argument checking.
-# e array expression shape checking.
-# s subscript checking.
-# u undefined variable checking.
+# a argument checking.
+# e array expression shape checking.
+# s subscript checking.
+# u undefined variable checking.
# x extra checking.
# --chkglobal
# --verbose
@@ -60,34 +48,48 @@
#
# FFLAGS for historical reasons
# --dbl does the autopromotion
-# NOTE: 'noieee' "... produces results that differ from the correctly rounded
+# NOTE: 'noieee' "... produces results that differ from the correctly rounded
# result by no more than 3 units in the last place."
#
-# Compiler Information: (lf95 --version)
-# Lahey/Fujitsu Fortran 95 Compiler Release L6.20c
-# Copyright (C) 1994-2003 Lahey Computer Systems. All rights reserved.
-# Copyright (C) 1998-2003 FUJITSU LIMITED. All rights reserved.
-#
-# Compiler Information (lf95 -V):
-# Lahey/Fujitsu Fortran 95 Compiler Release L6.20a
-# Copyright (C) 1994-2003 Lahey Computer Systems. All rights reserved.
-# Copyright (C) 1998-2003 FUJITSU LIMITED. All rights reserved.
-#
-#
+# IF YOU HAVE MORE CURRENT COMPILER INFORMATION, PLEASE SHARE IT WITH US.
MPIFC = mpif90
MPILD = mpif90
FC = lf95
LD = lf95
-# If your NETCDF environment variable is not set correctly,
-# uncomment the following line and set value properly.
-# NETCDF = /contrib/netcdf/3.5.1-lahey-6.2-32
+# DISCUSSION ABOUT NETCDF. DART works with both V3 and V4 flavors of netCDF.
+# Some V4 installations also require the HDF5 libraries. Some don't.
+# Some netCDF installations require both -lnetcdff and -lnetcdf, some only
+# require -lnetcdf. The permutations make it difficult to cover the possible
+# installations. Here are some candidates, you might just have to resort to
+# trial and error:
+# LIBS = -L$(NETCDF)/lib -lnetcdf
+# LIBS = -L$(NETCDF)/lib -lnetcdff -lnetcdf
+# LIBS = -L$(NETCDF)/lib -lnetcdf -lcurl -lhdf5_hl -lhdf5 -lz -lm
+# LIBS = -L$(NETCDF)/lib -lnetcdff -lnetcdf -lcurl -lhdf5_hl -lhdf5 -lz -lm
+#
+# If you get an error "ld: library not found for -lnetcdff" (note 2 f's),
+# remove it from the LIBS line. The same is true for any library. If 'ld'
+# does not complain - it worked.
+# If your NETCDF environment variable is not set correctly,
+# uncomment the following line and set value to where lib and include
+# are found for the netcdf files that match this compiler.
+#
+# NETCDF = /opt/local
+
INCS = -I$(NETCDF)/include
-LIBS = -L$(NETCDF)/lib -lnetcdf
+LIBS = -L$(NETCDF)/lib -lnetcdff -lnetcdf
FFLAGS = -Wa,--32 --trap --wide --o2 $(INCS)
LDFLAGS = $(FFLAGS) $(LIBS)
# for debugging or development, here are some suggested flags:
-#FFLAGS = --ap --trap --warn --wide --chk a,s,u,x --o0 $(INCS)
+#FFLAGS = --ap --trap --warn --wide --chk a,s,u,x --o0 $(INCS)
+
+# <next few lines under version control, do not edit>
+# $URL$
+# $Id$
+# $Revision$
+# $Date$
+
Modified: DART/branches/development/mkmf/mkmf.template.pathscale.linux
===================================================================
--- DART/branches/development/mkmf/mkmf.template.pathscale.linux 2013-05-17 16:37:52 UTC (rev 6147)
+++ DART/branches/development/mkmf/mkmf.template.pathscale.linux 2013-05-17 17:59:34 UTC (rev 6148)
@@ -1,18 +1,12 @@
# Template for Pathscale 2.0 f90 Compiler on a Linux cluster
-# (applies to the NCAR machine 'lightning' - an Opteron cluster)
+# (tested to the NCAR machine 'lightning' - an Opteron cluster)
#
# DART software - Copyright 2004 - 2011 UCAR. This open source software is
# provided by UCAR, "as is", without charge, subject to all terms of use at
# http://www.image.ucar.edu/DAReS/DART/DART_download
-#
-# <next few lines under version control, do not edit>
-# $URL$
-# $Id$
-# $Revision$
-# $Date$
# typical use with mkmf
-# mkmf -t mkmf.template.xxxx -c"-Duse_netCDF" ...
+# mkmf -t mkmf.template.xxxx ...
#
# NETCDF and LIBS needs to be customized for your site
#
@@ -29,14 +23,7 @@
# -O3 'full optimization'
# -Ofast 'default fast option configuration'
#
-# The netcdf library location for a different version of the compiler:
-# NETCDF =
-#
-# Compiler Information (pathf90 --v):
-# PathScale EKO Compiler Suite(TM): Version 2.0
-# Built on: 2004-12-30 13:33:07 -0800
-# Thread model: posix
-# GNU gcc version 3.3.1 (PathScale 2.0 driver)
+# IF YOU HAVE MORE CURRENT COMPILER INFORMATION, PLEASE SHARE IT WITH US.
#----------------------------------------------------------------------
# if the pathScale module is loaded, these things are already properly set.
@@ -45,19 +32,43 @@
#MPILD=$(MPI_HOME)/bin/mpif90
#----------------------------------------------------------------------
-MPIFC=mpif90
-MPILD=mpif90
+MPIFC = mpif90
+MPILD = mpif90
FC = pathf90
LD = pathf90
-# If your NETCDF environment variable is not set correctly,
-# uncomment the following line and set value properly.
-# NETCDF = /home/lightning/thoar/netcdf-3.6.0p1-pathcc-pathf90-2.0-64
+# DISCUSSION ABOUT NETCDF. DART works with both V3 and V4 flavors of netCDF.
+# Some V4 installations also require the HDF5 libraries. Some don't.
+# Some netCDF installations require both -lnetcdff and -lnetcdf, some only
+# require -lnetcdf. The permutations make it difficult to cover the possible
+# installations. Here are some candidates, you might just have to resort to
+# trial and error:
+# LIBS = -L$(NETCDF)/lib -lnetcdf
+# LIBS = -L$(NETCDF)/lib -lnetcdff -lnetcdf
+# LIBS = -L$(NETCDF)/lib -lnetcdf -lcurl -lhdf5_hl -lhdf5 -lz -lm
+# LIBS = -L$(NETCDF)/lib -lnetcdff -lnetcdf -lcurl -lhdf5_hl -lhdf5 -lz -lm
+#
+# If you get an error "ld: library not found for -lnetcdff" (note 2 f's),
+# remove it from the LIBS line. The same is true for any library. If 'ld'
+# does not complain - it worked.
+# If your NETCDF environment variable is not set correctly,
+# uncomment the following line and set value to where lib and include
+# are found for the netcdf files that match this compiler.
+#
+# NETCDF = /opt/local
+
INCS = -I$(NETCDF)/include
-LIBS = -L$(NETCDF)/lib -lnetcdf
+LIBS = -L$(NETCDF)/lib -lnetcdff -lnetcdf
FFLAGS = -O2 $(INCS)
LDFLAGS = $(FFLAGS) $(LIBS)
# for development/debugging, use these flags instead:
#FFLAGS = -Wuninitialized -ffortran-bounds-check -fullwarn -O0 -I$(NETCDF)/include
+
+# <next few lines under version control, do not edit>
+# $URL$
+# $Id$
+# $Revision$
+# $Date$
+
Modified: DART/branches/development/mkmf/mkmf.template.pgi.cray
===================================================================
--- DART/branches/development/mkmf/mkmf.template.pgi.cray 2013-05-17 16:37:52 UTC (rev 6147)
+++ DART/branches/development/mkmf/mkmf.template.pgi.cray 2013-05-17 17:59:34 UTC (rev 6148)
@@ -3,26 +3,10 @@
# DART software - Copyright 2004 - 2011 UCAR. This open source software is
# provided by UCAR, "as is", without charge, subject to all terms of use at
# http://www.image.ucar.edu/DAReS/DART/DART_download
-#
-# <next few lines under version control, do not edit>
-# $URL$
-# $Id$
-# $Revision$
-# $Date$
# typical use with mkmf
-# mkmf -t mkmf.template.xxxx -c"-Duse_netCDF" ...
+# mkmf -t mkmf.template.xxxx ...
#
-# NETCDF and LIBS need to be customized for your site
-# here are some values for the local NCAR machines:
-# ocotillo NETCDF = /usr/local/netcdf-pgi
-# fisher NETCDF = /contrib/netcdf-3.6.0-p1-cc-c++-pgf90.6.1-1
-# lightning 6.0 NETCDF = /contrib/netcdf/3.5.1-pgi6.0-64
-# lightning 6.2 NETCDF = /home/lightning/thoar/netcdf-3.6.0p1-pgcc-pgCC-pgf90-6.2
-# coral 32bit NETCDF = /contrib/netcdf-3.6.0p1-pgcc-pgf90-6.0-8-32
-# coral 64bit NETCDF = /contrib/netcdf-3.6.0p1-cc-pgf90-6.0-8-64
-# bangkok NETCDF = /usr/local/netcdf-pgi
-#
# if you switch between machines frequently, you can leave
# the NETCDF variable unset here and set it in your environment.
#
@@ -34,8 +18,8 @@
#
# FFLAGS useful for speed
# -fastsse 'general optimal flags for SSE, SSE2 chipsets'
-# -Minline
-# -Knoieee don't perform IEEE arithmetic (faster, see note)
+# -Minline
@@ Diff output truncated at 40000 characters. @@
More information about the Dart-dev
mailing list