[Dart-dev] DART/branches Revision: 11659

dart at ucar.edu dart at ucar.edu
Wed May 24 09:39:34 MDT 2017


nancy at ucar.edu
2017-05-24 09:39:34 -0600 (Wed, 24 May 2017)
65
revert template back to default gfortran; committed by mistake.




Modified: DART/branches/rma_updates_nancy/build_templates/mkmf.template
===================================================================
--- DART/branches/rma_updates_nancy/build_templates/mkmf.template	2017-05-24 15:37:53 UTC (rev 11658)
+++ DART/branches/rma_updates_nancy/build_templates/mkmf.template	2017-05-24 15:39:34 UTC (rev 11659)
@@ -1,4 +1,4 @@
-# Template for Intel Fortran Compiler on Linux clusters and workstations.
+# Template for GNU gfortran on Linux or Mac OSX
 #
 # DART software - Copyright UCAR. This open source software is provided
 # by UCAR, "as is", without charge, subject to all terms of use at
@@ -9,107 +9,57 @@
 # typical use with mkmf
 # mkmf -t mkmf.template.xxxx ...
 #
-# 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.
+# Suggested (perhaps required) flags:
+# -ffree-line-length-none   handles "long" lines - i.e. longer than 72 chars
 #
-#     -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
-#              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.
-#     -check all
-#     -check <keywords>    enables/disables more specific runtime checks.
-#           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,
-#                      stderrors, truncated_source, uncalled,
-#                      uninitialized, unused, usage, all]
-#     -fp-stack-check  catches conditions where the FP stack is not correct.
-#           Typically this is when a real function is called as if it were a
-#           subroutine, OR a subroutine is called as if it were a function (return
-#           values left of FP stack OR too much data is taken off the FP stack)
-#     -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
+# Suggested debugging flags:
+#  -g                  add debugging information to executable
+#  -Wuninitialized     catch uninitialized variables
+#  -Wunused            issue warning for unused variables - keeps code clean
+#  -fbacktrace         runtime errors try to print out a stack backtrace
+#  -fbounds-check      add runtime-checking for out-of-range array indices
+#  -ffpe-trap=invalid,zero,overflow
+#                      stop on floating point errors
 #
-# FFLAGS   useful for bitwise reproducibility and accuracy control
-#          (these will slow down performance to various degrees)
-#     -fp-model precise    control how floating point roundoff is done so it is
-#                          reproducible from run to run.  in simple tests this
-#                          flag alone was enough to create bitwise reproducible
-#                          code but slowed execution significantly.
-#     -ftz        'flush to zero' underflows result in zero.  set by default if
-#                 any -O other than -O0 set, or if -fpe0 or -fpe1 set.
-#     -fpeN       controls floating point exception handling.  -fpe0 rounds underflow
-#                 to zero and traps on any other exception type.
-#     -pc80       set internal FPU precision to 64 bit significand
-#                 (default is -pc64 with 53 internal bits)
+#  earlier versions of this mkmf file listed 'precision' as one of the options on
+#  the fpe-trap line.  this is not recommended anymore as some of the gfortran internal
+#  routines will trap, as well as some perfectly valid DART computations.
 #
-# FFLAGS   useful for production
-#     -O2        default.  optimize without too much unrepeatable numerical games
-#     -O3        more aggressive optimizations.  check numerical differences
-#                before using this indiscriminately.
-#     -O1        if you get compile-time errors about out of memory or unable to
-#                complete compilation because of complexity, try lowering the
-#                optimization level on the offending source files.
-#     -ipo       enable optimizations between routines in separate source files
-#     -heap-arrays 10    allocate large arrays from the heap instead of putting them
-#                on the stack.  the number is the limit in KB for when arrays
-#                move from the stack to the heap.  this can help if you get stack
-#                overflow errors and cannot increase the stack size more.
-#                allocating from the stack is faster, but it's usually a smaller
-#                size than the heap.
-#     -x, -m, -ax, -mcode, -march   all these flags tell the compiler to generate
-#                processor-specific or vector instructions.  either 'man ifort' or
-#                ifort --help to see what the current list of options are and
-#                which have priority over the others.
-#                (for those running on yellowstone, -axavx will enable the advanced
-#                vector instructions available on the sandy bridge processors.)
-#     -assume buffered_io  allows the runtime library to buffer up individual
-#                writes before calling the operating system.  in particular, we
-#                write our observation sequence files as a series of many individual
-#                calls to the write() routine.  when debugging you do not want to
-#                buffer so you can see the last output before the program dies.
-#                for production, however, you want to batch up writes into larger
-#                blocks before stopping to do i/o to disk.  an alternative at
-#                runtime is to set FORT_BUFFERED to 'true' in your environment.
-#                (e.g. csh family: setenv FORT_BUFFERED true    or
-#                ksh family: export FORT_BUFFERED=true).  


More information about the Dart-dev mailing list