# Common flags
##############
#
# -mkl=[parallel|sequential] : Use the MKL library
# --ninja                 : Allow the utilisation of ninja. It is mandatory !
# --align=32                 : Align all provided arrays on a 32-byte boundary
#
[COMMON]
FC           : mpiifort -shared-libgcc -shared-intel -fpic
LAPACK_LIB   : -mkl=parallel 
IRPF90       : irpf90
IRPF90_FLAGS : --ninja --align=32 -DMPI  

# Global options
################
#
# 1 : Activate
# 0 : Deactivate
# 
[OPTION]
MODE    : OPT        ; [ OPT | PROFILE | DEBUG ] : Chooses the section below
CACHE   : 0          ; Enable cache_compile.py
OPENMP  : 1          ; Append OpenMP flags

# Optimization flags
####################
#
# -xHost                     : Compile a binary optimized for the current architecture
# -O2                        : O3 not better than O2.
# -ip                        : Inter-procedural optimizations
# -ftz                       : Flushes denormal results to zero
#
[OPT]
FCFLAGS  : -xCORE-AVX2 -O2 -ip -ftz -g -traceback -qopt-prefetch=5 -qopt-prefetch-issue-excl-hint -unroll-aggressive 
# Profiling flags
#################
#
[PROFILE]
FC       : -p -g
FCFLAGS  : -xSSE4.2 -O2 -ip -ftz -qopt-prefetch

# Debugging flags
#################
#
# -traceback   : Activate backtrace on runtime
# -fpe0        : All floating point exaceptions
# -C           : Checks uninitialized variables,  array subscripts, etc...
# -g           : Extra debugging information
# -xSSE2       : Valgrind needs a very simple x86 executable
#
[DEBUG]
FC      : -g -traceback
FCFLAGS : -xCORE-AVX2 -C -fpe0 -traceback

# OpenMP flags
#################
#
[OPENMP]
FC           : -qopenmp
IRPF90_FLAGS : --openmp