[Dart-dev] DART/branches Revision: 11718
dart at ucar.edu
dart at ucar.edu
Tue Jun 13 15:21:09 MDT 2017
sergey.frolov at nrlmry.navy.mil
2017-06-13 15:21:09 -0600 (Tue, 13 Jun 2017)
25
added intel.cray template
Modified: DART/branches/coamps/build_templates/mkmf.template
===================================================================
--- DART/branches/coamps/build_templates/mkmf.template 2017-06-13 21:18:53 UTC (rev 11717)
+++ DART/branches/coamps/build_templates/mkmf.template 2017-06-13 21:21:09 UTC (rev 11718)
@@ -1,7 +1,7 @@
-# Template for GNU gfortran on Linux or Mac OSX
+# Template for Intel Fortran Compiler on Linux clusters and workstations.
#
-# DART software - Copyright UCAR. This open source software is provided
-# by UCAR, "as is", without charge, subject to all terms of use at
+# DART software - Copyright 2004 - 2013 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
#
# DART $Id$
@@ -9,57 +9,107 @@
# typical use with mkmf
# mkmf -t mkmf.template.xxxx ...
#
-# Suggested (perhaps required) flags:
-# -ffree-line-length-none handles "long" lines - i.e. longer than 72 chars
+# 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 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
+# -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
#
-# 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 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)
#
-# Generally not needed but possibly useful for non-DART code:
+# 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
More information about the Dart-dev
mailing list