FC = ifx

INC_NC  = -I${NETCDFFI_ROOT}/include
LIB_NC  = -L${NETCDFFI_ROOT}/lib -Wl\,-rpath=${NETCDFFI_ROOT}/lib -lnetcdff -L${NETCDFC_ROOT}/lib -Wl\,-rpath=${NETCDFC_ROOT}/lib -lnetcdf
# the -rpath options ensure that the same shared libraries are found at runtime

FESMUTILSROOT=fesm-utils/utils
INC_FESMUTILS = -I${FESMUTILSROOT}/include-serial
LIB_FESMUTILS = -L${FESMUTILSROOT}/include-serial -lfesmutils

LISROOT = fesm-utils/lis-serial
INC_LIS = -I${LISROOT}/include 
LIB_LIS = -L${LISROOT}/lib/ -llis

PETSCROOT = /opt/local/lib/petsc
INC_PETSC = -I $(PETSC_DIR)/include
LIB_PETSC = -L${PETSC_DIR}/lib -lpetsc

FFLAGS = -no-wrap-margin -module $(objdir) -L$(objdir)

ifeq ($(openmp), 1)
    FESMUTILSROOT=fesm-utils/utils
    INC_FESMUTILS = -I${FESMUTILSROOT}/include-omp
    LIB_FESMUTILS = -L${FESMUTILSROOT}/include-omp -lfesmutils

    LISROOT = fesm-utils/lis-omp
    INC_LIS = -I${LISROOT}/include 
    LIB_LIS = -L${LISROOT}/lib/ -llis

    FFLAGS  = -no-wrap-margin -module $(objdir) -L$(objdir) -qopenmp 
endif 

# Define which linear solvers to include (LIS necessary, PETSC optional)
INC_LINEAR = $(INC_LIS)
LIB_LINEAR = $(LIB_LIS)
ifeq ($(petsc), 1)
    # Add petsc library to flags
    INC_LINEAR = $(INC_LIS) $(INC_PETSC) 
    LIB_LINEAR = $(LIB_LIS) $(LIB_PETSC)
endif

LFLAGS  = $(LIB_NC) $(LIB_FESMUTILS) $(LIB_LINEAR) -Wl,-zmuldefs

#DFLAGS_NODEBUG = -O2 -fp-model precise
DFLAGS_NODEBUG = -Ofast -march=core-avx2 -mtune=core-avx2 -traceback #-recursive
DFLAGS_DEBUG   = -C -O0 -traceback -ftrapuv -fpe0 -check all -fp-model precise -debug extended -gen-interfaces -warn interfaces -check arg_temp_created
DFLAGS_PROFILE = -O2 -fp-model precise -pg
