[Dart-dev] DART/branches Revision: 12095
dart at ucar.edu
dart at ucar.edu
Fri Nov 10 15:18:59 MST 2017
nancy at ucar.edu
2017-11-10 15:18:58 -0700 (Fri, 10 Nov 2017)
24
flags for NAG compiler
Added: DART/branches/recam/build_templates/mkmf.template.nag.linux
===================================================================
--- DART/branches/recam/build_templates/mkmf.template.nag.linux (rev 0)
+++ DART/branches/recam/build_templates/mkmf.template.nag.linux 2017-11-10 22:18:58 UTC (rev 12095)
@@ -0,0 +1,158 @@
+# 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
+# http://www.image.ucar.edu/DAReS/DART/DART_download
+#
+# DART $Id$
+
+# 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.
+#
+# -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
+#
+# 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)
+#
+# 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).
+#
+# 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
+# types on all our real values so this will not change anything
+# inside DART. see DART/common/types_mod.f90 if you must run
+# with single precision reals.
+# -convert big_endian useful if you're on the wrong architecture.
+# however this controls both reading and writing so you can't
+# use it as a conversion mechanism unless you write files out
More information about the Dart-dev
mailing list