Example compiler flags
Here are sets of compiler flags used to compile and test the code over time. They are provided as a starting point - other configurations may work as well or better.
In these examples FC
is the Fortran compilers using flags FCFLAGS
Gnu Fortran
(see also the continuous integration)
FC
: gfortran-12
or gfortran-13
or gfortran-14
-
Debugging flags:
FCFLAGS: "-ffree-line-length-none -std=f2008 -fbounds-check -finit-real=nan"
-
Even stricter debugging flags:
FCFLAGS: "-ffree-line-length-none -std=f2008 -fbounds-check -finit-real=nan -fbacktrace -pedantic -g -Wall"
Intel Fortran Classic
(see also the continuous integration)
FC: ifort
-
Debugging flags:
FCFLAGS: "-m64 -g -traceback -heap-arrays -assume realloc_lhs -extend-source 132 -check bounds,uninit,pointers,stack -stand f08"
-
Optimization flags:
FCFLAGS:"-m64 -O3 -g -traceback -heap-arrays -assume realloc_lhs -extend-source 132"
Intel Fortran
(LLVM, see also the continuous integration)
FC: ifx
-
Debugging flags:
FCFLAGS: "-debug -traceback -heap-arrays -assume realloc_lhs -extend-source 132 -stand f08"
-
Using OpenMP GPU offload: See this open issue
NVFortran
(see also the see also the continuous integration)
FC: nvfortran
-
Debugging flags:
FCFLAGS: "-g -Minfo -Mbounds -Mchkptr -Mstandard -Kieee -Mchkstk -Mallocatable=03 -Mpreprocess"
-
Optimization flags:
FCFLAGS: "-O3 -fast -Minfo -Mallocatable=03 -Mpreprocess"
HPE CCE for GPU using OpenMP-acc: crayftn – requires at least CCE 14.0.0
FC: crayftn
- Debugging flags (these appear to be insufficient during the link stage):
FCFLAGS: "-hnoacc -homp -O0"